PostgreSQL中Markdown无序列表换行问题及simple-markdown渲染方案咨询
PostgreSQL文本列用simple-markdown渲染无序列表的解决办法
问题描述
我们的PostgreSQL数据库中有一个文本列,内容会通过Markdown渲染。希望该文本列呈现为无序列表,因此尝试在字符串中添加换行符(\n)来实现,但未成功。输入的Markdown字符串为:
- One \n- Two \n- Three \n- Four
渲染后的输出异常(如图渲染异常的无序列表),当前使用React库simple-markdown进行渲染。
可行解决方案
修正换行符解析问题
你当前字符串中的\n被当作普通文本解析,而非实际换行。需要将转义的\n替换为真实换行符,在从数据库读取数据后处理:// 处理数据库返回的原始字符串 const correctedMarkdown = rawDbText.replace(/\\n/g, '\n');或者在插入数据库时,直接存入带真实换行的文本,而非转义后的
\n字符串。调整simple-markdown的解析逻辑
确保simple-markdown正确识别换行分隔的列表项,使用默认规则时需保证输入文本的换行是真实换行:import SimpleMarkdown from 'simple-markdown'; // 解析处理后的Markdown文本 const parse = SimpleMarkdown.parserFor(SimpleMarkdown.defaultRules); const render = SimpleMarkdown.outputFor(SimpleMarkdown.defaultRules, 'html'); const htmlResult = render(parse(correctedMarkdown));简化Markdown格式
无需在列表项末尾添加两个空格,simple-markdown解析无序列表只需每个列表项单独占一行。正确的存储格式应为:- One - Two - Three - Four
内容的提问来源于stack exchange,提问作者Omri Shneor
相关产品推荐
相关产品推荐

