Jekyll:javascript中的液体标签

Max*_*s S 9 javascript liquid jekyll

假设我有两个链接:"所有帖子"和"个人".当用户点击"个人"链接时,他应该只看到具有"个人"类别的帖子.现在,液体标签是{% for post in site.posts %}.我想知道是否有办法site.posts从javascript 访问变量,以便我可以听取click事件并动态过滤帖子.如果没有,我该怎么办?

Dav*_*uel 16

你可以让Jekyll通过添加一个空的前端内容来解析任何文件.

示例:assets/js/script.js

编辑16/07/28:您可以对任何哈希或数组使用jsonify 过滤器

---
---
{{ site.posts | jsonify }}
Run Code Online (Sandbox Code Playgroud)

老答案

---
---
{% 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}}
Run Code Online (Sandbox Code Playgroud)

这会将site.posts对象集合放在一个json表单中,并将它们归于javascript postsvar.

  • 将空的前面内容添加到我的 js 文件顶部会导致触发“Liquid Exception: SyntaxError: Unexpected token”警告。 (3认同)