@flourish/pocket-knife

中文文档
2.3.2发布于 2026/09/01LicenseRef-LICENSEES Module近 30 天下载 1.4万

有手动工具的面粉模块

中文使用文档
文档目录14 节
  1. 职能
  2. 创建ScreenshotSVG( 目标, id)
  3. 获取 Text Dimensions( 字符串, 字体)
  4. 获取文本方向 ()
  5. 获取 TextHeight( 字符串, 字体)
  6. 获取 TextWidth( 字符串, 字体)
  7. 获取 Binding (数据、 绑定、 索引)
  8. 六进制color( hex string, 不透明)
  9. hex 字符串, 不透明)
  10. 图像( 字符串)
  11. 是Pale( 颜色 值)
  12. isUrl( 字符串)
  13. rem ToPx( 缩写)
  14. 外包装 StringToLines( 标签、 标签 样式、 文本 max 行、 最大 宽度)

面粉口袋取出刀来

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

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 颜色对象 这里

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 共发布 30 个版本,首次发布于 2019/06/11;过去 12 个月发布了 2 个版本。

版本发布日期距今
2.3.2latest2026/09/012 个月前
2.3.12026/05/225 个月前
2.3.02025/03/281.6 年前
2.2.02025/02/201.7 年前
2.1.12025/01/101.8 年前
2.1.02024/12/121.9 年前

关于 @flourish/pocket-knife 的常见问题

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