¿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?


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


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

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

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


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

¡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.


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.