[英]Java regex: Clear whitespaces with regex, but not for underline, bold and italic
[英]Limiting Markdown to underline/bold/italic in Java converter
我正在寻找一种允许用户设置其文本格式的方法。 格式限于:
我想使用Markdown并将Markdown转换为服务器端的HTML。
我的问题是Markdown支持的格式超出我想要的格式(标题,表格等)。
您是否知道Markdown库,可以在其中将下划线/斜体/粗体/ ..列入白名单?
如果没有白名单,我考虑过用JSOUP清理生成的HTML。 那是首选方式吗?
谢谢。
有几种不同的方法可以实现。 选择哪个取决于所使用的库(建议使用特定工具在StackOverflow上不合主题)以及您要查找的行为是什么。 您可以在下面找到每种方法的摘要。
一些解析器提供了一个API,允许您修改其行为。 您也许可以删除解析表,标题等的位,然后将其余部分留在原处。 然后,您的最终输出将保留这些功能的任何Markdown语法。 例如,如果作者键入标题,他们将获得一个以哈希开头的段落。
一些Markdown解析器分两步工作。 在步骤1中,解析器获取Markdown文本并输出抽象语法树(AST),在步骤2中,渲染器接受AST并输出HTML。 您可以修改默认渲染器,也可以构建自定义渲染器以根据需要处理每个元素。 例如,您可以告诉“ header”渲染器方法输出一个段落(而不是标题),并且可以选择该段落是否包含原始哈希。
使用您选择的Markdown解析器,将文本传入并接受输出而无需修改。 然后将HTML输出传递到HTML清理程序中,该清理程序将清除白名单中未包含的所有标签。 在这种情况下,将不会有迹象表明标头曾经是标头。 在最终输出中,它看起来就像是普通段落。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.