lens-content-processor 0.49.0 → 0.51.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/bundler/article.d.ts +56 -45
- package/dist/bundler/article.js +129 -51
- package/dist/bundler/article.js.map +1 -1
- package/dist/cli.js +19 -0
- package/dist/cli.js.map +1 -1
- package/dist/content-schema.d.ts +14 -0
- package/dist/content-schema.js +33 -0
- package/dist/content-schema.js.map +1 -1
- package/dist/course-graph.d.ts +2 -0
- package/dist/course-graph.js +190 -0
- package/dist/course-graph.js.map +1 -0
- package/dist/flattener/index.js +64 -38
- package/dist/flattener/index.js.map +1 -1
- package/dist/index.d.ts +21 -2
- package/dist/index.js +27 -97
- package/dist/index.js.map +1 -1
- package/dist/markdown-parse.d.ts +5 -0
- package/dist/markdown-parse.js +33 -0
- package/dist/markdown-parse.js.map +1 -0
- package/dist/parser/article-elements.d.ts +139 -0
- package/dist/parser/article-elements.js +489 -0
- package/dist/parser/article-elements.js.map +1 -0
- package/dist/parser/article.d.ts +4 -0
- package/dist/parser/article.js +7 -4
- package/dist/parser/article.js.map +1 -1
- package/dist/parser/code-fence.d.ts +7 -0
- package/dist/parser/code-fence.js +34 -0
- package/dist/parser/code-fence.js.map +1 -0
- package/dist/parser/frames.d.ts +51 -0
- package/dist/parser/frames.js +116 -0
- package/dist/parser/frames.js.map +1 -0
- package/dist/parser/learning-outcome.js +4 -2
- package/dist/parser/learning-outcome.js.map +1 -1
- package/dist/parser/lens.d.ts +14 -1
- package/dist/parser/lens.js +28 -20
- package/dist/parser/lens.js.map +1 -1
- package/dist/parser/module.js +7 -27
- package/dist/parser/module.js.map +1 -1
- package/dist/parser/response-segments.d.ts +2 -0
- package/dist/parser/response-segments.js +2 -2
- package/dist/parser/response-segments.js.map +1 -1
- package/dist/parser/sections.d.ts +21 -1
- package/dist/parser/sections.js +94 -14
- package/dist/parser/sections.js.map +1 -1
- package/dist/parser/survey.js +9 -5
- package/dist/parser/survey.js.map +1 -1
- package/dist/reference-graph.d.ts +3 -0
- package/dist/reference-graph.js +11 -7
- package/dist/reference-graph.js.map +1 -1
- package/dist/same-page-links.js +3 -18
- package/dist/same-page-links.js.map +1 -1
- package/dist/source-location.js +6 -1
- package/dist/source-location.js.map +1 -1
- package/dist/validator/article-structure.js +25 -5
- package/dist/validator/article-structure.js.map +1 -1
- package/dist/validator/directives.js +61 -58
- package/dist/validator/directives.js.map +1 -1
- package/dist/validator/emphasis.js +1 -1
- package/dist/validator/emphasis.js.map +1 -1
- package/dist/validator/same-lens-links.js +3 -15
- package/dist/validator/same-lens-links.js.map +1 -1
- package/dist/validator/test-segments.js +1 -1
- package/dist/validator/tier.d.ts +2 -2
- package/dist/validator/tier.js +20 -18
- package/dist/validator/tier.js.map +1 -1
- package/package.json +1 -1
- package/dist/validator/article-imports.d.ts +0 -68
- package/dist/validator/article-imports.js +0 -265
- package/dist/validator/article-imports.js.map +0 -1
- package/dist/validator/markdown-parse.d.ts +0 -3
- package/dist/validator/markdown-parse.js +0 -22
- package/dist/validator/markdown-parse.js.map +0 -1
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { toString } from "mdast-util-to-string";
|
|
2
|
-
import remarkDirective from "remark-directive";
|
|
3
|
-
import remarkGfm from "remark-gfm";
|
|
4
|
-
import remarkMath from "remark-math";
|
|
5
|
-
import remarkParse from "remark-parse";
|
|
6
|
-
import { unified } from "unified";
|
|
7
2
|
import { visit } from "unist-util-visit";
|
|
8
3
|
import { stripAuthoringMarkupForValidation } from "../authoring-markup.js";
|
|
4
|
+
import { parseMarkdown } from "../markdown-parse.js";
|
|
9
5
|
import { collectBlockTargetsFrom, maskCode } from "../same-page-links.js";
|
|
10
6
|
function authoredText(segment) {
|
|
11
7
|
const values = [];
|
|
@@ -66,12 +62,7 @@ function generatedHeadingIds(tree) {
|
|
|
66
62
|
function markerSource(source) {
|
|
67
63
|
const validationSource = stripAuthoringMarkupForValidation(source);
|
|
68
64
|
const chars = validationSource.split("");
|
|
69
|
-
const tree =
|
|
70
|
-
.use(remarkParse)
|
|
71
|
-
.use(remarkGfm)
|
|
72
|
-
.use(remarkDirective)
|
|
73
|
-
.use(remarkMath)
|
|
74
|
-
.parse(validationSource);
|
|
65
|
+
const tree = parseMarkdown(validationSource, "gfm-directive-math-single-dollar");
|
|
75
66
|
visit(tree, (node) => {
|
|
76
67
|
if (!["code", "inlineCode", "math", "inlineMath"].includes(node.type))
|
|
77
68
|
return;
|
|
@@ -282,10 +273,7 @@ function validateSamePageLinks(texts, file, source, codePrefix, lineOffset, reje
|
|
|
282
273
|
}
|
|
283
274
|
}
|
|
284
275
|
if (rejectMarkdownFragments) {
|
|
285
|
-
const tree =
|
|
286
|
-
.use(remarkParse)
|
|
287
|
-
.use(remarkGfm)
|
|
288
|
-
.parse(source);
|
|
276
|
+
const tree = parseMarkdown(source, "gfm");
|
|
289
277
|
const headingIds = generatedHeadingIds(tree);
|
|
290
278
|
const definitions = new Map();
|
|
291
279
|
visit(tree, "definition", (node) => {
|
|
@@ -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":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE1E,SAAS,YAAY,CAAC,OAA0B;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QAC7D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,cAAc;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChE,IAAI,OAAO,CAAC,sBAAsB;YAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,sBAAsB;QAC/D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;QAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,MAAc,EAAE,MAAc;IAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACpD,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,OAAO,CAAC,MAAc,EAAU,EAAE;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,kFAAkF;AAClF,SAAS,mBAAmB,CAAC,IAAU;IACrC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAIlC,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,aAAa,CACxB,gBAAgB,EAChB,kCAAkC,CACnC,CAAC;IAEF,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;QACnB,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACnE,OAAO;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QACrD,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAChD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI;gBAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAmB,CAAC;IACxD,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,EAAE;QAC9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,IACE,IAAI,CAAC,IAAI,KAAK,WAAW;gBACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAC1B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM;gBAChC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAC5C,CAAC;gBACD,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,IAAc,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAY,EACZ,MAAc,EACd,UAA8B;IAE9B,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI;gBACJ,IAAI,EAAE,GAAG,UAAU,mBAAmB;gBACtC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,gCAAgC,EAAE,GAAG;gBAC9C,UAAU,EAAE,wCAAwC;aACrD,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,eAAe,GAAG,KAAK;iBAC1B,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;iBACf,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAChE,MAAM,UAAU,GACd,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAC/D,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI;oBACJ,IAAI,EAAE,GAAG,UAAU,kBAAkB;oBACrC,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,kBAAkB,EAAE,sCAAsC;oBACnE,UAAU,EAAE,qCAAqC;iBAClD,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI;oBACJ,IAAI,EAAE,GAAG,UAAU,oBAAoB;oBACvC,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,6BAA6B,EAAE,8CAA8C;oBACtF,UAAU,EAAE,sBAAsB,EAAE,4BAA4B;iBACjE,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI;oBACJ,IAAI,EAAE,GAAG,UAAU,kBAAkB;oBACrC,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,kBAAkB,EAAE,sCAAsC;oBACnE,UAAU,EAAE,qCAAqC;iBAClD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI;gBACJ,IAAI,EAAE,GAAG,UAAU,oBAAoB;gBACvC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,kBAAkB,EAAE,0CAA0C;gBACvE,UAAU,EAAE,6BAA6B,EAAE,8CAA8C;aAC1F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;gBACpB,IAAI,EAAE,GAAG,UAAU,qBAAqB;gBACxC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,kCAAkC,EAAE,GAAG;aACjD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAe,EACf,IAAY,EACZ,MAAc,EACd,UAA8B,EAC9B,UAAkB,EAClB,uBAAgC;IAEhC,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAC/B,4CAA4C,CAC7C,EAAE,CAAC;YACF,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,EAAE,GAAG,UAAU,qBAAqB;gBACxC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,iCAAiC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG;gBAC5D,UAAU,EAAE,oDAAoD;aACjE,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,CAAC;YACvE,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;gBAAE,SAAS;YACrD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,IACE,CAAC,MAAM;gBACP,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE;gBACxB,KAAK,CAAC,MAAM;gBACZ,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EACtC,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI;oBACJ,IAAI,EAAE,GAAG,UAAU,qBAAqB;oBACxC,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,iCAAiC,KAAK,CAAC,CAAC,CAAC,GAAG;oBACrD,UAAU,EACR,mEAAmE;iBACtE,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;oBAChC,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI;wBACJ,IAAI;wBACJ,IAAI,EAAE,GAAG,UAAU,qBAAqB;wBACxC,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,mCAAmC,EAAE,GAAG;wBACjD,UAAU,EAAE,gDAAgD;qBAC7D,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI;wBACJ,IAAI;wBACJ,IAAI,EAAE,GAAG,UAAU,iBAAiB;wBACpC,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,4BAA4B,EAAE,kBAAkB;qBAC1D,CAAC,CAAC;gBACL,CAAC;qBAAM,IACL,KAAK,KAAK,SAAS;oBACnB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAClE,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI;wBACJ,IAAI;wBACJ,IAAI,EAAE,GAAG,UAAU,gCAAgC;wBACnD,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,+BAA+B,EAAE,6BAA6B;wBACvE,UAAU,EAAE,kDAAkD;qBAC/D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI;oBACJ,IAAI,EAAE,GAAG,UAAU,2BAA2B;oBAC9C,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,4BAA4B,MAAM,iBAAiB;oBAC5D,UAAU,EACR,4DAA4D;iBAC/D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAC/B,uCAAuC,CACxC,EAAE,CAAC;YACF,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,EAAE,GAAG,UAAU,iBAAiB;gBACpC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EACL,iEAAiE;gBACnE,UAAU,EACR,mEAAmE;aACtE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,uBAAuB,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YACjC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,GAAG,GACP,IAAI,CAAC,IAAI,KAAK,MAAM;gBAClB,CAAC,CAAC,IAAI,CAAC,GAAG;gBACV,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe;oBAC7B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;oBAChD,CAAC,CAAC,SAAS,CAAC;YAClB,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO;YAClC,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;oBACpC,IAAI,EAAE,GAAG,UAAU,sBAAsB;oBACzC,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,8BAA8B;oBACvC,UAAU,EAAE,sDAAsD;iBACnE,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,QAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,QAAQ,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;oBACpC,IAAI,EAAE,GAAG,UAAU,wBAAwB;oBAC3C,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,6BAA6B,WAAW,gBAAgB;oBACjE,UAAU,EAAE,6CAA6C;iBAC1D,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,wEAAwE;YACxE,uEAAuE;YACvE,oEAAoE;YACpE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,OAAO;YACtC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;gBACpC,IAAI,EAAE,GAAG,UAAU,4BAA4B;gBAC/C,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,gDAAgD;gBACzD,UAAU,EACR,6DAA6D;aAChE,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,KAAK,CAAC;QACrB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrB,GAAG,KAAK;YACR,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU;SACrE,CAAC,CAAC,CAAC;AACV,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,qBAAqB,CACnC,IAAgB,EAChB,IAAY,EACZ,MAAc,EACd,UAAU,GAAG,CAAC;IAEd,OAAO,qBAAqB,CAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EACnC,IAAI,EACJ,MAAM,EACN,MAAM,EACN,UAAU,EACV,KAAK,CACN,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,4BAA4B,CAC1C,IAAY,EACZ,IAAY,EACZ,UAAU,GAAG,CAAC;IAEd,OAAO,qBAAqB,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* A Test is an assessment: only `question` and `roleplay` segments are rendered
|
|
5
5
|
* to the student (web_frontend TestSection.tsx) and scored by the grader
|
|
6
|
-
* (core/assessment.py)
|
|
6
|
+
* (core/assessment.py). Any other
|
|
7
7
|
* segment type (text, article, video, chat) placed in a Test is silently
|
|
8
8
|
* dropped everywhere — never shown and never sent to the model — so it is
|
|
9
9
|
* almost always an authoring mistake (e.g. intro text that belongs inside the
|
package/dist/validator/tier.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ContentError } from
|
|
2
|
-
export type ContentTier =
|
|
1
|
+
import type { ContentError } from "../index.js";
|
|
2
|
+
export type ContentTier = "production" | "wip" | "ignored";
|
|
3
3
|
/**
|
|
4
4
|
* Lower-cased frontmatter `tags` of every .md file (empty when absent).
|
|
5
5
|
* This is the one frontmatter pre-scan: every tag-driven rule reads from it —
|
package/dist/validator/tier.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { parseFrontmatter } from
|
|
1
|
+
import { parseFrontmatter } from "../parser/frontmatter.js";
|
|
2
2
|
/**
|
|
3
3
|
* Lower-cased frontmatter `tags` of every .md file (empty when absent).
|
|
4
4
|
* This is the one frontmatter pre-scan: every tag-driven rule reads from it —
|
|
@@ -8,10 +8,12 @@ import { parseFrontmatter } from '../parser/frontmatter.js';
|
|
|
8
8
|
export function buildTagMap(files) {
|
|
9
9
|
const tagMap = new Map();
|
|
10
10
|
for (const [path, content] of files.entries()) {
|
|
11
|
-
if (!path.endsWith(
|
|
11
|
+
if (!path.endsWith(".md"))
|
|
12
12
|
continue;
|
|
13
13
|
const tags = parseFrontmatter(content, path).frontmatter.tags;
|
|
14
|
-
tagMap.set(path, Array.isArray(tags)
|
|
14
|
+
tagMap.set(path, Array.isArray(tags)
|
|
15
|
+
? tags.map((t) => String(t).toLowerCase())
|
|
16
|
+
: []);
|
|
15
17
|
}
|
|
16
18
|
return tagMap;
|
|
17
19
|
}
|
|
@@ -22,11 +24,11 @@ export function buildTagMap(files) {
|
|
|
22
24
|
* - otherwise → 'production'
|
|
23
25
|
*/
|
|
24
26
|
export function getTierFromTags(tags) {
|
|
25
|
-
if (tags.includes(
|
|
26
|
-
return
|
|
27
|
-
if (tags.includes(
|
|
28
|
-
return
|
|
29
|
-
return
|
|
27
|
+
if (tags.includes("validator-ignore"))
|
|
28
|
+
return "ignored";
|
|
29
|
+
if (tags.includes("wip") || tags.includes("work-in-progress"))
|
|
30
|
+
return "wip";
|
|
31
|
+
return "production";
|
|
30
32
|
}
|
|
31
33
|
/** Tier of every file in a tag map (see buildTagMap). */
|
|
32
34
|
export function buildTierMap(tagMap) {
|
|
@@ -41,38 +43,38 @@ export function buildTierMap(tagMap) {
|
|
|
41
43
|
*/
|
|
42
44
|
export function checkTierViolation(parentPath, parentTier, childPath, childTier, childLabel, line) {
|
|
43
45
|
// Ignored parents are never processed (filtered upstream)
|
|
44
|
-
if (parentTier ===
|
|
46
|
+
if (parentTier === "ignored")
|
|
45
47
|
return null;
|
|
46
48
|
// Production parent → child must be production
|
|
47
|
-
if (parentTier ===
|
|
49
|
+
if (parentTier === "production" && childTier === "wip") {
|
|
48
50
|
return {
|
|
49
51
|
file: parentPath,
|
|
50
52
|
line,
|
|
51
53
|
message: `References WIP ${childLabel}: ${childPath}`,
|
|
52
54
|
suggestion: `Remove the WIP tag from ${childPath}, or add tags: [wip] to this file`,
|
|
53
|
-
severity:
|
|
54
|
-
category:
|
|
55
|
+
severity: "error",
|
|
56
|
+
category: "production",
|
|
55
57
|
};
|
|
56
58
|
}
|
|
57
|
-
if (parentTier ===
|
|
59
|
+
if (parentTier === "production" && childTier === "ignored") {
|
|
58
60
|
return {
|
|
59
61
|
file: parentPath,
|
|
60
62
|
line,
|
|
61
63
|
message: `References ignored ${childLabel}: ${childPath}`,
|
|
62
64
|
suggestion: `Remove the validator-ignore tag from ${childPath}, or add tags: [wip] to this file`,
|
|
63
|
-
severity:
|
|
64
|
-
category:
|
|
65
|
+
severity: "error",
|
|
66
|
+
category: "production",
|
|
65
67
|
};
|
|
66
68
|
}
|
|
67
69
|
// WIP parent → child must not be ignored
|
|
68
|
-
if (parentTier ===
|
|
70
|
+
if (parentTier === "wip" && childTier === "ignored") {
|
|
69
71
|
return {
|
|
70
72
|
file: parentPath,
|
|
71
73
|
line,
|
|
72
74
|
message: `References ignored ${childLabel}: ${childPath}`,
|
|
73
75
|
suggestion: `Remove the validator-ignore tag from ${childPath}`,
|
|
74
|
-
severity:
|
|
75
|
-
category:
|
|
76
|
+
severity: "error",
|
|
77
|
+
category: "wip",
|
|
76
78
|
};
|
|
77
79
|
}
|
|
78
80
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tier.js","sourceRoot":"","sources":["../../src/validator/tier.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAA0B;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACpC,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,GAAG,CACR,IAAI,EACJ,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"tier.js","sourceRoot":"","sources":["../../src/validator/tier.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAA0B;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACpC,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,GAAG,CACR,IAAI,EACJ,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACnD,CAAC,CAAC,EAAE,CACP,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAC1B,MAA6B;IAE7B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,UAAuB,EACvB,SAAiB,EACjB,SAAsB,EACtB,UAAkB,EAClB,IAAa;IAEb,0DAA0D;IAC1D,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAE1C,+CAA+C;IAC/C,IAAI,UAAU,KAAK,YAAY,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACvD,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,OAAO,EAAE,kBAAkB,UAAU,KAAK,SAAS,EAAE;YACrD,UAAU,EAAE,2BAA2B,SAAS,mCAAmC;YACnF,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,YAAY;SACvB,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,KAAK,YAAY,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC3D,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,OAAO,EAAE,sBAAsB,UAAU,KAAK,SAAS,EAAE;YACzD,UAAU,EAAE,wCAAwC,SAAS,mCAAmC;YAChG,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,YAAY;SACvB,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,IAAI,UAAU,KAAK,KAAK,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,OAAO,EAAE,sBAAsB,UAAU,KAAK,SAAS,EAAE;YACzD,UAAU,EAAE,wCAAwC,SAAS,EAAE;YAC/D,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import type { ContentError } from "../index.js";
|
|
2
|
-
export interface VideoImportSyntax {
|
|
3
|
-
kind: "video";
|
|
4
|
-
/** Wikilink target, e.g. "../video_transcripts/name" */
|
|
5
|
-
target: string;
|
|
6
|
-
from?: string;
|
|
7
|
-
to?: string;
|
|
8
|
-
}
|
|
9
|
-
export interface WidgetEmbedSyntax {
|
|
10
|
-
kind: "widget";
|
|
11
|
-
/** Wikilink target, e.g. "../widgets/name" */
|
|
12
|
-
target: string;
|
|
13
|
-
/** `|height=480px` modifier: overrides the widget file's height here. */
|
|
14
|
-
height?: string;
|
|
15
|
-
}
|
|
16
|
-
export type ArticleImportSyntax = VideoImportSyntax | WidgetEmbedSyntax;
|
|
17
|
-
export type ArticleImportParse = {
|
|
18
|
-
kind: "import";
|
|
19
|
-
import: ArticleImportSyntax;
|
|
20
|
-
} | {
|
|
21
|
-
kind: "invalid";
|
|
22
|
-
kindName: "video" | "widget";
|
|
23
|
-
reason: string;
|
|
24
|
-
suggestion: string;
|
|
25
|
-
} | {
|
|
26
|
-
kind: "none";
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Classify a single line of article body text as a ::video import.
|
|
30
|
-
* - "import": a valid own-line ::video import
|
|
31
|
-
* - "invalid": an attempted import with broken syntax
|
|
32
|
-
* - "none": not a video import at all
|
|
33
|
-
*/
|
|
34
|
-
export declare function parseVideoImportLine(line: string): ArticleImportParse;
|
|
35
|
-
/** True when a wikilink target names a file directly under a widgets/ folder. */
|
|
36
|
-
export declare function isWidgetEmbedTarget(target: string): boolean;
|
|
37
|
-
/**
|
|
38
|
-
* Classify a single line of article body text as a widget embed.
|
|
39
|
-
* - "import": a valid own-line ![[../widgets/name]] embed
|
|
40
|
-
* - "invalid": a widget embed with broken syntax or buried in prose
|
|
41
|
-
* - "none": not a widget embed (other ![[...]] embeds included)
|
|
42
|
-
*/
|
|
43
|
-
export declare function parseWidgetEmbedLine(line: string): ArticleImportParse;
|
|
44
|
-
/** Classify a line as any of the inline article imports. */
|
|
45
|
-
export declare function parseArticleImportLine(line: string): ArticleImportParse;
|
|
46
|
-
export interface ScannedArticleLine {
|
|
47
|
-
line: string;
|
|
48
|
-
/** False inside fenced code and on fence/container marker lines. */
|
|
49
|
-
prose: boolean;
|
|
50
|
-
/** Innermost open `:::hide` / `:::collapse` container, if any. */
|
|
51
|
-
hiddenIn?: string;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Walk an article body line by line, tracking fenced code and container
|
|
55
|
-
* directives, so every consumer of import lines skips the same regions.
|
|
56
|
-
*/
|
|
57
|
-
export declare function scanArticleLines(body: string): ScannedArticleLine[];
|
|
58
|
-
/**
|
|
59
|
-
* Parse-time validation of inline imports in an article body.
|
|
60
|
-
* Resolution errors (missing file, bad range) are reported later by the
|
|
61
|
-
* flattener, which has the file map.
|
|
62
|
-
*/
|
|
63
|
-
export declare function validateArticleImports(body: string, file: string, bodyStartLine: number): ContentError[];
|
|
64
|
-
/**
|
|
65
|
-
* Lens text segments do not resolve inline article imports — catch attempts
|
|
66
|
-
* there with a pointer to the supported mechanisms.
|
|
67
|
-
*/
|
|
68
|
-
export declare function validateNoArticleImportsInLensText(content: string, file: string, line: number): ContentError[];
|
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
import { parseTimestamp } from "../bundler/video.js";
|
|
2
|
-
import { isValidHeight } from "../parser/widget.js";
|
|
3
|
-
// ::video{attr}[[path|alias]] or ::video[[path|alias]]{attr}, anchored to a
|
|
4
|
-
// full (trimmed) line. Alias is accepted for wikilink-tooling compatibility
|
|
5
|
-
// but unused — the display title comes from the transcript frontmatter.
|
|
6
|
-
const VIDEO_IMPORT_LINE_RE = /^::video(?:\{([^}]*)\})?\[\[([^\]|]+)(?:\|[^\]]+)?\]\](?:\{([^}]*)\})?$/;
|
|
7
|
-
// Anything that looks like an attempted ::video import (used to flag
|
|
8
|
-
// malformed/misplaced usages without false-positives on prose that merely
|
|
9
|
-
// mentions "::video").
|
|
10
|
-
const VIDEO_IMPORT_CANDIDATE_RE = /::video[[{]/;
|
|
11
|
-
// ![[path]] or ![[path|modifier]], anchored to a full (trimmed) line.
|
|
12
|
-
const WIDGET_EMBED_LINE_RE = /^!\[\[([^\]|]+)(?:\|([^\]]*))?\]\]$/;
|
|
13
|
-
// Every ![[...]] on a line; the target decides whether it is a widget embed.
|
|
14
|
-
const WIDGET_EMBED_CANDIDATE_RE = /!\[\[([^\]|]+)(?:\|[^\]]*)?\]\]/g;
|
|
15
|
-
// A file directly under a widgets/ folder, written relative to the article
|
|
16
|
-
// (`../widgets/name`) or to the vault root (`widgets/name`), no fragment.
|
|
17
|
-
const WIDGET_TARGET_RE = /^(?:\.\.?\/)*widgets\/[^/#|]+$/;
|
|
18
|
-
// Inline code is not prose: an import mentioned in backticks is neither an
|
|
19
|
-
// import nor a mistake.
|
|
20
|
-
const INLINE_CODE_RE = /`[^`]*`/g;
|
|
21
|
-
// CommonMark permits up to three leading spaces before a fenced code block.
|
|
22
|
-
const CODE_FENCE = /^ {0,3}(?:```|~~~)/;
|
|
23
|
-
const CONTAINER_OPEN = /^(:{3,})([\w-]+)/;
|
|
24
|
-
const CONTAINER_CLOSE = /^(:{3,})\s*(?:\{[^}]*\})?\s*$/;
|
|
25
|
-
/** Parse `from="..." to="..."` attribute text. */
|
|
26
|
-
function parseAttrs(attr) {
|
|
27
|
-
if (attr === undefined || attr.trim() === "")
|
|
28
|
-
return {};
|
|
29
|
-
const tokens = [...attr.matchAll(/([\w-]+)\s*=\s*"([^"]*)"/g)];
|
|
30
|
-
const consumed = tokens.map((m) => m[0]).join(" ");
|
|
31
|
-
if (consumed.replace(/\s+/g, " ").trim() !== attr.replace(/\s+/g, " ").trim()) {
|
|
32
|
-
return {
|
|
33
|
-
reason: `invalid attributes '{${attr}}'`,
|
|
34
|
-
suggestion: 'Use key="value" attributes: from and/or to',
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
const result = {};
|
|
38
|
-
for (const token of tokens) {
|
|
39
|
-
const key = token[1];
|
|
40
|
-
const value = token[2];
|
|
41
|
-
if (key !== "from" && key !== "to") {
|
|
42
|
-
return {
|
|
43
|
-
reason: `unrecognized attribute '${key}'`,
|
|
44
|
-
suggestion: "Only from and to attributes are supported",
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
if (result[key] !== undefined) {
|
|
48
|
-
return {
|
|
49
|
-
reason: `duplicate attribute '${key}'`,
|
|
50
|
-
suggestion: `Keep only one ${key} attribute`,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
if (parseTimestamp(value) === null) {
|
|
54
|
-
return {
|
|
55
|
-
reason: `invalid timestamp in '${key}="${value}"'`,
|
|
56
|
-
suggestion: "Use M:SS (e.g. 1:30) or H:MM:SS (e.g. 1:30:00)",
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
result[key] = value;
|
|
60
|
-
}
|
|
61
|
-
return result;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Classify a single line of article body text as a ::video import.
|
|
65
|
-
* - "import": a valid own-line ::video import
|
|
66
|
-
* - "invalid": an attempted import with broken syntax
|
|
67
|
-
* - "none": not a video import at all
|
|
68
|
-
*/
|
|
69
|
-
export function parseVideoImportLine(line) {
|
|
70
|
-
const trimmed = line.trim();
|
|
71
|
-
if (!VIDEO_IMPORT_CANDIDATE_RE.test(trimmed.replace(INLINE_CODE_RE, ""))) {
|
|
72
|
-
return { kind: "none" };
|
|
73
|
-
}
|
|
74
|
-
const invalid = (reason, suggestion) => ({
|
|
75
|
-
kind: "invalid",
|
|
76
|
-
kindName: "video",
|
|
77
|
-
reason,
|
|
78
|
-
suggestion,
|
|
79
|
-
});
|
|
80
|
-
const match = trimmed.match(VIDEO_IMPORT_LINE_RE);
|
|
81
|
-
if (!match) {
|
|
82
|
-
if (trimmed.startsWith("::video")) {
|
|
83
|
-
return invalid("malformed ::video import", 'Use ::video[[../video_transcripts/name]] with optional {from="1:30" to="4:10"}, alone on its own line');
|
|
84
|
-
}
|
|
85
|
-
// ::video appears mid-line — an import buried in prose.
|
|
86
|
-
return invalid("::video import must be alone on its own line", "Move the ::video[[...]] import to its own line");
|
|
87
|
-
}
|
|
88
|
-
const preAttr = match[1];
|
|
89
|
-
const target = match[2].trim();
|
|
90
|
-
const postAttr = match[3];
|
|
91
|
-
if (preAttr !== undefined && postAttr !== undefined) {
|
|
92
|
-
return invalid("attributes given both before and after the wikilink", "Use a single {from=... to=...} block after the ]]");
|
|
93
|
-
}
|
|
94
|
-
const attrs = parseAttrs(preAttr ?? postAttr);
|
|
95
|
-
if ("reason" in attrs)
|
|
96
|
-
return invalid(attrs.reason, attrs.suggestion);
|
|
97
|
-
if (target === "") {
|
|
98
|
-
return invalid("empty wikilink target", "Reference a transcript: ::video[[../video_transcripts/name]]");
|
|
99
|
-
}
|
|
100
|
-
return { kind: "import", import: { kind: "video", target, ...attrs } };
|
|
101
|
-
}
|
|
102
|
-
/** True when a wikilink target names a file directly under a widgets/ folder. */
|
|
103
|
-
export function isWidgetEmbedTarget(target) {
|
|
104
|
-
return WIDGET_TARGET_RE.test(target.trim());
|
|
105
|
-
}
|
|
106
|
-
/** True when a line mentions a widget embed anywhere outside inline code. */
|
|
107
|
-
function hasWidgetEmbedCandidate(line) {
|
|
108
|
-
return [
|
|
109
|
-
...line.replace(INLINE_CODE_RE, "").matchAll(WIDGET_EMBED_CANDIDATE_RE),
|
|
110
|
-
].some((m) => isWidgetEmbedTarget(m[1]));
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Classify a single line of article body text as a widget embed.
|
|
114
|
-
* - "import": a valid own-line ![[../widgets/name]] embed
|
|
115
|
-
* - "invalid": a widget embed with broken syntax or buried in prose
|
|
116
|
-
* - "none": not a widget embed (other ![[...]] embeds included)
|
|
117
|
-
*/
|
|
118
|
-
export function parseWidgetEmbedLine(line) {
|
|
119
|
-
const trimmed = line.trim();
|
|
120
|
-
if (!hasWidgetEmbedCandidate(trimmed))
|
|
121
|
-
return { kind: "none" };
|
|
122
|
-
const invalid = (reason, suggestion) => ({
|
|
123
|
-
kind: "invalid",
|
|
124
|
-
kindName: "widget",
|
|
125
|
-
reason,
|
|
126
|
-
suggestion,
|
|
127
|
-
});
|
|
128
|
-
const match = trimmed.match(WIDGET_EMBED_LINE_RE);
|
|
129
|
-
if (!match || !isWidgetEmbedTarget(match[1])) {
|
|
130
|
-
return invalid("widget embed must be alone on its own line", "Move the ![[../widgets/name]] embed to its own line");
|
|
131
|
-
}
|
|
132
|
-
const target = match[1].trim();
|
|
133
|
-
const modifier = match[2]?.trim();
|
|
134
|
-
if (modifier === undefined || modifier === "") {
|
|
135
|
-
return { kind: "import", import: { kind: "widget", target } };
|
|
136
|
-
}
|
|
137
|
-
const heightMatch = modifier.match(/^height\s*=\s*(\S+)$/);
|
|
138
|
-
if (!heightMatch || !isValidHeight(heightMatch[1])) {
|
|
139
|
-
return invalid(`invalid modifier '|${modifier}'`, 'The only modifier is height, e.g. ![[../widgets/name|height=480px]] ("auto" or a CSS length)');
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
kind: "import",
|
|
143
|
-
import: { kind: "widget", target, height: heightMatch[1] },
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
/** Classify a line as any of the inline article imports. */
|
|
147
|
-
export function parseArticleImportLine(line) {
|
|
148
|
-
const video = parseVideoImportLine(line);
|
|
149
|
-
return video.kind === "none" ? parseWidgetEmbedLine(line) : video;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Walk an article body line by line, tracking fenced code and container
|
|
153
|
-
* directives, so every consumer of import lines skips the same regions.
|
|
154
|
-
*/
|
|
155
|
-
export function scanArticleLines(body) {
|
|
156
|
-
const out = [];
|
|
157
|
-
let inCodeBlock = false;
|
|
158
|
-
// Names of open container directives, innermost last.
|
|
159
|
-
const containerStack = [];
|
|
160
|
-
for (const line of body.split("\n")) {
|
|
161
|
-
if (CODE_FENCE.test(line)) {
|
|
162
|
-
inCodeBlock = !inCodeBlock;
|
|
163
|
-
out.push({ line, prose: false });
|
|
164
|
-
continue;
|
|
165
|
-
}
|
|
166
|
-
if (inCodeBlock) {
|
|
167
|
-
out.push({ line, prose: false });
|
|
168
|
-
continue;
|
|
169
|
-
}
|
|
170
|
-
const openMatch = line.match(CONTAINER_OPEN);
|
|
171
|
-
if (openMatch) {
|
|
172
|
-
containerStack.push(openMatch[2]);
|
|
173
|
-
out.push({ line, prose: false });
|
|
174
|
-
continue;
|
|
175
|
-
}
|
|
176
|
-
if (CONTAINER_CLOSE.test(line)) {
|
|
177
|
-
containerStack.pop();
|
|
178
|
-
out.push({ line, prose: false });
|
|
179
|
-
continue;
|
|
180
|
-
}
|
|
181
|
-
const hiddenIn = containerStack.find((name) => name === "hide" || name === "collapse");
|
|
182
|
-
out.push(hiddenIn ? { line, prose: true, hiddenIn } : { line, prose: true });
|
|
183
|
-
}
|
|
184
|
-
return out;
|
|
185
|
-
}
|
|
186
|
-
const IMPORT_LABEL = {
|
|
187
|
-
video: { code: "video-import", label: "::video import" },
|
|
188
|
-
widget: { code: "widget-embed", label: "widget embed" },
|
|
189
|
-
};
|
|
190
|
-
/**
|
|
191
|
-
* Parse-time validation of inline imports in an article body.
|
|
192
|
-
* Resolution errors (missing file, bad range) are reported later by the
|
|
193
|
-
* flattener, which has the file map.
|
|
194
|
-
*/
|
|
195
|
-
export function validateArticleImports(body, file, bodyStartLine) {
|
|
196
|
-
const errors = [];
|
|
197
|
-
const scanned = scanArticleLines(body);
|
|
198
|
-
for (let i = 0; i < scanned.length; i++) {
|
|
199
|
-
const { line, prose, hiddenIn } = scanned[i];
|
|
200
|
-
if (!prose)
|
|
201
|
-
continue;
|
|
202
|
-
const absLine = bodyStartLine + i;
|
|
203
|
-
const parsed = parseArticleImportLine(line);
|
|
204
|
-
if (parsed.kind === "none")
|
|
205
|
-
continue;
|
|
206
|
-
if (parsed.kind === "invalid") {
|
|
207
|
-
const { code, label } = IMPORT_LABEL[parsed.kindName];
|
|
208
|
-
const notOwnLine = parsed.reason.includes("own line");
|
|
209
|
-
errors.push({
|
|
210
|
-
file,
|
|
211
|
-
line: absLine,
|
|
212
|
-
code: `article.${code}-${notOwnLine ? "not-own-line" : "invalid"}`,
|
|
213
|
-
message: `Invalid ${label}: ${parsed.reason}`,
|
|
214
|
-
suggestion: parsed.suggestion,
|
|
215
|
-
severity: "error",
|
|
216
|
-
});
|
|
217
|
-
continue;
|
|
218
|
-
}
|
|
219
|
-
// Imports inside hide/collapse would silently vanish from rendered output
|
|
220
|
-
// (the collapsed string strips them), so they are rejected outright.
|
|
221
|
-
if (hiddenIn) {
|
|
222
|
-
const { code, label } = IMPORT_LABEL[parsed.import.kind];
|
|
223
|
-
errors.push({
|
|
224
|
-
file,
|
|
225
|
-
line: absLine,
|
|
226
|
-
code: `article.${code}-in-hide`,
|
|
227
|
-
message: `${label} inside a ':::${hiddenIn}' container`,
|
|
228
|
-
suggestion: `Move the import outside the hidden block — hidden text is collapsed and the ${parsed.import.kind} would never render`,
|
|
229
|
-
severity: "error",
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
return errors;
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Lens text segments do not resolve inline article imports — catch attempts
|
|
237
|
-
* there with a pointer to the supported mechanisms.
|
|
238
|
-
*/
|
|
239
|
-
export function validateNoArticleImportsInLensText(content, file, line) {
|
|
240
|
-
const errors = [];
|
|
241
|
-
const lines = content.split("\n");
|
|
242
|
-
for (let i = 0; i < lines.length; i++) {
|
|
243
|
-
const prose = lines[i].replace(INLINE_CODE_RE, "");
|
|
244
|
-
if (VIDEO_IMPORT_CANDIDATE_RE.test(prose)) {
|
|
245
|
-
errors.push({
|
|
246
|
-
file,
|
|
247
|
-
line: line + i,
|
|
248
|
-
message: "::video imports are only supported in article bodies",
|
|
249
|
-
suggestion: "Use a '#### Video' segment in the lens, or move the import into the article file",
|
|
250
|
-
severity: "error",
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
else if (hasWidgetEmbedCandidate(prose)) {
|
|
254
|
-
errors.push({
|
|
255
|
-
file,
|
|
256
|
-
line: line + i,
|
|
257
|
-
message: "Widget embeds (![[../widgets/...]]) are only supported in article bodies",
|
|
258
|
-
suggestion: "Use a '#### Widget' segment in the lens, or move the embed into the article file",
|
|
259
|
-
severity: "error",
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
return errors;
|
|
264
|
-
}
|
|
265
|
-
//# sourceMappingURL=article-imports.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"article-imports.js","sourceRoot":"","sources":["../../src/validator/article-imports.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import remarkDirective from "remark-directive";
|
|
2
|
-
import remarkGfm from "remark-gfm";
|
|
3
|
-
import remarkMath from "remark-math";
|
|
4
|
-
import remarkParse from "remark-parse";
|
|
5
|
-
import { unified } from "unified";
|
|
6
|
-
const lastParse = {};
|
|
7
|
-
export function parseMarkdown(source, preset) {
|
|
8
|
-
const cached = lastParse[preset];
|
|
9
|
-
if (cached && cached.source === source)
|
|
10
|
-
return cached.tree;
|
|
11
|
-
const processor = preset === "gfm"
|
|
12
|
-
? unified().use(remarkParse).use(remarkGfm)
|
|
13
|
-
: unified()
|
|
14
|
-
.use(remarkParse)
|
|
15
|
-
.use(remarkGfm)
|
|
16
|
-
.use(remarkDirective)
|
|
17
|
-
.use(remarkMath, { singleDollarTextMath: false });
|
|
18
|
-
const tree = processor.parse(source);
|
|
19
|
-
lastParse[preset] = { source, tree };
|
|
20
|
-
return tree;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=markdown-parse.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-parse.js","sourceRoot":"","sources":["../../src/validator/markdown-parse.ts"],"names":[],"mappings":"AAUA,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,MAAM,SAAS,GAEX,EAAE,CAAC;AAEP,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,MAAsB;IAClE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IAC3D,MAAM,SAAS,GACb,MAAM,KAAK,KAAK;QACd,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;QAC3C,CAAC,CAAC,OAAO,EAAE;aACN,GAAG,CAAC,WAAW,CAAC;aAChB,GAAG,CAAC,SAAS,CAAC;aACd,GAAG,CAAC,eAAe,CAAC;aACpB,GAAG,CAAC,UAAU,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAS,CAAC;IAC7C,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC"}
|