2015-09-25 48 views
0

简短版本:您是否设法在{% include %} -ed部分中使用类似{{ page.title | cgi_escape }}的东西?Jekyll:液体过滤器“cgi_escape”返回某些变量的错误

详细情况如下:

我有一个部分,我用像这样:

{% include mainContainer.html %} 

工作正常。然后,在该部分中,尝试显示一些液体变量:

{{ page.title }}显示标题。

{{ page.content }}显示内容。

{{ page.content | cgi_escape }}显示内容,但转义。

{{ page.title | cgi_escape }}根本不起作用。创建以下错误:

Liquid Exception: undefined method `encoding' for nil:NilClass 

除了{{ page.content }}我得到任何{{ page }}变量(类别,标题等)但是所有的错误将显示效果细腻没有过滤器。此外,{{ page.title | cgi_escape }}在...呃......'内容'部分的布局(我不知道该怎么称呼它 - {{ content }}部分)中工作正常。我只是似乎得到错误{% include %}

+0

可能重复[Jekyll错误“液体异常:未定义方法\编码'nil:NilClass在\ _layouts/post.html “](http://stackoverflow.com/questions/31571150/jekyll-error-liquid-exception-undefined-method-encoding-for-nilnilclass-in) –

回答

1

没关系。该版本失败,因为使用{% include mainContainer.html %}的几页没有任何front matter,因此没有page.title(或其他)。显然,Liquid愿意让{{ page.title }}通过,如果变量没有设置,但不是{{ page.title | cgi_encode }}