Repolode
davatron5000

davatron5000/microlighter

一个零依赖的 JavaScript 语法高亮库,基于 CSS Highlight API,不为每个 token 添加 span 标签。

Star
1,055
Fork
33
未关闭 Issue
22
最近提交
上个月

这是什么?

MicroLighter 是一个用于网页的小型语法高亮库。它读取 TextMate 语法文件,并通过浏览器的 CSS Custom Highlight API 上色,因此代码块中不会插入大量 span 标签,标记结构保持简洁、便于编辑。压缩后约 2 KiB,没有运行时依赖。

库内置 37 种按需加载的语言和 10 套主题,主题通过 CSS 自定义属性控制配色。使用方式包括编程式的 `highlightAll()`、响应 `syntax-highlight` 事件的自动运行脚本、CDN 引入,以及可选的 `<micro-lighter>` Web 组件(支持复制按钮和行号)。

分词器直接使用浏览器原生的 RegExp,而非 Oniguruma 或 WebAssembly,因此体积很小。代价是语言覆盖和语法准确度不及 Shiki 等更完整的工具。

核心功能

  • 01压缩后约 2 KiB,无运行时依赖
  • 02高亮时不向 DOM 插入 token 的 span 元素
  • 03基于 TextMate 语法支持 37 种按需加载的语言
  • 04内置 10 套通过 CSS 自定义属性配置的主题
  • 05提供编程式、自动运行和 Web 组件三种用法
  • 06高亮后的代码块仍可作为纯文本编辑

适用场景

  • 为文档站点或博客添加轻量的代码语法高亮
  • 在可编辑的 Web 组件或浏览器内代码编辑器中高亮代码
  • 希望避免 Shiki 等大型依赖、需要轻量高亮方案的项目

快速上手

  1. 1

    安装软件包

    npm install microlighter
  2. 2

    导入主题并在 JavaScript 中运行高亮器

    import "microlighter/themes/github.css"; import { highlightAll } from "microlighter"; document.body.dataset.syntaxTheme = "github"; await highlightAll();

使用前须知

  • 语言覆盖范围和语法准确性不及 Shiki 等更大型的工具。
  • 依赖 CSS Custom Highlight API,因此浏览器必须支持该接口。

标签

常见问题

microlighter 是什么?
一个零依赖的 JavaScript 语法高亮库,基于 CSS Highlight API,不为每个 token 添加 span 标签。 MicroLighter 是一个用于网页的小型语法高亮库。它读取 TextMate 语法文件,并通过浏览器的 CSS Custom Highlight API 上色,因此代码块中不会插入大量 span 标签,标记结构保持简洁、便于编辑。压缩后约 2 KiB,没有运行时依赖。
microlighter 可以免费使用吗?用的什么许可证?
microlighter 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
microlighter 还在维护吗?
半年内有更新。microlighter 最近一次提交是在 2026年9月11日。
microlighter 适合用来做什么?
为文档站点或博客添加轻量的代码语法高亮 在可编辑的 Web 组件或浏览器内代码编辑器中高亮代码 希望避免 Shiki 等大型依赖、需要轻量高亮方案的项目
microlighter 怎么安装和运行?
安装软件包: npm install microlighter 导入主题并在 JavaScript 中运行高亮器: import "microlighter/themes/github.css"; import { highlightAll } from "microlighter"; document.body.dataset.syntaxTheme = "github"; await highlightAll();
在哪里获取 microlighter?
源代码和安装说明在 GitHub 上:https://github.com/davatron5000/microlighter

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目