postext 1.22.2 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/bundle.test.js +1 -1
- package/dist/__tests__/codeBlocks.test.d.ts +2 -0
- package/dist/__tests__/codeBlocks.test.d.ts.map +1 -0
- package/dist/__tests__/codeBlocks.test.js +550 -0
- package/dist/__tests__/codeBlocks.test.js.map +1 -0
- package/dist/__tests__/exports.test.js +19 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/hardBreaks.test.d.ts +2 -0
- package/dist/__tests__/hardBreaks.test.d.ts.map +1 -0
- package/dist/__tests__/hardBreaks.test.js +226 -0
- package/dist/__tests__/hardBreaks.test.js.map +1 -0
- package/dist/__tests__/headingInlineMarks.test.js +1 -1
- package/dist/__tests__/headingLetterSpacing.test.js +1 -1
- package/dist/__tests__/headingLetterSpacing.test.js.map +1 -1
- package/dist/__tests__/lineNumbers.test.d.ts +2 -0
- package/dist/__tests__/lineNumbers.test.d.ts.map +1 -0
- package/dist/__tests__/lineNumbers.test.js +304 -0
- package/dist/__tests__/lineNumbers.test.js.map +1 -0
- package/dist/__tests__/mathSizeMigration.test.js +2 -2
- package/dist/__tests__/paragraphDropCap.test.d.ts +2 -0
- package/dist/__tests__/paragraphDropCap.test.d.ts.map +1 -0
- package/dist/__tests__/paragraphDropCap.test.js +442 -0
- package/dist/__tests__/paragraphDropCap.test.js.map +1 -0
- package/dist/__tests__/paragraphStyleIndent.test.js +26 -2
- package/dist/__tests__/paragraphStyleIndent.test.js.map +1 -1
- package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +1 -1
- package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +1 -1
- package/dist/__tests__/pipeline/colonListRoom.test.js +1 -1
- package/dist/__tests__/pipeline/compoundBreaks.test.js +1 -1
- package/dist/__tests__/pipeline/dashBreaks.test.js +1 -1
- package/dist/__tests__/pipeline/headingSplitOrphans.test.js +1 -1
- package/dist/__tests__/pipeline/inlineFigureSpace.test.js +1 -1
- package/dist/__tests__/pipeline/paragraphContainerTail.test.js +1 -1
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.js +7 -1
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.js.map +1 -1
- package/dist/__tests__/pipeline/raggedOptimal.test.js +1 -1
- package/dist/__tests__/tabStops.test.d.ts +2 -0
- package/dist/__tests__/tabStops.test.d.ts.map +1 -0
- package/dist/__tests__/tabStops.test.js +394 -0
- package/dist/__tests__/tabStops.test.js.map +1 -0
- package/dist/__tests__/verseLines.test.d.ts +2 -0
- package/dist/__tests__/verseLines.test.d.ts.map +1 -0
- package/dist/__tests__/verseLines.test.js +375 -0
- package/dist/__tests__/verseLines.test.js.map +1 -0
- package/dist/bundle/configVersion.d.ts +77 -7
- package/dist/bundle/configVersion.d.ts.map +1 -1
- package/dist/bundle/configVersion.js +239 -5
- package/dist/bundle/configVersion.js.map +1 -1
- package/dist/bundle/index.d.ts +1 -1
- package/dist/bundle/index.d.ts.map +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/index.js.map +1 -1
- package/dist/canvas-backend/blockRender.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.js +39 -5
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +3 -0
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/cjkMarks.js +1 -1
- package/dist/cjkMarks.js.map +1 -1
- package/dist/code/highlight.d.ts +34 -0
- package/dist/code/highlight.d.ts.map +1 -0
- package/dist/code/highlight.js +406 -0
- package/dist/code/highlight.js.map +1 -0
- package/dist/configWarnings.d.ts.map +1 -1
- package/dist/configWarnings.js +192 -3
- package/dist/configWarnings.js.map +1 -1
- package/dist/defaults/bodyText.d.ts.map +1 -1
- package/dist/defaults/bodyText.js +25 -0
- package/dist/defaults/bodyText.js.map +1 -1
- package/dist/defaults/calloutStyles.d.ts.map +1 -1
- package/dist/defaults/calloutStyles.js +7 -0
- package/dist/defaults/calloutStyles.js.map +1 -1
- package/dist/defaults/codeStyle.d.ts +29 -0
- package/dist/defaults/codeStyle.d.ts.map +1 -0
- package/dist/defaults/codeStyle.js +284 -0
- package/dist/defaults/codeStyle.js.map +1 -0
- package/dist/defaults/dropCap.d.ts +49 -0
- package/dist/defaults/dropCap.d.ts.map +1 -0
- package/dist/defaults/dropCap.js +66 -0
- package/dist/defaults/dropCap.js.map +1 -0
- package/dist/defaults/headings.d.ts +1 -1
- package/dist/defaults/headings.d.ts.map +1 -1
- package/dist/defaults/headings.js +11 -0
- package/dist/defaults/headings.js.map +1 -1
- package/dist/defaults/index.d.ts +3 -0
- package/dist/defaults/index.d.ts.map +1 -1
- package/dist/defaults/index.js +19 -0
- package/dist/defaults/index.js.map +1 -1
- package/dist/defaults/lineNumbers.d.ts +19 -0
- package/dist/defaults/lineNumbers.d.ts.map +1 -0
- package/dist/defaults/lineNumbers.js +101 -0
- package/dist/defaults/lineNumbers.js.map +1 -0
- package/dist/defaults/paragraphStyles.d.ts.map +1 -1
- package/dist/defaults/paragraphStyles.js +20 -0
- package/dist/defaults/paragraphStyles.js.map +1 -1
- package/dist/defaults/tabStops.d.ts +29 -0
- package/dist/defaults/tabStops.d.ts.map +1 -0
- package/dist/defaults/tabStops.js +94 -0
- package/dist/defaults/tabStops.js.map +1 -0
- package/dist/defaults/verse.d.ts +10 -0
- package/dist/defaults/verse.d.ts.map +1 -0
- package/dist/defaults/verse.js +52 -0
- package/dist/defaults/verse.js.map +1 -0
- package/dist/fonts/usage.d.ts +7 -0
- package/dist/fonts/usage.d.ts.map +1 -1
- package/dist/fonts/usage.js +71 -0
- package/dist/fonts/usage.js.map +1 -1
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +85 -11
- package/dist/html-backend.js.map +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/measure/bidiLines.js +2 -2
- package/dist/measure/bidiLines.js.map +1 -1
- package/dist/measure/cache.js +2 -2
- package/dist/measure/cache.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/hardBreaks.d.ts +46 -0
- package/dist/measure/hardBreaks.d.ts.map +1 -0
- package/dist/measure/hardBreaks.js +216 -0
- package/dist/measure/hardBreaks.js.map +1 -0
- package/dist/measure/index.d.ts +1 -0
- package/dist/measure/index.d.ts.map +1 -1
- package/dist/measure/index.js +1 -0
- package/dist/measure/index.js.map +1 -1
- package/dist/measure/leader.d.ts +20 -0
- package/dist/measure/leader.d.ts.map +1 -0
- package/dist/measure/leader.js +46 -0
- package/dist/measure/leader.js.map +1 -0
- package/dist/measure/links.js +1 -1
- package/dist/measure/links.js.map +1 -1
- package/dist/measure/plain.d.ts.map +1 -1
- package/dist/measure/plain.js +18 -25
- package/dist/measure/plain.js.map +1 -1
- package/dist/measure/rich.d.ts +19 -0
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +211 -38
- package/dist/measure/rich.js.map +1 -1
- package/dist/measure/tabs.d.ts +103 -0
- package/dist/measure/tabs.d.ts.map +1 -0
- package/dist/measure/tabs.js +123 -0
- package/dist/measure/tabs.js.map +1 -0
- package/dist/measure/types.d.ts +26 -2
- package/dist/measure/types.d.ts.map +1 -1
- package/dist/measure/types.js +23 -3
- package/dist/measure/types.js.map +1 -1
- package/dist/parse/blockParser.d.ts +13 -6
- package/dist/parse/blockParser.d.ts.map +1 -1
- package/dist/parse/blockParser.js +457 -87
- package/dist/parse/blockParser.js.map +1 -1
- package/dist/parse/codeFence.d.ts +18 -0
- package/dist/parse/codeFence.d.ts.map +1 -0
- package/dist/parse/codeFence.js +52 -0
- package/dist/parse/codeFence.js.map +1 -0
- package/dist/parse/index.d.ts +1 -1
- package/dist/parse/index.d.ts.map +1 -1
- package/dist/parse/index.js.map +1 -1
- package/dist/parse/indexMarks.d.ts +3 -1
- package/dist/parse/indexMarks.d.ts.map +1 -1
- package/dist/parse/indexMarks.js +22 -2
- package/dist/parse/indexMarks.js.map +1 -1
- package/dist/parse/inlineFormatting.d.ts +50 -0
- package/dist/parse/inlineFormatting.d.ts.map +1 -1
- package/dist/parse/inlineFormatting.js +94 -0
- package/dist/parse/inlineFormatting.js.map +1 -1
- package/dist/parse/sourceMapping.d.ts.map +1 -1
- package/dist/parse/sourceMapping.js +65 -1
- package/dist/parse/sourceMapping.js.map +1 -1
- package/dist/parse/types.d.ts +144 -9
- package/dist/parse/types.d.ts.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +143 -18
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/buildBlockKind.d.ts.map +1 -1
- package/dist/pipeline/buildBlockKind.js +60 -1
- package/dist/pipeline/buildBlockKind.js.map +1 -1
- package/dist/pipeline/buildHelpers.d.ts +3 -0
- package/dist/pipeline/buildHelpers.d.ts.map +1 -1
- package/dist/pipeline/buildHelpers.js +7 -2
- package/dist/pipeline/buildHelpers.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +33 -2
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/chips.d.ts.map +1 -1
- package/dist/pipeline/chips.js +4 -0
- package/dist/pipeline/chips.js.map +1 -1
- package/dist/pipeline/codeBlocks.d.ts +38 -0
- package/dist/pipeline/codeBlocks.d.ts.map +1 -0
- package/dist/pipeline/codeBlocks.js +146 -0
- package/dist/pipeline/codeBlocks.js.map +1 -0
- package/dist/pipeline/codeInline.d.ts +22 -0
- package/dist/pipeline/codeInline.d.ts.map +1 -0
- package/dist/pipeline/codeInline.js +93 -0
- package/dist/pipeline/codeInline.js.map +1 -0
- package/dist/pipeline/codeLines.d.ts +91 -0
- package/dist/pipeline/codeLines.d.ts.map +1 -0
- package/dist/pipeline/codeLines.js +399 -0
- package/dist/pipeline/codeLines.js.map +1 -0
- package/dist/pipeline/config.d.ts.map +1 -1
- package/dist/pipeline/config.js +8 -1
- package/dist/pipeline/config.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts +9 -0
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +60 -2
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/continuation.d.ts.map +1 -1
- package/dist/pipeline/continuation.js +9 -2
- package/dist/pipeline/continuation.js.map +1 -1
- package/dist/pipeline/dropCap.d.ts +128 -0
- package/dist/pipeline/dropCap.d.ts.map +1 -0
- package/dist/pipeline/dropCap.js +412 -0
- package/dist/pipeline/dropCap.js.map +1 -0
- package/dist/pipeline/hardBreaks.d.ts +19 -0
- package/dist/pipeline/hardBreaks.d.ts.map +1 -0
- package/dist/pipeline/hardBreaks.js +36 -0
- package/dist/pipeline/hardBreaks.js.map +1 -0
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +4 -1
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/lineNumbers.d.ts +37 -0
- package/dist/pipeline/lineNumbers.d.ts.map +1 -0
- package/dist/pipeline/lineNumbers.js +441 -0
- package/dist/pipeline/lineNumbers.js.map +1 -0
- package/dist/pipeline/measureContentBlock.d.ts +31 -5
- package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
- package/dist/pipeline/measureContentBlock.js +274 -68
- package/dist/pipeline/measureContentBlock.js.map +1 -1
- package/dist/pipeline/partPalette.d.ts +1 -1
- package/dist/pipeline/partPalette.d.ts.map +1 -1
- package/dist/pipeline/partPalette.js +24 -2
- package/dist/pipeline/partPalette.js.map +1 -1
- package/dist/pipeline/styles.d.ts +18 -2
- package/dist/pipeline/styles.d.ts.map +1 -1
- package/dist/pipeline/styles.js +15 -3
- package/dist/pipeline/styles.js.map +1 -1
- package/dist/pipeline/tabs.d.ts +35 -0
- package/dist/pipeline/tabs.d.ts.map +1 -0
- package/dist/pipeline/tabs.js +99 -0
- package/dist/pipeline/tabs.js.map +1 -0
- package/dist/pipeline/toc.d.ts.map +1 -1
- package/dist/pipeline/toc.js +3 -38
- package/dist/pipeline/toc.js.map +1 -1
- package/dist/pipeline/verseLines.d.ts +78 -0
- package/dist/pipeline/verseLines.d.ts.map +1 -0
- package/dist/pipeline/verseLines.js +245 -0
- package/dist/pipeline/verseLines.js.map +1 -0
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js +1 -0
- package/dist/preflight.js.map +1 -1
- package/dist/types.d.ts +560 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +240 -7
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js +6 -0
- package/dist/vdt.js.map +1 -1
- package/dist/word/docxRead.d.ts.map +1 -1
- package/dist/word/docxRead.js +15 -0
- package/dist/word/docxRead.js.map +1 -1
- package/dist/word/inline.d.ts +6 -1
- package/dist/word/inline.d.ts.map +1 -1
- package/dist/word/inline.js +35 -1
- package/dist/word/inline.js.map +1 -1
- package/dist/word/model.d.ts +14 -0
- package/dist/word/model.d.ts.map +1 -1
- package/dist/word/model.js.map +1 -1
- package/dist/word/template.d.ts +12 -3
- package/dist/word/template.d.ts.map +1 -1
- package/dist/word/template.js +13 -3
- package/dist/word/template.js.map +1 -1
- package/dist/word/toDocx.d.ts.map +1 -1
- package/dist/word/toDocx.js +52 -8
- package/dist/word/toDocx.js.map +1 -1
- package/dist/word/toMarkdown.d.ts +5 -1
- package/dist/word/toMarkdown.d.ts.map +1 -1
- package/dist/word/toMarkdown.js +117 -6
- package/dist/word/toMarkdown.js.map +1 -1
- package/dist/word/word.test.js +124 -2
- package/dist/word/word.test.js.map +1 -1
- package/dist/worker/fonts.d.ts +2 -1
- package/dist/worker/fonts.d.ts.map +1 -1
- package/dist/worker/fonts.js +6 -2
- package/dist/worker/fonts.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { parseMarkdown } from '../parse';
|
|
3
|
+
import { buildDocument } from '../pipeline';
|
|
4
|
+
import { renderToHtml } from '../html-backend';
|
|
5
|
+
import { CONFIG_VERSION, migrateConfig, migrateBundleConfig, pinLegacyPairedIndents, pinLegacyVerseLayout } from '../bundle/configVersion';
|
|
6
|
+
import { resolveVerseConfig, stripVerseDefaults, DEFAULT_VERSE_CONFIG } from '../defaults/verse';
|
|
7
|
+
import { stripBodyTextDefaults } from '../defaults/bodyText';
|
|
8
|
+
// #620: verse line by line — kept line breaks, indents, stanzas and
|
|
9
|
+
// hanging turnovers. The stub font: 7 px a character, a space 4 px.
|
|
10
|
+
class StubCtx {
|
|
11
|
+
font = '';
|
|
12
|
+
measureText(s) {
|
|
13
|
+
let w = 0;
|
|
14
|
+
for (const c of s)
|
|
15
|
+
w += c === ' ' ? 4 : 7;
|
|
16
|
+
return { width: w };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
globalThis.OffscreenCanvas = class {
|
|
20
|
+
getContext() {
|
|
21
|
+
return new StubCtx();
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const pt = (value) => ({ value, unit: 'pt' });
|
|
25
|
+
const em = (value) => ({ value, unit: 'em' });
|
|
26
|
+
// 72 dpi, a 20 pt body on 30 pt leading, a 360 pt measure from x = 20.
|
|
27
|
+
const config = (extra = {}, width = 400, height = 600) => ({
|
|
28
|
+
page: { dpi: 72, width: pt(width), height: pt(height), margins: { top: pt(20), bottom: pt(20), left: pt(20), right: pt(20) } },
|
|
29
|
+
layout: { layoutType: 'single' },
|
|
30
|
+
header: { elements: [] },
|
|
31
|
+
footer: { elements: [] },
|
|
32
|
+
...extra,
|
|
33
|
+
bodyText: { fontSize: pt(20), lineHeight: { value: 1.5, unit: 'em' }, firstLineIndent: pt(0), hyphenation: { enabled: false }, ...extra.bodyText },
|
|
34
|
+
});
|
|
35
|
+
const verseLines = (doc) => doc.blocks.flatMap((b) => b.lines.filter((l) => l.verseLine));
|
|
36
|
+
const stanzaBlocks = (doc) => doc.blocks.filter((b) => b.lines.some((l) => l.verseLine));
|
|
37
|
+
const pageOf = (doc, line) => doc.pages.findIndex((p) => p.columns.some((c) => c.blocks.some((b) => b.lines.includes(line))));
|
|
38
|
+
const POEM = [
|
|
39
|
+
'Before the poem.',
|
|
40
|
+
'',
|
|
41
|
+
':::verse{align=start}',
|
|
42
|
+
'Whose woods these are I think I know.',
|
|
43
|
+
' His house is in the village though;',
|
|
44
|
+
'',
|
|
45
|
+
'',
|
|
46
|
+
'He will not see me *stopping* here',
|
|
47
|
+
'\tTo watch his woods fill up with snow.',
|
|
48
|
+
':::',
|
|
49
|
+
'',
|
|
50
|
+
'After the poem.',
|
|
51
|
+
].join('\n');
|
|
52
|
+
describe(':::verse line by line: the markup', () => {
|
|
53
|
+
const blocks = parseMarkdown(POEM);
|
|
54
|
+
const stanzas = blocks.filter((b) => b.verse);
|
|
55
|
+
it('reads a stanza a block, a line of verse a line, the indent out of the text', () => {
|
|
56
|
+
expect(stanzas.map((b) => b.text)).toEqual([
|
|
57
|
+
'Whose woods these are I think I know.\nHis house is in the village though;',
|
|
58
|
+
'He will not see me stopping here\nTo watch his woods fill up with snow.',
|
|
59
|
+
]);
|
|
60
|
+
expect(stanzas.map((b) => b.verse.stanza.lines.map((l) => l.indent))).toEqual([[0, 2], [0, 4]]);
|
|
61
|
+
expect(stanzas.map((b) => [b.verse.stanza.index, b.verse.stanza.last, b.verse.stanza.firstLine])).toEqual([[0, false, 0], [1, true, 2]]);
|
|
62
|
+
expect(stanzas.every((b) => b.verse.stanza.poem === stanzas[0].verse.stanza.poem && b.verse.stanza.auto)).toBe(true);
|
|
63
|
+
expect(stanzas[1].spans.find((s) => s.italic)?.text).toBe('stopping');
|
|
64
|
+
expect(blocks.map((b) => b.text)).toEqual(['Before the poem.', stanzas[0].text, stanzas[1].text, 'After the poem.']);
|
|
65
|
+
});
|
|
66
|
+
it('maps every character to its source, a line feed to the line end, the first stanza from the fence and the last to its close', () => {
|
|
67
|
+
for (const b of stanzas) {
|
|
68
|
+
for (let i = 0; i < b.text.length; i++) {
|
|
69
|
+
const at = b.sourceMap[i];
|
|
70
|
+
expect(POEM[at], `${b.text[i]} at ${i}`).toBe(b.text[i]);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
expect(stanzas[0].sourceStart).toBe(POEM.indexOf(':::verse'));
|
|
74
|
+
expect(stanzas[1].sourceStart).toBe(POEM.indexOf('He will'));
|
|
75
|
+
expect(stanzas[0].sourceEnd).toBe(POEM.indexOf(' though;') + ' though;'.length);
|
|
76
|
+
expect(stanzas[1].sourceEnd).toBe(POEM.indexOf(':::\n\nAfter') + 3);
|
|
77
|
+
// The poem as written: a line feed between lines, two between stanzas.
|
|
78
|
+
expect(stanzas.map((b) => b.text).join('\n\n')).toBe('Whose woods these are I think I know.\nHis house is in the village though;\n\nHe will not see me stopping here\nTo watch his woods fill up with snow.');
|
|
79
|
+
});
|
|
80
|
+
it('keeps the bayt layout when a line carries a separator, and follows the fence', () => {
|
|
81
|
+
const bayts = parseMarkdown(':::verse\nOne line || its half\nA single line\n:::').filter((b) => b.verse);
|
|
82
|
+
expect(bayts).toHaveLength(1);
|
|
83
|
+
expect(bayts[0].verse.stanza).toBeUndefined();
|
|
84
|
+
expect(bayts[0].text).toBe('One line\tits half\nA single line');
|
|
85
|
+
const forced = parseMarkdown(':::verse{layout=bayt}\nA single line\n:::').filter((b) => b.verse);
|
|
86
|
+
expect(forced[0].verse.stanza).toBeUndefined();
|
|
87
|
+
const lines = parseMarkdown(':::verse{layout=lines}\nA || B\n:::').filter((b) => b.verse);
|
|
88
|
+
expect(lines[0].verse.stanza).toBeDefined();
|
|
89
|
+
expect(lines[0].verse.stanza.auto).toBeUndefined();
|
|
90
|
+
expect(lines[0].text).toBe('A || B');
|
|
91
|
+
});
|
|
92
|
+
it('reads a stepped line, an ideographic indent and a caesura kept with keepSpaces', () => {
|
|
93
|
+
const [st] = parseMarkdown(':::verse{keepSpaces}\nWho is there?\n+ Nay, answer me.\n Stand, and unfold\n:::').filter((b) => b.verse);
|
|
94
|
+
expect(st.verse.stanza.lines).toEqual([{ indent: 0 }, { indent: 0, stepped: true }, { indent: 4 }]);
|
|
95
|
+
expect(st.text).toBe('Who is there?\nNay, answer me.\nStand, and unfold');
|
|
96
|
+
const gap = st.spans.find((s) => s.fixedSpace);
|
|
97
|
+
expect(gap.text).toBe(' ');
|
|
98
|
+
// Without keepSpaces a run of spaces collapses.
|
|
99
|
+
const [plain] = parseMarkdown(':::verse\nStand, and unfold\n:::').filter((b) => b.verse);
|
|
100
|
+
expect(plain.text).toBe('Stand, and unfold');
|
|
101
|
+
});
|
|
102
|
+
it('drops an empty poem and runs an unclosed one to the end', () => {
|
|
103
|
+
expect(parseMarkdown(':::verse\n\n\n:::\n\nText.').map((b) => b.text)).toEqual(['Text.']);
|
|
104
|
+
const open = parseMarkdown(':::verse\nOne\n\nTwo');
|
|
105
|
+
expect(open.map((b) => b.text)).toEqual(['One', 'Two']);
|
|
106
|
+
expect(open[1].verse.stanza.last).toBe(true);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
describe(':::verse line by line: the layout', () => {
|
|
110
|
+
const doc = buildDocument({ markdown: POEM }, config());
|
|
111
|
+
const lines = verseLines(doc);
|
|
112
|
+
it('sets one line a line of verse, a stanza space at the blank lines', () => {
|
|
113
|
+
expect(lines.map((l) => l.text)).toEqual([
|
|
114
|
+
'Whose woods these are I think I know.',
|
|
115
|
+
'His house is in the village though;',
|
|
116
|
+
'He will not see me stopping here',
|
|
117
|
+
'To watch his woods fill up with snow.',
|
|
118
|
+
]);
|
|
119
|
+
expect(lines.map((l) => l.verseLine)).toEqual([
|
|
120
|
+
{ stanza: 0, line: 0, turnover: false },
|
|
121
|
+
{ stanza: 0, line: 1, turnover: false, indent: 20, stanzaEnd: true },
|
|
122
|
+
{ stanza: 1, line: 2, turnover: false },
|
|
123
|
+
{ stanza: 1, line: 3, turnover: false, indent: 40 },
|
|
124
|
+
]);
|
|
125
|
+
expect(lines[1].baseline - lines[0].baseline).toBeCloseTo(30, 6);
|
|
126
|
+
// One line of the poem's leading between the stanzas.
|
|
127
|
+
expect(lines[2].baseline - lines[1].baseline).toBeCloseTo(60, 6);
|
|
128
|
+
expect(stanzaBlocks(doc)).toHaveLength(2);
|
|
129
|
+
});
|
|
130
|
+
it('indents a line by its leading spaces: two spaces one em, a tab four spaces', () => {
|
|
131
|
+
expect(lines[0].bbox.x).toBeCloseTo(20, 6);
|
|
132
|
+
expect(lines[1].bbox.x - lines[0].bbox.x).toBeCloseTo(20, 6);
|
|
133
|
+
expect(lines[3].bbox.x - lines[2].bbox.x).toBeCloseTo(40, 6);
|
|
134
|
+
const step = verseLines(buildDocument({ markdown: POEM.replace('{align=start}', '{align=start indentStep=1em}') }, config()));
|
|
135
|
+
expect(step[1].bbox.x - step[0].bbox.x).toBeCloseTo(40, 6);
|
|
136
|
+
const cfg = verseLines(buildDocument({ markdown: POEM }, config({ bodyText: { verse: { indentStep: pt(5) } } })));
|
|
137
|
+
expect(cfg[1].bbox.x - cfg[0].bbox.x).toBeCloseTo(10, 6);
|
|
138
|
+
});
|
|
139
|
+
it('centres the poem on its longest line, every line flush with its start', () => {
|
|
140
|
+
const centred = verseLines(buildDocument({ markdown: POEM.replace('{align=start}', '') }, config()));
|
|
141
|
+
const right = Math.max(...centred.map((l) => l.bbox.x + l.bbox.width));
|
|
142
|
+
const left = Math.min(...centred.map((l) => l.bbox.x));
|
|
143
|
+
expect(left - 20).toBeCloseTo(380 - right, 6);
|
|
144
|
+
expect(centred[0].bbox.x).toBeCloseTo(centred[2].bbox.x, 6);
|
|
145
|
+
});
|
|
146
|
+
it('copies line by line: a newline after a line, a blank line between stanzas', () => {
|
|
147
|
+
const html = renderToHtml(doc);
|
|
148
|
+
const text = html.replace(/<[^>]+>/g, '').replace(/'/g, "'");
|
|
149
|
+
expect(text).toContain('I think I know.\nHis house is in the village though;\n\nHe will not see me stopping here\nTo watch');
|
|
150
|
+
});
|
|
151
|
+
it('maps each line to its source line', () => {
|
|
152
|
+
for (const line of lines) {
|
|
153
|
+
const source = POEM.slice(line.sourceStart, line.sourceEnd).replace(/^:::verse\{align=start\}\n/, '').replace(/\n:::$/, '');
|
|
154
|
+
expect(source.trim().replace(/\*/g, '')).toBe(line.text);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
it('sets a poem with no separator as single hemistichs under a configuration stored before #620', () => {
|
|
158
|
+
const legacy = buildDocument({ markdown: POEM }, config({ bodyText: { verse: { layout: 'bayt' } } }));
|
|
159
|
+
expect(verseLines(legacy)).toHaveLength(0);
|
|
160
|
+
const bayts = legacy.blocks.flatMap((b) => b.lines.filter((l) => l.verse));
|
|
161
|
+
expect(bayts).toHaveLength(4);
|
|
162
|
+
// Centred in the measure, no space between the stanzas, as 1.22 set it.
|
|
163
|
+
for (const l of bayts)
|
|
164
|
+
expect((l.bbox.x - 20) * 2 + l.bbox.width).toBeCloseTo(360, 6);
|
|
165
|
+
for (let i = 1; i < 4; i++)
|
|
166
|
+
expect(bayts[i].baseline - bayts[i - 1].baseline).toBeCloseTo(30, 6);
|
|
167
|
+
// A layout named on the fence is read as written.
|
|
168
|
+
expect(verseLines(buildDocument({ markdown: POEM.replace('{align=start}', '{layout=lines}') }, config({ bodyText: { verse: { layout: 'bayt' } } })))).toHaveLength(4);
|
|
169
|
+
});
|
|
170
|
+
it('takes a paragraph style: its face, leading, indent and margins', () => {
|
|
171
|
+
const cfg = config({ paragraphStyles: [{ id: 'poem', name: 'Poem', fontSize: pt(10), lineHeight: pt(20), indent: pt(30), marginTop: pt(15) }] });
|
|
172
|
+
const styled = buildDocument({ markdown: POEM.replace('{align=start}', '{style=poem align=start}') }, cfg);
|
|
173
|
+
const ls = verseLines(styled);
|
|
174
|
+
expect(ls[1].baseline - ls[0].baseline).toBeCloseTo(20, 6);
|
|
175
|
+
expect(ls[0].bbox.x).toBeCloseTo(50, 6);
|
|
176
|
+
// Half an em of the style's size a space.
|
|
177
|
+
expect(ls[1].bbox.x - ls[0].bbox.x).toBeCloseTo(10, 6);
|
|
178
|
+
expect(ls[2].baseline - ls[1].baseline).toBeGreaterThanOrEqual(40 - 1e-6);
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
describe(':::verse line by line: turnovers', () => {
|
|
182
|
+
const LONG = 'And miles to go before I sleep, and miles to go before I sleep again tonight';
|
|
183
|
+
const md = (attrs, line = LONG) => `:::verse{align=start ${attrs}}\nShort line.\n ${line}\nShort again.\n:::`;
|
|
184
|
+
it('hangs a turnover two ems in from its line\'s own start', () => {
|
|
185
|
+
const ls = verseLines(buildDocument({ markdown: md('') }, config()));
|
|
186
|
+
const turn = ls.filter((l) => l.verseLine.turnover);
|
|
187
|
+
expect(turn.length).toBeGreaterThan(0);
|
|
188
|
+
const [first] = ls.filter((l) => l.verseLine.line === 1);
|
|
189
|
+
expect(first.bbox.x).toBeCloseTo(40, 6);
|
|
190
|
+
for (const l of turn) {
|
|
191
|
+
expect(l.bbox.x).toBeCloseTo(80, 6);
|
|
192
|
+
expect(l.verseLine.line).toBe(1);
|
|
193
|
+
expect(l.bbox.x + l.bbox.width).toBeLessThanOrEqual(380 + 0.01);
|
|
194
|
+
}
|
|
195
|
+
// The line and its turnover read as one line when copied.
|
|
196
|
+
const html = renderToHtml(buildDocument({ markdown: md('') }, config())).replace(/<[^>]+>/g, '');
|
|
197
|
+
expect(html).toContain(`${LONG}\nShort again.`);
|
|
198
|
+
});
|
|
199
|
+
it('takes the hang from the fence, the paragraph style, or bodyText.verse.hang', () => {
|
|
200
|
+
const at = (markdown, extra = {}) => verseLines(buildDocument({ markdown }, config(extra))).find((l) => l.verseLine.turnover).bbox.x;
|
|
201
|
+
expect(at(md('hang=1em'))).toBeCloseTo(60, 6);
|
|
202
|
+
expect(at(md('style=v'), { paragraphStyles: [{ id: 'v', hangingIndent: em(3) }] })).toBeCloseTo(100, 6);
|
|
203
|
+
expect(at(md(''), { bodyText: { verse: { hang: em(4) } } })).toBeCloseTo(120, 6);
|
|
204
|
+
});
|
|
205
|
+
it('sets a turnover flush right behind a bracket with turnover=right', () => {
|
|
206
|
+
const ls = verseLines(buildDocument({ markdown: md('turnover=right') }, config()));
|
|
207
|
+
const turn = ls.filter((l) => l.verseLine.turnover);
|
|
208
|
+
expect(turn.length).toBeGreaterThan(0);
|
|
209
|
+
for (const l of turn) {
|
|
210
|
+
expect(l.bbox.x + l.bbox.width).toBeCloseTo(380, 6);
|
|
211
|
+
expect(l.segments[0].text).toBe('[');
|
|
212
|
+
expect(l.segments[0].inserted).toBe(true);
|
|
213
|
+
expect(l.text.startsWith('[')).toBe(false);
|
|
214
|
+
}
|
|
215
|
+
const mark = verseLines(buildDocument({ markdown: md('turnover=right turnoverMark="⟨"') }, config())).find((l) => l.verseLine.turnover);
|
|
216
|
+
expect(mark.segments[0].text).toBe('⟨');
|
|
217
|
+
});
|
|
218
|
+
it('turns over at word spaces, never hyphenated unless the style asks itself', () => {
|
|
219
|
+
const word = 'Unimaginably incomprehensibly uncharacteristically overcomplicated';
|
|
220
|
+
const hyph = { bodyText: { hyphenation: { enabled: true, ragged: true } } };
|
|
221
|
+
const ls = verseLines(buildDocument({ markdown: md('', word) }, config(hyph)));
|
|
222
|
+
expect(ls.some((l) => l.hyphenated)).toBe(false);
|
|
223
|
+
});
|
|
224
|
+
it('starts a stepped line where the line above ended', () => {
|
|
225
|
+
const ls = verseLines(buildDocument({ markdown: ':::verse{align=start}\nWho is there?\n+ Nay, answer me.\n:::' }, config()));
|
|
226
|
+
expect(ls[1].bbox.x).toBeCloseTo(ls[0].bbox.x + ls[0].bbox.width + 4, 6);
|
|
227
|
+
});
|
|
228
|
+
it('keeps a caesura at the width of its spaces', () => {
|
|
229
|
+
const [kept] = verseLines(buildDocument({ markdown: ':::verse{align=start keepSpaces}\nStand, and unfold\n:::' }, config()));
|
|
230
|
+
const [plain] = verseLines(buildDocument({ markdown: ':::verse{align=start}\nStand, and unfold\n:::' }, config()));
|
|
231
|
+
expect(kept.bbox.width - plain.bbox.width).toBeCloseTo(12, 6);
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
describe(':::verse line by line: columns and pages', () => {
|
|
235
|
+
const page = (stanza, n) => `${'Some words of running text here. '.repeat(n)}\n\n:::verse\n${stanza.join('\n')}\n:::`;
|
|
236
|
+
const TANKA = ['the first line', 'the second line', 'the third line', 'the fourth line', 'the fifth line'];
|
|
237
|
+
it('keeps a stanza keepStanzas covers whole', () => {
|
|
238
|
+
let moved = 0;
|
|
239
|
+
for (let n = 30; n <= 60; n += 2) {
|
|
240
|
+
const split = buildDocument({ markdown: page(TANKA, n) }, config({}, 400, 300));
|
|
241
|
+
const kept = buildDocument({ markdown: page(TANKA, n).replace(':::verse', ':::verse{keepStanzas=5}') }, config({}, 400, 300));
|
|
242
|
+
const pagesOf = (d) => new Set(verseLines(d).map((l) => pageOf(d, l)));
|
|
243
|
+
expect(pagesOf(kept).size, `${n}`).toBe(1);
|
|
244
|
+
if (pagesOf(split).size > 1)
|
|
245
|
+
moved++;
|
|
246
|
+
}
|
|
247
|
+
// Without it the stanza splits at some foot (by the orphan and widow rules).
|
|
248
|
+
expect(moved).toBeGreaterThan(0);
|
|
249
|
+
const cfg = buildDocument({ markdown: page(TANKA, 40) }, config({ bodyText: { verse: { keepStanzas: 5 } } }, 400, 300));
|
|
250
|
+
expect(new Set(verseLines(cfg).map((l) => pageOf(cfg, l))).size).toBe(1);
|
|
251
|
+
});
|
|
252
|
+
it('splits inside a stanza leaving at least two lines on each side', () => {
|
|
253
|
+
const STANZA = Array.from({ length: 6 }, (_, i) => `line number ${i} of it`);
|
|
254
|
+
for (let n = 30; n <= 60; n += 2) {
|
|
255
|
+
const d = buildDocument({ markdown: page(STANZA, n) }, config({}, 400, 300));
|
|
256
|
+
const counts = new Map();
|
|
257
|
+
for (const l of verseLines(d))
|
|
258
|
+
counts.set(pageOf(d, l), (counts.get(pageOf(d, l)) ?? 0) + 1);
|
|
259
|
+
for (const c of counts.values())
|
|
260
|
+
expect(c, `${n}`).toBeGreaterThanOrEqual(2);
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
it('never parts a line from its turnover', () => {
|
|
264
|
+
const LONG = 'and this line of verse runs far past the measure of the column it is set in';
|
|
265
|
+
const lines = Array.from({ length: 12 }, (_, i) => (i % 2 ? `${LONG} ${i}` : `short ${i}`));
|
|
266
|
+
for (let height = 200; height <= 320; height += 10) {
|
|
267
|
+
const d = buildDocument({ markdown: `:::verse\n${lines.join('\n')}\n:::` }, config({}, 300, height));
|
|
268
|
+
for (const b of stanzaBlocks(d)) {
|
|
269
|
+
const next = d.blocks[d.blocks.indexOf(b) + 1];
|
|
270
|
+
if (next?.lines[0]?.verseLine)
|
|
271
|
+
expect(next.lines[0].verseLine.turnover, `${height}`).toBe(false);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
it('breaks between stanzas, the space between them dropped at the top of a page', () => {
|
|
276
|
+
const stanza = (k) => [`stanza ${k} line one`, `stanza ${k} line two`, `stanza ${k} line three`].join('\n');
|
|
277
|
+
const d = buildDocument({ markdown: `:::verse{align=start}\n${[0, 1, 2, 3, 4, 5].map(stanza).join('\n\n')}\n:::` }, config({}, 400, 300));
|
|
278
|
+
expect(d.pages.length).toBeGreaterThan(1);
|
|
279
|
+
for (const p of d.pages) {
|
|
280
|
+
const first = p.columns[0].blocks[0].lines[0];
|
|
281
|
+
expect(first.bbox.y).toBeCloseTo(20, 6);
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
it('keeps the paragraph that introduces the poem with its first lines', () => {
|
|
285
|
+
for (let height = 220; height <= 330; height += 10) {
|
|
286
|
+
const text = `${'Running words here. '.repeat(40)}He said:\n\n:::verse\nthe first line of it\nthe second line of it\nthe third\n:::`;
|
|
287
|
+
const d = buildDocument({ markdown: text }, config({}, 400, height));
|
|
288
|
+
const intro = d.blocks.filter((b) => b.type === 'paragraph' && !b.lines.some((l) => l.verseLine)).at(-1);
|
|
289
|
+
expect(pageOf(d, intro.lines.at(-1)), `${height}`).toBe(pageOf(d, verseLines(d)[0]));
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
});
|
|
293
|
+
describe(':::verse line by line: directions and writing modes', () => {
|
|
294
|
+
it('measures a Latin poem in an Arabic book from its own start side', () => {
|
|
295
|
+
const md = 'نص عربي قبل القصيدة.\n\n:::verse{dir=ltr lang=en align=start}\nFirst line here\n Indented line\n:::';
|
|
296
|
+
const doc = buildDocument({ markdown: md }, config({ locale: 'ar' }));
|
|
297
|
+
const [a, b] = verseLines(doc);
|
|
298
|
+
// The flow frame of a right-to-left page runs from the right: a
|
|
299
|
+
// left-to-right poem starts at its far end.
|
|
300
|
+
expect(a.bbox.x + a.bbox.width).toBeCloseTo(380, 6);
|
|
301
|
+
expect(b.bbox.x + b.bbox.width).toBeCloseTo(360, 6);
|
|
302
|
+
expect(stanzaBlocks(doc)[0].lines.length).toBe(2);
|
|
303
|
+
});
|
|
304
|
+
it('indents an Arabic poem from its start in an Arabic book', () => {
|
|
305
|
+
const doc = buildDocument({ markdown: ':::verse{align=start}\nسطر أول هنا\n سطر ثان\n:::' }, config({ locale: 'ar' }));
|
|
306
|
+
const [a, b] = verseLines(doc);
|
|
307
|
+
expect(a.bbox.x).toBeCloseTo(20, 6);
|
|
308
|
+
expect(b.bbox.x).toBeCloseTo(40, 6);
|
|
309
|
+
});
|
|
310
|
+
it('indents a vertical Japanese poem from the head', () => {
|
|
311
|
+
const md = ':::verse\n古池や\n 蛙飛び込む\n 水の音\n:::';
|
|
312
|
+
const cfg = config({ locale: 'ja', layout: { layoutType: 'single', writingMode: 'vertical-rl' } });
|
|
313
|
+
const ls = verseLines(buildDocument({ markdown: md }, cfg));
|
|
314
|
+
expect(ls).toHaveLength(3);
|
|
315
|
+
// An ideographic space counts two leading spaces, one em at the
|
|
316
|
+
// default step; two spaces are one em too.
|
|
317
|
+
expect(ls[1].bbox.x - ls[0].bbox.x).toBeCloseTo(40, 6);
|
|
318
|
+
expect(ls[2].bbox.x - ls[0].bbox.x).toBeCloseTo(20, 6);
|
|
319
|
+
});
|
|
320
|
+
it('indents a vertical Traditional Chinese poem from the head', () => {
|
|
321
|
+
const md = ':::verse\n床前明月光\n 疑是地上霜\n:::';
|
|
322
|
+
const cfg = config({ locale: 'zh-Hant', layout: { layoutType: 'single', writingMode: 'vertical-rl' } });
|
|
323
|
+
const ls = verseLines(buildDocument({ markdown: md }, cfg));
|
|
324
|
+
expect(ls).toHaveLength(2);
|
|
325
|
+
expect(ls[1].bbox.x - ls[0].bbox.x).toBeCloseTo(20, 6);
|
|
326
|
+
});
|
|
327
|
+
});
|
|
328
|
+
describe('bodyText.verse and the configurations stored before #620', () => {
|
|
329
|
+
it('resolves and strips its defaults', () => {
|
|
330
|
+
expect(resolveVerseConfig()).toEqual(DEFAULT_VERSE_CONFIG);
|
|
331
|
+
expect(resolveVerseConfig({ turnover: 'right', keepStanzas: 5.7, stanzaSpace: -1 })).toEqual({ ...DEFAULT_VERSE_CONFIG, turnover: 'right', keepStanzas: 5 });
|
|
332
|
+
expect(stripVerseDefaults({ ...DEFAULT_VERSE_CONFIG })).toBeUndefined();
|
|
333
|
+
expect(stripVerseDefaults({ indentStep: em(0.5), stanzaSpace: 2 })).toEqual({ stanzaSpace: 2 });
|
|
334
|
+
expect(stripBodyTextDefaults({ verse: { turnover: 'hang', keepStanzas: 3 } })).toEqual({ verse: { keepStanzas: 3 } });
|
|
335
|
+
});
|
|
336
|
+
const PLAIN = ':::verse\nA line\nAnother\n:::';
|
|
337
|
+
const BAYT = ':::verse\nA || B\n:::';
|
|
338
|
+
it('pins the 1.22 verse layout when the text holds a poem with no separator', () => {
|
|
339
|
+
expect(CONFIG_VERSION).toBe(9);
|
|
340
|
+
const stored = { bodyText: { fontFamily: 'Georgia' } };
|
|
341
|
+
for (const version of [undefined, 3, 7, 8]) {
|
|
342
|
+
expect(migrateConfig(stored, version, { content: PLAIN }).bodyText?.verse, `${version}`).toEqual({ layout: 'bayt' });
|
|
343
|
+
}
|
|
344
|
+
expect(migrateConfig(stored, 8).bodyText?.verse).toEqual({ layout: 'bayt' });
|
|
345
|
+
for (const content of [BAYT, 'No poem.', ':::verse{layout=lines}\nA line\n:::', [BAYT, 'Text.']]) {
|
|
346
|
+
expect(migrateConfig(stored, 8, { content }), JSON.stringify(content)).toBe(stored);
|
|
347
|
+
}
|
|
348
|
+
expect(migrateConfig(stored, CONFIG_VERSION, { content: PLAIN })).toBe(stored);
|
|
349
|
+
const named = { bodyText: { verse: { layout: 'auto' } } };
|
|
350
|
+
expect(pinLegacyVerseLayout(named)).toBe(named);
|
|
351
|
+
const merged = migrateBundleConfig({}, [{ bodyText: { fontFamily: 'Georgia' } }], 8, { content: [PLAIN] });
|
|
352
|
+
expect(merged.bodyText).toEqual({ fontFamily: 'Georgia', verse: { layout: 'bayt' } });
|
|
353
|
+
});
|
|
354
|
+
it('pins a style\'s first-line indent away when it sets a hanging one too', () => {
|
|
355
|
+
const stored = {
|
|
356
|
+
paragraphStyles: [
|
|
357
|
+
{ id: 'both', firstLineIndent: em(1), hangingIndent: em(3) },
|
|
358
|
+
{ id: 'first', firstLineIndent: em(1) },
|
|
359
|
+
{ id: 'zero', firstLineIndent: em(1), hangingIndent: em(0) },
|
|
360
|
+
],
|
|
361
|
+
};
|
|
362
|
+
const pinned = migrateConfig(stored, 8, { content: 'Text.' });
|
|
363
|
+
expect(pinned.paragraphStyles).toEqual([
|
|
364
|
+
{ id: 'both', hangingIndent: em(3) },
|
|
365
|
+
{ id: 'first', firstLineIndent: em(1) },
|
|
366
|
+
{ id: 'zero', firstLineIndent: em(1), hangingIndent: em(0) },
|
|
367
|
+
]);
|
|
368
|
+
const none = { paragraphStyles: [{ id: 'first', firstLineIndent: em(1) }] };
|
|
369
|
+
expect(pinLegacyPairedIndents(none)).toBe(none);
|
|
370
|
+
expect(migrateConfig(stored, CONFIG_VERSION)).toBe(stored);
|
|
371
|
+
const viewer = pinLegacyPairedIndents({ htmlViewer: { overrides: { paragraphStyles: [{ id: 'b', firstLineIndent: em(1), hangingIndent: em(2) }] } } });
|
|
372
|
+
expect(viewer.htmlViewer.overrides.paragraphStyles).toEqual([{ id: 'b', hangingIndent: em(2) }]);
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
//# sourceMappingURL=verseLines.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verseLines.test.js","sourceRoot":"","sources":["../../src/__tests__/verseLines.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { PostextConfig } from '../types';
|
|
2
2
|
/**
|
|
3
|
-
* The configuration rules this engine writes:
|
|
4
|
-
* rules changed in
|
|
3
|
+
* The configuration rules this engine writes: 9 since #620 (8 from postext
|
|
4
|
+
* 1.5). Thirteen rules changed in 1.5 and two since, and a configuration
|
|
5
|
+
* stored under an older
|
|
5
6
|
* number (or none) is read through {@link migrateConfig}:
|
|
6
7
|
* - 3: a heading level's `breakBefore` (and a heading style's) merges field
|
|
7
8
|
* by field onto the level's default — H1's being `always-odd`
|
|
@@ -52,6 +53,22 @@ import type { PostextConfig } from '../types';
|
|
|
52
53
|
* paragraph (`bodyText.breakAfterHyphens`), where up to 1.4 a justified
|
|
53
54
|
* paragraph with no inline formatting never broke there ({@link
|
|
54
55
|
* pinLegacyHyphenBreaks}).
|
|
56
|
+
* - 9 (#620, #624), four rules:
|
|
57
|
+
* - a `:::verse` poem whose fence names no layout and whose lines carry
|
|
58
|
+
* no hemistich separator is set line by line (`bodyText.verse.layout:
|
|
59
|
+
* 'auto'`), where up to 1.22 its lines were single hemistichs centred
|
|
60
|
+
* in the measure ({@link pinLegacyVerseLayout});
|
|
61
|
+
* - a paragraph style that sets `firstLineIndent` itself and a non-zero
|
|
62
|
+
* `hangingIndent` indents its first line by the one and its turnovers
|
|
63
|
+
* by the other, where up to 1.22 the hanging indent replaced the
|
|
64
|
+
* first-line indent ({@link pinLegacyPairedIndents});
|
|
65
|
+
* - a backslash that ends a line of a paragraph, a quotation or a list
|
|
66
|
+
* item, and `\\` in one, is a forced line break
|
|
67
|
+
* (`bodyText.hardLineBreaks`), where up to 1.22 it printed ({@link
|
|
68
|
+
* pinLegacyHardBreaks});
|
|
69
|
+
* - a ```` ``` ```` or `~~~` fence opens a code block (#624,
|
|
70
|
+
* `codeStyle.blocks`), where up to 1.22 its lines were read as
|
|
71
|
+
* Markdown ({@link pinLegacyCodeBlocks}).
|
|
55
72
|
*
|
|
56
73
|
* A configuration stored without a version was written for postext 1.4 or
|
|
57
74
|
* earlier. One stored under 3 to 7 was written by a 1.5 prerelease, and
|
|
@@ -59,9 +76,11 @@ import type { PostextConfig } from '../types';
|
|
|
59
76
|
* inline-gap, version-6, version-7 and version-8 pins, under 4 the
|
|
60
77
|
* inline-gap, version-6, version-7 and version-8 pins, under 5 the
|
|
61
78
|
* version-6, version-7 and version-8 pins, under 6 the version-7 and
|
|
62
|
-
* version-8 pins, under 7 the version-8 pins.
|
|
79
|
+
* version-8 pins, under 7 the version-8 pins. One stored under 8 was
|
|
80
|
+
* written by postext 1.5 to 1.22 and gets the version-9 pins (which every
|
|
81
|
+
* older one gets too).
|
|
63
82
|
*/
|
|
64
|
-
export declare const CONFIG_VERSION =
|
|
83
|
+
export declare const CONFIG_VERSION = 9;
|
|
65
84
|
/**
|
|
66
85
|
* How much larger postext 1.4 set maths than the size it documents:
|
|
67
86
|
* MathJax gives a formula's box in `ex`, one `ex` of its TeX font is
|
|
@@ -186,6 +205,43 @@ export declare function pinLegacyParagraphContainerSpacing<T extends Partial<Pos
|
|
|
186
205
|
* as it is (the same object).
|
|
187
206
|
*/
|
|
188
207
|
export declare function pinLegacyHyphenBreaks<T extends Partial<PostextConfig>>(config: T): T;
|
|
208
|
+
/**
|
|
209
|
+
* A configuration written before #620 (postext 1.22 or earlier), pinned to
|
|
210
|
+
* the way it set a `:::verse` poem with no hemistich separator:
|
|
211
|
+
* `bodyText.verse.layout: 'bayt'`, every line a single hemistich centred in
|
|
212
|
+
* the measure, where today such a poem is set line by line. A
|
|
213
|
+
* configuration that names the setting already is returned as it is (the
|
|
214
|
+
* same object).
|
|
215
|
+
*/
|
|
216
|
+
export declare function pinLegacyVerseLayout<T extends Partial<PostextConfig>>(config: T): T;
|
|
217
|
+
/**
|
|
218
|
+
* A configuration written before #620 (postext 1.22 or earlier), pinned to
|
|
219
|
+
* the indents of its paragraph styles: a style that sets both
|
|
220
|
+
* `firstLineIndent` and a non-zero `hangingIndent` loses the
|
|
221
|
+
* `firstLineIndent`, which up to 1.22 the hanging indent replaced (today
|
|
222
|
+
* the first line starts at it). The styles of its HTML viewer's overrides
|
|
223
|
+
* are pinned the same way. A configuration with no such style is returned
|
|
224
|
+
* as it is (the same object).
|
|
225
|
+
*/
|
|
226
|
+
export declare function pinLegacyPairedIndents<T extends Partial<PostextConfig>>(config: T): T;
|
|
227
|
+
/**
|
|
228
|
+
* A configuration written before #620 (postext 1.22 or earlier), pinned to
|
|
229
|
+
* the way it read a backslash that ends a line of a paragraph, a quotation
|
|
230
|
+
* or a list item, and `\\` in one: `bodyText.hardLineBreaks: false`, the
|
|
231
|
+
* backslashes printed and the lines joined with a space, where today they
|
|
232
|
+
* are forced line breaks. A configuration that names the setting already
|
|
233
|
+
* is returned as it is (the same object).
|
|
234
|
+
*/
|
|
235
|
+
export declare function pinLegacyHardBreaks<T extends Partial<PostextConfig>>(config: T): T;
|
|
236
|
+
/**
|
|
237
|
+
* A configuration written before #624 (postext 1.22 or earlier), pinned to
|
|
238
|
+
* the way it read a ```` ``` ```` or `~~~` fence: `codeStyle.blocks: false`,
|
|
239
|
+
* the fence and the lines inside it read as Markdown (paragraphs, headings,
|
|
240
|
+
* lists…), where today they are a code block set as written. A
|
|
241
|
+
* configuration that names the setting already is returned as it is (the
|
|
242
|
+
* same object).
|
|
243
|
+
*/
|
|
244
|
+
export declare function pinLegacyCodeBlocks<T extends Partial<PostextConfig>>(config: T): T;
|
|
189
245
|
/**
|
|
190
246
|
* A configuration written before postext 1.5, pinned to the headings it
|
|
191
247
|
* laid out then: `headings.inlineMarks: false`, where 1.4 printed the text
|
|
@@ -231,10 +287,18 @@ export interface MigrateConfigOptions {
|
|
|
231
287
|
* `:::paragraphs` container is not given the 1.4 space under containers
|
|
232
288
|
* (see {@link pinLegacyParagraphContainerSpacing}); and text with no
|
|
233
289
|
* hyphen between two letters is not given the 1.4 compound breaks (see
|
|
234
|
-
* {@link pinLegacyHyphenBreaks})
|
|
290
|
+
* {@link pinLegacyHyphenBreaks}); and text with no `:::verse` poem whose
|
|
291
|
+
* lines carry no hemistich separator is not given the 1.22 verse layout
|
|
292
|
+
* (see {@link pinLegacyVerseLayout}); and text with no backslash ending a
|
|
293
|
+
* line a paragraph goes on after, and no `\\` in running text, is not
|
|
294
|
+
* given the 1.22 literal backslashes (see {@link pinLegacyHardBreaks});
|
|
295
|
+
* and text with no ```` ``` ```` or `~~~` fence is not given the 1.22
|
|
296
|
+
* reading of fences (see {@link pinLegacyCodeBlocks}).
|
|
297
|
+
* That keeps a stored configuration as
|
|
235
298
|
* short as it was. Without it the size is pinned whenever maths is on,
|
|
236
299
|
* and the gaps, the room, the heading marks, the box cut, the dash
|
|
237
|
-
* breaks, the split under a heading
|
|
300
|
+
* breaks, the split under a heading, the compound breaks, the verse
|
|
301
|
+
* layout and the literal backslashes always, and
|
|
238
302
|
* the container space always when the configuration declares a paragraph
|
|
239
303
|
* style.
|
|
240
304
|
* Any iterable of texts will do, a generator or a Map's `values()`
|
|
@@ -267,7 +331,13 @@ export interface MigrateConfigOptions {
|
|
|
267
331
|
* pinLegacyParagraphContainerSpacing}, when it declares a paragraph style,
|
|
268
332
|
* unless `options.content` shows no such container, and its compound
|
|
269
333
|
* breaks by {@link pinLegacyHyphenBreaks}, unless `options.content` shows
|
|
270
|
-
* no compound
|
|
334
|
+
* no compound; one older than 9 has its poems with no hemistich separator
|
|
335
|
+
* pinned by {@link pinLegacyVerseLayout}, unless `options.content` shows
|
|
336
|
+
* none, its paragraph styles' indents by {@link pinLegacyPairedIndents},
|
|
337
|
+
* its forced line breaks by {@link pinLegacyHardBreaks}, unless
|
|
338
|
+
* `options.content` shows none, and its code fences by {@link
|
|
339
|
+
* pinLegacyCodeBlocks}, unless `options.content` shows none. A current one
|
|
340
|
+
* is returned as it is (the same object).
|
|
271
341
|
* Migrate a stored configuration once and store it again under
|
|
272
342
|
* `CONFIG_VERSION`: the maths pin multiplies a scale, so a configuration
|
|
273
343
|
* read twice under its old number would grow twice.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configVersion.d.ts","sourceRoot":"","sources":["../../src/bundle/configVersion.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"configVersion.d.ts","sourceRoot":"","sources":["../../src/bundle/configVersion.ts"],"names":[],"mappings":"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"}
|