如何关闭RoR红毯的某些标签



我在application_helper.rb中有以下功能:

def markdown(text)
options = {}
renderer = CustomRender.new(hard_wrap: true, filter_html: true)
Redcarpet::Markdown.new(renderer, options).render(text).html_safe
end

我正在使用自定义渲染器。我很困惑为什么我可以使用项目符号列表、斜体文本、代码跨度等。我的渲染选项中没有启用它们。

我想也许我可以关掉它们:

options = {
codespan: false,
}

然而,代码跨度仍然被红地毯识别,并且样式被应用。如何从markdown中关闭所有标记,只启用少数标记?

在CustomRenderer 中定义代码跨度的方法

class CustomRender < Redcarpet::Render::HTML
def codespan(code)
code
end
end
def markdown(text)
renderer = CustomRender.new(hard_wrap: true, filter_html: true)
Redcarpet::Markdown.new(renderer).render(text).html_safe
end

现在,当调用markdown 时,您可以看到没有添加<code>标签

markdown('```some code```') =>  "<p>some code</p>n"

您可以覆盖此处提到的所有方法https://github.com/vmg/redcarpet#block-级别调用

相关内容

  • 没有找到相关文章

最新更新