2014-06-06 5 views
7

Ich erstelle ein Stylesheet, das auf das HubSpot CMS hochgeladen wird, und ich habe gehofft, die CSS-Datei lokal mit SASS zu entwickeln, um meine Programmierung zu beschleunigen. Ich stehe in Schwierigkeiten, da die Ausgabedatei einige proprietäre Vorlagen-Tags enthalten muss, die vom CMS festgelegt wurden.Escaping {und% in SASS

Insbesondere muss ich meine generierte CSS-Datei eine Zeile wie diese enthalten:

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

ich alles versucht habe ich von dem Ausgang der { und % Zeichen denken kann, aber SASS gibt mir Fehler nicht Egal, was ich mache, denn das sind Sonderzeichen in SASS.

Gibt es eine Möglichkeit, einer Codezeile oder einzelnen Zeichen zu entkommen, damit SASS nicht versucht, sie zu verarbeiten?

Antwort

7

Es ist nicht schön, aber ich habe es zur Arbeit. Sie werden leere Kommentare auf den Seiten haben.

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

Ausgänge:

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

Hier ist eine Demo: http://sassmeister.com/gist/19651edf94cf1158037f

Hier in mixin Form ist, wenn Sie es viel tun werde:

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

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

und eine kleine Demo dazu: http://sassmeister.com/gist/50caee499ff4fe8f63c7

Wenn Sie ein Build-Tool verwenden, wäre es wahrscheinlich besser, es dem CSS selbst hinzuzufügen. Etwas wie https://github.com/godaddy/gulp-header

+1

Während dies zu tun ist ohne Zweifel eine schreckliche Idee, ich muss sagen, dass dieser Hack sehr clever ist. Wenn ich eine kleine Verbesserung vorschlagen könnte: Verschieben Sie auch das 2. '/ *' in die Saite, so dass die Zeile wie folgt aussieht: '/ * # {$ inc} * /'. Gleiches Ergebnis, sieht besser aus. –

+1

genialer Hacker. – artlung

+1

Akzeptiert die Antwort von @ Bill-criswell, weil es eine unglaublich clevere Lösung für das Problem ist. Letztendlich habe ich Grunt benutzt, um das Problem zu lösen, also konnte ich zwei separate css-Builds erstellen ... einen sauberen für die lokale Entwicklung und einen mit den seltsamen Headern, die HubSpot benötigt. –