![](/img/trans.png)
[英]Why do I get a double frame around markdown code block on Jekyll site?
[英]Escaping double curly braces inside a markdown code block in Jekyll
我正在使用 Jekyll 創建一個文檔站點,我試圖在其中記錄一些包含類似把手語法的代碼。 例如{{foo}}
。 問題是 Jekyll 使用液體標簽,無論我做什么,我的雙卷發都會被液體處理器撕掉。
順便說一下,我使用 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 標記會呈現到頁面中。
那么我到底該如何解決這個問題呢?
您正在尋找{% raw %}
標簽。
{% raw %}
Hello, my name is {{name}}.
{% endraw %}
你可以使用{% 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 %}
使用 jekyll 的代碼是:
{% highlight html%}
{% raw %}
<h2> {{ user.name.first | uppercase }}</h2>
<p> {{ user.email }}</p>
{% endraw %}
{% endhighlight %}
供將來參考:使用普通的{% raw %}
和{% endraw %}
只是第二好的解決方案,因為如果您在正常的 github.com 上查找 Markdown,則會顯示這些。
最好的方法是將{% raw %}
和{% endraw %}
放在 HTML 注釋中:
<!-- {% raw %} -->
something with curlky brackets like { this } and { that }
<!-- {% endraw %} -->
由於 HTML 注釋,Github 將其視為注釋。 在 Github 頁面中,原始標簽將阻止解析標簽之間的大括號。
這適用於jekyll :
{%raw%}{{thing}}{%endraw%}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.