postext 1.33.2 → 1.33.3

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 (122) hide show
  1. package/dist/__tests__/linearScans.test.d.ts +2 -0
  2. package/dist/__tests__/linearScans.test.d.ts.map +1 -0
  3. package/dist/__tests__/linearScans.test.js +112 -0
  4. package/dist/__tests__/linearScans.test.js.map +1 -0
  5. package/dist/__tests__/pipeline/refLabelBreaks.test.js +1 -1
  6. package/dist/__tests__/pipeline/refLabelBreaks.test.js.map +1 -1
  7. package/dist/__tests__/svgFonts.test.js +1 -1
  8. package/dist/__tests__/svgFonts.test.js.map +1 -1
  9. package/dist/bundle/api.d.ts.map +1 -1
  10. package/dist/bundle/api.js +51 -5
  11. package/dist/bundle/api.js.map +1 -1
  12. package/dist/bundle/configVersion.d.ts.map +1 -1
  13. package/dist/bundle/configVersion.js +12 -4
  14. package/dist/bundle/configVersion.js.map +1 -1
  15. package/dist/bundle/manifest.d.ts.map +1 -1
  16. package/dist/bundle/manifest.js +15 -1
  17. package/dist/bundle/manifest.js.map +1 -1
  18. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  19. package/dist/canvas-backend/blockRender.js +2 -1
  20. package/dist/canvas-backend/blockRender.js.map +1 -1
  21. package/dist/canvas-backend/verticalText.d.ts.map +1 -1
  22. package/dist/canvas-backend/verticalText.js +8 -3
  23. package/dist/canvas-backend/verticalText.js.map +1 -1
  24. package/dist/citations/bibtex.d.ts.map +1 -1
  25. package/dist/citations/bibtex.js +31 -10
  26. package/dist/citations/bibtex.js.map +1 -1
  27. package/dist/code/highlight.js +62 -12
  28. package/dist/code/highlight.js.map +1 -1
  29. package/dist/comics/layoutPage.d.ts.map +1 -1
  30. package/dist/comics/layoutPage.js +2 -1
  31. package/dist/comics/layoutPage.js.map +1 -1
  32. package/dist/comics/page.js +1 -1
  33. package/dist/comics/paint.d.ts.map +1 -1
  34. package/dist/comics/paint.js +3 -1
  35. package/dist/comics/paint.js.map +1 -1
  36. package/dist/comics/script.d.ts.map +1 -1
  37. package/dist/comics/script.js +5 -2
  38. package/dist/comics/script.js.map +1 -1
  39. package/dist/comics/split.d.ts.map +1 -1
  40. package/dist/comics/split.js +3 -1
  41. package/dist/comics/split.js.map +1 -1
  42. package/dist/comics/strip.d.ts.map +1 -1
  43. package/dist/comics/strip.js +3 -2
  44. package/dist/comics/strip.js.map +1 -1
  45. package/dist/contrast.js +3 -3
  46. package/dist/contrast.js.map +1 -1
  47. package/dist/design/layout.js +2 -2
  48. package/dist/design/layout.js.map +1 -1
  49. package/dist/frontmatter.d.ts.map +1 -1
  50. package/dist/frontmatter.js +9 -9
  51. package/dist/frontmatter.js.map +1 -1
  52. package/dist/html-backend.d.ts.map +1 -1
  53. package/dist/html-backend.js +55 -4
  54. package/dist/html-backend.js.map +1 -1
  55. package/dist/looseLines.d.ts.map +1 -1
  56. package/dist/looseLines.js +2 -2
  57. package/dist/looseLines.js.map +1 -1
  58. package/dist/measure/breakRules.d.ts.map +1 -1
  59. package/dist/measure/breakRules.js +3 -2
  60. package/dist/measure/breakRules.js.map +1 -1
  61. package/dist/measure/cjkAnnotate.d.ts.map +1 -1
  62. package/dist/measure/cjkAnnotate.js +3 -2
  63. package/dist/measure/cjkAnnotate.js.map +1 -1
  64. package/dist/measure/cjkCompose.d.ts.map +1 -1
  65. package/dist/measure/cjkCompose.js +5 -5
  66. package/dist/measure/cjkCompose.js.map +1 -1
  67. package/dist/measure/font.d.ts.map +1 -1
  68. package/dist/measure/font.js +2 -1
  69. package/dist/measure/font.js.map +1 -1
  70. package/dist/measure/fontString.d.ts +29 -0
  71. package/dist/measure/fontString.d.ts.map +1 -1
  72. package/dist/measure/fontString.js +156 -7
  73. package/dist/measure/fontString.js.map +1 -1
  74. package/dist/measure/rich.d.ts.map +1 -1
  75. package/dist/measure/rich.js +12 -14
  76. package/dist/measure/rich.js.map +1 -1
  77. package/dist/measure/vertical.d.ts.map +1 -1
  78. package/dist/measure/vertical.js +5 -5
  79. package/dist/measure/vertical.js.map +1 -1
  80. package/dist/parse/citations.d.ts.map +1 -1
  81. package/dist/parse/citations.js +5 -1
  82. package/dist/parse/citations.js.map +1 -1
  83. package/dist/parse/equationLabels.d.ts +11 -3
  84. package/dist/parse/equationLabels.d.ts.map +1 -1
  85. package/dist/parse/equationLabels.js +26 -17
  86. package/dist/parse/equationLabels.js.map +1 -1
  87. package/dist/parse/inlineFormatting.d.ts +26 -0
  88. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  89. package/dist/parse/inlineFormatting.js +216 -49
  90. package/dist/parse/inlineFormatting.js.map +1 -1
  91. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  92. package/dist/pipeline/contentWarnings.js +4 -5
  93. package/dist/pipeline/contentWarnings.js.map +1 -1
  94. package/dist/pipeline/crossRefs.d.ts.map +1 -1
  95. package/dist/pipeline/crossRefs.js +9 -1
  96. package/dist/pipeline/crossRefs.js.map +1 -1
  97. package/dist/pipeline/headerFooter.js +3 -3
  98. package/dist/pipeline/headerFooter.js.map +1 -1
  99. package/dist/pipeline/parts.d.ts.map +1 -1
  100. package/dist/pipeline/parts.js +13 -1
  101. package/dist/pipeline/parts.js.map +1 -1
  102. package/dist/pipeline/placeholders.js +4 -4
  103. package/dist/pipeline/placeholders.js.map +1 -1
  104. package/dist/pipeline/statementNumbering.d.ts.map +1 -1
  105. package/dist/pipeline/statementNumbering.js +6 -13
  106. package/dist/pipeline/statementNumbering.js.map +1 -1
  107. package/dist/preflight.d.ts.map +1 -1
  108. package/dist/preflight.js +3 -2
  109. package/dist/preflight.js.map +1 -1
  110. package/dist/table/model.d.ts.map +1 -1
  111. package/dist/table/model.js +13 -3
  112. package/dist/table/model.js.map +1 -1
  113. package/dist/word/inline.d.ts.map +1 -1
  114. package/dist/word/inline.js +26 -4
  115. package/dist/word/inline.js.map +1 -1
  116. package/dist/word/template.d.ts.map +1 -1
  117. package/dist/word/template.js +61 -4
  118. package/dist/word/template.js.map +1 -1
  119. package/dist/word/toDocx.d.ts.map +1 -1
  120. package/dist/word/toDocx.js +54 -1
  121. package/dist/word/toDocx.js.map +1 -1
  122. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"citations.js","sourceRoot":"","sources":["../../src/parse/citations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"citations.js","sourceRoot":"","sources":["../../src/parse/citations.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,15 @@
1
1
  import type { ContentBlock } from './types';
2
- /** `\label{…}` in TeX: the identifier a `\eqref`, `\ref` or `:ref` names
3
- * (#530). */
4
- export declare const TEX_LABEL_RE: RegExp;
2
+ /** A `\label{…}` in TeX: the identifier a `\eqref`, `\ref` or `:ref`
3
+ * names (#530), trimmed; `tex.slice(start, end)` is the whole command. */
4
+ export interface TexLabel {
5
+ label: string;
6
+ start: number;
7
+ end: number;
8
+ }
9
+ /** Every `\label{…}` of a TeX source, in order, as
10
+ * `/\\label\{\s*([^{}]*?)\s*\}/g` finds them: a braced group holding no
11
+ * brace. A scan in one pass (the expression backtracks over spaces). */
12
+ export declare function texLabelMatches(tex: string): TexLabel[];
5
13
  /** The labels of a TeX source, in order. */
6
14
  export declare function texLabels(tex: string): string[];
7
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"equationLabels.d.ts","sourceRoot":"","sources":["../../src/parse/equationLabels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,SAAS,CAAC;AAExD;cACc;AACd,eAAO,MAAM,YAAY,QAAgC,CAAC;AAE1D,4CAA4C;AAC5C,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAM/C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAoB1G"}
1
+ {"version":3,"file":"equationLabels.d.ts","sourceRoot":"","sources":["../../src/parse/equationLabels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,SAAS,CAAC;AAExD;2EAC2E;AAC3E,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;yEAEyE;AACzE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAYvD;AAED,4CAA4C;AAC5C,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAkB1G"}
@@ -1,16 +1,27 @@
1
- /** `\label{…}` in TeX: the identifier a `\eqref`, `\ref` or `:ref` names
2
- * (#530). */
3
- export const TEX_LABEL_RE = /\\label\{\s*([^{}]*?)\s*\}/g;
4
- /** The labels of a TeX source, in order. */
5
- export function texLabels(tex) {
1
+ /** Every `\label{…}` of a TeX source, in order, as
2
+ * `/\\label\{\s*([^{}]*?)\s*\}/g` finds them: a braced group holding no
3
+ * brace. A scan in one pass (the expression backtracks over spaces). */
4
+ export function texLabelMatches(tex) {
6
5
  const out = [];
7
- TEX_LABEL_RE.lastIndex = 0;
8
- let m;
9
- while ((m = TEX_LABEL_RE.exec(tex)) !== null)
10
- if (m[1])
11
- out.push(m[1]);
6
+ for (let i = tex.indexOf('\\label{'); i >= 0;) {
7
+ let j = i + 7;
8
+ while (j < tex.length && tex[j] !== '{' && tex[j] !== '}')
9
+ j++;
10
+ if (j === tex.length)
11
+ break;
12
+ if (tex[j] === '}') {
13
+ out.push({ label: tex.slice(i + 7, j).trim(), start: i, end: j + 1 });
14
+ i = tex.indexOf('\\label{', j + 1);
15
+ }
16
+ else
17
+ i = tex.indexOf('\\label{', i + 1);
18
+ }
12
19
  return out;
13
20
  }
21
+ /** The labels of a TeX source, in order. */
22
+ export function texLabels(tex) {
23
+ return texLabelMatches(tex).map((m) => m.label).filter((label) => label);
24
+ }
14
25
  /**
15
26
  * A `\label{eq:x}` in a display formula (#530) is an anchor on the formula:
16
27
  * where a reference to it jumps and whose page it prints. The anchor sits
@@ -23,15 +34,13 @@ export function attachEquationAnchors(result, markdown) {
23
34
  continue;
24
35
  const marks = [];
25
36
  const source = markdown.slice(b.sourceStart, b.sourceEnd);
26
- TEX_LABEL_RE.lastIndex = 0;
27
- let m;
28
- while ((m = TEX_LABEL_RE.exec(source)) !== null) {
29
- if (!m[1])
37
+ for (const m of texLabelMatches(source)) {
38
+ if (!m.label)
30
39
  continue;
31
40
  marks.push({
32
- anchorId: m[1],
33
- sourceStart: b.sourceStart + m.index,
34
- sourceEnd: b.sourceStart + m.index + m[0].length,
41
+ anchorId: m.label,
42
+ sourceStart: b.sourceStart + m.start,
43
+ sourceEnd: b.sourceStart + m.end,
35
44
  anchor: b.sourceStart,
36
45
  attach: 'after',
37
46
  });
@@ -1 +1 @@
1
- {"version":3,"file":"equationLabels.js","sourceRoot":"","sources":["../../src/parse/equationLabels.ts"],"names":[],"mappings":"AAEA;cACc;AACd,MAAM,CAAC,MAAM,YAAY,GAAG,6BAA6B,CAAC;AAE1D,4CAA4C;AAC5C,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI;QAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAuC,MAAS,EAAE,QAAgB;IACrG,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,SAAS;QAC/E,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1D,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAyB,CAAC;QAC9B,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,SAAS;YACpB,KAAK,CAAC,IAAI,CAAC;gBACT,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;gBACd,WAAW,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK;gBACpC,SAAS,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;gBAChD,MAAM,EAAE,CAAC,CAAC,WAAW;gBACrB,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"equationLabels.js","sourceRoot":"","sources":["../../src/parse/equationLabels.ts"],"names":[],"mappings":"AAUA;;yEAEyE;AACzE,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,GAAI,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;YAAE,MAAM;QAC5B,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;;YAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAuC,MAAS,EAAE,QAAgB;IACrG,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,SAAS;QAC/E,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAAE,SAAS;YACvB,KAAK,CAAC,IAAI,CAAC;gBACT,QAAQ,EAAE,CAAC,CAAC,KAAK;gBACjB,WAAW,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK;gBACpC,SAAS,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG;gBAChC,MAAM,EAAE,CAAC,CAAC,WAAW;gBACrB,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -52,6 +52,24 @@ export declare const TITLE_BREAK_RE: RegExp;
52
52
  * {@link replaceSnippetBreaks}); a plain newline stays a space in captions
53
53
  * and notes. */
54
54
  export declare const SNIPPET_BREAK_RE: RegExp;
55
+ /**
56
+ * `text` with each title break ({@link TITLE_BREAK_RE}: `\\` and the
57
+ * spaces and tabs around it) replaced by `by`, as
58
+ * `text.replace(TITLE_BREAK_RE, by)` replaces them. A scan in one pass: the
59
+ * expression's leading run of spaces is tried again from each position of
60
+ * a long run that no break ends.
61
+ */
62
+ export declare function replaceTitleBreaks(text: string, by: string): string;
63
+ /**
64
+ * `[start, end)` of the text between the braces of each inline directive's
65
+ * `{…}` attributes in `text`, in order: the directives named in `braced`
66
+ * take them right after the name (`:ref{…}`), those in `bracketed` after a
67
+ * `[…]` text (`:chip[…]{…}`, the text never empty unless `emptyText`). What
68
+ * a global expression of those alternatives finds — the attributes on one
69
+ * line, a `\\]` in the text no bracket — read in one pass, where the
70
+ * expression would read a long line again from every unclosed directive.
71
+ */
72
+ export declare function directiveAttrRanges(text: string, braced: readonly string[], bracketed: readonly string[], emptyText?: boolean): Array<[number, number]>;
55
73
  /** Positions of the break placeholder in a plain text. */
56
74
  export declare function titleBreakIndices(text: string): number[];
57
75
  /** Whether `ch` (one character, a surrogate pair included) is Han, kana,
@@ -141,6 +159,8 @@ export interface SwatchMeta {
141
159
  /**
142
160
  * Extract inline `:swatch{…}` colour swatches from a line's text, replacing
143
161
  * each by `SWATCH_PLACEHOLDER` and returning the swatch metadata in order.
162
+ * `:swatch{…}` takes the same attribute grammar as `:ref{…}`; a swatch
163
+ * without a `color` is not a swatch (left as text).
144
164
  * Runs right after {@link extractInlineRefs} on its cleaned text.
145
165
  */
146
166
  export declare function extractInlineSwatches(text: string, fallbackStart: number): {
@@ -185,6 +205,12 @@ export interface ChipMeta {
185
205
  sourceEnd: number;
186
206
  }
187
207
  /**
208
+ * `:chip[text]` with an optional `{attrs}` right after the bracket
209
+ * (`/:chip\[((?:\\.|[^\]\\\n])+)\](?:\{([^}\n]*)\})?/g`). The text is
210
+ * one line, may not be empty (`:chip[]` stays literal text) and takes `\]`
211
+ * for a literal bracket. Text of spaces alone (NBSP included) makes an empty
212
+ * chip: a blank box as wide as its style's padding.
213
+ *
188
214
  * Extract inline `:chip[…]` chips from a line's text, replacing each by
189
215
  * `CHIP_PLACEHOLDER` and returning the chip metadata in order. Runs first,
190
216
  * before {@link extractInlineRefs}, so the chip text (which may hold marks
@@ -1 +1 @@
1
- {"version":3,"file":"inlineFormatting.d.ts","sourceRoot":"","sources":["../../src/parse/inlineFormatting.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC;;;;uDAIuD;AACvD,eAAO,MAAM,eAAe,WAAM,CAAC;AAEnC;;4EAE4E;AAC5E,eAAO,MAAM,kBAAkB,WAAM,CAAC;AAEtC;;8DAE8D;AAC9D,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC;4DAC4D;AAC5D,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAAE,CAmBpD;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,UAAU,EAAE,CAOpG;AAED;;;6CAG6C;AAC7C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAC1C,6CAA6C;AAC7C,eAAO,MAAM,cAAc,QAAsB,CAAC;AAClD;;;;;;;iBAOiB;AACjB,eAAO,MAAM,gBAAgB,QAA4C,CAAC;AAE1E,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAIxD;AAWD;2CAC2C;AAC3C,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE7D;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQvE;AAED,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrE;AAED;;;;;cAKc;AACd,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,GAAG,CAErD;AAED;uDACuD;AACvD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKxF;AAED;;;;;2EAK2E;AAC3E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED;;;;;qCAKqC;AACrC,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,EAAE,GAAG,GAAG,GAAG,QAAQ,CAG1G;AAED;;yCAEyC;AACzC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;wDAEwD;AACxD,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAUzH;AAED;;yDAEyD;AACzD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAKnH;AAED;;8CAE8C;AAC9C,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB;AAgDD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE,CA+DtC;AAED;;qBAEqB;AACrB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAE,CAqB7C;AAED;+EAC+E;AAC/E,eAAO,MAAM,eAAe,WAAW,CAAC;AAExC;sDACsD;AACtD,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf;mDAC+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAMD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE,CAoBpF;AAED;uBACuB;AACvB,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAOjF;AAED;gEACgE;AAChE,MAAM,WAAW,QAAQ;IACvB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;CACnB;AAQD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,CAqBxC;AAED;;;oEAGoE;AACpE,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAUpF;AAED;kDACkD;AAClD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAO3F;AAED;;;yBAGyB;AACzB,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAQjF;AAmBD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AACD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAUD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED;;yCAEyC;AACzC,eAAO,MAAM,mBAAmB,QAAwC,CAAC;AACzE,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AA6E9C;;sEAEsE;AACtE,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAqB3D;AAED;;;;;;4EAM4E;AAC5E,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,CAqBrE;AAED;;;uDAGuD;AACvD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc1D;AAeD;;;+DAG+D;AAC/D,eAAO,MAAM,cAAc,QAA+B,CAAC;AAC3D,eAAO,MAAM,YAAY,QAA6B,CAAC;AA6BvD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUhE;AA6ID;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOzD;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAA0B,GAAG,MAAM,CAUxF;AAED;uCACuC;AACvC,eAAO,MAAM,eAAe,WAAW,CAAC;AAExC;qEACqE;AACrE,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAEhE;AA6BD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKzD;AA8DD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAoDhE"}
1
+ {"version":3,"file":"inlineFormatting.d.ts","sourceRoot":"","sources":["../../src/parse/inlineFormatting.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,133 @@ export const TITLE_BREAK_RE = /[ \t]*\\\\[ \t]*/g;
74
74
  * {@link replaceSnippetBreaks}); a plain newline stays a space in captions
75
75
  * and notes. */
76
76
  export const SNIPPET_BREAK_RE = /[ \t]*(?:\\\\[ \t]*(?:\r?\n)?|\\\r?\n)/g;
77
+ const isBlank = (c) => c === ' ' || c === '\t';
78
+ /**
79
+ * `text` with each title break ({@link TITLE_BREAK_RE}: `\\` and the
80
+ * spaces and tabs around it) replaced by `by`, as
81
+ * `text.replace(TITLE_BREAK_RE, by)` replaces them. A scan in one pass: the
82
+ * expression's leading run of spaces is tried again from each position of
83
+ * a long run that no break ends.
84
+ */
85
+ export function replaceTitleBreaks(text, by) {
86
+ let out = '';
87
+ let pos = 0;
88
+ for (let at = text.indexOf('\\\\'); at >= 0; at = text.indexOf('\\\\', pos)) {
89
+ let start = at;
90
+ while (start > pos && isBlank(text[start - 1]))
91
+ start--;
92
+ let end = at + 2;
93
+ while (isBlank(text[end]))
94
+ end++;
95
+ out += text.slice(pos, start) + by;
96
+ pos = end;
97
+ }
98
+ return pos === 0 ? text : out + text.slice(pos);
99
+ }
100
+ /** `[start, end)` of the next snippet break ({@link SNIPPET_BREAK_RE}) from
101
+ * `from` on, as the expression finds it, in one pass. */
102
+ function nextSnippetBreak(text, from) {
103
+ for (let at = text.indexOf('\\', from); at >= 0; at = text.indexOf('\\', at + 1)) {
104
+ let end;
105
+ if (text[at + 1] === '\\') {
106
+ end = at + 2;
107
+ while (isBlank(text[end]))
108
+ end++;
109
+ if (text[end] === '\r' && text[end + 1] === '\n')
110
+ end += 2;
111
+ else if (text[end] === '\n')
112
+ end++;
113
+ }
114
+ else if (text[at + 1] === '\n')
115
+ end = at + 2;
116
+ else if (text[at + 1] === '\r' && text[at + 2] === '\n')
117
+ end = at + 3;
118
+ else
119
+ continue;
120
+ let start = at;
121
+ while (start > from && isBlank(text[start - 1]))
122
+ start--;
123
+ return [start, end];
124
+ }
125
+ return null;
126
+ }
127
+ /** Where a directive's `[…]` text that opens at `from` stops, read as
128
+ * `(?:\\.|[^\]\\\n])*` reads it: at its closing `]` (`closed`), or at a
129
+ * line feed, a backslash before a line end, or the end of the text. */
130
+ function bracketTextEnd(text, from) {
131
+ let i = from;
132
+ while (i < text.length) {
133
+ const c = text[i];
134
+ if (c === ']')
135
+ return { at: i, closed: true };
136
+ if (c === '\n')
137
+ break;
138
+ if (c === '\\') {
139
+ const next = text[i + 1];
140
+ if (next === undefined || next === '\n' || next === '\r' || next === '\u2028' || next === '\u2029')
141
+ break;
142
+ i += 2;
143
+ }
144
+ else
145
+ i++;
146
+ }
147
+ return { at: i, closed: false };
148
+ }
149
+ /**
150
+ * `[start, end)` of the text between the braces of each inline directive's
151
+ * `{…}` attributes in `text`, in order: the directives named in `braced`
152
+ * take them right after the name (`:ref{…}`), those in `bracketed` after a
153
+ * `[…]` text (`:chip[…]{…}`, the text never empty unless `emptyText`). What
154
+ * a global expression of those alternatives finds — the attributes on one
155
+ * line, a `\\]` in the text no bracket — read in one pass, where the
156
+ * expression would read a long line again from every unclosed directive.
157
+ */
158
+ export function directiveAttrRanges(text, braced, bracketed, emptyText = false) {
159
+ const out = [];
160
+ // The first `}` or line feed from each position (-1: none), built on
161
+ // first use.
162
+ let stops;
163
+ const attrsEnd = (from) => {
164
+ if (!stops) {
165
+ stops = new Int32Array(text.length + 1).fill(-1);
166
+ for (let k = text.length - 1; k >= 0; k--)
167
+ stops[k] = text[k] === '}' || text[k] === '\n' ? k : stops[k + 1];
168
+ }
169
+ const at = from <= text.length ? stops[from] : -1;
170
+ return at >= 0 && text[at] === '}' ? at : -1;
171
+ };
172
+ // A `[…]` text read from any start between the last read's start and
173
+ // where it stopped stops at the same place (see `bracketTextEnd`).
174
+ let read;
175
+ for (let i = text.indexOf(':'); i >= 0;) {
176
+ let found;
177
+ const name = braced.find((n) => text.startsWith(n, i + 1) && text[i + 1 + n.length] === '{');
178
+ if (name !== undefined) {
179
+ const open = i + 1 + name.length;
180
+ const close = attrsEnd(open + 1);
181
+ if (close >= 0)
182
+ found = [open + 1, close];
183
+ }
184
+ const bracketName = found ? undefined : bracketed.find((n) => text.startsWith(n, i + 1) && text[i + 1 + n.length] === '[');
185
+ if (bracketName !== undefined) {
186
+ const from = i + 2 + bracketName.length;
187
+ if (!read || from > read.at)
188
+ read = bracketTextEnd(text, from);
189
+ if (read.closed && (emptyText || read.at > from) && text[read.at + 1] === '{') {
190
+ const close = attrsEnd(read.at + 2);
191
+ if (close >= 0)
192
+ found = [read.at + 2, close];
193
+ }
194
+ }
195
+ if (found) {
196
+ out.push(found);
197
+ i = text.indexOf(':', found[1] + 1);
198
+ }
199
+ else
200
+ i = text.indexOf(':', i + 1);
201
+ }
202
+ return out;
203
+ }
77
204
  /** Positions of the break placeholder in a plain text. */
78
205
  export function titleBreakIndices(text) {
79
206
  const out = [];
@@ -186,10 +313,20 @@ export function applyTitleBreaks(title, breaks, parsedLength) {
186
313
  chars[i] = '\n';
187
314
  return chars.join('').replace(/[ \t]*\n[ \t]*/g, '\n');
188
315
  }
189
- /** `:ref{…}` — the attribute blob is parsed with the shared directive
316
+ /** The next `<open>…}` from `from` on, as `/<open>([^}]*)\}/g` finds it
317
+ * (`open`: `:ref{`, `:swatch{`), with the text between the braces. A scan
318
+ * in one pass: once no `}` follows an opening, none follows a later one.
319
+ *
320
+ * `:ref{…}` — the attribute blob is parsed with the shared directive
190
321
  * attribute grammar, so attributes may come in any order and use either
191
322
  * quote style. A ref without an `id` is not a reference (left as text). */
192
- const INLINE_REF_RE = /:ref\{([^}]*)\}/g;
323
+ function nextBraced(text, open, from) {
324
+ const index = text.indexOf(open, from);
325
+ if (index < 0)
326
+ return null;
327
+ const close = text.indexOf('}', index + open.length);
328
+ return close < 0 ? null : { index, end: close + 1, body: text.slice(index + open.length, close) };
329
+ }
193
330
  /** A pandoc-crossref reference (#262): `@sec:intro`, `[@fig:map]`, and
194
331
  * `[-@tbl:x]` for the bare number; a capital (`@Sec:intro`) capitalises
195
332
  * the label. The `@` follows no letter, digit or backslash (an e-mail
@@ -251,10 +388,8 @@ export function extractInlineRefs(text, fallbackStart) {
251
388
  if (!text.includes(':ref{') && !text.includes('@') && !text.includes('ref{'))
252
389
  return { cleaned: text, refs: [] };
253
390
  const found = [];
254
- INLINE_REF_RE.lastIndex = 0;
255
- let m;
256
- while ((m = INLINE_REF_RE.exec(text)) !== null) {
257
- const attrs = parseDirectiveAttrs(m[1]);
391
+ for (let r = nextBraced(text, ':ref{', 0); r; r = nextBraced(text, ':ref{', r.end)) {
392
+ const attrs = parseDirectiveAttrs(r.body);
258
393
  const id = attrs.id;
259
394
  // Malformed (no id): keep the literal text so the author sees it.
260
395
  if (id === undefined || id.length === 0)
@@ -273,8 +408,9 @@ export function extractInlineRefs(text, fallbackStart) {
273
408
  if (attrs.case !== undefined && REF_CASES.has(attrs.case)) {
274
409
  meta.case = attrs.case;
275
410
  }
276
- found.push({ index: m.index, length: m[0].length, meta });
411
+ found.push({ index: r.index, length: r.end - r.index, meta });
277
412
  }
413
+ let m;
278
414
  if (text.includes('@')) {
279
415
  CROSSREF_RE.lastIndex = 0;
280
416
  while ((m = CROSSREF_RE.exec(text)) !== null) {
@@ -319,22 +455,19 @@ export function extractInlineRefs(text, fallbackStart) {
319
455
  out += text.slice(last);
320
456
  return { cleaned: out, refs };
321
457
  }
322
- /** `:swatch{…}` — same attribute grammar as `:ref{…}`. A swatch without a
323
- * `color` is not a swatch (left as text). */
324
- const INLINE_SWATCH_RE = /:swatch\{([^}]*)\}/g;
325
458
  /**
326
459
  * Extract inline `:swatch{…}` colour swatches from a line's text, replacing
327
460
  * each by `SWATCH_PLACEHOLDER` and returning the swatch metadata in order.
461
+ * `:swatch{…}` takes the same attribute grammar as `:ref{…}`; a swatch
462
+ * without a `color` is not a swatch (left as text).
328
463
  * Runs right after {@link extractInlineRefs} on its cleaned text.
329
464
  */
330
465
  export function extractInlineSwatches(text, fallbackStart) {
331
466
  const swatches = [];
332
467
  let out = '';
333
468
  let last = 0;
334
- INLINE_SWATCH_RE.lastIndex = 0;
335
- let m;
336
- while ((m = INLINE_SWATCH_RE.exec(text)) !== null) {
337
- const attrs = parseDirectiveAttrs(m[1]);
469
+ for (let m = nextBraced(text, ':swatch{', 0); m; m = nextBraced(text, ':swatch{', m.end)) {
470
+ const attrs = parseDirectiveAttrs(m.body);
338
471
  const color = attrs.color?.trim();
339
472
  if (color === undefined || color.length === 0)
340
473
  continue;
@@ -342,10 +475,10 @@ export function extractInlineSwatches(text, fallbackStart) {
342
475
  swatches.push({
343
476
  color,
344
477
  sourceStart: fallbackStart + m.index,
345
- sourceEnd: fallbackStart + m.index + m[0].length,
478
+ sourceEnd: fallbackStart + m.end,
346
479
  });
347
480
  out += SWATCH_PLACEHOLDER;
348
- last = m.index + m[0].length;
481
+ last = m.end;
349
482
  }
350
483
  out += text.slice(last);
351
484
  return { cleaned: out, swatches };
@@ -398,12 +531,13 @@ export function injectTabSpans(spans, tabs) {
398
531
  tab: { ...(meta.literal ? { literal: true } : {}), ...(meta.count ? { count: meta.count } : {}), ...(meta.stop ? { stop: meta.stop } : {}) },
399
532
  }));
400
533
  }
401
- /** `:chip[text]` with an optional `{attrs}` right after the bracket. The
402
- * text is one line, may not be empty (`:chip[]` stays literal text) and
403
- * takes `\]` for a literal bracket. Text of spaces alone (NBSP included)
404
- * makes an empty chip: a blank box as wide as its style's padding. */
405
- const INLINE_CHIP_RE = /:chip\[((?:\\.|[^\]\\\n])+)\](?:\{([^}\n]*)\})?/g;
406
534
  /**
535
+ * `:chip[text]` with an optional `{attrs}` right after the bracket
536
+ * (`/:chip\[((?:\\.|[^\]\\\n])+)\](?:\{([^}\n]*)\})?/g`). The text is
537
+ * one line, may not be empty (`:chip[]` stays literal text) and takes `\]`
538
+ * for a literal bracket. Text of spaces alone (NBSP included) makes an empty
539
+ * chip: a blank box as wide as its style's padding.
540
+ *
407
541
  * Extract inline `:chip[…]` chips from a line's text, replacing each by
408
542
  * `CHIP_PLACEHOLDER` and returning the chip metadata in order. Runs first,
409
543
  * before {@link extractInlineRefs}, so the chip text (which may hold marks
@@ -413,20 +547,43 @@ export function extractInlineChips(text, fallbackStart) {
413
547
  const chips = [];
414
548
  let out = '';
415
549
  let last = 0;
416
- INLINE_CHIP_RE.lastIndex = 0;
417
- let m;
418
- while ((m = INLINE_CHIP_RE.exec(text)) !== null) {
419
- const inner = m[1].replace(/\\([\[\]])/g, '$1').replace(/\s+/g, ' ').trim();
420
- const style = m[2] !== undefined ? parseDirectiveAttrs(m[2]).style?.trim() : undefined;
421
- out += text.slice(last, m.index);
550
+ // Read as the expression above reads it, in one pass: an opening whose text
551
+ // does not close skips to where that text stopped (a later opening inside
552
+ // it stops there too), and the search for an attributes' `}` resumes
553
+ // where the last one stopped.
554
+ let stop = -1;
555
+ for (let index = text.indexOf(':chip['); index >= 0;) {
556
+ const from = index + 6;
557
+ const read = bracketTextEnd(text, from);
558
+ if (!read.closed || read.at === from) {
559
+ index = text.indexOf(':chip[', Math.max(read.at, index + 1));
560
+ continue;
561
+ }
562
+ let end = read.at + 1;
563
+ let attrs;
564
+ if (text[end] === '{') {
565
+ if (stop < end + 1) {
566
+ stop = end + 1;
567
+ while (stop < text.length && text[stop] !== '}' && text[stop] !== '\n')
568
+ stop++;
569
+ }
570
+ if (text[stop] === '}') {
571
+ attrs = text.slice(end + 1, stop);
572
+ end = stop + 1;
573
+ }
574
+ }
575
+ const inner = text.slice(from, read.at).replace(/\\([\[\]])/g, '$1').replace(/\s+/g, ' ').trim();
576
+ const style = attrs !== undefined ? parseDirectiveAttrs(attrs).style?.trim() : undefined;
577
+ out += text.slice(last, index);
422
578
  chips.push({
423
579
  text: inner,
424
580
  ...(style ? { style } : {}),
425
- sourceStart: fallbackStart + m.index,
426
- sourceEnd: fallbackStart + m.index + m[0].length,
581
+ sourceStart: fallbackStart + index,
582
+ sourceEnd: fallbackStart + end,
427
583
  });
428
584
  out += CHIP_PLACEHOLDER;
429
- last = m.index + m[0].length;
585
+ last = end;
586
+ index = text.indexOf(':chip[', end);
430
587
  }
431
588
  out += text.slice(last);
432
589
  return { cleaned: out, chips };
@@ -865,22 +1022,31 @@ function replaceLinkSyntax(text, image, replace) {
865
1022
  * {@link replaceLinkSyntax} reads it. */
866
1023
  function linkDestinationRanges(text) {
867
1024
  const out = [];
868
- const start = /\[[^\]]*\]\(/g;
869
- let m;
870
- while ((m = start.exec(text)) !== null) {
871
- const from = m.index + m[0].length;
1025
+ // Each `[…](` as `/\[[^\]]*\]\(/g` finds it, in one pass: every `[`
1026
+ // before a `]` that no `(` follows fails at that same `]`.
1027
+ let pos = 0;
1028
+ for (let open = text.indexOf('['); open >= 0; open = text.indexOf('[', pos)) {
1029
+ const close = text.indexOf(']', open + 1);
1030
+ if (close < 0)
1031
+ break;
1032
+ pos = close + 1;
1033
+ if (text[close + 1] !== '(')
1034
+ continue;
1035
+ const from = close + 2;
872
1036
  const end = destinationEnd(text, from);
1037
+ pos = from;
873
1038
  if (end > from + 1) {
874
1039
  out.push([from, end]);
875
- start.lastIndex = end;
1040
+ pos = end;
876
1041
  }
877
1042
  }
878
1043
  return out;
879
1044
  }
880
- /** The `{…}` attributes of an inline directive — `:ref{…}`, `:swatch{…}`,
881
- * a chip's `:chip[…]{…}`, an annotation's `:ruby[…]{…}` — in group 1:
882
- * data, never text to break. */
883
- const DIRECTIVE_ATTRS_RE = /(?::ref|:swatch|:(?:chip|dots|name|book|ruby|warichu|ltr|rtl|sideline|kunten)\[(?:\\.|[^\]\\\n])+\])(\{[^}\n]*\})/g;
1045
+ /** The inline directives whose `{…}` attributes are data, never text to
1046
+ * break: `:ref{…}`, `:swatch{…}`, a chip's `:chip[…]{…}`, an annotation's
1047
+ * `:ruby[…]{…}` (read by {@link directiveAttrRanges}). */
1048
+ const DIRECTIVE_BRACED = ['ref', 'swatch'];
1049
+ const DIRECTIVE_BRACKETED = ['chip', 'dots', 'name', 'book', 'ruby', 'warichu', 'ltr', 'rtl', 'sideline', 'kunten'];
884
1050
  /**
885
1051
  * Turn the forced line breaks of a resource snippet ({@link SNIPPET_BREAK_RE})
886
1052
  * into {@link BREAK_PLACEHOLDER}. A `\\` inside a link destination belongs
@@ -892,10 +1058,15 @@ export function replaceSnippetBreaks(text) {
892
1058
  if (!text.includes('\\'))
893
1059
  return text;
894
1060
  const kept = dataRanges(text);
895
- return text.replace(SNIPPET_BREAK_RE, (match, offset) => {
896
- const at = offset + match.indexOf('\\');
897
- return kept.some(([s, e]) => at >= s && at < e) ? match : BREAK_PLACEHOLDER;
898
- });
1061
+ let out = '';
1062
+ let pos = 0;
1063
+ for (let m = nextSnippetBreak(text, 0); m; m = nextSnippetBreak(text, pos)) {
1064
+ const [start, end] = m;
1065
+ const at = text.indexOf('\\', start);
1066
+ out += text.slice(pos, start) + (kept.some(([s, e]) => at >= s && at < e) ? text.slice(start, end) : BREAK_PLACEHOLDER);
1067
+ pos = end;
1068
+ }
1069
+ return out + text.slice(pos);
899
1070
  }
900
1071
  /** A forced line break in body text (#620): `\\` before a space or the end
901
1072
  * of a line, or a backslash that ends a source line, with the spaces
@@ -948,12 +1119,8 @@ export function bodyBreakSpans(spans) {
948
1119
  function dataRanges(text) {
949
1120
  const kept = text.includes('](') ? linkDestinationRanges(text) : [];
950
1121
  if (text.includes('{')) {
951
- DIRECTIVE_ATTRS_RE.lastIndex = 0;
952
- let m;
953
- while ((m = DIRECTIVE_ATTRS_RE.exec(text)) !== null) {
954
- const end = m.index + m[0].length;
955
- kept.push([end - m[1].length, end]);
956
- }
1122
+ for (const [start, end] of directiveAttrRanges(text, DIRECTIVE_BRACED, DIRECTIVE_BRACKETED))
1123
+ kept.push([start - 1, end + 1]);
957
1124
  }
958
1125
  return kept;
959
1126
  }