@u1f992/vivliostyle-index 0.2.4 → 0.3.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.
Files changed (102) hide show
  1. package/README.md +230 -24
  2. package/dist/document-renderer.d.ts +7 -0
  3. package/dist/document-renderer.d.ts.map +1 -0
  4. package/dist/document-renderer.js +86 -0
  5. package/dist/document-renderer.js.map +1 -0
  6. package/dist/file-system.d.ts +11 -0
  7. package/dist/file-system.d.ts.map +1 -0
  8. package/dist/file-system.js +93 -0
  9. package/dist/file-system.js.map +1 -0
  10. package/dist/html.d.ts +4 -0
  11. package/dist/html.d.ts.map +1 -0
  12. package/dist/html.js +9 -0
  13. package/dist/html.js.map +1 -0
  14. package/dist/id.d.ts +5 -0
  15. package/dist/id.d.ts.map +1 -0
  16. package/dist/id.js +30 -0
  17. package/dist/id.js.map +1 -0
  18. package/dist/index-builder.d.ts +15 -0
  19. package/dist/index-builder.d.ts.map +1 -0
  20. package/dist/index-builder.js +138 -0
  21. package/dist/index-builder.js.map +1 -0
  22. package/dist/index-state.d.ts +29 -0
  23. package/dist/index-state.d.ts.map +1 -0
  24. package/dist/index-state.js +95 -0
  25. package/dist/index-state.js.map +1 -0
  26. package/dist/index.d.ts +45 -15
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +53 -122
  29. package/dist/index.js.map +1 -1
  30. package/dist/instruction.d.ts +37 -0
  31. package/dist/instruction.d.ts.map +1 -0
  32. package/dist/instruction.js +267 -0
  33. package/dist/instruction.js.map +1 -0
  34. package/dist/location.d.ts +2 -0
  35. package/dist/location.d.ts.map +1 -0
  36. package/dist/location.js +17 -0
  37. package/dist/location.js.map +1 -0
  38. package/dist/messages.d.ts +24 -0
  39. package/dist/messages.d.ts.map +1 -0
  40. package/dist/messages.js +114 -0
  41. package/dist/messages.js.map +1 -0
  42. package/dist/model.d.ts +77 -36
  43. package/dist/model.d.ts.map +1 -1
  44. package/dist/model.js +112 -148
  45. package/dist/model.js.map +1 -1
  46. package/dist/platform.d.ts +4 -0
  47. package/dist/platform.d.ts.map +1 -0
  48. package/dist/platform.js +13 -0
  49. package/dist/platform.js.map +1 -0
  50. package/dist/profile.d.ts +11 -0
  51. package/dist/profile.d.ts.map +1 -0
  52. package/dist/profile.js +17 -0
  53. package/dist/profile.js.map +1 -0
  54. package/dist/render.d.ts +175 -0
  55. package/dist/render.d.ts.map +1 -0
  56. package/dist/render.js +285 -0
  57. package/dist/render.js.map +1 -0
  58. package/dist/sort.d.ts +22 -16
  59. package/dist/sort.d.ts.map +1 -1
  60. package/dist/sort.js +91 -53
  61. package/dist/sort.js.map +1 -1
  62. package/dist/source-snapshot.d.ts +21 -0
  63. package/dist/source-snapshot.d.ts.map +1 -0
  64. package/dist/source-snapshot.js +76 -0
  65. package/dist/source-snapshot.js.map +1 -0
  66. package/dist/target.d.ts +9 -0
  67. package/dist/target.d.ts.map +1 -0
  68. package/dist/target.js +17 -0
  69. package/dist/target.js.map +1 -0
  70. package/dist/template.d.ts +4 -0
  71. package/dist/template.d.ts.map +1 -0
  72. package/dist/template.js +15 -0
  73. package/dist/template.js.map +1 -0
  74. package/package.json +25 -17
  75. package/dist/command/expand.d.ts +0 -5
  76. package/dist/command/expand.d.ts.map +0 -1
  77. package/dist/command/expand.js +0 -193
  78. package/dist/command/expand.js.map +0 -1
  79. package/dist/command/insert-page.d.ts +0 -5
  80. package/dist/command/insert-page.d.ts.map +0 -1
  81. package/dist/command/insert-page.js +0 -32
  82. package/dist/command/insert-page.js.map +0 -1
  83. package/dist/command/insert-range.d.ts +0 -21
  84. package/dist/command/insert-range.d.ts.map +0 -1
  85. package/dist/command/insert-range.js +0 -61
  86. package/dist/command/insert-range.js.map +0 -1
  87. package/dist/command/insert-reference.d.ts +0 -4
  88. package/dist/command/insert-reference.d.ts.map +0 -1
  89. package/dist/command/insert-reference.js +0 -58
  90. package/dist/command/insert-reference.js.map +0 -1
  91. package/dist/command.d.ts +0 -25
  92. package/dist/command.d.ts.map +0 -1
  93. package/dist/command.js +0 -159
  94. package/dist/command.js.map +0 -1
  95. package/dist/resolve.d.ts +0 -3
  96. package/dist/resolve.d.ts.map +0 -1
  97. package/dist/resolve.js +0 -95
  98. package/dist/resolve.js.map +0 -1
  99. package/dist/util.d.ts +0 -10
  100. package/dist/util.d.ts.map +0 -1
  101. package/dist/util.js +0 -27
  102. package/dist/util.js.map +0 -1
package/dist/model.js CHANGED
@@ -1,157 +1,121 @@
1
- import { toText } from "hast-util-to-text";
2
- const sequentialIdBrand = Symbol();
3
- let counter = 0n;
4
- function getId() {
5
- counter++;
6
- return counter.toString().padStart(16, "0");
1
+ const keyBrand = Symbol();
2
+ export function createIndexBuilder() {
3
+ return { groups: new Map() };
7
4
  }
8
- export function insertLocator(entry, locator) {
9
- entry.locators.push([getId(), ...locator]);
5
+ export function createKey(reading, html) {
6
+ return { reading: reading.normalize("NFC"), html: html.normalize("NFC") };
10
7
  }
11
- export function insertReference(entry, type, reference) {
12
- entry[type].push([getId(), ...reference]);
8
+ const keyIdentity = (key) => [key.reading, key.html];
9
+ const childKey = (key) => JSON.stringify(keyIdentity(key));
10
+ export const addressKey = (address) => JSON.stringify([
11
+ keyIdentity(address.group),
12
+ keyIdentity(address.entry),
13
+ address.subentry === undefined ? null : keyIdentity(address.subentry),
14
+ ]);
15
+ function ensureChild(children, key, create) {
16
+ const existing = children.get(childKey(key));
17
+ if (existing !== undefined) {
18
+ return existing;
19
+ }
20
+ const created = create(key);
21
+ children.set(childKey(key), created);
22
+ return created;
13
23
  }
14
- export function ensureIndex(indexes, id) {
15
- return (indexes.find((idx) => idx.id === id) ??
16
- indexes[indexes.push({ id, children: [] }) - 1]);
24
+ const createSubentryBuilder = (key) => ({
25
+ key,
26
+ locators: [],
27
+ xrefPreferred: [],
28
+ xrefRelated: [],
29
+ });
30
+ const createEntryBuilder = (key) => ({
31
+ ...createSubentryBuilder(key),
32
+ subentries: new Map(),
33
+ });
34
+ const createGroupBuilder = (key) => ({ key, entries: new Map() });
35
+ export function ensureEntry(builder, address) {
36
+ const group = ensureChild(builder.groups, address.group, createGroupBuilder);
37
+ const entry = ensureChild(group.entries, address.entry, createEntryBuilder);
38
+ return address.subentry === undefined
39
+ ? entry
40
+ : ensureChild(entry.subentries, address.subentry, createSubentryBuilder);
17
41
  }
18
- export function toHastChildren(value) {
19
- return JSON.stringify([{ type: "text", value }]);
42
+ export function insertLocator(entry, locator) {
43
+ entry.locators.push(locator);
20
44
  }
21
- export function hastChildrenToText(hastJson) {
22
- return toText({
23
- type: "element",
24
- tagName: "span",
25
- children: JSON.parse(hastJson),
26
- });
45
+ const xrefListKey = {
46
+ preferred: "xrefPreferred",
47
+ related: "xrefRelated",
48
+ };
49
+ export function insertXref(entry, type, target, template) {
50
+ entry[xrefListKey[type]].push({ target, template });
27
51
  }
28
- export function getChild(parent, key) {
29
- return parent.children.find((child) => hastChildrenToText(child.key[0]) === hastChildrenToText(key[0]) &&
30
- (key[1] === null || child.key[1] === key[1]));
52
+ export function findUnresolvedXref(builder, target) {
53
+ const group = builder.groups.get(childKey(target.group));
54
+ if (!group) {
55
+ return { target, missing: "group" };
56
+ }
57
+ const entry = group.entries.get(childKey(target.entry));
58
+ if (!entry) {
59
+ return { target, missing: "entry" };
60
+ }
61
+ if (target.subentry !== undefined && !entry.subentries.has(childKey(target.subentry))) {
62
+ return { target, missing: "subentry" };
63
+ }
64
+ return undefined;
65
+ }
66
+ export function labelInvalidXrefs(builder) {
67
+ const unresolvedByTarget = new Map();
68
+ const resolvedTargets = new Set();
69
+ const resolve = (target) => {
70
+ const targetKey = addressKey(target);
71
+ if (resolvedTargets.has(targetKey)) {
72
+ return undefined;
73
+ }
74
+ const known = unresolvedByTarget.get(targetKey);
75
+ if (known !== undefined) {
76
+ return known;
77
+ }
78
+ const unresolvedXref = findUnresolvedXref(builder, target);
79
+ if (unresolvedXref === undefined) {
80
+ resolvedTargets.add(targetKey);
81
+ }
82
+ else {
83
+ unresolvedByTarget.set(targetKey, unresolvedXref);
84
+ }
85
+ return unresolvedXref;
86
+ };
87
+ const label = (xref) => ({
88
+ target: xref.target,
89
+ template: xref.template,
90
+ ...(resolve(xref.target) === undefined ? {} : { error: "invalid-xref" }),
91
+ });
92
+ for (const group of builder.groups.values()) {
93
+ for (const entry of group.entries.values()) {
94
+ entry.xrefPreferred = entry.xrefPreferred.map(label);
95
+ entry.xrefRelated = entry.xrefRelated.map(label);
96
+ for (const subentry of entry.subentries.values()) {
97
+ subentry.xrefPreferred = subentry.xrefPreferred.map(label);
98
+ subentry.xrefRelated = subentry.xrefRelated.map(label);
99
+ }
100
+ }
101
+ }
102
+ return unresolvedByTarget;
31
103
  }
32
- export function ensureChild(parent, key, init) {
33
- return (getChild(parent, key) ??
34
- parent.children[parent.children.push({
35
- key,
36
- ...init,
37
- }) - 1]);
104
+ const finalizeSubentry = (subentry) => ({
105
+ key: subentry.key,
106
+ locators: [...subentry.locators],
107
+ xrefPreferred: [...subentry.xrefPreferred],
108
+ xrefRelated: [...subentry.xrefRelated],
109
+ });
110
+ export function finalizeIndex(builder) {
111
+ return {
112
+ groups: [...builder.groups.values()].map((group) => ({
113
+ key: group.key,
114
+ entries: [...group.entries.values()].map((entry) => ({
115
+ ...finalizeSubentry(entry),
116
+ subentries: [...entry.subentries.values()].map(finalizeSubentry),
117
+ })),
118
+ })),
119
+ };
38
120
  }
39
- /* eslint-disable @typescript-eslint/no-unused-vars */
40
- const example = [
41
- {
42
- id: ".",
43
- children: [
44
- {
45
- key: [toHastChildren("し"), "し"],
46
- children: [
47
- {
48
- key: [toHastChildren("自由利用"), "じゆうりよう"],
49
- locators: [
50
- [getId(), ["104", "108"], false],
51
- [getId(), "112", false],
52
- ],
53
- see: [],
54
- seeAlso: [],
55
- children: [],
56
- },
57
- ],
58
- },
59
- {
60
- key: [toHastChildren("そ"), "そ"],
61
- children: [
62
- {
63
- key: [toHastChildren("相続"), "そうぞく"],
64
- locators: [[getId(), "88", false]],
65
- see: [],
66
- seeAlso: [],
67
- children: [
68
- {
69
- key: [toHastChildren("一身専属"), "いっしんせんぞく"],
70
- locators: [[getId(), "76", false]],
71
- see: [],
72
- seeAlso: [],
73
- },
74
- {
75
- key: [toHastChildren("相続人"), "そうぞくにん"],
76
- locators: [[getId(), ["90", "91"], false]],
77
- see: [],
78
- seeAlso: [],
79
- },
80
- ],
81
- },
82
- ],
83
- },
84
- {
85
- key: [toHastChildren("ち"), "ち"],
86
- children: [
87
- {
88
- key: [toHastChildren("知的財産権"), "ちてきざいさんけん"],
89
- locators: [[getId(), ["56", "58"], false]],
90
- see: [],
91
- seeAlso: [],
92
- children: [],
93
- },
94
- {
95
- key: [toHastChildren("著作権"), "ちょさくけん"],
96
- locators: [
97
- [getId(), "3", false],
98
- [getId(), "8", false],
99
- [getId(), ["33", "35"], false],
100
- ],
101
- see: [],
102
- seeAlso: [
103
- [
104
- getId(),
105
- [toHastChildren("ち"), "ち"],
106
- [toHastChildren("知的財産権"), "ちてきざいさんけん"],
107
- ],
108
- ],
109
- children: [
110
- {
111
- key: [toHastChildren("――の使用"), "ちょさくけんのしよう"],
112
- locators: [[getId(), "150", false]],
113
- see: [],
114
- seeAlso: [],
115
- },
116
- {
117
- key: [toHastChildren("――の譲渡"), "ちょさくけんのじょうと"],
118
- locators: [
119
- [getId(), "42", false],
120
- [getId(), ["100", "104"], false],
121
- ],
122
- see: [],
123
- seeAlso: [],
124
- },
125
- {
126
- key: [toHastChildren("――の制限"), "ちょさくけんのせいげん"],
127
- locators: [],
128
- see: [
129
- [
130
- getId(),
131
- [toHastChildren("し"), "し"],
132
- [toHastChildren("自由利用"), "じゆうりよう"],
133
- ],
134
- ],
135
- seeAlso: [],
136
- },
137
- {
138
- key: [toHastChildren("――の相続"), "ちょさくけんのそうぞく"],
139
- locators: [],
140
- see: [],
141
- seeAlso: [
142
- [
143
- getId(),
144
- [toHastChildren("そ"), "そ"],
145
- [toHastChildren("相続"), "そうぞく"],
146
- [toHastChildren("一身専属"), "いっしんせんぞく"],
147
- ],
148
- ],
149
- },
150
- ],
151
- },
152
- ],
153
- },
154
- ],
155
- },
156
- ];
157
121
  //# sourceMappingURL=model.js.map
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function documentUrl(documentPath: string): URL;
2
+ export declare function documentPath(url: URL): string;
3
+ export declare function workingDirectory(): string;
4
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAKA,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAErD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAE7C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
@@ -0,0 +1,13 @@
1
+ import process from "node:process";
2
+ import { fileURLToPath, pathToFileURL } from "node:url";
3
+ import upath from "upath";
4
+ export function documentUrl(documentPath) {
5
+ return pathToFileURL(documentPath);
6
+ }
7
+ export function documentPath(url) {
8
+ return upath.normalize(fileURLToPath(url));
9
+ }
10
+ export function workingDirectory() {
11
+ return process.cwd();
12
+ }
13
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,WAAW,CAAC,YAAoB;IAC9C,OAAO,aAAa,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAQ;IACnC,OAAO,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type CreateRenderer } from "./render.ts";
2
+ import { type CreateIndexComparator } from "./sort.ts";
3
+ export type IndexProfile = Readonly<{
4
+ comparator?: CreateIndexComparator;
5
+ renderer?: CreateRenderer;
6
+ }>;
7
+ export type Profiles = Readonly<Record<string, IndexProfile>>;
8
+ export type ResolvedIndexProfile = Readonly<Required<IndexProfile>>;
9
+ export declare const defaultProfile: ResolvedIndexProfile;
10
+ export declare function resolveProfiles(profiles: Profiles): ReadonlyMap<string, ResolvedIndexProfile>;
11
+ //# sourceMappingURL=profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAE1E,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAEpE,eAAO,MAAM,cAAc,EAAE,oBAG5B,CAAC;AAEF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAS7F"}
@@ -0,0 +1,17 @@
1
+ import { defaultRenderer } from "./render.js";
2
+ import { defaultComparator } from "./sort.js";
3
+ export const defaultProfile = {
4
+ comparator: defaultComparator,
5
+ renderer: defaultRenderer,
6
+ };
7
+ export function resolveProfiles(profiles) {
8
+ const resolved = new Map();
9
+ for (const [name, profile] of Object.entries(profiles)) {
10
+ resolved.set(name, {
11
+ comparator: profile.comparator ?? defaultProfile.comparator,
12
+ renderer: profile.renderer ?? defaultProfile.renderer,
13
+ });
14
+ }
15
+ return resolved;
16
+ }
17
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAA8B,MAAM,WAAW,CAAC;AAW1E,MAAM,CAAC,MAAM,cAAc,GAAyB;IAClD,UAAU,EAAE,iBAAiB;IAC7B,QAAQ,EAAE,eAAe;CAC1B,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,QAAkB;IAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;YACjB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU;YAC3D,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ;SACtD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,175 @@
1
+ import type { IndexError, Key, Locator, LocatorError, Index, Xref, XrefError, XrefType } from "./model.ts";
2
+ import type * as hast from "hast";
3
+ import { h } from "hastscript";
4
+ type RoleProperties<Role extends string> = Readonly<hast.Properties & {
5
+ dataIndexRole: Role;
6
+ }>;
7
+ type IdProperties = Readonly<hast.Properties & {
8
+ id: string;
9
+ }>;
10
+ type ErrorProperties<Error extends IndexError> = Readonly<{
11
+ dataIndexError?: Error;
12
+ }>;
13
+ export type HeadingRenderer = (parts: {
14
+ properties: Readonly<hast.Properties>;
15
+ contents: hast.ElementContent[];
16
+ }) => hast.ElementContent[];
17
+ export type LocationRenderer = Readonly<{
18
+ compose?(parts: {
19
+ properties: Readonly<hast.Properties & {
20
+ dataIndexRole: "page" | "range";
21
+ href: string;
22
+ } & ErrorProperties<LocatorError>>;
23
+ contents: hast.ElementContent[];
24
+ }): hast.ElementContent[];
25
+ pageNumber?(context: {
26
+ properties: RoleProperties<"page-number"> & Readonly<{
27
+ dataIndexPageTarget: string;
28
+ }>;
29
+ }): hast.ElementContent[];
30
+ rangeSeparator?(context: {
31
+ properties: RoleProperties<"range-separator">;
32
+ }): hast.ElementContent[];
33
+ }>;
34
+ export type LocatorRenderer = Readonly<{
35
+ compose?(parts: {
36
+ properties: Readonly<hast.Properties>;
37
+ contents: hast.ElementContent[];
38
+ }): hast.ElementContent[];
39
+ location?: LocationRenderer;
40
+ }>;
41
+ export type XrefTargetRenderer<Type extends XrefType> = Readonly<{
42
+ compose?(parts: {
43
+ properties: Readonly<hast.Properties & {
44
+ href: string;
45
+ } & ErrorProperties<XrefError>>;
46
+ contents: hast.ElementContent[];
47
+ }): hast.ElementContent[];
48
+ entry?(parts: {
49
+ properties: RoleProperties<`xref-${Type}-entry`>;
50
+ contents: hast.ElementContent[];
51
+ }): hast.ElementContent[];
52
+ subentrySeparator?(parts: {
53
+ properties: RoleProperties<`xref-${Type}-subentry-separator`>;
54
+ }): hast.ElementContent[];
55
+ subentry?(parts: {
56
+ properties: RoleProperties<`xref-${Type}-subentry`>;
57
+ contents: hast.ElementContent[];
58
+ }): hast.ElementContent[];
59
+ }>;
60
+ export type XrefPreferredTargetRenderer = XrefTargetRenderer<"preferred">;
61
+ export type XrefRelatedTargetRenderer = XrefTargetRenderer<"related">;
62
+ export type XrefRenderer<Type extends XrefType> = Readonly<{
63
+ compose?(parts: {
64
+ properties: Readonly<hast.Properties>;
65
+ contents: hast.ElementContent[];
66
+ }): hast.ElementContent[];
67
+ target?: XrefTargetRenderer<Type>;
68
+ }>;
69
+ export type XrefPreferredRenderer = XrefRenderer<"preferred">;
70
+ export type XrefRelatedRenderer = XrefRenderer<"related">;
71
+ export type LocatorListRenderer = Readonly<{
72
+ compose?(parts: {
73
+ properties: RoleProperties<"locator-list">;
74
+ locators: readonly hast.ElementContent[][];
75
+ }): hast.ElementContent[];
76
+ locator?(context: {
77
+ locator: Locator;
78
+ }): LocatorRenderer;
79
+ }>;
80
+ export type XrefPreferredListRenderer = Readonly<{
81
+ compose?(parts: {
82
+ properties: RoleProperties<"xref-preferred">;
83
+ xrefPreferreds: readonly hast.ElementContent[][];
84
+ }): hast.ElementContent[];
85
+ xrefPreferred?(context: {
86
+ xrefPreferred: Xref;
87
+ }): XrefPreferredRenderer;
88
+ }>;
89
+ export type XrefRelatedListRenderer = Readonly<{
90
+ compose?(parts: {
91
+ properties: RoleProperties<"xref-related">;
92
+ xrefRelateds: readonly hast.ElementContent[][];
93
+ }): hast.ElementContent[];
94
+ xrefRelated?(context: {
95
+ xrefRelated: Xref;
96
+ }): XrefRelatedRenderer;
97
+ }>;
98
+ export type SubentryRenderer = Readonly<{
99
+ compose?(parts: {
100
+ properties: IdProperties;
101
+ heading: hast.ElementContent[];
102
+ locatorList: hast.ElementContent[];
103
+ xrefPreferredList: hast.ElementContent[];
104
+ xrefRelatedList: hast.ElementContent[];
105
+ }): hast.ElementContent[];
106
+ heading?: HeadingRenderer;
107
+ locatorList?: LocatorListRenderer;
108
+ xrefPreferredList?: XrefPreferredListRenderer;
109
+ xrefRelatedList?: XrefRelatedListRenderer;
110
+ }>;
111
+ export type SubentryListRenderer = Readonly<{
112
+ compose?(parts: {
113
+ properties: RoleProperties<"subentry-list">;
114
+ subentries: readonly hast.ElementContent[][];
115
+ }): hast.ElementContent[];
116
+ subentry?(context: {
117
+ subentry: Key;
118
+ }): SubentryRenderer;
119
+ }>;
120
+ export type EntryRenderer = Readonly<{
121
+ compose?(parts: {
122
+ properties: IdProperties;
123
+ heading: hast.ElementContent[];
124
+ locatorList: hast.ElementContent[];
125
+ xrefPreferredList: hast.ElementContent[];
126
+ xrefRelatedList: hast.ElementContent[];
127
+ subentryList: hast.ElementContent[];
128
+ }): hast.ElementContent[];
129
+ heading?: HeadingRenderer;
130
+ locatorList?: LocatorListRenderer;
131
+ xrefPreferredList?: XrefPreferredListRenderer;
132
+ xrefRelatedList?: XrefRelatedListRenderer;
133
+ subentryList?: SubentryListRenderer;
134
+ }>;
135
+ export type EntryListRenderer = Readonly<{
136
+ compose?(parts: {
137
+ properties: RoleProperties<"entry-list">;
138
+ entries: readonly hast.ElementContent[][];
139
+ }): hast.ElementContent[];
140
+ entry?(context: {
141
+ entry: Key;
142
+ }): EntryRenderer;
143
+ }>;
144
+ export type GroupRenderer = Readonly<{
145
+ compose?(parts: {
146
+ properties: RoleProperties<"group">;
147
+ heading: hast.ElementContent[];
148
+ entryList: hast.ElementContent[];
149
+ }): hast.ElementContent[];
150
+ heading?: HeadingRenderer;
151
+ entryList?: EntryListRenderer;
152
+ }>;
153
+ export type GroupListRenderer = Readonly<{
154
+ compose?(parts: {
155
+ properties: RoleProperties<"group-list">;
156
+ groups: readonly hast.ElementContent[][];
157
+ }): hast.ElementContent[];
158
+ group?(context: {
159
+ group: Key;
160
+ }): GroupRenderer;
161
+ }>;
162
+ export type IndexRenderer = Readonly<{
163
+ compose?(parts: {
164
+ groupList: hast.ElementContent[];
165
+ }): hast.ElementContent[];
166
+ groupList?: GroupListRenderer;
167
+ }>;
168
+ export type CreateRenderer = (context: {
169
+ h: typeof h;
170
+ index: Index;
171
+ }) => IndexRenderer;
172
+ export declare const defaultRenderer: CreateRenderer;
173
+ export declare function renderIndex(index: Index, target: hast.Element, indexId: string, renderer: IndexRenderer): void;
174
+ export {};
175
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}