markdown

发布时间:2025-08-18 16:22

Markdown排版:Typora或GitHub的Markdown指南 #生活技巧# #工作学习技巧# #编程学习资源#

markdown-it

覆盖率状态

Markdown 解析器做得对。快速且易于扩展。

在线演示

遵循 CommonMark 规范 + 添加语法扩展和语法糖(URL 自动链接、排版)。 可配置的语法!您可以添加新规则,甚至替换现有规则。 高速。 默认安全。 社区编写的 插件 和 npm 上的其他包。

目录

安装 使用示例 简单 使用预设和选项初始化 加载插件 语法高亮 链接化 API 语法扩展 管理规则 基准测试 企业版 markdown-it 作者 参考文献/致谢

安装

node.js:

npm install markdown-it

浏览器 (CDN):

jsDeliver CDN cdnjs.com CDN

使用示例

另请参阅:

API 文档 - 更多信息和示例。 开发信息 - 适用于插件开发者。

简单

// node.js // 可以使用 `require('markdown-it')` 用于 CJS import markdownit from 'markdown-it' const md = markdownit() const result = md.render('# markdown-it 规则!'); // 使用 UMD 构建的浏览器版本,在脚本加载时添加到 "window" 中 // 注意,"markdownit" 中没有破折号。 const md = window.markdownit(); const result = md.render('# markdown-it 规则!');

单行渲染,不包含段落包装:

import markdownit from 'markdown-it' const md = markdownit() const result = md.renderInline('__markdown-it__ 规则!');

使用预设和选项初始化

(*) 预设定义了活动规则和选项的组合。可以是 "commonmark"、"zero" 或 "default"(如果省略)。有关更多详细信息,请参阅 API 文档。

import markdownit from 'markdown-it' // commonmark 模式 const md = markdownit('commonmark') // 默认模式 const md = markdownit() // 启用所有功能 const md = markdownit({ html: true, linkify: true, typographer: true }) // 完整选项列表(默认值) const md = markdownit({ // 在源代码中启用 HTML 标签 html: false, // 使用 '/' 关闭单标签(<br />)。 // 这仅用于完全兼容 CommonMark。 xhtmlOut: false, // 将段落中的 '\n' 转换为 <br> breaks: false, // CSS 语言前缀,用于围栏代码块。可用于 // 外部高亮器。 langPrefix: 'language-', // 自动将类 URL 文本转换为链接 linkify: false, // 启用一些与语言无关的替换 + 引号美化 // 有关替换的完整列表,请参阅 https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.mjs typographer: false, // 启用排版功能时的双引号和单引号替换对。 // 可以是字符串或数组。 // // 例如,您可以为俄语使用 '«»„"',为德语使用 '„"‚'', // 为法语使用 ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'](包括 nbsp)。 quotes: '""''', // 高亮函数。应返回转义后的 HTML, // 或者如果源字符串未更改且应在外部转义,则返回 ''。 // 如果结果以 <pre... 开头,则跳过内部包装。 highlight: function (/*str, lang*/) { return ''; } });

加载插件

import markdownit from 'markdown-it' const md = markdownit .use(plugin1) .use(plugin2, opts, ...) .use(plugin3);

语法高亮

使用 highlight 选项对围栏代码块应用语法高亮:

import markdownit from 'markdown-it' import hljs from 'highlight.js' // https://highlightjs.org // 实际默认值 const md = markdownit({ highlight: function (str, lang) { if (lang && hljs.getLanguage(lang)) { try { return hljs.highlight(str, { language: lang }).value; } catch (__) {} } return ''; // 使用外部默认转义 } });

或者完全覆盖包装(如果您需要为 <pre> 或 <code> 分配类):

import markdownit from 'markdown-it' import hljs from 'highlight.js' // https://highlightjs.org // 实际默认值 const md = markdownit({ highlight: function (str, lang) { if (lang && hljs.getLanguage(lang)) { try { return '<pre><code class="hljs">' + hljs.highlight(str, { language: lang, ignoreIllegals: true }).value + '</code></pre>'; } catch (__) {} } return '<pre><code class="hljs">' + md.utils.escapeHtml(str) + '</code></pre>'; } });

链接化

linkify: true 使用 linkify-it。要配置 linkify-it,可以通过 md.linkify 访问 linkify 实例:

md.linkify.set({ fuzzyEmail: false }); // 禁用将电子邮件转换为链接

API

API 文档

如果您打算编写插件,请查看开发信息。

语法扩展

内置(默认启用):

表格(GFM) 删除线(GFM)

通过插件:

下标 上标 脚注 定义列表 缩写 表情符号 自定义容器 插入 标记 ... 以及其他

管理规则

默认情况下,所有规则都已启用,但可以通过选项进行限制。插件加载时,其所有规则都会自动启用。

import markdownit from 'markdown-it' // 使用柯里化激活/停用规则 const md = markdownit() .disable(['link', 'image']) .enable(['link']) .enable('image'); // 启用所有功能 const md = markdownit({ html: true, linkify: true, typographer: true, });

您可以在源代码中找到所有规则:

parser_core.mjs parser_block.mjs parser_inline.mjs

基准测试

以下是在 MB Pro Retina 2013(2.4 GHz)上解析 readme 的结果:

npm run benchmark-deps benchmark/benchmark.mjs readme Selected samples: (1 of 28) > README Sample: README.md (7774 bytes) > commonmark-reference x 1,222 ops/sec ±0.96% (97 runs sampled) > current x 743 ops/sec ±0.84% (97 runs sampled) > current-commonmark x 1,568 ops/sec ±0.84% (98 runs sampled) > marked x 1,587 ops/sec ±4.31% (93 runs sampled)

注意。 CommonMark 版本使用简化的链接规范化器运行,以进行更"诚实"的比较。差异约为 1.5 倍。

如您所见,markdown-it 不会为其灵活性付出速度代价。"完整"版本的性能下降是由于其他实现中不可用的额外功能造成的。

企业版 markdown-it

作为 Tidelift 订阅的一部分提供。

markdown-it 的维护者和数千个其他包的维护者正在与 Tidelift 合作,为您用于构建应用程序的开源依赖项提供商业支持和维护。节省时间,降低风险,改善代码健康,同时向您使用的确切依赖项的维护者付费。了解更多。

作者

Alex Kocharin github/rlidwka Vitaly Puzrin github/puzrin

markdown-it 是贡献了 Remarkable 99% 代码的作者决定转向具有相同作者但新领导(Vitaly 和 Alex)的项目的结果。这不是一个分支。

参考文献/致谢

非常感谢 John MacFarlane 在 CommonMark 规范和参考实现方面所做的工作。他的工作在本项目的开发过程中为我们节省了大量时间。

相关链接:

https://github.com/jgm/CommonMark - C 和 JS 的参考 CommonMark 实现,还包含最新规范和在线演示。 http://talk.commonmark.org - CommonMark 论坛,是开发者协作的好地方。

移植版本

motion-markdown-it - Ruby/RubyMotion markdown-it-py - Python

网址:markdown https://klqsh.com/news/view/164754

相关内容

GitHub 新手训练营
科研绘图工具figdraw & mermaid & R/Python
微信开放文档
语雀网页版免费下载
一个独立开发者的逆袭成长之路
龙大美食获融资买入超1700万!主力资金关注,后市如何演绎?
刘在石自曝被霸凌经历,韩国娱乐圈这是要集体回忆童年阴影?
萨拉热窝电影节开幕,新片《亭》首映,影迷:惊喜还是失望?
“口水音”风波后单依纯灵魂四问引爆《歌手2025》!新歌《有趣》能否逆袭?
杨小壮新歌催泪首发!《那个说好不会走的人》唱哭多少痴情人?

随便看看