# @ferriki/core 中文文档

规范地址：https://npmcn.com/package/%40ferriki/core/

版本：1\.3\.0
npm 元数据更新时间：2026-10-27T07:40:38.352Z
中文译文更新时间：2026-11-14T14:52:00.573Z
软件包许可：MIT OR Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40ferriki/core
原文对照：https://npmcn.com/package/%40ferriki/core/?lang=original
项目主页：https://ferriki.dev/
源码仓库：https://github.com/sebastian-software/ferriki

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：429 kB，29 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.13\.0
- 运行依赖：0 个
- 首次发布：2026-09-28T07:03:58.233Z
- 最新版本发布：2026-10-27T07:40:37.882Z
- 近 30 天下载量：3824（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：20（近 12 个月 20 个）

## 中文简介

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

## 安装

```sh
npm install @ferriki/core
```

也可以使用：`pnpm add @ferriki/core`、`yarn add @ferriki/core`、`bun add @ferriki/core`

## README

# 费里基

[![npm version](https://img.shields.io/npm/v/%40ferriki%2Fcore.svg?logo=npm&label=npm)](https://www.npmjs.com/package/@ferriki/core) [![License: MIT OR Apache-2.0](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue.svg)](https://github.com/sebastian-software/ferriki#license) [![Node >= 22.13.0](https://img.shields.io/badge/node-%3E%3D22.13.0-brightgreen.svg)](https://nodejs.org/)

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

## 编译一回. 开始优化.

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

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

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

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

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

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

## 要求和安装

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

```sh
npm install @ferriki/core
```

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

## 见突出显示的页面

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

```js
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). 见 [基准报告](https://ferriki.dev/evidence/benchmarks) 为宿主, 第一使用时间、原始结果和计量限度.

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

## 重用高亮显示器

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

```js
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`。 。 。 .

调制重复的工作和短寿命亮点,见 [前过滤向导](https://github.com/sebastian-software/ferriki/blob/main/docs/ferriki-api.md#choosing-the-regex-prefilter)。 。 。 .

## 语文和主题

Ferriki维持着自己的 标准TextMate语法目录, 包括嵌入式依赖,以及65个主题。 使用 `bundledLanguages` 财务报告和审定财务报表 `bundledLanguagesAlias` 以发现可用的身份和别名。 这个 [语法指南](https://github.com/sebastian-software/ferriki/blob/main/docs/grammars.md) 涵盖目录覆盖范围和外部进口。 对于本地语法,运行:

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

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

## 基于类的产出和主题地图

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

## 变形器

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

## 构建时间宏

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

## 锈

同样的本地引擎可以提供 [`ferriki` 条框](https://crates.io/crates/ferriki)。 。 。 . 见 [Rust API 向导](https://github.com/sebastian-software/ferriki/blob/main/docs/rust-api.md)。 。 。 .

## 兼容性

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

## 文档

-   [Ferriki API 参考文献](https://github.com/sebastian-software/ferriki/blob/main/docs/ferriki-api.md)
-   [Shiki移民指南](https://github.com/sebastian-software/ferriki/blob/main/docs/migrations/shiki-to-ferriki.md)
-   [兼容性政策](https://github.com/sebastian-software/ferriki/blob/main/docs/compatibility.md)
-   [解决问题](https://github.com/sebastian-software/ferriki/blob/main/docs/troubleshooting.md): 本地装入器和下线故障
-   [代码示例作者](https://github.com/sebastian-software/ferriki/blob/main/docs/code-example-authoring.md):焦点、亮点、diffs和复制行为
-   [费里基·德夫](https://ferriki.dev/):指南和基准

## 许可证

根据其中任何一项颁发的许可证 [麻省理工学院](https://github.com/sebastian-software/ferriki/blob/main/LICENSE-MIT) 或者说 [阿帕奇 - 2.0](https://github.com/sebastian-software/ferriki/blob/main/LICENSE-APACHE) 随便你.

**费里基** 属于 [费拉门塔](https://ferramenta.dev/) 家庭——鲁斯特工具家庭.

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

## 常见问题

### @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 和提交记录判断。

