【问题标题】:Posting everything except the excerpt in Jekyll在 Jekyll 中发布除摘录之外的所有内容
【发布时间】:2014-08-27 12:29:36
【问题描述】:

到目前为止,我已经在我的 config.yml 文件中做了一个自定义摘录:excerpt_separator: <!--more-->

当我写一篇文章时,我想在列表页面上显示摘录,效果很好。但是,我想知道是否可以在帖子页面上发布所有不是摘录的内容。

示例文章:

---
title: Lorem ipsum dolor
layout: post
---
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Cras in malesuada ipsum. Vivamus sapien orci, vulputate vitae 
consectetur ut, ullamcorper nec quam. Aliquam erat volutpat.

<!--more-->

Cras lacinia vehicula gravida. Cras sem quam, tincidunt at fringilla
sed, venenatis quis mauris. Praesent sit amet arcu varius mi sodales ultrices. 

在帖子页面上,我只想显示以“Cras lacinia”开头的段落,而不是 Lorem ipsum。

在 Jekyll 中可以吗?我进行了搜索和搜索,只找到了自定义摘录的方法,但没有将其全部删除。

【问题讨论】:

    标签: yaml jekyll liquid github-pages


    【解决方案1】:

    只需将{{ content }} 替换为从{{ post.content }} 中删除{{ post.excerpt }} 的标记

    {{ post.content | remove: post.excerpt }}
    

    这将打印没有excerptcontent。 跳吧!

    【讨论】:

    • 哇。这非常简单。谢谢你。编辑:仍然没有足够的代表来投票,但我选择了你的作为答案。
    • @DavidJacquel 您好,我如何将它用于收藏? {{ 页面内容 |删除:page.excerpt }} 似乎不起作用。
    【解决方案2】:

    我意识到这是旧的,但接受的答案对我不起作用......我认为因为在我的实例中,page.content 和 page.excerpt 已经从 Markdown 呈现为 HTML,而标签和空格没有'不完全匹配。

    下面是我的解决方案,供任何前来寻找的人使用。它将帖子内容拆分为一个包含[摘录,余数]的数组:

    {% assign content_array = page.content | split: site.excerpt_separator %}
    {% assign excerpt_only = content_array | first %}
    {% assign content_remainder = content_array | last %}
    

    这要求您在_config.yml 中定义site.excerpt_separator,但对于这个用例,您可能无论如何都有。现在在您的模板中,您可以根据需要简单地引用变量:

    <div class="post-excerpt">
      {{ excerpt_only | append: '</p>'}}
    </div>
    
    <div class="post-content">
      {{ content_remainder | remove_first: '</p>'}}
    </div>
    

    append:remove_first: 过滤器将再次使生成的 HTML 格式正确。检查您的输出并根据需要进行调整。

    【讨论】:

      猜你喜欢
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 2012-08-01
      • 2014-06-27
      • 1970-01-01
      相关资源
      最近更新 更多