@ferriki/core

中文文档
1.3.0发布于 2026/10/27MIT OR Apache-2.0TypeScriptES Module零依赖构建来源已验证近 30 天下载 3824

用 HTML 和 CSS 类输出突出显示本地语法

中文使用文档
文档目录13 节
  1. 编译一回. 开始优化.
  2. 要求和安装
  3. 见突出显示的页面
  4. 史基比较
  5. 重用高亮显示器
  6. 语文和主题
  7. 基于类的产出和主题地图
  8. 变形器
  9. 构建时间宏
  10. 锈
  11. 兼容性
  12. 文档
  13. 许可证

费里基

npm version License: MIT OR Apache-2.0 Node >= 22.13.0

漂亮的代码。 优化,交付. 您的船被抛光的代码示例 文档,CMS或站点建设. 费里基负责经营 本地 Rust 引擎上的 TextMate 语法目录并保持熟悉 Shiki-形状的 HTML 调用节点.js. 将示例编写为静态 HTML,或保留 一个突出显示器准备好 一条小溪块.

编译一回. 开始优化.

您的下一个进程可以接收已完成的 regex 工作 。 由费罗尼提供动力 2.7,Ferriki提供预编译的regex程序并优化了静态扫描仪 具有标准语法的自定义。 他们来自CDN,经过核实 并缓存在磁盘上,从第一次静态扫描中恢复 Eager 优化.

将缓存保存在建筑之间,以重复使用整个重建中相同的下载和 部署。 每个新进程都恢复已准备的自定义,而不是 从源头重建它们。 这是预过滤的默认值; 无法获取的软件包回归源头,动态模式依然为局部.

嵌入式语言在主机中重复使用他们自己准备的软件包. 马克下 准备下载从 25.9甲基溴改为1.9甲基溴 语法覆盖面相同; 阿斯特罗从 6.5 甲基溴改为0.52 甲基溴与主机的依赖性负载, 而可选的密码栅语言仍然是可选的。 见 软件包共享证据。 。 。 .

第一个负载还缓存了已打包. 后继进程跳过 解压和 SHA-256 本地文件不变,然后恢复缓存 数据通过小指数显示。 只有请求的程序和组记录 被读入自有缓冲器。 文件状态检查检测到变化和触发 再次核查.

在我们本地的七语法诊断中, C++ 活化剂启动从 约144至68米,与普通 Eager 类似. 启动包括恢复和第一个文档;网络、文件 I/O,以及 完整的建筑在计时器外。 见 测量和限制。 。 。 .

10月25日的完整节点比较测量了源出、自动、 Eager 和 单独编制。 先准备使用 时间比源代码少39% 在 macOS 上显示,与 Linux 上的时间多5%源代码 Off的启动速度仍然最快. 见 单独模式结果 所有政策和历史记忆的测量.

要求和安装

Ferriki只采用无害环境管理,需要22.13.0节点或更新。 npm 安装 您平台的可选本地软件包: Linux x64/arm64 有 glibc 或 musl, 苹果硅上的macOS,和Windows x64/arm64. 保持可选的依赖性 在生产安装中启用.

npm install @ferriki/core

语法和主题有效载荷从 assets.ferriki.dev 首个 被装入、被绑在放行上 由SHA -256核验 内 node_modules/.cache/ferriki。对于离线使用,请先填入缓存 构建或点 FERRIKI_ASSETS_BASE_URL 在一面镜子。 设定 FERRIKI_ASSETS_REMOTE=0 只使用缓存。 见 资产装载 用于缓存、代理和证书设置.

见突出显示的页面

保存此完整的无害环境管理文件为 highlight.mjs数字 :

import { writeFile } from "node:fs/promises";
import { codeToHtml } from "@ferriki/core";

const html = await codeToHtml("const answer = 42;", {
  lang: "javascript",
  theme: "github-dark",
});

await writeFile("highlighted.html", html);
console.log("Saved highlighted.html. Open it in a browser to preview your code.");

运行 node highlight.mjs,然后打开 highlighted.html。单发API 负载 第一次使用和再利用的语言和主题 后来的电话.

史基比较

10月25日的"铁匠捕捉"使用与"费罗尼"一起建造的寄存器 2.7.2 和准备的标准正版包装。 在14个档案中 重新使用过 高亮显示器与 Shiki/ WASM 生成相同的 HTML 并运行 3.7× 开快 Linux x86-64 (英语) 财务报告和审定财务报表 4.3× 更快的 macOS ARM64。用解码缓存 已经有人居住,首先使用 2.0× / 4.4× 速度快于Shiki/ WASM 打开 Linux/macOS. (原始内容存档于2018-09-29). 见 基准报告 为宿主, 第一使用时间、原始结果和计量限度.

记忆取决于所装入的语言. 在10月24日早些时候 在加载12种语言的600个文件之后 整个过程的RSS是 比Shiki/WASM高51-137%。由于仅是 TypeScript 的大量工作量,所以 降低33-55%。 。 。 . Ferriki 载入所请求的语言及其依赖性; 它们是独立的 工作量,而不是对整个语法目录的测量. 见 内存细节。 。 。 .

重用高亮显示器

对于CMS的工人或站点建设,加载你一次需要的语言和主题. 装入资产进行同步渲染. 每个工人创建一个亮点 当工人停业时,予以处置.

import { createHighlighter } from "@ferriki/core";

const highlighter = await createHighlighter({
  langs: ["javascript", "typescript"],
  themes: ["github-light", "github-dark"],
});

try {
  const html = highlighter.codeToHtml("const answer: number = 42;", {
    lang: "typescript",
    theme: "github-dark",
  });
  console.log(html);
} finally {
  highlighter.dispose();
}

getSingletonHighlighter() 每个进程共享一个亮点, 和一发 函数使用它。 自定义语言和主题使用Shiki的 TextMate 注册 形状在 langs 财务报告和审定财务报表 themes 在他们到达本地之前 发动机。 语言被语法负载所嵌入; 懒惰地嵌入负载 在明确之后 loadLanguage。 。 。 .

调制重复的工作和短寿命亮点,见 前过滤向导。 。 。 .

语文和主题

Ferriki维持着自己的 标准TextMate语法目录, 包括嵌入式依赖,以及65个主题。 使用 bundledLanguages 财务报告和审定财务报表 bundledLanguagesAlias 以发现可用的身份和别名。 这个 语法指南 涵盖目录覆盖范围和外部进口。 对于本地语法,运行:

npm exec -- ferriki grammar fetch ./grammar.tmLanguage.json \
  --name example --output ./example.ferriki.json

进口商还接受URL和被承诺支持的GitHub源. 审查a 重新分配前的语法许可.

基于类的产出和主题地图

使用 styleMode: "classes" 用于嵌入式 TextMate 范围类,或 codeToHtmlWithCss() 以匹配的 CSS 返回 HTML。 一个 订购 themes 映射可以在已准备好的标记上切换调色板而不突出显示 再来一次 这个 基于类的突出显示指南 显示自定义类和主题的完整 HTML 和样式表示例 切换.

变形器

在 JavaScript 中运行并接收打入的令牌的变形器和装饰回调 和HAST数据。 本地引擎处理装饰范围,符号边界, 和包装。 师基的 @shikijs/transformers 焦点标记助手, 突出, diffs, 和文字突出 与他们的工作.

构建时间宏

@ferriki/vite 转弯 code() 反应 <Code /> 在 Vite 中调用突出显示的输出 8号楼。 显示器在构建期间运行, 而默认的反射组件 使用一个小的无框架显示模块来显示已准备好的输出. 这个 虚拟指南 拥有一个完整的反应设置和先进的SSR细节.

锈

同样的本地引擎可以提供 ferriki 条框。 。 。 . 见 Rust API 向导。 。 。 .

兼容性

费里基跟随史克v4.4.3. 志树的检测结果没有改变 从被钉住的镜面上添加,每个被归类为支持、推迟或退出 范围; 将对照完整的 vscode- textmate v9.3.2 标记符检查 预言家 节点的公用输出为 HTML; 变压器调回可以检查令牌 和HAST数据。 拒绝终端 ANSI 输入 ShikiError 改为 正在执行。 见 兼容政策 财务报告和审定财务报表 Shiki移民指南。 。 。 .

文档

许可证

根据其中任何一项颁发的许可证 麻省理工学院 或者说 阿帕奇 - 2.0 随便你.

费里基 属于 费拉门塔 家庭——鲁斯特工具家庭.

兄弟姐妹们: 铁 - Oniguruma相容Regex引擎 铁印 ——标记为 HTML,默认已消毒.. 铁 - 文字和代码的拼写检查 铁猫 翻译目录引擎 费拉尔克 — Glob 匹配和平行文件系统行走.. 费鲁戈 ——未信任文件的 PDF 预览 平板电脑 – 类型脚本应用程序的国际化 - 达罗 你的团队的特工设定, 版本像代码.. 阿尔多 ——用React建成的文件站点.

版本与发布记录

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

版本发布日期距今
1.3.0latest2026/10/2718 天前
1.2.02026/10/2520 天前
1.1.22026/10/2025 天前
1.0.02026/10/111 个月前
0.14.02026/10/111 个月前
0.13.02026/10/101 个月前

其他发布通道:placeholder → 0.0.0-placeholder.0。

关于 @ferriki/core 的常见问题

@ferriki/core 是什么?

用 HTML 和 CSS 类输出突出显示本地语法

如何安装 @ferriki/core?

在项目目录运行 npm install @ferriki/core,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 ferriki,可以用 npx ferriki 直接运行。

@ferriki/core 支持 TypeScript 吗?

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

@ferriki/core 支持 ESM 还是 CommonJS?

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

@ferriki/core 需要什么版本的 Node.js?

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

@ferriki/core 可以商用吗?

@ferriki/core 使用 MIT OR Apache-2.0 许可。可在 MIT、Apache-2.0 中任选其一遵守。选择 MIT 时,宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@ferriki/core 的下载量有多少?

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

@ferriki/core 还在维护吗?

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