web-dev-qa-db-fra.com

Échappement de doubles accolades dans un bloc de code d'abaissement dans Jekyll

J'utilise Jekyll pour créer un site de documentation dans lequel je tente de documenter du code contenant une syntaxe semblable à celle d'un guidon. Par exemple {{foo}}. Le problème, c’est que Jekyll utilise des étiquettes liquides et, quoi que je fasse, mes doubles curlies sont arrachées par le processeur de liquide.

En passant, j'utilise kramdown en tant que processeur de démarques.

Voici quelque chose que j'ai essayé:

{% highlight html linenos %}
  Hello, my name is {{name}}.
{% endhighlight %}

Celui-ci supprime complètement la section {{name}} car il pense que c'est une référence à une variable liquide.

J'ai aussi essayé ceci:

{% highlight html linenos %}
  Hello, my name is \{\{name\}\}.
{% endhighlight %}

Dans ce cas, j'essaie d'échapper aux accolades, mais le résultat est que les barres obliques sont rendues dans la page.

J'ai même essayé ceci:

{% highlight html linenos %}
  Hello, my name is <span>{</span>{name}}.
{% endhighlight %}

Certes, celui-ci était plutôt bête. Dans ce cas, étant donné que j'ai spécifié la syntaxe au format HTML (ce qui doit être le cas), la balise span est rendue dans la page.

Alors, comment dans le monde puis-je résoudre ce problème?

64
rescuecreative

Vous recherchez l'étiquette {% raw %}.

{% raw %}
Hello, my name is {{name}}.
{% endraw %}
137
SLaks

Vous pouvez utiliser {% raw %} pour vous assurer que le contenu n'est pas modifié par Jekyll:

{% raw %}
This is inserted literally: {{foo}}
{% endraw %}

Cependant, notez que ceci est pas un bloc de code . Vous aurez besoin d'une mise en forme de code supplémentaire pour rendre votre contenu rendu sous forme de code:

{% raw %}
    I'm a code block, because I'm indented by 4 spaces
{% endraw %}
{% raw %}
```handlebars
I'm a code block that contains {{handlebars}}
with highlighting.
```
{% endraw %}
22
Wilfred Hughes

Avec jekyll le code est:

{% highlight html%}
{% raw %}
     <h2> {{ user.name.first | uppercase }}</h2>
     <p> {{ user.email }}</p>
{% endraw %}
{% endhighlight %}
15
Nicolas Molina

Cela fonctionne dans jekyll :

{%raw%}{{thing}}{%endraw%}
0
Lisa Sinclair

Pour les références futures: utiliser plain {% raw %} et {% endraw %} n'est que la deuxième meilleure solution, car celles-ci sont affichées si vous recherchez la réduction 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, il est considéré par Github comme un commentaire. Dans les pages Github, les balises brutes empêcheront l’analyse des accolades entre les balises.

0
liquidat