@cooklang/cooklang

中文文档
0.19.1发布于 2026/10/15MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 5888

官方 Cooklang 解析器 - 用于高性能配方解析的 Rust 动力 WASM 执行

中文使用文档
文档目录14 节
  1. 安装
  2. 快速启动
  3. 为什么?
  4. 从@cooklang/cooklang-ts迁移
  5. API 参考
  6. 解析器
  7. 食谱结构
  8. 帮助函数
  9. 提取值
  10. 版本同步
  11. 浏览器支持
  12. 捐款
  13. 许可证
  14. 链接

@ cooklang/ cooklang (英语)

公务 库克朗 javaScript 和 TypeScript 的解析器.

这是一个高性能的WASM执行 由Rust提供动力 厨师 par. 它提供快速,可靠的食谱解析,并全力支持Cooklang规格.

安装

npm install @cooklang/cooklang

快速启动

import { Parser } from '@cooklang/cooklang';

const parser = new Parser();
const recipe = parser.parse(`
>> servings: 4

Add @salt and @pepper to taste.
Cook for ~{10%minutes}.
`);

console.log(recipe.sections[0].content);

为什么?

这个软件包使用WebAssembly来获取几个关键好处:

  • 业绩: 本地速度解析,明显快于纯 JavaScript
  • 可靠性: 与官方 Rust 解析器共享执行意味着跨平台的一致行为
  • 可维持性: Cooklang 光谱的修改在 Rust 中执行一次, 在此自动可用

从@cooklang/cooklang-ts迁移

如果您是从上一个类型迁移到本地 @cooklang/cooklang-ts 软件包(v1.x),请参见 移徙指南。 。 。 .

关键差异 :

  • 不同的软件包名称 : @cooklang/cooklang-ts → @cooklang/cooklang
  • API 更改 : WASM 执行有不同的 API 表面
  • 版本编号: 此软件包跟踪 Rust 核心版本( 目前为 0. 17. x)

API 参考

解析器

import { Parser } from '@cooklang/cooklang';

const parser = new Parser();
const recipe = parser.parse(recipeText);

食谱结构

解析的食谱包括:

interface Recipe {
  sections: Section[];
  metadata: Record<string, string>;
  ingredients: Ingredient[];
  cookware: Cookware[];
  timers: Timer[];
}

帮助函数

import {
  ingredient_should_be_listed,
  ingredient_display_name,
  cookware_should_be_listed,
  cookware_display_name,
  quantity_display,
  grouped_quantity_display,
  grouped_quantity_is_empty
} from '@cooklang/cooklang';

提取值

处理数量的工具功能:

import { getNumericValue, extractNumericRange } from '@cooklang/cooklang';

const value = ingredient.quantity?.value;
const numeric = getNumericValue(value); // 2.5
const range = extractNumericRange(value); // { start: 2, end: 3 }

版本同步

此软件包版本跟踪 Rust cooklang-rs 版本。 例如:

我们使用 0.x 版本来匹配 Rust 核心库. 剖析器已做好生产准备并积极维护. 当Rust核心达到1.0时,我们会撞到1.0.

浏览器支持

这个软件包在 :

  • 节点.js 16+
  • 现代浏览器(Chrome,Firefox,Safari,边缘)
  • Bundlers (Webpack, Vite, Rollup等) (中文(简体) )

捐款

此软件包是 厨师 单相机 欢迎捐款!

许可证

麻省理工学院 - 看 自由主义

版本与发布记录

@cooklang/cooklang 共发布 4 个版本,首次发布于 2025/11/24;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.19.1latest2026/10/1526 天前
0.19.02026/09/301 个月前
0.18.72026/06/095 个月前
0.17.22025/11/2411 个月前

关于 @cooklang/cooklang 的常见问题

@cooklang/cooklang 是什么?

官方 Cooklang 解析器 - 用于高性能配方解析的 Rust 动力 WASM 执行

如何安装 @cooklang/cooklang?

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

@cooklang/cooklang 支持 TypeScript 吗?

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

@cooklang/cooklang 支持 ESM 还是 CommonJS?

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

@cooklang/cooklang 可以商用吗?

@cooklang/cooklang 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@cooklang/cooklang 的下载量有多少?

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

@cooklang/cooklang 还在维护吗?

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