在我的index.html页面中,我想追加&#39; ...&#39; post.excerpt之后。理想化的方法是使用代码{{ post.excerpt |replace_last:'</p>', '……</p>' }}
,但似乎没有定义过滤器replace_last
。那我怎么能在jekyll做到这一点?谢谢。
答案 0 :(得分:5)
在我看来,更好的方法是CSS:
after
这增加了&#34; ..&#34;到摘录div
中的最后一段<div class="excerpt">
<p>Normal paragraph.</p>
<p>Paragraph with trailing ellipsis.</p>
</div>
psuedo-element。
slice
如果您需要使用Jekyll,可以使用</p>
过滤器切断尾随的append
和'...</p>'
过滤器,以便将{{1}}添加到最后。如果您的摘录不以段落结尾,则无效。
答案 1 :(得分:1)
我更喜欢先从post.excerpt
剥离p标签,然后追加&#39; ...&#39;。
这样,我们甚至可以添加&#34;阅读更多&#34; p
内的链接。
<p>
{{ post.excerpt | strip_html | append: "..." }}
{% if post.excerpt != post.content %}
<a href="{{ post.url | prepend: site.baseurl }}"> >></a>
{% endif %}
</p>
答案 2 :(得分:1)
我找到了一种解决方法,可以通过“阅读更多”链接实现省略号。 truncate
过滤器和设置excerpt_separator
都有缺点,但是,通过split
自己实现它很简单。在您的index.html
迭代帖子的地方使用它:
{{ post.content | split:'<!--read more-->' | first | append: "…"}} <a href="{{ site.baseurl }}{{ post.url }}">Read more</a>
您只需要将<!--read more-->
放在您的博客文章中您想截断的任何地方,并替换为“ ... Read More”链接即可。