@chromaglyph/node

中文文档
0.6.0发布于 2026/10/21Apache-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 2039

凝胶器绑定色谱: 将语法突出显示成颜色字体, 进程

中文使用文档

@chromaglyph/节点

粘合剂 铬数字 : 将语法突出显示为 OpenType 颜色字体,在进程内.

import { buildFontSafe } from '@chromaglyph/node'

const result = buildFontSafe({
  font: fontBytes,                       // static TTF / OTF (CFF) / WOFF1 / .ttc Buffer
  fontIndex: 0,                         // member of a .ttc collection (default 0)
  themes: ['dark-plus', 'light-plus'],   // builtin names or .json/.tmTheme paths
  blocks: [                              // batch any number of code blocks into ONE font
    { id: 'block-0', lang: 'rust', text: 'fn main() {}' },
    { id: 'block-1', lang: 'js', text: 'const x = 1' },
  ],
  verify: true,                          // harfrust oracle (default on)
  ligatures: true,                       // keep the font's != -> ligatures, highlighted
  format: 'woff2',                       // output container: 'woff' (default) | 'woff2'
  cacheDir: '.cache',                    // optional on-disk cache
})
// → { woff, ttf, css, themes, report, contentHash, cached }
  • buildFont 丢入无效输入; buildFontSafe 返回时 null (建造管道的沉积退化).
  • 出处字体:静态 TrueType (TTF)和名键 CFF (OTF); WOFF1 集装箱和 .ttc 收款(fontIndex)是未包装的,可变 TrueType字体被钉入默认实例. CFF2(可变 OTF)和CID键CFF被明确错误地拒绝.
  • format: 'woff2' 在 WOFF2 (Brotli, 小于 15-30%) 中将输出包起来 而不是默认的 WOFF1 ; result.woff 然后携带WOFF2字节. 两者都概括出其中的口味(TrueType as-is,CFF null-transform). 格式是内容散列的一部分, 所以两个变体缓存 独立.
  • ligatures: true 将源字体的绳索再现实化 (单位:千美元)!=, (中文(简体) ), ->)作为构建时的规则,所以它们精确地渲染出字体 意图同时突出显示; 跨多颜色的网站 分解为纯正的每char文本( 颜色胜出) .
  • generic: 'rust' | 'js' | 'ts' | 'python' | 'go' | 'java' 构建字体 突出内容 该语言的任何文本(关键词、评论、字符串、数字) - blocks 财务报告和审定财务报表 semantic 在此模式中被忽略.
  • 人工活性通过内容散列来缓存(font +主题来源 +块文本)
    • 通用语言 + 选项: 进程内 LRU 外加可选的磁盘 缓存目录 .
  • 一个GSUB规则集服务于每个主题(CPAL调色板);切换是一个 支助科 @font-palette-values 翻转.
  • themes 使用内建名称或路径。 建筑是奇克的 主题 收集(64个主题,仅MIT/Apache-2.0); listThemes() 返回时 登记处 - name, (中文(简体) ), displayName, (中文(简体) ), type (单位:千美元)'dark' | 'light', (中文(简体) ), license, (中文(简体) ), source, (中文(简体) ), foreground, (中文(简体) ), background 和范围 swatches ——足够在不编译字体的情况下构建取题器. tmThemesVersion() 告诉哪些收藏版本已嵌入 .

从源构建 : pnpm --filter @chromaglyph/node build (须取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取出.

版本与发布记录

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

版本发布日期距今
0.6.0latest2026/10/2119 天前
0.5.02026/10/2119 天前
0.4.12026/10/2020 天前
0.4.02026/10/1921 天前
0.3.02026/10/1822 天前
0.2.22026/10/1723 天前

关于 @chromaglyph/node 的常见问题

@chromaglyph/node 是什么?

凝胶器绑定色谱: 将语法突出显示成颜色字体, 进程

如何安装 @chromaglyph/node?

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

@chromaglyph/node 支持 TypeScript 吗?

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

@chromaglyph/node 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@chromaglyph/node 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@chromaglyph/node 可以商用吗?

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

@chromaglyph/node 的下载量有多少?

根据 npm 官方下载统计,@chromaglyph/node 在 2026/10/10 – 2026/11/08 这 30 天内被下载 2,039 次,日均约 68 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@chromaglyph/node 还在维护吗?

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