我在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-级别调用