postext 1.22.2 → 1.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/dist/__tests__/bundle.test.js +1 -1
  2. package/dist/__tests__/codeBlocks.test.d.ts +2 -0
  3. package/dist/__tests__/codeBlocks.test.d.ts.map +1 -0
  4. package/dist/__tests__/codeBlocks.test.js +550 -0
  5. package/dist/__tests__/codeBlocks.test.js.map +1 -0
  6. package/dist/__tests__/exports.test.js +19 -0
  7. package/dist/__tests__/exports.test.js.map +1 -1
  8. package/dist/__tests__/hardBreaks.test.d.ts +2 -0
  9. package/dist/__tests__/hardBreaks.test.d.ts.map +1 -0
  10. package/dist/__tests__/hardBreaks.test.js +226 -0
  11. package/dist/__tests__/hardBreaks.test.js.map +1 -0
  12. package/dist/__tests__/headingInlineMarks.test.js +1 -1
  13. package/dist/__tests__/headingLetterSpacing.test.js +1 -1
  14. package/dist/__tests__/headingLetterSpacing.test.js.map +1 -1
  15. package/dist/__tests__/lineNumbers.test.d.ts +2 -0
  16. package/dist/__tests__/lineNumbers.test.d.ts.map +1 -0
  17. package/dist/__tests__/lineNumbers.test.js +304 -0
  18. package/dist/__tests__/lineNumbers.test.js.map +1 -0
  19. package/dist/__tests__/mathSizeMigration.test.js +2 -2
  20. package/dist/__tests__/paragraphDropCap.test.d.ts +2 -0
  21. package/dist/__tests__/paragraphDropCap.test.d.ts.map +1 -0
  22. package/dist/__tests__/paragraphDropCap.test.js +442 -0
  23. package/dist/__tests__/paragraphDropCap.test.js.map +1 -0
  24. package/dist/__tests__/paragraphStyleIndent.test.js +26 -2
  25. package/dist/__tests__/paragraphStyleIndent.test.js.map +1 -1
  26. package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +1 -1
  27. package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +1 -1
  28. package/dist/__tests__/pipeline/colonListRoom.test.js +1 -1
  29. package/dist/__tests__/pipeline/compoundBreaks.test.js +1 -1
  30. package/dist/__tests__/pipeline/dashBreaks.test.js +1 -1
  31. package/dist/__tests__/pipeline/headingSplitOrphans.test.js +1 -1
  32. package/dist/__tests__/pipeline/inlineFigureSpace.test.js +1 -1
  33. package/dist/__tests__/pipeline/paragraphContainerTail.test.js +1 -1
  34. package/dist/__tests__/pipeline/paragraphStyleFaces.test.js +7 -1
  35. package/dist/__tests__/pipeline/paragraphStyleFaces.test.js.map +1 -1
  36. package/dist/__tests__/pipeline/raggedOptimal.test.js +1 -1
  37. package/dist/__tests__/tabStops.test.d.ts +2 -0
  38. package/dist/__tests__/tabStops.test.d.ts.map +1 -0
  39. package/dist/__tests__/tabStops.test.js +394 -0
  40. package/dist/__tests__/tabStops.test.js.map +1 -0
  41. package/dist/__tests__/verseLines.test.d.ts +2 -0
  42. package/dist/__tests__/verseLines.test.d.ts.map +1 -0
  43. package/dist/__tests__/verseLines.test.js +375 -0
  44. package/dist/__tests__/verseLines.test.js.map +1 -0
  45. package/dist/bundle/configVersion.d.ts +77 -7
  46. package/dist/bundle/configVersion.d.ts.map +1 -1
  47. package/dist/bundle/configVersion.js +239 -5
  48. package/dist/bundle/configVersion.js.map +1 -1
  49. package/dist/bundle/index.d.ts +1 -1
  50. package/dist/bundle/index.d.ts.map +1 -1
  51. package/dist/bundle/index.js +1 -1
  52. package/dist/bundle/index.js.map +1 -1
  53. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  54. package/dist/canvas-backend/blockRender.js +39 -5
  55. package/dist/canvas-backend/blockRender.js.map +1 -1
  56. package/dist/canvas-backend/index.d.ts.map +1 -1
  57. package/dist/canvas-backend/index.js +3 -0
  58. package/dist/canvas-backend/index.js.map +1 -1
  59. package/dist/cjkMarks.js +1 -1
  60. package/dist/cjkMarks.js.map +1 -1
  61. package/dist/code/highlight.d.ts +34 -0
  62. package/dist/code/highlight.d.ts.map +1 -0
  63. package/dist/code/highlight.js +406 -0
  64. package/dist/code/highlight.js.map +1 -0
  65. package/dist/configWarnings.d.ts.map +1 -1
  66. package/dist/configWarnings.js +192 -3
  67. package/dist/configWarnings.js.map +1 -1
  68. package/dist/defaults/bodyText.d.ts.map +1 -1
  69. package/dist/defaults/bodyText.js +25 -0
  70. package/dist/defaults/bodyText.js.map +1 -1
  71. package/dist/defaults/calloutStyles.d.ts.map +1 -1
  72. package/dist/defaults/calloutStyles.js +7 -0
  73. package/dist/defaults/calloutStyles.js.map +1 -1
  74. package/dist/defaults/codeStyle.d.ts +29 -0
  75. package/dist/defaults/codeStyle.d.ts.map +1 -0
  76. package/dist/defaults/codeStyle.js +284 -0
  77. package/dist/defaults/codeStyle.js.map +1 -0
  78. package/dist/defaults/dropCap.d.ts +49 -0
  79. package/dist/defaults/dropCap.d.ts.map +1 -0
  80. package/dist/defaults/dropCap.js +66 -0
  81. package/dist/defaults/dropCap.js.map +1 -0
  82. package/dist/defaults/headings.d.ts +1 -1
  83. package/dist/defaults/headings.d.ts.map +1 -1
  84. package/dist/defaults/headings.js +11 -0
  85. package/dist/defaults/headings.js.map +1 -1
  86. package/dist/defaults/index.d.ts +3 -0
  87. package/dist/defaults/index.d.ts.map +1 -1
  88. package/dist/defaults/index.js +19 -0
  89. package/dist/defaults/index.js.map +1 -1
  90. package/dist/defaults/lineNumbers.d.ts +19 -0
  91. package/dist/defaults/lineNumbers.d.ts.map +1 -0
  92. package/dist/defaults/lineNumbers.js +101 -0
  93. package/dist/defaults/lineNumbers.js.map +1 -0
  94. package/dist/defaults/paragraphStyles.d.ts.map +1 -1
  95. package/dist/defaults/paragraphStyles.js +20 -0
  96. package/dist/defaults/paragraphStyles.js.map +1 -1
  97. package/dist/defaults/tabStops.d.ts +29 -0
  98. package/dist/defaults/tabStops.d.ts.map +1 -0
  99. package/dist/defaults/tabStops.js +94 -0
  100. package/dist/defaults/tabStops.js.map +1 -0
  101. package/dist/defaults/verse.d.ts +10 -0
  102. package/dist/defaults/verse.d.ts.map +1 -0
  103. package/dist/defaults/verse.js +52 -0
  104. package/dist/defaults/verse.js.map +1 -0
  105. package/dist/fonts/usage.d.ts +7 -0
  106. package/dist/fonts/usage.d.ts.map +1 -1
  107. package/dist/fonts/usage.js +71 -0
  108. package/dist/fonts/usage.js.map +1 -1
  109. package/dist/html-backend.d.ts.map +1 -1
  110. package/dist/html-backend.js +85 -11
  111. package/dist/html-backend.js.map +1 -1
  112. package/dist/index.d.ts +8 -5
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +4 -2
  115. package/dist/index.js.map +1 -1
  116. package/dist/measure/bidiLines.js +2 -2
  117. package/dist/measure/bidiLines.js.map +1 -1
  118. package/dist/measure/cache.js +2 -2
  119. package/dist/measure/cache.js.map +1 -1
  120. package/dist/measure/cjkCompose.d.ts.map +1 -1
  121. package/dist/measure/cjkCompose.js +5 -5
  122. package/dist/measure/cjkCompose.js.map +1 -1
  123. package/dist/measure/hardBreaks.d.ts +46 -0
  124. package/dist/measure/hardBreaks.d.ts.map +1 -0
  125. package/dist/measure/hardBreaks.js +216 -0
  126. package/dist/measure/hardBreaks.js.map +1 -0
  127. package/dist/measure/index.d.ts +1 -0
  128. package/dist/measure/index.d.ts.map +1 -1
  129. package/dist/measure/index.js +1 -0
  130. package/dist/measure/index.js.map +1 -1
  131. package/dist/measure/leader.d.ts +20 -0
  132. package/dist/measure/leader.d.ts.map +1 -0
  133. package/dist/measure/leader.js +46 -0
  134. package/dist/measure/leader.js.map +1 -0
  135. package/dist/measure/links.js +1 -1
  136. package/dist/measure/links.js.map +1 -1
  137. package/dist/measure/plain.d.ts.map +1 -1
  138. package/dist/measure/plain.js +18 -25
  139. package/dist/measure/plain.js.map +1 -1
  140. package/dist/measure/rich.d.ts +19 -0
  141. package/dist/measure/rich.d.ts.map +1 -1
  142. package/dist/measure/rich.js +211 -38
  143. package/dist/measure/rich.js.map +1 -1
  144. package/dist/measure/tabs.d.ts +103 -0
  145. package/dist/measure/tabs.d.ts.map +1 -0
  146. package/dist/measure/tabs.js +123 -0
  147. package/dist/measure/tabs.js.map +1 -0
  148. package/dist/measure/types.d.ts +26 -2
  149. package/dist/measure/types.d.ts.map +1 -1
  150. package/dist/measure/types.js +23 -3
  151. package/dist/measure/types.js.map +1 -1
  152. package/dist/parse/blockParser.d.ts +13 -6
  153. package/dist/parse/blockParser.d.ts.map +1 -1
  154. package/dist/parse/blockParser.js +457 -87
  155. package/dist/parse/blockParser.js.map +1 -1
  156. package/dist/parse/codeFence.d.ts +18 -0
  157. package/dist/parse/codeFence.d.ts.map +1 -0
  158. package/dist/parse/codeFence.js +52 -0
  159. package/dist/parse/codeFence.js.map +1 -0
  160. package/dist/parse/index.d.ts +1 -1
  161. package/dist/parse/index.d.ts.map +1 -1
  162. package/dist/parse/index.js.map +1 -1
  163. package/dist/parse/indexMarks.d.ts +3 -1
  164. package/dist/parse/indexMarks.d.ts.map +1 -1
  165. package/dist/parse/indexMarks.js +22 -2
  166. package/dist/parse/indexMarks.js.map +1 -1
  167. package/dist/parse/inlineFormatting.d.ts +50 -0
  168. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  169. package/dist/parse/inlineFormatting.js +94 -0
  170. package/dist/parse/inlineFormatting.js.map +1 -1
  171. package/dist/parse/sourceMapping.d.ts.map +1 -1
  172. package/dist/parse/sourceMapping.js +65 -1
  173. package/dist/parse/sourceMapping.js.map +1 -1
  174. package/dist/parse/types.d.ts +144 -9
  175. package/dist/parse/types.d.ts.map +1 -1
  176. package/dist/pipeline/build.d.ts.map +1 -1
  177. package/dist/pipeline/build.js +143 -18
  178. package/dist/pipeline/build.js.map +1 -1
  179. package/dist/pipeline/buildBlockKind.d.ts.map +1 -1
  180. package/dist/pipeline/buildBlockKind.js +60 -1
  181. package/dist/pipeline/buildBlockKind.js.map +1 -1
  182. package/dist/pipeline/buildHelpers.d.ts +3 -0
  183. package/dist/pipeline/buildHelpers.d.ts.map +1 -1
  184. package/dist/pipeline/buildHelpers.js +7 -2
  185. package/dist/pipeline/buildHelpers.js.map +1 -1
  186. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  187. package/dist/pipeline/calloutLayout.js +33 -2
  188. package/dist/pipeline/calloutLayout.js.map +1 -1
  189. package/dist/pipeline/chips.d.ts.map +1 -1
  190. package/dist/pipeline/chips.js +4 -0
  191. package/dist/pipeline/chips.js.map +1 -1
  192. package/dist/pipeline/codeBlocks.d.ts +38 -0
  193. package/dist/pipeline/codeBlocks.d.ts.map +1 -0
  194. package/dist/pipeline/codeBlocks.js +146 -0
  195. package/dist/pipeline/codeBlocks.js.map +1 -0
  196. package/dist/pipeline/codeInline.d.ts +22 -0
  197. package/dist/pipeline/codeInline.d.ts.map +1 -0
  198. package/dist/pipeline/codeInline.js +93 -0
  199. package/dist/pipeline/codeInline.js.map +1 -0
  200. package/dist/pipeline/codeLines.d.ts +91 -0
  201. package/dist/pipeline/codeLines.d.ts.map +1 -0
  202. package/dist/pipeline/codeLines.js +399 -0
  203. package/dist/pipeline/codeLines.js.map +1 -0
  204. package/dist/pipeline/config.d.ts.map +1 -1
  205. package/dist/pipeline/config.js +8 -1
  206. package/dist/pipeline/config.js.map +1 -1
  207. package/dist/pipeline/contentWarnings.d.ts +9 -0
  208. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  209. package/dist/pipeline/contentWarnings.js +60 -2
  210. package/dist/pipeline/contentWarnings.js.map +1 -1
  211. package/dist/pipeline/continuation.d.ts.map +1 -1
  212. package/dist/pipeline/continuation.js +9 -2
  213. package/dist/pipeline/continuation.js.map +1 -1
  214. package/dist/pipeline/dropCap.d.ts +128 -0
  215. package/dist/pipeline/dropCap.d.ts.map +1 -0
  216. package/dist/pipeline/dropCap.js +412 -0
  217. package/dist/pipeline/dropCap.js.map +1 -0
  218. package/dist/pipeline/hardBreaks.d.ts +19 -0
  219. package/dist/pipeline/hardBreaks.d.ts.map +1 -0
  220. package/dist/pipeline/hardBreaks.js +36 -0
  221. package/dist/pipeline/hardBreaks.js.map +1 -0
  222. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  223. package/dist/pipeline/headerFooter.js +4 -1
  224. package/dist/pipeline/headerFooter.js.map +1 -1
  225. package/dist/pipeline/lineNumbers.d.ts +37 -0
  226. package/dist/pipeline/lineNumbers.d.ts.map +1 -0
  227. package/dist/pipeline/lineNumbers.js +441 -0
  228. package/dist/pipeline/lineNumbers.js.map +1 -0
  229. package/dist/pipeline/measureContentBlock.d.ts +31 -5
  230. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  231. package/dist/pipeline/measureContentBlock.js +274 -68
  232. package/dist/pipeline/measureContentBlock.js.map +1 -1
  233. package/dist/pipeline/partPalette.d.ts +1 -1
  234. package/dist/pipeline/partPalette.d.ts.map +1 -1
  235. package/dist/pipeline/partPalette.js +24 -2
  236. package/dist/pipeline/partPalette.js.map +1 -1
  237. package/dist/pipeline/styles.d.ts +18 -2
  238. package/dist/pipeline/styles.d.ts.map +1 -1
  239. package/dist/pipeline/styles.js +15 -3
  240. package/dist/pipeline/styles.js.map +1 -1
  241. package/dist/pipeline/tabs.d.ts +35 -0
  242. package/dist/pipeline/tabs.d.ts.map +1 -0
  243. package/dist/pipeline/tabs.js +99 -0
  244. package/dist/pipeline/tabs.js.map +1 -0
  245. package/dist/pipeline/toc.d.ts.map +1 -1
  246. package/dist/pipeline/toc.js +3 -38
  247. package/dist/pipeline/toc.js.map +1 -1
  248. package/dist/pipeline/verseLines.d.ts +78 -0
  249. package/dist/pipeline/verseLines.d.ts.map +1 -0
  250. package/dist/pipeline/verseLines.js +245 -0
  251. package/dist/pipeline/verseLines.js.map +1 -0
  252. package/dist/preflight.d.ts.map +1 -1
  253. package/dist/preflight.js +1 -0
  254. package/dist/preflight.js.map +1 -1
  255. package/dist/types.d.ts +560 -4
  256. package/dist/types.d.ts.map +1 -1
  257. package/dist/vdt.d.ts +240 -7
  258. package/dist/vdt.d.ts.map +1 -1
  259. package/dist/vdt.js +6 -0
  260. package/dist/vdt.js.map +1 -1
  261. package/dist/word/docxRead.d.ts.map +1 -1
  262. package/dist/word/docxRead.js +15 -0
  263. package/dist/word/docxRead.js.map +1 -1
  264. package/dist/word/inline.d.ts +6 -1
  265. package/dist/word/inline.d.ts.map +1 -1
  266. package/dist/word/inline.js +35 -1
  267. package/dist/word/inline.js.map +1 -1
  268. package/dist/word/model.d.ts +14 -0
  269. package/dist/word/model.d.ts.map +1 -1
  270. package/dist/word/model.js.map +1 -1
  271. package/dist/word/template.d.ts +12 -3
  272. package/dist/word/template.d.ts.map +1 -1
  273. package/dist/word/template.js +13 -3
  274. package/dist/word/template.js.map +1 -1
  275. package/dist/word/toDocx.d.ts.map +1 -1
  276. package/dist/word/toDocx.js +52 -8
  277. package/dist/word/toDocx.js.map +1 -1
  278. package/dist/word/toMarkdown.d.ts +5 -1
  279. package/dist/word/toMarkdown.d.ts.map +1 -1
  280. package/dist/word/toMarkdown.js +117 -6
  281. package/dist/word/toMarkdown.js.map +1 -1
  282. package/dist/word/word.test.js +124 -2
  283. package/dist/word/word.test.js.map +1 -1
  284. package/dist/worker/fonts.d.ts +2 -1
  285. package/dist/worker/fonts.d.ts.map +1 -1
  286. package/dist/worker/fonts.js +6 -2
  287. package/dist/worker/fonts.js.map +1 -1
  288. package/package.json +1 -1
@@ -13,6 +13,7 @@ import { runMeasurement } from './buildMeasurement';
13
13
  import { linkSegments } from '../measure/links';
14
14
  import { kashidaMeasureOptions } from '../measure/kashida';
15
15
  import { measureVerse } from './verse';
16
+ import { measureVerseLines, verseLinesSettings, versesLineByLine } from './verseLines';
16
17
  import { composesAsCjk } from '../measure/cjkCompose';
17
18
  import { measuringVertically } from '../measure/vertical';
18
19
  import { resolveRefSpans, resolveSwatchSpans, shiftResourceBlockX } from './resourceLayout';
@@ -26,6 +27,11 @@ import { dimensionToPx } from '../units';
26
27
  import { joiningScriptIn, mostlyJoiningScript } from '../measure/joining';
27
28
  import { getMeasureDirection, mirrorLineSpans, shiftLineX } from '../measure/bidiLines';
28
29
  import { startEndAsLeftRight } from '../defaults/shared';
30
+ import { prepareTabs } from './tabs';
31
+ import { fullPlainOffset, paragraphDropCap, prepareDropCap } from './dropCap';
32
+ import { lineIndentAt } from '../measure/types';
33
+ import { measureCodeLines } from './codeLines';
34
+ import { withInlineCode } from './codeInline';
29
35
  /** Index of the `containerStart` marker that the `containerEnd` at `endIdx`
30
36
  * closes, when there is one. */
31
37
  function containerStartOf(blocks, endIdx) {
@@ -44,68 +50,12 @@ function containerStartOf(blocks, endIdx) {
44
50
  * there is nothing to place inline: empty text, an unknown resource id, or a
45
51
  * resource that floats to a page band.
46
52
  */
47
- export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts) {
48
- const { resolved, bodyStyle, contentBlocks, cache, bodyOffset } = ctx;
49
- // A block of an expanded `:::toc`: title, number, leader, page label.
50
- if (rawBlock.toc)
51
- return measureTocBlock(rawBlock, columnWidth, ctx);
52
- // A block of an expanded `:::index`: an entry and its page numbers.
53
- if (rawBlock.index)
54
- return measureIndexBlock(rawBlock, columnWidth, ctx);
55
- const kind = resolveBlockKind(rawBlock, {
56
- ...ctx,
57
- blockIdx,
58
- paragraphStyleOverride: opts?.styleOverride,
59
- });
60
- const { style, vdtType, listBullet } = kind;
61
- let contentBlock = kind.contentBlock;
62
- const mathEnabled = resolved.math.enabled;
63
- // --- Resource blocks (image / svg / table + caption) -----------------
64
- // Laid out as one atomic group. Unknown ids produce nothing (the warnings
65
- // phase surfaces them); floated resources are anchored by their directive
66
- // but land in a page band, so they are never measured inline.
67
- if (vdtType === 'resource') {
68
- if (!kind.resource || ctx.floatedIds.has(kind.resource.id))
69
- return null;
70
- // A resource narrower than its column (`placement.width`) sits in it
71
- // per `placement.align`.
72
- const rawFrac = kind.resource.placement?.width ?? kind.resourceType?.defaultPlacement?.width;
73
- const frac = typeof rawFrac === 'number' && rawFrac > 0 && rawFrac < 1 ? rawFrac : 1;
74
- const align = startEndAsLeftRight(kind.resource.placement?.align ?? kind.resourceType?.defaultPlacement?.align ?? 'left');
75
- const embedWidth = columnWidth * frac;
76
- const { resourceBlock, measured } = runMeasurement({
77
- vdtType,
78
- rawBlock,
79
- contentBlock,
80
- style,
81
- measureMaxWidth: embedWidth,
82
- measureOptions: { textAlign: style.textAlign },
83
- mathEnabled,
84
- useRich: false,
85
- resolved,
86
- resources: ctx.resources,
87
- resourceTypes: ctx.resourceTypes,
88
- resourceNumbering: ctx.resourceNumbering,
89
- ...(ctx.captionCitations ? { captionCitations: ctx.captionCitations } : {}),
90
- resource: kind.resource,
91
- resourceType: kind.resourceType,
92
- resourceNumber: kind.resourceNumber,
93
- ...(opts?.figureMaxBodyWidth !== undefined ? { maxBodyWidth: opts.figureMaxBodyWidth } : {}),
94
- ...(opts?.figureHeightDelta ? { bodyHeightDelta: opts.figureHeightDelta } : {}),
95
- ...(opts?.uprightMaxLength !== undefined ? { upright: { maxLength: opts.uprightMaxLength } } : {}),
96
- });
97
- if (!resourceBlock)
98
- return null;
99
- if (frac < 1) {
100
- const dx = (columnWidth - embedWidth) * (align === 'center' ? 0.5 : align === 'right' ? 1 : 0);
101
- // An upright block (a vertical page) moves its frame along the flow.
102
- if (resourceBlock.rotation)
103
- resourceBlock.rotation.originX += dx;
104
- else
105
- shiftResourceBlockX(resourceBlock, dx);
106
- }
107
- return { kind, contentBlock, measured, prefixLen: 0, absoluteSourceMap: [], resourceBlock };
108
- }
53
+ /** The spans of a block as they are measured: inline maths rendered,
54
+ * `:ref` labels, footnote markers, swatches and chips resolved, small
55
+ * capitals and Chinese and Japanese annotations applied. */
56
+ function resolveInlineSpans(block, style, ctx) {
57
+ const { resolved, bodyStyle } = ctx;
58
+ let contentBlock = block;
109
59
  // Resolve inline math on spans (no-op when the block has no math).
110
60
  contentBlock = enrichMathSpans(contentBlock, style, resolved);
111
61
  // Resolve inline `:ref{…}` spans to their computed label so references
@@ -178,16 +128,190 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
178
128
  spans: resolveAnnotationSpans(contentBlock.spans, { cjk: resolved.cjk, dpi: resolved.page.dpi, fontString: style.fontString, fontSizePx: style.fontSizePx }),
179
129
  };
180
130
  }
131
+ return contentBlock;
132
+ }
133
+ /** The stanzas of the poem `raw` (a stanza of the line layout, #620) sets,
134
+ * in order, as content indices: the run of blocks around it that carry
135
+ * the same poem. */
136
+ function poemStanzaIndices(contentBlocks, raw, blockIdx) {
137
+ const stanza = raw.verse?.stanza;
138
+ const at = contentBlocks[blockIdx] === raw ? blockIdx : contentBlocks.indexOf(raw);
139
+ if (!stanza || at < 0)
140
+ return [];
141
+ const of = (i) => contentBlocks[i]?.verse?.stanza;
142
+ let from = at;
143
+ while (from > 0 && of(from - 1)?.poem === stanza.poem && of(from - 1).index === of(from).index - 1)
144
+ from--;
145
+ let to = at;
146
+ while (to + 1 < contentBlocks.length && of(to + 1)?.poem === stanza.poem && of(to + 1).index === of(to).index + 1)
147
+ to++;
148
+ return Array.from({ length: to - from + 1 }, (_, k) => from + k);
149
+ }
150
+ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts) {
151
+ const { resolved, contentBlocks, cache, bodyOffset } = ctx;
152
+ // A block of an expanded `:::toc`: title, number, leader, page label.
153
+ if (rawBlock.toc)
154
+ return measureTocBlock(rawBlock, columnWidth, ctx);
155
+ // A block of an expanded `:::index`: an entry and its page numbers.
156
+ if (rawBlock.index)
157
+ return measureIndexBlock(rawBlock, columnWidth, ctx);
158
+ const kind = resolveBlockKind(rawBlock, {
159
+ ...ctx,
160
+ blockIdx,
161
+ paragraphStyleOverride: opts?.styleOverride,
162
+ });
163
+ // A code listing (#624): line by line as written, in its box's measure.
164
+ if (rawBlock.type === 'code') {
165
+ const mirrored = getMeasureDirection() === 'rtl' && !measuringVertically();
166
+ const measured = measureCodeLines({
167
+ block: rawBlock,
168
+ fontSizePx: kind.style.fontSizePx,
169
+ lineHeightPx: kind.style.lineHeightPx,
170
+ color: kind.style.color,
171
+ measure: columnWidth,
172
+ resolved,
173
+ bodyOffset,
174
+ ...(mirrored ? { mirrored: true } : {}),
175
+ });
176
+ if (measured.lines.length === 0)
177
+ return null;
178
+ const code = {
179
+ ...(rawBlock.code?.lang ? { lang: rawBlock.code.lang } : {}),
180
+ ...(measured.numbers ? { numbers: measured.numbers } : {}),
181
+ ...(measured.fit ? { fit: measured.fit } : {}),
182
+ };
183
+ return {
184
+ kind,
185
+ contentBlock: rawBlock,
186
+ measured: { lines: measured.lines, totalHeight: measured.totalHeight },
187
+ prefixLen: 0,
188
+ absoluteSourceMap: rawBlock.sourceMap.map((o) => o + bodyOffset),
189
+ code,
190
+ ...(mirrored ? { direction: 'ltr' } : {}),
191
+ };
192
+ }
193
+ const { style, vdtType, listBullet } = kind;
194
+ let contentBlock = kind.contentBlock;
195
+ const mathEnabled = resolved.math.enabled;
196
+ // --- Resource blocks (image / svg / table + caption) -----------------
197
+ // Laid out as one atomic group. Unknown ids produce nothing (the warnings
198
+ // phase surfaces them); floated resources are anchored by their directive
199
+ // but land in a page band, so they are never measured inline.
200
+ if (vdtType === 'resource') {
201
+ if (!kind.resource || ctx.floatedIds.has(kind.resource.id))
202
+ return null;
203
+ // A resource narrower than its column (`placement.width`) sits in it
204
+ // per `placement.align`.
205
+ const rawFrac = kind.resource.placement?.width ?? kind.resourceType?.defaultPlacement?.width;
206
+ const frac = typeof rawFrac === 'number' && rawFrac > 0 && rawFrac < 1 ? rawFrac : 1;
207
+ const align = startEndAsLeftRight(kind.resource.placement?.align ?? kind.resourceType?.defaultPlacement?.align ?? 'left');
208
+ const embedWidth = columnWidth * frac;
209
+ const { resourceBlock, measured } = runMeasurement({
210
+ vdtType,
211
+ rawBlock,
212
+ contentBlock,
213
+ style,
214
+ measureMaxWidth: embedWidth,
215
+ measureOptions: { textAlign: style.textAlign },
216
+ mathEnabled,
217
+ useRich: false,
218
+ resolved,
219
+ resources: ctx.resources,
220
+ resourceTypes: ctx.resourceTypes,
221
+ resourceNumbering: ctx.resourceNumbering,
222
+ ...(ctx.captionCitations ? { captionCitations: ctx.captionCitations } : {}),
223
+ resource: kind.resource,
224
+ resourceType: kind.resourceType,
225
+ resourceNumber: kind.resourceNumber,
226
+ ...(opts?.figureMaxBodyWidth !== undefined ? { maxBodyWidth: opts.figureMaxBodyWidth } : {}),
227
+ ...(opts?.figureHeightDelta ? { bodyHeightDelta: opts.figureHeightDelta } : {}),
228
+ ...(opts?.uprightMaxLength !== undefined ? { upright: { maxLength: opts.uprightMaxLength } } : {}),
229
+ });
230
+ if (!resourceBlock)
231
+ return null;
232
+ if (frac < 1) {
233
+ const dx = (columnWidth - embedWidth) * (align === 'center' ? 0.5 : align === 'right' ? 1 : 0);
234
+ // An upright block (a vertical page) moves its frame along the flow.
235
+ if (resourceBlock.rotation)
236
+ resourceBlock.rotation.originX += dx;
237
+ else
238
+ shiftResourceBlockX(resourceBlock, dx);
239
+ }
240
+ return { kind, contentBlock, measured, prefixLen: 0, absoluteSourceMap: [], resourceBlock };
241
+ }
242
+ // Inline code in the code face (#624, `codeStyle.inline`), before the
243
+ // spans are resolved: they still match the parsed text then.
244
+ contentBlock = withInlineCode(contentBlock, rawBlock, resolved, style.fontSizePx);
245
+ contentBlock = resolveInlineSpans(contentBlock, style, ctx);
181
246
  // The orientation marks of vertical text change nothing in horizontal
182
247
  // text, which is measured as before them.
183
248
  const vertical = measuringVertically();
184
- const hasRichSpans = contentBlock.spans.some((s) => s.bold || s.italic || s.mathRender || s.ref || s.footnote || s.swatch || s.chip || s.script || s.smallCaps || s.fixedSpace || s.labelTab
249
+ // Tabs (#622): a tab character is a tab only under tab stops, and only
250
+ // the formatted-text breaker sets tabs.
251
+ const hasRichFonts = !!(style.boldFontString && style.italicFontString && style.boldItalicFontString);
252
+ const prepared = prepareTabs(contentBlock, style, resolved, { vertical, rich: hasRichFonts });
253
+ contentBlock = prepared.block;
254
+ // A drop cap (#623): the initial comes out of the text the measurers
255
+ // break, and the lines it stands beside are indented by it.
256
+ let dropCap;
257
+ const capSettings = vdtType === 'paragraph' && !opts?.dropCap?.skip ? paragraphDropCap(rawBlock, blockIdx, style, ctx) : undefined;
258
+ if (capSettings) {
259
+ if (!opts?.dropCap)
260
+ ctx.dropCapNotes?.delete(blockIdx);
261
+ const shrunk = opts?.dropCap?.lines;
262
+ const settings = shrunk !== undefined ? { ...capSettings, lines: shrunk, sink: Math.min(capSettings.sink, shrunk) } : capSettings;
263
+ if (vertical) {
264
+ ctx.dropCapNotes?.set(blockIdx, { reason: 'verticalText' });
265
+ }
266
+ else {
267
+ const prep = prepareDropCap(contentBlock, settings, style, resolved, opts?.dropCap?.leadInWords);
268
+ if (typeof prep === 'string')
269
+ ctx.dropCapNotes?.set(blockIdx, { reason: prep });
270
+ else {
271
+ dropCap = prep;
272
+ contentBlock = prep.block;
273
+ }
274
+ }
275
+ }
276
+ const hasRichSpans = contentBlock.spans.some((s) => s.bold || s.italic || s.mathRender || s.ref || s.footnote || s.swatch || s.chip || s.script || s.smallCaps || s.fixedSpace || s.labelTab || s.tab
185
277
  || s.emphasisMark || s.properName !== undefined || s.bookTitle || s.ruby || s.warichu || s.inserted || s.sideline || s.kunten
186
278
  // An inline `:rtl[…]` / `:ltr[…]` isolate is read on the spans.
187
279
  || s.direction !== undefined
188
280
  || (vertical && (s.combineUpright || s.orientation)));
189
281
  // List items reserve horizontal space for indent + bullet + gap.
190
- const { measureMaxWidth, lineXShift, measureFirstLineIndent, measureHangingIndent, } = computeMeasureViewport(columnWidth, style, listBullet);
282
+ const { measureMaxWidth, lineXShift, measureFirstLineIndent, measureHangingIndent, measureLineIndents, } = computeMeasureViewport(columnWidth, style, listBullet);
283
+ // A poem in the line layout (#620): each line of verse measured on its
284
+ // own by `pipeline/verseLines.ts`, against the poem's other stanzas
285
+ // (their longest line centres the poem); none of the paragraph's levers
286
+ // apply.
287
+ if (contentBlock.verse?.stanza && versesLineByLine(rawBlock, resolved)) {
288
+ const direction = contentBlock.direction ?? getMeasureDirection();
289
+ const indices = poemStanzaIndices(contentBlocks, rawBlock, blockIdx);
290
+ const poem = indices.length === 0 ? [contentBlock] : indices.map((j) => {
291
+ if (j === blockIdx)
292
+ return contentBlock;
293
+ const sibling = resolveBlockKind(contentBlocks[j], { ...ctx, blockIdx: j, paragraphStyleOverride: opts?.styleOverride });
294
+ return prepareTabs(resolveInlineSpans(sibling.contentBlock, sibling.style, ctx), sibling.style, resolved, { vertical, rich: hasRichFonts }).block;
295
+ });
296
+ const measured = measureVerseLines({
297
+ contentBlock,
298
+ poem,
299
+ style,
300
+ measureMaxWidth,
301
+ settings: verseLinesSettings(contentBlock.verse.attrs, style, resolved, vertical),
302
+ direction,
303
+ frameDirection: getMeasureDirection(),
304
+ ...(cache ? { cache } : {}),
305
+ });
306
+ if (measured.lines.length === 0)
307
+ return null;
308
+ if (lineXShift > 0)
309
+ for (const line of measured.lines)
310
+ shiftLineX(line, lineXShift);
311
+ const linked = { ...measured, lines: linkSegments(measured.lines, contentBlock.spans) };
312
+ const { prefixLen, absoluteSourceMap } = stampSourceRanges(linked, rawBlock, contentBlock, bodyOffset, ctx.source);
313
+ return { kind, contentBlock, measured: linked, prefixLen, absoluteSourceMap };
314
+ }
191
315
  // A poem (#378): its bayts are laid out by `pipeline/verse.ts`, each
192
316
  // hemistich measured on its own; none of the paragraph's levers apply.
193
317
  if (contentBlock.verse) {
@@ -269,7 +393,6 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
269
393
  || (vdtType === 'listItem' && resolved.bodyText.avoidRuntsInLists));
270
394
  // Tracking is measured on the rich path (per-token canvas widths); left
271
395
  // undefined when unused so the common-case cache keys stay unchanged.
272
- const hasRichFonts = !!(style.boldFontString && style.italicFontString && style.boldItalicFontString);
273
396
  // The style's own tracking (a heading level's `letterSpacing`, EF-83),
274
397
  // plus what column balancing asks of a loose paragraph.
275
398
  const letterSpacingPx = hasRichFonts
@@ -283,6 +406,15 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
283
406
  // The paragraph's base direction: its own (`{dir=…}`), else the
284
407
  // document's (`setMeasureDirection`). Passed only when the block sets
285
408
  // one, so the measurements of every other block keep their cache keys.
409
+ // The drop cap's lines (#623): its width and gap on each line it sinks,
410
+ // the paragraph's own indents after them (its first-line indent dropped).
411
+ const capIndents = dropCap
412
+ ? (() => {
413
+ const base = { firstLineIndentPx: effectiveFirstLineIndent, hangingIndent: measureHangingIndent, ...(measureLineIndents ? { lineIndentsPx: measureLineIndents } : {}) };
414
+ const after = dropCap.sink === 0 ? 0 : lineIndentAt(base, dropCap.sink);
415
+ return [...dropCap.indents, measureHangingIndent || measureLineIndents ? after : 0];
416
+ })()
417
+ : undefined;
286
418
  const measureOptions = {
287
419
  ...(contentBlock.direction !== undefined ? { direction: contentBlock.direction } : {}),
288
420
  textAlign: style.textAlign,
@@ -290,11 +422,17 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
290
422
  // A paragraph style's own `wordBreak`: passed only when set, so the
291
423
  // measurements of every other block keep their cache keys.
292
424
  ...(style.cjkWordBreak !== undefined ? { cjkWordBreak: style.cjkWordBreak } : {}),
293
- firstLineIndentPx: effectiveFirstLineIndent,
294
- hangingIndent: measureHangingIndent,
425
+ firstLineIndentPx: capIndents ? 0 : effectiveFirstLineIndent,
426
+ hangingIndent: capIndents ? false : measureHangingIndent,
427
+ // A first-line indent paired with a hanging one (#620), or the lines a
428
+ // drop cap shortens (#623): passed only then, so every other block
429
+ // keeps its cache key.
430
+ ...(capIndents ? { lineIndentsPx: capIndents } : measureLineIndents ? { lineIndentsPx: measureLineIndents } : {}),
295
431
  // A numbered bibliography entry (#290): its label in a column as wide
296
432
  // as the turnover lines' indent.
297
- ...(measureHangingIndent && contentBlock.spans.some((s) => s.labelTab) ? { labelColumnPx: measureFirstLineIndent } : {}),
433
+ ...(measureHangingIndent && !measureLineIndents && !capIndents && contentBlock.spans.some((s) => s.labelTab) ? { labelColumnPx: measureFirstLineIndent } : {}),
434
+ // Tab stops (#622): passed only to a block that holds a tab.
435
+ ...(prepared.tabs ? { tabs: prepared.tabs } : {}),
298
436
  optimal: resolved.bodyText.optimalLineBreaking,
299
437
  maxStretchRatio: resolved.bodyText.maxWordSpacing,
300
438
  minShrinkRatio: resolved.bodyText.minWordSpacing,
@@ -427,6 +565,25 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
427
565
  }
428
566
  if (measured.lines.length === 0)
429
567
  return null;
568
+ if (dropCap) {
569
+ // A lead-in of the whole first line: its words, counted on this
570
+ // setting, set again in small capitals (two settings at most).
571
+ if (dropCap.settings.leadIn?.words === 'line' && opts?.dropCap?.leadInWords === undefined) {
572
+ const first = measured.lines[0];
573
+ const words = first.text.trim().split(/\s+/).filter((w) => w.length > 0).length - (first.hyphenated && measured.lines.length > 1 ? 1 : 0);
574
+ return measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, { ...opts, dropCap: { ...opts?.dropCap, leadInWords: Math.max(1, words) } });
575
+ }
576
+ // A paragraph of fewer lines than the initial sinks.
577
+ const n = measured.lines.length;
578
+ if (n < dropCap.sink && opts?.dropCap?.lines === undefined) {
579
+ const handling = dropCap.settings.shortParagraph;
580
+ ctx.dropCapNotes?.set(blockIdx, { reason: 'shortParagraph', handling, ...(handling === 'shrink' ? { lines: n } : {}) });
581
+ if (handling === 'skip')
582
+ return measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, { ...opts, dropCap: { skip: true } });
583
+ if (handling === 'shrink')
584
+ return measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, { ...opts, dropCap: { ...opts?.dropCap, lines: n } });
585
+ }
586
+ }
430
587
  // A callout style's end mark (a proof's ∎, #530): flush right on the
431
588
  // last line.
432
589
  if (contentBlock.endMark !== undefined)
@@ -453,6 +610,55 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
453
610
  measured = { ...measured, lines: linkSegments(measured.lines, contentBlock.spans) };
454
611
  // Per-line source-range mapping using the block's plain→source map.
455
612
  // Accounts for heading numbering prefix which prepends chars with no source.
613
+ if (dropCap) {
614
+ // The lines were cut from the text without the initial: they are
615
+ // stamped against it, and their plain offsets then count past it, so
616
+ // they index the paragraph's own text and source map.
617
+ const { start, end } = dropCap.removed;
618
+ const strippedRaw = {
619
+ ...rawBlock,
620
+ text: rawBlock.text.slice(0, start) + rawBlock.text.slice(end),
621
+ sourceMap: [...rawBlock.sourceMap.slice(0, start), ...rawBlock.sourceMap.slice(end)],
622
+ sourceStart: start === 0 ? rawBlock.sourceMap[end] ?? rawBlock.sourceStart : rawBlock.sourceStart,
623
+ };
624
+ stampSourceRanges(measured, strippedRaw, contentBlock, bodyOffset, ctx.source);
625
+ for (const line of measured.lines) {
626
+ if (line.plainStart !== undefined)
627
+ line.plainStart = fullPlainOffset(dropCap, line.plainStart);
628
+ if (line.plainEnd !== undefined)
629
+ line.plainEnd = fullPlainOffset(dropCap, line.plainEnd);
630
+ }
631
+ const map = rawBlock.sourceMap;
632
+ const width = dropCap.width;
633
+ const capX = (opposite ? measureMaxWidth - width : 0) + xShift;
634
+ const placed = {
635
+ text: dropCap.text,
636
+ fontString: dropCap.fontString,
637
+ fontSizePx: dropCap.fontSizePx,
638
+ color: dropCap.color,
639
+ width,
640
+ x: capX,
641
+ lines: dropCap.lines,
642
+ sink: dropCap.sink,
643
+ rise: dropCap.rise,
644
+ minLines: dropCap.settings.shortParagraph === 'reserve' ? dropCap.sink : 0,
645
+ plainStart: dropCap.plainStart,
646
+ plainEnd: dropCap.plainEnd,
647
+ // From the block's start when it opens the paragraph (markup before
648
+ // the letter, `**L`, included), so the block's range is unchanged.
649
+ ...(map.length > dropCap.plainStart
650
+ ? { sourceStart: (dropCap.plainStart === 0 ? rawBlock.sourceStart : map[dropCap.plainStart]) + bodyOffset, sourceEnd: map[dropCap.plainEnd - 1] + 1 + bodyOffset }
651
+ : {}),
652
+ word: dropCap.word,
653
+ wordRest: dropCap.wordRest,
654
+ ...(dropCap.hang ? { hang: { ...dropCap.hang, x: opposite ? capX + width : capX - dropCap.hang.width } } : {}),
655
+ };
656
+ return {
657
+ kind, contentBlock, measured, prefixLen: 0, absoluteSourceMap: rawBlock.sourceMap.map((o) => o + bodyOffset), mathDisplayRender,
658
+ ...(trackingPx !== 0 ? { letterSpacingPx: trackingPx } : {}),
659
+ dropCap: placed,
660
+ };
661
+ }
456
662
  const { prefixLen, absoluteSourceMap } = stampSourceRanges(measured, rawBlock, contentBlock, bodyOffset, ctx.source);
457
663
  return {
458
664
  kind, contentBlock, measured, prefixLen, absoluteSourceMap, mathDisplayRender,
@@ -1 +1 @@
1
- {"version":3,"file":"measureContentBlock.js","sourceRoot":"","sources":["../../src/pipeline/measureContentBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"measureContentBlock.js","sourceRoot":"","sources":["../../src/pipeline/measureContentBlock.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { VDTDocument } from '../vdt';
3
3
  /** The colour of a block's text a setting sets: its running text, bold and
4
4
  * italic runs, references, list marker (a bullet or a number), or a
5
5
  * number's separator. */
6
- export type TextColorRole = 'color' | 'bold' | 'italic' | 'ref' | 'bullet' | 'separator';
6
+ export type TextColorRole = 'color' | 'bold' | 'italic' | 'ref' | 'bullet' | 'separator' | 'dropCap' | 'code';
7
7
  /** The colours of a contents row: the entry's text (bold and italic runs
8
8
  * included), its number, and its page number and subtitle. */
9
9
  export type TocColorRole = 'color' | 'number' | 'segment';
@@ -1 +1 @@
1
- {"version":3,"file":"partPalette.d.ts","sourceRoot":"","sources":["../../src/pipeline/partPalette.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAsB,iBAAiB,EAAc,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/G,OAAO,KAAK,EAA4C,WAAW,EAAwD,MAAM,QAAQ,CAAC;AAqB1I;;0BAE0B;AAC1B,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEzF;+DAC+D;AAC/D,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D;;oEAEoE;AACpE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,aAAa,GACrB,QAAQ,aAAa,EAAE,GAAG,OAAO,YAAY,EAAE,GAAG,SAAS,GAAG,WAAW,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,GACvG,OAAO,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,GAAG,QAAQ,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,CAAC;AAEjF;uEACuE;AACvE,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AA+InG;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3C,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,GACtC,eAAe,CAajB;AAmLD;;;;4DAI4D;AAC5D,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC3C,WAAW,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,EACrD,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,eAAe,GAC3E,IAAI,CAyBN"}
1
+ {"version":3,"file":"partPalette.d.ts","sourceRoot":"","sources":["../../src/pipeline/partPalette.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAsB,iBAAiB,EAAc,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/G,OAAO,KAAK,EAA4C,WAAW,EAAwD,MAAM,QAAQ,CAAC;AAsB1I;;0BAE0B;AAC1B,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9G;+DAC+D;AAC/D,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D;;oEAEoE;AACpE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,aAAa,GACrB,QAAQ,aAAa,EAAE,GAAG,OAAO,YAAY,EAAE,GAAG,SAAS,GAAG,WAAW,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,GACvG,OAAO,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,GAAG,QAAQ,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,CAAC;AAEjF;uEACuE;AACvE,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AA4JnG;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3C,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,GACtC,eAAe,CAajB;AAqLD;;;;4DAI4D;AAC5D,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC3C,WAAW,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,EACrD,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,eAAe,GAC3E,IAAI,CAyBN"}
@@ -19,6 +19,7 @@
19
19
  // (`flowColorValues`). A cell's own fill follows its own link.
20
20
  import { resolveAllConfig } from './config';
21
21
  import { mergeCaptionStyle } from '../defaults/captionStyle';
22
+ import { CODE_BOX_STYLE_ID } from './codeBlocks';
22
23
  /** The colours a block's text is painted in: the VDT field and the kind of
23
24
  * setting each one comes from. */
24
25
  const TEXT_FIELDS = [
@@ -89,6 +90,10 @@ function frameRoles(rest) {
89
90
  function kindsOfPath(path, cfg) {
90
91
  if (path.some((k) => DESIGN_KEYS.has(k)))
91
92
  return [];
93
+ // A body paragraph's drop cap (#623), set by a paragraph style or a
94
+ // heading level or style.
95
+ if (path.includes('dropCap'))
96
+ return ['text:dropCap'];
92
97
  const [top, second] = path;
93
98
  const index = Number(second);
94
99
  // The setting inside a style, indices left out (`note.color`).
@@ -140,6 +145,20 @@ function kindsOfPath(path, cfg) {
140
145
  }
141
146
  case 'captionStyle':
142
147
  return [`caption:${rest(1)}`];
148
+ case 'codeStyle': {
149
+ // Code listings (#624): the code and its tokens, the box's frame
150
+ // (a box of the build's own style), inline code (a chip).
151
+ const setting = rest(1);
152
+ if (second === 'inline')
153
+ return [`chip:${rest(2)}@${CODE_BOX_STYLE_ID}`];
154
+ if (setting === 'background' || setting === 'highlightBackground')
155
+ return [`box:fill@${CODE_BOX_STYLE_ID}`];
156
+ if (setting === 'border.color')
157
+ return [`box:border@${CODE_BOX_STYLE_ID}`];
158
+ if (second === 'titleStyle' || second === 'label')
159
+ return frameRoles(setting).map((role) => `box:${role}@${CODE_BOX_STYLE_ID}`);
160
+ return ['text:code'];
161
+ }
143
162
  default:
144
163
  return [];
145
164
  }
@@ -323,8 +342,11 @@ function recolorBlock(block, r) {
323
342
  rec[key] = r.by(groups)(rec[key]);
324
343
  }
325
344
  // A run with a colour of its own: a contents entry's page number or
326
- // subtitle.
327
- recolorLines(block.lines, r.by(toc ? [['toc:segment']] : heading ?? []), r);
345
+ // subtitle; a token of a code listing (#624).
346
+ recolorLines(block.lines, r.by(toc ? [['toc:segment']] : block.type === 'code' ? [['text:code'], ['text:color']] : heading ?? []), r);
347
+ // A drop cap (#623): its own setting's colour, or the paragraph's.
348
+ if (block.dropCap)
349
+ block.dropCap.color = r.by([['text:dropCap'], ['text:color']])(block.dropCap.color) ?? block.dropCap.color;
328
350
  // A callout frame's decoration (background, border, stripe, title) is a
329
351
  // design overlay resolved from the style's palette-linked colours.
330
352
  if (block.type === 'callout' && block.designOverlay)