24

我的博客使用 GitHub Pages,但遇到了 Jekyll 的问题。我的 post.html 有一个这样的块:

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

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

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

4

5 回答 5

13

由于Liquid v4(包含在Jekyllfrom中v3.5)有一个Whitespace control,它最终解决了带有空白行、空格等的情况。

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

于 2017-06-20T22:18:39.360 回答
12

有一个很好的解决方法,我在https://github.com/plusjade/jekyll-bootstrap/blob/master/_includes/JB/setup中发现,它与 github pages 兼容

只需将循环包含在捕获语句中,然后将 nil 分配给生成的 var。

{% capture cache %}
    {% for p in site.posts %}
       do stuff here
    {% endfor %}
{% endcapture %}{% assign cache = nil %}
于 2014-07-01T07:15:34.670 回答
8

怎么样

{{ page.content | escape | strip_newlines }}
于 2014-09-12T08:00:53.117 回答
4

Jekyll 插件可以去除空格。

Aucor 的 Jekyll 插件:例如插件。修剪不需要的换行符/空格并按权重属性对页面进行排序。

您可以直接从其Github 存储库中获取它。所以基本上你用{% strip %}{% endstrip %}. 即使这不适合您的需要,您也可以轻松更改 ruby​​ 脚本。

例如:

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

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

引用Jekyll 文档

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

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

于 2013-07-20T03:34:20.623 回答
1

实际上,这个问题有一个新的解决方案,无需任何插件即可工作。

压缩 HTML 的 Jekyll 布局。乍看上去:

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

http://jch.penibelst.de/

如果您 - 由于某种原因 - 不想使用它,这里有一篇不错的文章,它描述了一些解决方法: 压缩 Liquid 生成的代码 - sylvain durand

于 2016-06-30T19:55:53.683 回答