我想編寫一個jekyll插件來添加一些標籤來處理一些標籤塊,因爲我的網站將有很多頁面具有這種塊。我想用markdown輕鬆編輯它。爲嵌入標籤的自定義標籤寫一個jekyll插件問題
我試圖用這種液體代碼:
{% tabs %}
{% tab tab-1 %}
Content of tab #1
{% endtab %}
{% tab tab-2 %}
Content of tab #2
{% endtab %}
{% tab tab-3 %}
Content of tab #3
{% endtab %}
{% endtabs %}
給予HTML代碼:
<div class="tab-content">
<div class="tab-pane" id="tab-1">
Content of tab #1
</div>
<div class="tab-pane" id="tab-2">
Content of tab #2
</div>
<div class="tab-pane" id="tab-3">
Content of tab #3
</div>
</div>
這裏是我的插件:
module Tags
class TabsBlock < Liquid::Block
def render(context)
'<div class="tab-content">' + super + "</div>"
end
end
class TabBlock < Liquid::Block
def initialize(tag_name, tab, tokens)
super
@tab = tab.strip
end
def render(context)
return "" if @tab.empty?
site = context.registers[:site]
converter = site.getConverterImpl(Jekyll::Converters::Markdown)
content = super.strip
content = converter.convert(content)
'<div id="' + @tab + '" class="tab-pane">' + content + "</div>"
end
end
end
Liquid::Template.register_tag("tabs", Tags::TabsBlock)
Liquid::Template.register_tag("tab", Tags::TabBlock)
當我試試,標記不正確。 只有第一個標籤的標記是什麼,我希望,其他的選項卡可以通過代碼熒光筆過去了,我得到:
<div class="highlight">
<pre><code class="text language-text" data-lang="text"><div id="tab-1" class="tab-pane"><p>Content of tab #1</p></code></pre>
</div>
我不知道爲什麼,我不知道用Ruby /液來處理多它由我自己:)。 有什麼想法?
謝謝!