【问题标题】:In Jekyll, is there a concise way to render a Markdown partial?在 Jekyll 中,是否有一种简洁的方式来呈现 Markdown 部分?
【发布时间】:2011-11-05 18:23:15
【问题描述】:

我有一个 Markdown 格式的侧边栏,我想在我的 Jekyll 博客中显示它。我之前曾尝试像{% include sidebar.markdown %} 一样包含它,但它实际上不会呈现 Markdown。我可以像这样成功地包含它:

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

虽然这是一个易于管理的解决方案,但我更喜欢一种更优雅的方式来实现这一点。有任何想法吗?提前致谢!

【问题讨论】:

  • 此链接已失效。这是最好回答问题而不是链接到解决方案的原因之一。
  • 我喜欢原来的解决方案,但是我没有将包含放在捕获之间,而是将我的内容放在我的 _includes/sidebar.html 中,然后将捕获+渲染移动到我的 _includes/sidebar.html

标签: markdown jekyll


【解决方案1】:

我也在寻找这个,它是一个 PITA 发现如何做到这一点,没有多少谷歌内容,最准确的发现是一个在这里行不通的要点......非常简单的解决方案:

./_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/

【讨论】:

  • 这个插件的降价似乎发生了一些奇怪的事情。例如,当使用围栏代码块时,换行符似乎消失了。我还在我的安装中添加了对 MathJax 的支持,并且反斜杠被删除了。 OP 给出的明确包含在这两种情况下都可以正常工作。任何想法如何解决这些问题?
  • 谢谢,您的博文很有帮助。
【解决方案2】:

Jekyll 现在支持编写简单的插件来添加标签、转换器或生成器。详情请查看http://jekyllrb.com/docs/plugins/

【讨论】:

  • 哦,我没想过要创建一个新标签。我会试一试,谢谢!
  • 好的,所以我已经尝试过创建正确的标签,但我仍然无法弄清楚需要什么代码。看起来我必须重新实现包含标签(github.com/mojombo/jekyll/blob/master/lib/jekyll/tags/…),但我不确定如何对其输出进行降价 - 大概这将涉及第 26 行的更改,但我并不是真正的 Rubyist,也不知道是什么做...
  • 我认为您可以通过以下方式获得适合您类型的转换器:converter = self.site.converters.find { |c| c.matches(self.ext) } 然后使用 convert 方法。请参阅 github.com/mojombo/jekyll/blob/master/lib/jekyll/converters/… 了解其实施方式。
  • 尽管 OP 没有提到 GitHub Pages,但重要的是要注意它们不支持 Jekyll 插件,因此如果使用 GHP 进行发布,则解决方案不会'不再有效。
猜你喜欢
  • 2019-01-27
  • 2010-09-05
  • 2017-03-27
  • 2019-08-24
  • 1970-01-01
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
相关资源
最近更新 更多