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.
- package/dist/__tests__/linearScans.test.d.ts +2 -0
- package/dist/__tests__/linearScans.test.d.ts.map +1 -0
- package/dist/__tests__/linearScans.test.js +112 -0
- package/dist/__tests__/linearScans.test.js.map +1 -0
- package/dist/__tests__/pipeline/refLabelBreaks.test.js +1 -1
- package/dist/__tests__/pipeline/refLabelBreaks.test.js.map +1 -1
- package/dist/__tests__/svgFonts.test.js +1 -1
- package/dist/__tests__/svgFonts.test.js.map +1 -1
- package/dist/bundle/api.d.ts.map +1 -1
- package/dist/bundle/api.js +51 -5
- package/dist/bundle/api.js.map +1 -1
- package/dist/bundle/configVersion.d.ts.map +1 -1
- package/dist/bundle/configVersion.js +12 -4
- package/dist/bundle/configVersion.js.map +1 -1
- package/dist/bundle/manifest.d.ts.map +1 -1
- package/dist/bundle/manifest.js +15 -1
- package/dist/bundle/manifest.js.map +1 -1
- package/dist/canvas-backend/blockRender.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.js +2 -1
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/verticalText.d.ts.map +1 -1
- package/dist/canvas-backend/verticalText.js +8 -3
- package/dist/canvas-backend/verticalText.js.map +1 -1
- package/dist/citations/bibtex.d.ts.map +1 -1
- package/dist/citations/bibtex.js +31 -10
- package/dist/citations/bibtex.js.map +1 -1
- package/dist/code/highlight.js +62 -12
- package/dist/code/highlight.js.map +1 -1
- package/dist/comics/layoutPage.d.ts.map +1 -1
- package/dist/comics/layoutPage.js +2 -1
- package/dist/comics/layoutPage.js.map +1 -1
- package/dist/comics/page.js +1 -1
- package/dist/comics/paint.d.ts.map +1 -1
- package/dist/comics/paint.js +3 -1
- package/dist/comics/paint.js.map +1 -1
- package/dist/comics/script.d.ts.map +1 -1
- package/dist/comics/script.js +5 -2
- package/dist/comics/script.js.map +1 -1
- package/dist/comics/split.d.ts.map +1 -1
- package/dist/comics/split.js +3 -1
- package/dist/comics/split.js.map +1 -1
- package/dist/comics/strip.d.ts.map +1 -1
- package/dist/comics/strip.js +3 -2
- package/dist/comics/strip.js.map +1 -1
- package/dist/contrast.js +3 -3
- package/dist/contrast.js.map +1 -1
- package/dist/design/layout.js +2 -2
- package/dist/design/layout.js.map +1 -1
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +9 -9
- package/dist/frontmatter.js.map +1 -1
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +55 -4
- package/dist/html-backend.js.map +1 -1
- package/dist/looseLines.d.ts.map +1 -1
- package/dist/looseLines.js +2 -2
- package/dist/looseLines.js.map +1 -1
- package/dist/measure/breakRules.d.ts.map +1 -1
- package/dist/measure/breakRules.js +3 -2
- package/dist/measure/breakRules.js.map +1 -1
- package/dist/measure/cjkAnnotate.d.ts.map +1 -1
- package/dist/measure/cjkAnnotate.js +3 -2
- package/dist/measure/cjkAnnotate.js.map +1 -1
- package/dist/measure/cjkCompose.d.ts.map +1 -1
- package/dist/measure/cjkCompose.js +5 -5
- package/dist/measure/cjkCompose.js.map +1 -1
- package/dist/measure/font.d.ts.map +1 -1
- package/dist/measure/font.js +2 -1
- package/dist/measure/font.js.map +1 -1
- package/dist/measure/fontString.d.ts +29 -0
- package/dist/measure/fontString.d.ts.map +1 -1
- package/dist/measure/fontString.js +156 -7
- package/dist/measure/fontString.js.map +1 -1
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +12 -14
- package/dist/measure/rich.js.map +1 -1
- package/dist/measure/vertical.d.ts.map +1 -1
- package/dist/measure/vertical.js +5 -5
- package/dist/measure/vertical.js.map +1 -1
- package/dist/parse/citations.d.ts.map +1 -1
- package/dist/parse/citations.js +5 -1
- package/dist/parse/citations.js.map +1 -1
- package/dist/parse/equationLabels.d.ts +11 -3
- package/dist/parse/equationLabels.d.ts.map +1 -1
- package/dist/parse/equationLabels.js +26 -17
- package/dist/parse/equationLabels.js.map +1 -1
- package/dist/parse/inlineFormatting.d.ts +26 -0
- package/dist/parse/inlineFormatting.d.ts.map +1 -1
- package/dist/parse/inlineFormatting.js +216 -49
- package/dist/parse/inlineFormatting.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +4 -5
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/crossRefs.d.ts.map +1 -1
- package/dist/pipeline/crossRefs.js +9 -1
- package/dist/pipeline/crossRefs.js.map +1 -1
- package/dist/pipeline/headerFooter.js +3 -3
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/parts.d.ts.map +1 -1
- package/dist/pipeline/parts.js +13 -1
- package/dist/pipeline/parts.js.map +1 -1
- package/dist/pipeline/placeholders.js +4 -4
- package/dist/pipeline/placeholders.js.map +1 -1
- package/dist/pipeline/statementNumbering.d.ts.map +1 -1
- package/dist/pipeline/statementNumbering.js +6 -13
- package/dist/pipeline/statementNumbering.js.map +1 -1
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js +3 -2
- package/dist/preflight.js.map +1 -1
- package/dist/table/model.d.ts.map +1 -1
- package/dist/table/model.js +13 -3
- package/dist/table/model.js.map +1 -1
- package/dist/word/inline.d.ts.map +1 -1
- package/dist/word/inline.js +26 -4
- package/dist/word/inline.js.map +1 -1
- package/dist/word/template.d.ts.map +1 -1
- package/dist/word/template.js +61 -4
- package/dist/word/template.js.map +1 -1
- package/dist/word/toDocx.d.ts.map +1 -1
- package/dist/word/toDocx.js +54 -1
- package/dist/word/toDocx.js.map +1 -1
- 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`
|
|
3
|
-
* (#530). */
|
|
4
|
-
export
|
|
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;
|
|
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{…}`
|
|
2
|
-
* (
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
27
|
-
|
|
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
|
|
33
|
-
sourceStart: b.sourceStart + m.
|
|
34
|
-
sourceEnd: b.sourceStart + m.
|
|
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":"
|
|
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;
|
|
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
|
-
/**
|
|
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
|
-
|
|
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
|
-
|
|
255
|
-
|
|
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:
|
|
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
|
-
|
|
335
|
-
|
|
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.
|
|
478
|
+
sourceEnd: fallbackStart + m.end,
|
|
346
479
|
});
|
|
347
480
|
out += SWATCH_PLACEHOLDER;
|
|
348
|
-
last = m.
|
|
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
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
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 +
|
|
426
|
-
sourceEnd: fallbackStart +
|
|
581
|
+
sourceStart: fallbackStart + index,
|
|
582
|
+
sourceEnd: fallbackStart + end,
|
|
427
583
|
});
|
|
428
584
|
out += CHIP_PLACEHOLDER;
|
|
429
|
-
last =
|
|
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
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
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
|
-
|
|
1040
|
+
pos = end;
|
|
876
1041
|
}
|
|
877
1042
|
}
|
|
878
1043
|
return out;
|
|
879
1044
|
}
|
|
880
|
-
/** The `{…}` attributes
|
|
881
|
-
* a chip's `:chip[…]{…}`, an annotation's
|
|
882
|
-
*
|
|
883
|
-
const
|
|
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
|
-
|
|
896
|
-
|
|
897
|
-
|
|
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
|
-
|
|
952
|
-
|
|
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
|
}
|