@cudoment/cudoc 0.3.0 → 0.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
package/dist/document.js CHANGED
@@ -413,8 +413,12 @@ export function normalizeDocument(tree, source, options = {}, inlineParser) {
413
413
  for (const node of headings) {
414
414
  const id = node.data?.hProperties?.id;
415
415
  if (typeof id === "string") {
416
+ // Reported rather than thrown: two headings claiming one id is a
417
+ // problem across a document set, and `cudoc check` collects those so an
418
+ // author sees every one at once. Hosts suffix duplicates instead of
419
+ // failing, so throwing here was also stricter than the site itself.
416
420
  if (ids.has(id))
417
- fail(node, `duplicate heading ID: ${id}`);
421
+ warn(node, "duplicate-heading-id", `duplicate heading ID: ${id}`);
418
422
  ids.add(id);
419
423
  }
420
424
  }
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Whole-library reference checking.
3
+ *
4
+ * The build deliberately stops at the first unresolvable reference, because a
5
+ * site with a broken link should not ship. That makes it a poor way to find out
6
+ * what is wrong: an author fixes one link, rebuilds, and learns about the next.
7
+ * This walks every document instead and returns everything at once.
8
+ *
9
+ * It resolves through the same code the build uses, so a reference this reports
10
+ * as fine is one the build can resolve.
11
+ */
12
+ import type { Root } from "mdast";
13
+ import type { Position } from "unist";
14
+ import type { Library } from "./library.js";
15
+ import { type LocalTargetRoots } from "./local-target.js";
16
+ export type ReferenceIssueCode = "missing-document" | "missing-anchor" | "missing-asset" | "duplicate-anchor" | "empty-anchor" | "unstable-anchor-link" | "missing-embed-source" | "missing-embed-anchor" | "invalid-embed-spec" | "unmatched-embed-replacement" | "unportable-embed-component";
17
+ export type ReferenceIssue = {
18
+ code: ReferenceIssueCode;
19
+ severity: "error" | "warning";
20
+ /** The document carrying the reference. */
21
+ documentId: string;
22
+ sourcePath: string;
23
+ message: string;
24
+ /** The reference exactly as the author wrote it. */
25
+ reference: string;
26
+ position?: Position;
27
+ /**
28
+ * The anchors the target document actually has. Filled in for
29
+ * `missing-anchor` so the author can see the real names instead of a guess.
30
+ */
31
+ available?: string[];
32
+ };
33
+ export type CheckResult = {
34
+ issues: ReferenceIssue[];
35
+ documentCount: number;
36
+ checkedReferences: number;
37
+ };
38
+ export type CheckOptions = Omit<LocalTargetRoots, "sourceRoot"> & {
39
+ /** Defaults to the library's own `sourceRoot`. */
40
+ sourceRoot?: string;
41
+ /** Codes to leave out of the result entirely. */
42
+ ignore?: ReferenceIssueCode[];
43
+ };
44
+ type Anchor = {
45
+ id: string;
46
+ explicit: boolean;
47
+ };
48
+ /**
49
+ * Every anchor a document offers, and whether the author wrote it.
50
+ *
51
+ * Both halves matter. The ids answer whether a link resolves; the origin
52
+ * answers whether it will keep resolving, because a generated id depends on how
53
+ * many same-named headings precede it.
54
+ */
55
+ export declare function collectAnchors(tree: Root): Anchor[];
56
+ export declare function checkReferences(library: Library, options?: CheckOptions): CheckResult;
57
+ export {};
58
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/node/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,cAAc,CAAA;AAI3D,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAE7E,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,oBAAoB,GACpB,6BAA6B,GAC7B,4BAA4B,CAAA;AAEhC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,kBAAkB,CAAA;IACxB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,GAAG;IAChE,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iDAAiD;IACjD,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAC9B,CAAA;AAKD,KAAK,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAA;AAO/C;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,CASnD;AAmJD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,YAAiB,GACzB,WAAW,CAgSb"}
@@ -0,0 +1,465 @@
1
+ /**
2
+ * Whole-library reference checking.
3
+ *
4
+ * The build deliberately stops at the first unresolvable reference, because a
5
+ * site with a broken link should not ship. That makes it a poor way to find out
6
+ * what is wrong: an author fixes one link, rebuilds, and learns about the next.
7
+ * This walks every document instead and returns everything at once.
8
+ *
9
+ * It resolves through the same code the build uses, so a reference this reports
10
+ * as fine is one the build can resolve.
11
+ */
12
+ import { parseEmbedSpec } from "./resolve-embed.js";
13
+ import { collectSections } from "../sections.js";
14
+ import { resolveLocalTarget } from "./local-target.js";
15
+ /** A heading id that a slugger disambiguated, such as `overview-1`. */
16
+ const SUFFIXED = /-\d+$/;
17
+ const walkNodes = (node, visit) => {
18
+ visit(node);
19
+ node.children?.forEach((child) => walkNodes(child, visit));
20
+ };
21
+ /**
22
+ * Every anchor a document offers, and whether the author wrote it.
23
+ *
24
+ * Both halves matter. The ids answer whether a link resolves; the origin
25
+ * answers whether it will keep resolving, because a generated id depends on how
26
+ * many same-named headings precede it.
27
+ */
28
+ export function collectAnchors(tree) {
29
+ const anchors = [];
30
+ walkNodes(tree, (node) => {
31
+ if (node.type !== "heading")
32
+ return;
33
+ const id = node.data?.hProperties?.id;
34
+ if (typeof id === "string" && id)
35
+ anchors.push({ id, explicit: node.data?.cudoc?.explicitId === true });
36
+ });
37
+ return anchors;
38
+ }
39
+ /**
40
+ * Where a reference sits in the original Markdown.
41
+ *
42
+ * Collection strips positions from the stored tree on purpose: a persisted AST
43
+ * should not carry coordinates that go stale the moment the file is edited. The
44
+ * source snapshot is still here, so the first occurrence of the reference text
45
+ * gives an author somewhere real to jump to. A reference repeated in one
46
+ * document reports the first one; fixing it means fixing both anyway.
47
+ */
48
+ /**
49
+ * The forms a reference might take in the original Markdown.
50
+ *
51
+ * The tree holds what the host compiler produced, and hosts rewrite link
52
+ * destinations: Nextra drops the extension, VitePress rewrites it to `.html`
53
+ * and prefixes `./`. The author wrote `reference.md#limit`, so searching the
54
+ * source for the compiled form finds nothing. These are tried in turn.
55
+ */
56
+ const sourceForms = (reference) => {
57
+ const [pathname, anchor] = reference.split("#");
58
+ if (!pathname)
59
+ return [reference];
60
+ const bare = pathname.replace(/^\.\//, "").replace(/\.(?:mdx?|html?)$/i, "");
61
+ const suffix = anchor === undefined ? "" : `#${anchor}`;
62
+ return [
63
+ ...new Set([
64
+ reference,
65
+ `${bare}.md${suffix}`,
66
+ `${bare}.mdx${suffix}`,
67
+ `${bare}${suffix}`,
68
+ ]),
69
+ ];
70
+ };
71
+ const locate = (text, reference, skip = 0) => {
72
+ // A reference is often a prefix of a longer one on an earlier line, as
73
+ // `guide.md#limit` is of `guide.md#limits`. Prefer an occurrence that ends
74
+ // where a Markdown destination ends, and fall back to a plain search.
75
+ const ends = new Set([")", "]", '"', "'", " ", "\t", "\n", ""]);
76
+ let at = -1;
77
+ let remaining = skip;
78
+ for (let i = text.indexOf(reference); i >= 0; i = text.indexOf(reference, i + 1))
79
+ if (ends.has(text[i + reference.length] ?? "")) {
80
+ if (remaining-- > 0)
81
+ continue;
82
+ at = i;
83
+ break;
84
+ }
85
+ if (at < 0)
86
+ at = text.indexOf(reference);
87
+ if (at < 0)
88
+ return undefined;
89
+ const before = text.slice(0, at);
90
+ const line = before.split("\n").length;
91
+ const column = at - (before.lastIndexOf("\n") + 1) + 1;
92
+ const offset = at;
93
+ return {
94
+ start: { line, column, offset },
95
+ end: {
96
+ line,
97
+ column: column + reference.length,
98
+ offset: offset + reference.length,
99
+ },
100
+ };
101
+ };
102
+ /**
103
+ * Components in a tree that no portable renderer can turn into HTML.
104
+ *
105
+ * `documentToHast` renders an unknown `mdx*` or directive node only when the
106
+ * caller supplies an explicit HTML callback for it, and throws otherwise. A
107
+ * component sitting in a document is the author's business, because the host
108
+ * that owns it renders it. A component sitting in a section that an embed
109
+ * copies is different: the copy lands in another document, and standalone HTML
110
+ * export then has to render a name it was never given.
111
+ *
112
+ * `mdxjsEsm` and `yaml` are excluded because the renderer drops them rather
113
+ * than failing.
114
+ */
115
+ const unportableComponents = (tree) => {
116
+ const names = new Set();
117
+ walkNodes(tree, (node) => {
118
+ if (node.type === "mdxjsEsm" || node.type === "yaml")
119
+ return;
120
+ if (!node.type.startsWith("mdx") && !node.type.endsWith("Directive"))
121
+ return;
122
+ names.add(node.name ? `<${node.name}>` : node.type);
123
+ });
124
+ return [...names];
125
+ };
126
+ /** The visible text of a heading, used to spot an anchor that failed to parse. */
127
+ const headingText = (node) => {
128
+ let text = "";
129
+ walkNodes(node, (child) => {
130
+ if (child.type === "text" && typeof child.value === "string")
131
+ text += child.value;
132
+ });
133
+ return text;
134
+ };
135
+ /** The line each `cudoc-embed` fence opens on, in source order. */
136
+ const embedFenceLines = (text) => {
137
+ const lines = [];
138
+ text.split("\n").forEach((line, index) => {
139
+ if (/^\s*(?:`{3,}|~{3,})cudoc-embed\s*$/.test(line))
140
+ lines.push(index + 1);
141
+ });
142
+ return lines;
143
+ };
144
+ /**
145
+ * Whether a rule finds anything, asked the way the resolver asks it.
146
+ *
147
+ * Rules run in order and each sees the previous one's output, so a later rule
148
+ * can legitimately depend on an earlier substitution. Testing them against the
149
+ * untouched slice would report those as unmatched.
150
+ */
151
+ const matchedRules = (slice, rules) => {
152
+ const matched = [];
153
+ let value = slice;
154
+ rules.forEach((rule, index) => {
155
+ try {
156
+ if (rule.regex) {
157
+ const pattern = new RegExp(rule.find, rule.flags ?? "g");
158
+ matched[index] = pattern.test(value);
159
+ value = value.replace(new RegExp(rule.find, rule.flags ?? "g"), rule.replace);
160
+ }
161
+ else {
162
+ matched[index] = value.includes(rule.find);
163
+ value = value.split(rule.find).join(rule.replace);
164
+ }
165
+ }
166
+ catch {
167
+ // An unusable pattern is the resolver's error to raise, not a miss.
168
+ matched[index] = true;
169
+ }
170
+ });
171
+ return matched;
172
+ };
173
+ export function checkReferences(library, options = {}) {
174
+ const sourceRoot = options.sourceRoot ?? library.sourceRoot;
175
+ const ignore = new Set(options.ignore ?? []);
176
+ const issues = [];
177
+ let checkedReferences = 0;
178
+ const anchorsById = new Map(library.documents.map((doc) => [doc.id, collectAnchors(doc.tree)]));
179
+ const byId = new Map(library.documents.map((doc) => [doc.id, doc]));
180
+ const report = (doc,
181
+ /** A `position` given here wins; otherwise it is recovered from the source. */
182
+ issue,
183
+ /** Which occurrence of the reference to point at. A duplicate wants the later one. */
184
+ skip = 0) => {
185
+ if (ignore.has(issue.code))
186
+ return;
187
+ issues.push({
188
+ ...issue,
189
+ documentId: doc.id,
190
+ sourcePath: doc.sourcePath,
191
+ position: issue.position ??
192
+ sourceForms(issue.reference).reduce((found, form) => found ?? locate(doc.source?.text ?? "", form, skip), undefined),
193
+ });
194
+ };
195
+ /** Resolves `other.md#anchor` or a bare `#anchor` against the library. */
196
+ const checkDocumentLink = (doc, url) => {
197
+ const [pathname, anchor] = url.split("#");
198
+ let target = doc;
199
+ if (pathname) {
200
+ const id = resolveDocumentId(doc, pathname);
201
+ const found = id === undefined ? undefined : byId.get(id);
202
+ if (!found)
203
+ return false; // not a document link; the asset pass handles it
204
+ target = found;
205
+ }
206
+ if (!anchor)
207
+ return true;
208
+ const anchors = anchorsById.get(target.id) ?? [];
209
+ const match = anchors.find((entry) => entry.id === anchor);
210
+ if (!match) {
211
+ report(doc, {
212
+ code: "missing-anchor",
213
+ severity: "error",
214
+ message: `${target.id} has no anchor #${anchor}`,
215
+ reference: url,
216
+ available: anchors.map((entry) => entry.id),
217
+ });
218
+ return true;
219
+ }
220
+ if (!match.explicit && SUFFIXED.test(match.id))
221
+ report(doc, {
222
+ code: "unstable-anchor-link",
223
+ severity: "warning",
224
+ message: `#${anchor} in ${target.id} is generated from a repeated heading; inserting another one above it moves this link to a different section. Give the target heading an explicit anchor.`,
225
+ reference: url,
226
+ });
227
+ return true;
228
+ };
229
+ /**
230
+ * A link's document id, if it names a document in this library.
231
+ *
232
+ * Hosts do not agree on how a link looks once compiled. Docusaurus and
233
+ * Next.js leave `reference.md`, Nextra drops the extension, and VitePress
234
+ * rewrites it to the deployed `./reference.html`. All three mean the same
235
+ * document, so any of those endings resolves to the same id.
236
+ */
237
+ const resolveDocumentId = (doc, pathname) => {
238
+ if (/^(?:[a-z][\w+.-]*:|\/\/)/i.test(pathname))
239
+ return undefined;
240
+ const decoded = decodeURIComponent(pathname);
241
+ const joined = decoded.startsWith("/")
242
+ ? decoded.slice(1)
243
+ : posixJoin(dirname(doc.sourcePath), decoded);
244
+ return normalize(joined).replace(/\.(?:mdx?|html?)$/i, "");
245
+ };
246
+ for (const doc of library.documents) {
247
+ // Anchors the document declares, before anything references them.
248
+ const seen = new Set();
249
+ const counts = new Map();
250
+ walkNodes(doc.tree, (node) => {
251
+ if (node.type !== "heading")
252
+ return;
253
+ const id = node.data?.hProperties?.id;
254
+ if (typeof id === "string" && id) {
255
+ const before = counts.get(id) ?? 0;
256
+ if (before)
257
+ report(doc, {
258
+ code: "duplicate-anchor",
259
+ severity: "error",
260
+ message: `duplicate heading anchor #${id}`,
261
+ reference: `#${id}`,
262
+ }, before);
263
+ counts.set(id, before + 1);
264
+ seen.add(id);
265
+ }
266
+ // An anchor marker with no id never becomes an anchor. It stays in the
267
+ // heading text instead, and silently joins the generated slug.
268
+ const text = headingText(node);
269
+ const empty = text.match(/\((#)\)|\{(#)\}/);
270
+ if (empty)
271
+ report(doc, {
272
+ code: "empty-anchor",
273
+ severity: "error",
274
+ message: `empty anchor marker left in the heading text: "${text.trim()}"`,
275
+ reference: empty[0],
276
+ });
277
+ });
278
+ walkNodes(doc.tree, (node) => {
279
+ const url = node.type === "link" || node.type === "image" ? node.url : undefined;
280
+ if (typeof url !== "string" || !url)
281
+ return;
282
+ // A heading permalink is machinery the host inserted, not something an
283
+ // author wrote. VitePress and Eleventy add one per heading, and counting
284
+ // them would report every generated anchor as an unstable link.
285
+ if (node.data?.cudoc?.kind === "permalink")
286
+ return;
287
+ checkedReferences++;
288
+ if (/^(?:[a-z][\w+.-]*:|\/\/)/i.test(url))
289
+ return; // external
290
+ if (node.type === "link" && checkDocumentLink(doc, url))
291
+ return;
292
+ if (url.startsWith("#"))
293
+ return; // handled above as a same-document anchor
294
+ if (!sourceRoot)
295
+ return;
296
+ const target = resolveLocalTarget(url, doc.sourcePath, {
297
+ ...options,
298
+ sourceRoot,
299
+ });
300
+ if (target.kind === "missing")
301
+ report(doc, {
302
+ code: node.type === "image" ? "missing-asset" : "missing-document",
303
+ severity: "error",
304
+ message: node.type === "image"
305
+ ? `no file for image ${url}; check sourceRoot and assetDirs`
306
+ : `no document or file for ${url}`,
307
+ reference: url,
308
+ });
309
+ });
310
+ // Fence lines are read from the source because collection strips positions,
311
+ // and they are what turns a YAML error's own coordinate into a file one.
312
+ const fences = embedFenceLines(doc.source?.text ?? "");
313
+ let blockNumber = 0;
314
+ walkNodes(doc.tree, (node) => {
315
+ if (node.type !== "code" || node.lang !== "cudoc-embed")
316
+ return;
317
+ const fence = fences[blockNumber++];
318
+ let spec;
319
+ try {
320
+ spec = parseEmbedSpec(node.value ?? "");
321
+ }
322
+ catch (error) {
323
+ // The YAML parser counts from the start of the block; an author counts
324
+ // from the start of the file. Add the fence so both agree.
325
+ const at = error.linePos?.[0];
326
+ const line = fence === undefined ? undefined : fence + (at?.line ?? 0);
327
+ report(doc, {
328
+ code: "invalid-embed-spec",
329
+ severity: "error",
330
+ // The parser's own "at line 3, column 24" is dropped: it counts from
331
+ // the block, and the position below already says the same thing in
332
+ // the file's own coordinates.
333
+ message: error.message
334
+ .replace(/^cudoc: /, "")
335
+ .split("\n")[0]
336
+ .replace(/\s*at line \d+, column \d+:?\s*$/, "")
337
+ .trim(),
338
+ reference: `embed block ${blockNumber}`,
339
+ position: line === undefined
340
+ ? undefined
341
+ : {
342
+ start: { line, column: at?.col ?? 1 },
343
+ end: { line, column: at?.col ?? 1 },
344
+ },
345
+ });
346
+ return;
347
+ }
348
+ for (const reference of spec.sources ?? []) {
349
+ checkedReferences++;
350
+ const [pathname, anchor] = String(reference).split("#");
351
+ const id = resolveDocumentId(doc, pathname);
352
+ const target = id === undefined ? undefined : byId.get(id);
353
+ if (!target) {
354
+ report(doc, {
355
+ code: "missing-embed-source",
356
+ severity: "error",
357
+ message: `embed source ${reference} does not name a collected document`,
358
+ reference: String(reference),
359
+ });
360
+ continue;
361
+ }
362
+ const anchors = anchorsById.get(target.id) ?? [];
363
+ if (anchor && !anchors.some((entry) => entry.id === anchor)) {
364
+ report(doc, {
365
+ code: "missing-embed-anchor",
366
+ severity: "error",
367
+ message: `${target.id} has no section #${anchor} to embed`,
368
+ reference: String(reference),
369
+ available: anchors.map((entry) => entry.id),
370
+ });
371
+ continue;
372
+ }
373
+ // The same selection the resolver will apply, so what is inspected is
374
+ // what would actually be copied. `select.anchors` can name a section
375
+ // that does not exist, which `collectSections` rejects; the build hits
376
+ // the same error, so it is reported rather than swallowed.
377
+ const selection = anchor ? { anchors: [anchor] } : spec.select;
378
+ let copied;
379
+ try {
380
+ copied = selection
381
+ ? collectSections(target.tree, selection)
382
+ : [{ anchorId: undefined, tree: target.tree }];
383
+ }
384
+ catch (error) {
385
+ report(doc, {
386
+ code: "missing-embed-anchor",
387
+ severity: "error",
388
+ message: `${target.id}: ${error.message.replace(/^cudoc: /, "")}`,
389
+ reference: String(reference),
390
+ available: anchors.map((entry) => entry.id),
391
+ });
392
+ continue;
393
+ }
394
+ // Replacement runs on the original Markdown, not the tree, so the
395
+ // slices are recomputed the way `transformedSection` cuts them. A rule
396
+ // that matches no slice changed nothing, and the embed silently shows
397
+ // the source's own wording in a place written to expect otherwise.
398
+ const rules = spec.replace ?? [];
399
+ if (rules.length && target.source) {
400
+ const matched = rules.map(() => false);
401
+ for (const section of copied) {
402
+ const range = section.anchorId
403
+ ? target.source.sections[section.anchorId]
404
+ : undefined;
405
+ const slice = range
406
+ ? target.source.text.slice(range.start, spec.select?.includeChildren === false
407
+ ? (range.ownEnd ?? range.end)
408
+ : range.end)
409
+ : target.source.text;
410
+ matchedRules(slice, rules).forEach((hit, index) => {
411
+ if (hit)
412
+ matched[index] = true;
413
+ });
414
+ }
415
+ rules.forEach((rule, index) => {
416
+ if (matched[index])
417
+ return;
418
+ report(doc, {
419
+ code: "unmatched-embed-replacement",
420
+ severity: "warning",
421
+ message: `replacement ${index + 1} found no "${rule.find}" in what this embed copies from ${target.id}, so nothing was changed. The source may have been reworded${rule.regex ? "" : "; literal rules are case-sensitive"}.`,
422
+ reference: rule.find,
423
+ });
424
+ });
425
+ }
426
+ // A summary table carries heading text and nothing else, so whatever
427
+ // else the body holds never travels. Replacement above still applies,
428
+ // because it reaches the title and summary columns.
429
+ if (typeof spec.render === "object" && spec.render?.type === "table")
430
+ continue;
431
+ const names = [
432
+ ...new Set(copied.flatMap((section) => unportableComponents(section.tree))),
433
+ ];
434
+ if (names.length)
435
+ report(doc, {
436
+ code: "unportable-embed-component",
437
+ severity: "warning",
438
+ message: `this embed copies ${names.join(", ")} out of ${target.id}. A host that owns those components renders them, but standalone HTML export has no renderer for them and fails. Keep embedded sections to Markdown, or pass a renderer for each name.`,
439
+ reference: String(reference),
440
+ });
441
+ }
442
+ });
443
+ }
444
+ return { issues, documentCount: library.documents.length, checkedReferences };
445
+ }
446
+ // Posix path helpers, kept local so this module stays usable without importing
447
+ // the whole node path surface into a browser-safe boundary by accident.
448
+ const dirname = (value) => {
449
+ const at = value.lastIndexOf("/");
450
+ return at <= 0 ? "." : value.slice(0, at);
451
+ };
452
+ const posixJoin = (base, value) => base === "." ? value : `${base}/${value}`;
453
+ const normalize = (value) => {
454
+ const out = [];
455
+ for (const part of value.split("/")) {
456
+ if (!part || part === ".")
457
+ continue;
458
+ if (part === "..")
459
+ out.pop();
460
+ else
461
+ out.push(part);
462
+ }
463
+ return out.join("/");
464
+ };
465
+ //# sourceMappingURL=check.js.map