【问题标题】:Jekyll: liquid tag inside javascriptJekyll:javascript中的液体标签
【发布时间】:2015-03-24 09:59:54
【问题描述】:

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

【问题讨论】:

    标签: javascript jekyll liquid


    【解决方案1】:

    你可以让 Jekyll 解析任何文件,方法是给它添加一个空的front matter。

    示例: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。

    【讨论】:

    • 只要我包含液体标签,它就会给我错误“Uncaught SyntaxError: Unexpected token {”
    • 在我的 js 文件的顶部添加空的前端会导致触发 Liquid Exception: SyntaxError: Unexpected token 警告。
    猜你喜欢
    • 2011-11-07
    • 1970-01-01
    • 2016-05-04
    • 2022-06-14
    • 2011-12-16
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 2014-02-04
    相关资源
    最近更新 更多