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.