Я не думаю, что есть хороший способ сделать это с Джекилом как есть. convertible.rb
только передает объект site
в Liquid, который не содержит специфических для страницы данных.
Я бы предложил просто отредактировать convertible.rb
, чтобы передать необходимые данные, отправить запрос на извлечение в основной проект для внесения ваших изменений и использовать ваш форк локально для создания вашего сайта. Ура для открытого кода!
Следующий тривиальный патч работает для меня локально против Jekyll 0.11.0, делая хэш страницы доступным в Liquid как context.registers[:page]
(примечание: на данный момент это предварительно преобразованный хеш, поэтому вы получите доступ к context.registers[:page]['url']
, не context.registers[:page].url
):
diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb
index d33abc5..a674ef5 100644
--- a/lib/jekyll/convertible.rb
+++ b/lib/jekyll/convertible.rb
@@ -69,7 +69,7 @@ module Jekyll
#
# Returns nothing.
def do_layout(payload, layouts)
- info = { :filters => [Jekyll::Filters], :registers => { :site => self.site } }
+ info = { :filters => [Jekyll::Filters], :registers => { :site => self.site, :page => payload['page'] } }
# render and transform content (this becomes the final content of the object)
payload["pygments_prefix"] = converter.pygments_prefix
Надеюсь, это поможет!