Ответ 1
Если вы используете Jekyll специально, вы можете получить доступ к переменной страницы таким образом:
def render(context)
page_url = context.environments.first["page"]["url"]
Я написал специальный тег в жидкости, и я хотел бы передать ему переменную. Жидкостные теги превратят любой параметр в строку.
Например:
{% nav page /some/url.html %}
Где страница является переменной.
Есть ли способ заставить Liquid обрабатывать страницу как переменную, а не строку?
Спасибо заранее!
Если вы используете Jekyll специально, вы можете получить доступ к переменной страницы таким образом:
def render(context)
page_url = context.environments.first["page"]["url"]
У меня была аналогичная проблема. Я решил это, создав собственный метод поиска:
def look_up(context, name)
lookup = context
name.split(".").each do |value|
lookup = lookup[value]
end
lookup
end
Чтобы использовать его, создайте что-то вроде этого:
def initialize(tag_name, markup, tokens)
@markup = markup
super
end
def render(context)
output = super
if @markup =~ /([\w]+(\.[\w]+)*)/i
@myvalue = look_up(context, $1)
end
do_something_with(@myvalue)
end
Чтобы ответить на общий вопрос, а не на частную информацию о переменной страницы, вы также можете снова передать содержимое тега через анализатор Liquid:
def initialize(tag_name, markup, tokens)
@markup = markup
super
end
def render(context)
content = Liquid::Template.parse(@markup).render context
end