ruby – 在插件中获取Jekyll配置
我想对Jekyll
Only First Paragraph plugin进行更改,以便生成“阅读更多”链接是可配置的选项.
为了做到这一点,我需要能够访问插件的AssetFilter中的Jekyll网站配置.随着配置的可用,我可以做出改变.我不知道如何使网站配置可用于插件. 下面的代码演示了我想要的site.config可用的位置: require 'nokogiri' module Jekyll module AssetFilter def only_first_p(post) # site.config needs to be available here to modify the output based on the configuration output = "<p>" output << Nokogiri::HTML(post["content"]).at_css("p").inner_html output << %{</p><a class="readmore" href="#{post["url"]}">Read more</a>} output end end end Liquid::Template.register_filter(Jekyll::AssetFilter) 这可以实现吗 解决方法
概观
您可以在插件中访问Jekyll配置选项: Jekyll.configuration({})['KEY_NAME'] 如果配置密钥包含嵌套级别,格式为: Jekyll.configuration({})['KEY_LEVEL_1']['KEY_LEVEL_2'] 例 如果_config.yml包含: testvar: new value custom_root: second_level: sub level data 简单地输出这些值的基本示例如下所示: require 'nokogiri' module Jekyll module AssetFilter def only_first_p(post) @c_value = Jekyll.configuration({})['testvar'] @c_value_nested = Jekyll.configuration({})['custom_root']['second_level'] output = "<p>" ### Confirm you got the config values output << "<br />" output << "c_value: " + @c_value + "<br />" output << "c_value_nested: " + @c_value_nested + "<br />" output << "<br />" ### output << Nokogiri::HTML(post["content"]).at_css("p").inner_html output << %{</p><a class="readmore" href="#{post["url"]}">Read more</a>} output end end end Liquid::Template.register_filter(Jekyll::AssetFilter) 当然,你会想要检查一下验证配置键/值是否在使用它们之前被定义.这为读者留下了一个练习. 另一个可能的选择 Jekyll Plugins Wiki Page的“液体过滤器”部分包含以下内容:
我没有花时间去找工作,但也可能值得一试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |