Ответ 1
Обзор
Вы можете получить доступ к настройкам конфигурации 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)
Конечно, вы хотели бы поместить проверки, которые проверяют, что ключ/значения конфигурации определены, прежде чем пытаться их использовать. Это оставило для читателя упражнение.
Другой возможный вариант
Раздел "Жидкостные фильтры" страницы Wiki Wiki содержит следующее:
В Jekyll вы можете получить доступ к объекту сайта через регистры. В качестве примера вы можете получить глобальную конфигурацию (_config.yml) следующим образом: @context.registers [: site].config ['cdn'].
Я не потратил время, чтобы заставить это работать, но, возможно, стоит проверить также.