web-dev-qa-db-ja.com

Jekyllでは、Markdownを部分的にレンダリングする簡潔な方法はありますか?

Jekyllブログに表示したいMarkdown形式のサイドバーがあります。以前は{% include sidebar.markdown %}のように含めようとしましたが、実際にはマークダウンがレンダリングされませんでした。私はそれを次のようにうまく含めることができます:

{% capture sidebar %}{% include sidebar.markdown %}{% endcapture %}
{{ sidebar | markdownify }}

これは管理しやすいソリューションですが、これを実現するためのよりエレガントな方法をお勧めします。何か案は?前もって感謝します!

46
S M

Jekyllは、タグ、コンバーター、またはジェネレーターを追加するための簡単なプラグインの作成をサポートするようになりました。詳細については、 http://jekyllrb.com/docs/plugins/ をご覧ください。

5
Jeffrey Hulten

私もこれを探していました。それはそれを行う方法を発見したPITAであり、Googleコンテンツはそれほど多くありませんでした。最も正確な発見は、ここでは機能しない要点でした...完全に単純な解決策:

./_plugins/markdown_tag.rb

module Jekyll
  class MarkdownTag < Liquid::Tag
    def initialize(tag_name, text, tokens)
      super
      @text = text.strip
    end
    require "kramdown"
    def render(context)
      tmpl = File.read File.join Dir.pwd, "_includes", @text
      Jekyll::Converters::Markdown::KramdownParser.new(Jekyll.configuration()).convert(tmpl)
    end
  end
end
Liquid::Template.register_tag('markdown', Jekyll::MarkdownTag)

更新:使用例のあるブログ: https://web.archive.org/web/20161207125751/http://wolfslittlestore.be/2013/10/rendering-markdown-in-jekyll/

21
Breno Salgado