jekyll post loop不在主页上工作。显示代码

时间:2015-11-21 03:02:44

标签: html5 github rubygems jekyll jekyll-bootstrap

我想在我的bolg.html页面中显示最新帖子。所以我用Liquid语法

但是当我使用下面显示的液体并在本地运行时,页面会显示代码,并且不会从我的_posts文件夹中获取帖子。

液体语法如下:

liquid syntax

然后输出如下所示

output

请帮帮我。我也使用bootstrap中名为 Triangle 的模板。我在github上主持。

4 个答案:

答案 0 :(得分:1)

我想我知道什么是错的。您的循环无效,因为您说{% for blogpost in site.posts%},然后您按post而不是blogpost调用循环。尝试将for循环更改为:

{% for post in site.posts %} 

你应该没事!

如果此答案正确或有用,请标记!谢谢! ;)

答案 1 :(得分:1)

我通过删除根目录中的index.html并创建index.md解决了这一问题。之后,一切都按预期进行!

答案 2 :(得分:0)

这可能有点晚了,但是我有一个类似的问题。

我本来在default.html

中有这个
---
page.title: My Blog
---
<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>{{ page.title }} | My Blog - Musings of a Software Developer from Norwich</title>
    <link rel="stylesheet" href="{{'/assets/main.css' | prepend: site.baseurl}}">
</head>   
<body>
    {% include nav.html %}

    <div class="content">
        {{ page.content }}
    </div>
    <script src="{{'/node_modules/jquery/dist/jquery.min.js' | prepend: site.baseurl}}"></script>
    <script src="{{'/node_modules/popper.js/dist/popper.min.js' | prepend: site.baseurl}}"></script>
    <script src="{{'/node_modules/bootstrap/dist/js/bootstrap.min.js' | prepend: site.baseurl}}"></script>
</body>

</html>

在我的blog.html中,

---
title: Blog
layout: default
---

<h1>Latest Posts</h1>

<ul>
    {% for post in site.posts %}
    <li>
        <a href="{{ post.url }}">{{ post.title }}</a>
    </li>
    {% endfor %}
</ul>

答案

我注意到,当我从前题中删除布局时,循环运行正常,因此我放回了布局并停止了工作。然后,在与我正在做的另一个站点进行更仔细的比较时,我发现在布局中我有{{ page.content }}。因此,我将其更新为{{ content }},嗨,很高兴,我有了我的主题,它也像我想要的那样遍历博客文章。希望这对以后的人有帮助

答案 3 :(得分:0)

我参加聚会真的很晚,但是总比没有好吗?

通过查看您发布的屏幕截图,您似乎在布局模板中使用{{ page.content }},因为液体标签似乎并没有像您期望的那样呈现。也许您需要使用{{ content }}来使内容正确显示,然后再输出到页面?