`hard_wrap`选项和`space_after_headers`扩展在Redcarpet中无法正常工作

时间:2019-06-10 15:51:16

标签: ruby-on-rails redcarpet

在使用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

两者均以纯文本而不是标头呈现。我期望至少第二个呈现为标头。

0 个答案:

没有答案