web-dev-qa-db-fra.com

Comment échapper aux tags de modèle liquide?

Cela semble très facile, 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?

82
Attila O.

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

{{ "{% this " }}%}

et pour les balises, pour échapper {{ this }} utilisation:

{{ "{{ this " }}}}

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

Tag brut pour jekyll. Empêche le liquide d'analyser le texte entre {% raw%} et {% endraw%}

Référence

108

il est possible de désactiver le moteur de traitement des liquides en utilisant la balise raw:

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

affichera

{% this %}
113
Etienne

BTW:

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

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

Pour échapper à {{ "{{ this " }}}}utilisation:

{{ "{{ " }}"{{ "{{ this" }} " }}{{ "}}}}
13
leiming

Vous pouvez échapper aux tags liquides dans les publications de Jekyll en utilisant {% raw%} {% endraw%} c'est-à-dire

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

{% endraw %}

produira

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

Il existe une autre option: utiliser des codes de caractères spéciaux HTML pour remplacer les accolades avec ses codes correspondants:

  • remplacez chacun { par # 123;
  • remplacer chacun } par # 125;

Pour plus de détails sur cette solution, voir: http://www.tikalk.com/devops/curly_brances_workaround/

7
yorammi

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

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 %}
0
陈 章

Comme mentionné ici aussi, plain {% raw %} et {% endraw %} ne sont que la deuxième meilleure solution, car celles-ci sont affichées si vous recherchez le Markdown sur github.com normal.

La meilleure façon 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 considère comme un commentaire. Dans les pages Github, les balises brutes empêcheront l'analyse des accolades entre les balises.

0
liquidat