Come sfuggire ai tag dei modelli liquidi?


90

Sembra molto facile, tuttavia non sono riuscito a trovarlo da nessuna parte nei documenti. Come posso scrivere {% this %}in un template liquido , senza che venga elaborato dal motore?


Puoi sempre commentare.
1934286

Risposte:


122

Per i ricercatori futuri, c'è un modo per sfuggire senza plugin, utilizzare il codice qui sotto:

{{ "{% this " }}%}

e per i tag, per sfuggire {{ this }}all'uso:

{{ "{{ this " }}}}

C'è anche un plugin jekyll per questo che lo rende molto più semplice: https://gist.github.com/1020852

Tag grezzo per jekyll. Impedisce ai liquidi di analizzare il testo tra {% raw%} e {% endraw%}

Riferimento


1
Ottimo, grazie per il riferimento. Per qualche motivo non sono riuscito a trovarlo nei documenti liquidi.
Attila O.

9
Non hai più bisogno di un plugin da usare {% raw %}, per me funziona fuori dagli schemi e ora è nella documentazione
fregante

è possibile eseguire l'escape del codice con "" invece di {% in jekyll?
Jas

3
I primi due suggerimenti non ha funzionato per me, ma utilizzando rawfatto: {% raw %}{{ this }}{% endraw %}.
Yevgeniy Brikman

ha funzionato, grazie ... guarda un esempio reale qui g14n.info/2014/08/moving-from-blogger-to-github-pages/#comments
Gianluca Casati

121

è possibile disabilitare il motore di elaborazione dei liquidi utilizzando il rawtag:

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

verrà visualizzato

{% this %}

Credo che questo fosse un plug-in . Nel frattempo è entrato nel motore principale?
Attila O.

5
Sembra che il rawtag sia stato aggiunto un anno fa nel motore principale. Vedi github.com/Shopify/liquid/commits/master/lib/liquid/tags/raw.rb
Etienne

2
Tuttavia, questa fuga non è supportata da Github.
leiming

2
@LeiMing Sembra che lo sia ora (probabilmente da maggio 2013 )
atomicules

3
Confermato, funziona su GitHub Pages. Il rawtag è stato introdotto in Liquid 2.3.0 e GitHub Pages utilizza attualmente la versione 2.5.5 .
Enrico Campidoglio

14

Puoi sfuggire ai tag liquidi nei post di Jekyll utilizzando {% raw%} {% endraw%} es

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

{% endraw %}

produrrà

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

13

BTW:

Se vuoi visualizzare {{ "{% this " }}%}in Jekyll, puoi codificare in questo modo:

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

Per sfuggire {{ "{{ this " }}}}usa:

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

28
Ha, ha hahahah ah aaaaahhh.
RobW


4

Ho trovato un modo onnipotente per visualizzare qualsiasi testo con le parentesi graffe. È possibile assegnare testo normale a una variabile e visualizzarlo.

{% assign var = "{{ sth }}" %}
{{ var }}

Grazie! Utile per sfuggire alle virgolette singole o doppie
JumpLink

1

Come accennato anche qui , pianura {% raw %}e{% endraw %} sono solo la seconda migliore soluzione poiché quelle vengono mostrate se cerchi il Markdown sul normale github.com.

Il modo migliore è inserire {% raw %}e {% endraw %}nei commenti HTML:

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

A causa dei commenti HTML, viene visto da Github come un commento. Nelle pagine Github i tag grezzi impediranno l'analisi delle parentesi graffe tra i tag.


Mi piace questo metodo perché, per qualche motivo, non interferisce con i miei estratti.
Corstian Boerman

0

Ho provato {% raw %}qualcosa{% endraw %} ,

e {{ "{% this " }}%} . Ma entrambi non funzionano.

infine, la mia risposta di lavoro è {{ "{%" xxx }} something }} .

Il mio codice:

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

Il risultato:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.