{{ content }} Liquid 标签不显示博文
{{ content }} Liquid tag not showing blog posts
Link 回购:https://github.com/AlvSovereign/AlvSovereign.github.io
我正在编写我的投资组合网站,并在我的博客上添加 link。完全处理的投资组合网站位于 _site/index.html
,其中包含博客的 link(完全处理的 link 存在于 _site/blog.html)
Blog.html 在 repo 的根部有一个 "bl" 的布局,它在我的布局文件夹中定义在“bl.html".
"bl.html" 是我想要的博客页面布局,其中包含我的包含等。它还包含 {{ content }}
液体标记。
如果我以正确的方式思考这个问题,我的帖子将被解析(我认为这是正确的术语)为“post.html”——它有前面的内容 "layout: bl",然后解析为 "bl.html",这是因为它们在每个文件中都有 {{ content }}
。
现在我的所有帖子都在 _site/(year)/(month)
等范围内正确显示(我认为)。但是,它们并没有结束通过我的 "blog.html" 文件进行解析,然后在我的网页上可见。我怎么知道这是完全处理的“blog.html”文件中没有任何帖子。
我需要做什么来解决这个问题?
如果有帮助,我将 Prepros 用于 LiveReload,并使用 LANYON 模板,http://lanyon.getpoole.com/
{{ content }}
指的是文件中所有被转换为HTML代码的内容。
例如,如果您将 'What is Jekyll' 上的博客 post 传递到任何具有 {{ content }}
标签的布局,则除 YAML 前言之外的所有文本都将放入那个地方。基本上post的内容。您还可以使用 {{ post.content }}
来限制范围,请参阅 Variables
了解更多信息 here。
所以 Liquid {{ content }} 变量按预期工作。
查看您的网站,我相信您正试图在 blog.html
文件中显示所有 post,所以您实际上要问的是 为什么我的 post 没有显示(未解析)在您的 blog.html 文件中,因此在您的网页上不可见。
原因是你不应该为此使用 {{ content }}
标签,你想要的是像这段代码 as mentioned in the Jekyll docs 这样的东西,它会抓住你所有的 posts,并通过 post 标题以及 post 的 link 显示它们。下面是显示 post 列表的代码。 (取自我 link 教你的网站)
<ul>
{% for post in site.posts %}
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
因此,只需将 bl.html
布局中的 {{ content }}
替换为该代码片段,即可获得所需内容。
此外,如果您也想在posts列表中显示content/excerpt,只需添加液体标签{{ post.content }}
或者 {{post.excerpt}}
像这样:
<ul>
{% for post in site.posts %}
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
{{ post.content }} /* or post.excerpt */
</li>
{% endfor %}
</ul>
当然,根据您的喜好相应地编辑 HTML。阅读关于 how to set up post excerpts here 的文档,它使用 <!--more-->
注释分隔符作为摘录。
我强烈建议阅读 JekyllRb 文档以获取更多信息,需要阅读的内容很多而且并不总是容易理解,但请继续参考它,您很快就会了解更多。
Link 回购:https://github.com/AlvSovereign/AlvSovereign.github.io
我正在编写我的投资组合网站,并在我的博客上添加 link。完全处理的投资组合网站位于 _site/index.html
,其中包含博客的 link(完全处理的 link 存在于 _site/blog.html)
Blog.html 在 repo 的根部有一个 "bl" 的布局,它在我的布局文件夹中定义在“bl.html".
"bl.html" 是我想要的博客页面布局,其中包含我的包含等。它还包含 {{ content }}
液体标记。
如果我以正确的方式思考这个问题,我的帖子将被解析(我认为这是正确的术语)为“post.html”——它有前面的内容 "layout: bl",然后解析为 "bl.html",这是因为它们在每个文件中都有 {{ content }}
。
现在我的所有帖子都在 _site/(year)/(month)
等范围内正确显示(我认为)。但是,它们并没有结束通过我的 "blog.html" 文件进行解析,然后在我的网页上可见。我怎么知道这是完全处理的“blog.html”文件中没有任何帖子。
我需要做什么来解决这个问题?
如果有帮助,我将 Prepros 用于 LiveReload,并使用 LANYON 模板,http://lanyon.getpoole.com/
{{ content }}
指的是文件中所有被转换为HTML代码的内容。
例如,如果您将 'What is Jekyll' 上的博客 post 传递到任何具有 {{ content }}
标签的布局,则除 YAML 前言之外的所有文本都将放入那个地方。基本上post的内容。您还可以使用 {{ post.content }}
来限制范围,请参阅 Variables
了解更多信息 here。
所以 Liquid {{ content }} 变量按预期工作。
查看您的网站,我相信您正试图在 blog.html
文件中显示所有 post,所以您实际上要问的是 为什么我的 post 没有显示(未解析)在您的 blog.html 文件中,因此在您的网页上不可见。
原因是你不应该为此使用 {{ content }}
标签,你想要的是像这段代码 as mentioned in the Jekyll docs 这样的东西,它会抓住你所有的 posts,并通过 post 标题以及 post 的 link 显示它们。下面是显示 post 列表的代码。 (取自我 link 教你的网站)
<ul>
{% for post in site.posts %}
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
因此,只需将 bl.html
布局中的 {{ content }}
替换为该代码片段,即可获得所需内容。
此外,如果您也想在posts列表中显示content/excerpt,只需添加液体标签{{ post.content }}
或者 {{post.excerpt}}
像这样:
<ul>
{% for post in site.posts %}
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
{{ post.content }} /* or post.excerpt */
</li>
{% endfor %}
</ul>
当然,根据您的喜好相应地编辑 HTML。阅读关于 how to set up post excerpts here 的文档,它使用 <!--more-->
注释分隔符作为摘录。
我强烈建议阅读 JekyllRb 文档以获取更多信息,需要阅读的内容很多而且并不总是容易理解,但请继续参考它,您很快就会了解更多。