Jekyll无法解析Markdown

6

我正在使用 jekyll.rb 创建一个网站。
我有一个名为 about.html 的页面:

<div class="grid_10 page">
    {% include about_content.markdown %}
</div>

在 about_content.markdown 文件中,我有一些虚拟的 markdown 代码:

A First Level Header
====================

A Second Level Header
---------------------

Hello!

由于某种原因,当页面呈现时,结果是这样的: result http://gabrielecirulli.com/p/20120107-203135.png 即使我将YAML front matter添加到我的Markdown文件中也没有改变。
这是我的_config.yml。
safe:        false
auto:        false
server:      false
server_port: 4000
baseurl:    /

source:      .
destination: ./_site
plugins:     ./_plugins

future:      true
lsi:         false
pygments:    false
markdown:    maruku
permalink:   date

maruku:
  use_tex:    false
  use_divs:   false
  png_engine: blahtex
  png_dir:    images/latex
  png_url:    /images/latex

rdiscount:
  extensions: []

kramdown:
  auto_ids: true,
  footnote_nr: 1
  entity_output: as_char
  toc_levels: 1..6
  use_coderay: false

  coderay:
    coderay_wrap: div
    coderay_line_numbers: inline
    coderay_line_numbers_start: 1
    coderay_tab_width: 4
    coderay_bold_every: 10
    coderay_css: style

如何让jekyll解释markdown?
1个回答

14

你需要通过 markdownify 过滤器进行处理:

<div class="grid_10 page">
  {% capture about_content %}
    {% include about_content.markdown %}
  {% endcapture %}
  {{ about_content | unindent | markdownify }}
</div>
为了让Markdown代码保持缩进但在进行Markdown处理之前移除缩进,我会编写一个专门的插件,例如叫做_plugins/unindent.rb
module Jekyll
  module UnindentFilter
    def unindent input
      input.lstrip
    end
  end
end

Liquid::Template.register_filter Jekyll::UnindentFilter

谢谢,那个解决方案有效,但我遇到了一个问题,在 {%include about_content.markdown %} 之前有缩进会使 markdown 的第一行无效,因为它在它之前放置了空格。是否可以避免这种情况而不必牺牲缩进? - kettlepot
值得注意的是,这个插件(以及所有插件)都不适用于GitHub Pages。我花了一些时间才弄清楚这一点,似乎没有好的解决方案,除了将包含行的缩进取消(看起来很奇怪),或者将编译后的页面推送到源文件(毫无意义)。[https://help.github.com/articles/pages-don-t-build-unable-to-run-jekyll](参考) - user478798

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接