From bdd5cdcafeb18b031e4440fb83651129245932f8 Mon Sep 17 00:00:00 2001 From: David Anson Date: Thu, 12 Sep 2024 22:52:30 -0700 Subject: [PATCH] Add snapshot test for markdownit token params passed to custom rules. --- package.json | 2 +- test/markdownlint-test-custom-rules.js | 25 +- .../markdownlint-test-custom-rules.js.md | 3067 +++++++++++++++++ .../markdownlint-test-custom-rules.js.snap | Bin 0 -> 14718 bytes 4 files changed, 3092 insertions(+), 2 deletions(-) create mode 100644 test/snapshots/markdownlint-test-custom-rules.js.md create mode 100644 test/snapshots/markdownlint-test-custom-rules.js.snap diff --git a/package.json b/package.json index 2795f910..038470f7 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "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", - "update-snapshots": "ava --update-snapshots test/markdownlint-test-micromark.mjs test/markdownlint-test-scenarios.js", + "update-snapshots": "ava --update-snapshots test/markdownlint-test-custom-rules.js test/markdownlint-test-micromark.mjs test/markdownlint-test-scenarios.js", "update-snapshots-test-repos": "ava --timeout=10m --update-snapshots test/markdownlint-test-repos-*.js", "upgrade": "npx --yes npm-check-updates --upgrade" }, diff --git a/test/markdownlint-test-custom-rules.js b/test/markdownlint-test-custom-rules.js index e3cb1117..f42b3321 100644 --- a/test/markdownlint-test-custom-rules.js +++ b/test/markdownlint-test-custom-rules.js @@ -622,7 +622,7 @@ test("customRulesParserMicromark", (t) => { }); }); -test("customRulesParamsTokensSameObject", (t) => { +test("customRulesMarkdownItParamsTokensSameObject", (t) => { t.plan(1); // eslint-disable-next-line jsdoc/valid-types /** @type import("../lib/markdownlint").Options */ @@ -647,6 +647,29 @@ test("customRulesParamsTokensSameObject", (t) => { return markdownlint.promises.markdownlint(options).then(() => null); }); +test("customRulesMarkdownItTokensSnapshot", (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": "markdownit", + "function": + (params) => { + t.snapshot(params.parsers.markdownit.tokens, "Unexpected tokens"); + } + } + ], + "files": "./test/every-markdown-syntax.md", + "noInlineConfig": true + }; + return markdownlint.promises.markdownlint(options).then(() => null); +}); + test("customRulesDefinitionStatic", (t) => new Promise((resolve) => { t.plan(2); // eslint-disable-next-line jsdoc/valid-types diff --git a/test/snapshots/markdownlint-test-custom-rules.js.md b/test/snapshots/markdownlint-test-custom-rules.js.md new file mode 100644 index 00000000..fb9a6a44 --- /dev/null +++ b/test/snapshots/markdownlint-test-custom-rules.js.md @@ -0,0 +1,3067 @@ +# Snapshot report for `test/markdownlint-test-custom-rules.js` + +The actual snapshot is saved in `markdownlint-test-custom-rules.js.snap`. + +Generated by [AVA](https://avajs.dev). + +## customRulesMarkdownItTokensSnapshot + +> Unexpected tokens + + [ + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Every Markdown Syntax', + lineNumber: 1, + map: [ + 0, + 2, + ], + markup: '=', + meta: null, + nesting: 1, + tag: 'h1', + type: 'heading_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Every Markdown Syntax', + hidden: false, + info: '', + level: 0, + line: 'Every Markdown Syntax', + lineNumber: 1, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Every Markdown Syntax', + hidden: false, + info: '', + level: 1, + line: 'Every Markdown Syntax', + lineNumber: 1, + map: [ + 0, + 1, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + map: null, + markup: '=', + meta: null, + nesting: -1, + tag: 'h1', + type: 'heading_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: '## Level 2 ATX Heading', + lineNumber: 4, + map: [ + 3, + 4, + ], + markup: '##', + meta: null, + nesting: 1, + tag: 'h2', + type: 'heading_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Level 2 ATX Heading', + hidden: false, + info: '', + level: 0, + line: '## Level 2 ATX Heading', + lineNumber: 4, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Level 2 ATX Heading', + hidden: false, + info: '', + level: 1, + line: '## Level 2 ATX Heading', + lineNumber: 4, + map: [ + 3, + 4, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + map: null, + markup: '##', + meta: null, + nesting: -1, + tag: 'h2', + type: 'heading_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: '### Level 3 Closed ATX Heading ###', + lineNumber: 6, + map: [ + 5, + 6, + ], + markup: '###', + meta: null, + nesting: 1, + tag: 'h3', + type: 'heading_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Level 3 Closed ATX Heading', + hidden: false, + info: '', + level: 0, + line: '### Level 3 Closed ATX Heading ###', + lineNumber: 6, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Level 3 Closed ATX Heading', + hidden: false, + info: '', + level: 1, + line: '### Level 3 Closed ATX Heading ###', + lineNumber: 6, + map: [ + 5, + 6, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + map: null, + markup: '###', + meta: null, + nesting: -1, + tag: 'h3', + type: 'heading_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: '---', + lineNumber: 8, + map: [ + 7, + 8, + ], + markup: '---', + meta: null, + nesting: 0, + tag: 'hr', + type: 'hr', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: [ + 9, + 13, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'p', + type: 'paragraph_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Text ', + hidden: false, + info: '', + level: 0, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '*', + meta: null, + nesting: 1, + tag: 'em', + type: 'em_open', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'emphasized', + hidden: false, + info: '', + level: 1, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '*', + meta: null, + nesting: -1, + tag: 'em', + type: 'em_close', + }, + Token { + attrs: null, + block: false, + children: null, + content: ' ', + hidden: false, + info: '', + level: 0, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '**', + meta: null, + nesting: 1, + tag: 'strong', + type: 'strong_open', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'strong', + hidden: false, + info: '', + level: 1, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '**', + meta: null, + nesting: -1, + tag: 'strong', + type: 'strong_close', + }, + Token { + attrs: null, + block: false, + children: null, + content: ' ', + hidden: false, + info: '', + level: 0, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '_', + meta: null, + nesting: 1, + tag: 'em', + type: 'em_open', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '__', + meta: null, + nesting: 1, + tag: 'strong', + type: 'strong_open', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'emphasized+strong', + hidden: false, + info: '', + level: 2, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '__', + meta: null, + nesting: -1, + tag: 'strong', + type: 'strong_close', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '_', + meta: null, + nesting: -1, + tag: 'em', + type: 'em_close', + }, + Token { + attrs: null, + block: false, + children: null, + content: '.', + hidden: false, + info: '', + level: 0, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: 'br', + type: 'softbreak', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'Text ', + hidden: false, + info: '', + level: 0, + line: 'Text `code` html .', + lineNumber: 11, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'code', + hidden: false, + info: '', + level: 0, + line: 'Text `code` html .', + lineNumber: 11, + map: null, + markup: '`', + meta: null, + nesting: 0, + tag: 'code', + type: 'code_inline', + }, + Token { + attrs: null, + block: false, + children: null, + content: ' ', + hidden: false, + info: '', + level: 0, + line: 'Text `code` html .', + lineNumber: 11, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text `code` html .', + lineNumber: 11, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'html_inline', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'html', + hidden: false, + info: '', + level: 0, + line: 'Text `code` html .', + lineNumber: 11, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text `code` html .', + lineNumber: 11, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'html_inline', + }, + Token { + attrs: null, + block: false, + children: null, + content: ' ', + hidden: false, + info: '', + level: 0, + line: 'Text `code` html .', + lineNumber: 11, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: [ + [ + 'href', + 'https://example.com/page', + ], + ], + block: false, + children: null, + content: '', + hidden: false, + info: 'auto', + level: 0, + line: 'Text `code` html .', + lineNumber: 11, + map: null, + markup: 'autolink', + meta: null, + nesting: 1, + tag: 'a', + type: 'link_open', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'https://example.com/page', + hidden: false, + info: '', + level: 1, + line: 'Text `code` html .', + lineNumber: 11, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: 'auto', + level: 0, + line: 'Text `code` html .', + lineNumber: 11, + map: null, + markup: 'autolink', + meta: null, + nesting: -1, + tag: 'a', + type: 'link_close', + }, + Token { + attrs: null, + block: false, + children: null, + content: '.', + hidden: false, + info: '', + level: 0, + line: 'Text `code` html .', + lineNumber: 11, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text `code` html .', + lineNumber: 11, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: 'br', + type: 'softbreak', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'Text ', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: [ + [ + 'href', + 'https://example.com/page', + ], + ], + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 1, + tag: 'a', + type: 'link_open', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'link', + hidden: false, + info: '', + level: 1, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'a', + type: 'link_close', + }, + Token { + attrs: null, + block: false, + children: null, + content: ' ', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: [ + [ + 'href', + 'https://example.com/page', + ], + [ + 'title', + 'Title', + ], + ], + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 1, + tag: 'a', + type: 'link_open', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'link', + hidden: false, + info: '', + level: 1, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'a', + type: 'link_close', + }, + Token { + attrs: null, + block: false, + children: null, + content: ' ', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: [ + [ + 'href', + 'https://example.com/page', + ], + [ + 'title', + 'Title', + ], + ], + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 1, + tag: 'a', + type: 'link_open', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'link', + hidden: false, + info: '', + level: 1, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'a', + type: 'link_close', + }, + Token { + attrs: null, + block: false, + children: null, + content: ' ', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: [ + [ + 'src', + 'https://example.com/page', + ], + [ + 'alt', + '', + ], + [ + 'title', + 'Title', + ], + ], + block: false, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'image', + hidden: false, + info: '', + level: 0, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'image', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: 'img', + type: 'image', + }, + Token { + attrs: null, + block: false, + children: null, + content: '.', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Text [link](https://example.com/page) [link][] [link] ![image][link].', + lineNumber: 12, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: 'br', + type: 'softbreak', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'Text https://example.com/page.', + hidden: false, + info: '', + level: 0, + line: 'Text https://example.com/page.', + lineNumber: 13, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: `Text *emphasized* **strong** ___emphasized+strong___.␊ + Text \`code\` html .␊ + Text [link](https://example.com/page) [link][] [link] ![image][link].␊ + Text https://example.com/page.`, + hidden: false, + info: '', + level: 1, + line: 'Text *emphasized* **strong** ___emphasized+strong___.', + lineNumber: 10, + map: [ + 9, + 13, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'p', + type: 'paragraph_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Hard ', + lineNumber: 15, + map: [ + 14, + 16, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'p', + type: 'paragraph_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Hard', + hidden: false, + info: '', + level: 0, + line: 'Hard ', + lineNumber: 15, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: 'Hard ', + lineNumber: 15, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: 'br', + type: 'hardbreak', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'line break', + hidden: false, + info: '', + level: 0, + line: 'line break', + lineNumber: 16, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: `Hard ␊ + line break`, + hidden: false, + info: '', + level: 1, + line: 'Hard ', + lineNumber: 15, + map: [ + 14, + 16, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'p', + type: 'paragraph_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: '> Block quote', + lineNumber: 20, + map: [ + 19, + 21, + ], + markup: '>', + meta: null, + nesting: 1, + tag: 'blockquote', + type: 'blockquote_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + line: '> Block quote', + lineNumber: 20, + map: [ + 19, + 20, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'p', + type: 'paragraph_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Block quote', + hidden: false, + info: '', + level: 0, + line: '> Block quote', + lineNumber: 20, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Block quote', + hidden: false, + info: '', + level: 2, + line: '> Block quote', + lineNumber: 20, + map: [ + 19, + 20, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'p', + type: 'paragraph_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + line: '> > Nested', + lineNumber: 21, + map: [ + 20, + 21, + ], + markup: '>', + meta: null, + nesting: 1, + tag: 'blockquote', + type: 'blockquote_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 2, + line: '> > Nested', + lineNumber: 21, + map: [ + 20, + 21, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'p', + type: 'paragraph_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Nested', + hidden: false, + info: '', + level: 0, + line: '> > Nested', + lineNumber: 21, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Nested', + hidden: false, + info: '', + level: 3, + line: '> > Nested', + lineNumber: 21, + map: [ + 20, + 21, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 2, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'p', + type: 'paragraph_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + map: null, + markup: '>', + meta: null, + nesting: -1, + tag: 'blockquote', + type: 'blockquote_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + map: null, + markup: '>', + meta: null, + nesting: -1, + tag: 'blockquote', + type: 'blockquote_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: '- Unordered', + lineNumber: 23, + map: [ + 22, + 28, + ], + markup: '-', + meta: null, + nesting: 1, + tag: 'ul', + type: 'bullet_list_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + line: '- Unordered', + lineNumber: 23, + map: [ + 22, + 23, + ], + markup: '-', + meta: null, + nesting: 1, + tag: 'li', + type: 'list_item_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: true, + info: '', + level: 2, + line: '- Unordered', + lineNumber: 23, + map: [ + 22, + 23, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'p', + type: 'paragraph_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Unordered', + hidden: false, + info: '', + level: 0, + line: '- Unordered', + lineNumber: 23, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Unordered', + hidden: false, + info: '', + level: 3, + line: '- Unordered', + lineNumber: 23, + map: [ + 22, + 23, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: true, + info: '', + level: 2, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'p', + type: 'paragraph_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + map: null, + markup: '-', + meta: null, + nesting: -1, + tag: 'li', + type: 'list_item_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + line: '- List', + lineNumber: 24, + map: [ + 23, + 28, + ], + markup: '-', + meta: null, + nesting: 1, + tag: 'li', + type: 'list_item_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: true, + info: '', + level: 2, + line: '- List', + lineNumber: 24, + map: [ + 23, + 24, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'p', + type: 'paragraph_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'List', + hidden: false, + info: '', + level: 0, + line: '- List', + lineNumber: 24, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'List', + hidden: false, + info: '', + level: 3, + line: '- List', + lineNumber: 24, + map: [ + 23, + 24, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: true, + info: '', + level: 2, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'p', + type: 'paragraph_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 2, + line: ' - Items', + lineNumber: 25, + map: [ + 24, + 28, + ], + markup: '-', + meta: null, + nesting: 1, + tag: 'ul', + type: 'bullet_list_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 3, + line: ' - Items', + lineNumber: 25, + map: [ + 24, + 28, + ], + markup: '-', + meta: null, + nesting: 1, + tag: 'li', + type: 'list_item_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 4, + line: ' - Items', + lineNumber: 25, + map: [ + 24, + 26, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'p', + type: 'paragraph_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Items', + hidden: false, + info: '', + level: 0, + line: ' - Items', + lineNumber: 25, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: ' - Items', + lineNumber: 25, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: 'br', + type: 'softbreak', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'Indented', + hidden: false, + info: '', + level: 0, + line: ' Indented', + lineNumber: 26, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: `Items␊ + Indented`, + hidden: false, + info: '', + level: 5, + line: ' - Items', + lineNumber: 25, + map: [ + 24, + 26, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 4, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'p', + type: 'paragraph_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 4, + line: ' Content', + lineNumber: 28, + map: [ + 27, + 28, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'p', + type: 'paragraph_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Content', + hidden: false, + info: '', + level: 0, + line: ' Content', + lineNumber: 28, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Content', + hidden: false, + info: '', + level: 5, + line: ' Content', + lineNumber: 28, + map: [ + 27, + 28, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 4, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'p', + type: 'paragraph_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 3, + map: null, + markup: '-', + meta: null, + nesting: -1, + tag: 'li', + type: 'list_item_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 2, + map: null, + markup: '-', + meta: null, + nesting: -1, + tag: 'ul', + type: 'bullet_list_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + map: null, + markup: '-', + meta: null, + nesting: -1, + tag: 'li', + type: 'list_item_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + map: null, + markup: '-', + meta: null, + nesting: -1, + tag: 'ul', + type: 'bullet_list_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: '1. Ordered', + lineNumber: 30, + map: [ + 29, + 35, + ], + markup: '.', + meta: null, + nesting: 1, + tag: 'ol', + type: 'ordered_list_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '1', + level: 1, + line: '1. Ordered', + lineNumber: 30, + map: [ + 29, + 30, + ], + markup: '.', + meta: null, + nesting: 1, + tag: 'li', + type: 'list_item_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: true, + info: '', + level: 2, + line: '1. Ordered', + lineNumber: 30, + map: [ + 29, + 30, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'p', + type: 'paragraph_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Ordered', + hidden: false, + info: '', + level: 0, + line: '1. Ordered', + lineNumber: 30, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Ordered', + hidden: false, + info: '', + level: 3, + line: '1. Ordered', + lineNumber: 30, + map: [ + 29, + 30, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: true, + info: '', + level: 2, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'p', + type: 'paragraph_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + map: null, + markup: '.', + meta: null, + nesting: -1, + tag: 'li', + type: 'list_item_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '2', + level: 1, + line: '2. List', + lineNumber: 31, + map: [ + 30, + 35, + ], + markup: '.', + meta: null, + nesting: 1, + tag: 'li', + type: 'list_item_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: true, + info: '', + level: 2, + line: '2. List', + lineNumber: 31, + map: [ + 30, + 31, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'p', + type: 'paragraph_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'List', + hidden: false, + info: '', + level: 0, + line: '2. List', + lineNumber: 31, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'List', + hidden: false, + info: '', + level: 3, + line: '2. List', + lineNumber: 31, + map: [ + 30, + 31, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: true, + info: '', + level: 2, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'p', + type: 'paragraph_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 2, + line: ' 1. Items', + lineNumber: 32, + map: [ + 31, + 35, + ], + markup: '.', + meta: null, + nesting: 1, + tag: 'ol', + type: 'ordered_list_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '1', + level: 3, + line: ' 1. Items', + lineNumber: 32, + map: [ + 31, + 35, + ], + markup: '.', + meta: null, + nesting: 1, + tag: 'li', + type: 'list_item_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 4, + line: ' 1. Items', + lineNumber: 32, + map: [ + 31, + 33, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'p', + type: 'paragraph_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Items', + hidden: false, + info: '', + level: 0, + line: ' 1. Items', + lineNumber: 32, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + Token { + attrs: null, + block: false, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: ' 1. Items', + lineNumber: 32, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: 'br', + type: 'softbreak', + }, + Token { + attrs: null, + block: false, + children: null, + content: 'Indented', + hidden: false, + info: '', + level: 0, + line: ' Indented', + lineNumber: 33, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: `Items␊ + Indented`, + hidden: false, + info: '', + level: 5, + line: ' 1. Items', + lineNumber: 32, + map: [ + 31, + 33, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 4, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'p', + type: 'paragraph_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 4, + line: ' Content', + lineNumber: 35, + map: [ + 34, + 35, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'p', + type: 'paragraph_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Content', + hidden: false, + info: '', + level: 0, + line: ' Content', + lineNumber: 35, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Content', + hidden: false, + info: '', + level: 5, + line: ' Content', + lineNumber: 35, + map: [ + 34, + 35, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 4, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'p', + type: 'paragraph_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 3, + map: null, + markup: '.', + meta: null, + nesting: -1, + tag: 'li', + type: 'list_item_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 2, + map: null, + markup: '.', + meta: null, + nesting: -1, + tag: 'ol', + type: 'ordered_list_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + map: null, + markup: '.', + meta: null, + nesting: -1, + tag: 'li', + type: 'list_item_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + map: null, + markup: '.', + meta: null, + nesting: -1, + tag: 'ol', + type: 'ordered_list_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: `Fenced code block␊ + `, + hidden: false, + info: 'markdown options', + level: 0, + line: '```markdown options', + lineNumber: 37, + map: [ + 36, + 39, + ], + markup: '```', + meta: null, + nesting: 0, + tag: 'code', + type: 'fence', + }, + Token { + attrs: null, + block: true, + children: null, + content: `Indented code block␊ + `, + hidden: false, + info: '', + level: 0, + line: ' Indented code block', + lineNumber: 41, + map: [ + 40, + 41, + ], + markup: '', + meta: null, + nesting: 0, + tag: 'code', + type: 'code_block', + }, + Token { + attrs: null, + block: true, + children: null, + content: `

␊ + HTML block␊ +

␊ + `, + hidden: false, + info: '', + level: 0, + line: '

', + lineNumber: 43, + map: [ + 42, + 45, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'html_block', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + line: '| Table | Heading |', + lineNumber: 47, + map: [ + 46, + 49, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'table', + type: 'table_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + line: '| Table | Heading |', + lineNumber: 47, + map: [ + 46, + 47, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'thead', + type: 'thead_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 2, + line: '| Table | Heading |', + lineNumber: 47, + map: [ + 46, + 47, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'tr', + type: 'tr_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 3, + line: '| Table | Heading |', + lineNumber: 47, + map: [ + 46, + 47, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'th', + type: 'th_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Table', + hidden: false, + info: '', + level: 0, + line: '| Table | Heading |', + lineNumber: 47, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Table', + hidden: false, + info: '', + level: 4, + line: '| Table | Heading |', + lineNumber: 47, + map: [ + 46, + 47, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 3, + line: '| Table | Heading |', + lineNumber: 47, + map: [ + 46, + 47, + ], + markup: '', + meta: null, + nesting: -1, + tag: 'th', + type: 'th_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 3, + line: '| Table | Heading |', + lineNumber: 47, + map: [ + 46, + 47, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'th', + type: 'th_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Heading', + hidden: false, + info: '', + level: 0, + line: '| Table | Heading |', + lineNumber: 47, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Heading', + hidden: false, + info: '', + level: 4, + line: '| Table | Heading |', + lineNumber: 47, + map: [ + 46, + 47, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 3, + line: '| Table | Heading |', + lineNumber: 47, + map: [ + 46, + 47, + ], + markup: '', + meta: null, + nesting: -1, + tag: 'th', + type: 'th_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 2, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'tr', + type: 'tr_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'thead', + type: 'thead_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + line: '| Table | Cell |', + lineNumber: 49, + map: [ + 48, + 49, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'tbody', + type: 'tbody_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 2, + line: '| Table | Cell |', + lineNumber: 49, + map: [ + 48, + 49, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'tr', + type: 'tr_open', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 3, + line: '| Table | Cell |', + lineNumber: 49, + map: [ + 48, + 49, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'td', + type: 'td_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Table', + hidden: false, + info: '', + level: 0, + line: '| Table | Cell |', + lineNumber: 49, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Table', + hidden: false, + info: '', + level: 4, + line: '| Table | Cell |', + lineNumber: 49, + map: [ + 48, + 49, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 3, + line: '| Table | Cell |', + lineNumber: 49, + map: [ + 48, + 49, + ], + markup: '', + meta: null, + nesting: -1, + tag: 'td', + type: 'td_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 3, + line: '| Table | Cell |', + lineNumber: 49, + map: [ + 48, + 49, + ], + markup: '', + meta: null, + nesting: 1, + tag: 'td', + type: 'td_open', + }, + Token { + attrs: null, + block: true, + children: [ + Token { + attrs: null, + block: false, + children: null, + content: 'Cell', + hidden: false, + info: '', + level: 0, + line: '| Table | Cell |', + lineNumber: 49, + map: null, + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'text', + }, + ], + content: 'Cell', + hidden: false, + info: '', + level: 4, + line: '| Table | Cell |', + lineNumber: 49, + map: [ + 48, + 49, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'inline', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 3, + line: '| Table | Cell |', + lineNumber: 49, + map: [ + 48, + 49, + ], + markup: '', + meta: null, + nesting: -1, + tag: 'td', + type: 'td_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 2, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'tr', + type: 'tr_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 1, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'tbody', + type: 'tbody_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: '', + hidden: false, + info: '', + level: 0, + map: null, + markup: '', + meta: null, + nesting: -1, + tag: 'table', + type: 'table_close', + }, + Token { + attrs: null, + block: true, + children: null, + content: `␊ + `, + hidden: false, + info: '', + level: 0, + line: '', + lineNumber: 51, + map: [ + 50, + 51, + ], + markup: '', + meta: null, + nesting: 0, + tag: '', + type: 'html_block', + }, + ] diff --git a/test/snapshots/markdownlint-test-custom-rules.js.snap b/test/snapshots/markdownlint-test-custom-rules.js.snap new file mode 100644 index 0000000000000000000000000000000000000000..b0f17cd983ac2754fa08e714d3ab53f64b01f9ce GIT binary patch literal 14718 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 literal 0 HcmV?d00001