Marked
Marked是一个为了速度而构建的低级Markdown编译器,用于解析Markdown,而不进行缓存或长时间阻塞。它轻量级,同时实现了所有支持的Markdown版本和规范中的功能,并且可以作为命令行界面(CLI)使用,也可以在客户端或服务器端JavaScript项目中运行。
仍然在为比较分析定义指标。
尽可能少的依赖。
严格遵循可能会导致在运行比较基准测试时处理速度变慢。
示例
查看演示页面,以了解Marked如何工作⛹️。 这些文档页面也是使用marked渲染的💯。
安装
CLI:npm install -g marked
浏览器:
npm install marked
使用
警告:🚨 Marked不会清理输出HTML。如果您正在处理可能不受安全控制的字符串,请务必过滤可能的XSS攻击。一些过滤选项包括DOMPurify(推荐)、js-xss、sanitize-html和insane输出HTML!🚨
DOMPurify.sanitize(marked.parse('<img src="x" onerror="alert('not happening')">'));
⚠️ 输入:特殊零宽度Unicode字符(例如 \uFEFF)可能会干扰解析。一些文本编辑器会在文件开头添加这些字符(参见:#2139)。
// 从文件开头移除最常见的零宽度字符
marked.parse(
contents.replace(/^[\u200B\u200C\u200D\u200E\u200F\uFEFF]/,"")
)
CLI
# stdin输入示例
$ marked -o hello.html
hello world
^D
$ cat hello.html
<p>hello world</p>
# 字符串输入示例
$ marked -s "*hello world*"
<p><em>hello world</em></p>
# 文件输入示例
echo "**bold text example**" > readme.md
$ marked -i readme.md -o readme.html
$ cat readme.html
<p><strong>bold text example</strong></p>
# 打印所有选项
$ marked --help
CLI 配置
可以使用配置文件来配置marked CLI。 如果它是一个.json文件,它应该是一个JSON对象,将作为选项传递给marked。 如果使用.js,它应该有默认导出一个marked选项对象或一个接受marked作为参数的函数。 它可以使用marked参数通过marked.use安装扩展。 默认情况下,marked CLI将按照以下顺序在你的主目录中查找配置文件。
~/.marked.json
~/.marked.js
~/.marked/index.js
# 自定义配置示例
echo '{ "breaks": true }' > config.json
$ marked -s 'line1\nline2' -c config.json
<p>line1<br>line2</p>