Jak uciec z płynnych tagów szablonów?

90

Brzmi to bardzo łatwo, jednak nie mogłem go znaleźć nigdzie w dokumentacji. Jak mogę pisać {% this %}w płynnym szablonie, bez przetwarzania go przez silnik?

Attila O.
źródło
Zawsze możesz skomentować.
1934286

Odpowiedzi:

121

Dla przyszłych poszukiwaczy, nie jest to sposób na ucieczkę bez wtyczek, należy użyć poniższy kod:

{{ "{% this " }}%}

a dla tagów, aby uniknąć {{ this }}użycia:

{{ "{{ this " }}}}

Istnieje również wtyczka jekyll, która znacznie ułatwia to: https://gist.github.com/1020852

Surowy tag dla jekyll. Chroni płyn przed analizowaniem tekstu między {% raw%} a {% endraw%}

Odniesienie

Khaja Minhajuddin
źródło
1
Świetnie, dzięki za referencje. Z jakiegoś powodu nie mogłem znaleźć tego w płynnych dokumentach.
Attila O.
8
Nie potrzebujesz już wtyczki do użycia {% raw %}, dla mnie działa po wyjęciu z pudełka, a teraz jest w dokumentacji
fregante
czy można uciec przed kodem za pomocą `` '' zamiast {% w jekyll?
Jas
3
Pierwsze kilka sugestii nie dla mnie, ale przy rawtak: {% raw %}{{ this }}{% endraw %}.
Yevgeniy Brikman
zadziałało, dzięki ... zobacz prawdziwy przykład tutaj g14n.info/2014/08/moving-from-blogger-to-github-pages/#comments
Gianluca Casati
120

istnieje możliwość wyłączenia silnika przetwarzania cieczy za pomocą rawtagu:

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

wyświetli się

{% this %}
Etienne
źródło
Uważam, że to była wtyczka . Czy w międzyczasie dostał się do podstawowego silnika?
Attila O.
5
Wygląda na to, że rawtag został dodany rok temu w głównym silniku. Zobacz github.com/Shopify/liquid/commits/master/lib/liquid/tags/raw.rb
Etienne
2
Jednak ta ucieczka nie jest obsługiwana przez Github.
leiming
2
@LeiMing Wygląda na to, że jest teraz (prawdopodobnie od maja 2013 )
atomicules
2
Potwierdzono, działa na GitHub Pages. rawTag został wprowadzony w ciekłym 2.3.0 i GitHub Strony aktualnie używa wersji 2.5.5 .
Enrico Campidoglio
13

BTW:

Jeśli chcesz wyświetlać {{ "{% this " }}%}w Jekyll, możesz kodować w ten sposób:

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

Aby uniknąć {{ "{{ this " }}}}użycia:

{{ "{{ " }}"{{ "{{ this" }} " }}{{ "}}}}
leiming
źródło
27
Ha, ha hahahah ah aaaaahhh.
RobW
13

Możesz uniknąć płynnych tagów w postach Jekyll za pomocą {% raw%} {% endraw%} ie

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

{% endraw %}

będzie produkować

  {% for post in site.posts %}
     {{ post.content }}
  {% endfor %}
Ahmed Bouchefra
źródło
4

Znalazłem wszechmocny sposób na wyświetlanie dowolnego tekstu za pomocą nawiasów klamrowych. Możesz przypisać zwykły tekst do zmiennej i wyświetlić ją.

{% assign var = "{{ sth }}" %}
{{ var }}
WięcejFreeze
źródło
Dziękuję Ci! Przydatne do unikania podwójnych lub pojedynczych cudzysłowów
JumpLink
1

Jak wspomniano tutaj również, proste {% raw %}i {% endraw %}są tylko drugim najlepszym rozwiązaniem, ponieważ są one wyświetlane, jeśli spojrzysz na Markdown na zwykłym github.com.

Najlepszym sposobem jest umieszczanie {% raw %}i {% endraw %}w komentarzach HTML:

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

Ze względu na komentarze HTML jest on postrzegany przez Github jako komentarz. Na stronach Github surowe tagi zapobiegną parsowaniu nawiasów klamrowych między tagami.

likwidat
źródło
Podoba mi się ta metoda, ponieważ z jakiegoś powodu nie psuje moich fragmentów.
Corstian Boerman
0

Próbowałem {% raw %}czegoś{% endraw %} ,

i {{ "{% this " }}%} . Ale oboje nie działają.

wreszcie moja robocza odpowiedź brzmi {{ "{%" xxx }} something }} .

Mój kod:

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

Wynik:

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

陈 章
źródło