Wie entkomme ich flüssigen Template-Tags?

89

Das klingt sehr einfach, aber ich konnte es nirgendwo in den Dokumenten finden. Wie kann ich {% this %}in eine flüssige Vorlage schreiben , ohne dass diese von der Engine verarbeitet wird?

Attila O.
quelle
Sie können jederzeit auskommentieren.
1934286

Antworten:

120

Für zukünftige Suchende gibt es eine Möglichkeit, ohne Plugins zu entkommen. Verwenden Sie den folgenden Code:

{{ "{% this " }}%}

und für Tags, um der {{ this }}Verwendung zu entgehen :

{{ "{{ this " }}}}

Es gibt auch ein Jekyll-Plugin dafür, das es viel einfacher macht: https://gist.github.com/1020852

Raw Tag für Jekyll. Verhindert, dass Flüssigkeit Text zwischen {% raw%} und {% endraw%} analysiert.

Referenz

Khaja Minhajuddin
quelle
1
Super, danke für den Hinweis. Aus irgendeinem Grund konnte ich dies in den flüssigen Dokumenten nicht finden.
Attila O.
8
Sie brauchen kein Plugin mehr {% raw %}, um es zu verwenden , für mich funktioniert es sofort und jetzt ist es in der Dokumentation
fregante
Ist es möglich, Code mit `` `anstelle von {% in Jekyll zu maskieren?
Jas
3
Die ersten paar Vorschläge haben bei mir nicht funktioniert, aber mit raw: {% raw %}{{ this }}{% endraw %}.
Jewgenij Brikman
es hat funktioniert, danke ... siehe ein echtes Beispiel hier g14n.info/2014/08/moving-from-blogger-to-github-pages/#comments
Gianluca Casati
119

Es ist möglich, die Liquid Processing Engine mithilfe des rawTags zu deaktivieren :

{% raw  %}
{% this %}
{% endraw %}

wird angezeigt

{% this %}
Etienne
quelle
Ich glaube, das war früher ein Plug-In . Ist es in der Zwischenzeit in die Kernmaschine gekommen?
Attila O.
5
Es sieht so aus, als ob das rawTag vor einem Jahr in der Core Engine hinzugefügt wurde. Siehe github.com/Shopify/liquid/commits/master/lib/liquid/tags/raw.rb
Etienne
2
Diese Flucht wird jedoch von Github nicht unterstützt.
Leiming
2
@LeiMing Sieht aus wie es jetzt ist (wahrscheinlich seit Mai 2013 )
Atomicules
2
Bestätigt, es funktioniert auf GitHub-Seiten. Das rawTag wurde in Liquid 2.3.0 eingeführt und GitHub Pages verwendet derzeit Version 2.5.5 .
Enrico Campidoglio
13

Übrigens:

Wenn Sie {{ "{% this " }}%}in Jekyll anzeigen möchten , können Sie wie folgt codieren:

{{ "{{ " }}"{{ "{% this" }} " }}{{ "}}%}

Um der {{ "{{ this " }}}}Verwendung zu entkommen :

{{ "{{ " }}"{{ "{{ this" }} " }}{{ "}}}}
leiming
quelle
27
Ha, ha hahahah ah aaaaahhh.
RobW
12

Sie können flüssigen Tags in Jekyll-Posts mit {% raw%} {% endraw%} entkommen, d. H.

{% raw %}
  {% for post in site.posts %}
     {{ post.content }}
  {% endfor %}

{% endraw %}

wird herstellen

  {% for post in site.posts %}
     {{ post.content }}
  {% endfor %}
Ahmed Bouchefra
quelle
9

Es gibt noch eine andere Option: Verwenden Sie HTML-Sonderzeichencodes, um die geschweiften Klammern durch die entsprechenden Codes zu ersetzen:

  • Ersetzen Sie jedes { durch & # 123;
  • Ersetzen Sie jedes } durch & # 125;

Weitere Informationen zu dieser Lösung finden Sie unter: http://www.tikalk.com/devops/curly_brances_workaround/

Yorammi
quelle
4

Ich habe eine allmächtige Möglichkeit gefunden, Text mit geschweiften Klammern anzuzeigen. Sie können einer Variablen einfachen Text zuweisen und anzeigen.

{% assign var = "{{ sth }}" %}
{{ var }}
MoreFreeze
quelle
Danke dir! Nützlich, um doppelten oder einfachen Anführungszeichen zu entkommen
JumpLink
1

Wie auch hier erwähnt , schlicht {% raw %}und {% endraw %}nur die zweitbeste Lösung, da diese angezeigt werden, wenn Sie den Markdown auf normalem github.com nachschlagen.

Der beste Weg ist , zu setzen {% raw %}und {% endraw %}in HTML - Kommentaren:

<!-- {% raw %} -->
something with curlky brackets like { this } and { that }
<!-- {% endraw %} -->

Aufgrund der HTML-Kommentare wird es von Github als Kommentar angesehen. Auf Github-Seiten verhindern die unformatierten Tags das Parsen der geschweiften Klammern zwischen den Tags.

liquidat
quelle
Ich mag diese Methode, weil sie aus irgendeinem Grund nicht mit meinen Auszügen zu tun hat.
Corstian Boerman
0

Ich habe es versucht {% raw %} etwas{% endraw %} ,

und {{ "{% this " }}%} . Aber beide funktionieren nicht.

Schließlich ist meine Arbeitsantwort {{ "{%" xxx }} something }} .

Mein Code:

{{ "{%" }} extends 'xadmin/base_site.html' %}
{{ "{%" }} block nav_form %}
    <h3>{{ "{{" }} title }}</h3>
    {{ "{%" }} for i in context1 %}
        <p>{{ "{{" }} i }}</p>
    {{ "{%" }} endfor %}
{{ "{%" }} endblock %}

Das Ergebnis:

{% extends 'xadmin/base_site.html' %}
{% block nav_form %}
    <h3>{{ title }}</h3>
    {% for i in context1 %}
        <p>{{ i }}</p>
    {% endfor %}
{% endblock %}

陈 章
quelle