2014-06-08 59 views
57

我正在使用Jekyll創建一個文檔站點,其中我試圖記錄一些包含句柄狀語法的代碼。例如{{foo}}。問題是,Jekyll使用液體標籤,不管我做什麼,我的雙曲線都被液體處理器撕掉了。在Jekyll中的降價代碼塊內轉義雙花括號

順便說一下,我使用kramdown作爲降價處理器。

這裏是我已經試過:

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

這一個完全刪除,因爲它認爲它是一種液體變量的引用{{名}}節。

我也試過這樣:

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

在這種情況下,我試圖逃跑的花括號,但結果是斜線得到渲染到頁面。

我甚至試過這樣:

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

誠然,這是一個非常愚蠢的。在這種情況下,因爲我已經將語法指定爲html(它需要),所以span標記被渲染到頁面中。

那麼我怎麼能解決這個問題呢?

回答

118

您正在查找{% raw %}標記。

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

啊哈!你是我最好的朋友。 – rescuecreative

+0

謝謝,這正是我想要的。 – wukong

+0

謝謝......這讓我瘋狂。 – learningMachine

19

您可以使用{% raw %},以確保內容是由未修改傑基爾:

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

謝謝你的加入。對於每一個事件,我最終都會比'{raw raw%} {{foo}} {%endraw%}'做得更醜,所以我會看看你在這裏做了什麼。 – rescuecreative

+0

是的!謝謝!! – bordeltabernacle

+0

這是一個更靈活的解決方案,因爲它允許保留代碼塊及其語法。 – Kiddo

12

隨着哲基爾代碼:

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

這是確切的解決方案。謝謝! –