社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

这款 Markdown 解析器和编译器 在Github又爆了,速度极快。。。

java1234 • 1 月前 • 128 次点击  
大家好,我是锋哥。

今天逛Github,又刷到 marked 这个开源项目。仓库简介就一句话:A markdown parser and compiler. Built for speed. 翻译过来就是:一款 Markdown 解析器和编译器,速度极快。。

它不是今年才冒出来的。项目从 2011 年就在写了,到现在还有 3.7 万多 Star,npm 上一周能下五千多万次。很多博客、文档站、在线编辑器,背后其实都在用它。今天锋哥和大家来好好聊聊 marked 这个优秀的开源项目。

目录

  • 它到底是干嘛的

  • 为啥大家还在用它

  • 它内部大概怎么走

  • 上手其实就几行代码

  • 想改输出长什么样也行

它到底是干嘛的

你写了一篇 Markdown,标题、加粗、列表、代码块都有。浏览器看不懂这些符号,它只认识 HTML。marked 干的活,就是把 # 标题 变成 

,把 **加粗**  变成 。

官网自己也说得很直接:

  • 为速度而生

  • 体积很小,零依赖

  • 浏览器、Node.js、命令行都能跑

  • 想加自定义语法,也留了接口

CommonMark 基本全覆盖,GitHub 那种表格、任务列表、删除线也支持得差不多了。日常写博客、做文档预览,够用。

为啥大家还在用它

Markdown 解析器其实不少,remark、markdown-it 也都挺有名。marked 还能一直火,我觉得就三点:

第一,轻。 不带一堆依赖,丢进前端项目也不会把体积撑得很夸张。

第二,快。 它不搞复杂缓存,也不长时间卡住主线程。官网文档页自己就是用 marked 渲染的,多少有点自信。

第三,用的地方多。 浏览器里实时预览、服务器上批量转 HTML、命令行直接出文件,同一套 API 就能干。

它内部大概怎么走

你不用把源码看一遍。记住这条流水线就行:先把文本拆成一块块 token,再按规则拼成 HTML。

中间那一层 token 挺有用。以后你想改标题样式、给代码块加高亮,不用重写整个解析器,改渲染那一步就够了。

上手其实就几行代码

先装上:

npm install marked

Node.js 里最常见的写法:

import { marked } from 'marked';
const markdown = `# 今天也在写文档
这是一段 **加粗** 的文字。
- 安装简单- 速度很快- 浏览器和 Node 都能用`;
const html = marked.parse(markdown);console.log(html);

跑完大概会得到:

<h1>今天也在写文档h1><p>这是一段 <strong>加粗strong> 的文字。p><ul>  <li>安装简单li>  <li>速度很快li>  <li>浏览器和 Node 都能用li>ul>

不想包一层 

 的时候,用 parseInline:

marked.parse('**加粗** _斜体_');// <p><strong>加粗strong> <em>斜体em>p>
marked.parseInline('**加粗** _斜体_');// <strong>加粗strong> <em>斜体em>

浏览器里也能直接用 CDN,适合做个本地预览页:

html><html><head>  <meta charset="utf-8" />  <title>Marked 预览title>head><body>  <div id="content">div>  <script src="https://cdn.jsdelivr.net/npm/marked/lib/marked.umd.js">script>  <script>    document.getElementById('content').innerHTML = marked.parse(      '# 浏览器里也能跑\n\n渲染这件事,交给 **marked** 就行。'    );


    
  script>body>html>

命令行也有。装好全局命令后,文件进,HTML 出:

npm install -g markedmarked -i readme.md -o readme.html

默认就开了 GFM。表格、任务列表这些 GitHub 常见写法,一般不用额外折腾。真要改配置,用 marked.use:

import { marked } from 'marked';
marked.use({  gfm: true,     // GitHub 风格,默认就是 true  breaks: true,  // 单个换行也变成
,更像聊天框
  async: false});
const html = marked.parse('第一行\n第二行');

想改输出长什么样也行

比如不想让所有一级标题都长一个样,可以改 renderer:

import { marked } from 'marked';
const renderer = {  heading({ text, depth }) {    if (depth === 1) {      return `

${text}\n`;
    }    return false; // 其他标题走默认逻辑  }};
marked.use({ renderer });
console.log(marked.parse('# 我的博客标题'));//

我的博客标题

代码高亮、脚注、emoji 这些,官方生态里也有现成扩展,比如 marked-highlight、marked-emoji。装上以后同样丢给 marked.use() 就行,不用自己从零造轮子。

项目地址在这:https://github.com/markedjs/marked

2026年,锋哥又开始收Java+AI大模型编程学员了!目前活动,送AI编程+Python+AI大模型VIP。。

最近锋哥录制了一些AI编程视频教程

图片

高清视频+源码+领取。

扫描下方公众号【小锋学AI 】回复:888 ,

可获取下载链接

👇👇👇

图片


👆长按上方二维码 2 秒
回复「888」即可获取

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/201533