lens-content-processor 0.40.0 → 0.41.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,3 +1,4 @@
1
+ import { toString } from "mdast-util-to-string";
1
2
  import remarkDirective from "remark-directive";
2
3
  import remarkGfm from "remark-gfm";
3
4
  import remarkMath from "remark-math";
@@ -5,6 +6,7 @@ import remarkParse from "remark-parse";
5
6
  import { unified } from "unified";
6
7
  import { visit } from "unist-util-visit";
7
8
  import { stripAuthoringMarkupForValidation } from "../authoring-markup.js";
9
+ import { collectBlockTargetsFrom, maskCode } from "../same-page-links.js";
8
10
  function authoredText(segment) {
9
11
  const values = [];
10
12
  if ("content" in segment && typeof segment.content === "string")
@@ -36,34 +38,28 @@ function sourceLocator(source) {
36
38
  return lineAt(source, offset);
37
39
  };
38
40
  }
39
- function headingAnchor(value) {
40
- return value.trim().toLocaleLowerCase().replace(/\s+/g, " ");
41
+ function generatedHeadingId(text) {
42
+ return text
43
+ .toLowerCase()
44
+ .replace(/[^a-z0-9\s-]/g, "")
45
+ .replace(/\s+/g, "-")
46
+ .replace(/-+/g, "-")
47
+ .slice(0, 50);
41
48
  }
42
- function maskCode(value) {
43
- const chars = value.split("");
44
- let fence;
45
- let offset = 0;
46
- for (const line of value.split("\n")) {
47
- const marker = line.match(/^ {0,3}(`{3,}|~{3,})/);
48
- const wasInFence = fence !== undefined;
49
- const closesFence = Boolean(marker &&
50
- fence &&
51
- marker[1][0] === fence.char &&
52
- marker[1].length >= fence.length &&
53
- line.slice(marker[1].length).trim() === "");
54
- for (let index = 0; index < line.length; index += 1) {
55
- if (wasInFence || marker)
56
- chars[offset + index] = " ";
57
- }
58
- if (closesFence)
59
- fence = undefined;
60
- else if (marker && !wasInFence)
61
- fence = { char: marker[1][0], length: marker[1].length };
62
- offset += line.length + 1;
63
- }
64
- return chars
65
- .join("")
66
- .replace(/(`+)(.*?)\1/g, (match) => " ".repeat(match.length));
49
+ /** IDs produced by the article renderer before stable block IDs replaced them. */
50
+ function generatedHeadingIds(tree) {
51
+ const ids = new Set();
52
+ const counts = new Map();
53
+ visit(tree, "heading", (node) => {
54
+ const text = toString(node).replace(/(?:^|\s+)\^[A-Za-z0-9-]+\s*$/, "");
55
+ const base = generatedHeadingId(text);
56
+ if (!base)
57
+ return;
58
+ const count = counts.get(base) ?? 0;
59
+ ids.add(count === 0 ? base : `${base}-${count}`);
60
+ counts.set(base, count + 1);
61
+ });
62
+ return ids;
67
63
  }
68
64
  function markerSource(source) {
69
65
  const validationSource = stripAuthoringMarkupForValidation(source);
@@ -104,7 +100,7 @@ function markerSource(source) {
104
100
  walk(tree);
105
101
  return { masked: chars.join(""), standaloneAttachment };
106
102
  }
107
- function blockMarkerErrors(file, source) {
103
+ function blockMarkerErrors(file, source, codePrefix) {
108
104
  const errors = [];
109
105
  const blockIds = new Map();
110
106
  const { masked, standaloneAttachment } = markerSource(source);
@@ -119,7 +115,7 @@ function blockMarkerErrors(file, source) {
119
115
  errors.push({
120
116
  file,
121
117
  line,
122
- code: "lens.block-id-invalid",
118
+ code: `${codePrefix}.block-id-invalid`,
123
119
  severity: "error",
124
120
  message: `Invalid same-Lens block ID '^${id}'`,
125
121
  suggestion: "Use only letters, numbers, and dashes.",
@@ -138,7 +134,7 @@ function blockMarkerErrors(file, source) {
138
134
  errors.push({
139
135
  file,
140
136
  line,
141
- code: "lens.block-id-orphan",
137
+ code: `${codePrefix}.block-id-orphan`,
142
138
  severity: "error",
143
139
  message: `Block marker '^${id}' is not attached to a content block`,
144
140
  suggestion: "Place it after the block it labels.",
@@ -148,7 +144,7 @@ function blockMarkerErrors(file, source) {
148
144
  errors.push({
149
145
  file,
150
146
  line,
151
- code: "lens.block-id-position",
147
+ code: `${codePrefix}.block-id-position`,
152
148
  severity: "error",
153
149
  message: `Structured block marker '^${id}' must have a blank line before and after it`,
154
150
  suggestion: `Use a blank line, ^${id}, then another blank line.`,
@@ -158,7 +154,7 @@ function blockMarkerErrors(file, source) {
158
154
  errors.push({
159
155
  file,
160
156
  line,
161
- code: "lens.block-id-orphan",
157
+ code: `${codePrefix}.block-id-orphan`,
162
158
  severity: "error",
163
159
  message: `Block marker '^${id}' is not attached to a content block`,
164
160
  suggestion: "Place it after the block it labels.",
@@ -169,7 +165,7 @@ function blockMarkerErrors(file, source) {
169
165
  errors.push({
170
166
  file,
171
167
  line,
172
- code: "lens.block-id-position",
168
+ code: `${codePrefix}.block-id-position`,
173
169
  severity: "error",
174
170
  message: `Block marker '^${id}' cannot share a directive closing fence`,
175
171
  suggestion: `Close with :::, then put ^${id} on its own line with blank lines around it.`,
@@ -181,7 +177,7 @@ function blockMarkerErrors(file, source) {
181
177
  errors.push({
182
178
  file,
183
179
  line: markerLines[1],
184
- code: "lens.block-id-duplicate",
180
+ code: `${codePrefix}.block-id-duplicate`,
185
181
  severity: "error",
186
182
  message: `Duplicate same-Lens block ID '^${id}'`,
187
183
  });
@@ -189,56 +185,52 @@ function blockMarkerErrors(file, source) {
189
185
  }
190
186
  return { errors, blockIds };
191
187
  }
192
- /** Validate canonical same-Lens links against every authored text segment. */
193
- export function validateSameLensLinks(lens, file, source, lineOffset = 0) {
194
- const markerResult = blockMarkerErrors(file, source);
188
+ function validateSamePageLinks(texts, file, source, codePrefix, lineOffset, rejectMarkdownFragments) {
189
+ const markerResult = blockMarkerErrors(file, source, codePrefix);
195
190
  const errors = [...markerResult.errors];
196
- const texts = lens.segments.flatMap(authoredText).map(maskCode);
197
- const headings = new Map();
191
+ const targets = collectBlockTargetsFrom(texts);
192
+ const maskedTexts = texts.map(maskCode);
198
193
  const locate = sourceLocator(source);
199
- for (const text of texts) {
200
- for (const match of text.matchAll(/^#{1,6}\s+(.+?)\s*#*\s*$/gm)) {
201
- const name = headingAnchor(match[1].replace(/\s+\^[A-Za-z0-9-]+\s*$/, ""));
202
- headings.set(name, [...(headings.get(name) ?? []), locate(match[0])]);
203
- }
204
- }
205
- for (const text of texts) {
194
+ for (const text of maskedTexts) {
206
195
  const malformedOffsets = new Set();
207
- for (const match of text.matchAll(/\[\[#[^\]\n]*(?:$|\](?!\]))/gm)) {
196
+ for (const match of text.matchAll(/(?<!\\)(?<!!)\[\[#[^\]\n]*(?:$|\](?!\]))/gm)) {
208
197
  malformedOffsets.add(match.index ?? 0);
209
198
  errors.push({
210
199
  file,
211
200
  line: locate(match[0]),
212
- code: "lens.wikilink-malformed",
201
+ code: `${codePrefix}.wikilink-malformed`,
213
202
  severity: "error",
214
203
  message: `Malformed same-Lens wikilink '${match[0].trim()}'`,
215
204
  suggestion: "Close the link with ]] and use at most one |label.",
216
205
  });
217
206
  }
218
- for (const match of text.matchAll(/\[\[#([^\]\n]*)\]\]/g)) {
207
+ for (const match of text.matchAll(/(?<!\\)(?<!!)\[\[#([^\]\n]*)\]\]/g)) {
219
208
  if (malformedOffsets.has(match.index ?? 0))
220
209
  continue;
221
210
  const raw = match[1];
222
211
  const [target, label, ...extra] = raw.split("|");
223
212
  const line = locate(match[0]);
224
- if (!target.trim() || extra.length || (label !== undefined && !label.trim())) {
213
+ if (!target ||
214
+ target !== target.trim() ||
215
+ extra.length ||
216
+ (label !== undefined && !label.trim())) {
225
217
  errors.push({
226
218
  file,
227
219
  line,
228
- code: "lens.wikilink-malformed",
220
+ code: `${codePrefix}.wikilink-malformed`,
229
221
  severity: "error",
230
222
  message: `Malformed same-Lens wikilink '${match[0]}'`,
231
- suggestion: "Use [[#Heading text|label]] or [[#^block-id|label]].",
223
+ suggestion: "Use [[#^block-id|label]], or [[#^block-id]] for a heading target.",
232
224
  });
233
225
  continue;
234
226
  }
235
227
  if (target.startsWith("^")) {
236
- const id = target.slice(1).trim();
228
+ const id = target.slice(1);
237
229
  if (!/^[A-Za-z0-9-]+$/.test(id)) {
238
230
  errors.push({
239
231
  file,
240
232
  line,
241
- code: "lens.wikilink-malformed",
233
+ code: `${codePrefix}.wikilink-malformed`,
242
234
  severity: "error",
243
235
  message: `Invalid same-Lens block link '#^${id}'`,
244
236
  suggestion: "Use letters, numbers, and dashes in block IDs.",
@@ -248,45 +240,102 @@ export function validateSameLensLinks(lens, file, source, lineOffset = 0) {
248
240
  errors.push({
249
241
  file,
250
242
  line,
251
- code: "lens.target-missing",
243
+ code: `${codePrefix}.target-missing`,
252
244
  severity: "error",
253
245
  message: `Same-Lens block target '^${id}' does not exist`,
254
246
  });
255
247
  }
256
- }
257
- else {
258
- const count = headings.get(headingAnchor(target))?.length ?? 0;
259
- if (count === 0) {
260
- errors.push({
261
- file,
262
- line,
263
- code: "lens.target-missing",
264
- severity: "error",
265
- message: `Same-Lens heading target '${target}' does not exist`,
266
- });
267
- }
268
- else if (count > 1) {
248
+ else if (label === undefined &&
249
+ (targets.get(id)?.kind !== "heading" || !targets.get(id)?.heading)) {
269
250
  errors.push({
270
251
  file,
271
252
  line,
272
- code: "lens.heading-ambiguous",
253
+ code: `${codePrefix}.auto-label-target-not-heading`,
273
254
  severity: "error",
274
- message: `Same-Lens heading target '${target}' is ambiguous because the heading is duplicated`,
255
+ message: `Unlabeled same-Lens link '#^${id}' does not target a heading`,
256
+ suggestion: "Add a |label, or move the block ID to a heading.",
275
257
  });
276
258
  }
277
259
  }
260
+ else {
261
+ errors.push({
262
+ file,
263
+ line,
264
+ code: `${codePrefix}.heading-link-unsupported`,
265
+ severity: "error",
266
+ message: `Same-Lens heading link '#${target}' is not stable`,
267
+ suggestion: "Add a ^block-id to the heading and link to [[#^block-id]].",
268
+ });
269
+ }
278
270
  }
279
271
  for (const match of text.matchAll(/\]\(anchor:(?:block|heading):[^)]+\)/g)) {
280
272
  errors.push({
281
273
  file,
282
274
  line: locate(match[0]),
283
- code: "lens.anchor-private",
275
+ code: `${codePrefix}.anchor-private`,
284
276
  severity: "error",
285
277
  message: "The renderer-private anchor: scheme cannot be authored directly",
286
- suggestion: "Use [[#^block-id|label]] or [[#Heading text|label]].",
278
+ suggestion: "Use [[#^block-id|label]], or [[#^block-id]] for a heading target.",
287
279
  });
288
280
  }
289
281
  }
282
+ if (rejectMarkdownFragments) {
283
+ const tree = unified().use(remarkParse).use(remarkGfm).parse(source);
284
+ const headingIds = generatedHeadingIds(tree);
285
+ const definitions = new Map();
286
+ visit(tree, "definition", (node) => {
287
+ definitions.set(node.identifier.toLowerCase(), node.url);
288
+ });
289
+ visit(tree, (node) => {
290
+ const url = node.type === "link"
291
+ ? node.url
292
+ : node.type === "linkReference"
293
+ ? definitions.get(node.identifier.toLowerCase())
294
+ : undefined;
295
+ if (!url?.startsWith("#"))
296
+ return;
297
+ const rawFragment = url.slice(1);
298
+ if (!rawFragment) {
299
+ errors.push({
300
+ file,
301
+ line: node.position?.start.line ?? 1,
302
+ code: `${codePrefix}.fragment-link-empty`,
303
+ severity: "error",
304
+ message: "Same-page link has no target",
305
+ suggestion: "Restore the intended link target or remove the link.",
306
+ });
307
+ return;
308
+ }
309
+ let fragment;
310
+ try {
311
+ fragment = decodeURIComponent(rawFragment);
312
+ }
313
+ catch {
314
+ errors.push({
315
+ file,
316
+ line: node.position?.start.line ?? 1,
317
+ code: `${codePrefix}.fragment-link-invalid`,
318
+ severity: "error",
319
+ message: `Same-page link fragment '#${rawFragment}' is malformed`,
320
+ suggestion: "Repair or remove the malformed link target.",
321
+ });
322
+ return;
323
+ }
324
+ // Citation, figure, equation, and source-document anchors can be stable
325
+ // without naming a Markdown heading. This rule is only about generated
326
+ // heading slugs, which change when an editor renames their heading.
327
+ if (!headingIds.has(fragment))
328
+ return;
329
+ errors.push({
330
+ file,
331
+ line: node.position?.start.line ?? 1,
332
+ code: `${codePrefix}.fragment-link-unsupported`,
333
+ severity: "error",
334
+ message: "Markdown heading-fragment links are not stable",
335
+ suggestion: "Add a ^block-id to the target and use [[#^block-id|label]].",
336
+ });
337
+ });
338
+ }
290
339
  return lineOffset === 0
291
340
  ? errors
292
341
  : errors.map((error) => ({
@@ -294,4 +343,12 @@ export function validateSameLensLinks(lens, file, source, lineOffset = 0) {
294
343
  line: error.line === undefined ? undefined : error.line + lineOffset,
295
344
  }));
296
345
  }
346
+ /** Validate canonical same-Lens links against every authored text segment. */
347
+ export function validateSameLensLinks(lens, file, source, lineOffset = 0) {
348
+ return validateSamePageLinks(lens.segments.flatMap(authoredText), file, source, "lens", lineOffset, false);
349
+ }
350
+ /** Validate stable same-page links and block markers in an article body. */
351
+ export function validateArticleSamePageLinks(body, file, lineOffset = 0) {
352
+ return validateSamePageLinks([body], file, body, "article", lineOffset, true);
353
+ }
297
354
  //# sourceMappingURL=same-lens-links.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"same-lens-links.js","sourceRoot":"","sources":["../../src/validator/same-lens-links.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"same-lens-links.js","sourceRoot":"","sources":["../../src/validator/same-lens-links.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lens-content-processor",
3
- "version": "0.40.0",
3
+ "version": "0.41.0",
4
4
  "description": "Parser and validator for Lens educational content (Markdown modules, lenses, learning outcomes)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",