我在我的问答网站上保存了Markdown文本和HTML版本的文本。当用户浏览问题时,他们会看到Markdown的片段。他们应该只看到纯文本,就像在stackoverflow浏览问题时没有显示Markdown或HTML文本一样。
有没有一种方法将Markdown或HTML文本转换为纯文本?
我在我的问答网站上保存了Markdown文本和HTML版本的文本。当用户浏览问题时,他们会看到Markdown的片段。他们应该只看到纯文本,就像在stackoverflow浏览问题时没有显示Markdown或HTML文本一样。
有没有一种方法将Markdown或HTML文本转换为纯文本?
StackOverflow上的问题以HTML而非纯文本形式显示。它们使用Jeff Atwood的HTML sanitizer进行了清理,然后使用MarkDownSharp转换为HTML。
几周前,我提出了这个问题,最终的解决方案是将原始的Markdown存储在数据库中,然后在向访问者展示时进行转换。
以下是我如何清理Markdown的方法
''# Because some people can be real ass holes and try to submit bad data (scripts and crap)
''# we have to modify the "About" content in order to sanitize it. At the same time, we
''# transform the Markdown into valid HTML
user.About = Trim(Utilities.HtmlSanitizer.Sanitize(MarkDownSharp.Transform(user.About)))
由于MarkdownSharp是开源的,我相信你可以深入源代码并删除预览中不想看到的其他标签。
由于在我的示例中,我在转换markdown之前对HTML进行了清理,因此我认为您需要在HtmlSanitizer和MarkdownSharp中删除或标签。原因是您需要清理原始html标记和markdown标记。
<b>
和</b>
标签来完成此操作。 - Chase FlorellSanitizeHtmlForDisplay
和SanitizeHtmlForPreview
,其中预览版本将具有较少的白名单规则。 - Chase Florell