При использовании Redcarpet настройка по умолчанию работает нормально, но мы хотели бы использовать немного другой стиль Markdown, чем этот.
В частности, я хочу hard_wrap = true
, потому что большинство пользователей нашего сайта не будут знать, что им нужно написать 2 новых строки между каждым абзацем. Кроме того, я хочу space_after_headers = false
, потому что в настоящее время наши заголовки отображаются с пробелом позади них, и я бы предпочел, чтобы это работало как MD Github.
Однако эти два параметра не работают.
Я проверил версию Redcarpet, которую мы используем, и это последняя версия 3.4.0.
Также я проверил, что используемые нами параметры действительно влияют на визуализированный html, и они это делают.
Я переопределяю функцию markdown
в моем ApplicationHelper
:
module ApplicationHelper
def markdown(text)
options = {
# Lets users separate paragraphs with just one newline.
hard_wrap: true,
with_toc_data: true,
}
extensions = {
autolink: true,
tables: true,
# Makes headers need a space between the "######"
# indicating the header's level, and their title.
# That is, "##Hi" would not be a valid H2 heading,
# whereas "## Hi" would be a valid H2 heading :)
space_after_headers: true,
}
renderer = Redcarpet::Render::HTML.new(options)
markdown = Redcarpet::Markdown.new(renderer, extensions)
markdown.render(text).html_safe
end
end
Опция hard_wrap
, похоже, не влияет на мой отрендеренный HTML. Он должен отделять мои абзацы с помощью тега <br/>
, но он действует как запрет.
Расширение space_after_headers
делает так, чтобы эти две строки:
###Hi
и
### Hi
Оба отображаются в виде открытого текста, а не в качестве заголовков. Я ожидал, что по крайней мере второй будет отображен как заголовок.