# @borgar/textbox 中文文档

规范地址：https://npmcn.com/package/%40borgar/textbox/

版本：2\.0\.0
npm 元数据更新时间：2026-01-27T09:56:41.667Z
中文译文更新时间：2026-11-08T11:40:45.129Z
软件包许可：BSD-3-Clause

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

原始 npm 页面：https://www.npmjs.com/package/%40borgar/textbox
原文对照：https://npmcn.com/package/%40borgar/textbox/?lang=original
项目主页：https://github.com/borgar/textbox#readme
源码仓库：https://github.com/borgar/textbox

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

- 包体积（解压后）：421 kB，10 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2020-01-15T12:54:01.075Z
- 最新版本发布：2026-01-27T09:56:41.515Z
- 近 30 天下载量：5776（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 1 个）

## 中文简介

用于格式化多行丰富文本的工具 .

## 安装

```sh
npm install @borgar/textbox
```

也可以使用：`pnpm add @borgar/textbox`、`yarn add @borgar/textbox`、`bun add @borgar/textbox`

## README

# 文本框

Textbox是一个简单的库来布局多行文本,用于在SVG或Canvas上显示. 它可以相当体面地划出一行,使内容丰富的文字具有一定的界限。 它理解了简单的文本,以及HTML和LaTeX语法的一个小子集. 这个软件的最初目的是帮助标签图表.

看看这个 [文本框示例和演示](https://observablehq.com/collection/@borgar/textbox) 如果你好奇这个图书馆能做什么.

#### 特征 :

-   折行文字以适应维度.
-   文本可溢出为 `...` 如果不符合指定区域.
-   理解通用文本特性 : **粗体**, (中文(简体) ), _斜体_, (中文(简体) ), [链接](https://en.wikipedia.org/wiki/Hyperlink)等,还有...
-   知有相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相.
-   尝试对某些字符之前或之后的破行保持智能( 可以在 `-` 但在此之前没有).
-   文本准备时支持连字符 [软连字符](https://en.wikipedia.org/wiki/Soft_hyphen)。 。 。 .

## 安装

如果您不想自己下载并构建"文本箱",图书馆也作为国家防范机制的套件提供:

```
$ npm install @borgar/textbox
```

## API 参考

用于任何目的时,您需要先定义一个新的文本框实例 。 您可以通过配置对象作为参数 :

```js
const box = new Textbox({
  font: '12px/14px sans-serif',
  width: Infinity,
  height: Infinity,
  align: 'left',
  valign: 'top',
  x: 0,
  overflow: 'ellipsis',
  parser: 'text',
  createElement: Textbox.createElement
});
```

在此显示的是默认值, 但可以提供以上任何或所有参数 。 Textbox 实例将提供同名方法,以及拆行和渲染方法:

```js
const box = new Textbox()
  .font('16px/19px sans-serif')
  .align('center')
  .parser('html')
  .createElement(React.createElement);
```

完整的 API 文档可见于 [文件/API.md](https://npmcn.com/package/%40borgar/textbox/docs/API.md)。 。 。 .

## 限制:

1.  在 SVG 链接中,不会自动获得颜色或指针光标 。 还要加上你自己的风格.
    
    ```
    svg text a {
      fill: blue;
      text-decoration: underline;
      cursor: pointer;
    }
    ```
    
2.  SVG文本中的多字链接不一定像HTML中那样是一个单一的实体/元素. 如果链接中的文字是线断的,那么徘徊一段不会使下一行的片段引发徘徊样式.
    
3.  文本说明并不是在所有浏览器中都一致有效,因为它们有错误支持 `word-spacing` 属性。 Google Chrome似乎很好, Safari为纯文本工作,但格式化文本不正确。 Firefox是相当随机的。 在发布前在不同的浏览器中测试您的输出 .
    
4.  下标和上标在 Firefox 中被窃听,因为他们从未执行过 `baseline-shift` 属性。 这个 [错误报告](https://bugzilla.mozilla.org/show_bug.cgi?id=308338) 实值 **20岁** 现在,如此的aaaaaany今天.

## 常见问题

### @borgar/textbox 是什么？

用于格式化多行丰富文本的工具 \.

### 如何安装 @borgar/textbox？

在项目目录运行 npm install @borgar/textbox，或使用 pnpm add / yarn add / bun add。

### @borgar/textbox 支持 TypeScript 吗？

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

### @borgar/textbox 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @borgar/textbox 可以商用吗？

@borgar/textbox 使用 BSD-3-Clause 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。另外不得用原作者名义为衍生产品背书。以上为概括，不构成法律意见，请以许可原文为准。

### @borgar/textbox 的下载量有多少？

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

### @borgar/textbox 还在维护吗？

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

