Jekyll文档(九) -- Templates

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并在配置文件中设置pygmentstrue

若要使代码片段语法高亮,使用以下语句将代码片段包裹起来:

{% 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):

Templates



—  我的个人空间 |   —