最近在工作中遇到了接口返回 markdown 语法的文本在页面中展示的场景,我选择了使用 markdown-it 这个库来处理,下面给大家做个分享。
一、markdown-it简介
markdown-it是一款功能强大的Markdown解析器,支持丰富的Markdown语法,能够轻松将Markdown文本转换为HTML格式。它拥有丰富的插件和配置选项,让你的文档编辑更加灵活多变。
二、markdown-it安装与使用
1.安装markdown-it
你可以通过npm(Node.js包管理器)来安装markdown-it。在命令行中输入以下命令:
npm install markdown-it
安装完成后,你就可以在你的项目中引入markdown-it了。
2.使用markdown-it
在JavaScript中,你可以通过以下方式使用markdown-it:
const markdownIt = require('markdown-it')();
const md = markdownIt.render('# Hello, markdown-it!');
console.log(md);
运行上述代码,你会在控制台看到以下HTML输出:
<h1>Hello, markdown-it!</h1>
三、markdown-it的详细用法与配置介绍
1.基本用法
markdown-it支持大部分标准的Markdown语法,如标题、段落、列表、链接、图片等。以下是一些示例:
- 标题:# 一级标题、## 二级标题
- 段落:直接输入文本即可
- 列表:使用-或*开头表示无序列表,使用数字加.开头表示有序列表
- 链接:[链接文字](http://example.com)
- 图片:![图片描述](http://example.com/image.jpg)
2.扩展用法
除了基本语法外,markdown-it还支持一些扩展语法,让你的文档更加丰富多彩。以下是一些常用的扩展语法:
- 表格:使用|分隔列,使用-表示表头
- 脚注:使用[^脚注]添加脚注,在文档末尾使用[^脚注]: 脚注内容定义脚注内容
- 任务列表:在列表项前添加[ ]或[x]表示任务未完成或已完成
3.配置介绍
markdown-it的配置功能强大且灵活,可以满足不同的解析需求。以下是markdown-it的配置选项:
(1) 预设配置
markdown-it提供了预设配置,以便快速启用/禁用常用语法规则和选项。例如,你可以使用"commonmark"模式将解析器配置为严格的CommonMark模式。启用该模式的方法如下:
var md = require('markdown-it')('commonmark');
默认配置(如果省略参数)和所有可用选项的启用方式如下:
var md = require('markdown-it')({
html: true, // 在源码中启用 HTML 标签
linkify: true, // 自动识别链接
typographer: true // 启用一些语言学的替换和格式
});
(2) 自定义配置
除了预设配置,你还可以根据需求自定义配置。例如,你可以通过options对象来启用或禁用某些功能:
var md = require('markdown-it')({
html: false, // 禁用 HTML 标签
xhtmlOut: false, // 不使用 '/' 来闭合单标签
breaks: true, // 将连续的两个换行转换为 `<br>` 标签
// 其他选项...
});
(3) 插件
markdown-it的扩展性主要来自于其丰富的插件生态系统。你可以通过安装和使用插件来添加更多功能,例如支持数学公式、流程图、图表等。
// 引入插件
var markdownIt = require('markdown-it')();
var plugin = require('markdown-it-plugin');
// 使用插件
markdownIt.use(plugin);
比如自己写个自定义处理链接的插件:
function markdownItCustomLink(md, options) {
md.renderer.rules.link_open = function (tokens, idx, options, env, self) {
const hrefIndex = tokens[idx].attrIndex("href");
const href = tokens[idx].attrs[hrefIndex][1];
// const text = tokens[idx + 1].content;
// 返回一个自定义组件的标签,其中包含 href 和文本内容
return `<span class="md-link-to-span" data-num="${href}">${href}</span>`;
};
md.renderer.rules.link_close = function () {
// 不需要返回任何内容,因为在 open 标签中已经完成了所有工作
return "";
};
}
module.exports = markdownItCustomLink;
四、markdown-it与其他工具的结合使用
markdown-it可以与其他工具结合使用,提高你的工作效率。例如,你可以将markdown-it与前端框架结合,将Markdown文本转换为HTML后直接渲染在页面上。此外,你还可以将markdown-it与编辑器结合,实现实时预览和编辑Markdown文档的功能。
五、总结
markdown-it以其强大的解析能力和丰富的配置选项,成为Markdown文档编辑的得力助手。通过掌握markdown-it的基本语法、扩展语法以及配置方法,你将能够轻松驾驭文档编辑,提升工作效率。