【发布时间】:2014-08-05 13:54:41
【问题描述】:
我知道我可以在 ruby 中使用 Kramdown 解析和渲染 HTML 文档
require 'kramdown'
s = 'This is a _document_'
Kramdown::Document.new(s).to_html
# '<p>This is a <i>document</i></p>'
在这种情况下,字符串s 可能包含一个完整的markdown 语法文档。
然而,我想要做的是解析s,假设它只包含跨度级别的markdown语法,并获得渲染的html。特别是在呈现的 html 中不应有 <p>、<blockquote> 或 <table>。
s = 'This is **only** a span-level string'
# .. ??? ...
# 'This is <b>only</b> a span-level string'
我该怎么做?
【问题讨论】:
-
所以你想去掉所有的块级元素?这是 kramdown 的默认行为。见kramdown.gettalong.org/options.html
-
这也是我读到的,但输出仍然包含
p's。还没弄清楚如何让 kramdown 真正删除这些。 -
似乎该选项用于解析原始 HTML;它对输出没有影响。输出是不可更改的,因为它们旨在与其他 Markdown 实现保持一致。您可能需要进行后期处理。
-
你可以很容易地用 nokogiri 进行后期处理。
-
Sanitize 在引擎盖下使用 Nokogiri,它更容易。