2013-02-20 33 views
0

我正在將Jekyll網站轉換爲Middleman。我已經命名像filename.html.md.liquid.erb這樣的文件來按照這些順序處理這些庫:ERb,然後是液體,然後是kramdown。我發現如果文件中沒有至少一個erb標籤,模板解析會停止,整個文件將以純文本形式呈現,而不是由液體和kramdown解析。簡單地增加Middleman如果缺少ERb標籤,則不會解析源文件模板鏈

<% if nil %> 
<% end %> 

在源文件的底部,導致整個模板鏈被渲染,但我並不想成爲被迫包括這些。我只是想要選項

編輯:我剛剛發現這也適用於任何通過擴展指定的模板實際上沒有任何處理要做。因此,例如,如果我有filename.html.md.liquid.erb,並且我有ERb標籤但沒有液體標籤,則ERb將呈現正常,但Markdown將以靜態文本形式輸出。

我已經把這個標記爲tilt和middleman,只是因爲我不確定問題可能出在哪裏。

任何指針將不勝感激。

回答

0

看起來這是與緩存有關的原因。當我刪除緩存呼叫時,模板將呈現在鏈條上。我還更改了緩存鍵以使用模板擴展,這似乎也適用。通過改變rendering.rb:257

template = cache.fetch("compiled_template_#{extension}".to_sym, options, body) do 
    ::Tilt.new(path, 1, options) { body } 
end 

模板鏈分析了擴展的休息,即使前面的模板的處理不包含任何模板語言標籤。我在Middleman開了an issue,因爲可能有更好的辦法來解決這個問題。