在Jekyll中,是否有一种简洁的方式来呈现Markdown偏好?
我有一个Markdown格式的边栏,我想在我的Jekyll博客中显示。我之前曾尝试将其包含在内,例如{% include sidebar.markdown %}
,但它实际上并不会显示降价。我可以成功地包括它想:在Jekyll中,是否有一种简洁的方式来呈现Markdown偏好?
{% capture sidebar %}{% include sidebar.markdown %}{% endcapture %}
{{ sidebar | markdownify }}
,虽然这是一个管理的解决方案,我宁愿完成这一个更优雅的方式。有任何想法吗?提前致谢!
Jekyll现在支持编写简单的插件来添加标签,转换器或生成器。有关详细信息,请参阅http://jekyllrb.com/docs/plugins/。
哦,我没有想过创建一个新的标记。我会给你一个旋转,谢谢! –
好的,所以我尝试过创建正确的标签,但我仍然无法弄清楚需要什么代码。它看起来像我必须重新实现包含标记(https://github.com/mojombo/jekyll/blob/master/lib/jekyll/tags/include.rb),但我不知道如何降低其输出 - 据推测这将涉及26号线的变化,但我不是一个真正的Rubyist,不知道该怎么办... –
我认为你可以得到你的类型的转换器: converter = self.site.converters。找到{| c | c.matches(self.ext)} 然后使用convert方法。请参阅https://github.com/mojombo/jekyll/blob/master/lib/jekyll/converters/markdown.rb了解如何实施。 –
我一直在寻找这也,这是一个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)
UPDATE:博客与用法示例:https://web.archive.org/web/20161207125751/http://wolfslittlestore.be/2013/10/rendering-markdown-in-jekyll/
此链接已经死了。这是回答问题而不是链接到解决方案更好的原因之一。 – askewchan
我喜欢最初的解决方案,但不是将捕获之间的包含,而是将我的内容,并将捕获+渲染移入我的_includes/sidebar.html – stackdump