@ docen/ 铺放
Docen的纯TypeScript布局引擎——零 DOM,零渲染库. 内环(
text/, (中文(简体) ),block/测量和分解文本并列出段落/表;外环以此为基础(flow/—— docx 页面打入;fixed/用于 pptx 形状文本和grid/xlsx 和他们的编辑一起来.
使用时间 @docen/docx'project (Document options ~布局Doc) 并被 @docen/core画布舞台.
设计
- 输入为 a
LayoutDoc投影,全px,样式-凸起已解. 适配器(从Tiptap/ProseMiror的docx,从它的形状树起的pptx,从它的网格起的xlsx)转换其文档单位并精确地解决了他们的风格链;引擎从未看到过一个styleId或Tiptap节点。 只有布局语义保持了他们的OOXML形状(行规则,网格投出,快活旗)——这些是这个引擎存在的执行规则. - FontMetrics是测量接合. 发动机工作来自一个单位提供的每个编码单位的预付款
FontMetrics提供者(browserFontMetrics通过今天的画布 2d 的测量; 无头和服务器提供者进入同一接口的插槽 。 小姐们倒回了警示——"言行". - 一个装入文本的打包机, 硬折叠和内嵌图片 DOM路线从未有过的统一断路器。 UAX #14行断开(linebreak.js)与CJK kinsoku,后行-空格悬空,一行缩入,浮区宽度降低,并每行OOXML行高音(准确 / at East / 多相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相.
- 决定是约. 相同的输入 – 相同的输出每道通路 – 被接通者所依赖的属性.
已知的界限:没有GSUB塑造(ligature subservation-进步运行略宽,为突破而保守);行平面单元格内容完全计入起行.
使用量
import { TextMeasurer, browserFontMetrics, layoutBlock } from "@docen/layout";
const measurer = new TextMeasurer(browserFontMetrics);
const laid = layoutBlock(paragraph, 612, { linePitchPx: 25 }, measurer);
// laid.lines — y, height, positioned items, split points