Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jekyll Post摘录:如何知道是否有自动生成的摘录?_Jekyll - Fatal编程技术网

Jekyll Post摘录:如何知道是否有自动生成的摘录?

Jekyll Post摘录:如何知道是否有自动生成的摘录?,jekyll,Jekyll,如果我理解正确,Jekyll会将第一段作为摘录,除非您使用各种方法之一手动标记或指定一种方法 在我的例子中,我希望能够在模板中区分是否没有摘录,这样我就可以有效地做到这一点 {% if post.excerpt %} {{ post.excerpt }} {% else %} {{ post.content }} {% endif %} 如果没有摘录,有效地使用整个帖子。事实上,由于Jekyll自动生成摘录,测试总是会失败 我想有一个解决办法,那就是去看每一篇没有摘录的

如果我理解正确,Jekyll会将第一段作为摘录,除非您使用各种方法之一手动标记或指定一种方法

在我的例子中,我希望能够在模板中区分是否没有摘录,这样我就可以有效地做到这一点

{% if post.excerpt %}

    {{ post.excerpt }}

{% else %}

    {{ post.content }}

{% endif %}
如果没有摘录,有效地使用整个帖子。事实上,由于Jekyll自动生成摘录,测试总是会失败

我想有一个解决办法,那就是去看每一篇没有摘录的文章,在文章的最下面添加
,但这很容易出错,因为如果我忘记了,我会得到错误的结果。我宁愿将默认设置为:如果我没有手动标记摘录,那么整个文章都会显示在主页上

换句话说,我正试图从Wordpress移植到Jekyll。Wordpress的行为是没有摘录=插入整个帖子


在杰基尔,这可能吗?模板中是否有一些标志或变量可以检查摘录是手动指定的还是自动生成的?

我不知道如何判断摘录是手动还是生成的。也许可以选择编写插件来分析原始文件的前端内容(但这在Github页面上不起作用)

但我可能有一个解决办法:

我宁愿将默认设置为:如果我没有手动标记摘录,那么整个文章都会显示在主页上

根据,您可以为每页设置
摘录分隔符
(也可以在中立即设置)

尝试设置一个你知道永远不会出现在帖子中的值如果Jekyll没有找到分隔符,它将不会分隔,因此生成的摘录将是整个帖子。

例如:

---
title: Some title
excerpt_separator: "CANTFINDME!"
---
Post line 1

Post line 2
生成的摘录将是整个帖子:

<p>Post line 1</p>
<p>Post line 2</p>
发布第1行

邮政第2行

有一个装有液体的容器。如果文章中存在摘录分隔符,您需要检查:

{% if post.content contains site.excerpt_separator %}
  {{ post.excerpt }}
  <p><a href="{{ post.url | relative_url }}">Read more</a></p>
{% else %}
  {{ post.content }}
{% endif %}
{%如果post.content包含site.extracpt_separator%}
{{post.extract}}

{%else%} {{post.content}} {%endif%}