lens-content-processor 0.25.0 → 0.27.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.
- package/dist/flattener/resolve-text-links.d.ts +1 -1
- package/dist/flattener/resolve-text-links.js +61 -32
- package/dist/flattener/resolve-text-links.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/parser/lens.js +2 -3
- package/dist/parser/lens.js.map +1 -1
- package/dist/parser/sections.d.ts +2 -2
- package/dist/parser/sections.js +76 -45
- package/dist/parser/sections.js.map +1 -1
- package/dist/validator/directives.d.ts +3 -6
- package/dist/validator/directives.js +137 -119
- package/dist/validator/directives.js.map +1 -1
- package/dist/validator/math.d.ts +3 -0
- package/dist/validator/math.js +86 -0
- package/dist/validator/math.js.map +1 -0
- package/package.json +2 -1
|
@@ -1,14 +1,35 @@
|
|
|
1
|
-
import { levenshtein } from
|
|
1
|
+
import { levenshtein } from "./field-typos.js";
|
|
2
2
|
const SUPPORTED_DIRECTIVES = {
|
|
3
3
|
note: { container: true, leaf: true, text: true, open: false },
|
|
4
|
+
hide: { container: true, leaf: false, text: true, open: false },
|
|
5
|
+
// Legacy alias. Keep existing content working, but do not advertise it.
|
|
4
6
|
collapse: { container: true, leaf: false, text: true, open: false },
|
|
5
7
|
footnote: { container: false, leaf: true, text: true, open: false },
|
|
8
|
+
callout: { container: true, leaf: false, text: false, open: false },
|
|
6
9
|
};
|
|
10
|
+
const LEGACY_DIRECTIVE_ALIASES = new Map([["collapse", "hide"]]);
|
|
11
|
+
function supportedDirectiveNames(form) {
|
|
12
|
+
return Object.entries(SUPPORTED_DIRECTIVES)
|
|
13
|
+
.filter(([name, support]) => !LEGACY_DIRECTIVE_ALIASES.has(name) && support[form])
|
|
14
|
+
.map(([name]) => name)
|
|
15
|
+
.join(", ");
|
|
16
|
+
}
|
|
7
17
|
const UNSUPPORTED_NAMES = new Set([
|
|
8
|
-
|
|
9
|
-
|
|
18
|
+
"warning",
|
|
19
|
+
"info",
|
|
20
|
+
"tip",
|
|
21
|
+
"caution",
|
|
22
|
+
"important",
|
|
23
|
+
"danger",
|
|
24
|
+
"details",
|
|
25
|
+
"summary",
|
|
26
|
+
"aside",
|
|
27
|
+
"admonition",
|
|
28
|
+
]);
|
|
29
|
+
const ALL_DIRECTIVE_NAMES = new Set([
|
|
30
|
+
...Object.keys(SUPPORTED_DIRECTIVES),
|
|
31
|
+
...UNSUPPORTED_NAMES,
|
|
10
32
|
]);
|
|
11
|
-
const ALL_DIRECTIVE_NAMES = new Set([...Object.keys(SUPPORTED_DIRECTIVES), ...UNSUPPORTED_NAMES]);
|
|
12
33
|
/**
|
|
13
34
|
* Check if a name is a near-miss typo of a supported directive name.
|
|
14
35
|
* Returns the closest match if levenshtein distance ≤ 2, else undefined.
|
|
@@ -20,15 +41,15 @@ function findNearMissDirective(name) {
|
|
|
20
41
|
const dist = levenshtein(name.toLowerCase(), supported);
|
|
21
42
|
if (dist > 0 && dist <= 2 && dist < bestDist) {
|
|
22
43
|
bestDist = dist;
|
|
23
|
-
bestMatch = supported;
|
|
44
|
+
bestMatch = LEGACY_DIRECTIVE_ALIASES.get(supported) ?? supported;
|
|
24
45
|
}
|
|
25
46
|
}
|
|
26
47
|
return bestMatch;
|
|
27
48
|
}
|
|
28
49
|
// Regex patterns
|
|
29
|
-
const CONTAINER_OPEN =
|
|
30
|
-
const CONTAINER_CLOSE_BARE =
|
|
31
|
-
const CONTAINER_CLOSE_ATTR =
|
|
50
|
+
const CONTAINER_OPEN = /^(:{3,})([\w-]+)(?:\s*\{([^}]*)\})?/;
|
|
51
|
+
const CONTAINER_CLOSE_BARE = /^(:{3,})\s*$/;
|
|
52
|
+
const CONTAINER_CLOSE_ATTR = /^(:{3,})\s*\{([^}]*)\}/;
|
|
32
53
|
const CODE_FENCE = /^(?:```|~~~)/;
|
|
33
54
|
const LEAF_DIRECTIVE_PRE = /^::([\w-]+)(?:\{([^}]*)\})?\[/;
|
|
34
55
|
const LEAF_DIRECTIVE_POST = /^::([\w-]+)\[[^\]]*\]\{([^}]*)\}/;
|
|
@@ -41,21 +62,21 @@ const TEXT_UNCLOSED = /(?:^|[^:]):([\w][\w-]*)(?:\{[^}]*\})?\[[^\]]*$/;
|
|
|
41
62
|
* Check if an attribute value looks like a typo of "open".
|
|
42
63
|
*/
|
|
43
64
|
function isOpenTypo(attr) {
|
|
44
|
-
if (attr ===
|
|
65
|
+
if (attr === "open")
|
|
45
66
|
return false;
|
|
46
67
|
if (!attr)
|
|
47
68
|
return false;
|
|
48
69
|
// Case-insensitive match
|
|
49
|
-
if (attr.toLowerCase() ===
|
|
70
|
+
if (attr.toLowerCase() === "open")
|
|
50
71
|
return true;
|
|
51
72
|
// Contains = (like open=true)
|
|
52
|
-
if (attr.includes(
|
|
53
|
-
const key = attr.split(
|
|
54
|
-
if (key.toLowerCase() ===
|
|
73
|
+
if (attr.includes("=")) {
|
|
74
|
+
const key = attr.split("=")[0];
|
|
75
|
+
if (key.toLowerCase() === "open")
|
|
55
76
|
return true;
|
|
56
77
|
}
|
|
57
78
|
// Levenshtein distance
|
|
58
|
-
if (levenshtein(attr.toLowerCase(),
|
|
79
|
+
if (levenshtein(attr.toLowerCase(), "open") <= 2)
|
|
59
80
|
return true;
|
|
60
81
|
return false;
|
|
61
82
|
}
|
|
@@ -69,17 +90,66 @@ function checkAttribute(name, attr, file, line) {
|
|
|
69
90
|
const info = SUPPORTED_DIRECTIVES[name];
|
|
70
91
|
if (!info)
|
|
71
92
|
return errors;
|
|
72
|
-
if (
|
|
93
|
+
if (name === "callout") {
|
|
94
|
+
const tokens = [...attr.matchAll(/([\w-]+)\s*=\s*"([^"]*)"/g)];
|
|
95
|
+
const consumed = tokens.map((match) => match[0]).join(" ");
|
|
96
|
+
if (consumed.replace(/\s+/g, " ").trim() !== attr.replace(/\s+/g, " ").trim()) {
|
|
97
|
+
errors.push({
|
|
98
|
+
file,
|
|
99
|
+
line,
|
|
100
|
+
message: `Invalid callout attributes '{${attr}}'`,
|
|
101
|
+
suggestion: 'Use key="value" attributes: title, tone, or collapse',
|
|
102
|
+
severity: "error",
|
|
103
|
+
});
|
|
104
|
+
return errors;
|
|
105
|
+
}
|
|
106
|
+
const values = new Map(tokens.map((match) => [match[1], match[2]]));
|
|
107
|
+
const allowed = new Set(["title", "tone", "collapse"]);
|
|
108
|
+
for (const key of values.keys()) {
|
|
109
|
+
if (!allowed.has(key)) {
|
|
110
|
+
errors.push({
|
|
111
|
+
file,
|
|
112
|
+
line,
|
|
113
|
+
message: `Unrecognized callout attribute '${key}'`,
|
|
114
|
+
suggestion: "Use title, tone, or collapse",
|
|
115
|
+
severity: "warning",
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const tone = values.get("tone");
|
|
120
|
+
if (tone &&
|
|
121
|
+
!["neutral", "blue", "green", "amber", "red", "purple"].includes(tone)) {
|
|
122
|
+
errors.push({
|
|
123
|
+
file,
|
|
124
|
+
line,
|
|
125
|
+
message: `Unrecognized callout tone '${tone}'`,
|
|
126
|
+
suggestion: "Use neutral, blue, green, amber, red, or purple",
|
|
127
|
+
severity: "error",
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
const collapse = values.get("collapse");
|
|
131
|
+
if (collapse && collapse !== "closed" && collapse !== "open") {
|
|
132
|
+
errors.push({
|
|
133
|
+
file,
|
|
134
|
+
line,
|
|
135
|
+
message: `Invalid callout collapse value '${collapse}'`,
|
|
136
|
+
suggestion: 'Use collapse="closed", collapse="open", or omit collapse',
|
|
137
|
+
severity: "error",
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return errors;
|
|
141
|
+
}
|
|
142
|
+
if (attr === "") {
|
|
73
143
|
errors.push({
|
|
74
144
|
file,
|
|
75
145
|
line,
|
|
76
146
|
message: `Directive '${name}' has an empty attribute '{}'`,
|
|
77
|
-
suggestion:
|
|
78
|
-
severity:
|
|
147
|
+
suggestion: "Remove the empty braces, or use {open} to make the directive open by default",
|
|
148
|
+
severity: "warning",
|
|
79
149
|
});
|
|
80
150
|
return errors;
|
|
81
151
|
}
|
|
82
|
-
if (attr ===
|
|
152
|
+
if (attr === "open") {
|
|
83
153
|
// Valid attribute — but check if this directive supports it
|
|
84
154
|
if (!info.open) {
|
|
85
155
|
errors.push({
|
|
@@ -87,7 +157,7 @@ function checkAttribute(name, attr, file, line) {
|
|
|
87
157
|
line,
|
|
88
158
|
message: `Directive '${name}' does not support {open}`,
|
|
89
159
|
suggestion: `Remove {open} — '${name}' does not support the open attribute`,
|
|
90
|
-
severity:
|
|
160
|
+
severity: "warning",
|
|
91
161
|
});
|
|
92
162
|
}
|
|
93
163
|
}
|
|
@@ -97,7 +167,7 @@ function checkAttribute(name, attr, file, line) {
|
|
|
97
167
|
line,
|
|
98
168
|
message: `Possible attribute typo '{${attr}}' on directive '${name}'`,
|
|
99
169
|
suggestion: `Did you mean {open}?`,
|
|
100
|
-
severity:
|
|
170
|
+
severity: "warning",
|
|
101
171
|
});
|
|
102
172
|
}
|
|
103
173
|
else {
|
|
@@ -106,8 +176,10 @@ function checkAttribute(name, attr, file, line) {
|
|
|
106
176
|
file,
|
|
107
177
|
line,
|
|
108
178
|
message: `Unrecognized attribute '{${attr}}' on directive '${name}'`,
|
|
109
|
-
suggestion: info.open
|
|
110
|
-
|
|
179
|
+
suggestion: info.open
|
|
180
|
+
? `The only supported attribute is {open}`
|
|
181
|
+
: `'${name}' does not support any attributes`,
|
|
182
|
+
severity: "warning",
|
|
111
183
|
});
|
|
112
184
|
}
|
|
113
185
|
return errors;
|
|
@@ -119,7 +191,7 @@ function checkAttribute(name, attr, file, line) {
|
|
|
119
191
|
*/
|
|
120
192
|
export function validateDirectives(body, file, bodyStartLine) {
|
|
121
193
|
const errors = [];
|
|
122
|
-
const lines = body.split(
|
|
194
|
+
const lines = body.split("\n");
|
|
123
195
|
const stack = [];
|
|
124
196
|
let inCodeBlock = false;
|
|
125
197
|
for (let i = 0; i < lines.length; i++) {
|
|
@@ -135,7 +207,7 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
135
207
|
// Check container close with attribute (error: {open} on closing marker)
|
|
136
208
|
const closeAttrMatch = line.match(CONTAINER_CLOSE_ATTR);
|
|
137
209
|
if (closeAttrMatch) {
|
|
138
|
-
const attrOnClose = closeAttrMatch[
|
|
210
|
+
const attrOnClose = closeAttrMatch[2];
|
|
139
211
|
const top = stack.pop();
|
|
140
212
|
if (top) {
|
|
141
213
|
errors.push({
|
|
@@ -143,7 +215,7 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
143
215
|
line: absLine,
|
|
144
216
|
message: `Attribute {${attrOnClose}} on closing ':::' marker has no effect`,
|
|
145
217
|
suggestion: `Move to opening marker: :::${top.name}{${attrOnClose}}`,
|
|
146
|
-
severity:
|
|
218
|
+
severity: "error",
|
|
147
219
|
});
|
|
148
220
|
// Check empty container
|
|
149
221
|
if (!top.hasContent) {
|
|
@@ -151,8 +223,8 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
151
223
|
file,
|
|
152
224
|
line: top.line,
|
|
153
225
|
message: `Empty container directive ':::${top.name}' has no content`,
|
|
154
|
-
suggestion:
|
|
155
|
-
severity:
|
|
226
|
+
suggestion: "Add content between the opening and closing markers",
|
|
227
|
+
severity: "warning",
|
|
156
228
|
});
|
|
157
229
|
}
|
|
158
230
|
}
|
|
@@ -166,8 +238,8 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
166
238
|
file,
|
|
167
239
|
line: top.line,
|
|
168
240
|
message: `Empty container directive ':::${top.name}' has no content`,
|
|
169
|
-
suggestion:
|
|
170
|
-
severity:
|
|
241
|
+
suggestion: "Add content between the opening and closing markers",
|
|
242
|
+
severity: "warning",
|
|
171
243
|
});
|
|
172
244
|
}
|
|
173
245
|
continue;
|
|
@@ -175,15 +247,16 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
175
247
|
// Check container open
|
|
176
248
|
const openMatch = line.match(CONTAINER_OPEN);
|
|
177
249
|
if (openMatch) {
|
|
178
|
-
const
|
|
179
|
-
const
|
|
250
|
+
const fenceLength = openMatch[1].length;
|
|
251
|
+
const name = openMatch[2];
|
|
252
|
+
const attr = openMatch[3];
|
|
180
253
|
if (UNSUPPORTED_NAMES.has(name)) {
|
|
181
254
|
errors.push({
|
|
182
255
|
file,
|
|
183
256
|
line: absLine,
|
|
184
257
|
message: `Unsupported directive ':::${name}'`,
|
|
185
|
-
suggestion: `Supported container directives: ${
|
|
186
|
-
severity:
|
|
258
|
+
suggestion: `Supported container directives: ${supportedDirectiveNames("container")}`,
|
|
259
|
+
severity: "error",
|
|
187
260
|
});
|
|
188
261
|
}
|
|
189
262
|
else if (SUPPORTED_DIRECTIVES[name]) {
|
|
@@ -193,7 +266,7 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
193
266
|
line: absLine,
|
|
194
267
|
message: `Directive '${name}' does not support the container ':::' form`,
|
|
195
268
|
suggestion: `Use the leaf form '::${name}[text]' or inline form ':${name}[text]' instead`,
|
|
196
|
-
severity:
|
|
269
|
+
severity: "error",
|
|
197
270
|
});
|
|
198
271
|
}
|
|
199
272
|
errors.push(...checkAttribute(name, attr, file, absLine));
|
|
@@ -205,12 +278,12 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
205
278
|
file,
|
|
206
279
|
line: absLine,
|
|
207
280
|
message: `Unknown directive ':::${name}' — did you mean ':::${nearMiss}'?`,
|
|
208
|
-
suggestion: `Supported container directives: ${
|
|
209
|
-
severity:
|
|
281
|
+
suggestion: `Supported container directives: ${supportedDirectiveNames("container")}`,
|
|
282
|
+
severity: "error",
|
|
210
283
|
});
|
|
211
284
|
}
|
|
212
285
|
}
|
|
213
|
-
stack.push({ name, line: absLine, hasContent: false });
|
|
286
|
+
stack.push({ name, line: absLine, hasContent: false, fenceLength });
|
|
214
287
|
continue;
|
|
215
288
|
}
|
|
216
289
|
// Check leaf directive (::name[...)
|
|
@@ -218,13 +291,15 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
218
291
|
const leafUnclosedMatch = line.match(LEAF_UNCLOSED);
|
|
219
292
|
if (leafUnclosedMatch) {
|
|
220
293
|
const name = leafUnclosedMatch[1];
|
|
221
|
-
if (SUPPORTED_DIRECTIVES[name] ||
|
|
294
|
+
if (SUPPORTED_DIRECTIVES[name] ||
|
|
295
|
+
UNSUPPORTED_NAMES.has(name) ||
|
|
296
|
+
findNearMissDirective(name)) {
|
|
222
297
|
errors.push({
|
|
223
298
|
file,
|
|
224
299
|
line: absLine,
|
|
225
300
|
message: `Unclosed bracket in leaf directive '::${name}[' — missing closing ']'`,
|
|
226
301
|
suggestion: `Add a closing bracket: ::${name}[content]`,
|
|
227
|
-
severity:
|
|
302
|
+
severity: "error",
|
|
228
303
|
});
|
|
229
304
|
if (stack.length > 0) {
|
|
230
305
|
stack[stack.length - 1].hasContent = true;
|
|
@@ -245,8 +320,8 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
245
320
|
file,
|
|
246
321
|
line: absLine,
|
|
247
322
|
message: `Unsupported directive '::${name}'`,
|
|
248
|
-
suggestion: `Supported leaf directives: ${
|
|
249
|
-
severity:
|
|
323
|
+
suggestion: `Supported leaf directives: ${supportedDirectiveNames("leaf")}`,
|
|
324
|
+
severity: "error",
|
|
250
325
|
});
|
|
251
326
|
}
|
|
252
327
|
else if (SUPPORTED_DIRECTIVES[name]) {
|
|
@@ -256,7 +331,7 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
256
331
|
line: absLine,
|
|
257
332
|
message: `Directive '${name}' does not support the leaf '::' form`,
|
|
258
333
|
suggestion: `Use the container form ':::${name}' or inline form ':${name}[text]' instead`,
|
|
259
|
-
severity:
|
|
334
|
+
severity: "warning",
|
|
260
335
|
});
|
|
261
336
|
}
|
|
262
337
|
errors.push(...checkAttribute(name, attr, file, absLine));
|
|
@@ -268,8 +343,8 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
268
343
|
file,
|
|
269
344
|
line: absLine,
|
|
270
345
|
message: `Unknown directive '::${name}' — did you mean '::${nearMiss}'?`,
|
|
271
|
-
suggestion: `Supported leaf directives: ${
|
|
272
|
-
severity:
|
|
346
|
+
suggestion: `Supported leaf directives: ${supportedDirectiveNames("leaf")}`,
|
|
347
|
+
severity: "error",
|
|
273
348
|
});
|
|
274
349
|
}
|
|
275
350
|
}
|
|
@@ -280,20 +355,22 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
280
355
|
continue;
|
|
281
356
|
}
|
|
282
357
|
// Check for unclosed text directive brackets (:name[ without ])
|
|
283
|
-
const textUnclosedMatches = line.matchAll(new RegExp(TEXT_UNCLOSED,
|
|
358
|
+
const textUnclosedMatches = line.matchAll(new RegExp(TEXT_UNCLOSED, "g"));
|
|
284
359
|
for (const m of textUnclosedMatches) {
|
|
285
360
|
const name = m[1];
|
|
286
361
|
const matchIndex = m.index;
|
|
287
|
-
const beforeMatch = line.substring(0, matchIndex + (m[0].startsWith(
|
|
362
|
+
const beforeMatch = line.substring(0, matchIndex + (m[0].startsWith(":") ? 0 : 1));
|
|
288
363
|
if (/https?$|ftp$|mailto$|tel$/.test(beforeMatch))
|
|
289
364
|
continue;
|
|
290
|
-
if (SUPPORTED_DIRECTIVES[name] ||
|
|
365
|
+
if (SUPPORTED_DIRECTIVES[name] ||
|
|
366
|
+
UNSUPPORTED_NAMES.has(name) ||
|
|
367
|
+
findNearMissDirective(name)) {
|
|
291
368
|
errors.push({
|
|
292
369
|
file,
|
|
293
370
|
line: absLine,
|
|
294
371
|
message: `Unclosed bracket in text directive ':${name}[' — missing closing ']'`,
|
|
295
372
|
suggestion: `Add a closing bracket: :${name}[content]`,
|
|
296
|
-
severity:
|
|
373
|
+
severity: "error",
|
|
297
374
|
});
|
|
298
375
|
}
|
|
299
376
|
}
|
|
@@ -303,7 +380,7 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
303
380
|
const seenTextDirectives = new Set(); // track by match index to avoid duplicates
|
|
304
381
|
// Check POST first so :name[text]{attr} captures the attribute before PRE sees it without attr
|
|
305
382
|
for (const pattern of [TEXT_DIRECTIVE_POST, TEXT_DIRECTIVE_PRE]) {
|
|
306
|
-
const textMatches = line.matchAll(new RegExp(pattern,
|
|
383
|
+
const textMatches = line.matchAll(new RegExp(pattern, "g"));
|
|
307
384
|
for (const textMatch of textMatches) {
|
|
308
385
|
const matchIndex = textMatch.index;
|
|
309
386
|
if (seenTextDirectives.has(matchIndex))
|
|
@@ -312,7 +389,7 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
312
389
|
const name = textMatch[1];
|
|
313
390
|
const attr = textMatch[2];
|
|
314
391
|
// Skip URL-like patterns (http:, https:, ftp:, etc.)
|
|
315
|
-
const beforeMatch = line.substring(0, matchIndex + (textMatch[0].startsWith(
|
|
392
|
+
const beforeMatch = line.substring(0, matchIndex + (textMatch[0].startsWith(":") ? 0 : 1));
|
|
316
393
|
if (/https?$|ftp$|mailto$|tel$/.test(beforeMatch))
|
|
317
394
|
continue;
|
|
318
395
|
if (UNSUPPORTED_NAMES.has(name)) {
|
|
@@ -320,8 +397,8 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
320
397
|
file,
|
|
321
398
|
line: absLine,
|
|
322
399
|
message: `Unsupported directive ':${name}'`,
|
|
323
|
-
suggestion: `Supported text directives: ${
|
|
324
|
-
severity:
|
|
400
|
+
suggestion: `Supported text directives: ${supportedDirectiveNames("text")}`,
|
|
401
|
+
severity: "error",
|
|
325
402
|
});
|
|
326
403
|
}
|
|
327
404
|
else if (SUPPORTED_DIRECTIVES[name]) {
|
|
@@ -334,8 +411,8 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
334
411
|
file,
|
|
335
412
|
line: absLine,
|
|
336
413
|
message: `Unknown directive ':${name}' — did you mean ':${nearMiss}'?`,
|
|
337
|
-
suggestion: `Supported text directives: ${
|
|
338
|
-
severity:
|
|
414
|
+
suggestion: `Supported text directives: ${supportedDirectiveNames("text")}`,
|
|
415
|
+
severity: "error",
|
|
339
416
|
});
|
|
340
417
|
}
|
|
341
418
|
}
|
|
@@ -346,7 +423,7 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
346
423
|
}
|
|
347
424
|
}
|
|
348
425
|
// Mark content in parent container (non-blank, non-directive line)
|
|
349
|
-
if (stack.length > 0 && line.trim() !==
|
|
426
|
+
if (stack.length > 0 && line.trim() !== "") {
|
|
350
427
|
stack[stack.length - 1].hasContent = true;
|
|
351
428
|
}
|
|
352
429
|
}
|
|
@@ -356,73 +433,14 @@ export function validateDirectives(body, file, bodyStartLine) {
|
|
|
356
433
|
file,
|
|
357
434
|
line: entry.line,
|
|
358
435
|
message: `Unclosed container directive ':::${entry.name}'`,
|
|
359
|
-
suggestion:
|
|
360
|
-
severity:
|
|
436
|
+
suggestion: "Add a closing ::: marker",
|
|
437
|
+
severity: "error",
|
|
361
438
|
});
|
|
362
439
|
}
|
|
363
440
|
return errors;
|
|
364
441
|
}
|
|
365
|
-
/**
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
*/
|
|
369
|
-
export function detectDirectivesInNonArticle(content, file, line) {
|
|
370
|
-
const lines = content.split('\n');
|
|
371
|
-
let inCodeBlock = false;
|
|
372
|
-
for (const l of lines) {
|
|
373
|
-
if (CODE_FENCE.test(l)) {
|
|
374
|
-
inCodeBlock = !inCodeBlock;
|
|
375
|
-
continue;
|
|
376
|
-
}
|
|
377
|
-
if (inCodeBlock)
|
|
378
|
-
continue;
|
|
379
|
-
// Container directive
|
|
380
|
-
if (CONTAINER_OPEN.test(l)) {
|
|
381
|
-
const match = l.match(CONTAINER_OPEN);
|
|
382
|
-
if (ALL_DIRECTIVE_NAMES.has(match[1])) {
|
|
383
|
-
return [{
|
|
384
|
-
file,
|
|
385
|
-
line,
|
|
386
|
-
message: `Directive ':::${match[1]}' found in non-article content — directives only render in article files`,
|
|
387
|
-
suggestion: 'Move this content to an article file (articles/*.md) or remove the directive syntax',
|
|
388
|
-
severity: 'warning',
|
|
389
|
-
}];
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
// Leaf directive
|
|
393
|
-
const leafMatch = l.match(LEAF_DIRECTIVE_PRE);
|
|
394
|
-
if (leafMatch && ALL_DIRECTIVE_NAMES.has(leafMatch[1])) {
|
|
395
|
-
return [{
|
|
396
|
-
file,
|
|
397
|
-
line,
|
|
398
|
-
message: `Directive '::${leafMatch[1]}' found in non-article content — directives only render in article files`,
|
|
399
|
-
suggestion: 'Move this content to an article file (articles/*.md) or remove the directive syntax',
|
|
400
|
-
severity: 'warning',
|
|
401
|
-
}];
|
|
402
|
-
}
|
|
403
|
-
// Text/inline directive — scan for :name[ patterns (both pre and post attribute forms)
|
|
404
|
-
for (const pattern of [TEXT_DIRECTIVE_PRE, TEXT_DIRECTIVE_POST]) {
|
|
405
|
-
const textRegex = new RegExp(pattern, 'g');
|
|
406
|
-
let textMatch;
|
|
407
|
-
while ((textMatch = textRegex.exec(l)) !== null) {
|
|
408
|
-
const name = textMatch[1];
|
|
409
|
-
// Skip URL-like patterns
|
|
410
|
-
const matchIndex = textMatch.index;
|
|
411
|
-
const beforeMatch = l.substring(0, matchIndex + (textMatch[0].startsWith(':') ? 0 : 1));
|
|
412
|
-
if (/https?$|ftp$|mailto$|tel$/.test(beforeMatch))
|
|
413
|
-
continue;
|
|
414
|
-
if (ALL_DIRECTIVE_NAMES.has(name)) {
|
|
415
|
-
return [{
|
|
416
|
-
file,
|
|
417
|
-
line,
|
|
418
|
-
message: `Directive ':${name}' found in non-article content — directives only render in article files`,
|
|
419
|
-
suggestion: 'Move this content to an article file (articles/*.md) or remove the directive syntax',
|
|
420
|
-
severity: 'warning',
|
|
421
|
-
}];
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
return [];
|
|
442
|
+
/** Validate directives in lens-authored text segments. */
|
|
443
|
+
export function validateLensDirectives(content, file, line) {
|
|
444
|
+
return validateDirectives(content, file, line);
|
|
427
445
|
}
|
|
428
446
|
//# sourceMappingURL=directives.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directives.js","sourceRoot":"","sources":["../../src/validator/directives.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"directives.js","sourceRoot":"","sources":["../../src/validator/directives.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import katex from "katex";
|
|
2
|
+
import { stripAuthoringMarkup } from "../authoring-markup.js";
|
|
3
|
+
const INLINE_MATH_RE = /(?<!\$)\$(?!\$)([^\s$](?:[^$\n]*?[^\s$])?)\$(?![\d$])/g;
|
|
4
|
+
function maskNonMathMarkdown(content) {
|
|
5
|
+
const authored = stripAuthoringMarkup(content);
|
|
6
|
+
const lines = authored.split("\n");
|
|
7
|
+
let inFrontmatter = lines[0]?.trim() === "---";
|
|
8
|
+
let inFence = null;
|
|
9
|
+
return lines
|
|
10
|
+
.map((line, index) => {
|
|
11
|
+
if (inFrontmatter) {
|
|
12
|
+
if (index > 0 && line.trim() === "---")
|
|
13
|
+
inFrontmatter = false;
|
|
14
|
+
return "";
|
|
15
|
+
}
|
|
16
|
+
const fence = line.match(/^\s*(`{3,}|~{3,})/);
|
|
17
|
+
if (fence) {
|
|
18
|
+
const marker = fence[1][0];
|
|
19
|
+
if (inFence === marker)
|
|
20
|
+
inFence = null;
|
|
21
|
+
else if (inFence === null)
|
|
22
|
+
inFence = marker;
|
|
23
|
+
return "";
|
|
24
|
+
}
|
|
25
|
+
if (inFence)
|
|
26
|
+
return "";
|
|
27
|
+
// Inline code is opaque to the markdown math plugins too.
|
|
28
|
+
return line.replace(/(`+)(.*?)\1/g, (match) => " ".repeat(match.length));
|
|
29
|
+
})
|
|
30
|
+
.join("\n");
|
|
31
|
+
}
|
|
32
|
+
function lineAt(content, offset) {
|
|
33
|
+
return content.slice(0, offset).split("\n").length;
|
|
34
|
+
}
|
|
35
|
+
function parseError(tex, file, line) {
|
|
36
|
+
try {
|
|
37
|
+
katex.renderToString(tex, { throwOnError: true, strict: "ignore" });
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
42
|
+
return {
|
|
43
|
+
file,
|
|
44
|
+
line,
|
|
45
|
+
severity: "error",
|
|
46
|
+
message: `Invalid LaTeX math: ${detail}`,
|
|
47
|
+
suggestion: "Fix the KaTeX syntax or replace/define the unsupported command in this math expression.",
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** Validate math exactly as isolated KaTeX expressions, matching Lens rendering. */
|
|
52
|
+
export function validateMath(content, file) {
|
|
53
|
+
const source = maskNonMathMarkdown(content);
|
|
54
|
+
const errors = [];
|
|
55
|
+
const withoutDisplay = source.split("");
|
|
56
|
+
const displayRe = /\$\$([\s\S]*?)\$\$/g;
|
|
57
|
+
for (const match of source.matchAll(displayRe)) {
|
|
58
|
+
const offset = match.index ?? 0;
|
|
59
|
+
const error = parseError(match[1], file, lineAt(source, offset));
|
|
60
|
+
if (error)
|
|
61
|
+
errors.push(error);
|
|
62
|
+
for (let index = offset; index < offset + match[0].length; index += 1) {
|
|
63
|
+
if (withoutDisplay[index] !== "\n")
|
|
64
|
+
withoutDisplay[index] = " ";
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const inlineSource = withoutDisplay.join("");
|
|
68
|
+
const unclosedDisplay = inlineSource.indexOf("$$");
|
|
69
|
+
if (unclosedDisplay !== -1) {
|
|
70
|
+
errors.push({
|
|
71
|
+
file,
|
|
72
|
+
line: lineAt(inlineSource, unclosedDisplay),
|
|
73
|
+
severity: "error",
|
|
74
|
+
message: "Invalid LaTeX math: unclosed $$ display-math delimiter.",
|
|
75
|
+
suggestion: "Add the closing $$ delimiter.",
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
for (const match of inlineSource.matchAll(INLINE_MATH_RE)) {
|
|
79
|
+
const offset = match.index ?? 0;
|
|
80
|
+
const error = parseError(match[1], file, lineAt(inlineSource, offset));
|
|
81
|
+
if (error)
|
|
82
|
+
errors.push(error);
|
|
83
|
+
}
|
|
84
|
+
return errors;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=math.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/validator/math.ts"],"names":[],"mappings":"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"}
|