Markdown转换纯文本txt,markdownToText()函数md转txt示例教程demo
有些时候,我们希望网页上渲染的 markdown 是带有格式的,比如标题、列表、链接,
但是有时候我们希望不带任何格式,比如,你要把 markdown 的文字,给到阿里云的语音合成的时候,把 markdown 的##井号传给阿里云的服务器,就会出现一个奇怪的现象:阿里云会把#读出来,文字中加个一个井,这并是一个我们预期的行为,于是就产生了:markdown 转换 txt的需求。
How markdown to txt? 怎么把 markdown 转换纯文本,把井号、星号、过多的换行删除呢?
代码示例 demo 在这里:
function markdownToText(markdown) {
// const MarkdownIt = require('markdown-it'); // npm安装 markdown-it 的调用方式
// const md = new MarkdownIt();
const md = new markdownit(); // cdn 获取 markdown-it 的调用方式
const html = md.render(markdown);
console.log(html);
// 创建一个临时的 DOM 元素
const tempDiv = document.createElement('div');
// 设置 HTML 内容
tempDiv.innerHTML = html;
// 获取纯文本内容
const text = tempDiv.innerText || '';
return text;
}
// 测试一下
var test = `# markdown标题1
## 标题2
1. 章节一
2. 章节二
`
console.log(markdownToText(test)); // 输出:markdown标题1\n标题2\n1. 章节一\n2. 章节二\n\n
上面的代码,html = md.render(markdown); 这里得到了 markdown 转换为 html 网页。
然后通过html节点的 innerText 取值,获取到 html 转换为 txt 的纯文本。
最终的文本,就不包含格式了,不包含md格式的 #井号、**星号加粗了。
使用的开源库:
markdown-it v6.1.1
比起简单的写代码实现删除井号、星号,通过 markdown 解析引擎来处理这些事情,是更好的选择。
1、规避了自己写代码,有些情况没处理到的情况
2、自己写正则替换、删除型号、删除井号,出bug的可能性是比较高的
3、使用 markdown-it 实现,更快的实现了 md 转换 txt文本的需求,简单快捷
相关话题
markdown怎样转换为纯文本txt
markdown怎样删除格式,变成纯文字txt
markdownToText() function
markdown怎样删除各种特殊符号,批量处理
markdown-it使用实例demo
markdown-it怎么把md文档变成网页html