postext-epub 0.49.6 → 0.49.8

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 (36) hide show
  1. package/dist/package/pack.d.ts.map +1 -1
  2. package/dist/package/pack.js +2 -1
  3. package/dist/package/pack.js.map +1 -1
  4. package/dist/reflowable/css/apparatus.d.ts +17 -0
  5. package/dist/reflowable/css/apparatus.d.ts.map +1 -0
  6. package/dist/reflowable/css/apparatus.js +127 -0
  7. package/dist/reflowable/css/apparatus.js.map +1 -0
  8. package/dist/reflowable/css/boxes.d.ts +20 -0
  9. package/dist/reflowable/css/boxes.d.ts.map +1 -0
  10. package/dist/reflowable/css/boxes.js +134 -0
  11. package/dist/reflowable/css/boxes.js.map +1 -0
  12. package/dist/reflowable/css/figures.d.ts +16 -0
  13. package/dist/reflowable/css/figures.d.ts.map +1 -0
  14. package/dist/reflowable/css/figures.js +174 -0
  15. package/dist/reflowable/css/figures.js.map +1 -0
  16. package/dist/reflowable/css/helpers.d.ts +32 -0
  17. package/dist/reflowable/css/helpers.d.ts.map +1 -0
  18. package/dist/reflowable/css/helpers.js +77 -0
  19. package/dist/reflowable/css/helpers.js.map +1 -0
  20. package/dist/reflowable/css/text.d.ts +19 -0
  21. package/dist/reflowable/css/text.d.ts.map +1 -0
  22. package/dist/reflowable/css/text.js +151 -0
  23. package/dist/reflowable/css/text.js.map +1 -0
  24. package/dist/reflowable/css/types.d.ts +46 -0
  25. package/dist/reflowable/css/types.d.ts.map +1 -0
  26. package/dist/reflowable/css/types.js +4 -0
  27. package/dist/reflowable/css/types.js.map +1 -0
  28. package/dist/reflowable/css/verse.d.ts +18 -0
  29. package/dist/reflowable/css/verse.d.ts.map +1 -0
  30. package/dist/reflowable/css/verse.js +126 -0
  31. package/dist/reflowable/css/verse.js.map +1 -0
  32. package/dist/reflowable/css.d.ts +4 -52
  33. package/dist/reflowable/css.d.ts.map +1 -1
  34. package/dist/reflowable/css.js +24 -736
  35. package/dist/reflowable/css.js.map +1 -1
  36. package/package.json +3 -3
@@ -0,0 +1,126 @@
1
+ // The book stylesheet's rules for classical verse, stanzas, line numbers,
2
+ // tab stops, code listings, drop caps and text wrap (#1276: split out of
3
+ // css.ts).
4
+ import { rule } from './helpers.js';
5
+ import { resolvedCodeStyle, dimensionToPx } from 'postext';
6
+ import { round } from '../inline.js';
7
+ export function createVerseRules(deps) {
8
+ const { config, options, dpi, body, bodyPx, fam, em, lh, color, px, out } = deps;
9
+ // --- classical verse -----------------------------------------------------
10
+ // A bayt is a row of two equal hemistich columns (and the ornament's,
11
+ // empty without one): the ṣadr from the start side, the ʿajuz flush
12
+ // with the end side, so the rhymes stand in one column as in print. On
13
+ // a narrow screen the two halves stagger, the ʿajuz on its own line
14
+ // flush with the end, as the print does when they do not fit.
15
+ // A stanza set line by line (#620): its lines of verse, a blank line
16
+ // between stanzas, never hyphenated; each line's hang is on its own
17
+ // element.
18
+ if (options.stanzas) {
19
+ out.push(rule('.pt-stanza', ['margin: 0 0 1em', 'text-indent: 0', 'text-align: start', 'hyphens: manual']));
20
+ out.push(rule('.pt-verse-line', ['display: block']));
21
+ }
22
+ // Line numbers (#621): a poem's every Nth line carries its number in a
23
+ // margin on the start side of the stanza, out of the reading order.
24
+ if (options.stanzas && options.lineNumbers) {
25
+ out.push(rule('.pt-stanza', ['padding-left: 3em']));
26
+ out.push(rule('.pt-verse-line', ['position: relative']));
27
+ out.push(rule('.pt-line-number', [
28
+ 'position: absolute', 'right: 100%', 'margin-right: 0.8em', 'text-indent: 0', 'font-size: 0.8em',
29
+ 'white-space: nowrap', '-webkit-user-select: none', 'user-select: none',
30
+ ]));
31
+ out.push(rule('[dir="rtl"] .pt-stanza, .pt-stanza[dir="rtl"]', ['padding-left: 0', 'padding-right: 3em']));
32
+ out.push(rule('[dir="rtl"] .pt-line-number, .pt-stanza[dir="rtl"] .pt-line-number', ['right: auto', 'left: 100%', 'margin-right: 0', 'margin-left: 0.8em']));
33
+ }
34
+ // Tab stops (#622): a line holding tabs is a row of its parts; a filler
35
+ // (with its leader as a border on the baseline) pushes the part after it
36
+ // to the row's end, a start stop's part keeps its printed width.
37
+ if (options.tabs) {
38
+ out.push(rule('.pt-tab-row', ['display: flex', 'align-items: baseline', 'text-indent: 0']));
39
+ out.push(rule('.pt-tab-part', ['flex: 0 1 auto']));
40
+ out.push(rule('.pt-tab-rest', ['flex: 1 1 0']));
41
+ out.push(rule('.pt-tab-fill', ['flex: 1 1 auto', 'min-width: 1em', 'margin: 0 0.5em']));
42
+ out.push(rule('.pt-tab-gap', ['flex: 0 0 0.5em']));
43
+ out.push(rule('.pt-leader-dots', ['border-bottom: 0.12em dotted currentColor']));
44
+ out.push(rule('.pt-leader-rule', ['border-bottom: 0.06em solid currentColor']));
45
+ }
46
+ // Code listings (#624): the box of `codeStyle` around `<pre><code>`, the
47
+ // lines as written in the code face, turned over by the reading system
48
+ // when the screen is narrow (`pre-wrap`); numbers and wrap left out of a
49
+ // selection; the highlighted lines tinted.
50
+ if (options.code) {
51
+ const cs = resolvedCodeStyle(config);
52
+ const codePx = dimensionToPx(cs.fontSize, dpi, bodyPx);
53
+ const bodyLead = body.lineHeight.unit === 'em' || body.lineHeight.unit === 'rem' ? body.lineHeight.value * bodyPx : px(body.lineHeight);
54
+ const codeLead = cs.lineHeight ? lh(cs.lineHeight, codePx) : `line-height: ${round(bodyLead / codePx)}`;
55
+ const len = (d) => em(d, codePx);
56
+ out.push(rule('.pt-code-box', [
57
+ 'display: block',
58
+ `margin: ${em(cs.marginTop, codePx)} 0 ${em(cs.marginBottom, codePx)}`,
59
+ `font-size: ${round(codePx / bodyPx)}em`,
60
+ cs.backgroundEnabled && color(cs.background, 'background-color'),
61
+ cs.border.enabled && `border: ${round(px(cs.border.width) / codePx)}em solid ${cs.border.color.hex}`,
62
+ px(cs.borderRadius, codePx) > 0 && `border-radius: ${len(cs.borderRadius)}`,
63
+ `padding: ${len(cs.padding.top)} ${len(cs.padding.right)} ${len(cs.padding.bottom)} ${len(cs.padding.left)}`,
64
+ 'text-indent: 0',
65
+ ]));
66
+ out.push(rule('.pt-code-title', [fam(cs.titleStyle?.fontFamily ?? cs.fontFamily), 'font-weight: bold', 'margin: 0 0 0.4em', 'text-indent: 0']));
67
+ out.push(rule('pre.pt-code', [
68
+ fam(cs.fontFamily), 'font-size: 1em', codeLead, 'margin: 0', color(cs.color),
69
+ 'white-space: pre-wrap', 'overflow-wrap: anywhere', `tab-size: ${cs.tabSize}`, `-moz-tab-size: ${cs.tabSize}`,
70
+ 'text-align: left', 'hyphens: none',
71
+ ]));
72
+ out.push(rule('pre.pt-code code', ['font: inherit', 'background: none']));
73
+ out.push(rule('.pt-code-num', [color(cs.lineNumberColor), 'margin-right: 1em', '-webkit-user-select: none', 'user-select: none']));
74
+ out.push(rule('mark.pt-code-hl', [color(cs.highlightBackground, 'background-color'), 'color: inherit']));
75
+ }
76
+ // Drop caps (#623): CSS initial letters, `lines` tall, sunk `sink`
77
+ // lines; a reading system without `initial-letter` floats the letter,
78
+ // about as tall, on the start side.
79
+ if (options.dropCaps && options.dropCaps.length > 0) {
80
+ out.push(rule('.pt-has-dropcap', ['text-indent: 0']));
81
+ out.push(rule('.pt-dropcap', ['float: left', 'line-height: 0.85', 'margin: 0.05em 0.08em 0 0', 'text-indent: 0']));
82
+ out.push(rule('[dir="rtl"] .pt-dropcap, p[dir="rtl"] .pt-dropcap', ['float: right', 'margin: 0.05em 0 0 0.08em']));
83
+ for (const shape of options.dropCaps) {
84
+ const [lines, sink] = shape.split('-').map(Number);
85
+ out.push(rule(`.pt-dropcap-${shape}`, [`font-size: ${round(lines * 1.25)}em`]));
86
+ out.push(`@supports (initial-letter: 1) or (-webkit-initial-letter: 1) {\n .pt-dropcap-${shape} { float: none; margin: 0 0.08em 0 0; font-size: 1em; line-height: inherit; -webkit-initial-letter: ${lines} ${sink}; initial-letter: ${lines} ${sink}; }\n}\n`);
87
+ }
88
+ }
89
+ // Text wrap (#627): a figure or a box floated to its side; what cannot
90
+ // run beside it in print (headings, other figures, tables, boxes,
91
+ // formulas, poems) clears it.
92
+ if (options.wraps) {
93
+ out.push(rule('.pt-wrap', ['margin-top: 0', 'margin-bottom: 1em']));
94
+ out.push(rule('.pt-wrap-left', ['float: left', 'clear: left']));
95
+ out.push(rule('.pt-wrap-right', ['float: right', 'clear: right']));
96
+ out.push(rule('.pt-wrap img', ['max-width: 100%', 'height: auto']));
97
+ out.push(rule('h1, h2, h3, h4, h5, h6, figure:not(.pt-wrap), table, aside:not(.pt-wrap), .pt-math-display, .pt-stanza, .pt-verse', ['clear: both']));
98
+ }
99
+ if (options.verse) {
100
+ // The poem as wide as its widest bayt, centred: its hemistichs share
101
+ // one width, as in print, instead of drifting to the screen's edges.
102
+ out.push(rule('.pt-verse', ['width: fit-content', 'max-width: 100%', 'margin: 0.5em auto', 'text-indent: 0']));
103
+ out.push(rule('.pt-bayt', [
104
+ 'display: grid',
105
+ 'grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr)',
106
+ 'column-gap: 1em',
107
+ 'margin: 0',
108
+ 'text-indent: 0',
109
+ 'text-align: start',
110
+ 'hyphens: manual',
111
+ 'page-break-inside: avoid',
112
+ 'break-inside: avoid',
113
+ ]));
114
+ out.push(rule('.pt-sadr', ['grid-column: 1', 'text-align: start']));
115
+ out.push(rule('.pt-verse-ornament', ['grid-column: 2', 'text-align: center']));
116
+ out.push(rule('.pt-ajuz', ['grid-column: 3', 'text-align: end']));
117
+ out.push(rule('.pt-bayt-single .pt-sadr', ['grid-column: 1 / -1', 'text-align: center']));
118
+ out.push('@media (max-width: 30em) {\n' +
119
+ ' .pt-bayt { display: block; }\n' +
120
+ ' .pt-sadr, .pt-ajuz { display: block; }\n' +
121
+ ' .pt-verse-ornament { display: none; }\n' +
122
+ '}\n');
123
+ }
124
+ return {};
125
+ }
126
+ //# sourceMappingURL=verse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verse.js","sourceRoot":"","sources":["../../../src/reflowable/css/verse.ts"],"names":[],"mappings":"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"}
@@ -1,55 +1,7 @@
1
- import type { ResolvedConfig } from 'postext';
2
- /** What the walk found that decides the writing mode of the book. */
3
- export interface StylesheetOptions {
4
- /** Vertical Chinese / Japanese (`layout.writingMode: 'vertical-rl'`). */
5
- vertical: boolean;
6
- /** The book sets a `:::verse` poem (its rules are written only then). */
7
- verse?: boolean;
8
- /** The book sets a poem line by line (#620): the stanza rules. */
9
- stanzas?: boolean;
10
- /** Lines of verse carry their numbers (#621): the margin they stand in. */
11
- lineNumbers?: boolean;
12
- /** A line holds a tab at its stop (#622): the tab rows. */
13
- tabs?: boolean;
14
- /** The book sets a code listing (#624): the listing's box and lines. */
15
- code?: boolean;
16
- /** The drop caps the paragraphs open with (#623), as `lines-sink`. */
17
- dropCaps?: readonly string[];
18
- /** A figure or a box text wraps round (#627): the float rules. */
19
- wraps?: boolean;
20
- /** A picture carries its labels drawn over it (#955): the box and the
21
- * layer they are drawn in. */
22
- labelLayers?: boolean;
23
- /** Classes of emphasis marks the text uses beyond `pt-dots` (the
24
- * filled dot on the default side): their rules are written only then
25
- * (`inline.ts` `dotsClasses`, #428). */
26
- dots?: readonly string[];
27
- /** The book sets composed pages (#862): the frame rules, and the
28
- * callout styles their frames are set in (their boxes are styled on a
29
- * frame's block too). */
30
- composed?: {
31
- frameStyles: readonly string[];
32
- };
33
- }
34
- /** A family as a CSS value: the family quoted, then a generic fallback. A
35
- * feature family (#1237, `Lora@onum`) is its base family's. */
36
- export declare function familyStack(family: string): string;
37
- /** The family names the stylesheet asks for (to warn about missing
38
- * faces). */
39
- export declare function familyName(family: string): string;
40
- /** A rule of the stylesheet: its selector and declarations
41
- * (`property: value`). */
42
- export interface CssRule {
43
- selector: string;
44
- decls: string[];
45
- }
46
- /** The book's stylesheet: its text, the families it names, and its rules
47
- * (at-rules aside), which {@link stylesheetOverrides} compares. */
48
- export interface Stylesheet {
49
- css: string;
50
- families: Set<string>;
51
- rules: CssRule[];
52
- }
1
+ import { type ResolvedConfig } from 'postext';
2
+ import type { StylesheetOptions, Stylesheet, CssRule } from './css/types.js';
3
+ export type { StylesheetOptions, CssRule, Stylesheet } from './css/types.js';
4
+ export { familyStack, familyName } from './css/helpers.js';
53
5
  export declare function bookStylesheet(config: ResolvedConfig, fontFaces: string, options: StylesheetOptions): Stylesheet;
54
6
  /**
55
7
  * What a chapter's stylesheet changes in the book's (`base`): each rule of
@@ -1 +1 @@
1
- {"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../src/reflowable/css.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAuC,cAAc,EAA4B,MAAM,SAAS,CAAC;AAK7G,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wEAAwE;IACxE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sEAAsE;IACtE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,kEAAkE;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;mCAC+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;6CAEyC;IACzC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB;;8BAE0B;IAC1B,QAAQ,CAAC,EAAE;QAAE,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;CAC/C;AA0CD;gEACgE;AAChE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED;cACc;AACd,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAUD;2BAC2B;AAC3B,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAmBD;oEACoE;AACpE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,UAAU,CA4rBhH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CA2BjG;AAED;;;mEAGmE;AACnE,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GAAG,cAAc,CAqB3H"}
1
+ {"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../src/reflowable/css.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,cAAc,EAA6G,MAAM,SAAS,CAAC;AAGzJ,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAO7E,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3D,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAgEhH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CA2BjG;AAED;;;mEAGmE;AACnE,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GAAG,cAAc,CAqB3H"}