在使用Redcarpet时,默认设置可以正常工作,但我们希望使用与Markdown稍有不同的样式。
我特别要hard_wrap = true
,因为我们网站的大多数用户都不知道他们需要在每个段落之间写2个换行符。另外,我想要space_after_headers = false
,因为目前,我们的标头的渲染方式是在其后面留有空格,我希望它像Github的MD一样工作。
但这两个选项不起作用。
我已经检查了我们使用的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
两者均以纯文本而不是标头呈现。我期望至少第二个呈现为标头。