Я играю с плагинами Jekyll и их способностью создавать собственные теги, и я столкнулся с проблемой, расширяющей мой тег для принятия списка через запятую.
Я начал со следующего:
{% symbol R %}
И соответствующий код плагина:
module Jekyll
class Symbol < Liquid::Tag
def initialize(tag_name, text, tokens)
super
@text = text
end
def render(context)
"<span class='symbol-#{@text}'>#{@text}</span>"
end
end
end
Liquid::Template.register_tag('symbol', Jekyll::Symbol)
И вывод на моей странице, как и ожидалось, следующий:
<span class="symbol-R">R</span>
Теперь я пытаюсь изменить этот плагин, чтобы я мог передать список через запятую, например:
{% symbol R,G %}
Я обновил свой код плагина следующим образом:
module Jekyll
class Symbol < Liquid::Tag
def initialize(tag_name, text, tokens)
super
@text = text
end
def render(context)
symbol = @text.split(',').map(&:strip)
symbol.each do |item|
puts item # to test in terminal
"<span class='symbol-#{@text}'>#{@text}</span>"
end
end
end
end
Liquid::Template.register_tag('symbol', Jekyll::Symbol)
Терминал выводит правильно:
R
G
И я ожидал, что я получу на своей странице следующее:
<span class="symbol-R">R</span><span class="symbol-G">G</span>
Но все это появляется на странице:
RG
Могу ли я получить помощь в выяснении этого? Я чувствую, что я очень близок ... это просто фактический рендеринг страницы, с которым я явно ошибаюсь.