2014-06-06 12 views
7

Tôi đang tạo một biểu định kiểu sẽ được tải lên HubSpot CMS và tôi hy vọng phát triển tệp CSS cục bộ bằng SASS để tăng tốc mã của tôi. Tôi đang gặp khó khăn vì tệp đầu ra cần bao gồm một số thẻ mẫu độc quyền được chỉ định bởi CMS.Thoát {và% trong SASS

Đặc biệt, tôi cần tập tin CSS được tạo ra tôi để bao gồm một dòng như thế này:

{% include "hubspot/styles/responsive/required_base.css" %} 

Tôi đã thử tất cả mọi thứ tôi có thể nghĩ ra để sản xuất các {% ký tự, nhưng Sass mang lại cho tôi lỗi không vấn đề tôi làm vì đó là những ký tự đặc biệt trong SASS.

Có cách nào để thoát khỏi một dòng mã, hoặc các ký tự riêng lẻ để SASS không cố xử lý chúng?

Trả lời

7

Nó không đẹp bằng bất kỳ phương tiện nào nhưng tôi đã làm việc đó. Bạn sẽ có những bình luận trống ở hai bên của nó.

$inc: '*/{% include "hubspot/styles/responsive/required_base.css" %}/*'; 
/*#{$inc}*/ 

Đầu ra:

/**/{% include "hubspot/styles/responsive/required_base.css" %}/**/ 

Đây là một bản demo: http://sassmeister.com/gist/19651edf94cf1158037f

Ở đây nó là ở dạng mixin nếu bạn sẽ được làm việc đó rất nhiều:

@mixin raw ($string) { 
    $string: '*/#{$string}/*'; 
    /*#{$string}*/ 
} 

@include raw('{% include "hubspot/styles/responsive/required_base.css" %}'); 

và một bản trình diễn nhỏ cho điều này: http://sassmeister.com/gist/50caee499ff4fe8f63c7

Nếu bạn đang sử dụng một số loại công cụ xây dựng, có lẽ tốt hơn nên thêm nó vào chính CSS. Một cái gì đó như https://github.com/godaddy/gulp-header

+1

Trong khi phải làm điều này là không có nghi ngờ một ý tưởng khủng khiếp, tôi phải nói rằng hack này rất thông minh. Nếu tôi có thể đề xuất một cải tiến nhỏ: hãy di chuyển '/ *' thứ hai vào chuỗi để dòng giống như sau: '/ * # {$ inc} * /'. Cùng một kết quả, có vẻ tốt hơn. –

+1

hackery tuyệt vời. – artlung

+1

Chấp nhận câu trả lời từ @ bill-criswell vì đó là giải pháp khôn ngoan để giải quyết vấn đề. Tôi thực sự đã kết thúc bằng cách sử dụng Grunt để giải quyết điều này vì vậy tôi có thể sản xuất hai bản build css riêng biệt ... một cái sạch để phát triển địa phương và một cái khác với các tiêu đề kỳ lạ mà HubSpot yêu cầu. –