我想在博文中包含HTML代碼片段,並將代碼放在一個地方。仔細閱讀框架後,我已經能夠得到這個工作:Octopress HTML包含參數
source
_includes
custom
foo.html
{% include custom/foo.html %}
我的問題:有沒有辦法,我可以傳遞參數到foo.html?我只是想傳遞一些字符串,並以格式化的方式輸出它們,並且無法弄清楚我錯過了什麼。
謝謝你的時間。
我想在博文中包含HTML代碼片段,並將代碼放在一個地方。仔細閱讀框架後,我已經能夠得到這個工作:Octopress HTML包含參數
source
_includes
custom
foo.html
{% include custom/foo.html %}
我的問題:有沒有辦法,我可以傳遞參數到foo.html?我只是想傳遞一些字符串,並以格式化的方式輸出它們,並且無法弄清楚我錯過了什麼。
謝謝你的時間。
你不行。但是你可以使用其他方式來喜歡做什麼主題。
首先,設置格式化你custom/foo.html
想要的風格,例如,我添加了一個customfooter
在source/_includes/custom/footer.html
:
<p>
Copyright © {{ site.time | date: "%Y" }} - {{ site.author }} -
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
{{ site:customfooter }}
</p>
然後,設置字符串要在_config.yml
設置:
url: http://fann.im
customfooter: My custom footer, bala bala.
希望這會幫助你。
沒有辦法做到這一點,因爲Jekyll是靜態的。根據定義,任何可以從一個文件傳遞到另一個文件的內容都是已知的值,因爲它必須在網站生成時定義。由於您無法傳遞動態值,因此您可以將靜態值放在任何位置,因此這種間接性沒有意義。
如果您有例如生成10個大部分類似但稍有不同的輸出塊,然後使用插件完成使用變量隔離這些更改的任務。這爲您提供了一些靈活性,同時仍然將該值放入要用到的模板中。
下面是一個液體標籤的例子,該標籤用特定的hrefs分配生成twitter bootstrap導航標籤。
module Jekyll
class XmlJsonTabsTag < Liquid::Tag
def initialize(tag_name, markup, tokens)
@methodname = markup.strip
super
end
def render(context)
#wondering what this syntax is? google "here document"
<<-HTML
<ul class="nav nav-tabs">
<li class="active">
<a href="##{@methodname}-json" data-toggle="tab">JSON</a>
</li>
<li>
<a href="##{@methodname}-xml" data-toggle="tab">XML</a>
</li>
</ul>
HTML
end
end
end
Liquid::Template.register_tag('xmljsontabs', Jekyll::XmlJsonTabsTag)
傳遞給液體標籤模板使用@methodname
值:它輸出類似
<ul class="nav nav-tabs">
<li class="active">
<a href="#foo-json" data-toggle="tab">JSON</a>
</li>
<li>
<a href="#foo-xml" data-toggle="tab">XML</a>
</li>
</ul>
正是我一直在尋找
。感謝您的詳細解答。 – 2013-02-24 12:12:49