Джекилл не интерпретирует уценку - PullRequest
6 голосов
/ 07 января 2012

Я создаю сайт, используя jekyll.rb .
У меня есть страница с названием about.html:

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

В about_content.markdown у меня есть фиктивная уценка:

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

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

Hello!

По какой-то причине, когда страница отображается, результат выглядит так:

результат http://gabrielecirulli.com/p/20120107-203135.png

Даже если я добавлю фронтальный текст YAML в свой файл уценки, ничего не изменится.

Это мой _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

Как я могу сделать джекилл интерпретировать уценку?

1 Ответ

14 голосов
/ 08 января 2012

Вам нужно будет пройти через фильтр markdownify:

<div class="grid_10 page">
  {% capture about_content %}
    {% include about_content.markdown %}
  {% endcapture %}
  {{ about_content | unindent | markdownify }}
</div>

Чтобы сохранить код Markdown с отступом, но удалить отступ перед Markdownification, я бы написал специальный плагин, который называется, например, _plugins/unindent.rb:

module Jekyll
  module UnindentFilter
    def unindent input
      input.lstrip
    end
  end
end

Liquid::Template.register_filter Jekyll::UnindentFilter
...