【问题标题】:jekyll post loop not working on home page. Showing code as it isjekyll post loop 在主页上不起作用。按原样显示代码
【发布时间】:2016-02-23 16:22:27
【问题描述】:

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

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

液体语法如下:

liquid syntax

然后输出如下所示

output

请帮助我。此外,我正在使用引导程序中名为 Triangle 的模板。我在 github 上托管。

【问题讨论】:

  • 你本地安装了液体吗?如果你不这样做,你需要这样做,通过命令行安装它 gem install liquid 解释 here
  • 仍然工作。
  • 奇怪...我会更好地查看您的代码并稍后与我的代码进行比较,如果我发现有用的东西,我会回复您。
  • 其实我在想,jekyll serve你跑得怎么样了?尝试通过以下命令运行它:bundle exec jekyll serve --safe --watch --baseurl "" 并查看是否出现错误。这是测试 GitHub 将如何呈现您的 Jekyll 网站的最安全方法。
  • 请以文本形式发布您的代码。如果您有存储库 url,最好尝试帮助您。

标签: html github rubygems jekyll jekyll-bootstrap


【解决方案1】:

我想我知道出了什么问题。你的循环不起作用,因为你说{% for blogpost in site.posts%},然后你通过post而不是blogpost调用循环。尝试将for 循环更改为:

{% for post in site.posts %} 

你应该没事!

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

【讨论】:

  • 这根本不重要。但是我将“blogpost”更改为“post”,但我仍然有问题。
  • 您能否将您的代码作为文本发布在这里,以便我可以将其复制并粘贴到文档中以运行一些测试?另外,你能把你的帖子包括在 yaml 前面吗?
【解决方案2】:

这可能有点晚了,但我遇到了类似的问题。

我最初在我的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>

回答

我注意到,当我从 frontmatter 中删除布局时,循环运行正常,所以我将布局放回原处,但它停止工作。然后与我正在做的另一个网站进行仔细比较,我注意到在我的布局中我有{{ page.content }}。所以我把它更新为{{ content }},嘿,我得到了我的主题,它像我想要的那样循环访问博客文章。希望这可能对将来的某人有所帮助

【讨论】:

    【解决方案3】:

    我真的迟到了,但迟到总比没有好,嗯?

    通过查看您发布的屏幕截图,您似乎在布局模板中使用了{{ page.content }},因为流动标签似乎没有按照您的预期呈现。也许您需要改用{{ content }},以便您的内容在输出到页面之前正确呈现?

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-11
        • 1970-01-01
        • 2019-06-24
        • 2017-10-16
        • 2016-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多