Comment échapper aux balises de modèles liquides?


90

Cela semble très simple, mais je ne l'ai trouvé nulle part dans la documentation. Comment puis-je écrire {% this %}dans un modèle liquide , sans qu'il soit traité par le moteur?


Vous pouvez toujours commenter.
1934286

Réponses:


121

Pour les futurs chercheurs, il existe un moyen de s'échapper sans plugins, utilisez le code ci-dessous:

{{ "{% this " }}%}

et pour les balises, pour éviter d' {{ this }}utiliser:

{{ "{{ this " }}}}

Il existe également un plugin jekyll pour cela qui le rend beaucoup plus facile: https://gist.github.com/1020852

Balise brute pour jekyll. Empêche les liquides d'analyser le texte entre {% raw%} et {% endraw%}

Référence


1
Super, merci pour la référence. Pour une raison quelconque, je n'ai pas pu trouver cela dans la documentation liquide.
Attila O.

8
Vous n'avez plus besoin d'un plugin à utiliser {% raw %}, pour moi cela fonctionne hors de la boîte et maintenant c'est dans la documentation
fregante

est-il possible d'échapper au code avec `` '' au lieu de {% dans jekyll?
Jas

3
Les premières suggestions de couple ne fonctionnent pas pour moi, mais en utilisant rawfait: {% raw %}{{ this }}{% endraw %}.
Yevgeniy Brikman

cela a fonctionné, merci ... voir un exemple réel ici g14n.info/2014/08/moving-from-blogger-to-github-pages/#comments
Gianluca Casati

120

il est possible de désactiver le moteur de traitement des liquides à l'aide de la rawbalise:

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

Affichera

{% this %}

Je crois que c'était un plug-in . Est-il entré dans le moteur de base entre-temps?
Attila O.30

5
Il semble que la rawbalise ait été ajoutée il y a un an dans le moteur principal. Voir github.com/Shopify/liquid/commits/master/lib/liquid/tags/raw.rb
Etienne

2
Cependant, cet échappement n'est pas pris en charge par Github.
leiming

2
@LeiMing On dirait que c'est maintenant (probablement depuis mai 2013 )
atomicules

2
Confirmé, cela fonctionne sur les pages GitHub. La rawbalise a été introduite dans Liquid 2.3.0 et GitHub Pages utilise actuellement la version 2.5.5 .
Enrico Campidoglio

13

BTW:

Si vous souhaitez afficher {{ "{% this " }}%}dans Jekyll, vous pouvez coder comme ceci:

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

Pour échapper, {{ "{{ this " }}}}utilisez:

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

27
Ha, ha hahahah ah aaaaahhh.
RobW

13

Vous pouvez échapper aux balises liquides dans les messages Jekyll en utilisant {% raw%} {% endraw%} ie

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

{% endraw %}

produira

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


4

J'ai trouvé un moyen omnipotent d'afficher n'importe quel texte avec des accolades. Vous pouvez affecter du texte brut à une variable et l'afficher.

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

Je vous remercie! Utile pour échapper des guillemets doubles ou simples
JumpLink

1

Comme il est mentionné ici aussi, plaine {% raw %}et {% endraw %}sont la deuxième meilleure solution puisque ceux -ci sont affichés si vous regardez le Markdown sur github.com normal.

Le meilleur moyen est de mettre {% raw %}et {% endraw %}dans les commentaires HTML:

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

En raison des commentaires HTML, Github le voit comme un commentaire. Dans les pages Github, les balises brutes empêcheront l'analyse des accolades entre les balises.


J'aime cette méthode car, pour une raison quelconque, elle ne gâche pas mes extraits.
Corstian Boerman

0

J'ai essayé {% raw %}quelque chose {% endraw %},

et {{ "{% this " }}%}. Mais ils ne fonctionnent pas tous les deux.

enfin, ma réponse de travail est {{ "{%" xxx }} something }}.

Mon code:

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

Le résultat:

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.