javascript - Jekyll:JavaScript 中的液体标签

标签 javascript jekyll liquid

假设我有两个链接:“所有帖子”和“个人”。当用户单击“个人”链接时,他应该只会看到类别为“个人”的帖子。现在,liquid 标签是 {% for post in site.posts %}。我想了解是否有一种方法可以从 javascript 访问变量 site.posts,这样我就可以监听点击事件并动态过滤帖子。如果没有,我该怎么办?

最佳答案

你可以让 Jekyll 解析任何文件,方法是向它添加一个空的开头内容。

例子:assets/js/script.js

编辑 16/07/28:您可以使用 jsonify filter对于任何散列或数​​组

---
---
{{ site.posts | jsonify }}

旧答案

---
---
{% capture posts %}
[
{% for post in site.posts %}
{
"title"    : "{{ post.title }}",
"url"      : "{{ post.url }}",
"date"     : "{{ post.date | date: "%B %d, %Y" }}",
"content"  : "{{ post.content | escape }}"
} {% if forloop.last %}{% else %},{% endif %}
{% endfor %}
]
{% endcapture %}
var posts = {{posts | strip_newlines}}

这会将 site.posts 对象集合放入 json 表单并将它们归因于您的 javascript posts var.

关于javascript - Jekyll:JavaScript 中的液体标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28142507/

相关文章:

ruby - Jekyll 构建后出现奇怪的 HTML 代码

python - 使用 Shopify Assets API 修改 theme.liquid

ruby - 如何在 Jekyll 的主页上按日期对帖子进行分组?

javascript - 仅当存在两个单独的子 div 时,如何向父类添加类

jekyll - 在Liquid/Jekyll模板中过滤数组

javascript - 在 Fabric.js 中使用组作为掩码

jekyll - 如何在jekyll帖子中循环浏览标签?

javascript - 在 .js.liquid 文件中使用 asset_url

javascript - 单击时使用 jquery 清除列表

javascript - Google maps V3 dragend 监听器将所有标记添加回 map