{ } => async ::sweet </>

// SUGAR HIGH · v2 · MIT · 零依赖

语法高亮,
甜而不腻

Sugar High 是一个轻量、零依赖的语法高亮库 —— 为 JavaScript、25 种主流语言, 以及编码智能体常生成的各类格式而生。浏览器与 JavaScript 运行时开箱即用,返回纯 HTML,无需 DOM。

在线试玩 ↓
0依赖
25内置语言
1个 API:highlight()
主题可能
editor.tsx LIVE · 加载中
✎ 可编辑

你看到的每一抹颜色,都由 Sugar High 在你的浏览器中实时渲染 —— 试着改几个字符?

// 01 — PLAYGROUND

十二种语言,一次糖分过量

以下全部代码由 sugar-high 实时高亮。点击标签切换语言,或静静等待轮播 —— 每一种都是开箱即用的内置支持。

main.js 含 JSX

// 02 — FEATURES

零依赖的体格,全语言的口感

一颗糖的六种滋味 —— 每一张卡片里的示例,同样由 sugar-high 实时渲染。

01

零依赖,无 DOM

不依赖任何运行时与 DOM API —— 浏览器、Node、边缘函数皆可运行,直接返回纯 HTML 字符串。

hello.js
02

25 种语言,开箱即用

覆盖主流编程语言,以及编码智能体常用的配置、查询与补丁格式。相关方言共用同一套实现:

JavaScript ⊃ JSX · TypeScript ⊃ TSX · JSON ⊃ JSONC 注释 · Shell ⊃ sh / Bash / Zsh · HCL ⊃ Terraform

lang('py') → python lang('bash') → shell lang('jsonc') → json lang('.yml') → yaml
03

可组合的核心

sugar-high/core 将可配置的语法解析与 HTML 渲染解耦:传入自己的 keywords,或搭配工具类 CSS 渲染 —— 它不包含内置语言注册表。

core.js
04

Token 级自定义

cx 传入类映射,mark() 按条件改写 token —— 类名、属性皆可叠加。

mark.js

→ 真实渲染效果(含 TODO 的注释被点亮)

05

行级高亮与行号

markLine() 从第 0 行索引改写每一行;纯 CSS 即可加行号。React 的 highlightLines 与 Remark 的 {2,5-7} 都构建于此。

lines.py — 第 2 行被 markLine 高亮
06

主题即 CSS 变量

九个语义化自定义属性构成一整套主题,可内嵌进你自己的样式表,也可作用于任意祖先元素。

换一套口味(全站生效):
theme.css

// 03 — ECOSYSTEM

延伸生态,即插即甜

核心之外,两个官方包把高亮带进 React 应用与 Markdown 管线。

REACT

@sugar-high/react

带高亮的 <Code /> 与基于 textarea 叠加层的 <Editor />,作为独立、可组合的导出提供 —— 本页 Hero 的编辑器就是同样的叠加原理。

app.tsx
REMARK

@sugar-high/remark

在处理 Markdown 的同时高亮围栏代码块;围栏别名经 lang() 映射规范化,行区间元数据直接驱动高亮。

readme.md

// 04 — GET STARTED

三步上手,不超过一杯咖啡的时间

terminal — 你的项目

$ npm install sugar-high

安装后零配置,默认即可高亮 JavaScript(含 JSX)。

01
安装npm install sugar-high,一颗糖入库。
02
引入import { highlight } from 'sugar-high'
03
高亮highlight(code) 默认 JavaScript;传入 { lang } 指定任意内置语言。
quick-start.js

准备好了?给你的编辑器来一勺糖。

GitHub 仓库 → npm 主页 API 参考 v2 迁移指南