当前位置: 首页 > news >正文

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,并将结果输出到文件中。
    • 浏览器使用示例:
<!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模块导入方式:

<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绝对是一个值得考虑的选择。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【C语言必学知识点六】自定义类型——结构体
  • 单品月GMV破4900W,2024防晒衣赛道在狂飙!
  • 以下是一些对公打款的测试方法
  • 【微信小程序】自定义 tabBar
  • 计算机毕设选题推荐-基于python的豆瓣电子图书数据可视化分析
  • Python脚本参数总结:argparse库基础用法
  • docker容器使用aconda运行python程序
  • KVM是什么,如何给一台Linux系统使用KVM技术变成好几个不同配置的Linux系统?
  • 回首“八年级上册语文课本”-----原文+感慨
  • angular xlsx-style,复杂表头样式导出
  • Redis的内存淘汰策略-noeviction
  • [kylin M900]麒麟操作系统固件修改与合成
  • 超级会员卡积分收银系统源码,一站式解决方案,可以收银的小程序 带完整的安装代码包以及搭建部署教程
  • WAF和防火墙有什么区别
  • 基于jstack、jmap、jstat 进行JVM监控
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • Android开源项目规范总结
  • Js基础——数据类型之Null和Undefined
  • js正则,这点儿就够用了
  • PAT A1050
  • spring学习第二天
  • TypeScript实现数据结构(一)栈,队列,链表
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 正则学习笔记
  • C# - 为值类型重定义相等性
  • MyCAT水平分库
  • 湖北分布式智能数据采集方法有哪些?
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #VERDI# 关于如何查看FSM状态机的方法
  • #图像处理
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (4) PIVOT 和 UPIVOT 的使用
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (Oracle)SQL优化技巧(一):分页查询
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (八)Flask之app.route装饰器函数的参数
  • (超详细)语音信号处理之特征提取
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (区间dp) (经典例题) 石子合并
  • (四)React组件、useState、组件样式
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .Net Core和.Net Standard直观理解