Jekyll:液体标签 javascript
Jekyll: liquid tag inside javascript
假设我有两个 link:"all posts" 和 "personal." 当用户单击 "personal" link 时,他应该只会看到 post 具有类别 "personal." 现在,液体标签是 {% for post in site.posts %}
。我想了解是否有一种方法可以从 javascript 访问变量 site.posts
,以便我可以监听点击事件并动态过滤 post。如果没有,我该怎么办?
您可以让 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.
假设我有两个 link:"all posts" 和 "personal." 当用户单击 "personal" link 时,他应该只会看到 post 具有类别 "personal." 现在,液体标签是 {% for post in site.posts %}
。我想了解是否有一种方法可以从 javascript 访问变量 site.posts
,以便我可以监听点击事件并动态过滤 post。如果没有,我该怎么办?
您可以让 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.