【问题标题】:How to suppress blank line in Jekyll?如何在 Jekyll 中抑制空白行?
【发布时间】:2013-07-19 05:23:19
【问题描述】:

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

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

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

关于如何避免那些多余的空行有什么想法吗?

【问题讨论】:

    标签: jekyll liquid github-pages liquid-layout


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • NB -- 这种方法仅适用于 liquid。如果这样做,则在捕获标记之间生成的任何 html 内容都会被完全忽略。
      • 我不明白这是如何工作的。谁能解释一下?
      【解决方案3】:

      怎么样

      {{ page.content | escape | strip_newlines }}
      

      【讨论】:

      • 如何使用 header.html 之类的包含来做到这一点?
      • 想通了:{% capture header %}{% include header.html %}{% endcapture %}{{ header | strip_newlines }}
      【解决方案4】:

      Jekyll plugin 去掉了空格。

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

      您可以直接从它的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 Pages 发布您的网站,但您需要在本地转换网站并将生成的静态文件推送到您的 GitHub 存储库,而不是 Jekyll 源文件。

      【讨论】:

        【解决方案5】:

        其实这个问题有一个新的解决方案,不需要任何插件。

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

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

        http://jch.penibelst.de/

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-06-10
          • 1970-01-01
          • 1970-01-01
          • 2021-03-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多