postext-epub 0.1.1 → 0.2.1

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 (59) hide show
  1. package/README.md +3 -2
  2. package/dist/__tests__/sampleBook.d.ts +11 -0
  3. package/dist/__tests__/sampleBook.d.ts.map +1 -1
  4. package/dist/__tests__/sampleBook.js +57 -0
  5. package/dist/__tests__/sampleBook.js.map +1 -1
  6. package/dist/epubcheck.test.js +18 -1
  7. package/dist/epubcheck.test.js.map +1 -1
  8. package/dist/fixed/index.d.ts +4 -0
  9. package/dist/fixed/index.d.ts.map +1 -1
  10. package/dist/fixed/index.js +26 -4
  11. package/dist/fixed/index.js.map +1 -1
  12. package/dist/package/pack.d.ts.map +1 -1
  13. package/dist/package/pack.js +14 -4
  14. package/dist/package/pack.js.map +1 -1
  15. package/dist/package/strings.d.ts.map +1 -1
  16. package/dist/package/strings.js +1 -0
  17. package/dist/package/strings.js.map +1 -1
  18. package/dist/package/strings.test.d.ts +2 -0
  19. package/dist/package/strings.test.d.ts.map +1 -0
  20. package/dist/package/strings.test.js +12 -0
  21. package/dist/package/strings.test.js.map +1 -0
  22. package/dist/reflowable/css.d.ts +4 -0
  23. package/dist/reflowable/css.d.ts.map +1 -1
  24. package/dist/reflowable/css.js +93 -1
  25. package/dist/reflowable/css.js.map +1 -1
  26. package/dist/reflowable/index.d.ts.map +1 -1
  27. package/dist/reflowable/index.js +11 -4
  28. package/dist/reflowable/index.js.map +1 -1
  29. package/dist/reflowable/inline.d.ts +30 -1
  30. package/dist/reflowable/inline.d.ts.map +1 -1
  31. package/dist/reflowable/inline.js +152 -13
  32. package/dist/reflowable/inline.js.map +1 -1
  33. package/dist/reflowable/japanese.test.d.ts +2 -0
  34. package/dist/reflowable/japanese.test.d.ts.map +1 -0
  35. package/dist/reflowable/japanese.test.js +178 -0
  36. package/dist/reflowable/japanese.test.js.map +1 -0
  37. package/dist/reflowable/model.d.ts +20 -1
  38. package/dist/reflowable/model.d.ts.map +1 -1
  39. package/dist/reflowable/reflowable.test.js +69 -0
  40. package/dist/reflowable/reflowable.test.js.map +1 -1
  41. package/dist/reflowable/walk.d.ts +3 -0
  42. package/dist/reflowable/walk.d.ts.map +1 -1
  43. package/dist/reflowable/walk.js +10 -0
  44. package/dist/reflowable/walk.js.map +1 -1
  45. package/dist/reflowable/xhtml.d.ts +2 -0
  46. package/dist/reflowable/xhtml.d.ts.map +1 -1
  47. package/dist/reflowable/xhtml.js +35 -4
  48. package/dist/reflowable/xhtml.js.map +1 -1
  49. package/dist/shared/assets.d.ts +11 -0
  50. package/dist/shared/assets.d.ts.map +1 -1
  51. package/dist/shared/assets.js +60 -1
  52. package/dist/shared/assets.js.map +1 -1
  53. package/dist/shared/media.d.ts +7 -0
  54. package/dist/shared/media.d.ts.map +1 -1
  55. package/dist/shared/media.js +20 -0
  56. package/dist/shared/media.js.map +1 -1
  57. package/dist/types.d.ts +8 -0
  58. package/dist/types.d.ts.map +1 -1
  59. package/package.json +3 -3
@@ -4,6 +4,7 @@
4
4
  // where the line broke at one, with nothing after a hyphen the break added
5
5
  // (which goes) or one the text carries (which stays), and with nothing
6
6
  // between Chinese, Japanese or Thai characters, which break without spaces.
7
+ import { graphemesOf, verticalRuns } from 'postext';
7
8
  import { escapeAttr, escapeXml, stripInvalidXmlChars } from '../shared/xml';
8
9
  /** Characters set without spaces between words: a line may break right
9
10
  * before or after one with nothing between them. */
@@ -54,7 +55,24 @@ function linkOf(seg, ctx) {
54
55
  return { kind: 'page', bookIndex: seg.pageLink };
55
56
  return undefined;
56
57
  }
57
- function formatOf(seg, full, lang) {
58
+ /**
59
+ * The classes beyond `pt-dots` that emphasis marks need (#428), '' for the
60
+ * filled dot on the writing mode's default side (under horizontal text,
61
+ * right of vertical text: the `.pt-dots` rule, Chinese practice). The
62
+ * shape and fill: `pt-dots-<fill>-<shape>` (`pt-dots-filled-sesame`, the
63
+ * Japanese 傍点). The side, in the flow frame as the layout gives it:
64
+ * `pt-dots-over` (over horizontal text, right of vertical text) in a
65
+ * horizontal document, `pt-dots-under` (under, left) in a vertical one.
66
+ */
67
+ export function dotsClasses(dots, vertical) {
68
+ const out = [];
69
+ if (dots.style !== 'dot' || dots.fill !== 'filled')
70
+ out.push(`pt-dots-${dots.fill}-${dots.style}`);
71
+ if (dots.position !== (vertical ? 'over' : 'under'))
72
+ out.push(`pt-dots-${dots.position}`);
73
+ return out.join(' ');
74
+ }
75
+ function formatOf(seg, full, ctx) {
58
76
  const fmt = {};
59
77
  if (seg.bold)
60
78
  fmt.bold = true;
@@ -62,7 +80,7 @@ function formatOf(seg, full, lang) {
62
80
  fmt.italic = true;
63
81
  if (!full)
64
82
  return fmt;
65
- if (full.lang !== undefined && full.lang !== lang)
83
+ if (full.lang !== undefined && full.lang !== ctx?.lang)
66
84
  fmt.lang = full.lang;
67
85
  if (full.script)
68
86
  fmt.script = full.script;
@@ -70,18 +88,33 @@ function formatOf(seg, full, lang) {
70
88
  fmt.smallCaps = true;
71
89
  if (full.captionLabel)
72
90
  fmt.label = true;
73
- if (full.cjkMarks?.dots)
91
+ if (full.cjkMarks?.dots) {
74
92
  fmt.dots = true;
93
+ const classes = dotsClasses(full.cjkMarks.dots, ctx?.vertical === true);
94
+ if (classes) {
95
+ fmt.dotsStyle = classes;
96
+ for (const cls of classes.split(' '))
97
+ ctx?.dotsClass?.(cls);
98
+ }
99
+ }
75
100
  if (full.cjkMarks?.properName !== undefined)
76
101
  fmt.proper = true;
77
102
  if (full.cjkMarks?.bookTitle !== undefined)
78
103
  fmt.book = true;
104
+ if (full.cjkMarks?.sideline)
105
+ fmt.side = { style: full.cjkMarks.sideline.style, position: full.cjkMarks.sideline.position };
79
106
  if (full.tcy)
80
107
  fmt.tcy = true;
81
108
  if (full.orientation)
82
109
  fmt.orientation = full.orientation;
83
110
  if (full.warichu)
84
111
  fmt.warichu = true;
112
+ // A marker in the line gap, or one the layout moved to the right of a
113
+ // vertical line (reduced, shifted, on the line: no superscript).
114
+ if (full.sideMarker)
115
+ fmt.note = 'side';
116
+ else if (full.footnoteId !== undefined && full.baselineShift !== undefined && !full.script)
117
+ fmt.note = 'right';
85
118
  return fmt;
86
119
  }
87
120
  /** A formula's SVG as XML a content document can embed: namespaces
@@ -118,28 +151,109 @@ function rawOf(seg, ctx) {
118
151
  const runs = seg.chip.runs.map((r) => wrapFormat(xmlText(r.text), formatOf(r))).join('');
119
152
  return `<span class="pt-chip pt-chip-${idOf('', seg.chip.styleId)}">${runs}</span>`;
120
153
  }
121
- if (seg.ruby) {
122
- const pos = seg.ruby.position === 'under' ? ' class="pt-ruby-under"' : seg.ruby.position === 'right' ? ' class="pt-ruby-right"' : '';
123
- // No <rp> fallback brackets: EPUB 3.3 discourages them (EPUBCheck
124
- // HTM_055), every EPUB 3 reading system lays ruby out.
125
- return `<ruby${pos}>${wrapFormat(xmlText(seg.text), formatOf(seg, seg))}<rt>${xmlText(seg.ruby.text)}</rt></ruby>`;
154
+ if (seg.kunten) {
155
+ // Kanbun marks (#430), set inline as JIS X 4051 sets the 返り点 after
156
+ // their character: the 送り仮名 raised (right of vertical text), read
157
+ // after the character; the 返り点 lowered (left of it) and a 竪点 as
158
+ // a hyphen, neither read.
159
+ const k = seg.kunten;
160
+ const base = seg.ruby ? rubyOf(seg, ctx) : wrapFormat(xmlText(seg.text), formatOf(seg, seg, ctx));
161
+ return `<span class="pt-kunten">${base}`
162
+ + (k.okuri ? `<span class="pt-okuri">${xmlText(k.okuri)}</span>` : '')
163
+ + (k.kaeri ? `<span class="pt-kaeri" aria-hidden="true">${xmlText(k.kaeri)}</span>` : '')
164
+ + (k.tate ? '<span class="pt-tate" aria-hidden="true">‐</span>' : '')
165
+ + '</span>';
126
166
  }
167
+ if (seg.ruby)
168
+ return rubyOf(seg, ctx);
127
169
  return undefined;
128
170
  }
171
+ /** A ruby base and its reading, inside a `<ruby>`. */
172
+ function rubyPair(seg, ctx) {
173
+ return `${wrapFormat(xmlText(seg.text), formatOf(seg, seg, { ...ctx, lang: '' }))}<rt>${xmlText(seg.ruby.text)}</rt>`;
174
+ }
175
+ /** The annotation a ruby base belongs to, when the layout names it
176
+ * (`VDTRuby.id`, #422): the bases of one jukugo reading share it and go
177
+ * in one `<ruby>`, their readings alternating with them, so a reading
178
+ * system can let a reading run over its neighbour base. Without it,
179
+ * every base is a `<ruby>` of its own. */
180
+ function rubyGroupOf(ruby) {
181
+ const id = ruby.id;
182
+ return typeof id === 'string' || typeof id === 'number' ? String(id) : undefined;
183
+ }
184
+ /** Joins `next`, a `<ruby>` of one base, to `last` when it holds bases of
185
+ * the same annotation with the same link: the bases of a jukugo word, on
186
+ * one line or across a line break (the ids are a block's, and a sink
187
+ * reads one block). Whether it did. */
188
+ function joinRuby(last, next) {
189
+ if (next.ruby === undefined || last.ruby !== next.ruby || linkKey(last.link) !== linkKey(next.link) || last.lvl !== next.lvl)
190
+ return false;
191
+ last.xhtml = last.xhtml.replace(/<\/ruby>$/, next.xhtml.replace(/^<ruby[^>]*>/, ''));
192
+ return true;
193
+ }
194
+ /** Japanese marks a one-em space follows (`cjk.spaceAfterQuestion`). */
195
+ const QUESTION = /[?!‼⁇⁈⁉]$/u;
196
+ /** What takes no space after a ? or !: a closing bracket or another mark. */
197
+ const NO_AKI_BEFORE = /^[」』)〕]}〉》】〙〗”’?!‼⁇⁈⁉]/u;
198
+ /** Whether the segment before `i` (a footnote marker glued to the mark
199
+ * aside) ends with a ? or !. */
200
+ function afterQuestion(segs, i) {
201
+ for (let j = i - 1; j >= 0; j--) {
202
+ const prev = segs[j];
203
+ if (prev.footnoteId !== undefined)
204
+ continue;
205
+ return prev.kind === 'text' && QUESTION.test(prev.text);
206
+ }
207
+ return false;
208
+ }
209
+ /** `text` split at the runs vertical Japanese sets in one upright cell
210
+ * (see {@link InlineContext.tcy}): `[text, tcy][]`, in order. */
211
+ function tcyRuns(text, tcy) {
212
+ if (!/[0-9!?!?]/.test(text))
213
+ return [[text, false]];
214
+ const out = [];
215
+ for (const run of verticalRuns(graphemesOf(text), tcy.region, tcy.uprightDigits)) {
216
+ const cell = run.glyph.orient === 'tcy';
217
+ const last = out[out.length - 1];
218
+ if (last && !cell && !last[1])
219
+ last[0] += run.text;
220
+ else
221
+ out.push([run.text, cell]);
222
+ }
223
+ return out;
224
+ }
225
+ /** A ruby base and its reading as a `<ruby>` of its own. */
226
+ function rubyOf(seg, ctx) {
227
+ const ruby = seg.ruby;
228
+ const pos = ruby.position === 'under' ? ' class="pt-ruby-under"' : ruby.position === 'right' ? ' class="pt-ruby-right"' : '';
229
+ // No <rp> fallback brackets: EPUB 3.3 discourages them (EPUBCheck
230
+ // HTM_055), every EPUB 3 reading system lays ruby out.
231
+ return `<ruby${pos}>${rubyPair(seg, ctx)}</ruby>`;
232
+ }
129
233
  /** `inner` inside the elements and classes of `fmt`. */
130
234
  export function wrapFormat(inner, fmt) {
131
235
  const classes = [
132
236
  fmt.smallCaps && 'pt-sc',
133
237
  fmt.label && 'pt-label',
134
238
  fmt.dots && 'pt-dots',
239
+ fmt.dots && fmt.dotsStyle,
135
240
  fmt.proper && 'pt-proper',
136
241
  fmt.book && 'pt-book',
242
+ fmt.side && 'pt-side',
243
+ fmt.side && fmt.side.position === 'over' && 'pt-side-over',
244
+ fmt.side && fmt.side.style !== 'solid' && `pt-side-${fmt.side.style}`,
137
245
  fmt.tcy && 'pt-tcy',
138
246
  fmt.orientation && `pt-${fmt.orientation}`,
139
247
  fmt.warichu && 'pt-warichu',
140
248
  fmt.done && 'pt-done',
141
249
  ].filter(Boolean);
142
250
  let out = classes.length > 0 ? `<span class="${classes.join(' ')}">${inner}</span>` : inner;
251
+ // A marker in the line gap: a box of no advance from which it runs back
252
+ // over the character it marks (see `.pt-note-side`).
253
+ if (fmt.note === 'side')
254
+ out = `<span class="pt-note-side"><span>${out}</span></span>`;
255
+ else if (fmt.note === 'right')
256
+ out = `<span class="pt-note-right">${out}</span>`;
143
257
  if (fmt.script)
144
258
  out = `<${fmt.script}>${out}</${fmt.script}>`;
145
259
  if (fmt.italic)
@@ -181,16 +295,26 @@ export function lineItems(line, ctx, segments = line.segments) {
181
295
  // line decides: `segments` may be a part of it, a poem's hemistich.)
182
296
  const offsets = (line.segments ?? segs).some((s) => s.kashida !== undefined && s.kashida.length > 0);
183
297
  let first = true;
184
- for (const seg of segs) {
298
+ for (const [i, seg] of segs.entries()) {
185
299
  const link = linkOf(seg, ctx);
186
300
  const raw = rawOf(seg, ctx);
187
301
  if (raw !== undefined) {
188
- out.push({ t: 'raw', xhtml: raw, ...(link ? { link } : {}), ...lvlOf(seg) });
302
+ // The bases of one annotation share a `<ruby>`, their readings
303
+ // alternating with them (#428).
304
+ const group = seg.ruby && raw.startsWith('<ruby') ? rubyGroupOf(seg.ruby) : undefined;
305
+ const item = { t: 'raw', xhtml: raw, ...(link ? { link } : {}), ...lvlOf(seg), ...(group !== undefined ? { ruby: group } : {}) };
306
+ const last = out[out.length - 1];
307
+ if (!(last?.t === 'raw' && joinRuby(last, item)))
308
+ out.push(item);
189
309
  first = false;
190
310
  continue;
191
311
  }
192
312
  if (seg.kind === 'space') {
193
- const text = seg.labelTab ? ' ' : seg.text.length > 0 ? seg.text : seg.autospace ? '' : ' ';
313
+ // The one-em space after a Japanese ? or ! (#418) is space the
314
+ // text needs; a Han–Latin space or a ruby gap is the print's
315
+ // spacing, which a reading system makes itself.
316
+ const aki = ctx.spaceAfterQuestion === true && seg.autospace === true && afterQuestion(segs, i) ? '\u3000' : '';
317
+ const text = seg.labelTab ? ' ' : seg.text.length > 0 ? seg.text : seg.autospace ? aki : ' ';
194
318
  if (text)
195
319
  out.push({ t: 'text', text, fmt: {}, ...(link ? { link } : {}), ...lvlOf(seg) });
196
320
  continue;
@@ -218,7 +342,14 @@ export function lineItems(line, ctx, segments = line.segments) {
218
342
  first = false;
219
343
  if (!text)
220
344
  continue;
221
- out.push({ t: 'text', text, fmt: formatOf(run, seg, ctx.lang), ...(link ? { link } : {}), ...lvlOf(seg) });
345
+ const fmt = formatOf(run, seg, ctx);
346
+ if (ctx.tcy && !fmt.tcy && !fmt.orientation) {
347
+ for (const [part, cell] of tcyRuns(text, ctx.tcy)) {
348
+ out.push({ t: 'text', text: part, fmt: cell ? { ...fmt, tcy: true } : fmt, ...(link ? { link } : {}), ...lvlOf(seg) });
349
+ }
350
+ continue;
351
+ }
352
+ out.push({ t: 'text', text, fmt, ...(link ? { link } : {}), ...lvlOf(seg) });
222
353
  }
223
354
  }
224
355
  return out;
@@ -270,8 +401,16 @@ export function appendLine(sink, line, ctx, before = [], segments, hardBreak = f
270
401
  if (next && !/\s/.test(next) && !UNSPACED.test(tail) && !UNSPACED.test(next)) {
271
402
  sink.inl.push({ t: 'text', text: ' ', fmt: {} });
272
403
  }
404
+ else if (next && ctx.spaceAfterQuestion && QUESTION.test(tail) && !NO_AKI_BEFORE.test(next)) {
405
+ // A ? or ! that ended a printed line, where its space went (#418).
406
+ sink.inl.push({ t: 'text', text: '\u3000', fmt: {} });
407
+ }
273
408
  }
274
409
  }
410
+ // A jukugo word the line break cut goes on in the same `<ruby>`.
411
+ const last = sink.inl[sink.inl.length - 1];
412
+ if (before.length === 0 && last?.t === 'raw' && items[0]?.t === 'raw' && joinRuby(last, items[0]))
413
+ items.shift();
275
414
  sink.inl.push(...before, ...items);
276
415
  sink.prev = line;
277
416
  }
@@ -327,7 +466,7 @@ export function linkKey(link) {
327
466
  export function formatKey(fmt) {
328
467
  return [
329
468
  fmt.bold ? 'b' : '', fmt.italic ? 'i' : '', fmt.script ?? '', fmt.smallCaps ? 'c' : '', fmt.label ? 'l' : '',
330
- fmt.dots ? 'd' : '', fmt.proper ? 'p' : '', fmt.book ? 'k' : '', fmt.tcy ? 't' : '', fmt.orientation ?? '',
469
+ fmt.dots ? `d${fmt.dotsStyle ?? ''}` : '', fmt.proper ? 'p' : '', fmt.book ? 'k' : '', fmt.side ? `s${fmt.side.style}${fmt.side.position}` : '', fmt.tcy ? 't' : '', fmt.orientation ?? '',
331
470
  fmt.warichu ? 'w' : '', fmt.done ? 'x' : '', fmt.lang ?? '',
332
471
  ].join('|');
333
472
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inline.js","sourceRoot":"","sources":["../../src/reflowable/inline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inline.js","sourceRoot":"","sources":["../../src/reflowable/inline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=japanese.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"japanese.test.d.ts","sourceRoot":"","sources":["../../src/reflowable/japanese.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,178 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { baseConfig, layOut } from './__tests__/vdt';
3
+ import { checkXml } from './__tests__/xml';
4
+ import { buildReflowablePublication } from '.';
5
+ import { appendLine } from './inline';
6
+ import { buildOpf } from '../package/pack';
7
+ // #428: a Japanese book in reflowable EPUB keeps what the print shows in
8
+ // CSS reading systems understand: kinsoku as `line-break`, burasagari as
9
+ // `hanging-punctuation`, the configured emphasis marks, upright digits and
10
+ // !? pairs, the space after ?!, and jukugo ruby in one <ruby>.
11
+ const ja = (extra = {}) => ({ ...baseConfig, locale: 'ja', ...extra });
12
+ const jaVertical = (extra = {}) => ja({ layout: { writingMode: 'vertical-rl' }, page: { ...baseConfig.page, binding: 'right' }, ...extra });
13
+ async function render(docs, language = 'ja') {
14
+ const pub = await buildReflowablePublication(docs, { layout: 'reflowable', metadata: { title: 'こころ', language, modified: new Date(Date.UTC(2026, 9, 5)) } });
15
+ const xhtml = pub.items.filter((i) => i.mediaType === 'application/xhtml+xml').map((i) => i.data);
16
+ for (const doc of xhtml)
17
+ expect(checkXml(doc).errors).toEqual([]);
18
+ const css = pub.items.filter((i) => i.mediaType === 'text/css').map((i) => String(i.data)).join('\n');
19
+ return { pub, all: xhtml.join('\n'), css };
20
+ }
21
+ /** The declarations of the first rule of `selector` in `css`. */
22
+ const ruleOf = (css, selector) => {
23
+ const at = css.indexOf(`\n${selector} {`);
24
+ return at < 0 ? '' : css.slice(at, css.indexOf('}', at));
25
+ };
26
+ const TEXT = '吾輩は{猫|ねこ}である。名前はまだ無い。*学ぶ*こと、何でも薄暗い12月の所で、なに!?と2026年に泣いていた。';
27
+ describe('Japanese stylesheet', () => {
28
+ it('writes the kinsoku level as line-break and burasagari as hanging-punctuation', async () => {
29
+ const levels = [
30
+ [undefined, 'strict'], ['ja-very-strict', 'strict'], ['ja-strict', 'normal'], ['ja-loose', 'loose'],
31
+ ];
32
+ for (const [lineBreak, css] of levels) {
33
+ const body = ruleOf((await render([layOut(TEXT, ja(lineBreak ? { cjk: { lineBreak } } : {}))])).css, 'body');
34
+ expect(body, lineBreak).toContain(`line-break: ${css};\n -epub-line-break: ${css};\n -webkit-line-break: ${css};`);
35
+ expect(body, lineBreak).toContain('hanging-punctuation: allow-end;');
36
+ }
37
+ const forced = ruleOf((await render([layOut(TEXT, ja({ cjk: { hangingPunctuation: 'force' } }))])).css, 'body');
38
+ expect(forced).toContain('hanging-punctuation: force-end;');
39
+ const none = ruleOf((await render([layOut(TEXT, ja({ cjk: { hangingPunctuation: 'none' } }))])).css, 'body');
40
+ expect(none).not.toContain('hanging-punctuation');
41
+ // A Chinese level in a Japanese book writes no line-break, as before.
42
+ expect(ruleOf((await render([layOut(TEXT, ja({ cjk: { lineBreak: 'strict' } }))])).css, 'body')).not.toContain('line-break');
43
+ });
44
+ it('writes keep-all for a book or a paragraph style that breaks lines between phrases (#463)', async () => {
45
+ const PHRASES = 'むかし むかし、 ある ところに おじいさんと おばあさんが すんで いました。';
46
+ const keepAll = (await render([layOut(PHRASES, ja({ cjk: { wordBreak: 'keep-all' } }))])).css;
47
+ expect(ruleOf(keepAll, 'body')).toContain('word-break: keep-all;');
48
+ const styled = (await render([layOut(PHRASES, ja({ paragraphStyles: [{ id: 'primer', wordBreak: 'keep-all' }, { id: 'prose', wordBreak: 'normal' }] }))])).css;
49
+ expect(ruleOf(styled, 'body')).not.toContain('word-break');
50
+ expect(ruleOf(styled, 'p.ps-primer, div.pt-verse.ps-primer')).toContain('word-break: keep-all;');
51
+ expect(ruleOf(styled, 'p.ps-prose, div.pt-verse.ps-prose')).toContain('word-break: normal;');
52
+ expect((await render([layOut(PHRASES, ja())])).css).not.toContain('word-break');
53
+ });
54
+ it('writes nothing new for a Chinese or a Latin book', async () => {
55
+ for (const config of [
56
+ { ...baseConfig, locale: 'zh-Hans', layout: { writingMode: 'vertical-rl' } },
57
+ { ...baseConfig, locale: 'zh-Hant-TW', cjk: { hangingPunctuation: 'allow' } },
58
+ baseConfig,
59
+ ]) {
60
+ const { css, all } = await render([layOut('天地玄黄,*宇宙*洪荒?日月12盈昃!?', config)], 'zh-Hans');
61
+ expect(css).not.toMatch(/line-break|hanging-punctuation|word-break|\.pt-dots\.pt-dots-/);
62
+ expect(all).not.toContain('pt-tcy');
63
+ expect(all).not.toContain(' ');
64
+ expect(all).not.toMatch(/pt-dots-/);
65
+ }
66
+ });
67
+ });
68
+ describe('Japanese emphasis marks', () => {
69
+ it('writes the sesame over horizontal text with its own classes and rules', async () => {
70
+ const { all, css } = await render([layOut(TEXT, ja())]);
71
+ expect(all).toContain('<span class="pt-dots pt-dots-filled-sesame pt-dots-over">学ぶ</span>');
72
+ expect(ruleOf(css, '.pt-dots.pt-dots-filled-sesame')).toContain('text-emphasis-style: filled sesame;\n -epub-text-emphasis-style: filled sesame;\n -webkit-text-emphasis-style: filled sesame;');
73
+ expect(ruleOf(css, '.pt-dots.pt-dots-over')).toContain('text-emphasis-position: over right;\n -webkit-text-emphasis-position: over right;');
74
+ // The Chinese rule stays as it was, under the others.
75
+ expect(ruleOf(css, '.pt-dots')).toContain('text-emphasis: filled dot;');
76
+ expect(css.indexOf('\n.pt-dots {')).toBeLessThan(css.indexOf('\n.pt-dots.pt-dots-filled-sesame {'));
77
+ });
78
+ it('right of vertical text is the default side: only the shape is classed', async () => {
79
+ const { all, css } = await render([layOut(TEXT, jaVertical())]);
80
+ expect(all).toContain('<span class="pt-dots pt-dots-filled-sesame">学ぶ</span>');
81
+ expect(css).not.toContain('.pt-dots.pt-dots-over');
82
+ });
83
+ it('follows cjk.emphasisMark and the attributes of :dots, left of vertical text too', async () => {
84
+ const { all, css } = await render([layOut(':dots[白丸]{style=circle fill=open}と:dots[左]{pos=under}と*点*', jaVertical({ cjk: { emphasisMark: { style: 'dot' } } }))]);
85
+ expect(all).toContain('<span class="pt-dots pt-dots-open-circle">白丸</span>');
86
+ expect(all).toContain('<span class="pt-dots pt-dots-under">左</span>');
87
+ expect(all).toContain('<span class="pt-dots">点</span>');
88
+ expect(ruleOf(css, '.pt-dots.pt-dots-open-circle')).toContain('text-emphasis-style: open circle;');
89
+ expect(ruleOf(css, '.pt-dots.pt-dots-under')).toContain('text-emphasis-position: under left;');
90
+ });
91
+ });
92
+ describe('Japanese vertical text', () => {
93
+ it('sets the short numbers and the !? pairs the print sets upright in one cell as .pt-tcy', async () => {
94
+ const { all } = await render([layOut(TEXT, jaVertical())]);
95
+ expect(all).toContain('薄暗い<span class="pt-tcy">12</span>月');
96
+ expect(all).toContain('なに<span class="pt-tcy">!?</span>と');
97
+ // Four digits run sideways in the print (uprightDigits 2): plain.
98
+ expect(all).toContain('と2026年');
99
+ // An author's :tcy is written once.
100
+ const own = (await render([layOut('第:tcy[100]号', jaVertical())])).all;
101
+ expect(own).toContain('第<span class="pt-tcy">100</span>号');
102
+ expect(own).not.toContain('pt-tcy"><span class="pt-tcy');
103
+ });
104
+ it('follows cjk.uprightDigits, and horizontal text has none', async () => {
105
+ expect((await render([layOut(TEXT, jaVertical({ cjk: { uprightDigits: 4 } }))])).all).toContain('<span class="pt-tcy">2026</span>');
106
+ expect((await render([layOut(TEXT, jaVertical({ cjk: { uprightDigits: 0 } }))])).all).not.toContain('<span class="pt-tcy">12</span>');
107
+ expect((await render([layOut(TEXT, ja())])).all).not.toContain('pt-tcy');
108
+ });
109
+ it('names the writing mode in the package', async () => {
110
+ const { pub } = await render([layOut(TEXT, jaVertical())]);
111
+ expect(pub.writingMode).toBe('vertical-rl');
112
+ expect(pub.pageProgression).toBe('rtl');
113
+ expect(buildOpf(pub)).toContain('<meta name="primary-writing-mode" content="vertical-rl"/>');
114
+ const horizontal = (await render([layOut(TEXT, ja())])).pub;
115
+ expect(horizontal.writingMode).toBeUndefined();
116
+ expect(buildOpf(horizontal)).not.toContain('primary-writing-mode');
117
+ });
118
+ });
119
+ describe('the space after ? and !', () => {
120
+ it('is an ideographic space inside a line and where a printed line ended on the mark', async () => {
121
+ const { all } = await render([layOut('なぜ?それは「本当!」と言った。どうして!?なぜ', ja())]);
122
+ // None before a closing bracket or between two marks.
123
+ expect(all).toContain('なぜ? それは「本当!」と言った。どうして!? なぜ');
124
+ const sink = { inl: [] };
125
+ const ctx = { doc: 0, lang: 'ja', basePx: 16, noteRef: () => true, spaceAfterQuestion: true };
126
+ appendLine(sink, line([seg('どこで生れたかとんと見当がつかぬ?')]), ctx);
127
+ appendLine(sink, line([seg('何でも')]), ctx);
128
+ appendLine(sink, line([seg('なぜ?')]), ctx);
129
+ appendLine(sink, line([seg('」と')]), ctx);
130
+ expect(sink.inl.map((i) => (i.t === 'text' ? i.text : '')).join('')).toBe('どこで生れたかとんと見当がつかぬ? 何でもなぜ?」と');
131
+ });
132
+ it('keeps a space the author typed and writes none with the setting off', async () => {
133
+ expect((await render([layOut('なぜ? それは', ja())])).all).toContain('なぜ? それは');
134
+ expect((await render([layOut('なぜ?それは', ja({ cjk: { spaceAfterQuestion: false } }))])).all).toContain('なぜ?それは');
135
+ });
136
+ });
137
+ const seg = (text, extra = {}) => ({ kind: 'text', text, width: 0, ...extra });
138
+ const line = (segments) => ({
139
+ text: segments.map((s) => s.text).join(''),
140
+ bbox: { x: 0, y: 0, width: 0, height: 0 },
141
+ baseline: 0,
142
+ hyphenated: false,
143
+ segments,
144
+ });
145
+ /** A ruby base of the annotation `id` (`VDTRuby.id`, #422). */
146
+ const base = (text, reading, id, extra = {}) => seg(text, { ruby: { text: reading, fontString: '8px serif', baseWidth: 0, rtWidth: 0, position: 'over', runs: [], ...(id !== undefined ? { id } : {}) }, ...extra });
147
+ describe('jukugo ruby', () => {
148
+ const ctx = { doc: 0, lang: 'ja', basePx: 16, noteRef: () => true };
149
+ const xhtml = (sink) => sink.inl.map((i) => (i.t === 'raw' ? i.xhtml : i.t === 'text' ? i.text : '')).join('');
150
+ it('sets the bases of one annotation in one <ruby>, a reading after each', () => {
151
+ const sink = { inl: [] };
152
+ appendLine(sink, line([base('東', 'とう', 1), base('京', 'きょう', 1), seg('と'), base('京', 'きょう', 2), base('都', 'と', 2), base('猫', 'ねこ')]), ctx);
153
+ expect(xhtml(sink)).toBe('<ruby>東<rt>とう</rt>京<rt>きょう</rt></ruby>と<ruby>京<rt>きょう</rt>都<rt>と</rt></ruby><ruby>猫<rt>ねこ</rt></ruby>');
154
+ });
155
+ it('gives a word a line break cut its one <ruby> back', () => {
156
+ const sink = { inl: [] };
157
+ appendLine(sink, line([seg('に'), base('東', 'とう', 4)]), ctx);
158
+ appendLine(sink, line([base('京', 'きょう', 4), seg('で')]), ctx);
159
+ expect(xhtml(sink)).toBe('に<ruby>東<rt>とう</rt>京<rt>きょう</rt></ruby>で');
160
+ });
161
+ it('keeps bases without an id apart (a Chinese mono ruby), and annotations under two links', () => {
162
+ const sink = { inl: [] };
163
+ appendLine(sink, line([base('紅', 'hóng'), base('樓', 'lóu')]), ctx);
164
+ expect(xhtml(sink)).toBe('<ruby>紅<rt>hóng</rt></ruby><ruby>樓<rt>lóu</rt></ruby>');
165
+ const linked = { inl: [] };
166
+ appendLine(linked, line([base('東', 'とう', 1), base('京', 'きょう', 1, { href: 'https://example.com' })]), ctx);
167
+ expect(linked.inl.filter((i) => i.t === 'raw')).toHaveLength(2);
168
+ });
169
+ });
170
+ describe('Japanese navigation', () => {
171
+ it('names the landmarks in Japanese', async () => {
172
+ const { pub } = await render([layOut('# 第一章\n\n本文。', ja())]);
173
+ expect(pub.landmarks.find((l) => l.type === 'bodymatter')?.label).toBe('本文');
174
+ const en = await buildReflowablePublication([layOut('# One\n\nText.')], { layout: 'reflowable', metadata: { title: 'Book', language: 'en' } });
175
+ expect(en.landmarks.find((l) => l.type === 'bodymatter')?.label).toBe('Start of content');
176
+ });
177
+ });
178
+ //# sourceMappingURL=japanese.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"japanese.test.js","sourceRoot":"","sources":["../../src/reflowable/japanese.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { VDTResourceVideo } from 'postext';
1
2
  /** Where a link goes, resolved to `file#id` by the registry. */
2
3
  export type LinkTarget =
3
4
  /** A URL as written (`https:`, `mailto:`…, or a relative one). */
@@ -39,13 +40,26 @@ export interface Format {
39
40
  label?: boolean;
40
41
  /** Chinese emphasis dots / proper-name line / book-title line. */
41
42
  dots?: boolean;
43
+ /** The classes emphasis marks other than the filled dot on the default
44
+ * side add to `pt-dots` (`inline.ts` `dotsClasses`, #428). */
45
+ dotsStyle?: string;
42
46
  proper?: boolean;
43
47
  book?: boolean;
48
+ /** A side line (傍線, `:sideline[…]`): how it is drawn and on which
49
+ * side of the text in its flow (over: right of vertical text). */
50
+ side?: {
51
+ style: 'solid' | 'double' | 'wavy' | 'dotted';
52
+ position: 'over' | 'under';
53
+ };
44
54
  /** Vertical text: tate-chu-yoko, author's orientation. */
45
55
  tcy?: boolean;
46
56
  orientation?: 'upright' | 'sideways';
47
57
  /** A warichu note (two small rows in print, one small run here). */
48
58
  warichu?: boolean;
59
+ /** A footnote marker set apart from the line (`footnotes.markerPosition`,
60
+ * JLReq §4.2.3): in the line gap (`'side'`) or flush right of a
61
+ * vertical line (`'right'`). */
62
+ note?: 'side' | 'right';
49
63
  /** A completed task's text. */
50
64
  done?: boolean;
51
65
  /** The language of the run when it differs from its document's: the
@@ -67,12 +81,15 @@ export type InlineItem = {
67
81
  link?: LinkTarget;
68
82
  lvl?: number;
69
83
  }
70
- /** Markup written as is (maths, ruby, chips, swatches). */
84
+ /** Markup written as is (maths, ruby, chips, swatches). `ruby`: the
85
+ * annotation a `<ruby>` holds (`VDTRuby.id`), which the next base of
86
+ * the same annotation joins, on this line or the next (#428). */
71
87
  | {
72
88
  t: 'raw';
73
89
  xhtml: string;
74
90
  link?: LinkTarget;
75
91
  lvl?: number;
92
+ ruby?: string;
76
93
  }
77
94
  /** The start of a printed page (`epub:type="pagebreak"`). */
78
95
  | {
@@ -138,6 +155,8 @@ export interface FigureNode {
138
155
  caption: InlineItem[];
139
156
  captionAbove: boolean;
140
157
  note: InlineItem[];
158
+ /** A video resource (#454): what it plays; `fileId` is its poster. */
159
+ video?: VDTResourceVideo;
141
160
  }
142
161
  export interface TableCellNode {
143
162
  row: number;