Marked: 一款高效、轻量级且全功能的Markdown解析器

在Web开发中,Markdown已成为一种流行的轻量级标记语言,它允许人们使用简单的文本格式编写文档,并可轻松转换为HTML。为了满足这一需求,出现了许多Markdown解析器,而Marked无疑是其中的佼佼者。Marked以其速度、轻量级和全面的功能支持而脱颖而出,成为开发者们的首选工具。

一、Marked的特点

  1. 速度至上:Marked是一款低级别的编译器,专门用于解析Markdown,而无需进行缓存或长时间阻塞。

  2. 轻量级:尽管Marked实现了所有支持的Markdown风格和规范中的功能,但它的体积仍然保持得很小。

  3. 跨平台:Marked可以在浏览器、服务器或命令行界面(CLI)中运行,提供了极大的灵活性。

二、Marked的使用场景

  1. 在线演示:Marked的演示页面展示了其在实际应用中的效果。

  2. 文档渲染:Marked甚至用于渲染其自身的文档页面,这充分证明了其可靠性和实用性。

三、Marked的兼容性

  1. Node.js:Marked仅支持当前和长期支持(LTS)的Node.js版本。对于已到达生命周期末端的Node.js版本,Marked可能会随时与其不兼容。

  2. 浏览器:Marked不支持IE11浏览器。

四、Marked的安装和使用

  1. 安装

    • CLI:使用npm安装Marked的全局版本,命令为npm install -g marked
    • 浏览器:使用npm安装Marked,命令为npm install marked
  2. 使用

    • 在使用Marked时,请注意它不会对输出的HTML进行清理。因此,建议使用像DOMPurify这样的清理库来对输出的HTML进行处理。
    • CLI使用示例:可以通过命令行将文本转换为HTML,并将结果输出到文件中。
    • 浏览器使用示例:
html 复制代码
<!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模块导入方式:

html 复制代码
<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>

五、总结

Marked是一款功能强大、易于使用和高度灵活的Markdown解析器。它以其出色的性能、轻量级的体积和全面的功能支持而广受开发者们的喜爱。无论是在服务器端、客户端还是命令行界面中,Marked都能提供稳定可靠的Markdown解析能力。如果你正在寻找一款优秀的Markdown解析器,那么Marked绝对是一个值得考虑的选择。

相关推荐
2501_944448001 小时前
Flutter for OpenHarmony衣橱管家App实战:支持我们功能实现
android·javascript·flutter
会跑的葫芦怪7 小时前
若依Vue 项目多子路径配置
前端·javascript·vue.js
xiaoqi9228 小时前
React Native鸿蒙跨平台如何进行狗狗领养中心,实现基于唯一标识的事件透传方式是移动端列表开发的通用规范
javascript·react native·react.js·ecmascript·harmonyos
jin1233228 小时前
React Native鸿蒙跨平台剧本杀组队消息与快捷入口组件,包含消息列表展示、快捷入口管理、快捷操作触发和消息详情预览四大核心功能
javascript·react native·react.js·ecmascript·harmonyos
烬头882110 小时前
React Native鸿蒙跨平台实现二维码联系人APP(QRCodeContactApp)
javascript·react native·react.js·ecmascript·harmonyos
pas13610 小时前
40-mini-vue 实现三种联合类型
前端·javascript·vue.js
2601_9498333910 小时前
flutter_for_openharmony口腔护理app实战+预约管理实现
android·javascript·flutter
军军君0111 小时前
Three.js基础功能学习十三:太阳系实例上
前端·javascript·vue.js·学习·3d·前端框架·three
xiaoqi92212 小时前
React Native鸿蒙跨平台如何实现分类页面组件通过searchQuery状态变量管理搜索输入,实现了分类的实时过滤功能
javascript·react native·react.js·ecmascript·harmonyos
qq_1777673713 小时前
React Native鸿蒙跨平台实现应用介绍页,实现了应用信息卡片展示、特色功能网格布局、权限/联系信息陈列、评分展示、模态框详情交互等通用场景
javascript·react native·react.js·ecmascript·交互·harmonyos