webentwicklung-frage-antwort-db.com.de

Doppelte geschweifte Klammern innerhalb eines Markdown-Codeblocks in Jekyll

Ich verwende Jekyll, um eine Dokumentationssite zu erstellen, auf der ich versuche, Code zu dokumentieren, der eine Lenker-ähnliche Syntax enthält. Zum Beispiel {{foo}}. Das Problem ist, dass Jekyll flüssige Etiketten verwendet. Egal was ich mache, meine doppelten Curlys werden vom Flüssigkeitsprozessor herausgerissen.

Übrigens verwende ich kramdown als Markdown-Prozessor.

Hier habe ich etwas ausprobiert:

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

Dieser entfernt den Abschnitt {{name}} vollständig, da er der Meinung ist, dass es sich um einen Verweis auf eine flüssige Variable handelt.

Ich habe auch folgendes versucht:

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

In diesem Fall versuche ich, den geschweiften Klammern zu entkommen, aber das Ergebnis ist, dass die Schrägstriche in die Seite gerendert werden.

Ich habe es sogar ausprobiert:

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

Zugegeben, dieser war ziemlich dumm. In diesem Fall wird das span-Tag in die Seite gerendert, da ich die Syntax als html angegeben habe (was es sein muss).

Wie in aller Welt kann ich das lösen?

64
rescuecreative

Sie suchen nach dem {% raw %}-Tag.

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

Sie können {% raw %} verwenden, um sicherzustellen, dass der Inhalt von Jekyll nicht geändert wird:

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

Beachten Sie jedoch, dass dies kein Codeblock ist. Sie benötigen zusätzliche Code-Formatierungen, damit Ihr Inhalt als Code gerendert wird:

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

Bei Jekyll lautet der Code:

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

Das funktioniert in jekyll :

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

Für zukünftige Referenzen: Die Verwendung von {% raw %} und {% endraw %} ist nur die zweitbeste Lösung, da diese angezeigt werden, wenn Sie den Markdown auf normalem github.com nachschlagen.

Der beste Weg ist, {% raw %} und {% endraw %} in HTML-Kommentare einzufügen:

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

Aufgrund der HTML-Kommentare wird es von Github als Kommentar gesehen. In Github-Seiten verhindern die Raw-Tags das Parsen der geschweiften Klammern zwischen den Tags.

0
liquidat