¿Cómo escapar de las etiquetas de plantilla líquidas?

90

Esto suena muy fácil, sin embargo, no pude encontrarlo en ningún lugar de los documentos. ¿Cómo puedo escribir {% this %}en una plantilla líquida sin que sea procesada por el motor?

Attila O.
fuente
Siempre puedes comentar.
1934286

Respuestas:

121

Para los investigadores futuros, no es una manera de escapar sin plugins, utilice el código de abajo:

{{ "{% this " }}%}

y para etiquetas, para evitar el {{ this }}uso:

{{ "{{ this " }}}}

También hay un complemento jekyll para esto que lo hace mucho más fácil: https://gist.github.com/1020852

Etiqueta cruda para jekyll. Evita que el líquido analice el texto entre {% raw%} y {% endraw%}

Referencia

Khaja Minhajuddin
fuente
1
Genial, gracias por la referencia. Por alguna razón, no pude encontrar esto en los documentos líquidos.
Attila O.4 de
8
Ya no necesita un complemento para usar {% raw %}, para mí funciona fuera de la caja y ahora está en los documentos
fregante
¿Es posible escapar del código con `` `en lugar de {% en jekyll?
Jas
3
El primer par de sugerencias no funcionó para mí, pero utilizando rawhicieron: {% raw %}{{ this }}{% endraw %}.
Yevgeniy Brikman
funcionó, gracias ... vea un ejemplo real aquí g14n.info/2014/08/moving-from-blogger-to-github-pages/#comments
Gianluca Casati
120

es posible deshabilitar el motor de procesamiento de líquidos usando la rawetiqueta:

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

mostrará

{% this %}
Etienne
fuente
Creo que solía ser un complemento . ¿Entró en el motor central mientras tanto?
Attila O.30 de
5
Parece que la rawetiqueta se agregó hace un año en el motor central. Ver github.com/Shopify/liquid/commits/master/lib/liquid/tags/raw.rb
Etienne
2
Sin embargo, este escape no es compatible con Github.
Salida el
2
@LeiMing Parece que es ahora (probablemente desde mayo de 2013 )
atomicules
2
Confirmado, funciona en páginas de GitHub. La rawetiqueta se introdujo en Liquid 2.3.0 y GitHub Pages utiliza actualmente la versión 2.5.5 .
Enrico Campidoglio
13

Por cierto:

Si desea mostrar {{ "{% this " }}%}en Jekyll, puede codificar así:

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

Para escapar del {{ "{{ this " }}}}uso:

{{ "{{ " }}"{{ "{{ this" }} " }}{{ "}}}}
leiming
fuente
27
Ha, ha hahahah ah aaaaahhh.
RobW
13

Puede escapar de las etiquetas líquidas en las publicaciones de Jekyll usando {% raw%} {% endraw%} ie

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

{% endraw %}

Producirá

  {% for post in site.posts %}
     {{ post.content }}
  {% endfor %}
Ahmed Bouchefra
fuente
10

Hay otra opción: usar códigos de caracteres especiales HTML para reemplazar las llaves con sus códigos coincidentes:

  • reemplazar cada { con & # 123;
  • reemplace cada } con & # 125;

Para obtener más detalles sobre esta solución, consulte: http://www.tikalk.com/devops/curly_brances_workaround/

yorammi
fuente
4

Encontré una forma omnipotente de mostrar cualquier texto con llaves. Puede asignar texto sin formato a una variable y mostrarla.

{% assign var = "{{ sth }}" %}
{{ var }}
MásCongelar
fuente
¡Gracias! Útil para escapar de las comillas simples o dobles
JumpLink
1

Como se mencionó aquí también, simple {% raw %}y{% endraw %} son solo la segunda mejor solución, ya que se muestran si busca el Markdown en github.com normal.

La mejor manera es poner {% raw %}y {% endraw %}en comentarios HTML:

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

Debido a los comentarios HTML, Github lo ve como un comentario. En las páginas de Github, las etiquetas sin procesar evitarán el análisis de las llaves entre las etiquetas.

liquidar
fuente
Me gusta este método porque, por alguna razón, no interfiere con mis extractos.
Corstian Boerman
0

He intentado {% raw %}algo {% endraw %},

y {{ "{% this " }}%}. Pero ambos no funcionan.

finalmente, mi respuesta de trabajo es {{ "{%" xxx }} something }} .

Mi código:

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

El resultado:

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

陈 章
fuente