【发布时间】:2014-11-10 21:43:51
【问题描述】:
我想写一个 Jekyll 插件来修改 site 对象。 site 对象在整个 Jekyll 构建过程中都可用。在 Jekyll 中,添加属性最直接的方法是在 _config.yml 文件中定义它。这在某些情况下有效,但我需要更进一步。
我问这个问题的原因是因为我需要做的事情比我在 YAML 文件上下文中所能做的更多。我想向site 对象添加一个方法。我以为我只需要将方法添加到 Site 类,但它不起作用。
非工作插件:
module Jekyll
class Site
def foo
"foo"
end
end
end
通过阅读 Jekyll 源代码以及如何扩展 Ruby 类,我假设 Jekyll 中的 site 对象将具有新的 foo 方法,但事实并非如此。供参考,here is the Site Class in the Jekyll source code。
由于我阅读构建 Jekyll 的 RUby 代码的能力很差,所以这个问题与 Jekyll 本身的问题一样多。
【问题讨论】: