Jekyll使用Liquid模板语言来处理模板,它支持Liquid的所有标签tags和过滤器filters。Jekyll还增加了一些自身独有的标签和过滤器,用来简化通用任务。
过滤器(Filters)
描述 | 过滤器(FILTER)和输出(OUTPUT) |
---|---|
Date to XML Schema 将日期转化为XML格式(ISO 8601) |
{{ site.time | data_to_xmlschema }} 2008-11-17T13:07:54-08:00 |
Date to RFC-822 Format 将日期转换为RFC-822格式,在RSS订阅中有用 |
{{ site.time | data_to_rfc822 }} Mon, 17 Nov 2008 13:07:54 -0800 |
Date to String 将日期转换为短字符串格式 |
{{ site.time | data_to_string }} 17 Nov 2008 |
Date to Long String 将日期转换为长字符串格式 |
{{ site.time | data_to_long_string }} 17 November 2008 |
XML Escape 将一些文本转义,用在XML中 |
{{ page.content | xml_escape }} |
CGI Escape 将字符串进行CGI转义,用在URL中。将每个特殊字符用对应的%XX来替换。 |
{{ "foo,bar;baz?" | cgi_escape }} foo%2Cbar%3Bbaz%3F |
URI Escape 将字符串进行URI转义 |
{{ “'foo, bar \\baz?'” | uri_escape }} foo,%20bar%20%5Cbaz? |
Number of Words 计算文本中包含的单词个数 |
{{ page.content | number_of_words }} 1337 |
Array to Sentence 将数组转换为句子,即将数组中的多个元素组合成一个字符串。在显示列出所有标签时比较有用。 |
{{ page.tags | array_to_sentence_string }} foo, bar, and baz |
Textilize 通过RedCloth将Textile格式的字符串转换为HTML |
{{ page.excerpt | textilize }} |
Markdownify 将Markdown格式的字符串转换为HTML |
{{ page.excerpt | markdownify }} |
标签(Tags)
包含(Includes)
如果你有一些页面布局希望能在多个地方复用,可以使用include标签。
{% include footer.html %}
Jekyll默认将所有include文件放到源码根目录下的子目录_includes中。上面的语句会将<source>/_includes/footer.html文件中的内容嵌入到调用这个语句的文件中。
还可以给一个include传入参数:
{% include footer.html param="value" %}
这些参数可以在include中通过Liquid来调用:
{{ include.param }}
###代码片段高亮化
Jekyll有内置的Pygments语法高亮支持,可以支持超过100种语言的语法高亮。使用Pygments需要安装Python并在配置文件中设置pygments为true。
若要使代码片段语法高亮,使用以下语句将代码片段包裹起来:
{% highlight ruby %}
def foo
puts 'foo'
end
{% endhighlight %}
highlight标签的参数(例如上例中的ruby)是语言的标识。在Lexers page中可以找到需要高亮显示的编程语言对应的”短名称”。
行号
highlight标签还有第二个参数:linenos,这是个可选项。使用参数linenos可以强制高亮的代码段前面显示行号。例如,下面的代码段每一行前面都会包含行号:
{% highlight ruby linenos %}
def foo
puts 'foo'
end
{% endhighlight %}
语法高亮样式单(Stylesheets for syntax highlighting)
语法的高亮显示需要包含包含高亮样式单。这里有个样式单的例子:syntax.css。还有很多Github使用的样式单,你可以在你的网站中自由使用。如果使用了行号参数linenos,你可能需要在syntax.css中包含一个额外的CSS类的声明:.lineno,这样可以将行号和高亮代码区分开来。
文章链接地址(Post URL)
如果你希望包含你的网站中的某个post的链接,可以使用post_url标签,它会指定post的正确的永久链接。
{% post_url 2010-07-21-name-of-post %}
使用post_url标签时,不需要加上文件的后缀名。
你也可以在Markdown中使用这个标签来创建某个post的链接:
[Name of Link]({% post_url 2010-07-21-name-of-post %})
Gist
使用gist标签可以轻易的将一个GitHub Gist嵌入到你的网站中:
{% gist 5555251 %}
你也可以在gist中指定显示的文件名,这是可选的:
{% gist 5555251 result.md %}
gist标签也可以使用私有的gists,需要有gist的拥有者的github用户名:
{% gist parkr/931c1c8d465a04042403 %}
私有gist语法也支持指定文件名。
PS:
文章翻译自jekyll官方文档(2013-10-09):