繁体   English   中英

在Java转换器中将Markdown限制为下划线/粗体/斜体

[英]Limiting Markdown to underline/bold/italic in Java converter

我正在寻找一种允许用户设置其文本格式的方法。 格式限于:

  • 强调
  • 斜体
  • 胆大
  • 列举

我想使用Markdown并将Markdown转换为服务器端的HTML。

我的问题是Markdown支持的格式超出我想要的格式(标题,表格等)。

您是否知道Markdown库,可以在其中将下划线/斜体/粗体/ ..列入白名单?

如果没有白名单,我考虑过用JSOUP清理生成的HTML。 那是首选方式吗?

谢谢。

有几种不同的方法可以实现。 选择哪个取决于所使用的库(建议使用特定工具在StackOverflow上不合主题)以及您要查找的行为是什么。 您可以在下面找到每种方法的摘要。

修改Markdown解析器。

一些解析器提供了一个API,允许您修改其行为。 您也许可以删除解析表,标题等的位,然后将其余部分留在原处。 然后,您的最终输出将保留这些功能的任何Markdown语法。 例如,如果作者键入标题,他们将获得一个以哈希开头的段落。

创建一个自定义渲染器。

一些Markdown解析器分两步工作。 在步骤1中,解析器获取Markdown文本并输出抽象语法树(AST),在步骤2中,渲染器接受AST并输出HTML。 您可以修改默认渲染器,也可以构建自定义渲染器以根据需要处理每个元素。 例如,您可以告诉“ header”渲染器方法输出一个段落(而不是标题),并且可以选择该段落是否包含原始哈希。

使用HTML Sanitizer。

使用您选择的Markdown解析器,将文本传入并接受输出而无需修改。 然后将HTML输出传递到HTML清理程序中,该清理程序将清除白名单中未包含的所有标签。 在这种情况下,将不会有迹象表明标头曾经是标头。 在最终输出中,它看起来就像是普通段落。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM