postext 1.11.2 → 1.12.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 (151) hide show
  1. package/dist/__tests__/exports.test.js +24 -0
  2. package/dist/__tests__/exports.test.js.map +1 -1
  3. package/dist/__tests__/parse/anchors.test.d.ts +2 -0
  4. package/dist/__tests__/parse/anchors.test.d.ts.map +1 -0
  5. package/dist/__tests__/parse/anchors.test.js +71 -0
  6. package/dist/__tests__/parse/anchors.test.js.map +1 -0
  7. package/dist/__tests__/parse/citations.test.d.ts +2 -0
  8. package/dist/__tests__/parse/citations.test.d.ts.map +1 -0
  9. package/dist/__tests__/parse/citations.test.js +98 -0
  10. package/dist/__tests__/parse/citations.test.js.map +1 -0
  11. package/dist/__tests__/parse/containers.test.js +1 -1
  12. package/dist/__tests__/parse/containers.test.js.map +1 -1
  13. package/dist/__tests__/pipeline/crossRefs.test.d.ts +2 -0
  14. package/dist/__tests__/pipeline/crossRefs.test.d.ts.map +1 -0
  15. package/dist/__tests__/pipeline/crossRefs.test.js +170 -0
  16. package/dist/__tests__/pipeline/crossRefs.test.js.map +1 -0
  17. package/dist/bundle/book.d.ts.map +1 -1
  18. package/dist/bundle/book.js +22 -4
  19. package/dist/bundle/book.js.map +1 -1
  20. package/dist/citations/bibtex.d.ts +19 -0
  21. package/dist/citations/bibtex.d.ts.map +1 -0
  22. package/dist/citations/bibtex.js +375 -0
  23. package/dist/citations/bibtex.js.map +1 -0
  24. package/dist/citations/context.d.ts +64 -0
  25. package/dist/citations/context.d.ts.map +1 -0
  26. package/dist/citations/context.js +115 -0
  27. package/dist/citations/context.js.map +1 -0
  28. package/dist/citations/data.d.ts +35 -0
  29. package/dist/citations/data.d.ts.map +1 -0
  30. package/dist/citations/data.js +158 -0
  31. package/dist/citations/data.js.map +1 -0
  32. package/dist/citations/html.d.ts +16 -0
  33. package/dist/citations/html.d.ts.map +1 -0
  34. package/dist/citations/html.js +99 -0
  35. package/dist/citations/html.js.map +1 -0
  36. package/dist/citations/registry.d.ts +30 -0
  37. package/dist/citations/registry.d.ts.map +1 -0
  38. package/dist/citations/registry.js +51 -0
  39. package/dist/citations/registry.js.map +1 -0
  40. package/dist/citations/types.d.ts +132 -0
  41. package/dist/citations/types.d.ts.map +1 -0
  42. package/dist/citations/types.js +9 -0
  43. package/dist/citations/types.js.map +1 -0
  44. package/dist/defaults/citations.d.ts +5 -0
  45. package/dist/defaults/citations.d.ts.map +1 -0
  46. package/dist/defaults/citations.js +99 -0
  47. package/dist/defaults/citations.js.map +1 -0
  48. package/dist/defaults/crossRefs.d.ts +7 -0
  49. package/dist/defaults/crossRefs.d.ts.map +1 -0
  50. package/dist/defaults/crossRefs.js +35 -0
  51. package/dist/defaults/crossRefs.js.map +1 -0
  52. package/dist/defaults/index.d.ts +2 -0
  53. package/dist/defaults/index.d.ts.map +1 -1
  54. package/dist/defaults/index.js +18 -0
  55. package/dist/defaults/index.js.map +1 -1
  56. package/dist/html-backend.d.ts.map +1 -1
  57. package/dist/html-backend.js +79 -19
  58. package/dist/html-backend.js.map +1 -1
  59. package/dist/index.d.ts +10 -4
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +9 -2
  62. package/dist/index.js.map +1 -1
  63. package/dist/knuthPlass/richAdapter.d.ts +2 -0
  64. package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
  65. package/dist/knuthPlass/richAdapter.js +1 -1
  66. package/dist/knuthPlass/richAdapter.js.map +1 -1
  67. package/dist/measure/cache.js +1 -1
  68. package/dist/measure/cache.js.map +1 -1
  69. package/dist/measure/rich.d.ts +4 -0
  70. package/dist/measure/rich.d.ts.map +1 -1
  71. package/dist/measure/rich.js +2 -2
  72. package/dist/measure/rich.js.map +1 -1
  73. package/dist/parse/attrs.d.ts.map +1 -1
  74. package/dist/parse/attrs.js +31 -4
  75. package/dist/parse/attrs.js.map +1 -1
  76. package/dist/parse/blockParser.d.ts.map +1 -1
  77. package/dist/parse/blockParser.js +68 -8
  78. package/dist/parse/blockParser.js.map +1 -1
  79. package/dist/parse/citations.d.ts +41 -0
  80. package/dist/parse/citations.d.ts.map +1 -0
  81. package/dist/parse/citations.js +206 -0
  82. package/dist/parse/citations.js.map +1 -0
  83. package/dist/parse/index.d.ts +1 -1
  84. package/dist/parse/index.d.ts.map +1 -1
  85. package/dist/parse/index.js.map +1 -1
  86. package/dist/parse/indexMarks.d.ts +2 -7
  87. package/dist/parse/indexMarks.d.ts.map +1 -1
  88. package/dist/parse/indexMarks.js +65 -20
  89. package/dist/parse/indexMarks.js.map +1 -1
  90. package/dist/parse/inlineFormatting.d.ts +2 -2
  91. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  92. package/dist/parse/inlineFormatting.js +41 -14
  93. package/dist/parse/inlineFormatting.js.map +1 -1
  94. package/dist/parse/types.d.ts +50 -4
  95. package/dist/parse/types.d.ts.map +1 -1
  96. package/dist/pipeline/anchors.d.ts +28 -0
  97. package/dist/pipeline/anchors.d.ts.map +1 -0
  98. package/dist/pipeline/anchors.js +123 -0
  99. package/dist/pipeline/anchors.js.map +1 -0
  100. package/dist/pipeline/build.d.ts.map +1 -1
  101. package/dist/pipeline/build.js +51 -11
  102. package/dist/pipeline/build.js.map +1 -1
  103. package/dist/pipeline/citations.d.ts +80 -0
  104. package/dist/pipeline/citations.d.ts.map +1 -0
  105. package/dist/pipeline/citations.js +418 -0
  106. package/dist/pipeline/citations.js.map +1 -0
  107. package/dist/pipeline/config.d.ts.map +1 -1
  108. package/dist/pipeline/config.js +3 -1
  109. package/dist/pipeline/config.js.map +1 -1
  110. package/dist/pipeline/contentWarnings.d.ts +7 -1
  111. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  112. package/dist/pipeline/contentWarnings.js +57 -3
  113. package/dist/pipeline/contentWarnings.js.map +1 -1
  114. package/dist/pipeline/continuation.d.ts +2 -1
  115. package/dist/pipeline/continuation.d.ts.map +1 -1
  116. package/dist/pipeline/continuation.js +3 -0
  117. package/dist/pipeline/continuation.js.map +1 -1
  118. package/dist/pipeline/crossRefs.d.ts +79 -0
  119. package/dist/pipeline/crossRefs.d.ts.map +1 -0
  120. package/dist/pipeline/crossRefs.js +207 -0
  121. package/dist/pipeline/crossRefs.js.map +1 -0
  122. package/dist/pipeline/floatPlacement.d.ts.map +1 -1
  123. package/dist/pipeline/floatPlacement.js +2 -1
  124. package/dist/pipeline/floatPlacement.js.map +1 -1
  125. package/dist/pipeline/index.d.ts +2 -1
  126. package/dist/pipeline/index.d.ts.map +1 -1
  127. package/dist/pipeline/index.js +2 -1
  128. package/dist/pipeline/index.js.map +1 -1
  129. package/dist/pipeline/measureContentBlock.d.ts +4 -0
  130. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  131. package/dist/pipeline/measureContentBlock.js +1 -0
  132. package/dist/pipeline/measureContentBlock.js.map +1 -1
  133. package/dist/pipeline/outline.d.ts +3 -0
  134. package/dist/pipeline/outline.d.ts.map +1 -1
  135. package/dist/pipeline/outline.js +38 -1
  136. package/dist/pipeline/outline.js.map +1 -1
  137. package/dist/pipeline/resourceLayout.d.ts +13 -1
  138. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  139. package/dist/pipeline/resourceLayout.js +22 -2
  140. package/dist/pipeline/resourceLayout.js.map +1 -1
  141. package/dist/pipeline/resourceNumbering.d.ts.map +1 -1
  142. package/dist/pipeline/resourceNumbering.js +2 -1
  143. package/dist/pipeline/resourceNumbering.js.map +1 -1
  144. package/dist/types.d.ts +133 -2
  145. package/dist/types.d.ts.map +1 -1
  146. package/dist/vdt.d.ts +59 -1
  147. package/dist/vdt.d.ts.map +1 -1
  148. package/dist/vdt.js.map +1 -1
  149. package/dist/worker/layout.worker.js +6 -0
  150. package/dist/worker/layout.worker.js.map +1 -1
  151. package/package.json +1 -1
@@ -0,0 +1,99 @@
1
+ import { dimensionsEqual } from './shared';
2
+ export const DEFAULT_CITATIONS_CONFIG = {
3
+ style: 'apa',
4
+ link: true,
5
+ marker: 'style',
6
+ collapseRanges: true,
7
+ notes: 'footnote',
8
+ bibliography: {
9
+ scope: 'book',
10
+ auto: true,
11
+ fontSize: { value: 0.9, unit: 'em' },
12
+ hangingIndent: { value: 2, unit: 'em' },
13
+ entrySpacing: { value: 0.3, unit: 'em' },
14
+ doi: 'link',
15
+ includeUncited: false,
16
+ groupByLanguage: false,
17
+ },
18
+ };
19
+ const MARKERS = new Set(['style', 'brackets', 'parentheses', 'superscript', 'corner']);
20
+ const DOI = new Set(['link', 'text', 'hide']);
21
+ export function resolveCitationsConfig(partial) {
22
+ const d = DEFAULT_CITATIONS_CONFIG;
23
+ const b = partial?.bibliography;
24
+ const db = d.bibliography;
25
+ const style = typeof partial?.style === 'string' && partial.style.trim().length > 0 ? partial.style.trim() : d.style;
26
+ return {
27
+ style,
28
+ ...(typeof partial?.customStyle === 'string' && partial.customStyle.trim().length > 0 ? { customStyle: partial.customStyle } : {}),
29
+ ...(typeof partial?.locale === 'string' && partial.locale.trim().length > 0 ? { locale: partial.locale.trim() } : {}),
30
+ link: partial?.link ?? d.link,
31
+ marker: typeof partial?.marker === 'string' && MARKERS.has(partial.marker) ? partial.marker : d.marker,
32
+ collapseRanges: partial?.collapseRanges ?? d.collapseRanges,
33
+ notes: partial?.notes === 'warichu' ? 'warichu' : 'footnote',
34
+ bibliography: {
35
+ ...(typeof b?.title === 'string' ? { title: b.title } : {}),
36
+ scope: b?.scope === 'chapter' ? 'chapter' : 'book',
37
+ auto: b?.auto ?? db.auto,
38
+ fontSize: b?.fontSize ?? db.fontSize,
39
+ ...(b?.lineHeight ? { lineHeight: b.lineHeight } : {}),
40
+ hangingIndent: b?.hangingIndent ?? db.hangingIndent,
41
+ entrySpacing: b?.entrySpacing ?? db.entrySpacing,
42
+ ...(b?.labelWidth ? { labelWidth: b.labelWidth } : {}),
43
+ doi: typeof b?.doi === 'string' && DOI.has(b.doi) ? b.doi : db.doi,
44
+ includeUncited: b?.includeUncited ?? db.includeUncited,
45
+ groupByLanguage: b?.groupByLanguage ?? db.groupByLanguage,
46
+ },
47
+ };
48
+ }
49
+ export function stripCitationsDefaults(c) {
50
+ if (!c)
51
+ return undefined;
52
+ const d = DEFAULT_CITATIONS_CONFIG;
53
+ const out = {};
54
+ if (c.style !== undefined && c.style !== d.style)
55
+ out.style = c.style;
56
+ if (c.customStyle)
57
+ out.customStyle = c.customStyle;
58
+ if (c.locale)
59
+ out.locale = c.locale;
60
+ if (c.link !== undefined && c.link !== d.link)
61
+ out.link = c.link;
62
+ if (c.marker !== undefined && c.marker !== d.marker)
63
+ out.marker = c.marker;
64
+ if (c.collapseRanges !== undefined && c.collapseRanges !== d.collapseRanges)
65
+ out.collapseRanges = c.collapseRanges;
66
+ if (c.notes !== undefined && c.notes !== d.notes)
67
+ out.notes = c.notes;
68
+ const b = c.bibliography;
69
+ if (b) {
70
+ const db = d.bibliography;
71
+ const ob = {};
72
+ if (b.title !== undefined)
73
+ ob.title = b.title;
74
+ if (b.scope !== undefined && b.scope !== db.scope)
75
+ ob.scope = b.scope;
76
+ if (b.auto !== undefined && b.auto !== db.auto)
77
+ ob.auto = b.auto;
78
+ if (b.fontSize && !dimensionsEqual(b.fontSize, db.fontSize))
79
+ ob.fontSize = b.fontSize;
80
+ if (b.lineHeight)
81
+ ob.lineHeight = b.lineHeight;
82
+ if (b.hangingIndent && !dimensionsEqual(b.hangingIndent, db.hangingIndent))
83
+ ob.hangingIndent = b.hangingIndent;
84
+ if (b.entrySpacing && !dimensionsEqual(b.entrySpacing, db.entrySpacing))
85
+ ob.entrySpacing = b.entrySpacing;
86
+ if (b.labelWidth)
87
+ ob.labelWidth = b.labelWidth;
88
+ if (b.doi !== undefined && b.doi !== db.doi)
89
+ ob.doi = b.doi;
90
+ if (b.includeUncited !== undefined && b.includeUncited !== db.includeUncited)
91
+ ob.includeUncited = b.includeUncited;
92
+ if (b.groupByLanguage !== undefined && b.groupByLanguage !== db.groupByLanguage)
93
+ ob.groupByLanguage = b.groupByLanguage;
94
+ if (Object.keys(ob).length > 0)
95
+ out.bibliography = ob;
96
+ }
97
+ return Object.keys(out).length > 0 ? out : undefined;
98
+ }
99
+ //# sourceMappingURL=citations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citations.js","sourceRoot":"","sources":["../../src/defaults/citations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { CrossRefsConfig, ResolvedCrossRefsConfig } from '../types';
2
+ /** `locale`: the document language, whose words fill the unset templates. */
3
+ export declare function resolveCrossRefsConfig(partial?: CrossRefsConfig, locale?: string): ResolvedCrossRefsConfig;
4
+ /** The values a config sets on purpose: non-blank templates, a style other
5
+ * than `'default'`. */
6
+ export declare function stripCrossRefsDefaults(crossRefs?: CrossRefsConfig): CrossRefsConfig | undefined;
7
+ //# sourceMappingURL=crossRefs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crossRefs.d.ts","sourceRoot":"","sources":["../../src/defaults/crossRefs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAYzE,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAQ1G;AAED;wBACwB;AACxB,wBAAgB,sBAAsB,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS,CAS/F"}
@@ -0,0 +1,35 @@
1
+ import { defaultCrossRefStrings } from '../pipeline/crossRefs';
2
+ const STYLES = new Set(['default', 'number', 'title', 'page']);
3
+ /** A template as a cross-reference fills it: with `{n}`, else the text
4
+ * followed by a no-break space and the number. Blank: undefined. */
5
+ function template(value) {
6
+ if (typeof value !== 'string' || value.trim().length === 0)
7
+ return undefined;
8
+ return value.includes('{n}') ? value : `${value.trimEnd()}\u00a0{n}`;
9
+ }
10
+ /** `locale`: the document language, whose words fill the unset templates. */
11
+ export function resolveCrossRefsConfig(partial, locale) {
12
+ const words = defaultCrossRefStrings(locale);
13
+ return {
14
+ chapter: template(partial?.chapter) ?? words.chapter,
15
+ section: template(partial?.section) ?? words.section,
16
+ page: template(partial?.page) ?? words.page,
17
+ defaultStyle: typeof partial?.defaultStyle === 'string' && STYLES.has(partial.defaultStyle) ? partial.defaultStyle : 'default',
18
+ };
19
+ }
20
+ /** The values a config sets on purpose: non-blank templates, a style other
21
+ * than `'default'`. */
22
+ export function stripCrossRefsDefaults(crossRefs) {
23
+ if (!crossRefs)
24
+ return undefined;
25
+ const result = {};
26
+ for (const key of ['chapter', 'section', 'page']) {
27
+ const v = crossRefs[key];
28
+ if (typeof v === 'string' && v.trim().length > 0)
29
+ result[key] = v;
30
+ }
31
+ if (crossRefs.defaultStyle !== undefined && crossRefs.defaultStyle !== 'default')
32
+ result.defaultStyle = crossRefs.defaultStyle;
33
+ return Object.keys(result).length > 0 ? result : undefined;
34
+ }
35
+ //# sourceMappingURL=crossRefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crossRefs.js","sourceRoot":"","sources":["../../src/defaults/crossRefs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAEpF;qEACqE;AACrE,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7E,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC;AACvE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,sBAAsB,CAAC,OAAyB,EAAE,MAAe;IAC/E,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO;QACpD,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO;QACpD,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI;QAC3C,YAAY,EAAE,OAAO,OAAO,EAAE,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KAC/H,CAAC;AACJ,CAAC;AAED;wBACwB;AACxB,MAAM,UAAU,sBAAsB,CAAC,SAA2B;IAChE,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAU,EAAE,CAAC;QAC1D,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS;QAAE,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;IAC/H,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC"}
@@ -23,6 +23,8 @@ export { DEFAULT_PARTS_CONFIG, resolvePartsConfig, stripPartsDefaults } from './
23
23
  export { DEFAULT_HEADING_STYLES, resolveHeadingStylesConfig, stripHeadingStylesDefaults } from './headingStyles';
24
24
  export { DEFAULT_TOC_CONFIG, resolveTocConfig, stripTocDefaults } from './toc';
25
25
  export { DEFAULT_FOOTNOTES_CONFIG, resolveFootnotesConfig, stripFootnotesDefaults } from './footnotes';
26
+ export { resolveCrossRefsConfig, stripCrossRefsDefaults } from './crossRefs';
27
+ export { DEFAULT_CITATIONS_CONFIG, resolveCitationsConfig, stripCitationsDefaults } from './citations';
26
28
  export { DEFAULT_INDEX_CONFIG, resolveIndexConfig, stripIndexDefaults } from './indexConfig';
27
29
  export { DEFAULT_CJK_CONFIG, resolveCjkConfig, stripCjkDefaults, defaultCjkLineBreak, defaultCjkPunctuationWidth, defaultCjkCompression, defaultCjkEmphasis, defaultCjkBookTitleMark } from './cjk';
28
30
  export declare function stripConfigDefaults(config: PostextConfig): PostextConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/defaults/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/defaults/index.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,8 @@ import { stripPartsDefaults } from './parts';
19
19
  import { stripHeadingStylesDefaults } from './headingStyles';
20
20
  import { stripTocDefaults } from './toc';
21
21
  import { stripFootnotesDefaults } from './footnotes';
22
+ import { stripCrossRefsDefaults } from './crossRefs';
23
+ import { stripCitationsDefaults } from './citations';
22
24
  import { stripIndexDefaults } from './indexConfig';
23
25
  import { stripCjkDefaults } from './cjk';
24
26
  export { dimensionsEqual, colorsEqual, resolveColorValue, applyPaletteToConfig, applyPaletteToResolvedConfig, DEFAULT_COLOR_PALETTE, DEFAULT_MAIN_COLOR, DEFAULT_MAIN_COLOR_ID, DEFAULT_MAIN_COLOR_NAME, DEFAULT_MAIN_COLOR_HEX, cloneDefaultColorPalette, isDefaultColorPalette } from './shared';
@@ -44,6 +46,8 @@ export { DEFAULT_PARTS_CONFIG, resolvePartsConfig, stripPartsDefaults } from './
44
46
  export { DEFAULT_HEADING_STYLES, resolveHeadingStylesConfig, stripHeadingStylesDefaults } from './headingStyles';
45
47
  export { DEFAULT_TOC_CONFIG, resolveTocConfig, stripTocDefaults } from './toc';
46
48
  export { DEFAULT_FOOTNOTES_CONFIG, resolveFootnotesConfig, stripFootnotesDefaults } from './footnotes';
49
+ export { resolveCrossRefsConfig, stripCrossRefsDefaults } from './crossRefs';
50
+ export { DEFAULT_CITATIONS_CONFIG, resolveCitationsConfig, stripCitationsDefaults } from './citations';
47
51
  export { DEFAULT_INDEX_CONFIG, resolveIndexConfig, stripIndexDefaults } from './indexConfig';
48
52
  export { DEFAULT_CJK_CONFIG, resolveCjkConfig, stripCjkDefaults, defaultCjkLineBreak, defaultCjkPunctuationWidth, defaultCjkCompression, defaultCjkEmphasis, defaultCjkBookTitleMark } from './cjk';
49
53
  export function stripConfigDefaults(config) {
@@ -202,6 +206,20 @@ export function stripConfigDefaults(config) {
202
206
  else {
203
207
  delete result.footnotes;
204
208
  }
209
+ const strippedCrossRefs = stripCrossRefsDefaults(config.crossRefs);
210
+ if (strippedCrossRefs) {
211
+ result.crossRefs = strippedCrossRefs;
212
+ }
213
+ else {
214
+ delete result.crossRefs;
215
+ }
216
+ const strippedCitations = stripCitationsDefaults(config.citations);
217
+ if (strippedCitations) {
218
+ result.citations = strippedCitations;
219
+ }
220
+ else {
221
+ delete result.citations;
222
+ }
205
223
  const strippedCjk = stripCjkDefaults(config.cjk);
206
224
  if (strippedCjk) {
207
225
  result.cjk = strippedCjk;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/defaults/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/defaults/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"html-backend.d.ts","sourceRoot":"","sources":["../src/html-backend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAkBX,aAAa,EACd,MAAM,OAAO,CAAC;AAwDf,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;kDAI8C;IAC9C,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG;QAC5D;;;0BAGkB;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF;;;;;;;;;;;;iEAY6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;wDAGoD;IACpD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C;;;;;;;uEAOmE;IACnE,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC/B;AAqCD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CASjE;AAqhDD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,8EAA8E;IAC9E,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,QAS4B,CAAC;AAEzD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE,iBAAsB,GAC9B,eAAe,CAgEjB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAEtF"}
1
+ {"version":3,"file":"html-backend.d.ts","sourceRoot":"","sources":["../src/html-backend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAmBX,aAAa,EACd,MAAM,OAAO,CAAC;AAwDf,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;kDAI8C;IAC9C,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG;QAC5D;;;0BAGkB;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF;;;;;;;;;;;;iEAY6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;wDAGoD;IACpD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C;;;;;;;uEAOmE;IACnE,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC/B;AA2CD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAWjE;AA2kDD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,8EAA8E;IAC9E,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,QAS4B,CAAC;AAEzD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE,iBAAsB,GAC9B,eAAe,CAqEjB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAEtF"}
@@ -58,6 +58,9 @@ function segmentCjk(seg, lineDecl) {
58
58
  */
59
59
  export function anchoredResourceIds(doc) {
60
60
  const ids = new Set();
61
+ // Anchors (#264) under a key no resource id takes the same way.
62
+ for (const a of doc.anchors ?? [])
63
+ ids.add(`${ANCHOR_KEY}${a.id}`);
61
64
  for (const page of doc.pages) {
62
65
  for (const block of [...page.columns.flatMap((c) => c.blocks), ...(page.floats ?? [])]) {
63
66
  const rb = block.resourceBlock;
@@ -117,8 +120,36 @@ function esc(s) {
117
120
  function resourceAnchorId(resourceId) {
118
121
  return `pt-res-${resourceId}`;
119
122
  }
120
- function refAnchorHref(resourceId) {
121
- return `#${encodeURIComponent(resourceAnchorId(resourceId))}`;
123
+ /** The link key of a `:ref` segment: its resource id, or `a:<id>` for a
124
+ * reference to an anchor (`refAnchor`, #264) — the form
125
+ * {@link anchoredResourceIds} lists anchors in. */
126
+ function refKey(seg) {
127
+ return seg.refAnchor ? `${ANCHOR_KEY}${seg.refResourceId}` : seg.refResourceId;
128
+ }
129
+ const ANCHOR_KEY = 'a:';
130
+ /** Element id of an anchor (a heading's `{#id}`, an inline anchor, a
131
+ * container, #264). */
132
+ function anchorElementId(id) {
133
+ return `pt-a-${id}`;
134
+ }
135
+ /** Element id of a footnote's note: where its markers link to (#264). */
136
+ function footnoteElementId(id) {
137
+ return `pt-fn-${id}`;
138
+ }
139
+ /** Element id of a book page (`VDTDocument.pageIndexOffset` counted in):
140
+ * where a contents row or an index page number links to (#264). */
141
+ function pageElementId(bookIndex) {
142
+ return `pt-p-${bookIndex}`;
143
+ }
144
+ /** A link inside the document (`#sec-intro`, a citation's `#ref-key`)
145
+ * goes to the anchor of that id (#264, #269); any other link as written. */
146
+ function internalHref(href) {
147
+ return href.startsWith('#') && href.length > 1 && !href.startsWith('#pt-') ? `#${encodeURIComponent(anchorElementId(decodeURIComponent(href.slice(1))))}` : href;
148
+ }
149
+ function refAnchorHref(key) {
150
+ if (key.startsWith(ANCHOR_KEY))
151
+ return `#${encodeURIComponent(anchorElementId(key.slice(ANCHOR_KEY.length)))}`;
152
+ return `#${encodeURIComponent(resourceAnchorId(key))}`;
122
153
  }
123
154
  function quoteFontString(fontString) {
124
155
  // Canvas accepts unquoted multi-word families; CSS is stricter. Wrap family in
@@ -212,7 +243,7 @@ cjk = false) {
212
243
  const featuresDecl = !fontDecl ? '' : scaleDecl ? DASH_FEATURES_DECL : cjk ? CJK_FEATURES_DECL : '';
213
244
  if (seg.refResourceId !== undefined) {
214
245
  // Anchors carry an explicit color so the UA link blue never leaks in.
215
- const inner = `<a href="${refAnchorHref(seg.refResourceId)}" style="text-decoration:none;${fontDecl}${featuresDecl}${fontDecl ? 'line-height:0;' : ''}color:${color};">${text}</a>`;
246
+ const inner = `<a href="${refAnchorHref(refKey(seg))}" style="text-decoration:none;${fontDecl}${featuresDecl}${fontDecl ? 'line-height:0;' : ''}color:${color};">${text}</a>`;
216
247
  return `<span style="${pos}">${inner}</span>`;
217
248
  }
218
249
  if (fontDecl) {
@@ -236,7 +267,7 @@ function renderWordTextSegment(seg, x, top, fontDecl, colorDecl, color, cjk) {
236
267
  const text = esc(seg.text);
237
268
  if (seg.refResourceId !== undefined) {
238
269
  // Anchors carry an explicit color so the UA link blue never leaks in.
239
- const inner = `<a href="${refAnchorHref(seg.refResourceId)}" style="text-decoration:none;${fontDecl}${fontDecl ? 'line-height:0;' : ''}color:${color};">${text}</a>`;
270
+ const inner = `<a href="${refAnchorHref(refKey(seg))}" style="text-decoration:none;${fontDecl}${fontDecl ? 'line-height:0;' : ''}color:${color};">${text}</a>`;
240
271
  return `<span style="${pos}">${inner}</span>`;
241
272
  }
242
273
  if (fontDecl) {
@@ -254,7 +285,7 @@ function renderMarkedWordSegment(seg, x, top, fontDecl, colorDecl, color, cjk) {
254
285
  const featuresDecl = fontDecl && cjk ? CJK_FEATURES_DECL : '';
255
286
  if (seg.refResourceId !== undefined) {
256
287
  // Anchors carry an explicit color so the UA link blue never leaks in.
257
- const inner = `<a href="${refAnchorHref(seg.refResourceId)}" style="text-decoration:none;${fontDecl}${featuresDecl}${fontDecl ? 'line-height:0;' : ''}color:${color};">${text}</a>`;
288
+ const inner = `<a href="${refAnchorHref(refKey(seg))}" style="text-decoration:none;${fontDecl}${featuresDecl}${fontDecl ? 'line-height:0;' : ''}color:${color};">${text}</a>`;
258
289
  return `<span style="${pos}">${inner}</span>`;
259
290
  }
260
291
  if (fontDecl) {
@@ -278,7 +309,7 @@ function renderRefRuns(segs, start, x, color, paint, linked = true) {
278
309
  } while (segs[i]?.refContinues);
279
310
  if (!linked)
280
311
  return { html: runs.join(''), end: i, x };
281
- const href = refAnchorHref(segs[start].refResourceId);
312
+ const href = refAnchorHref(refKey(segs[start]));
282
313
  return { html: `<a href="${href}" style="text-decoration:none;color:${color};">${runs.join('')}</a>`, end: i, x };
283
314
  }
284
315
  /** Wraps each run of segments of one link (`VDTLineSegment.href`) in an
@@ -305,9 +336,19 @@ function linkRuns() {
305
336
  },
306
337
  };
307
338
  }
308
- /** A segment's link, unless it is a `:ref` (which links to its resource). */
339
+ /** A segment's link, unless it is a `:ref` (which links to its resource):
340
+ * a Markdown link's URL, a footnote marker's note, an index page number's
341
+ * page (#264). */
309
342
  function segmentHref(seg) {
310
- return seg.refResourceId === undefined ? seg.href : undefined;
343
+ if (seg.refResourceId !== undefined)
344
+ return undefined;
345
+ if (seg.href !== undefined)
346
+ return internalHref(seg.href);
347
+ if (seg.footnoteId !== undefined)
348
+ return `#${encodeURIComponent(footnoteElementId(seg.footnoteId))}`;
349
+ if (seg.pageLink !== undefined)
350
+ return `#${pageElementId(seg.pageLink)}`;
351
+ return undefined;
311
352
  }
312
353
  /**
313
354
  * The segments of a horizontal line. A line of the CJK composer goes to
@@ -397,13 +438,13 @@ function renderSegments(line, block, targets) {
397
438
  continue;
398
439
  }
399
440
  if (seg.refResourceId !== undefined && segs[i + 1]?.refContinues) {
400
- const group = renderRefRuns(segs, i, x, pickSegmentColor(seg, block), (run, at) => paintText(run, at, true), refLinks(seg.refResourceId, targets));
441
+ const group = renderRefRuns(segs, i, x, pickSegmentColor(seg, block), (run, at) => paintText(run, at, true), refLinks(refKey(seg), targets));
401
442
  parts.push(group.html);
402
443
  x = group.x;
403
444
  i = group.end - 1;
404
445
  continue;
405
446
  }
406
- parts.push(paintText(seg, x, seg.refResourceId !== undefined && !refLinks(seg.refResourceId, targets)));
447
+ parts.push(paintText(seg, x, seg.refResourceId !== undefined && !refLinks(refKey(seg), targets)));
407
448
  x += seg.width;
408
449
  }
409
450
  parts.push(links.end());
@@ -501,13 +542,13 @@ function renderComposedSegments(line, block, targets) {
501
542
  continue;
502
543
  }
503
544
  if (seg.refResourceId !== undefined && segs[i + 1]?.refContinues) {
504
- const group = renderRefRuns(segs, i, x, pickSegmentColor(seg, block), (run, at) => paintText(run, at, true), refLinks(seg.refResourceId, targets));
545
+ const group = renderRefRuns(segs, i, x, pickSegmentColor(seg, block), (run, at) => paintText(run, at, true), refLinks(refKey(seg), targets));
505
546
  parts.push(group.html);
506
547
  x = group.x;
507
548
  i = group.end - 1;
508
549
  continue;
509
550
  }
510
- parts.push(paintText(seg, x, seg.refResourceId !== undefined && !refLinks(seg.refResourceId, targets)));
551
+ parts.push(paintText(seg, x, seg.refResourceId !== undefined && !refLinks(refKey(seg), targets)));
511
552
  // A ruby base's reading (#194).
512
553
  if (seg.ruby)
513
554
  parts.push(rubyHtml(seg.ruby, x, pickSegmentColor(seg, block), quoteFontString));
@@ -813,8 +854,8 @@ function renderVerticalLine(line, block, v, targets) {
813
854
  if (seg.cjkMarks?.dots)
814
855
  text = `<em style="font-style:inherit;">${text}</em>`;
815
856
  const href = seg.refResourceId !== undefined
816
- ? (refLinks(seg.refResourceId, targets) ? refAnchorHref(seg.refResourceId) : undefined)
817
- : seg.href;
857
+ ? (refLinks(refKey(seg), targets) ? refAnchorHref(refKey(seg)) : undefined)
858
+ : segmentHref(seg);
818
859
  if (href !== undefined)
819
860
  text = `<a href="${esc(href)}" style="color:inherit;text-decoration:none;"${seg.href !== undefined && seg.refResourceId === undefined ? ' rel="noopener noreferrer"' : ''}>${text}</a>`;
820
861
  inner.push(verticalSpan(x + (seg.inkOffset ?? 0), axisOf(fontString, seg.baselineShift ?? 0), text, decl));
@@ -956,13 +997,13 @@ function renderResourceLine(line, fonts, color, linkColor, labelColor = color, t
956
997
  continue;
957
998
  }
958
999
  if (seg.refResourceId !== undefined && segs[i + 1]?.refContinues) {
959
- const group = renderRefRuns(segs, i, x, linkColor, (run, at) => paintText(run, at, true), refLinks(seg.refResourceId, targets));
1000
+ const group = renderRefRuns(segs, i, x, linkColor, (run, at) => paintText(run, at, true), refLinks(refKey(seg), targets));
960
1001
  parts.push(group.html);
961
1002
  x = group.x;
962
1003
  i = group.end - 1;
963
1004
  continue;
964
1005
  }
965
- parts.push(paintText(seg, x, seg.refResourceId !== undefined && !refLinks(seg.refResourceId, targets)));
1006
+ parts.push(paintText(seg, x, seg.refResourceId !== undefined && !refLinks(refKey(seg), targets)));
966
1007
  x += seg.width;
967
1008
  }
968
1009
  parts.push(links.end());
@@ -1375,10 +1416,20 @@ function renderBlockInner(block, options) {
1375
1416
  * without touching the rest of the page.
1376
1417
  */
1377
1418
  function renderBlock(block, options) {
1419
+ // A note is where its markers link to (#264).
1420
+ const note = block.footnoteNote !== undefined && !block.hidden
1421
+ ? zeroSizeAnchor(footnoteElementId(block.footnoteNote), block.bbox.x, block.bbox.y)
1422
+ : '';
1378
1423
  return (`<div class="pt-block" data-block-id="${esc(block.id)}" style="display:contents;">` +
1424
+ note +
1379
1425
  renderBlockInner(block, options) +
1380
1426
  `</div>`);
1381
1427
  }
1428
+ /** An empty element with an id at a point of the page: the target of an
1429
+ * in-document link. */
1430
+ function zeroSizeAnchor(id, x, y) {
1431
+ return `<span id="${esc(id)}" style="position:absolute;left:${x}px;top:${y}px;width:0;height:0;"></span>`;
1432
+ }
1382
1433
  function renderPageDetailed(page, background, pageOptions, ink = null,
1383
1434
  /** With cut lines, how far the bleed box lies inside the sheet (px); 0
1384
1435
  * without them. */
@@ -1433,11 +1484,15 @@ verticalRegion, verticalDigits) {
1433
1484
  const decorationHtml = defsHtml + gridHtml + openerHtml + footnoteRulesHtml + slotParts.join('');
1434
1485
  // A vertical page's flow: one box turned a quarter turn clockwise, its
1435
1486
  // text lines turned back and set vertically (see `renderVerticalLine`).
1436
- const flowHtml = gridHtml + openerHtml + blocksHtml + footnoteRulesHtml;
1487
+ const anchorsHtml = (options.anchors ?? [])
1488
+ .filter((a) => a.pageIndex === page.index)
1489
+ .map((a) => zeroSizeAnchor(anchorElementId(a.id), a.x, a.y))
1490
+ .join('');
1491
+ const flowHtml = gridHtml + openerHtml + anchorsHtml + blocksHtml + footnoteRulesHtml;
1437
1492
  const innerHtml = defsHtml + (page.flow
1438
1493
  ? `<div class="pt-flow" style="position:absolute;left:0;top:0;width:${page.height}px;height:${page.width}px;transform:translate(${page.width}px,0) rotate(90deg);transform-origin:0 0;">${flowHtml}</div>`
1439
1494
  : flowHtml) + slotParts.join('');
1440
- const outerHtml = `<div class="pt-page" data-page="${page.index}" style="` +
1495
+ const outerHtml = `<div class="pt-page" id="${pageElementId((options.pageIndexOffset ?? 0) + page.index)}" data-page="${page.index}" style="` +
1441
1496
  `position:relative;` +
1442
1497
  `width:${page.width}px;` +
1443
1498
  `height:${page.height}px;` +
@@ -1511,6 +1566,10 @@ export function renderToHtmlIndexed(doc, options = {}) {
1511
1566
  const linkTargets = anchoredResourceIds(doc);
1512
1567
  for (const id of options.refTargets ?? [])
1513
1568
  linkTargets.add(id);
1569
+ const anchorPaint = {
1570
+ ...(doc.anchors ? { anchors: doc.anchors } : {}),
1571
+ pageIndexOffset: doc.pageIndexOffset ?? 0,
1572
+ };
1514
1573
  const bleedInset = doc.trimOffset > 0
1515
1574
  ? Math.max(0, doc.trimOffset - dimensionToPx(doc.config.page.cutLines.bleed, doc.config.page.dpi))
1516
1575
  : 0;
@@ -1519,6 +1578,7 @@ export function renderToHtmlIndexed(doc, options = {}) {
1519
1578
  ? {
1520
1579
  ...options,
1521
1580
  linkTargets,
1581
+ ...anchorPaint,
1522
1582
  missingImage: (fileId, resourceId) => {
1523
1583
  if (reported.has(fileId))
1524
1584
  return;
@@ -1526,7 +1586,7 @@ export function renderToHtmlIndexed(doc, options = {}) {
1526
1586
  onWarning({ kind: 'missingImage', fileId, ...(resourceId !== undefined ? { resourceId } : {}), pageIndex: p.index });
1527
1587
  },
1528
1588
  }
1529
- : { ...options, linkTargets };
1589
+ : { ...options, linkTargets, ...anchorPaint };
1530
1590
  const gridCells = doc.config.cjk?.grid?.show ? cjkGridCells(doc.config, p.contentArea, doc.baselineGrid, p.columns, p.flow) : undefined;
1531
1591
  const detail = renderPageDetailed(p, background, pageOptions, ink, bleedInset, gridCells, doc.config.cjk?.region, doc.config.cjk?.uprightDigits);
1532
1592
  pageHtmlParts.push(detail.outerHtml);