У меня есть боковая панель в формате Markdown, которую я бы хотел показать в моем блоге Jekyll. Раньше я пытался включить его как {% include sidebar.markdown %}, но на самом деле он не отображал Markdown. Я могу успешно включить это как:

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

И хотя это управляемое решение, я бы предпочел более элегантный способ сделать это. Любые идеи? Заранее спасибо!

46
S M 29 Авг 2011 в 08:31

2 ответа

Лучший ответ

Jekyll теперь поддерживает написание простых плагинов для добавления тегов, конвертеров или генераторов. Подробнее см. http://jekyllrb.com/docs/plugins/.

5
shauvik 17 Июл 2014 в 06:56

Я тоже искал это, это была 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
hurtstotouchfire 4 Фев 2018 в 05:36