# @flourish/pocket-knife 中文文档

规范地址：https://npmcn.com/package/%40flourish/pocket-knife/

版本：2\.3\.2
npm 元数据更新时间：2026-09-01T12:49:17.148Z
中文译文更新时间：2026-11-15T00:01:47.590Z
软件包许可：LicenseRef-LICENSE

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

原始 npm 页面：https://www.npmjs.com/package/%40flourish/pocket-knife
原文对照：https://npmcn.com/package/%40flourish/pocket-knife/?lang=original

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

- 包体积（解压后）：82.4 kB，12 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：2 个
- 首次发布：2019-06-11T10:27:52.803Z
- 最新版本发布：2026-09-01T12:49:16.948Z
- 近 30 天下载量：13553（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：30（近 12 个月 2 个）

## 中文简介

有手动工具的面粉模块

## 安装

```sh
npm install @flourish/pocket-knife
```

也可以使用：`pnpm add @flourish/pocket-knife`、`yarn add @flourish/pocket-knife`、`bun add @flourish/pocket-knife`

## README

# 面粉口袋取出刀来

一个模块,带有手动工具,可以在面粉模板中使用.

`import { isUrl, isImage } from "@flourish/pocket-knife"`

## 职能

### 创建ScreenshotSVG( 目标, id)

创建一个可以用于SVG导出的临时SVG元素. 需要一个 `target` a. 用于确定主 svg 容器的边界和位置的元素 `id` 用于设置 SVG 元素中唯一的 ID.

此函数返回一个 `.addTextElements(els)`, (中文(简体) ), `.addCircleElements(els)`, (中文(简体) ), `.addGradient(el, colorFunction, domain)`,以及 `.remove()` 方法. `.remove()` 将删除 SVG . `addTextElements` 需要节点列表( e)`els`)并将转换为 SVG `<text>` 元素,包含元素的字体样式和行高。 同样, `addCircleElements` 取出元素( 如带有背景颜色的 divs) 并将其转换为 SVG `<circle>` 要素. `addGradient` 取一个元素、一个颜色函数和一个域;域应该是带有一个 `min` 财务报告和审定财务报表 `max` 表示渐变所代表的起始和结尾值,颜色函数应在域内取出一个数字并返回代表该数字的颜色.

此函数可用于模板的 `screenshot()` 函数以临时创建将包含在 SVG 导出中的 SVG .

### 获取 Text Dimensions( 字符串, 字体)

获得文字的维度. 第一个参数包含要计算宽度的文字。 第二个参数是可选的,允许您在标准 CCs 字体属性中设置文本的字体设置, eg . `bold 16px arial`如果 `font` 是空的, 它使用 `10px sans-serif`返回带有属性的对象 `width` 财务报告和审定财务报表 `height`。 。 。 .

### 获取文本方向 ()

在文档.body上计算文本方向。 返回一个"ltr"或"trl".

### 获取 TextHeight( 字符串, 字体)

获得文字高度. 使用与 `getTextDimensions`。返回一个数字.

### 获取 TextWidth( 字符串, 字体)

获得文本的宽度 。 使用与 `getTextDimensions`。返回一个数字.

### 获取 Binding (数据、 绑定、 索引)

获取与数据绑定相关的列中的所有唯一值。 如果是一个多列绑定, 您可以通过索引, 用于确定它应该查看的哪个列 。 如果您没有通过索引, 它是一个多列绑定, 它将默认为零 .

### 六进制color( hex string, 不透明)

按描述将十六进制转换为 d3 颜色对象 [这里](https://github.com/d3/d3-color#color)

```
hexToColor("#00ff00", 0.5); // {r: 0, g: 255, b: 0, a: 0.5}
```

### hex 字符串, 不透明)

将十六进制转换为 rgba 字符串

```
hexToRgba("#00ff00", 0.5); // rgba(0, 255, 0, 0.5)
```

### 图像( 字符串)

检查字符串是否看起来像有效的图像 URL 。 回返 `true` 或者说 `false`

### 是Pale( 颜色 值)

颜色是否苍白的返回

### isUrl( 字符串)

检查字符串是否看起来像有效的 URL 。 回返 `true` 或者说 `false`

### rem ToPx( 缩写)

将 rems 指定的值转换为 px

### 外包装 StringToLines( 标签、 标签 样式、 文本 max 行、 最大 宽度)

取出一个字符串,然后返回一个字符串阵列,每个字符串都是一行的文本.

-   标签是一个字符串, 您想要被分割成行
-   标签 样式是可以包含字体重量,字体大小和字体家族在结构中的字符串:"bold 48px serif". 用于测量文本.
-   text max 行是表示您想要的最大行数( 如果您没有最大行数, 可以给出为无效) 的数字
-   max width是用px表示标签最大宽度的数字.

## 常见问题

### @flourish/pocket-knife 是什么？

有手动工具的面粉模块

### 如何安装 @flourish/pocket-knife？

在项目目录运行 npm install @flourish/pocket-knife，或使用 pnpm add / yarn add / bun add。

### @flourish/pocket-knife 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/flourish\_\_pocket-knife 是否存在。

### @flourish/pocket-knife 支持 ESM 还是 CommonJS？

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

### @flourish/pocket-knife 可以商用吗？

@flourish/pocket-knife 使用 LicenseRef-LICENSE 许可。声明的许可为 LicenseRef-LICENSE，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @flourish/pocket-knife 的下载量有多少？

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

### @flourish/pocket-knife 还在维护吗？

最新版本 2\.3\.2 发布于 2026/09/01（2 个月前）；至今共发布 30 个版本，其中过去 12 个月发布了 2 个；首次发布于 2019/06/11。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

