gpt4 book ai didi

ruby - 从 Jekyll 插件向页面添加属性

转载 作者:数据小太阳 更新时间:2023-10-29 07:34:11 24 4
gpt4 key购买 nike

假设我想要一个包含如下内容的页面:

<h1>{{page.comment_count}} Comment(s)</h1>
{% for c in page.comment_list %}
<div>
<strong>{{c.title}}</strong><br/>
{{c.content}}
</div>
{% endfor %}

comment_countcomment_list 页面默认没有变量;相反,我希望将这些变量从 Jekyll 插件添加到页面中。我可以在不干扰 Jekyll 现有代码的情况下填充这些字段的安全位置在哪里?

或者是否有更好的方法来实现这样的评论列表?

最佳答案

不幸的是,目前不可能添加这些属性而不会对 Jekyll 内部的东西造成一些困惑。我们正在为 #after_initialize 添加 Hook 等,但还没有。

我最好的建议是像我对 my Octopress Date plugin 所做的那样添加这些属性在我的博客上。它使用 Jekyll v1.2.0 的 Jekyll::Post#to_liquid添加这些属性的方法,这些属性是通过 send(attr) 收集的在 Post 上:

class Jekyll::Post

def comment_count
comment_list.size
end

def comment_list
YAML.safe_load_file("_comments/#{self.id}.yml")
end

# Convert this post into a Hash for use in Liquid templates.
#
# Returns <Hash>
def to_liquid(attrs = ATTRIBUTES_FOR_LIQUID)
super(attrs + %w[
comment_count
comment_list
])
end
end

super(attrs + %w[ ... ])将确保仍然包含所有旧属性,然后收集与 String 中的条目对应的方法的返回值数组。

这是迄今为止扩展帖子和页面的最佳方式。

关于ruby - 从 Jekyll 插件向页面添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19320448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com