Marked:一款极致速度的 Markdown 解析器与编译器

Marked 是一款为速度而生的 Markdown 解析与编译工具。它具备以下特性:

核心优势:

  • 闪电般速度: Marked 采用低级别编译器实现 Markdown 解析,避免缓存及长时间阻塞,确保极高的效率。
  • 轻量级: 在保持轻量化的同时,完整支持各种主流 Markdown 规范及扩展特性。
  • 跨平台兼容: 支持浏览器环境、服务器端以及命令行界面 (CLI) 等多种运行环境。

快速上手:

  • 在线演示: 访问演示页面体验 Marked 的强大功能 ([需要补充演示链接])
  • 文档: 我们的文档页面同样由 Marked 渲染生成 ([需要补充文档链接]),其中详细介绍了:选项配置、扩展机制、兼容性等内容。

重要说明:

  • Node.js 支持: 仅支持当前版本及长期支持 (LTS) 版本的 Node.js。 已不再维护的 Node.js 版本可能与 Marked 不兼容。
  • 浏览器兼容性: 不支持 IE11。
  • 安全提示: Marked 不会对输出的 HTML 进行任何安全过滤。 务必使用诸如 DOMPurify(推荐)、sanitize-html 或 insane 等安全库对输出的 HTML 进行消毒处理,以防止 XSS 攻击。 示例如下:
DOMPurify.sanitize(marked.parse(`<img src="x" onerror="alert('not happening')">`));

安装与使用:

  • 命令行 (CLI) 安装:
npm install -g marked
  • 浏览器端安装 (npm):
npm install marked
  • CLI 使用示例:

    标准输入输出:

$ marked -o hello.html
hello world
^D
$ cat hello.html
<p>hello world</p>

查看所有选项:

$ marked --help
  • 浏览器端使用示例:

    传统 <script> 方式:

<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>Marked in the browser</title>
</head>
<body>
<div id="content"></div>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script>
document.getElementById('content').innerHTML =
marked.parse('# Marked in the browser\n\nRendered by **marked**.');
</script>
</body>
</html>

ES Module 方式:

<script type="module">
import { marked } from "https://cdn.jsdelivr.net/npm/marked/lib/marked.esm.js";
document.getElementById('content').innerHTML =
marked.parse('# Marked in the browser\n\nRendered by **marked**.');
</script>

许可协议:

Copyright (c) 2011-2022, Christopher Jeffrey. (MIT License)