ruby-on-rails – Redcarpet / Bluecloth不允许标题?
发布时间:2020-12-17 01:28:09 所属栏目:百科 来源:网络整理
导读:有没有办法使用Redcarpet或Bluecloth,这样当它插入降价时它不会产生任何标题? 例如: #header 1 收益率: header 1 header 1 (preferred) 和: ##header 2 收益率: header 2 header 2 (preferred) 解决方法 好吧,你可以在Markdown中转义字符: # header 1
有没有办法使用Redcarpet或Bluecloth,这样当它插入降价时它不会产生任何标题?
例如: #header 1 收益率:
和: ##header 2 收益率:
解决方法
好吧,你可以在Markdown中转义字符:
# header 1 # header 1 ## header 2 ## header 2 …给:
如果您不想这样做,或者您正在解析其他人的Markdown并且没有选择,我建议您预先处理收到的Markdown以执行上述操作: def pound_filter text text.gsub /^#/,'#' end 使用Redcarpet,您可以验证它是否有效: text = <<-END # Hello ## World END Markdown.new(text.to_html) # => <h1>Hello</h1> # # <h2>World</h2> Markdown.new(pound_filter text).to_html # => <p># Hello # ## World</p> 当然,因为HTML中的换行符实际上不会这样呈现 – 它将显示为一行:
……你可能想要增加: def pound_filter text text.gsub( /((A^)|([^A]^))#/ ) {|match| "n" == match[0] ? "nn#" : '#' } end pound_filter text # => # Hello # # ## World Markdown.new(pound_filter text).to_html # => <p># Hello</p> # # <p>## World</p> 这最后会显示为:
不幸的是,你最终会进入这样一个奇怪的领域,其中标题在引号内: > ## Heading ……但我把它作为练习留给读者. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |