如何抑制杰基尔的空白线?

时间:2013-07-19 19:47:16

标签: jekyll liquid github-pages liquid-layout

我在我的博客中使用GitHub页面,并且遇到了Jekyll的问题。我的post.html有一个这样的块:

{%    for testpost in site.posts   %}
{%           four                  %}
{%          lines of               %}
{%         processing              %}
{%         goes here               %}
{%    endfor                       %}

中间的部分并不重要。重要的部分是在{% %}标记之外的行的结尾,因此被渲染到html中。由于这是一个循环,它将大约1000个空白行放入HTML页面的中间。它不会影响显示效果,但它会导致View / Source麻烦。

关于如何避免这些额外空白的任何想法?

5 个答案:

答案 0 :(得分:13)

有一个很好的解决方法,我在https://github.com/plusjade/jekyll-bootstrap/blob/master/_includes/JB/setup找到了,与github页面兼容

将循环包含在捕获语句中,并将nil赋值给结果变量。

{% capture cache %}
    {% for p in site.posts %}
       do stuff here
    {% endfor %}
{% endcapture %}{% assign cache = nil %}

答案 1 :(得分:7)

怎么样

{{ page.content | escape | strip_newlines }}

答案 2 :(得分:7)

由于 taskkill /F /PID [pid from previous command here] (包含在Liquid v4的{​​{1}})中有Jekyll,最终解决了空白行,空格等情况。

文档链接:https://shopify.github.io/liquid/basics/whitespace/

答案 3 :(得分:4)

Jekyll plugin删除空格。

  

Aucor的Jekyll插件:例如插件。修剪不需要的   newlines / whitespace和按重量属性排序页面。

您可以直接从Github repository获取。所以基本上你用{% strip %}{% endstrip %}包装你的代码。即使这不符合您的需求,您也可以轻松更改ruby脚本。

例如:

{% strip %}
    {%    for testpost in site.posts   %}
    {%           four                  %}
    {%          lines of               %}
    {%         processing              %}
    {%         goes here               %}
    {%    endfor                       %}
{% endstrip %}

但是,请记住Jekyll插件的性质,你不能在Github Pages服务器上运行它们。

引自Jekyll Doccumentation

  

GitHub Pages由Jekyll提供支持,但所有Pages网站都是使用--safe选项生成的,以便出于安全原因禁用自定义插件。不幸的是,这意味着如果你要部署到GitHub Pages,你的插件将无法运行。

     

您仍然可以使用GitHub页面发布您的站点,但您需要在本地转换站点并将生成的静态文件推送到GitHub存储库而不是Jekyll源文件。

答案 4 :(得分:2)

实际上这个问题有一个新的解决方案,没有任何插件。

  

压缩HTML的Jekyll布局。一目了然:

     
      
  • 删除不必要的空格;
  •   
  • 删除可选的结束标记;
  •   
  • 删除可选的开始标记;
  •   
  • 删除评论;
  •   
  • <pre>;
  • 中保留空格   
  • GitHub页面兼容;
  •   
  • 忽略开发环境;
  •   
  • 可配置的受影响元素;
  •   
  • 个人资料模式;
  •   
  • 自动测试。
  •   

http://jch.penibelst.de/

如果你 - 出于某种原因 - 不想在这里使用它是一篇很好的文章,它描述了一些解决方法: Compressing Liquid generated code - sylvain durand