@khanacademy/perseus-linter 4.9.0 → 4.9.1
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/es/index.js +2 -2
- package/dist/es/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lint-content.d.ts +5 -6
- package/package.json +3 -3
package/dist/es/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import * as KAS from '@khanacademy/kas';
|
|
|
4
4
|
import { parse, traverseContent } from '@khanacademy/pure-markdown';
|
|
5
5
|
import { vector } from '@khanacademy/kmath';
|
|
6
6
|
|
|
7
|
-
const libName="@khanacademy/perseus-linter";const libVersion="4.9.
|
|
7
|
+
const libName="@khanacademy/perseus-linter";const libVersion="4.9.1";addLibraryVersionToPerseusDebug(libName,libVersion);
|
|
8
8
|
|
|
9
9
|
const linterContextDefault={contentType:"",highlightLint:false,paths:[],stack:[]};
|
|
10
10
|
|
|
@@ -151,7 +151,7 @@ class TreeTransformer{static isNode(n){return n&&typeof n==="object"&&typeof n.t
|
|
|
151
151
|
|
|
152
152
|
const allLintRules=AllRules.filter(r=>r.severity<Rule.Severity.BULK_WARNING);function runLinter(tree,context,highlight,rules=allLintRules){const warnings=[];const tt=new TreeTransformer(tree);tt.traverse((node,state,content)=>{if(TreeTransformer.isTextNode(node)){let next=state.nextSibling();while(TreeTransformer.isTextNode(next)){node.content+=next.content;state.removeNextSibling();next=state.nextSibling();}}});let tableWarnings=[];let insideTable=false;tt.traverse((node,state,content)=>{const nodeWarnings=[];const applicableRules=rules.filter(r=>r.applies(context));const stack=[...context.stack];stack.push(node.type);const nodeContext={...context,stack:stack.join(".")};applicableRules.forEach(rule=>{const warning=rule.check(node,state,content,nodeContext);if(warning){if(warning.start||warning.end){warning.target=content.substring(warning.start,warning.end);}warnings.push(warning);if(highlight){nodeWarnings.push(warning);}}});if(!highlight){return}if(node.type==="table"){if(tableWarnings.length){nodeWarnings.push(...tableWarnings);}insideTable=false;tableWarnings=[];}else if(!insideTable){insideTable=state.ancestors().some(n=>n.type==="table");}if(insideTable&&nodeWarnings.length>0){tableWarnings.push(...nodeWarnings);}if(nodeWarnings.length>0){nodeWarnings.sort((a,b)=>{return a.severity-b.severity});if(node.type!=="text"||nodeWarnings.length>1){state.replace({type:"lint",content:node,message:nodeWarnings.map(w=>w.message).join("\n\n"),ruleName:nodeWarnings[0].rule,blockHighlight:nodeContext.blockHighlight,insideTable:insideTable,severity:nodeWarnings[0].severity});}else {const content=node.content;const warning=nodeWarnings[0];const start=warning.start;const end=warning.end;const prefix=content.substring(0,start);const lint=content.substring(start,end);const suffix=content.substring(end);const replacements=[];if(prefix){replacements.push({type:"text",content:prefix});}replacements.push({type:"lint",content:{type:"text",content:lint},message:warning.message,ruleName:warning.rule,insideTable:insideTable,severity:warning.severity});if(suffix){replacements.push({type:"text",content:suffix});}state.replace(...replacements);}}});return warnings}
|
|
153
153
|
|
|
154
|
-
function lintPerseusItem(parsedPerseusItem){const questionLint=lintPerseusRenderer(parsedPerseusItem.question,"exercise");const hintLint=parsedPerseusItem.hints.map(hint=>lintPerseusRenderer(hint,"exercise"));return {question:questionLint,hints:hintLint}}function lintPerseusArticle(parsedPerseusArticle){const articleSections=Array.isArray(parsedPerseusArticle)?parsedPerseusArticle:[parsedPerseusArticle];return articleSections.map(section=>lintPerseusRenderer(section,"article"))}function lintPerseusRenderer(parsedPerseusRenderer,contentType){const tree=parse(parsedPerseusRenderer.content);const context={content:parsedPerseusRenderer.content,widgets:parsedPerseusRenderer.widgets,stack:[],contentType};return runLinter(tree,context,false)}
|
|
154
|
+
function lintPerseusItem(parsedPerseusItem){const questionLint=lintPerseusRenderer(parsedPerseusItem.question,"exercise");const hintLint=parsedPerseusItem.hints.map(hint=>lintPerseusRenderer(hint,"exercise"));return {question:questionLint,hints:hintLint}}function lintPerseusArticle(parsedPerseusArticle){const articleSections=Array.isArray(parsedPerseusArticle)?parsedPerseusArticle:[parsedPerseusArticle];return articleSections.map(section=>lintPerseusRenderer(section,"article"))}function lintPerseusRenderer(parsedPerseusRenderer,contentType){const tree=parse(parsedPerseusRenderer.content);const context={content:parsedPerseusRenderer.content,widgets:parsedPerseusRenderer.widgets,stack:[],contentType};return [...runLinter(tree,context,false)]}
|
|
155
155
|
|
|
156
156
|
function pushContextStack(context,name){const stack=context.stack||[];return {...context,stack:stack.concat(name)}}
|
|
157
157
|
|