Jekyllのマークダウンコードブロック内の二重中括弧のエスケープ


89

Jekyllを使用して、ハンドルバーのような構文を含むコードをドキュメント化しようとしているドキュメントサイトを作成しています。たとえば{{foo}}。問題は、ジキルが液体タグを使用していて、私が何をしても、私のダブルカーリーが液体プロセッサーによって引き裂かれていることです。

ちなみに、私はマークダウンプロセッサとしてkramdownを使用しています。

これが私が試したものです:

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

これは、液体変数への参照であると見なすため、{{name}}セクションを完全に削除します。

私もこれを試しました:

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

この場合、中括弧をエスケープしようとしていますが、結果としてスラッシュがページにレンダリングされます。

私もこれを試しました:

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

確かにこれはかなり馬鹿だった。この場合、構文をhtml(必要)として指定したため、spanタグがページにレンダリングされます。

では、世界でこれをどのように解決できますか?

回答:


184

あなたは{% raw %}タグを探しています。

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

6
あはは!あなたは私の新しい親友です。
rescuecreative

ありがとう、これはまさに私が欲しいものです。
wukong 2014年

ありがとう...これは私を夢中にさせていました。
LearningMachine

esacapeしたいコードが{% raw %} {{...}} {% endraw %}、まさにこの主題について議論しているブログ投稿にあるようなものである場合はどうでしょうか。
スターフライ2016

3
@starfry:おかしな質問をする必要があります... blog.slaks.net/2013-06-10/jekyll-endraw-in-code
SLaks 2016

33

{% raw %}Jekyllによってコンテンツが変更されていないことを確認するために使用できます。

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

ただし、これはコードブロックでないことに注意してください。コンテンツをコードとしてレンダリングするには、追加のコードフォーマットが必要になります。

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

その追加をありがとう。毎回、それよりも少し醜い{% raw %}{{ foo }}{% endraw %}ことをしてしまったので、ここで何をしたか見てみましょう。
rescuecreative

これは、コードブロックとその構文を保持できるため、より柔軟なソリューションです。
キッド2017年

20

jekyllの場合、コードは次のとおりです。

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

これが正確な解決策です。ありがとう!
Jerad Rutnam 2016

注目に値する:上記は、ルージュ蛍光ペンでも機能します。ただし、コードを強調表示するためにフェンスで囲まれた構文を使用する場合、rawは機能しません( `` `html…のような3つの主要なバック
ティック

5

今後の参考のために:通常のgithub.comでMarkdownを検索すると表示されるため、プレーン{% raw %}を使用{% endraw %}することは2番目に良い解決策にすぎません。

最良の方法は置くことです{% raw %}し、{% endraw %}HTMLのコメントで:

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

HTMLコメントのため、Githubではコメントと見なされます。Githubページでは、rawタグにより、タグ間の中括弧の解析が防止されます。


3

これはjekyllで機能します

{%raw%}{{thing}}{%endraw%}

参考までに、Jekyll内のコードブロックが機能することを示すために、トリプルバッククォートを含めました。返信でコードブロックを作成することは意図されていませんでした:)
Lisa Sinclair
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.