標籤
如果您想在您的網站中包含自訂的 liquid 標籤,您可以透過連接到標籤系統來執行此操作。Jekyll 新增的內建範例包括 highlight
和 include
標籤。以下是自訂 liquid 標籤的範例,它會輸出頁面渲染的時間
module Jekyll
class RenderTimeTag < Liquid::Tag
def initialize(tag_name, text, tokens)
super
@text = text
end
def render(context)
"#{@text} #{Time.now}"
end
end
end
Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTag)
至少,liquid 標籤必須實作
方法 | 說明 |
---|---|
|
輸出標籤的內容。 |
您還必須使用 Liquid 範本引擎註冊自訂標籤,如下所示
Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTag)
在上面的範例中,我們可以在我們的其中一個頁面的任何地方放置下列標籤
<p>{% render_time page rendered at: %}</p>
我們會在頁面上看到類似這樣的內容
<p>page rendered at: Tue June 22 23:38:47 –0500 2010</p>
標籤區塊
上面看到的 render_time
標籤也可以透過繼承 Liquid::Block
類別,改寫為標籤區塊。請看以下範例
module Jekyll
class RenderTimeTagBlock < Liquid::Block
def render(context)
text = super
"<p>#{text} #{Time.now}</p>"
end
end
end
Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTagBlock)
我們現在可以在任何地方使用標籤區塊
{% render_time %}
page rendered at:
{% endrender_time %}
而且我們仍然可以在頁面上獲得與上面相同的輸出
<p>page rendered at: Tue June 22 23:38:47 –0500 2010</p>
在上面的範例中,標籤區塊和標籤都註冊為名稱 render_time
,但建議不要在同一個專案中使用相同名稱註冊標籤和標籤區塊,因為這可能會導致衝突。