标签
如果您想在您的网站中包含自定义 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
注册,但建议不要在同一个项目中使用相同的名称注册标签和标签块,因为这可能会导致冲突。