내 웹 사이트에 이런 종류의 블록이있는 페이지가 많이 있기 때문에 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>
내가 아무 생각이 왜 내가 처리 할 루비/액체에 잘 모른다 : 만 첫 번째 탭의 마크 업 내가 다른 탭이 코드 하이 라이터를 통과하고 내가 얻을 기대하고있는 무슨이다 그것은 혼자서 :). 아이디어가 있으십니까?
감사합니다.