选项卡
Beta
Word 文档使用制表符进行段落内的对齐、缩进和栏布局。Tiptap 和 HTML 没有原生的制表位概念,因此在导入时会将制表符转换为空格。
你需要什么
- 扩展: 不需要额外扩展。制表符内容会转换为纯文本。
- 配置: 无。
支持概览
| 导入 | 编辑器 | 导出 | |
|---|---|---|---|
| 制表符(段落中间) | 转换为四个空格 | 纯文本(空格) | 空格保持为空格 |
| 制表符(段落开头) | 在 JSON 中转换为四个空格;在编辑器中视觉上会折叠 | 默认不可见(见下文) | 空格保持为空格 |
| 制表位位置 | 不保留 | 不支持 | 不支持 |
导入
使用 editor extension 或 REST API 导入制表符。两者对制表符的处理方式相同。
当导入转换器在文本运行中遇到 <w:tab/> 元素时,会将其替换为四个空格字符。Word 的制表位位置(在段落或样式属性中定义的左对齐、居中、右对齐、小数点对齐和竖线制表位)不会被提取或保留。
该转换不依赖位置:段落开头的制表符和段落中间的制表符在 JSON 中都会产生四个空格字符。由于浏览器渲染空白字符的方式不同,视觉结果会有所差异(见下方编辑器渲染)。
编辑器渲染
制表符在导入时会转换为空格,因此编辑器接收到的是普通文本内容。Tiptap 中不存在制表位或制表符的概念。
段落开头的空格默认不可见
由制表符生成的四个空格会保留在 JSON 中并原样传递到编辑器,但浏览器在默认 white-space: normal 下会折叠空白字符序列。因此,段落开头的制表符会渲染得像是紧贴段落左边缘的一个空格,从视觉上看就像制表符被丢失了。这是标准的 HTML 空白规则,而不是导入时的裁剪。句子中间的制表符也会折叠为一个空格,不过由于两侧都有文本,通常仍然能正确阅读。
要保留视觉缩进,可以在编辑器的段落样式上设置 white-space: pre-wrap,或者在将内容加载到编辑器之前,在 onImport 回调中将前导空格转换为不间断空格( )。
导出
导出的 DOCX 中,空格仍然保持为空格。不会将空格再转换回制表符。原本在 Word 中使用制表符的内容,导出时会改为使用空格。