markdown-to-text2
v2.0.0
Published
将 Markdown 转为纯文本的轻量工具。基于 remark,内置 GFM/Emoji 支持,针对任务列表、代码块、表格等做了优化处理,输出更可读的文本。
Downloads
468
Readme
markdown-to-text2
将 Markdown 转为纯文本的轻量工具。基于 remark,内置 GFM/Emoji 支持,针对任务列表、代码块、表格等做了优化处理,输出更可读的文本。
特性
- 支持 GFM:表格、任务列表、删除线、链接
- Emoji:
:smile:→ 😄 - 任务列表:
- [x]/- [ ]→☑/□ - 代码:内联与代码块转为普通段落,无多余空行
- 表格:按行展开,单元格以空格分隔,保留行间换行
- 去除引用块、样式标记,仅保留可读文本
- ESM/CJS 双产物,
sideEffects: false便于 tree-shaking
安装
pnpm add markdown-to-text2
# npm i markdown-to-text2
# yarn add markdown-to-text2快速上手
ESM:
import markdownToText, { markdownToText as mdToText } from 'markdown-to-text2';
const md = `
# Title
> Quote
- [x] Done
- [ ] Todo
Inline \`code\`
\`\`\`ts
console.log(':smile: table');
\`\`\`
| A | B |
| - | - |
| 1 | 2 |
See [Link](https://example.com)
`;
const text = await markdownToText(md);
console.log(text);
// Title
//
// ☑ Done
// □ Todo
//
// Inline code
// console.log(':smile: table')
//
// A B
// 1 2
//
// See LinkCommonJS:
const { markdownToText } = require('markdown-to-text2');
(async () => {
const text = await markdownToText('# Hello :smile:');
console.log(text); // Hello 😄
})();API
function markdownToText(markdown: string): Promise<string>;- 入参:Markdown 字符串
- 出参:Promise(纯文本)
转换规则
- 标题、强调、删除线等样式移除,仅保留文本
- 任务列表前缀:
[x]→☑,[ ]→□ - 引用块移除
- 链接保留可见文本,丢弃 URL
- 代码块与行内代码合并为普通段落,无多余空行
- 表格每行用空格连接单元格,多行之间保留换行
- 对 Markdown 中的转义符进行反转义(如
\*→*)
