如何动态分配_data变量?

时间:2018-11-22 13:14:23

标签: jekyll liquid

我正在使用staticman在我的博客上启用评论。它将注释放入_data文件夹中。我的文件夹结构如下所示:

_data/
    comments/
        blog-post-1/
            entry1542891129928.yml
            ...
        blog-post-2/
            entry1542891129928.yml
            ...
        ...

我想在_layouts/post.html中访问特定博客的评论。这是我希望能得到评论的代码:

{% assign comments = site.data.comments[page.slug] | sort %}

但是当我运行build时,出现以下错误:

Liquid Exception: Liquid error (line 39): Cannot sort a null object. in /_layouts/post.html

这似乎与page.slug有关,因为如果我将其替换为字符串'blog-post-1',它将起作用。

如何在post.html中动态获取帖子?

1 个答案:

答案 0 :(得分:4)

解决了问题!

问题是文件夹不存在时。我通过移动排序过滤器来避免这种情况:

{% assign comments = site.data.comments[page.slug] %}
{% if comments %}
    {% assign comments = comments | sort %}
    ...do things...
{% endif %}

现在构建不会失败。