首页 > 解决方案 > 如何在 Jekyll 钩子中从 _config.yml 文件中读取值

问题描述

我正在尝试阅读_config.yml我的 Jekyll 钩子方法中的特定部分,如下所示:

Jekyll::Hooks.register :site, :after_init do
    lm = Jekyll.config("latex-macros")
end

_config.yml是:

latex-macros:
  - ["\\RR", "\\mathbb{R}"]

所以lm变量应该是:

[["\\RR", "\\mathbb{R}"]]

我已经尝试使用Jekyll.configuration({})["latex-macros"]它并且它有点工作但它忽略了--config终端选项并在每次调用它时读取文件。这使我无法使用它。


我也试过

Jekyll::Hooks.register :site, :after_init do
    lm = context.registers[:site].config["latex-macros"]
end

但它会引发运行时错误:

katex.rb:8:in '<top (required)>': undefined local variable or method 'context' for main:Object (NameError)


我的问题是,如何_config.yml正确读取 jekyll hook 中的值?如何解决第二种方法?

谢谢您的帮助

标签: rubyyamljekyllhook

解决方案


由于我使用 Jekyll 已经很长时间了,所以我是从头顶上写这篇文章的。您需要将site变量传递给钩子。

Jekyll::Hooks.register :site, :after_init do |site|
  # Access using site.config[key]
  puts site.config['latex-macros']
end

推荐阅读