From 5cc40c54b782ffa1dd86519074203c954b1b2a3d Mon Sep 17 00:00:00 2001 From: David Anson Date: Tue, 1 Oct 2024 22:41:10 -0700 Subject: [PATCH] Enable custom rules to use the micromark parser, export micromark helpers for reuse. --- README.md | 57 +- demo/markdownlint-browser.js | 2 +- doc/CustomRules.md | 70 +- helpers/.npmignore | 1 + helpers/package.json | 5 +- helpers/test.cjs | 28 + lib/markdownlint.js | 2 +- package.json | 2 +- test/markdownlint-test-custom-rules.js | 112 +- test/markdownlint-test-micromark.mjs | 19 +- test/rules/any-blockquote.js | 70 +- test/rules/rules.js | 2 +- .../markdownlint-test-custom-rules.js.md | 3520 +++++++++++++++++ .../markdownlint-test-custom-rules.js.snap | Bin 14718 -> 36854 bytes .../markdownlint-test-micromark.mjs.md | 332 ++ .../markdownlint-test-micromark.mjs.snap | Bin 19368 -> 22390 bytes 16 files changed, 4109 insertions(+), 113 deletions(-) create mode 100644 helpers/.npmignore create mode 100644 helpers/test.cjs diff --git a/README.md b/README.md index 6572bb60..35c698b5 100644 --- a/README.md +++ b/README.md @@ -13,22 +13,31 @@ npm install markdownlint --save-dev ## Overview -The [Markdown](https://en.wikipedia.org/wiki/Markdown) markup language -is designed to be easy to read, write, and understand. It succeeds - -and its flexibility is both a benefit and a drawback. Many styles are -possible, so formatting can be inconsistent. Some constructs don't -work well in all parsers and should be avoided. The -[CommonMark](https://commonmark.org/) specification standardizes -parsers - but not authors. +The [Markdown][markdown] markup language is designed to be easy to read, write, +and understand. It succeeds - and its flexibility is both a benefit and a +drawback. Many styles are possible, so formatting can be inconsistent; some +constructs don't work well in all parsers and should be avoided. -`markdownlint` is a -[static analysis](https://en.wikipedia.org/wiki/Static_program_analysis) -tool for [Node.js](https://nodejs.org/) with a library of rules -to enforce standards and consistency for Markdown files. It was -inspired by - and heavily influenced by - Mark Harrison's -[markdownlint](https://github.com/markdownlint/markdownlint) for -[Ruby](https://www.ruby-lang.org/). The initial rules, rule documentation, -and test cases came directly from that project. +`markdownlint` is a [static analysis][static-analysis] tool for +[Node.js][nodejs] with a library of rules to enforce standards and consistency +for Markdown files. It was inspired by - and heavily influenced by - Mark +Harrison's [markdownlint][markdownlint-ruby] for Ruby. The initial rules, rule +documentation, and test cases came from that project. + +`markdownlint` uses the [`micromark`][micromark] parser and honors the +[CommonMark][commonmark] specification for Markdown. It additionally supports +popular [GitHub Flavored Markdown (GFM)][gfm] syntax like autolinks and tables +as well as directives, footnotes, and math syntax - all implemented by +[`micromark` extensions][micromark-extensions]. + +[commonmark]: https://commonmark.org/ +[gfm]: https://github.github.com/gfm/ +[markdown]: https://en.wikipedia.org/wiki/Markdown +[markdownlint-ruby]: https://github.com/markdownlint/markdownlint +[micromark]: https://github.com/micromark/micromark +[micromark-extensions]: https://github.com/micromark/micromark?tab=readme-ov-file#list-of-extensions +[nodejs]: https://nodejs.org/ +[static-analysis]: https://en.wikipedia.org/wiki/Static_program_analysis ### Related @@ -565,7 +574,7 @@ Type: `Array` of `Array` of `Function` and plugin parameters Specifies additional [`markdown-it` plugins][markdown-it-plugin] to use when parsing input. Plugins can be used to support additional syntax and features for -advanced scenarios. +advanced scenarios. *Deprecated.* [markdown-it-plugin]: https://www.npmjs.com/search?q=keywords:markdown-it-plugin @@ -601,23 +610,20 @@ Specifies which version of the `result` object to return (see the "Usage" section below for examples). Passing a `resultVersion` of `0` corresponds to the original, simple format -where each error is identified by rule name and line number. *This is -deprecated.* +where each error is identified by rule name and line number. *Deprecated* Passing a `resultVersion` of `1` corresponds to a detailed format where each error includes information about the line number, rule name, alias, description, -as well as any additional detail or context that is available. *This is -deprecated.* +as well as any additional detail or context that is available. *Deprecated* Passing a `resultVersion` of `2` corresponds to a detailed format where each error includes information about the line number, rule names, description, as -well as any additional detail or context that is available. *This is -deprecated.* +well as any additional detail or context that is available. *Deprecated* Passing a `resultVersion` of `3` corresponds to the detailed version `2` format with additional information about how to fix automatically-fixable errors. In this mode, all errors that occur on each line are reported (other versions -report only the first error for each rule). *This is the default.* +report only the first error for each rule). This is the default behavior. ##### options.strings @@ -946,10 +952,11 @@ Generate normal and minified scripts with: npm run build-demo ``` -Then reference `markdown-it` and `markdownlint`: +Then reference `markdownlint` and `micromark` scripts: ```html - + + ``` diff --git a/demo/markdownlint-browser.js b/demo/markdownlint-browser.js index cab12d80..184a383e 100644 --- a/demo/markdownlint-browser.js +++ b/demo/markdownlint-browser.js @@ -1710,7 +1710,7 @@ function validateRuleList(ruleList, synchronous) { !result && (rule.parser !== undefined) && (rule.parser !== "markdownit") && - !((customIndex < 0) && (rule.parser === "micromark")) && + (rule.parser !== "micromark") && (rule.parser !== "none") ) { result = newError("parser", rule.parser); diff --git a/doc/CustomRules.md b/doc/CustomRules.md index f1468c5a..53d641a5 100644 --- a/doc/CustomRules.md +++ b/doc/CustomRules.md @@ -14,9 +14,8 @@ built-in rules. For simple requirements like disallowing certain characters or patterns, the community-developed [markdownlint-rule-search-replace][markdownlint-rule-search-replace] -plug-in can be used. -This plug-in allows anyone to create a set of simple text-replacement rules in -JSON without needing to write any code. +plug-in can be used. This plug-in allows anyone to create a set of simple +text-replacement rules without needing to write code. [markdownlint-rule-search-replace]: https://www.npmjs.com/package/markdownlint-rule-search-replace @@ -27,29 +26,62 @@ to more information, one or more tags, and a function that implements the rule's behavior. That function is called once for each file/string input and is passed the parsed input and a function to log any violations. -A simple rule implementation looks like: +Custom rules can (should) operate on a structured set of tokens based on the +[`micromark`][micromark] `parser` (this is preferred). Alternatively, custom +rules can operate on a structured set of tokens based on the +[`markdown-it`][markdown-it] `parser` (legacy support). Finally, custom rules +can operate directly on text with the `none` `parser`. + +A simple rule implementation using the `micromark` parser to report a violation +for any use of blockquotes might look like: ```javascript /** @type import("markdownlint").Rule */ module.exports = { - "names": [ "any-blockquote" ], + "names": [ "any-blockquote-micromark" ], + "description": "Rule that reports an error for any blockquote", + "information": new URL("https://example.com/rules/any-blockquote"), + "tags": [ "test" ], + "parser": "micromark", + "function": (params, onError) => { + const blockquotes = params.parsers.micromark.tokens + .filter(((token) => token.type === "blockQuote")); + for (const blockquote of blockquotes) { + const lines = blockquote.endLine - blockquote.startLine + 1; + onError({ + "lineNumber": blockquote.startLine, + "detail": "Blockquote spans " + lines + " line(s).", + "context": params.lines[blockquote.startLine - 1] + }); + } + } +} +``` + +That same rule implemented using the `markdown-it` parser might look like: + +```javascript +/** @type import("markdownlint").Rule */ +module.exports = { + "names": [ "any-blockquote-markdown-it" ], "description": "Rule that reports an error for any blockquote", "information": new URL("https://example.com/rules/any-blockquote"), "tags": [ "test" ], "parser": "markdownit", - "function": function rule(params, onError) { - params.parsers.markdownit.tokens.filter(function filterToken(token) { - return token.type === "blockquote_open"; - }).forEach(function forToken(blockquote) { - var lines = blockquote.map[1] - blockquote.map[0]; + "function": (params, onError) => { + const blockquotes = params.parsers.markdownit.tokens + .filter(((token) => token.type === "blockquote_open")); + for (const blockquote of blockquotes) { + const [ startIndex, endIndex ] = blockquote.map; + const lines = endIndex - startIndex; onError({ "lineNumber": blockquote.lineNumber, "detail": "Blockquote spans " + lines + " line(s).", - "context": blockquote.line.substr(0, 7) + "context": blockquote.line }); - }); + } } -}; +} ``` A rule is implemented as an `Object`: @@ -62,9 +94,8 @@ A rule is implemented as an `Object`: about the rule. - `tags` is a required `Array` of `String` values that groups related rules for easier customization. -- `parser` is a required `String` value `"markdownit" | "none"` that specifies - the parser data used via `params.parsers` (see below). - - Note: The value `"micromark"` is valid but is NOT currently supported. +- `parser` is a required `String` value `"markdownit" | "micromark" | "none"` + that specifies the parser data used via `params.parsers` (see below). - `asynchronous` is an optional `Boolean` value that indicates whether the rule returns a `Promise` and runs asynchronously. - `function` is a required `Function` that implements the rule and is passed two @@ -79,7 +110,10 @@ A rule is implemented as an `Object`: - `tokens` is an `Array` of [`markdown-it` `Token`s][markdown-it-token] with added `line` and `lineNumber` properties. (This property was previously on the `params` object.) - - Samples for `tokens` are available via [test snapshots][tokens]. + - `micromark` is an `Object` that provides access to output from the + [`micromark`][micromark] parser. + - `tokens` is an `Array` of [`MicromarkToken`][micromark-token] objects. + - Samples for both `tokens` are available via [test snapshots][tokens]. - `lines` is an `Array` of `String` values corresponding to the lines of the input file/string. - `frontMatterLines` is an `Array` of `String` values corresponding to any @@ -152,6 +186,8 @@ exception. [markdown-it]: https://github.com/markdown-it/markdown-it [markdown-it-token]: https://markdown-it.github.io/markdown-it/#Token [markdownlint-rule]: https://www.npmjs.com/search?q=keywords:markdownlint-rule +[micromark]: https://github.com/micromark/micromark +[micromark-token]: ../lib/markdownlint.d.ts [rule-helpers]: https://www.npmjs.com/package/markdownlint-rule-helpers [options-custom-rules]: ../README.md#optionscustomrules [test-rules]: ../test/rules diff --git a/helpers/.npmignore b/helpers/.npmignore new file mode 100644 index 00000000..daa60294 --- /dev/null +++ b/helpers/.npmignore @@ -0,0 +1 @@ +test.js diff --git a/helpers/package.json b/helpers/package.json index a2aadee5..fca7a97d 100644 --- a/helpers/package.json +++ b/helpers/package.json @@ -3,7 +3,10 @@ "version": "0.26.0", "description": "A collection of markdownlint helper functions for custom rules", "main": "./helpers.js", - "exports": "./helpers.js", + "exports": { + ".": "./helpers.js", + "./micromark": "./micromark-helpers.cjs" + }, "author": "David Anson (https://dlaa.me/)", "license": "MIT", "homepage": "https://github.com/DavidAnson/markdownlint", diff --git a/helpers/test.cjs b/helpers/test.cjs new file mode 100644 index 00000000..340ae99d --- /dev/null +++ b/helpers/test.cjs @@ -0,0 +1,28 @@ +// @ts-check + +"use strict"; + +// eslint-disable-next-line n/no-extraneous-require +const test = require("ava").default; +const { "exports": packageExports, name } = require("../helpers/package.json"); + +const exportMappings = new Map([ + [ ".", "../helpers/helpers.js" ], + [ "./micromark", "../helpers/micromark-helpers.cjs" ] +]); + +test("exportMappings", (t) => { + t.deepEqual( + Object.keys(packageExports), + [ ...exportMappings.keys() ] + ); +}); + +for (const [ exportName, exportPath ] of exportMappings) { + test(exportName, (t) => { + t.is( + require(exportName.replace(/^\./u, name)), + require(exportPath) + ); + }); +} diff --git a/lib/markdownlint.js b/lib/markdownlint.js index cfdf50b8..92f6cb56 100644 --- a/lib/markdownlint.js +++ b/lib/markdownlint.js @@ -58,7 +58,7 @@ function validateRuleList(ruleList, synchronous) { !result && (rule.parser !== undefined) && (rule.parser !== "markdownit") && - !((customIndex < 0) && (rule.parser === "micromark")) && + (rule.parser !== "micromark") && (rule.parser !== "none") ) { result = newError("parser", rule.parser); diff --git a/package.json b/package.json index d8b17892..e23f36b1 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "lint-test-repos": "ava --timeout=10m test/markdownlint-test-repos-*.js", "serial-config-docs": "npm run build-config && npm run build-docs", "serial-declaration-demo": "npm run build-declaration && npm-run-all --continue-on-error --parallel build-demo test-declaration", - "test": "ava --timeout=30s test/markdownlint-test.js test/markdownlint-test-config.js test/markdownlint-test-custom-rules.js test/markdownlint-test-helpers.js test/markdownlint-test-micromark.mjs test/markdownlint-test-result-object.js test/markdownlint-test-scenarios.js", + "test": "ava --timeout=30s test/markdownlint-test.js test/markdownlint-test-config.js test/markdownlint-test-custom-rules.js test/markdownlint-test-helpers.js test/markdownlint-test-micromark.mjs test/markdownlint-test-result-object.js test/markdownlint-test-scenarios.js helpers/test.cjs", "test-cover": "c8 --100 npm test", "test-declaration": "cd example/typescript && tsc --module nodenext && tsc --module commonjs && node type-check.js", "test-extra": "ava --timeout=10m test/markdownlint-test-extra-parse.js test/markdownlint-test-extra-type.js", diff --git a/test/markdownlint-test-custom-rules.js b/test/markdownlint-test-custom-rules.js index 8f4a8a20..b9dd54d0 100644 --- a/test/markdownlint-test-custom-rules.js +++ b/test/markdownlint-test-custom-rules.js @@ -7,6 +7,7 @@ const test = require("ava").default; const markdownlint = require("../lib/markdownlint"); const customRules = require("./rules/rules.js"); const { homepage, version } = require("../package.json"); +const { newLineRe } = require("../helpers/helpers.js"); test("customRulesV0", (t) => new Promise((resolve) => { t.plan(4); @@ -22,7 +23,8 @@ test("customRulesV0", (t) => new Promise((resolve) => { t.falsy(err); const expectedResult = {}; expectedResult[customRulesMd] = { - "any-blockquote": [ 12 ], + "any-blockquote-markdown-it": [ 12 ], + "any-blockquote-micromark": [ 12 ], "every-n-lines": [ 2, 4, 6, 10, 12 ], "first-line": [ 1 ], "letters-E-X": [ 3, 7 ] @@ -31,7 +33,9 @@ test("customRulesV0", (t) => new Promise((resolve) => { // @ts-ignore let actualMessage = actualResult.toString(); let expectedMessage = - "./test/custom-rules.md: 12: any-blockquote" + + "./test/custom-rules.md: 12: any-blockquote-markdown-it" + + " Rule that reports an error for any blockquote\n" + + "./test/custom-rules.md: 12: any-blockquote-micromark" + " Rule that reports an error for any blockquote\n" + "./test/custom-rules.md: 2: every-n-lines" + " Rule that reports an error every N lines\n" + @@ -53,7 +57,9 @@ test("customRulesV0", (t) => new Promise((resolve) => { // @ts-ignore actualMessage = actualResult.toString(true); expectedMessage = - "./test/custom-rules.md: 12: any-blockquote" + + "./test/custom-rules.md: 12: any-blockquote-markdown-it" + + " Rule that reports an error for any blockquote\n" + + "./test/custom-rules.md: 12: any-blockquote-micromark" + " Rule that reports an error for any blockquote\n" + "./test/custom-rules.md: 2: every-n-lines" + " Rule that reports an error every N lines\n" + @@ -91,13 +97,22 @@ test("customRulesV1", (t) => new Promise((resolve) => { const expectedResult = {}; expectedResult[customRulesMd] = [ { "lineNumber": 12, - "ruleName": "any-blockquote", - "ruleAlias": "any-blockquote", + "ruleName": "any-blockquote-markdown-it", + "ruleAlias": "any-blockquote-markdown-it", "ruleDescription": "Rule that reports an error for any blockquote", "ruleInformation": `${homepage}/blob/main/test/rules/any-blockquote.js`, "errorDetail": "Blockquote spans 1 line(s).", - "errorContext": "> Block", + "errorContext": "> Blockquote", + "errorRange": null }, + { "lineNumber": 12, + "ruleName": "any-blockquote-micromark", + "ruleAlias": "any-blockquote-micromark", + "ruleDescription": "Rule that reports an error for any blockquote", + "ruleInformation": + `${homepage}/blob/main/test/rules/any-blockquote.js`, + "errorDetail": "Blockquote spans 1 line(s).", + "errorContext": "> Blockquote", "errorRange": null }, { "lineNumber": 2, "ruleName": "every-n-lines", @@ -170,9 +185,12 @@ test("customRulesV1", (t) => new Promise((resolve) => { // @ts-ignore const actualMessage = actualResult.toString(); const expectedMessage = - "./test/custom-rules.md: 12: any-blockquote/any-blockquote" + + "./test/custom-rules.md: 12: any-blockquote-markdown-it/any-blockquote-markdown-it" + " Rule that reports an error for any blockquote" + - " [Blockquote spans 1 line(s).] [Context: \"> Block\"]\n" + + " [Blockquote spans 1 line(s).] [Context: \"> Blockquote\"]\n" + + "./test/custom-rules.md: 12: any-blockquote-micromark/any-blockquote-micromark" + + " Rule that reports an error for any blockquote" + + " [Blockquote spans 1 line(s).] [Context: \"> Blockquote\"]\n" + "./test/custom-rules.md: 2: every-n-lines/every-n-lines" + " Rule that reports an error every N lines [Line number 2]\n" + "./test/custom-rules.md: 4: every-n-lines/every-n-lines" + @@ -211,12 +229,20 @@ test("customRulesV2", (t) => new Promise((resolve) => { const expectedResult = {}; expectedResult[customRulesMd] = [ { "lineNumber": 12, - "ruleNames": [ "any-blockquote" ], + "ruleNames": [ "any-blockquote-markdown-it" ], "ruleDescription": "Rule that reports an error for any blockquote", "ruleInformation": `${homepage}/blob/main/test/rules/any-blockquote.js`, "errorDetail": "Blockquote spans 1 line(s).", - "errorContext": "> Block", + "errorContext": "> Blockquote", + "errorRange": null }, + { "lineNumber": 12, + "ruleNames": [ "any-blockquote-micromark" ], + "ruleDescription": "Rule that reports an error for any blockquote", + "ruleInformation": + `${homepage}/blob/main/test/rules/any-blockquote.js`, + "errorDetail": "Blockquote spans 1 line(s).", + "errorContext": "> Blockquote", "errorRange": null }, { "lineNumber": 2, "ruleNames": [ "every-n-lines" ], @@ -281,9 +307,12 @@ test("customRulesV2", (t) => new Promise((resolve) => { // @ts-ignore const actualMessage = actualResult.toString(); const expectedMessage = - "./test/custom-rules.md: 12: any-blockquote" + + "./test/custom-rules.md: 12: any-blockquote-markdown-it" + " Rule that reports an error for any blockquote" + - " [Blockquote spans 1 line(s).] [Context: \"> Block\"]\n" + + " [Blockquote spans 1 line(s).] [Context: \"> Blockquote\"]\n" + + "./test/custom-rules.md: 12: any-blockquote-micromark" + + " Rule that reports an error for any blockquote" + + " [Blockquote spans 1 line(s).] [Context: \"> Blockquote\"]\n" + "./test/custom-rules.md: 2: every-n-lines" + " Rule that reports an error every N lines [Line number 2]\n" + "./test/custom-rules.md: 4: every-n-lines" + @@ -328,7 +357,8 @@ test("customRulesConfig", (t) => new Promise((resolve) => { t.falsy(err); const expectedResult = {}; expectedResult[customRulesMd] = { - "any-blockquote": [ 12 ], + "any-blockquote-markdown-it": [ 12 ], + "any-blockquote-micromark": [ 12 ], "every-n-lines": [ 3, 6, 12 ], "first-line": [ 1 ], "letters-E-X": [ 7 ] @@ -402,7 +432,7 @@ test("customRulesBadProperty", (t) => { ]) { const { propertyName, propertyValues } = testCase; for (const propertyValue of propertyValues) { - const badRule = { ...customRules.anyBlockquote }; + const badRule = { ...customRules.firstLine }; badRule[propertyName] = propertyValue; // eslint-disable-next-line jsdoc/valid-types /** @type import("../lib/markdownlint").Options */ @@ -592,7 +622,7 @@ test("customRulesParserMarkdownIt", (t) => { }); test("customRulesParserMicromark", (t) => { - t.plan(1); + t.plan(5); // eslint-disable-next-line jsdoc/valid-types /** @type import("../lib/markdownlint").Options */ const options = { @@ -603,12 +633,12 @@ test("customRulesParserMicromark", (t) => { "tags": [ "tag" ], "parser": "micromark", "function": - () => { - // t.false(Object.keys(params).includes("tokens")); - // t.is(Object.keys(params.parsers).length, 1); - // t.truthy(params.parsers.micromark); - // t.is(Object.keys(params.parsers.micromark).length, 1); - // t.truthy(params.parsers.micromark.tokens); + (params) => { + t.false(Object.keys(params).includes("tokens")); + t.is(Object.keys(params.parsers).length, 1); + t.truthy(params.parsers.micromark); + t.is(Object.keys(params.parsers.micromark).length, 1); + t.truthy(params.parsers.micromark.tokens); } } ], @@ -616,10 +646,7 @@ test("customRulesParserMicromark", (t) => { "string": "# Heading\n" } }; - return markdownlint.promises.markdownlint(options).catch((error) => { - // parser "micromark" currently unsupported for custom rules - t.is(error.message, "Property 'parser' of custom rule at index 0 is incorrect: 'micromark'."); - }); + return markdownlint.promises.markdownlint(options).then(() => null); }); test("customRulesMarkdownItParamsTokensSameObject", (t) => { @@ -664,10 +691,41 @@ test("customRulesMarkdownItTokensSnapshot", (t) => { } } ], - "files": "./test/every-markdown-syntax.md", "noInlineConfig": true }; - return markdownlint.promises.markdownlint(options).then(() => null); + return fs + .readFile("./test/every-markdown-syntax.md", "utf8") + .then((content) => { + options.strings = { "content": content.split(newLineRe).join("\n") }; + return markdownlint.promises.markdownlint(options).then(() => null); + }); +}); + +test("customRulesMicromarkTokensSnapshot", (t) => { + t.plan(1); + // eslint-disable-next-line jsdoc/valid-types + /** @type import("../lib/markdownlint").Options */ + const options = { + "customRules": [ + { + "names": [ "name" ], + "description": "description", + "tags": [ "tag" ], + "parser": "micromark", + "function": + (params) => { + t.snapshot(params.parsers.micromark.tokens, "Unexpected tokens"); + } + } + ], + "noInlineConfig": true + }; + return fs + .readFile("./test/every-markdown-syntax.md", "utf8") + .then((content) => { + options.strings = { "content": content.split(newLineRe).join("\n") }; + return markdownlint.promises.markdownlint(options).then(() => null); + }); }); test("customRulesDefinitionStatic", (t) => new Promise((resolve) => { diff --git a/test/markdownlint-test-micromark.mjs b/test/markdownlint-test-micromark.mjs index bdf275ad..8f2a3d38 100644 --- a/test/markdownlint-test-micromark.mjs +++ b/test/markdownlint-test-micromark.mjs @@ -17,26 +17,9 @@ const testTokens = new Promise((resolve, reject) => { testContent.then(parse).then(resolve, reject); }); -const cloneToken = (token) => { - for (const child of token.children) { - const expectedParent = (token.type ? token : null); - if (child.parent !== expectedParent) { - throw new Error("Unexpected parent."); - } - } - const clone = { ...token }; - delete clone.parent; - clone.children = clone.children.map(cloneToken); - return clone; -}; - -const cloneTokens = (tokens) => ( - cloneToken({ "children": tokens }).children -); - test("parse", async(t) => { t.plan(1); - t.snapshot(cloneTokens(await testTokens), "Unexpected tokens"); + t.snapshot(await testTokens, "Unexpected tokens"); }); test("getEvents/filterByPredicate", async(t) => { diff --git a/test/rules/any-blockquote.js b/test/rules/any-blockquote.js index cc17a244..d5537169 100644 --- a/test/rules/any-blockquote.js +++ b/test/rules/any-blockquote.js @@ -2,26 +2,54 @@ "use strict"; -/** @type import("../../lib/markdownlint").Rule */ -module.exports = { - "names": [ "any-blockquote" ], - "description": "Rule that reports an error for any blockquote", - "information": new URL( - "https://github.com/DavidAnson/markdownlint" + - "/blob/main/test/rules/any-blockquote.js" - ), - "tags": [ "test" ], - "parser": "markdownit", - "function": (params, onError) => { - const blockquotes = params.parsers.markdownit.tokens - .filter(((token) => token.type === "blockquote_open")); - for (const blockquote of blockquotes) { - const lines = blockquote.map[1] - blockquote.map[0]; - onError({ - "lineNumber": blockquote.lineNumber, - "detail": "Blockquote spans " + lines + " line(s).", - "context": blockquote.line.substr(0, 7) - }); +/** @type import("../../lib/markdownlint").Rule[] */ +module.exports = [ + + // micromark parser (preferred) + { + "names": [ "any-blockquote-micromark" ], + "description": "Rule that reports an error for any blockquote", + "information": new URL( + "https://github.com/DavidAnson/markdownlint/blob/main/test/rules/any-blockquote.js" + ), + "tags": [ "test" ], + "parser": "micromark", + "function": (params, onError) => { + const blockquotes = params.parsers.micromark.tokens + .filter(((token) => token.type === "blockQuote")); + for (const blockquote of blockquotes) { + const lines = blockquote.endLine - blockquote.startLine + 1; + onError({ + "lineNumber": blockquote.startLine, + "detail": "Blockquote spans " + lines + " line(s).", + "context": params.lines[blockquote.startLine - 1] + }); + } + } + }, + + // markdown-it parser (legacy) + { + "names": [ "any-blockquote-markdown-it" ], + "description": "Rule that reports an error for any blockquote", + "information": new URL( + "https://github.com/DavidAnson/markdownlint/blob/main/test/rules/any-blockquote.js" + ), + "tags": [ "test" ], + "parser": "markdownit", + "function": (params, onError) => { + const blockquotes = params.parsers.markdownit.tokens + .filter(((token) => token.type === "blockquote_open")); + for (const blockquote of blockquotes) { + const [ startIndex, endIndex ] = blockquote.map; + const lines = endIndex - startIndex; + onError({ + "lineNumber": blockquote.lineNumber, + "detail": "Blockquote spans " + lines + " line(s).", + "context": blockquote.line + }); + } } } -}; + +]; diff --git a/test/rules/rules.js b/test/rules/rules.js index ee16c96e..083726a7 100644 --- a/test/rules/rules.js +++ b/test/rules/rules.js @@ -21,7 +21,7 @@ const validateJson = require("./validate-json"); module.exports.validateJson = validateJson; module.exports.all = [ - anyBlockquote, + ...anyBlockquote, everyNLines, firstLine, lettersEX, diff --git a/test/snapshots/markdownlint-test-custom-rules.js.md b/test/snapshots/markdownlint-test-custom-rules.js.md index fb9a6a44..32e2c57c 100644 --- a/test/snapshots/markdownlint-test-custom-rules.js.md +++ b/test/snapshots/markdownlint-test-custom-rules.js.md @@ -3065,3 +3065,3523 @@ Generated by [AVA](https://avajs.dev). type: 'html_block', }, ] + +## customRulesMicromarkTokensSnapshot + +> Unexpected tokens + + [ + { + children: [ + { + children: [ + { + children: [], + endColumn: 22, + endLine: 1, + parent: [Circular], + startColumn: 1, + startLine: 1, + text: 'Every Markdown Syntax', + type: 'data', + }, + ], + endColumn: 22, + endLine: 1, + parent: [Circular], + startColumn: 1, + startLine: 1, + text: 'Every Markdown Syntax', + type: 'setextHeadingText', + }, + { + children: [], + endColumn: 1, + endLine: 2, + parent: [Circular], + startColumn: 22, + startLine: 1, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [ + { + children: [], + endColumn: 22, + endLine: 2, + parent: [Circular], + startColumn: 1, + startLine: 2, + text: '=====================', + type: 'setextHeadingLineSequence', + }, + ], + endColumn: 22, + endLine: 2, + parent: [Circular], + startColumn: 1, + startLine: 2, + text: '=====================', + type: 'setextHeadingLine', + }, + ], + endColumn: 22, + endLine: 2, + parent: null, + startColumn: 1, + startLine: 1, + text: `Every Markdown Syntax␊ + =====================`, + type: 'setextHeading', + }, + { + children: [], + endColumn: 1, + endLine: 3, + parent: null, + startColumn: 22, + startLine: 2, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 4, + parent: null, + startColumn: 1, + startLine: 3, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [], + endColumn: 3, + endLine: 4, + parent: [Circular], + startColumn: 1, + startLine: 4, + text: '##', + type: 'atxHeadingSequence', + }, + { + children: [], + endColumn: 4, + endLine: 4, + parent: [Circular], + startColumn: 3, + startLine: 4, + text: ' ', + type: 'whitespace', + }, + { + children: [ + { + children: [], + endColumn: 23, + endLine: 4, + parent: [Circular], + startColumn: 4, + startLine: 4, + text: 'Level 2 ATX Heading', + type: 'data', + }, + ], + endColumn: 23, + endLine: 4, + parent: [Circular], + startColumn: 4, + startLine: 4, + text: 'Level 2 ATX Heading', + type: 'atxHeadingText', + }, + ], + endColumn: 23, + endLine: 4, + parent: null, + startColumn: 1, + startLine: 4, + text: '## Level 2 ATX Heading', + type: 'atxHeading', + }, + { + children: [], + endColumn: 1, + endLine: 5, + parent: null, + startColumn: 23, + startLine: 4, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 6, + parent: null, + startColumn: 1, + startLine: 5, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [], + endColumn: 4, + endLine: 6, + parent: [Circular], + startColumn: 1, + startLine: 6, + text: '###', + type: 'atxHeadingSequence', + }, + { + children: [], + endColumn: 5, + endLine: 6, + parent: [Circular], + startColumn: 4, + startLine: 6, + text: ' ', + type: 'whitespace', + }, + { + children: [ + { + children: [], + endColumn: 31, + endLine: 6, + parent: [Circular], + startColumn: 5, + startLine: 6, + text: 'Level 3 Closed ATX Heading', + type: 'data', + }, + ], + endColumn: 31, + endLine: 6, + parent: [Circular], + startColumn: 5, + startLine: 6, + text: 'Level 3 Closed ATX Heading', + type: 'atxHeadingText', + }, + { + children: [], + endColumn: 32, + endLine: 6, + parent: [Circular], + startColumn: 31, + startLine: 6, + text: ' ', + type: 'whitespace', + }, + { + children: [], + endColumn: 35, + endLine: 6, + parent: [Circular], + startColumn: 32, + startLine: 6, + text: '###', + type: 'atxHeadingSequence', + }, + ], + endColumn: 35, + endLine: 6, + parent: null, + startColumn: 1, + startLine: 6, + text: '### Level 3 Closed ATX Heading ###', + type: 'atxHeading', + }, + { + children: [], + endColumn: 1, + endLine: 7, + parent: null, + startColumn: 35, + startLine: 6, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 8, + parent: null, + startColumn: 1, + startLine: 7, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [], + endColumn: 4, + endLine: 8, + parent: [Circular], + startColumn: 1, + startLine: 8, + text: '---', + type: 'thematicBreakSequence', + }, + ], + endColumn: 4, + endLine: 8, + parent: null, + startColumn: 1, + startLine: 8, + text: '---', + type: 'thematicBreak', + }, + { + children: [], + endColumn: 1, + endLine: 9, + parent: null, + startColumn: 4, + startLine: 8, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 10, + parent: null, + startColumn: 1, + startLine: 9, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 6, + endLine: 10, + parent: [Circular], + startColumn: 1, + startLine: 10, + text: 'Text ', + type: 'data', + }, + { + children: [ + { + children: [], + endColumn: 7, + endLine: 10, + parent: [Circular], + startColumn: 6, + startLine: 10, + text: '*', + type: 'emphasisSequence', + }, + { + children: [ + { + children: [], + endColumn: 17, + endLine: 10, + parent: [Circular], + startColumn: 7, + startLine: 10, + text: 'emphasized', + type: 'data', + }, + ], + endColumn: 17, + endLine: 10, + parent: [Circular], + startColumn: 7, + startLine: 10, + text: 'emphasized', + type: 'emphasisText', + }, + { + children: [], + endColumn: 18, + endLine: 10, + parent: [Circular], + startColumn: 17, + startLine: 10, + text: '*', + type: 'emphasisSequence', + }, + ], + endColumn: 18, + endLine: 10, + parent: [Circular], + startColumn: 6, + startLine: 10, + text: '*emphasized*', + type: 'emphasis', + }, + { + children: [], + endColumn: 19, + endLine: 10, + parent: [Circular], + startColumn: 18, + startLine: 10, + text: ' ', + type: 'data', + }, + { + children: [ + { + children: [], + endColumn: 21, + endLine: 10, + parent: [Circular], + startColumn: 19, + startLine: 10, + text: '**', + type: 'strongSequence', + }, + { + children: [ + { + children: [], + endColumn: 27, + endLine: 10, + parent: [Circular], + startColumn: 21, + startLine: 10, + text: 'strong', + type: 'data', + }, + ], + endColumn: 27, + endLine: 10, + parent: [Circular], + startColumn: 21, + startLine: 10, + text: 'strong', + type: 'strongText', + }, + { + children: [], + endColumn: 29, + endLine: 10, + parent: [Circular], + startColumn: 27, + startLine: 10, + text: '**', + type: 'strongSequence', + }, + ], + endColumn: 29, + endLine: 10, + parent: [Circular], + startColumn: 19, + startLine: 10, + text: '**strong**', + type: 'strong', + }, + { + children: [], + endColumn: 30, + endLine: 10, + parent: [Circular], + startColumn: 29, + startLine: 10, + text: ' ', + type: 'data', + }, + { + children: [ + { + children: [], + endColumn: 31, + endLine: 10, + parent: [Circular], + startColumn: 30, + startLine: 10, + text: '_', + type: 'emphasisSequence', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 33, + endLine: 10, + parent: [Circular], + startColumn: 31, + startLine: 10, + text: '__', + type: 'strongSequence', + }, + { + children: [ + { + children: [], + endColumn: 50, + endLine: 10, + parent: [Circular], + startColumn: 33, + startLine: 10, + text: 'emphasized+strong', + type: 'data', + }, + ], + endColumn: 50, + endLine: 10, + parent: [Circular], + startColumn: 33, + startLine: 10, + text: 'emphasized+strong', + type: 'strongText', + }, + { + children: [], + endColumn: 52, + endLine: 10, + parent: [Circular], + startColumn: 50, + startLine: 10, + text: '__', + type: 'strongSequence', + }, + ], + endColumn: 52, + endLine: 10, + parent: [Circular], + startColumn: 31, + startLine: 10, + text: '__emphasized+strong__', + type: 'strong', + }, + ], + endColumn: 52, + endLine: 10, + parent: [Circular], + startColumn: 31, + startLine: 10, + text: '__emphasized+strong__', + type: 'emphasisText', + }, + { + children: [], + endColumn: 53, + endLine: 10, + parent: [Circular], + startColumn: 52, + startLine: 10, + text: '_', + type: 'emphasisSequence', + }, + ], + endColumn: 53, + endLine: 10, + parent: [Circular], + startColumn: 30, + startLine: 10, + text: '___emphasized+strong___', + type: 'emphasis', + }, + { + children: [], + endColumn: 54, + endLine: 10, + parent: [Circular], + startColumn: 53, + startLine: 10, + text: '.', + type: 'data', + }, + { + children: [], + endColumn: 1, + endLine: 11, + parent: [Circular], + startColumn: 54, + startLine: 10, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 6, + endLine: 11, + parent: [Circular], + startColumn: 1, + startLine: 11, + text: 'Text ', + type: 'data', + }, + { + children: [ + { + children: [], + endColumn: 7, + endLine: 11, + parent: [Circular], + startColumn: 6, + startLine: 11, + text: '`', + type: 'codeTextSequence', + }, + { + children: [], + endColumn: 11, + endLine: 11, + parent: [Circular], + startColumn: 7, + startLine: 11, + text: 'code', + type: 'codeTextData', + }, + { + children: [], + endColumn: 12, + endLine: 11, + parent: [Circular], + startColumn: 11, + startLine: 11, + text: '`', + type: 'codeTextSequence', + }, + ], + endColumn: 12, + endLine: 11, + parent: [Circular], + startColumn: 6, + startLine: 11, + text: '`code`', + type: 'codeText', + }, + { + children: [], + endColumn: 13, + endLine: 11, + parent: [Circular], + startColumn: 12, + startLine: 11, + text: ' ', + type: 'data', + }, + { + children: [ + { + children: [], + endColumn: 21, + endLine: 11, + parent: [Circular], + startColumn: 13, + startLine: 11, + text: '', + type: 'htmlTextData', + }, + ], + endColumn: 21, + endLine: 11, + parent: [Circular], + startColumn: 13, + startLine: 11, + text: '', + type: 'htmlText', + }, + { + children: [], + endColumn: 25, + endLine: 11, + parent: [Circular], + startColumn: 21, + startLine: 11, + text: 'html', + type: 'data', + }, + { + children: [ + { + children: [], + endColumn: 34, + endLine: 11, + parent: [Circular], + startColumn: 25, + startLine: 11, + text: '', + type: 'htmlTextData', + }, + ], + endColumn: 34, + endLine: 11, + parent: [Circular], + startColumn: 25, + startLine: 11, + text: '', + type: 'htmlText', + }, + { + children: [], + endColumn: 35, + endLine: 11, + parent: [Circular], + startColumn: 34, + startLine: 11, + text: ' ', + type: 'data', + }, + { + children: [ + { + children: [], + endColumn: 36, + endLine: 11, + parent: [Circular], + startColumn: 35, + startLine: 11, + text: '<', + type: 'autolinkMarker', + }, + { + children: [], + endColumn: 60, + endLine: 11, + parent: [Circular], + startColumn: 36, + startLine: 11, + text: 'https://example.com/page', + type: 'autolinkProtocol', + }, + { + children: [], + endColumn: 61, + endLine: 11, + parent: [Circular], + startColumn: 60, + startLine: 11, + text: '>', + type: 'autolinkMarker', + }, + ], + endColumn: 61, + endLine: 11, + parent: [Circular], + startColumn: 35, + startLine: 11, + text: '', + type: 'autolink', + }, + { + children: [], + endColumn: 62, + endLine: 11, + parent: [Circular], + startColumn: 61, + startLine: 11, + text: '.', + type: 'data', + }, + { + children: [], + endColumn: 1, + endLine: 12, + parent: [Circular], + startColumn: 62, + startLine: 11, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 6, + endLine: 12, + parent: [Circular], + startColumn: 1, + startLine: 12, + text: 'Text ', + type: 'data', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 7, + endLine: 12, + parent: [Circular], + startColumn: 6, + startLine: 12, + text: '[', + type: 'labelMarker', + }, + { + children: [ + { + children: [], + endColumn: 11, + endLine: 12, + parent: [Circular], + startColumn: 7, + startLine: 12, + text: 'link', + type: 'data', + }, + ], + endColumn: 11, + endLine: 12, + parent: [Circular], + startColumn: 7, + startLine: 12, + text: 'link', + type: 'labelText', + }, + { + children: [], + endColumn: 12, + endLine: 12, + parent: [Circular], + startColumn: 11, + startLine: 12, + text: ']', + type: 'labelMarker', + }, + ], + endColumn: 12, + endLine: 12, + parent: [Circular], + startColumn: 6, + startLine: 12, + text: '[link]', + type: 'label', + }, + { + children: [ + { + children: [], + endColumn: 13, + endLine: 12, + parent: [Circular], + startColumn: 12, + startLine: 12, + text: '(', + type: 'resourceMarker', + }, + { + children: [ + { + children: [ + { + children: [ + { + children: [], + endColumn: 37, + endLine: 12, + parent: [Circular], + startColumn: 13, + startLine: 12, + text: 'https://example.com/page', + type: 'data', + }, + ], + endColumn: 37, + endLine: 12, + parent: [Circular], + startColumn: 13, + startLine: 12, + text: 'https://example.com/page', + type: 'resourceDestinationString', + }, + ], + endColumn: 37, + endLine: 12, + parent: [Circular], + startColumn: 13, + startLine: 12, + text: 'https://example.com/page', + type: 'resourceDestinationRaw', + }, + ], + endColumn: 37, + endLine: 12, + parent: [Circular], + startColumn: 13, + startLine: 12, + text: 'https://example.com/page', + type: 'resourceDestination', + }, + { + children: [], + endColumn: 38, + endLine: 12, + parent: [Circular], + startColumn: 37, + startLine: 12, + text: ')', + type: 'resourceMarker', + }, + ], + endColumn: 38, + endLine: 12, + parent: [Circular], + startColumn: 12, + startLine: 12, + text: '(https://example.com/page)', + type: 'resource', + }, + ], + endColumn: 38, + endLine: 12, + parent: [Circular], + startColumn: 6, + startLine: 12, + text: '[link](https://example.com/page)', + type: 'link', + }, + { + children: [], + endColumn: 39, + endLine: 12, + parent: [Circular], + startColumn: 38, + startLine: 12, + text: ' ', + type: 'data', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 40, + endLine: 12, + parent: [Circular], + startColumn: 39, + startLine: 12, + text: '[', + type: 'labelMarker', + }, + { + children: [ + { + children: [], + endColumn: 44, + endLine: 12, + parent: [Circular], + startColumn: 40, + startLine: 12, + text: 'link', + type: 'data', + }, + ], + endColumn: 44, + endLine: 12, + parent: [Circular], + startColumn: 40, + startLine: 12, + text: 'link', + type: 'labelText', + }, + { + children: [], + endColumn: 45, + endLine: 12, + parent: [Circular], + startColumn: 44, + startLine: 12, + text: ']', + type: 'labelMarker', + }, + ], + endColumn: 45, + endLine: 12, + parent: [Circular], + startColumn: 39, + startLine: 12, + text: '[link]', + type: 'label', + }, + { + children: [ + { + children: [], + endColumn: 46, + endLine: 12, + parent: [Circular], + startColumn: 45, + startLine: 12, + text: '[', + type: 'referenceMarker', + }, + { + children: [], + endColumn: 47, + endLine: 12, + parent: [Circular], + startColumn: 46, + startLine: 12, + text: ']', + type: 'referenceMarker', + }, + ], + endColumn: 47, + endLine: 12, + parent: [Circular], + startColumn: 45, + startLine: 12, + text: '[]', + type: 'reference', + }, + ], + endColumn: 47, + endLine: 12, + parent: [Circular], + startColumn: 39, + startLine: 12, + text: '[link][]', + type: 'link', + }, + { + children: [], + endColumn: 48, + endLine: 12, + parent: [Circular], + startColumn: 47, + startLine: 12, + text: ' ', + type: 'data', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 49, + endLine: 12, + parent: [Circular], + startColumn: 48, + startLine: 12, + text: '[', + type: 'labelMarker', + }, + { + children: [ + { + children: [], + endColumn: 53, + endLine: 12, + parent: [Circular], + startColumn: 49, + startLine: 12, + text: 'link', + type: 'data', + }, + ], + endColumn: 53, + endLine: 12, + parent: [Circular], + startColumn: 49, + startLine: 12, + text: 'link', + type: 'labelText', + }, + { + children: [], + endColumn: 54, + endLine: 12, + parent: [Circular], + startColumn: 53, + startLine: 12, + text: ']', + type: 'labelMarker', + }, + ], + endColumn: 54, + endLine: 12, + parent: [Circular], + startColumn: 48, + startLine: 12, + text: '[link]', + type: 'label', + }, + ], + endColumn: 54, + endLine: 12, + parent: [Circular], + startColumn: 48, + startLine: 12, + text: '[link]', + type: 'link', + }, + { + children: [], + endColumn: 55, + endLine: 12, + parent: [Circular], + startColumn: 54, + startLine: 12, + text: ' ', + type: 'data', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 56, + endLine: 12, + parent: [Circular], + startColumn: 55, + startLine: 12, + text: '!', + type: 'labelImageMarker', + }, + { + children: [], + endColumn: 57, + endLine: 12, + parent: [Circular], + startColumn: 56, + startLine: 12, + text: '[', + type: 'labelMarker', + }, + { + children: [ + { + children: [], + endColumn: 62, + endLine: 12, + parent: [Circular], + startColumn: 57, + startLine: 12, + text: 'image', + type: 'data', + }, + ], + endColumn: 62, + endLine: 12, + parent: [Circular], + startColumn: 57, + startLine: 12, + text: 'image', + type: 'labelText', + }, + { + children: [], + endColumn: 63, + endLine: 12, + parent: [Circular], + startColumn: 62, + startLine: 12, + text: ']', + type: 'labelMarker', + }, + ], + endColumn: 63, + endLine: 12, + parent: [Circular], + startColumn: 55, + startLine: 12, + text: '![image]', + type: 'label', + }, + { + children: [ + { + children: [], + endColumn: 64, + endLine: 12, + parent: [Circular], + startColumn: 63, + startLine: 12, + text: '[', + type: 'referenceMarker', + }, + { + children: [ + { + children: [], + endColumn: 68, + endLine: 12, + parent: [Circular], + startColumn: 64, + startLine: 12, + text: 'link', + type: 'data', + }, + ], + endColumn: 68, + endLine: 12, + parent: [Circular], + startColumn: 64, + startLine: 12, + text: 'link', + type: 'referenceString', + }, + { + children: [], + endColumn: 69, + endLine: 12, + parent: [Circular], + startColumn: 68, + startLine: 12, + text: ']', + type: 'referenceMarker', + }, + ], + endColumn: 69, + endLine: 12, + parent: [Circular], + startColumn: 63, + startLine: 12, + text: '[link]', + type: 'reference', + }, + ], + endColumn: 69, + endLine: 12, + parent: [Circular], + startColumn: 55, + startLine: 12, + text: '![image][link]', + type: 'image', + }, + { + children: [], + endColumn: 70, + endLine: 12, + parent: [Circular], + startColumn: 69, + startLine: 12, + text: '.', + type: 'data', + }, + { + children: [], + endColumn: 1, + endLine: 13, + parent: [Circular], + startColumn: 70, + startLine: 12, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 6, + endLine: 13, + parent: [Circular], + startColumn: 1, + startLine: 13, + text: 'Text ', + type: 'data', + }, + { + children: [ + { + children: [], + endColumn: 30, + endLine: 13, + parent: [Circular], + startColumn: 6, + startLine: 13, + text: 'https://example.com/page', + type: 'literalAutolinkHttp', + }, + ], + endColumn: 30, + endLine: 13, + parent: [Circular], + startColumn: 6, + startLine: 13, + text: 'https://example.com/page', + type: 'literalAutolink', + }, + { + children: [], + endColumn: 31, + endLine: 13, + parent: [Circular], + startColumn: 30, + startLine: 13, + text: '.', + type: 'data', + }, + ], + endColumn: 31, + endLine: 13, + parent: [Circular], + startColumn: 1, + startLine: 10, + text: `Text *emphasized* **strong** ___emphasized+strong___.␊ + Text \`code\` html .␊ + Text [link](https://example.com/page) [link][] [link] ![image][link].␊ + Text https://example.com/page.`, + type: 'paragraph', + }, + ], + endColumn: 31, + endLine: 13, + parent: null, + startColumn: 1, + startLine: 10, + text: `Text *emphasized* **strong** ___emphasized+strong___.␊ + Text \`code\` html .␊ + Text [link](https://example.com/page) [link][] [link] ![image][link].␊ + Text https://example.com/page.`, + type: 'content', + }, + { + children: [], + endColumn: 1, + endLine: 14, + parent: null, + startColumn: 31, + startLine: 13, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 15, + parent: null, + startColumn: 1, + startLine: 14, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 5, + endLine: 15, + parent: [Circular], + startColumn: 1, + startLine: 15, + text: 'Hard', + type: 'data', + }, + { + children: [], + endColumn: 7, + endLine: 15, + parent: [Circular], + startColumn: 5, + startLine: 15, + text: ' ', + type: 'hardBreakTrailing', + }, + { + children: [], + endColumn: 1, + endLine: 16, + parent: [Circular], + startColumn: 7, + startLine: 15, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 11, + endLine: 16, + parent: [Circular], + startColumn: 1, + startLine: 16, + text: 'line break', + type: 'data', + }, + ], + endColumn: 11, + endLine: 16, + parent: [Circular], + startColumn: 1, + startLine: 15, + text: `Hard ␊ + line break`, + type: 'paragraph', + }, + ], + endColumn: 11, + endLine: 16, + parent: null, + startColumn: 1, + startLine: 15, + text: `Hard ␊ + line break`, + type: 'content', + }, + { + children: [], + endColumn: 1, + endLine: 17, + parent: null, + startColumn: 11, + startLine: 16, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 18, + parent: null, + startColumn: 1, + startLine: 17, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [ + { + children: [ + { + children: [], + endColumn: 2, + endLine: 18, + parent: [Circular], + startColumn: 1, + startLine: 18, + text: '[', + type: 'definitionLabelMarker', + }, + { + children: [ + { + children: [], + endColumn: 6, + endLine: 18, + parent: [Circular], + startColumn: 2, + startLine: 18, + text: 'link', + type: 'data', + }, + ], + endColumn: 6, + endLine: 18, + parent: [Circular], + startColumn: 2, + startLine: 18, + text: 'link', + type: 'definitionLabelString', + }, + { + children: [], + endColumn: 7, + endLine: 18, + parent: [Circular], + startColumn: 6, + startLine: 18, + text: ']', + type: 'definitionLabelMarker', + }, + ], + endColumn: 7, + endLine: 18, + parent: [Circular], + startColumn: 1, + startLine: 18, + text: '[link]', + type: 'definitionLabel', + }, + { + children: [], + endColumn: 8, + endLine: 18, + parent: [Circular], + startColumn: 7, + startLine: 18, + text: ':', + type: 'definitionMarker', + }, + { + children: [], + endColumn: 9, + endLine: 18, + parent: [Circular], + startColumn: 8, + startLine: 18, + text: ' ', + type: 'lineSuffix', + }, + { + children: [ + { + children: [ + { + children: [ + { + children: [], + endColumn: 33, + endLine: 18, + parent: [Circular], + startColumn: 9, + startLine: 18, + text: 'https://example.com/page', + type: 'data', + }, + ], + endColumn: 33, + endLine: 18, + parent: [Circular], + startColumn: 9, + startLine: 18, + text: 'https://example.com/page', + type: 'definitionDestinationString', + }, + ], + endColumn: 33, + endLine: 18, + parent: [Circular], + startColumn: 9, + startLine: 18, + text: 'https://example.com/page', + type: 'definitionDestinationRaw', + }, + ], + endColumn: 33, + endLine: 18, + parent: [Circular], + startColumn: 9, + startLine: 18, + text: 'https://example.com/page', + type: 'definitionDestination', + }, + { + children: [], + endColumn: 34, + endLine: 18, + parent: [Circular], + startColumn: 33, + startLine: 18, + text: ' ', + type: 'lineSuffix', + }, + { + children: [ + { + children: [], + endColumn: 35, + endLine: 18, + parent: [Circular], + startColumn: 34, + startLine: 18, + text: '"', + type: 'definitionTitleMarker', + }, + { + children: [ + { + children: [], + endColumn: 40, + endLine: 18, + parent: [Circular], + startColumn: 35, + startLine: 18, + text: 'Title', + type: 'data', + }, + ], + endColumn: 40, + endLine: 18, + parent: [Circular], + startColumn: 35, + startLine: 18, + text: 'Title', + type: 'definitionTitleString', + }, + { + children: [], + endColumn: 41, + endLine: 18, + parent: [Circular], + startColumn: 40, + startLine: 18, + text: '"', + type: 'definitionTitleMarker', + }, + ], + endColumn: 41, + endLine: 18, + parent: [Circular], + startColumn: 34, + startLine: 18, + text: '"Title"', + type: 'definitionTitle', + }, + ], + endColumn: 41, + endLine: 18, + parent: [Circular], + startColumn: 1, + startLine: 18, + text: '[link]: https://example.com/page "Title"', + type: 'definition', + }, + ], + endColumn: 41, + endLine: 18, + parent: null, + startColumn: 1, + startLine: 18, + text: '[link]: https://example.com/page "Title"', + type: 'content', + }, + { + children: [], + endColumn: 1, + endLine: 19, + parent: null, + startColumn: 41, + startLine: 18, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 20, + parent: null, + startColumn: 1, + startLine: 19, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 2, + endLine: 20, + parent: [Circular], + startColumn: 1, + startLine: 20, + text: '>', + type: 'blockQuoteMarker', + }, + { + children: [], + endColumn: 3, + endLine: 20, + parent: [Circular], + startColumn: 2, + startLine: 20, + text: ' ', + type: 'blockQuotePrefixWhitespace', + }, + ], + endColumn: 3, + endLine: 20, + parent: [Circular], + startColumn: 1, + startLine: 20, + text: '> ', + type: 'blockQuotePrefix', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 14, + endLine: 20, + parent: [Circular], + startColumn: 3, + startLine: 20, + text: 'Block quote', + type: 'data', + }, + ], + endColumn: 14, + endLine: 20, + parent: [Circular], + startColumn: 3, + startLine: 20, + text: 'Block quote', + type: 'paragraph', + }, + ], + endColumn: 14, + endLine: 20, + parent: [Circular], + startColumn: 3, + startLine: 20, + text: 'Block quote', + type: 'content', + }, + { + children: [], + endColumn: 1, + endLine: 21, + parent: [Circular], + startColumn: 14, + startLine: 20, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [ + { + children: [], + endColumn: 2, + endLine: 21, + parent: [Circular], + startColumn: 1, + startLine: 21, + text: '>', + type: 'blockQuoteMarker', + }, + { + children: [], + endColumn: 3, + endLine: 21, + parent: [Circular], + startColumn: 2, + startLine: 21, + text: ' ', + type: 'blockQuotePrefixWhitespace', + }, + ], + endColumn: 3, + endLine: 21, + parent: [Circular], + startColumn: 1, + startLine: 21, + text: '> ', + type: 'blockQuotePrefix', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 4, + endLine: 21, + parent: [Circular], + startColumn: 3, + startLine: 21, + text: '>', + type: 'blockQuoteMarker', + }, + { + children: [], + endColumn: 5, + endLine: 21, + parent: [Circular], + startColumn: 4, + startLine: 21, + text: ' ', + type: 'blockQuotePrefixWhitespace', + }, + ], + endColumn: 5, + endLine: 21, + parent: [Circular], + startColumn: 3, + startLine: 21, + text: '> ', + type: 'blockQuotePrefix', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 11, + endLine: 21, + parent: [Circular], + startColumn: 5, + startLine: 21, + text: 'Nested', + type: 'data', + }, + ], + endColumn: 11, + endLine: 21, + parent: [Circular], + startColumn: 5, + startLine: 21, + text: 'Nested', + type: 'paragraph', + }, + ], + endColumn: 11, + endLine: 21, + parent: [Circular], + startColumn: 5, + startLine: 21, + text: 'Nested', + type: 'content', + }, + ], + endColumn: 11, + endLine: 21, + parent: [Circular], + startColumn: 3, + startLine: 21, + text: '', + type: 'blockQuote', + }, + ], + endColumn: 11, + endLine: 21, + parent: null, + startColumn: 1, + startLine: 20, + text: '', + type: 'blockQuote', + }, + { + children: [], + endColumn: 1, + endLine: 22, + parent: null, + startColumn: 11, + startLine: 21, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 23, + parent: null, + startColumn: 1, + startLine: 22, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 2, + endLine: 23, + parent: [Circular], + startColumn: 1, + startLine: 23, + text: '-', + type: 'listItemMarker', + }, + { + children: [], + endColumn: 3, + endLine: 23, + parent: [Circular], + startColumn: 2, + startLine: 23, + text: ' ', + type: 'listItemPrefixWhitespace', + }, + ], + endColumn: 3, + endLine: 23, + parent: [Circular], + startColumn: 1, + startLine: 23, + text: '- ', + type: 'listItemPrefix', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 12, + endLine: 23, + parent: [Circular], + startColumn: 3, + startLine: 23, + text: 'Unordered', + type: 'data', + }, + ], + endColumn: 12, + endLine: 23, + parent: [Circular], + startColumn: 3, + startLine: 23, + text: 'Unordered', + type: 'paragraph', + }, + ], + endColumn: 12, + endLine: 23, + parent: [Circular], + startColumn: 3, + startLine: 23, + text: 'Unordered', + type: 'content', + }, + { + children: [], + endColumn: 1, + endLine: 24, + parent: [Circular], + startColumn: 12, + startLine: 23, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [ + { + children: [], + endColumn: 2, + endLine: 24, + parent: [Circular], + startColumn: 1, + startLine: 24, + text: '-', + type: 'listItemMarker', + }, + { + children: [], + endColumn: 3, + endLine: 24, + parent: [Circular], + startColumn: 2, + startLine: 24, + text: ' ', + type: 'listItemPrefixWhitespace', + }, + ], + endColumn: 3, + endLine: 24, + parent: [Circular], + startColumn: 1, + startLine: 24, + text: '- ', + type: 'listItemPrefix', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 7, + endLine: 24, + parent: [Circular], + startColumn: 3, + startLine: 24, + text: 'List', + type: 'data', + }, + ], + endColumn: 7, + endLine: 24, + parent: [Circular], + startColumn: 3, + startLine: 24, + text: 'List', + type: 'paragraph', + }, + ], + endColumn: 7, + endLine: 24, + parent: [Circular], + startColumn: 3, + startLine: 24, + text: 'List', + type: 'content', + }, + { + children: [], + endColumn: 1, + endLine: 25, + parent: [Circular], + startColumn: 7, + startLine: 24, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 3, + endLine: 25, + parent: [Circular], + startColumn: 1, + startLine: 25, + text: ' ', + type: 'listItemIndent', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 4, + endLine: 25, + parent: [Circular], + startColumn: 3, + startLine: 25, + text: '-', + type: 'listItemMarker', + }, + { + children: [], + endColumn: 5, + endLine: 25, + parent: [Circular], + startColumn: 4, + startLine: 25, + text: ' ', + type: 'listItemPrefixWhitespace', + }, + ], + endColumn: 5, + endLine: 25, + parent: [Circular], + startColumn: 3, + startLine: 25, + text: '- ', + type: 'listItemPrefix', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 10, + endLine: 25, + parent: [Circular], + startColumn: 5, + startLine: 25, + text: 'Items', + type: 'data', + }, + { + children: [], + endColumn: 1, + endLine: 26, + parent: [Circular], + startColumn: 10, + startLine: 25, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 3, + endLine: 26, + parent: [Circular], + startColumn: 1, + startLine: 26, + text: ' ', + type: 'listItemIndent', + }, + { + children: [], + endColumn: 5, + endLine: 26, + parent: [Circular], + startColumn: 3, + startLine: 26, + text: ' ', + type: 'listItemIndent', + }, + { + children: [], + endColumn: 13, + endLine: 26, + parent: [Circular], + startColumn: 5, + startLine: 26, + text: 'Indented', + type: 'data', + }, + ], + endColumn: 13, + endLine: 26, + parent: [Circular], + startColumn: 5, + startLine: 25, + text: `Items␊ + Indented`, + type: 'paragraph', + }, + ], + endColumn: 13, + endLine: 26, + parent: [Circular], + startColumn: 5, + startLine: 25, + text: `Items␊ + Indented`, + type: 'content', + }, + { + children: [], + endColumn: 1, + endLine: 27, + parent: [Circular], + startColumn: 13, + startLine: 26, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 28, + parent: [Circular], + startColumn: 1, + startLine: 27, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [], + endColumn: 3, + endLine: 28, + parent: [Circular], + startColumn: 1, + startLine: 28, + text: ' ', + type: 'listItemIndent', + }, + { + children: [], + endColumn: 5, + endLine: 28, + parent: [Circular], + startColumn: 3, + startLine: 28, + text: ' ', + type: 'listItemIndent', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 12, + endLine: 28, + parent: [Circular], + startColumn: 5, + startLine: 28, + text: 'Content', + type: 'data', + }, + ], + endColumn: 12, + endLine: 28, + parent: [Circular], + startColumn: 5, + startLine: 28, + text: 'Content', + type: 'paragraph', + }, + ], + endColumn: 12, + endLine: 28, + parent: [Circular], + startColumn: 5, + startLine: 28, + text: 'Content', + type: 'content', + }, + ], + endColumn: 12, + endLine: 28, + parent: [Circular], + startColumn: 3, + startLine: 25, + text: '', + type: 'listUnordered', + }, + ], + endColumn: 12, + endLine: 28, + parent: null, + startColumn: 1, + startLine: 23, + text: '', + type: 'listUnordered', + }, + { + children: [], + endColumn: 1, + endLine: 29, + parent: null, + startColumn: 12, + startLine: 28, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 30, + parent: null, + startColumn: 1, + startLine: 29, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 2, + endLine: 30, + parent: [Circular], + startColumn: 1, + startLine: 30, + text: '1', + type: 'listItemValue', + }, + { + children: [], + endColumn: 3, + endLine: 30, + parent: [Circular], + startColumn: 2, + startLine: 30, + text: '.', + type: 'listItemMarker', + }, + { + children: [], + endColumn: 4, + endLine: 30, + parent: [Circular], + startColumn: 3, + startLine: 30, + text: ' ', + type: 'listItemPrefixWhitespace', + }, + ], + endColumn: 4, + endLine: 30, + parent: [Circular], + startColumn: 1, + startLine: 30, + text: '1. ', + type: 'listItemPrefix', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 11, + endLine: 30, + parent: [Circular], + startColumn: 4, + startLine: 30, + text: 'Ordered', + type: 'data', + }, + ], + endColumn: 11, + endLine: 30, + parent: [Circular], + startColumn: 4, + startLine: 30, + text: 'Ordered', + type: 'paragraph', + }, + ], + endColumn: 11, + endLine: 30, + parent: [Circular], + startColumn: 4, + startLine: 30, + text: 'Ordered', + type: 'content', + }, + { + children: [], + endColumn: 1, + endLine: 31, + parent: [Circular], + startColumn: 11, + startLine: 30, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [ + { + children: [], + endColumn: 2, + endLine: 31, + parent: [Circular], + startColumn: 1, + startLine: 31, + text: '2', + type: 'listItemValue', + }, + { + children: [], + endColumn: 3, + endLine: 31, + parent: [Circular], + startColumn: 2, + startLine: 31, + text: '.', + type: 'listItemMarker', + }, + { + children: [], + endColumn: 4, + endLine: 31, + parent: [Circular], + startColumn: 3, + startLine: 31, + text: ' ', + type: 'listItemPrefixWhitespace', + }, + ], + endColumn: 4, + endLine: 31, + parent: [Circular], + startColumn: 1, + startLine: 31, + text: '2. ', + type: 'listItemPrefix', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 8, + endLine: 31, + parent: [Circular], + startColumn: 4, + startLine: 31, + text: 'List', + type: 'data', + }, + ], + endColumn: 8, + endLine: 31, + parent: [Circular], + startColumn: 4, + startLine: 31, + text: 'List', + type: 'paragraph', + }, + ], + endColumn: 8, + endLine: 31, + parent: [Circular], + startColumn: 4, + startLine: 31, + text: 'List', + type: 'content', + }, + { + children: [], + endColumn: 1, + endLine: 32, + parent: [Circular], + startColumn: 8, + startLine: 31, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 4, + endLine: 32, + parent: [Circular], + startColumn: 1, + startLine: 32, + text: ' ', + type: 'listItemIndent', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 5, + endLine: 32, + parent: [Circular], + startColumn: 4, + startLine: 32, + text: '1', + type: 'listItemValue', + }, + { + children: [], + endColumn: 6, + endLine: 32, + parent: [Circular], + startColumn: 5, + startLine: 32, + text: '.', + type: 'listItemMarker', + }, + { + children: [], + endColumn: 7, + endLine: 32, + parent: [Circular], + startColumn: 6, + startLine: 32, + text: ' ', + type: 'listItemPrefixWhitespace', + }, + ], + endColumn: 7, + endLine: 32, + parent: [Circular], + startColumn: 4, + startLine: 32, + text: '1. ', + type: 'listItemPrefix', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 12, + endLine: 32, + parent: [Circular], + startColumn: 7, + startLine: 32, + text: 'Items', + type: 'data', + }, + { + children: [], + endColumn: 1, + endLine: 33, + parent: [Circular], + startColumn: 12, + startLine: 32, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 4, + endLine: 33, + parent: [Circular], + startColumn: 1, + startLine: 33, + text: ' ', + type: 'listItemIndent', + }, + { + children: [], + endColumn: 7, + endLine: 33, + parent: [Circular], + startColumn: 4, + startLine: 33, + text: ' ', + type: 'listItemIndent', + }, + { + children: [], + endColumn: 15, + endLine: 33, + parent: [Circular], + startColumn: 7, + startLine: 33, + text: 'Indented', + type: 'data', + }, + ], + endColumn: 15, + endLine: 33, + parent: [Circular], + startColumn: 7, + startLine: 32, + text: `Items␊ + Indented`, + type: 'paragraph', + }, + ], + endColumn: 15, + endLine: 33, + parent: [Circular], + startColumn: 7, + startLine: 32, + text: `Items␊ + Indented`, + type: 'content', + }, + { + children: [], + endColumn: 1, + endLine: 34, + parent: [Circular], + startColumn: 15, + startLine: 33, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 35, + parent: [Circular], + startColumn: 1, + startLine: 34, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [], + endColumn: 4, + endLine: 35, + parent: [Circular], + startColumn: 1, + startLine: 35, + text: ' ', + type: 'listItemIndent', + }, + { + children: [], + endColumn: 7, + endLine: 35, + parent: [Circular], + startColumn: 4, + startLine: 35, + text: ' ', + type: 'listItemIndent', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 14, + endLine: 35, + parent: [Circular], + startColumn: 7, + startLine: 35, + text: 'Content', + type: 'data', + }, + ], + endColumn: 14, + endLine: 35, + parent: [Circular], + startColumn: 7, + startLine: 35, + text: 'Content', + type: 'paragraph', + }, + ], + endColumn: 14, + endLine: 35, + parent: [Circular], + startColumn: 7, + startLine: 35, + text: 'Content', + type: 'content', + }, + ], + endColumn: 14, + endLine: 35, + parent: [Circular], + startColumn: 4, + startLine: 32, + text: '', + type: 'listOrdered', + }, + ], + endColumn: 14, + endLine: 35, + parent: null, + startColumn: 1, + startLine: 30, + text: '', + type: 'listOrdered', + }, + { + children: [], + endColumn: 1, + endLine: 36, + parent: null, + startColumn: 14, + startLine: 35, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 37, + parent: null, + startColumn: 1, + startLine: 36, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 4, + endLine: 37, + parent: [Circular], + startColumn: 1, + startLine: 37, + text: '```', + type: 'codeFencedFenceSequence', + }, + { + children: [ + { + children: [], + endColumn: 12, + endLine: 37, + parent: [Circular], + startColumn: 4, + startLine: 37, + text: 'markdown', + type: 'data', + }, + ], + endColumn: 12, + endLine: 37, + parent: [Circular], + startColumn: 4, + startLine: 37, + text: 'markdown', + type: 'codeFencedFenceInfo', + }, + { + children: [], + endColumn: 13, + endLine: 37, + parent: [Circular], + startColumn: 12, + startLine: 37, + text: ' ', + type: 'whitespace', + }, + { + children: [ + { + children: [], + endColumn: 20, + endLine: 37, + parent: [Circular], + startColumn: 13, + startLine: 37, + text: 'options', + type: 'data', + }, + ], + endColumn: 20, + endLine: 37, + parent: [Circular], + startColumn: 13, + startLine: 37, + text: 'options', + type: 'codeFencedFenceMeta', + }, + ], + endColumn: 20, + endLine: 37, + parent: [Circular], + startColumn: 1, + startLine: 37, + text: '```markdown options', + type: 'codeFencedFence', + }, + { + children: [], + endColumn: 1, + endLine: 38, + parent: [Circular], + startColumn: 20, + startLine: 37, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 18, + endLine: 38, + parent: [Circular], + startColumn: 1, + startLine: 38, + text: 'Fenced code block', + type: 'codeFlowValue', + }, + { + children: [], + endColumn: 1, + endLine: 39, + parent: [Circular], + startColumn: 18, + startLine: 38, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [ + { + children: [], + endColumn: 4, + endLine: 39, + parent: [Circular], + startColumn: 1, + startLine: 39, + text: '```', + type: 'codeFencedFenceSequence', + }, + ], + endColumn: 4, + endLine: 39, + parent: [Circular], + startColumn: 1, + startLine: 39, + text: '```', + type: 'codeFencedFence', + }, + ], + endColumn: 4, + endLine: 39, + parent: null, + startColumn: 1, + startLine: 37, + text: `\`\`\`markdown options␊ + Fenced code block␊ + \`\`\``, + type: 'codeFenced', + }, + { + children: [], + endColumn: 1, + endLine: 40, + parent: null, + startColumn: 4, + startLine: 39, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 41, + parent: null, + startColumn: 1, + startLine: 40, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [], + endColumn: 5, + endLine: 41, + parent: [Circular], + startColumn: 1, + startLine: 41, + text: ' ', + type: 'linePrefix', + }, + { + children: [], + endColumn: 24, + endLine: 41, + parent: [Circular], + startColumn: 5, + startLine: 41, + text: 'Indented code block', + type: 'codeFlowValue', + }, + ], + endColumn: 24, + endLine: 41, + parent: null, + startColumn: 1, + startLine: 41, + text: ' Indented code block', + type: 'codeIndented', + }, + { + children: [], + endColumn: 1, + endLine: 42, + parent: null, + startColumn: 24, + startLine: 41, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 43, + parent: null, + startColumn: 1, + startLine: 42, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [ + { + children: [ + { + children: [ + { + children: [], + endColumn: 4, + endLine: 43, + parent: [Circular], + startColumn: 1, + startLine: 43, + text: '

', + type: 'htmlTextData', + }, + ], + endColumn: 4, + endLine: 43, + parent: [Circular], + startColumn: 1, + startLine: 43, + text: '

', + type: 'htmlText', + }, + { + children: [], + endColumn: 1, + endLine: 44, + parent: [Circular], + startColumn: 4, + startLine: 43, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 11, + endLine: 44, + parent: [Circular], + startColumn: 1, + startLine: 44, + text: 'HTML block', + type: 'data', + }, + { + children: [], + endColumn: 1, + endLine: 45, + parent: [Circular], + startColumn: 11, + startLine: 44, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [ + { + children: [], + endColumn: 5, + endLine: 45, + parent: [Circular], + startColumn: 1, + startLine: 45, + text: '

', + type: 'htmlTextData', + }, + ], + endColumn: 5, + endLine: 45, + parent: [Circular], + startColumn: 1, + startLine: 45, + text: '

', + type: 'htmlText', + }, + ], + endColumn: 5, + endLine: 45, + parent: [Circular], + startColumn: 1, + startLine: 43, + text: `

␊ + HTML block␊ +

`, + type: 'paragraph', + }, + ], + endColumn: 5, + endLine: 45, + parent: [Circular], + startColumn: 1, + startLine: 43, + text: `

␊ + HTML block␊ +

`, + type: 'content', + }, + ], + endColumn: 5, + endLine: 45, + parent: null, + startColumn: 1, + startLine: 43, + text: `

␊ + HTML block␊ +

`, + type: 'htmlFlow', + }, + { + children: [], + endColumn: 1, + endLine: 46, + parent: null, + startColumn: 5, + startLine: 45, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 47, + parent: null, + startColumn: 1, + startLine: 46, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [ + { + children: [ + { + children: [ + { + children: [], + endColumn: 2, + endLine: 47, + parent: [Circular], + startColumn: 1, + startLine: 47, + text: '|', + type: 'tableCellDivider', + }, + { + children: [], + endColumn: 3, + endLine: 47, + parent: [Circular], + startColumn: 2, + startLine: 47, + text: ' ', + type: 'whitespace', + }, + { + children: [ + { + children: [], + endColumn: 8, + endLine: 47, + parent: [Circular], + startColumn: 3, + startLine: 47, + text: 'Table', + type: 'data', + }, + ], + endColumn: 8, + endLine: 47, + parent: [Circular], + startColumn: 3, + startLine: 47, + text: 'Table', + type: 'tableContent', + }, + { + children: [], + endColumn: 9, + endLine: 47, + parent: [Circular], + startColumn: 8, + startLine: 47, + text: ' ', + type: 'whitespace', + }, + ], + endColumn: 9, + endLine: 47, + parent: [Circular], + startColumn: 1, + startLine: 47, + text: '| Table ', + type: 'tableHeader', + }, + { + children: [ + { + children: [], + endColumn: 10, + endLine: 47, + parent: [Circular], + startColumn: 9, + startLine: 47, + text: '|', + type: 'tableCellDivider', + }, + { + children: [], + endColumn: 11, + endLine: 47, + parent: [Circular], + startColumn: 10, + startLine: 47, + text: ' ', + type: 'whitespace', + }, + { + children: [ + { + children: [], + endColumn: 18, + endLine: 47, + parent: [Circular], + startColumn: 11, + startLine: 47, + text: 'Heading', + type: 'data', + }, + ], + endColumn: 18, + endLine: 47, + parent: [Circular], + startColumn: 11, + startLine: 47, + text: 'Heading', + type: 'tableContent', + }, + { + children: [], + endColumn: 19, + endLine: 47, + parent: [Circular], + startColumn: 18, + startLine: 47, + text: ' ', + type: 'whitespace', + }, + { + children: [], + endColumn: 20, + endLine: 47, + parent: [Circular], + startColumn: 19, + startLine: 47, + text: '|', + type: 'tableCellDivider', + }, + ], + endColumn: 20, + endLine: 47, + parent: [Circular], + startColumn: 9, + startLine: 47, + text: '| Heading |', + type: 'tableHeader', + }, + ], + endColumn: 20, + endLine: 47, + parent: [Circular], + startColumn: 1, + startLine: 47, + text: '| Table | Heading |', + type: 'tableRow', + }, + { + children: [], + endColumn: 1, + endLine: 48, + parent: [Circular], + startColumn: 20, + startLine: 47, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [ + { + children: [ + { + children: [], + endColumn: 2, + endLine: 48, + parent: [Circular], + startColumn: 1, + startLine: 48, + text: '|', + type: 'tableCellDivider', + }, + { + children: [], + endColumn: 3, + endLine: 48, + parent: [Circular], + startColumn: 2, + startLine: 48, + text: ' ', + type: 'whitespace', + }, + { + children: [ + { + children: [], + endColumn: 8, + endLine: 48, + parent: [Circular], + startColumn: 3, + startLine: 48, + text: '-----', + type: 'tableDelimiterFiller', + }, + ], + endColumn: 8, + endLine: 48, + parent: [Circular], + startColumn: 3, + startLine: 48, + text: '-----', + type: 'tableContent', + }, + { + children: [], + endColumn: 9, + endLine: 48, + parent: [Circular], + startColumn: 8, + startLine: 48, + text: ' ', + type: 'whitespace', + }, + ], + endColumn: 9, + endLine: 48, + parent: [Circular], + startColumn: 1, + startLine: 48, + text: '| ----- ', + type: 'tableDelimiter', + }, + { + children: [ + { + children: [], + endColumn: 10, + endLine: 48, + parent: [Circular], + startColumn: 9, + startLine: 48, + text: '|', + type: 'tableCellDivider', + }, + { + children: [], + endColumn: 11, + endLine: 48, + parent: [Circular], + startColumn: 10, + startLine: 48, + text: ' ', + type: 'whitespace', + }, + { + children: [ + { + children: [], + endColumn: 18, + endLine: 48, + parent: [Circular], + startColumn: 11, + startLine: 48, + text: '-------', + type: 'tableDelimiterFiller', + }, + ], + endColumn: 18, + endLine: 48, + parent: [Circular], + startColumn: 11, + startLine: 48, + text: '-------', + type: 'tableContent', + }, + { + children: [], + endColumn: 19, + endLine: 48, + parent: [Circular], + startColumn: 18, + startLine: 48, + text: ' ', + type: 'whitespace', + }, + { + children: [], + endColumn: 20, + endLine: 48, + parent: [Circular], + startColumn: 19, + startLine: 48, + text: '|', + type: 'tableCellDivider', + }, + ], + endColumn: 20, + endLine: 48, + parent: [Circular], + startColumn: 9, + startLine: 48, + text: '| ------- |', + type: 'tableDelimiter', + }, + ], + endColumn: 20, + endLine: 48, + parent: [Circular], + startColumn: 1, + startLine: 48, + text: '| ----- | ------- |', + type: 'tableDelimiterRow', + }, + ], + endColumn: 20, + endLine: 48, + parent: [Circular], + startColumn: 1, + startLine: 47, + text: `| Table | Heading |␊ + | ----- | ------- |`, + type: 'tableHead', + }, + { + children: [], + endColumn: 1, + endLine: 49, + parent: [Circular], + startColumn: 20, + startLine: 48, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [ + { + children: [ + { + children: [ + { + children: [], + endColumn: 2, + endLine: 49, + parent: [Circular], + startColumn: 1, + startLine: 49, + text: '|', + type: 'tableCellDivider', + }, + { + children: [], + endColumn: 3, + endLine: 49, + parent: [Circular], + startColumn: 2, + startLine: 49, + text: ' ', + type: 'whitespace', + }, + { + children: [ + { + children: [], + endColumn: 8, + endLine: 49, + parent: [Circular], + startColumn: 3, + startLine: 49, + text: 'Table', + type: 'data', + }, + ], + endColumn: 8, + endLine: 49, + parent: [Circular], + startColumn: 3, + startLine: 49, + text: 'Table', + type: 'tableContent', + }, + { + children: [], + endColumn: 9, + endLine: 49, + parent: [Circular], + startColumn: 8, + startLine: 49, + text: ' ', + type: 'whitespace', + }, + ], + endColumn: 9, + endLine: 49, + parent: [Circular], + startColumn: 1, + startLine: 49, + text: '| Table ', + type: 'tableData', + }, + { + children: [ + { + children: [], + endColumn: 10, + endLine: 49, + parent: [Circular], + startColumn: 9, + startLine: 49, + text: '|', + type: 'tableCellDivider', + }, + { + children: [], + endColumn: 11, + endLine: 49, + parent: [Circular], + startColumn: 10, + startLine: 49, + text: ' ', + type: 'whitespace', + }, + { + children: [ + { + children: [], + endColumn: 15, + endLine: 49, + parent: [Circular], + startColumn: 11, + startLine: 49, + text: 'Cell', + type: 'data', + }, + ], + endColumn: 15, + endLine: 49, + parent: [Circular], + startColumn: 11, + startLine: 49, + text: 'Cell', + type: 'tableContent', + }, + { + children: [], + endColumn: 19, + endLine: 49, + parent: [Circular], + startColumn: 15, + startLine: 49, + text: ' ', + type: 'whitespace', + }, + { + children: [], + endColumn: 20, + endLine: 49, + parent: [Circular], + startColumn: 19, + startLine: 49, + text: '|', + type: 'tableCellDivider', + }, + ], + endColumn: 20, + endLine: 49, + parent: [Circular], + startColumn: 9, + startLine: 49, + text: '| Cell |', + type: 'tableData', + }, + ], + endColumn: 20, + endLine: 49, + parent: [Circular], + startColumn: 1, + startLine: 49, + text: '| Table | Cell |', + type: 'tableRow', + }, + ], + endColumn: 20, + endLine: 49, + parent: [Circular], + startColumn: 1, + startLine: 49, + text: '| Table | Cell |', + type: 'tableBody', + }, + ], + endColumn: 20, + endLine: 49, + parent: null, + startColumn: 1, + startLine: 47, + text: `| Table | Heading |␊ + | ----- | ------- |␊ + | Table | Cell |`, + type: 'table', + }, + { + children: [], + endColumn: 1, + endLine: 50, + parent: null, + startColumn: 20, + startLine: 49, + text: `␊ + `, + type: 'lineEnding', + }, + { + children: [], + endColumn: 1, + endLine: 51, + parent: null, + startColumn: 1, + startLine: 50, + text: `␊ + `, + type: 'lineEndingBlank', + }, + { + children: [ + { + children: [], + endColumn: 35, + endLine: 51, + parent: [Circular], + startColumn: 1, + startLine: 51, + text: '', + type: 'htmlFlowData', + }, + ], + endColumn: 35, + endLine: 51, + parent: null, + startColumn: 1, + startLine: 51, + text: '', + type: 'htmlFlow', + }, + { + children: [], + endColumn: 1, + endLine: 52, + parent: null, + startColumn: 35, + startLine: 51, + text: `␊ + `, + type: 'lineEnding', + }, + ] diff --git a/test/snapshots/markdownlint-test-custom-rules.js.snap b/test/snapshots/markdownlint-test-custom-rules.js.snap index b0f17cd983ac2754fa08e714d3ab53f64b01f9ce..520c2decd82cea2f29a9896c8791d4d5d4247a35 100644 GIT binary patch literal 36854 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 Cza<|4 literal 14718 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 diff --git a/test/snapshots/markdownlint-test-micromark.mjs.md b/test/snapshots/markdownlint-test-micromark.mjs.md index b090ce4f..b29c3a78 100644 --- a/test/snapshots/markdownlint-test-micromark.mjs.md +++ b/test/snapshots/markdownlint-test-micromark.mjs.md @@ -17,6 +17,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 22, endLine: 1, + parent: [Circular], startColumn: 1, startLine: 1, text: 'Every Markdown Syntax', @@ -25,6 +26,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 22, endLine: 1, + parent: [Circular], startColumn: 1, startLine: 1, text: 'Every Markdown Syntax', @@ -34,6 +36,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 2, + parent: [Circular], startColumn: 22, startLine: 1, text: `␊ @@ -46,6 +49,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 22, endLine: 2, + parent: [Circular], startColumn: 1, startLine: 2, text: '=====================', @@ -54,6 +58,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 22, endLine: 2, + parent: [Circular], startColumn: 1, startLine: 2, text: '=====================', @@ -62,6 +67,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 22, endLine: 2, + parent: null, startColumn: 1, startLine: 1, text: `Every Markdown Syntax␊ @@ -72,6 +78,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 3, + parent: null, startColumn: 22, startLine: 2, text: `␊ @@ -82,6 +89,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 4, + parent: null, startColumn: 1, startLine: 3, text: `␊ @@ -94,6 +102,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 4, + parent: [Circular], startColumn: 1, startLine: 4, text: '##', @@ -103,6 +112,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 4, + parent: [Circular], startColumn: 3, startLine: 4, text: ' ', @@ -114,6 +124,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 23, endLine: 4, + parent: [Circular], startColumn: 4, startLine: 4, text: 'Level 2 ATX Heading', @@ -122,6 +133,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 23, endLine: 4, + parent: [Circular], startColumn: 4, startLine: 4, text: 'Level 2 ATX Heading', @@ -130,6 +142,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 23, endLine: 4, + parent: null, startColumn: 1, startLine: 4, text: '## Level 2 ATX Heading', @@ -139,6 +152,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 5, + parent: null, startColumn: 23, startLine: 4, text: `␊ @@ -149,6 +163,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 6, + parent: null, startColumn: 1, startLine: 5, text: `␊ @@ -161,6 +176,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 6, + parent: [Circular], startColumn: 1, startLine: 6, text: '###', @@ -170,6 +186,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 5, endLine: 6, + parent: [Circular], startColumn: 4, startLine: 6, text: ' ', @@ -181,6 +198,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 31, endLine: 6, + parent: [Circular], startColumn: 5, startLine: 6, text: 'Level 3 Closed ATX Heading', @@ -189,6 +207,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 31, endLine: 6, + parent: [Circular], startColumn: 5, startLine: 6, text: 'Level 3 Closed ATX Heading', @@ -198,6 +217,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 32, endLine: 6, + parent: [Circular], startColumn: 31, startLine: 6, text: ' ', @@ -207,6 +227,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 35, endLine: 6, + parent: [Circular], startColumn: 32, startLine: 6, text: '###', @@ -215,6 +236,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 35, endLine: 6, + parent: null, startColumn: 1, startLine: 6, text: '### Level 3 Closed ATX Heading ###', @@ -224,6 +246,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 7, + parent: null, startColumn: 35, startLine: 6, text: `␊ @@ -234,6 +257,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 8, + parent: null, startColumn: 1, startLine: 7, text: `␊ @@ -246,6 +270,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 8, + parent: [Circular], startColumn: 1, startLine: 8, text: '---', @@ -254,6 +279,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 4, endLine: 8, + parent: null, startColumn: 1, startLine: 8, text: '---', @@ -263,6 +289,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 9, + parent: null, startColumn: 4, startLine: 8, text: `␊ @@ -273,6 +300,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 10, + parent: null, startColumn: 1, startLine: 9, text: `␊ @@ -287,6 +315,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 6, endLine: 10, + parent: [Circular], startColumn: 1, startLine: 10, text: 'Text ', @@ -298,6 +327,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 7, endLine: 10, + parent: [Circular], startColumn: 6, startLine: 10, text: '*', @@ -309,6 +339,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 17, endLine: 10, + parent: [Circular], startColumn: 7, startLine: 10, text: 'emphasized', @@ -317,6 +348,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 17, endLine: 10, + parent: [Circular], startColumn: 7, startLine: 10, text: 'emphasized', @@ -326,6 +358,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 18, endLine: 10, + parent: [Circular], startColumn: 17, startLine: 10, text: '*', @@ -334,6 +367,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 18, endLine: 10, + parent: [Circular], startColumn: 6, startLine: 10, text: '*emphasized*', @@ -343,6 +377,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 19, endLine: 10, + parent: [Circular], startColumn: 18, startLine: 10, text: ' ', @@ -354,6 +389,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 21, endLine: 10, + parent: [Circular], startColumn: 19, startLine: 10, text: '**', @@ -365,6 +401,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 27, endLine: 10, + parent: [Circular], startColumn: 21, startLine: 10, text: 'strong', @@ -373,6 +410,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 27, endLine: 10, + parent: [Circular], startColumn: 21, startLine: 10, text: 'strong', @@ -382,6 +420,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 29, endLine: 10, + parent: [Circular], startColumn: 27, startLine: 10, text: '**', @@ -390,6 +429,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 29, endLine: 10, + parent: [Circular], startColumn: 19, startLine: 10, text: '**strong**', @@ -399,6 +439,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 30, endLine: 10, + parent: [Circular], startColumn: 29, startLine: 10, text: ' ', @@ -410,6 +451,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 31, endLine: 10, + parent: [Circular], startColumn: 30, startLine: 10, text: '_', @@ -423,6 +465,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 33, endLine: 10, + parent: [Circular], startColumn: 31, startLine: 10, text: '__', @@ -434,6 +477,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 50, endLine: 10, + parent: [Circular], startColumn: 33, startLine: 10, text: 'emphasized+strong', @@ -442,6 +486,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 50, endLine: 10, + parent: [Circular], startColumn: 33, startLine: 10, text: 'emphasized+strong', @@ -451,6 +496,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 52, endLine: 10, + parent: [Circular], startColumn: 50, startLine: 10, text: '__', @@ -459,6 +505,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 52, endLine: 10, + parent: [Circular], startColumn: 31, startLine: 10, text: '__emphasized+strong__', @@ -467,6 +514,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 52, endLine: 10, + parent: [Circular], startColumn: 31, startLine: 10, text: '__emphasized+strong__', @@ -476,6 +524,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 53, endLine: 10, + parent: [Circular], startColumn: 52, startLine: 10, text: '_', @@ -484,6 +533,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 53, endLine: 10, + parent: [Circular], startColumn: 30, startLine: 10, text: '___emphasized+strong___', @@ -493,6 +543,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 54, endLine: 10, + parent: [Circular], startColumn: 53, startLine: 10, text: '.', @@ -502,6 +553,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 11, + parent: [Circular], startColumn: 54, startLine: 10, text: `␊ @@ -512,6 +564,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 6, endLine: 11, + parent: [Circular], startColumn: 1, startLine: 11, text: 'Text ', @@ -523,6 +576,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 7, endLine: 11, + parent: [Circular], startColumn: 6, startLine: 11, text: '`', @@ -532,6 +586,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 11, endLine: 11, + parent: [Circular], startColumn: 7, startLine: 11, text: 'code', @@ -541,6 +596,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 12, endLine: 11, + parent: [Circular], startColumn: 11, startLine: 11, text: '`', @@ -549,6 +605,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 12, endLine: 11, + parent: [Circular], startColumn: 6, startLine: 11, text: '`code`', @@ -558,6 +615,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 13, endLine: 11, + parent: [Circular], startColumn: 12, startLine: 11, text: ' ', @@ -569,6 +627,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 21, endLine: 11, + parent: [Circular], startColumn: 13, startLine: 11, text: '', @@ -577,6 +636,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 21, endLine: 11, + parent: [Circular], startColumn: 13, startLine: 11, text: '', @@ -586,6 +646,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 25, endLine: 11, + parent: [Circular], startColumn: 21, startLine: 11, text: 'html', @@ -597,6 +658,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 34, endLine: 11, + parent: [Circular], startColumn: 25, startLine: 11, text: '', @@ -605,6 +667,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 34, endLine: 11, + parent: [Circular], startColumn: 25, startLine: 11, text: '', @@ -614,6 +677,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 35, endLine: 11, + parent: [Circular], startColumn: 34, startLine: 11, text: ' ', @@ -625,6 +689,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 36, endLine: 11, + parent: [Circular], startColumn: 35, startLine: 11, text: '<', @@ -634,6 +699,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 60, endLine: 11, + parent: [Circular], startColumn: 36, startLine: 11, text: 'https://example.com/page', @@ -643,6 +709,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 61, endLine: 11, + parent: [Circular], startColumn: 60, startLine: 11, text: '>', @@ -651,6 +718,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 61, endLine: 11, + parent: [Circular], startColumn: 35, startLine: 11, text: '', @@ -660,6 +728,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 62, endLine: 11, + parent: [Circular], startColumn: 61, startLine: 11, text: '.', @@ -669,6 +738,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 12, + parent: [Circular], startColumn: 62, startLine: 11, text: `␊ @@ -679,6 +749,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 6, endLine: 12, + parent: [Circular], startColumn: 1, startLine: 12, text: 'Text ', @@ -692,6 +763,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 7, endLine: 12, + parent: [Circular], startColumn: 6, startLine: 12, text: '[', @@ -703,6 +775,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 11, endLine: 12, + parent: [Circular], startColumn: 7, startLine: 12, text: 'link', @@ -711,6 +784,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 11, endLine: 12, + parent: [Circular], startColumn: 7, startLine: 12, text: 'link', @@ -720,6 +794,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 12, endLine: 12, + parent: [Circular], startColumn: 11, startLine: 12, text: ']', @@ -728,6 +803,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 12, endLine: 12, + parent: [Circular], startColumn: 6, startLine: 12, text: '[link]', @@ -739,6 +815,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 13, endLine: 12, + parent: [Circular], startColumn: 12, startLine: 12, text: '(', @@ -754,6 +831,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 37, endLine: 12, + parent: [Circular], startColumn: 13, startLine: 12, text: 'https://example.com/page', @@ -762,6 +840,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 37, endLine: 12, + parent: [Circular], startColumn: 13, startLine: 12, text: 'https://example.com/page', @@ -770,6 +849,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 37, endLine: 12, + parent: [Circular], startColumn: 13, startLine: 12, text: 'https://example.com/page', @@ -778,6 +858,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 37, endLine: 12, + parent: [Circular], startColumn: 13, startLine: 12, text: 'https://example.com/page', @@ -787,6 +868,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 38, endLine: 12, + parent: [Circular], startColumn: 37, startLine: 12, text: ')', @@ -795,6 +877,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 38, endLine: 12, + parent: [Circular], startColumn: 12, startLine: 12, text: '(https://example.com/page)', @@ -803,6 +886,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 38, endLine: 12, + parent: [Circular], startColumn: 6, startLine: 12, text: '[link](https://example.com/page)', @@ -812,6 +896,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 39, endLine: 12, + parent: [Circular], startColumn: 38, startLine: 12, text: ' ', @@ -825,6 +910,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 40, endLine: 12, + parent: [Circular], startColumn: 39, startLine: 12, text: '[', @@ -836,6 +922,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 44, endLine: 12, + parent: [Circular], startColumn: 40, startLine: 12, text: 'link', @@ -844,6 +931,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 44, endLine: 12, + parent: [Circular], startColumn: 40, startLine: 12, text: 'link', @@ -853,6 +941,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 45, endLine: 12, + parent: [Circular], startColumn: 44, startLine: 12, text: ']', @@ -861,6 +950,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 45, endLine: 12, + parent: [Circular], startColumn: 39, startLine: 12, text: '[link]', @@ -872,6 +962,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 46, endLine: 12, + parent: [Circular], startColumn: 45, startLine: 12, text: '[', @@ -881,6 +972,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 47, endLine: 12, + parent: [Circular], startColumn: 46, startLine: 12, text: ']', @@ -889,6 +981,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 47, endLine: 12, + parent: [Circular], startColumn: 45, startLine: 12, text: '[]', @@ -897,6 +990,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 47, endLine: 12, + parent: [Circular], startColumn: 39, startLine: 12, text: '[link][]', @@ -906,6 +1000,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 48, endLine: 12, + parent: [Circular], startColumn: 47, startLine: 12, text: ' ', @@ -919,6 +1014,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 49, endLine: 12, + parent: [Circular], startColumn: 48, startLine: 12, text: '[', @@ -930,6 +1026,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 53, endLine: 12, + parent: [Circular], startColumn: 49, startLine: 12, text: 'link', @@ -938,6 +1035,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 53, endLine: 12, + parent: [Circular], startColumn: 49, startLine: 12, text: 'link', @@ -947,6 +1045,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 54, endLine: 12, + parent: [Circular], startColumn: 53, startLine: 12, text: ']', @@ -955,6 +1054,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 54, endLine: 12, + parent: [Circular], startColumn: 48, startLine: 12, text: '[link]', @@ -963,6 +1063,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 54, endLine: 12, + parent: [Circular], startColumn: 48, startLine: 12, text: '[link]', @@ -972,6 +1073,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 55, endLine: 12, + parent: [Circular], startColumn: 54, startLine: 12, text: ' ', @@ -985,6 +1087,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 56, endLine: 12, + parent: [Circular], startColumn: 55, startLine: 12, text: '!', @@ -994,6 +1097,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 57, endLine: 12, + parent: [Circular], startColumn: 56, startLine: 12, text: '[', @@ -1005,6 +1109,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 62, endLine: 12, + parent: [Circular], startColumn: 57, startLine: 12, text: 'image', @@ -1013,6 +1118,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 62, endLine: 12, + parent: [Circular], startColumn: 57, startLine: 12, text: 'image', @@ -1022,6 +1128,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 63, endLine: 12, + parent: [Circular], startColumn: 62, startLine: 12, text: ']', @@ -1030,6 +1137,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 63, endLine: 12, + parent: [Circular], startColumn: 55, startLine: 12, text: '![image]', @@ -1041,6 +1149,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 64, endLine: 12, + parent: [Circular], startColumn: 63, startLine: 12, text: '[', @@ -1052,6 +1161,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 68, endLine: 12, + parent: [Circular], startColumn: 64, startLine: 12, text: 'link', @@ -1060,6 +1170,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 68, endLine: 12, + parent: [Circular], startColumn: 64, startLine: 12, text: 'link', @@ -1069,6 +1180,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 69, endLine: 12, + parent: [Circular], startColumn: 68, startLine: 12, text: ']', @@ -1077,6 +1189,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 69, endLine: 12, + parent: [Circular], startColumn: 63, startLine: 12, text: '[link]', @@ -1085,6 +1198,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 69, endLine: 12, + parent: [Circular], startColumn: 55, startLine: 12, text: '![image][link]', @@ -1094,6 +1208,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 70, endLine: 12, + parent: [Circular], startColumn: 69, startLine: 12, text: '.', @@ -1103,6 +1218,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 13, + parent: [Circular], startColumn: 70, startLine: 12, text: `␊ @@ -1113,6 +1229,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 6, endLine: 13, + parent: [Circular], startColumn: 1, startLine: 13, text: 'Text ', @@ -1124,6 +1241,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 30, endLine: 13, + parent: [Circular], startColumn: 6, startLine: 13, text: 'https://example.com/page', @@ -1132,6 +1250,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 30, endLine: 13, + parent: [Circular], startColumn: 6, startLine: 13, text: 'https://example.com/page', @@ -1141,6 +1260,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 31, endLine: 13, + parent: [Circular], startColumn: 30, startLine: 13, text: '.', @@ -1149,6 +1269,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 31, endLine: 13, + parent: [Circular], startColumn: 1, startLine: 10, text: `Text *emphasized* **strong** ___emphasized+strong___.␊ @@ -1160,6 +1281,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 31, endLine: 13, + parent: null, startColumn: 1, startLine: 10, text: `Text *emphasized* **strong** ___emphasized+strong___.␊ @@ -1172,6 +1294,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 14, + parent: null, startColumn: 31, startLine: 13, text: `␊ @@ -1182,6 +1305,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 15, + parent: null, startColumn: 1, startLine: 14, text: `␊ @@ -1196,6 +1320,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 5, endLine: 15, + parent: [Circular], startColumn: 1, startLine: 15, text: 'Hard', @@ -1205,6 +1330,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 7, endLine: 15, + parent: [Circular], startColumn: 5, startLine: 15, text: ' ', @@ -1214,6 +1340,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 16, + parent: [Circular], startColumn: 7, startLine: 15, text: `␊ @@ -1224,6 +1351,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 11, endLine: 16, + parent: [Circular], startColumn: 1, startLine: 16, text: 'line break', @@ -1232,6 +1360,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 11, endLine: 16, + parent: [Circular], startColumn: 1, startLine: 15, text: `Hard ␊ @@ -1241,6 +1370,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 11, endLine: 16, + parent: null, startColumn: 1, startLine: 15, text: `Hard ␊ @@ -1251,6 +1381,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 17, + parent: null, startColumn: 11, startLine: 16, text: `␊ @@ -1261,6 +1392,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 18, + parent: null, startColumn: 1, startLine: 17, text: `␊ @@ -1277,6 +1409,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 2, endLine: 18, + parent: [Circular], startColumn: 1, startLine: 18, text: '[', @@ -1288,6 +1421,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 6, endLine: 18, + parent: [Circular], startColumn: 2, startLine: 18, text: 'link', @@ -1296,6 +1430,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 6, endLine: 18, + parent: [Circular], startColumn: 2, startLine: 18, text: 'link', @@ -1305,6 +1440,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 7, endLine: 18, + parent: [Circular], startColumn: 6, startLine: 18, text: ']', @@ -1313,6 +1449,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 7, endLine: 18, + parent: [Circular], startColumn: 1, startLine: 18, text: '[link]', @@ -1322,6 +1459,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 8, endLine: 18, + parent: [Circular], startColumn: 7, startLine: 18, text: ':', @@ -1331,6 +1469,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 9, endLine: 18, + parent: [Circular], startColumn: 8, startLine: 18, text: ' ', @@ -1346,6 +1485,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 33, endLine: 18, + parent: [Circular], startColumn: 9, startLine: 18, text: 'https://example.com/page', @@ -1354,6 +1494,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 33, endLine: 18, + parent: [Circular], startColumn: 9, startLine: 18, text: 'https://example.com/page', @@ -1362,6 +1503,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 33, endLine: 18, + parent: [Circular], startColumn: 9, startLine: 18, text: 'https://example.com/page', @@ -1370,6 +1512,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 33, endLine: 18, + parent: [Circular], startColumn: 9, startLine: 18, text: 'https://example.com/page', @@ -1379,6 +1522,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 34, endLine: 18, + parent: [Circular], startColumn: 33, startLine: 18, text: ' ', @@ -1390,6 +1534,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 35, endLine: 18, + parent: [Circular], startColumn: 34, startLine: 18, text: '"', @@ -1401,6 +1546,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 40, endLine: 18, + parent: [Circular], startColumn: 35, startLine: 18, text: 'Title', @@ -1409,6 +1555,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 40, endLine: 18, + parent: [Circular], startColumn: 35, startLine: 18, text: 'Title', @@ -1418,6 +1565,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 41, endLine: 18, + parent: [Circular], startColumn: 40, startLine: 18, text: '"', @@ -1426,6 +1574,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 41, endLine: 18, + parent: [Circular], startColumn: 34, startLine: 18, text: '"Title"', @@ -1434,6 +1583,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 41, endLine: 18, + parent: [Circular], startColumn: 1, startLine: 18, text: '[link]: https://example.com/page "Title"', @@ -1442,6 +1592,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 41, endLine: 18, + parent: null, startColumn: 1, startLine: 18, text: '[link]: https://example.com/page "Title"', @@ -1451,6 +1602,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 19, + parent: null, startColumn: 41, startLine: 18, text: `␊ @@ -1461,6 +1613,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 20, + parent: null, startColumn: 1, startLine: 19, text: `␊ @@ -1475,6 +1628,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 2, endLine: 20, + parent: [Circular], startColumn: 1, startLine: 20, text: '>', @@ -1484,6 +1638,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 20, + parent: [Circular], startColumn: 2, startLine: 20, text: ' ', @@ -1492,6 +1647,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 3, endLine: 20, + parent: [Circular], startColumn: 1, startLine: 20, text: '> ', @@ -1505,6 +1661,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 14, endLine: 20, + parent: [Circular], startColumn: 3, startLine: 20, text: 'Block quote', @@ -1513,6 +1670,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 14, endLine: 20, + parent: [Circular], startColumn: 3, startLine: 20, text: 'Block quote', @@ -1521,6 +1679,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 14, endLine: 20, + parent: [Circular], startColumn: 3, startLine: 20, text: 'Block quote', @@ -1530,6 +1689,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 21, + parent: [Circular], startColumn: 14, startLine: 20, text: `␊ @@ -1542,6 +1702,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 2, endLine: 21, + parent: [Circular], startColumn: 1, startLine: 21, text: '>', @@ -1551,6 +1712,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 21, + parent: [Circular], startColumn: 2, startLine: 21, text: ' ', @@ -1559,6 +1721,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 3, endLine: 21, + parent: [Circular], startColumn: 1, startLine: 21, text: '> ', @@ -1572,6 +1735,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 21, + parent: [Circular], startColumn: 3, startLine: 21, text: '>', @@ -1581,6 +1745,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 5, endLine: 21, + parent: [Circular], startColumn: 4, startLine: 21, text: ' ', @@ -1589,6 +1754,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 5, endLine: 21, + parent: [Circular], startColumn: 3, startLine: 21, text: '> ', @@ -1602,6 +1768,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 11, endLine: 21, + parent: [Circular], startColumn: 5, startLine: 21, text: 'Nested', @@ -1610,6 +1777,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 11, endLine: 21, + parent: [Circular], startColumn: 5, startLine: 21, text: 'Nested', @@ -1618,6 +1786,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 11, endLine: 21, + parent: [Circular], startColumn: 5, startLine: 21, text: 'Nested', @@ -1626,6 +1795,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 11, endLine: 21, + parent: [Circular], startColumn: 3, startLine: 21, text: '', @@ -1634,6 +1804,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 11, endLine: 21, + parent: null, startColumn: 1, startLine: 20, text: '', @@ -1643,6 +1814,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 22, + parent: null, startColumn: 11, startLine: 21, text: `␊ @@ -1653,6 +1825,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 23, + parent: null, startColumn: 1, startLine: 22, text: `␊ @@ -1667,6 +1840,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 2, endLine: 23, + parent: [Circular], startColumn: 1, startLine: 23, text: '-', @@ -1676,6 +1850,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 23, + parent: [Circular], startColumn: 2, startLine: 23, text: ' ', @@ -1684,6 +1859,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 3, endLine: 23, + parent: [Circular], startColumn: 1, startLine: 23, text: '- ', @@ -1697,6 +1873,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 12, endLine: 23, + parent: [Circular], startColumn: 3, startLine: 23, text: 'Unordered', @@ -1705,6 +1882,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 12, endLine: 23, + parent: [Circular], startColumn: 3, startLine: 23, text: 'Unordered', @@ -1713,6 +1891,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 12, endLine: 23, + parent: [Circular], startColumn: 3, startLine: 23, text: 'Unordered', @@ -1722,6 +1901,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 24, + parent: [Circular], startColumn: 12, startLine: 23, text: `␊ @@ -1734,6 +1914,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 2, endLine: 24, + parent: [Circular], startColumn: 1, startLine: 24, text: '-', @@ -1743,6 +1924,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 24, + parent: [Circular], startColumn: 2, startLine: 24, text: ' ', @@ -1751,6 +1933,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 3, endLine: 24, + parent: [Circular], startColumn: 1, startLine: 24, text: '- ', @@ -1764,6 +1947,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 7, endLine: 24, + parent: [Circular], startColumn: 3, startLine: 24, text: 'List', @@ -1772,6 +1956,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 7, endLine: 24, + parent: [Circular], startColumn: 3, startLine: 24, text: 'List', @@ -1780,6 +1965,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 7, endLine: 24, + parent: [Circular], startColumn: 3, startLine: 24, text: 'List', @@ -1789,6 +1975,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 25, + parent: [Circular], startColumn: 7, startLine: 24, text: `␊ @@ -1799,6 +1986,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 25, + parent: [Circular], startColumn: 1, startLine: 25, text: ' ', @@ -1812,6 +2000,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 25, + parent: [Circular], startColumn: 3, startLine: 25, text: '-', @@ -1821,6 +2010,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 5, endLine: 25, + parent: [Circular], startColumn: 4, startLine: 25, text: ' ', @@ -1829,6 +2019,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 5, endLine: 25, + parent: [Circular], startColumn: 3, startLine: 25, text: '- ', @@ -1842,6 +2033,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 10, endLine: 25, + parent: [Circular], startColumn: 5, startLine: 25, text: 'Items', @@ -1851,6 +2043,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 26, + parent: [Circular], startColumn: 10, startLine: 25, text: `␊ @@ -1861,6 +2054,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 26, + parent: [Circular], startColumn: 1, startLine: 26, text: ' ', @@ -1870,6 +2064,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 5, endLine: 26, + parent: [Circular], startColumn: 3, startLine: 26, text: ' ', @@ -1879,6 +2074,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 13, endLine: 26, + parent: [Circular], startColumn: 5, startLine: 26, text: 'Indented', @@ -1887,6 +2083,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 13, endLine: 26, + parent: [Circular], startColumn: 5, startLine: 25, text: `Items␊ @@ -1896,6 +2093,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 13, endLine: 26, + parent: [Circular], startColumn: 5, startLine: 25, text: `Items␊ @@ -1906,6 +2104,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 27, + parent: [Circular], startColumn: 13, startLine: 26, text: `␊ @@ -1916,6 +2115,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 28, + parent: [Circular], startColumn: 1, startLine: 27, text: `␊ @@ -1926,6 +2126,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 28, + parent: [Circular], startColumn: 1, startLine: 28, text: ' ', @@ -1935,6 +2136,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 5, endLine: 28, + parent: [Circular], startColumn: 3, startLine: 28, text: ' ', @@ -1948,6 +2150,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 12, endLine: 28, + parent: [Circular], startColumn: 5, startLine: 28, text: 'Content', @@ -1956,6 +2159,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 12, endLine: 28, + parent: [Circular], startColumn: 5, startLine: 28, text: 'Content', @@ -1964,6 +2168,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 12, endLine: 28, + parent: [Circular], startColumn: 5, startLine: 28, text: 'Content', @@ -1972,6 +2177,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 12, endLine: 28, + parent: [Circular], startColumn: 3, startLine: 25, text: '', @@ -1980,6 +2186,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 12, endLine: 28, + parent: null, startColumn: 1, startLine: 23, text: '', @@ -1989,6 +2196,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 29, + parent: null, startColumn: 12, startLine: 28, text: `␊ @@ -1999,6 +2207,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 30, + parent: null, startColumn: 1, startLine: 29, text: `␊ @@ -2013,6 +2222,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 2, endLine: 30, + parent: [Circular], startColumn: 1, startLine: 30, text: '1', @@ -2022,6 +2232,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 30, + parent: [Circular], startColumn: 2, startLine: 30, text: '.', @@ -2031,6 +2242,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 30, + parent: [Circular], startColumn: 3, startLine: 30, text: ' ', @@ -2039,6 +2251,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 4, endLine: 30, + parent: [Circular], startColumn: 1, startLine: 30, text: '1. ', @@ -2052,6 +2265,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 11, endLine: 30, + parent: [Circular], startColumn: 4, startLine: 30, text: 'Ordered', @@ -2060,6 +2274,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 11, endLine: 30, + parent: [Circular], startColumn: 4, startLine: 30, text: 'Ordered', @@ -2068,6 +2283,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 11, endLine: 30, + parent: [Circular], startColumn: 4, startLine: 30, text: 'Ordered', @@ -2077,6 +2293,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 31, + parent: [Circular], startColumn: 11, startLine: 30, text: `␊ @@ -2089,6 +2306,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 2, endLine: 31, + parent: [Circular], startColumn: 1, startLine: 31, text: '2', @@ -2098,6 +2316,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 31, + parent: [Circular], startColumn: 2, startLine: 31, text: '.', @@ -2107,6 +2326,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 31, + parent: [Circular], startColumn: 3, startLine: 31, text: ' ', @@ -2115,6 +2335,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 4, endLine: 31, + parent: [Circular], startColumn: 1, startLine: 31, text: '2. ', @@ -2128,6 +2349,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 8, endLine: 31, + parent: [Circular], startColumn: 4, startLine: 31, text: 'List', @@ -2136,6 +2358,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 8, endLine: 31, + parent: [Circular], startColumn: 4, startLine: 31, text: 'List', @@ -2144,6 +2367,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 8, endLine: 31, + parent: [Circular], startColumn: 4, startLine: 31, text: 'List', @@ -2153,6 +2377,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 32, + parent: [Circular], startColumn: 8, startLine: 31, text: `␊ @@ -2163,6 +2388,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 32, + parent: [Circular], startColumn: 1, startLine: 32, text: ' ', @@ -2176,6 +2402,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 5, endLine: 32, + parent: [Circular], startColumn: 4, startLine: 32, text: '1', @@ -2185,6 +2412,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 6, endLine: 32, + parent: [Circular], startColumn: 5, startLine: 32, text: '.', @@ -2194,6 +2422,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 7, endLine: 32, + parent: [Circular], startColumn: 6, startLine: 32, text: ' ', @@ -2202,6 +2431,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 7, endLine: 32, + parent: [Circular], startColumn: 4, startLine: 32, text: '1. ', @@ -2215,6 +2445,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 12, endLine: 32, + parent: [Circular], startColumn: 7, startLine: 32, text: 'Items', @@ -2224,6 +2455,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 33, + parent: [Circular], startColumn: 12, startLine: 32, text: `␊ @@ -2234,6 +2466,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 33, + parent: [Circular], startColumn: 1, startLine: 33, text: ' ', @@ -2243,6 +2476,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 7, endLine: 33, + parent: [Circular], startColumn: 4, startLine: 33, text: ' ', @@ -2252,6 +2486,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 15, endLine: 33, + parent: [Circular], startColumn: 7, startLine: 33, text: 'Indented', @@ -2260,6 +2495,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 15, endLine: 33, + parent: [Circular], startColumn: 7, startLine: 32, text: `Items␊ @@ -2269,6 +2505,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 15, endLine: 33, + parent: [Circular], startColumn: 7, startLine: 32, text: `Items␊ @@ -2279,6 +2516,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 34, + parent: [Circular], startColumn: 15, startLine: 33, text: `␊ @@ -2289,6 +2527,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 35, + parent: [Circular], startColumn: 1, startLine: 34, text: `␊ @@ -2299,6 +2538,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 35, + parent: [Circular], startColumn: 1, startLine: 35, text: ' ', @@ -2308,6 +2548,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 7, endLine: 35, + parent: [Circular], startColumn: 4, startLine: 35, text: ' ', @@ -2321,6 +2562,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 14, endLine: 35, + parent: [Circular], startColumn: 7, startLine: 35, text: 'Content', @@ -2329,6 +2571,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 14, endLine: 35, + parent: [Circular], startColumn: 7, startLine: 35, text: 'Content', @@ -2337,6 +2580,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 14, endLine: 35, + parent: [Circular], startColumn: 7, startLine: 35, text: 'Content', @@ -2345,6 +2589,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 14, endLine: 35, + parent: [Circular], startColumn: 4, startLine: 32, text: '', @@ -2353,6 +2598,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 14, endLine: 35, + parent: null, startColumn: 1, startLine: 30, text: '', @@ -2362,6 +2608,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 36, + parent: null, startColumn: 14, startLine: 35, text: `␊ @@ -2372,6 +2619,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 37, + parent: null, startColumn: 1, startLine: 36, text: `␊ @@ -2386,6 +2634,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 37, + parent: [Circular], startColumn: 1, startLine: 37, text: '```', @@ -2397,6 +2646,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 12, endLine: 37, + parent: [Circular], startColumn: 4, startLine: 37, text: 'markdown', @@ -2405,6 +2655,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 12, endLine: 37, + parent: [Circular], startColumn: 4, startLine: 37, text: 'markdown', @@ -2414,6 +2665,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 13, endLine: 37, + parent: [Circular], startColumn: 12, startLine: 37, text: ' ', @@ -2425,6 +2677,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 20, endLine: 37, + parent: [Circular], startColumn: 13, startLine: 37, text: 'options', @@ -2433,6 +2686,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 20, endLine: 37, + parent: [Circular], startColumn: 13, startLine: 37, text: 'options', @@ -2441,6 +2695,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 20, endLine: 37, + parent: [Circular], startColumn: 1, startLine: 37, text: '```markdown options', @@ -2450,6 +2705,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 38, + parent: [Circular], startColumn: 20, startLine: 37, text: `␊ @@ -2460,6 +2716,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 18, endLine: 38, + parent: [Circular], startColumn: 1, startLine: 38, text: 'Fenced code block', @@ -2469,6 +2726,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 39, + parent: [Circular], startColumn: 18, startLine: 38, text: `␊ @@ -2481,6 +2739,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 39, + parent: [Circular], startColumn: 1, startLine: 39, text: '```', @@ -2489,6 +2748,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 4, endLine: 39, + parent: [Circular], startColumn: 1, startLine: 39, text: '```', @@ -2497,6 +2757,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 4, endLine: 39, + parent: null, startColumn: 1, startLine: 37, text: `\`\`\`markdown options␊ @@ -2508,6 +2769,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 40, + parent: null, startColumn: 4, startLine: 39, text: `␊ @@ -2518,6 +2780,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 41, + parent: null, startColumn: 1, startLine: 40, text: `␊ @@ -2530,6 +2793,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 5, endLine: 41, + parent: [Circular], startColumn: 1, startLine: 41, text: ' ', @@ -2539,6 +2803,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 24, endLine: 41, + parent: [Circular], startColumn: 5, startLine: 41, text: 'Indented code block', @@ -2547,6 +2812,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 24, endLine: 41, + parent: null, startColumn: 1, startLine: 41, text: ' Indented code block', @@ -2556,6 +2822,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 42, + parent: null, startColumn: 24, startLine: 41, text: `␊ @@ -2566,6 +2833,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 43, + parent: null, startColumn: 1, startLine: 42, text: `␊ @@ -2584,6 +2852,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 4, endLine: 43, + parent: [Circular], startColumn: 1, startLine: 43, text: '

', @@ -2592,6 +2861,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 4, endLine: 43, + parent: [Circular], startColumn: 1, startLine: 43, text: '

', @@ -2601,6 +2871,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 44, + parent: [Circular], startColumn: 4, startLine: 43, text: `␊ @@ -2611,6 +2882,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 11, endLine: 44, + parent: [Circular], startColumn: 1, startLine: 44, text: 'HTML block', @@ -2620,6 +2892,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 45, + parent: [Circular], startColumn: 11, startLine: 44, text: `␊ @@ -2632,6 +2905,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 5, endLine: 45, + parent: [Circular], startColumn: 1, startLine: 45, text: '

', @@ -2640,6 +2914,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 5, endLine: 45, + parent: [Circular], startColumn: 1, startLine: 45, text: '

', @@ -2648,6 +2923,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 5, endLine: 45, + parent: [Circular], startColumn: 1, startLine: 43, text: `

␊ @@ -2658,6 +2934,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 5, endLine: 45, + parent: [Circular], startColumn: 1, startLine: 43, text: `

␊ @@ -2668,6 +2945,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 5, endLine: 45, + parent: null, startColumn: 1, startLine: 43, text: `

␊ @@ -2679,6 +2957,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 46, + parent: null, startColumn: 5, startLine: 45, text: `␊ @@ -2689,6 +2968,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 47, + parent: null, startColumn: 1, startLine: 46, text: `␊ @@ -2707,6 +2987,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 2, endLine: 47, + parent: [Circular], startColumn: 1, startLine: 47, text: '|', @@ -2716,6 +2997,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 47, + parent: [Circular], startColumn: 2, startLine: 47, text: ' ', @@ -2727,6 +3009,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 8, endLine: 47, + parent: [Circular], startColumn: 3, startLine: 47, text: 'Table', @@ -2735,6 +3018,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 8, endLine: 47, + parent: [Circular], startColumn: 3, startLine: 47, text: 'Table', @@ -2744,6 +3028,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 9, endLine: 47, + parent: [Circular], startColumn: 8, startLine: 47, text: ' ', @@ -2752,6 +3037,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 9, endLine: 47, + parent: [Circular], startColumn: 1, startLine: 47, text: '| Table ', @@ -2763,6 +3049,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 10, endLine: 47, + parent: [Circular], startColumn: 9, startLine: 47, text: '|', @@ -2772,6 +3059,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 11, endLine: 47, + parent: [Circular], startColumn: 10, startLine: 47, text: ' ', @@ -2783,6 +3071,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 18, endLine: 47, + parent: [Circular], startColumn: 11, startLine: 47, text: 'Heading', @@ -2791,6 +3080,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 18, endLine: 47, + parent: [Circular], startColumn: 11, startLine: 47, text: 'Heading', @@ -2800,6 +3090,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 19, endLine: 47, + parent: [Circular], startColumn: 18, startLine: 47, text: ' ', @@ -2809,6 +3100,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 20, endLine: 47, + parent: [Circular], startColumn: 19, startLine: 47, text: '|', @@ -2817,6 +3109,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 20, endLine: 47, + parent: [Circular], startColumn: 9, startLine: 47, text: '| Heading |', @@ -2825,6 +3118,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 20, endLine: 47, + parent: [Circular], startColumn: 1, startLine: 47, text: '| Table | Heading |', @@ -2834,6 +3128,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 48, + parent: [Circular], startColumn: 20, startLine: 47, text: `␊ @@ -2848,6 +3143,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 2, endLine: 48, + parent: [Circular], startColumn: 1, startLine: 48, text: '|', @@ -2857,6 +3153,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 48, + parent: [Circular], startColumn: 2, startLine: 48, text: ' ', @@ -2868,6 +3165,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 8, endLine: 48, + parent: [Circular], startColumn: 3, startLine: 48, text: '-----', @@ -2876,6 +3174,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 8, endLine: 48, + parent: [Circular], startColumn: 3, startLine: 48, text: '-----', @@ -2885,6 +3184,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 9, endLine: 48, + parent: [Circular], startColumn: 8, startLine: 48, text: ' ', @@ -2893,6 +3193,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 9, endLine: 48, + parent: [Circular], startColumn: 1, startLine: 48, text: '| ----- ', @@ -2904,6 +3205,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 10, endLine: 48, + parent: [Circular], startColumn: 9, startLine: 48, text: '|', @@ -2913,6 +3215,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 11, endLine: 48, + parent: [Circular], startColumn: 10, startLine: 48, text: ' ', @@ -2924,6 +3227,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 18, endLine: 48, + parent: [Circular], startColumn: 11, startLine: 48, text: '-------', @@ -2932,6 +3236,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 18, endLine: 48, + parent: [Circular], startColumn: 11, startLine: 48, text: '-------', @@ -2941,6 +3246,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 19, endLine: 48, + parent: [Circular], startColumn: 18, startLine: 48, text: ' ', @@ -2950,6 +3256,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 20, endLine: 48, + parent: [Circular], startColumn: 19, startLine: 48, text: '|', @@ -2958,6 +3265,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 20, endLine: 48, + parent: [Circular], startColumn: 9, startLine: 48, text: '| ------- |', @@ -2966,6 +3274,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 20, endLine: 48, + parent: [Circular], startColumn: 1, startLine: 48, text: '| ----- | ------- |', @@ -2974,6 +3283,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 20, endLine: 48, + parent: [Circular], startColumn: 1, startLine: 47, text: `| Table | Heading |␊ @@ -2984,6 +3294,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 49, + parent: [Circular], startColumn: 20, startLine: 48, text: `␊ @@ -3000,6 +3311,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 2, endLine: 49, + parent: [Circular], startColumn: 1, startLine: 49, text: '|', @@ -3009,6 +3321,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 3, endLine: 49, + parent: [Circular], startColumn: 2, startLine: 49, text: ' ', @@ -3020,6 +3333,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 8, endLine: 49, + parent: [Circular], startColumn: 3, startLine: 49, text: 'Table', @@ -3028,6 +3342,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 8, endLine: 49, + parent: [Circular], startColumn: 3, startLine: 49, text: 'Table', @@ -3037,6 +3352,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 9, endLine: 49, + parent: [Circular], startColumn: 8, startLine: 49, text: ' ', @@ -3045,6 +3361,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 9, endLine: 49, + parent: [Circular], startColumn: 1, startLine: 49, text: '| Table ', @@ -3056,6 +3373,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 10, endLine: 49, + parent: [Circular], startColumn: 9, startLine: 49, text: '|', @@ -3065,6 +3383,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 11, endLine: 49, + parent: [Circular], startColumn: 10, startLine: 49, text: ' ', @@ -3076,6 +3395,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 15, endLine: 49, + parent: [Circular], startColumn: 11, startLine: 49, text: 'Cell', @@ -3084,6 +3404,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 15, endLine: 49, + parent: [Circular], startColumn: 11, startLine: 49, text: 'Cell', @@ -3093,6 +3414,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 19, endLine: 49, + parent: [Circular], startColumn: 15, startLine: 49, text: ' ', @@ -3102,6 +3424,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 20, endLine: 49, + parent: [Circular], startColumn: 19, startLine: 49, text: '|', @@ -3110,6 +3433,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 20, endLine: 49, + parent: [Circular], startColumn: 9, startLine: 49, text: '| Cell |', @@ -3118,6 +3442,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 20, endLine: 49, + parent: [Circular], startColumn: 1, startLine: 49, text: '| Table | Cell |', @@ -3126,6 +3451,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 20, endLine: 49, + parent: [Circular], startColumn: 1, startLine: 49, text: '| Table | Cell |', @@ -3134,6 +3460,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 20, endLine: 49, + parent: null, startColumn: 1, startLine: 47, text: `| Table | Heading |␊ @@ -3145,6 +3472,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 50, + parent: null, startColumn: 20, startLine: 49, text: `␊ @@ -3155,6 +3483,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 51, + parent: null, startColumn: 1, startLine: 50, text: `␊ @@ -3167,6 +3496,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 35, endLine: 51, + parent: [Circular], startColumn: 1, startLine: 51, text: '', @@ -3175,6 +3505,7 @@ Generated by [AVA](https://avajs.dev). ], endColumn: 35, endLine: 51, + parent: null, startColumn: 1, startLine: 51, text: '', @@ -3184,6 +3515,7 @@ Generated by [AVA](https://avajs.dev). children: [], endColumn: 1, endLine: 52, + parent: null, startColumn: 35, startLine: 51, text: `␊ diff --git a/test/snapshots/markdownlint-test-micromark.mjs.snap b/test/snapshots/markdownlint-test-micromark.mjs.snap index 3db2a9e016a8b7ad1846f9c88818ee0748a5d66b..ff14778de862e003b905f0017924f150b2c9c309 100644 GIT binary patch literal 22390 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 Q%->TpwbLW1?6R}{57xR}tpET3 literal 19368 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 ec~|bho?QRF+|Jwf?H3