gpt4 book ai didi

ruby-on-rails - Redcarpet/Bluecloth 不允许 header ?

转载 作者:行者123 更新时间:2023-12-03 01:09:52 25 4
gpt4 key购买 nike

有没有办法使用 Redcarpet 或 Bluecloth,这样当它插入 Markdown 时就不会生成任何标题?

例如:

#header 1

产量:

header 1

header 1 (preferred)

还有:

##header 2

产量:

header 2

header 2 (preferred)

最佳答案

嗯,你可以在 Markdown 中转义字符:

# header 1
\# header 1

## header 2
\## header 2

...给出:

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 中的换行符实际上不会这样呈现——它会显示为一行:

# Hello ## World"

...您可能想要增强这一点:

def pound_filter text
text.gsub( /((\A^)|([^\A]^))#/ ) {|match| "\n" == match[0] ? "\n\n\\#" : '\#' }
end

pound_filter text
# => \# Hello
#
# \## World

Markdown.new(pound_filter text).to_html
# => <p>\# Hello</p>
#
# <p>\## World</p>

最后将显示为:

# Hello

## World

不幸的是,你最终会进入这样奇怪的领域,其中标题位于引号内:

> ## Heading

...但我将其作为练习留给读者。

关于ruby-on-rails - Redcarpet/Bluecloth 不允许 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7537764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com