Wie entkomme ich flüssigen Template-Tags?


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


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 %}

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" }} " }}{{ "}}}}

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 %}

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/


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 }}

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.


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 %}

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.