@basenative/markdown

中文文档
3.0.0发布于 2026/10/31Apache-2.0TypeScriptES Module零依赖构建来源已验证

零依赖ES模块降价解析器和ssr安全的HTML渲染器

中文使用文档
文档目录8 节
  1. 功能
  2. 支持减价
  3. 使用
  4. 表
  5. 安全
  6. 任务列表
  7. 限制
  8. 许可证

@basenative /减价

零依赖ES模块降价解析器和ssr安全的HTML渲染器。

功能

  • 零依赖关系 —不需要外部包装
  • 纯ES模块 -工作在Node.js 22+和现代浏览器
  • SSR-safe —无DOM访问,生成纯HTML字符串
  • 以安全为目的 XSS预防,URL清理,HTML实体转义
  • AST-first -解析到AST和单独渲染,或使用方便 parse() 对HTML

支持减价

  • 航空运输税目(#–######)及settext标题(===, --- 突显出)
  • 段落
  • 大胆的**text**, __text__)
  • 斜体(*text*, _text_)
  • 粗体加斜体(***text***, ___text___)
  • 删除线(~~text~~)
  • 内联代码(`text`)和带有内嵌反勾的双反勾代码
  • 链接([text](url))及标题连结([text](url "title"))
  • 图像(![alt](url))
  • autolink (<https://example.com>, <[email protected]>)
  • 无序列表(-, *, +)和有序列表(1., 2.,……)
  • 嵌套列表(缩进两个空格)
  • 任务列表(- [ ] todo, - [x] done) - GFM
  • 代码块——用 ``` 或者 ~~~,带有可选的语言标记
  • 您(>)与延迟延拓
  • 横规(---, ___, ***)
  • 表- ggm样式,具有列对齐(:---, :---:, ---:)
  • 硬断行(两个尾随空格或尾随 \)
  • 用于标点符号的反斜杠转义
  • yaml样式的页眉(--- … ---)

使用

import { parse, parseAST, render, parseFrontmatter } from '@basenative/markdown';

// One-shot: markdown → HTML
const html = parse('# Hello\n\nThis is **bold**.');

// Two-step: markdown → AST → HTML (lets you transform the AST)
const ast = parseAST('# Hello');
const html2 = render(ast);

// Frontmatter
const { meta, content } = parseFrontmatter(`---
title: Post
---

# Body`);

渲染器也可以作为单独的子路径导入:

import { render } from '@basenative/markdown/renderer';

表

| Name  | Role     | Score |
| :---  | :------: | ----: |
| Alice | designer |    42 |
| Bob   | engineer |   100 |

列对齐是从分隔行(:--- 离开了, :---: 中心, ---: 右),并发出为 style="text-align:..." 在每个细胞上。

安全

渲染器包括内置的XSS攻击保护:

  • HTML实体在所有文本节点(包括表格单元格)中进行转义。
  • javascript:, data:, vbscript: url被阻断
  • 图像、文本和代码语言类被转义
  • 所有属性都被安全引用

任务列表

- [x] Write the parser
- [x] Write the renderer
- [ ] Ship it

渲染为 <ul class="task-list"> 与 <input type="checkbox" disabled> (或 checked disabled在每一个里面 <li class="task-list-item">.

限制

  • 没有参考样式的链接([text][id] + [id]: url)
  • 没有HTML直通-原始HTML被转义
  • 不支持LaTeX/math
  • 没有自定义语法扩展

许可证

apache - 2.0

版本与发布记录

@basenative/markdown 共发布 11 个版本,首次发布于 2026/10/18;过去 12 个月发布了 11 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.0.0latest2026/10/312 天前
2.4.02026/10/268 天前
2.3.22026/10/2212 天前
2.3.12026/10/2212 天前
2.3.02026/10/2212 天前
2.2.02026/10/2113 天前

关于 @basenative/markdown 的常见问题

@basenative/markdown 是什么?

零依赖ES模块降价解析器和ssr安全的HTML渲染器

如何安装 @basenative/markdown?

在项目目录运行 npm install @basenative/markdown,或使用 pnpm add / yarn add / bun add。

@basenative/markdown 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@basenative/markdown 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@basenative/markdown 可以商用吗?

@basenative/markdown 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@basenative/markdown 还在维护吗?

最新版本 3.0.0 发布于 2026/10/31(2 天前);至今共发布 11 个版本,其中过去 12 个月发布了 11 个;首次发布于 2026/10/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。