2012-11-25 191 views
7

我有一個哲基爾本站filestructure像這樣:如何在jekyll中的markdown文件中包含HTML文件?

▾ _includes/ 
    post-entry.html 
▾ _posts/ 
    2012-11-25-first-post.markdown 
index.markdown 

在我index.markdown,我想包括post-entry.html這樣的:

{% for post in site.posts %} 
* {% include post-entry.html %} 
{% endfor %} 

但這顯示爲HTML代碼段中博客。我如何防止HTML被 保護?

回答

12

只要具有YAML標題,您可以在任何降價文件中使用液體標籤。例如,請查看jekyllbootstrap template for Jekyll sites中給出的index.md

如果您鏈接到您的實際index.markdown或您的存儲庫本身(例如,如果它在github上),我們可能可以更好地瞭解出了什麼問題。您的示例應該可以工作,但您可能需要使用HTML列表元素<li>而不是標記*

+0

在這個文件中,我不得不把代碼放在頂部,但我最終還是照現在這樣做了。 PS:不看歷史,它實際上是不同存儲庫的歷史。必須做一個'rebase'或什麼的。 – SiddharthaRT

+0

很酷,所以它聽起來像所有的東西都是按照你現在的意圖使用'index.markdown'文件中的液體代碼工作的,是的? – cboettig

+0

不,現在我正在做的是你的鏈接底部實際提到的方法:[像這樣](git://gist.github.com/4174354.git)。當我將它包含爲'{%include post.html%}'時,我得到一個輸出,如[so](http://imgur.com/FOoDo)。 – SiddharthaRT

-7

你不能。 Markdown文件只是帶有樣式的文本文件。如果你想使用液體標籤,你必須在你的_layouts中做這件事

如果我猜對了,你想在你的索引頁上使用這個markdown文件嗎?因此,在{{content}}標籤之後的default.html佈局中,您可以使用您要使用的液體標籤。無需將降價文件與代碼混合使用。

+0

我放鬆我的豆子和眼睛盯着天花板,當它擊中了我。謝謝。 – SiddharthaRT

+7

對不起,但這個答案根本不對。你可以在index.markdown文件中使用液體,正如我在答案中所指出的那樣。 – cboettig

0

改爲使用{{ post.content }}

下面是我用在我的網站作爲一個例子代碼:

{% for post in site.posts %} 
    <a href="{{ post.url }}"> 
     <h2>{{ post.title }} &mdash; {{ post.date | date_to_string }}</h2> 
    </a> 
    {{ post.content }} 
{% endfor %} 
3

問題是解析器觀看HTML的代碼塊。最好的辦法是關閉代碼塊像我asked in this question

要解決使用替換標籤:

{% capture includeGuts %} 
{% include post-entry.html %} 
{% endcapture %} 
{{ includeGuts | replace: ' ', ''}} 
相關問題