到目前为止,我已在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。
杰基尔有可能吗?我进行了搜索和搜索,只找到了自定义摘录的方法,但没有将它们全部删除。
答案 0 :(得分:9)
只需将{{ content }}
替换为从{{ post.excerpt }}
{{ post.content }}
的标记
{{ post.content | remove: post.excerpt }}
这将打印content
而不显示excerpt
。
Et hop!
答案 1 :(得分:0)
我意识到这已经过时了,但接受的答案并不适合我...我认为因为在我的实例中,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 %}
这要求您在site.excerpt_separator
中定义_config.yml
,但对于此用例,您可能还有。现在,在模板中,您可以根据需要简单地引用变量:
<div class="post-excerpt">
{{ excerpt_only | append: '</p>'}}
</div>
<div class="post-content">
{{ content_remainder | remove_first: '</p>'}}
</div>
append:
和remove_first:
过滤器可以重新生成HTML格式。检查输出并根据需要进行调整。