--- package.json ---
{
  "name": "marked",
  "description": "A markdown parser built for speed",
  "author": "Christopher Jeffrey",
  "version": "1.2.4",
  "main": "./src/marked.js",
  "browser": "./lib/marked.js",
  "bin": {
    "marked": "bin/marked"
  },
  "man": "./man/marked.1",
  "files": [
    "bin/",
    "lib/",
    "src/",
    "man/",
    "marked.min.js"
  ],
  "repository": "git://github.com/markedjs/marked.git",
  "homepage": "https://marked.js.org",
  "bugs": {
    "url": "http://github.com/markedjs/marked/issues"
  },
  "license": "MIT",
  "keywords": [
    "markdown",
    "markup",
    "html"
  ],
  "tags": [
    "markdown",
    "markup",
    "html"
  ],
  "devDependencies": {
    "@babel/core": "^7.12.3",
    "@babel/preset-env": "^7.12.1",
    "@markedjs/html-differ": "^3.0.3",
    "@semantic-release/commit-analyzer": "^8.0.1",
    "@semantic-release/git": "^9.0.0",
    "@semantic-release/github": "^7.1.1",
    "@semantic-release/npm": "^7.0.6",
    "@semantic-release/release-notes-generator": "^9.0.1",
    "cheerio": "^1.0.0-rc.3",
    "commonmark": "0.29.2",
    "eslint": "^7.13.0",
    "eslint-config-standard": "^16.0.1",
    "eslint-plugin-import": "^2.22.1",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-promise": "^4.2.1",
    "eslint-plugin-standard": "^4.0.2",
    "front-matter": "^4.0.2",
    "highlight.js": "^10.3.2",
    "jasmine": "^3.6.3",
    "markdown-it": "12.0.2",
    "node-fetch": "^2.6.1",
    "rollup": "^2.33.1",
    "rollup-plugin-babel": "^4.4.0",
    "rollup-plugin-commonjs": "^10.1.0",
    "rollup-plugin-license": "^2.2.0",
    "semantic-release": "^17.2.2",
    "titleize": "^2.1.0",
    "uglify-js": "^3.11.5",
    "vuln-regex-detector": "^1.3.0"
  },
  "scripts": {
    "test": "jasmine --config=jasmine.json",
    "test:all": "npm test && npm run test:lint",
    "test:unit": "npm test -- test/unit/**/*-spec.js",
    "test:specs": "npm test -- test/specs/**/*-spec.js",
    "test:lint": "eslint bin/marked .",
    "test:redos": "node test/vuln-regex.js",
    "test:update": "node test/update-specs.js",
    "rules": "node test/rules.js",
    "bench": "npm run rollup && node test/bench.js",
    "lint": "eslint --fix bin/marked .",
    "build:reset": "git checkout upstream/master lib/marked.js lib/marked.esm.js marked.min.js",
    "build": "npm run rollup && npm run minify",
    "build:docs": "node build-docs.js",
    "rollup": "npm run rollup:umd && npm run rollup:esm",
    "rollup:umd": "rollup -c rollup.config.js",
    "rollup:esm": "rollup -c rollup.config.esm.js",
    "minify": "uglifyjs lib/marked.js -cm  --comments /Copyright/ -o marked.min.js",
    "preversion": "npm run build && (git diff --quiet || git commit -am build)"
  },
  "engines": {
    "node": ">= 8.16.2"
  }
}
--- grep task list/checklist ---
src/Tokenizer.js:218:        istask,
src/Tokenizer.js:219:        ischecked;
src/Tokenizer.js:280:        // Check for task list items
src/Tokenizer.js:281:        istask = /^\[[ xX]\] /.test(item);
src/Tokenizer.js:282:        ischecked = undefined;
src/Tokenizer.js:283:        if (istask) {
src/Tokenizer.js:284:          ischecked = item[1] !== ' ';
src/Tokenizer.js:291:          task: istask,
src/Tokenizer.js:292:          checked: ischecked,
src/Lexer.js:67:    } else if (this.options.gfm) {
src/Lexer.js:68:      rules.block = block.gfm;
src/Lexer.js:72:        rules.inline = inline.gfm;
src/Lexer.js:163:      // table no leading pipe (gfm)
src/Lexer.js:215:      // table (gfm)
src/Lexer.js:421:      // del (gfm)
src/Lexer.js:436:      // url (gfm)
src/Renderer.js:78:  checkbox(checked) {
src/Renderer.js:80:      + (checked ? 'checked="" ' : '')
src/Renderer.js:81:      + 'disabled="" type="checkbox"'
src/helpers.js:170:    // leading or trailing whitespace is ignored per the gfm spec
src/rules.js:99:block.gfm = merge({}, block.normal, {
src/rules.js:108:block.gfm.nptable = edit(block.gfm.nptable)
src/rules.js:119:block.gfm.table = edit(block.gfm.table)
src/rules.js:316:inline.gfm = merge({}, inline.normal, {
src/rules.js:325:inline.gfm.url = edit(inline.gfm.url, 'i')
src/rules.js:326:  .replace('email', inline.gfm._extended_email)
src/rules.js:332:inline.breaks = merge({}, inline.gfm, {
src/rules.js:334:  text: edit(inline.gfm.text)
src/Parser.js:58:      checked,
src/Parser.js:59:      task,
src/Parser.js:60:      checkbox;
src/Parser.js:134:            checked = item.checked;
src/Parser.js:135:            task = item.task;
src/Parser.js:138:            if (item.task) {
src/Parser.js:139:              checkbox = this.renderer.checkbox(checked);
src/Parser.js:142:                  item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;
src/Parser.js:144:                    item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;
src/Parser.js:149:                    text: checkbox
src/Parser.js:153:                itemBody += checkbox;
src/Parser.js:158:            body += this.renderer.listitem(itemBody, task, checked);
src/defaults.js:5:    gfm: true,
lib/marked.js:85:        gfm: true,
lib/marked.js:308:      // leading or trailing whitespace is ignored per the gfm spec
lib/marked.js:631:            istask,
lib/marked.js:632:            ischecked;
lib/marked.js:685:          } // Check for task list items
lib/marked.js:688:          istask = /^\[[ xX]\] /.test(item);
lib/marked.js:689:          ischecked = undefined;
lib/marked.js:691:          if (istask) {
lib/marked.js:692:            ischecked = item[1] !== ' ';
lib/marked.js:699:            task: istask,
lib/marked.js:700:            checked: ischecked,
lib/marked.js:1170:  block.gfm = merge$1({}, block.normal, {
lib/marked.js:1180:  block.gfm.nptable = edit$1(block.gfm.nptable).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
lib/marked.js:1183:  block.gfm.table = edit$1(block.gfm.table).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
lib/marked.js:1300:  inline.gfm = merge$1({}, inline.normal, {
lib/marked.js:1308:  inline.gfm.url = edit$1(inline.gfm.url, 'i').replace('email', inline.gfm._extended_email).getRegex();
lib/marked.js:1313:  inline.breaks = merge$1({}, inline.gfm, {
lib/marked.js:1315:    text: edit$1(inline.gfm.text).replace('\\b_', '\\b_| {2,}\\n').replace(/\{2,\}/g, '*').getRegex()
lib/marked.js:1384:      } else if (this.options.gfm) {
lib/marked.js:1385:        rules.block = block$1.gfm;
lib/marked.js:1390:          rules.inline = inline$1.gfm;
lib/marked.js:1486:        } // table no leading pipe (gfm)
lib/marked.js:1542:        } // table (gfm)
lib/marked.js:1776:        } // del (gfm)
lib/marked.js:1791:        } // url (gfm)
lib/marked.js:1900:    _proto.checkbox = function checkbox(checked) {
lib/marked.js:1901:      return '<input ' + (checked ? 'checked="" ' : '') + 'disabled="" type="checkbox"' + (this.options.xhtml ? ' /' : '') + '> ';
lib/marked.js:2154:          checked,
lib/marked.js:2155:          task,
lib/marked.js:2156:          checkbox;
lib/marked.js:2240:                checked = item.checked;
lib/marked.js:2241:                task = item.task;
lib/marked.js:2244:                if (item.task) {
lib/marked.js:2245:                  checkbox = this.renderer.checkbox(checked);
lib/marked.js:2249:                      item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;
lib/marked.js:2252:                        item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;
lib/marked.js:2257:                        text: checkbox
lib/marked.js:2261:                    itemBody += checkbox;
lib/marked.js:2266:                body += this.renderer.listitem(itemBody, task, checked);
lib/marked.esm.js:21:    gfm: true,
lib/marked.esm.js:223:    // leading or trailing whitespace is ignored per the gfm spec
lib/marked.esm.js:532:        istask,
lib/marked.esm.js:533:        ischecked;
lib/marked.esm.js:594:        // Check for task list items
lib/marked.esm.js:595:        istask = /^\[[ xX]\] /.test(item);
lib/marked.esm.js:596:        ischecked = undefined;
lib/marked.esm.js:597:        if (istask) {
lib/marked.esm.js:598:          ischecked = item[1] !== ' ';
lib/marked.esm.js:605:          task: istask,
lib/marked.esm.js:606:          checked: ischecked,
lib/marked.esm.js:1088:block.gfm = merge$1({}, block.normal, {
lib/marked.esm.js:1097:block.gfm.nptable = edit$1(block.gfm.nptable)
lib/marked.esm.js:1108:block.gfm.table = edit$1(block.gfm.table)
lib/marked.esm.js:1305:inline.gfm = merge$1({}, inline.normal, {
lib/marked.esm.js:1314:inline.gfm.url = edit$1(inline.gfm.url, 'i')
lib/marked.esm.js:1315:  .replace('email', inline.gfm._extended_email)
lib/marked.esm.js:1321:inline.breaks = merge$1({}, inline.gfm, {
lib/marked.esm.js:1323:  text: edit$1(inline.gfm.text)
lib/marked.esm.js:1399:    } else if (this.options.gfm) {
lib/marked.esm.js:1400:      rules.block = block$1.gfm;
lib/marked.esm.js:1404:        rules.inline = inline$1.gfm;
lib/marked.esm.js:1495:      // table no leading pipe (gfm)
lib/marked.esm.js:1547:      // table (gfm)
lib/marked.esm.js:1750:      // del (gfm)
lib/marked.esm.js:1765:      // url (gfm)
lib/marked.esm.js:1872:  checkbox(checked) {
lib/marked.esm.js:1874:      + (checked ? 'checked="" ' : '')
lib/marked.esm.js:1875:      + 'disabled="" type="checkbox"'
lib/marked.esm.js:2107:      checked,
lib/marked.esm.js:2108:      task,
lib/marked.esm.js:2109:      checkbox;
lib/marked.esm.js:2183:            checked = item.checked;
lib/marked.esm.js:2184:            task = item.task;
lib/marked.esm.js:2187:            if (item.task) {
lib/marked.esm.js:2188:              checkbox = this.renderer.checkbox(checked);
lib/marked.esm.js:2191:                  item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;
lib/marked.esm.js:2193:                    item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;
lib/marked.esm.js:2198:                    text: checkbox
lib/marked.esm.js:2202:                itemBody += checkbox;
lib/marked.esm.js:2207:            body += this.renderer.listitem(itemBody, task, checked);
test/unit/Lexer-spec.js:312:                task: false,
test/unit/Lexer-spec.js:313:                checked: undefined,
test/unit/Lexer-spec.js:326:                task: false,
test/unit/Lexer-spec.js:327:                checked: undefined,
test/unit/Lexer-spec.js:435:    it('task', () => {
test/unit/Lexer-spec.js:448:                task: true,
test/unit/Lexer-spec.js:449:                checked: false
test/unit/Lexer-spec.js:453:                task: true,
test/unit/Lexer-spec.js:454:                checked: true
test/unit/Lexer-spec.js:877:          options: { gfm: true, breaks: true },
test/unit/Lexer-spec.js:978:            options: { gfm: true, mangle: false },
test/unit/Lexer-spec.js:996:            options: { gfm: true, mangle: true },
test/unit/Parser-spec.js:134:                  task: false,
test/unit/Parser-spec.js:135:                  checked: undefined,
test/unit/Parser-spec.js:143:                  task: false,
test/unit/Parser-spec.js:144:                  checked: undefined,
test/unit/Parser-spec.js:172:                  task: false,
test/unit/Parser-spec.js:173:                  checked: undefined,
test/unit/Parser-spec.js:181:                  task: false,
test/unit/Parser-spec.js:182:                  checked: undefined,
test/unit/Parser-spec.js:200:      it('tasks', async() => {
test/unit/Parser-spec.js:210:                  task: true,
test/unit/Parser-spec.js:211:                  checked: false,
test/unit/Parser-spec.js:219:                  task: true,
test/unit/Parser-spec.js:220:                  checked: true,
test/unit/Parser-spec.js:232:  <li><input disabled type="checkbox"> item 1</li>
test/unit/Parser-spec.js:233:  <li><input checked disabled type="checkbox"> item 2</li>
test/unit/Parser-spec.js:248:                  task: false,
test/unit/Parser-spec.js:249:                  checked: undefined,
test/unit/Parser-spec.js:257:                  task: false,
test/unit/Parser-spec.js:258:                  checked: undefined,
test/specs/redos/link_redos.md:1:* 伪类：[:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active)、[:any-link](https://developer.mozilla.org/en-US/docs/Web/CSS/:any-link)、[:blank](https://developer.mozilla.org/en-US/docs/Web/CSS/:blank)、[:checked](https://developer.mozilla.org/en-US/docs/Web/CSS/:checked)、[:current](https://developer.mozilla.org/en-US/docs/Web/CSS/:current)、[:default](https://developer.mozilla.org/en-US/docs/Web/CSS/:default)、[:defined](https://developer.mozilla.org/en-US/docs/Web/CSS/:defined)、[:dir()](https://developer.mozilla.org/en-US/docs/Web/CSS/:dir)、[:disabled](https://developer.mozilla.org/en-US/docs/Web/CSS/:disabled)、[:drop](https://developer.mozilla.org/en-US/docs/Web/CSS/:drop)、[:empty](https://developer.mozilla.org/en-US/docs/Web/CSS/:empty)、[:enabled](https://developer.mozilla.org/en-US/docs/Web/CSS/:enabled)、[:first](https://developer.mozilla.org/en-US/docs/Web/CSS/:first)、[:first-child](https://developer.mozilla.org/en-US/docs/Web/CSS/:first-child)、[:first-of-type](https://developer.mozilla.org/en-US/docs/Web/CSS/:first-of-type)、[:fullscreen](https://developer.mozilla.org/en-US/docs/Web/CSS/:fullscreen)、[:future](https://developer.mozilla.org/en-US/docs/Web/CSS/:future)、[:focus](https://developer.mozilla.org/en-US/docs/Web/CSS/:focus)、[:focus-visible](https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)、[:focus-within](https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-within)、[:has()](https://developer.mozilla.org/en-US/docs/Web/CSS/:has)、[:host](https://developer.mozilla.org/en-US/docs/Web/CSS/:host)、[:host()](https://developer.mozilla.org/en-US/docs/Web/CSS/:host())、[:host-context()](https://developer.mozilla.org/en-US/docs/Web/CSS/:host-context())、[:hover](https://developer.mozilla.org/en-US/docs/Web/CSS/:hover)、[:indeterminate](https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate)、[:in-range](https://developer.mozilla.org/en-US/docs/Web/CSS/:in-range)、[:invalid](https://developer.mozilla.org/en-US/docs/Web/CSS/:invalid)、[:is()](https://developer.mozilla.org/en-US/docs/Web/CSS/:is)、[:lang()](https://developer.mozilla.org/en-US/docs/Web/CSS/:lang)、[:last-child](https://developer.mozilla.org/en-US/docs/Web/CSS/:last-child)、[:last-of-type](https://developer.mozilla.org/en-US/docs/Web/CSS/:last-of-type)、[:left](https://developer.mozilla.org/en-US/docs/Web/CSS/:left)、[:link](https://developer.mozilla.org/en-US/docs/Web/CSS/:link)、[:local-link](https://developer.mozilla.org/en-US/docs/Web/CSS/:local-link)、[:not()](https://developer.mozilla.org/en-US/docs/Web/CSS/:not)、[:nth-child()](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child)、[:nth-col()](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-col)、[:nth-last-child()](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-child)、[:nth-last-col()](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-col)、[:nth-last-of-type()](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-of-type)、[:nth-of-type()](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-of-type)、[:only-child](https://developer.mozilla.org/en-US/docs/Web/CSS/:only-child)、[:only-of-type](https://developer.mozilla.org/en-US/docs/Web/CSS/:only-of-type)、[:optional](https://developer.mozilla.org/en-US/docs/Web/CSS/:optional)、[:out-of-range](https://developer.mozilla.org/en-US/docs/Web/CSS/:out-of-range)、[:past](https://developer.mozilla.org/en-US/docs/Web/CSS/:past)、[:placeholder-shown](https://developer.mozilla.org/en-US/docs/Web/CSS/:placeholder-shown)、[:read-only](https://developer.mozilla.org/en-US/docs/Web/CSS/:read-only)、[:read-write](https://developer.mozilla.org/en-US/docs/Web/CSS/:read-write)、[:required](https://developer.mozilla.org/en-US/docs/Web/CSS/:required)、[:right](https://developer.mozilla.org/en-US/docs/Web/CSS/:right)、[:root](https://developer.mozilla.org/en-US/docs/Web/CSS/:root)、[:scope](https://developer.mozilla.org/en-US/docs/Web/CSS/:scope)、[:target](https://developer.mozilla.org/en-US/docs/Web/CSS/:target)、[:target-within](https://developer.mozilla.org/en-US/docs/Web/CSS/:target-within)、[:user-invalid](https://developer.mozilla.org/en-US/docs/Web/CSS/:user-invalid)、[:valid](https://developer.mozilla.org/en-US/docs/Web/CSS/:valid)、[:visited](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited)、[:where()](https://developer.mozilla.org/en-US/docs/Web/CSS/:where)
test/specs/redos/link_redos.html:2:<li>伪类：<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:active">:active</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:any-link">:any-link</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:blank">:blank</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:checked">:checked</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:current">:current</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:default">:default</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:defined">:defined</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:dir">:dir()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:disabled">:disabled</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:drop">:drop</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:empty">:empty</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:enabled">:enabled</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:first">:first</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:first-child">:first-child</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:first-of-type">:first-of-type</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:fullscreen">:fullscreen</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:future">:future</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:focus">:focus</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible">:focus-visible</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-within">:focus-within</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:has">:has()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:host">:host</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:host()">:host()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:host-context()">:host-context()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:hover">:hover</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate">:indeterminate</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:in-range">:in-range</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:invalid">:invalid</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:is">:is()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:lang">:lang()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:last-child">:last-child</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:last-of-type">:last-of-type</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:left">:left</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:link">:link</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:local-link">:local-link</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:not">:not()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child">:nth-child()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-col">:nth-col()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-child">:nth-last-child()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-col">:nth-last-col()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-of-type">:nth-last-of-type()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-of-type">:nth-of-type()</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:only-child">:only-child</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:only-of-type">:only-of-type</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:optional">:optional</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:out-of-range">:out-of-range</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:past">:past</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:placeholder-shown">:placeholder-shown</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:read-only">:read-only</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:read-write">:read-write</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:required">:required</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:right">:right</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:root">:root</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:scope">:scope</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:target">:target</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:target-within">:target-within</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:user-invalid">:user-invalid</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:valid">:valid</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:visited">:visited</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:where">:where()</a></li>
test/specs/gfm/gfm.0.29.json:52:    "html": "<ul>\n<li><input disabled=\"\" type=\"checkbox\"> foo</li>\n<li><input checked=\"\" disabled=\"\" type=\"checkbox\"> bar</li>\n</ul>",
test/specs/gfm/gfm.0.29.json:58:    "html": "<ul>\n<li><input checked=\"\" disabled=\"\" type=\"checkbox\"> foo\n<ul>\n<li><input disabled=\"\" type=\"checkbox\"> bar</li>\n<li><input checked=\"\" disabled=\"\" type=\"checkbox\"> baz</li>\n</ul>\n</li>\n<li><input disabled=\"\" type=\"checkbox\"> bim</li>\n</ul>",
test/specs/new/toplevel_paragraphs.md:2:gfm: true
test/specs/new/breaks.md:3:gfm: true
test/specs/new/list_loose_tasks.html:6:<p><input type="checkbox" checked="" disabled=""> Task1</p>
test/specs/new/list_loose_tasks.html:9:<p><input type="checkbox" disabled=""></p>
test/specs/new/list_loose_tasks.html:13:<p><input type="checkbox" disabled=""></p>
test/specs/new/nogfm_hashtag.md:2:gfm: false
test/specs/run-spec.js:50:runSpecs('GFM', './gfm', true, { gfm: true, pedantic: false, headerIds: false });
test/specs/run-spec.js:51:runSpecs('CommonMark', './commonmark', true, { gfm: false, pedantic: false, headerIds: false });
test/specs/run-spec.js:52:runSpecs('Original', './original', false, { gfm: false, pedantic: true });
test/bench.js:32:    gfm: false,
test/bench.js:44:    gfm: false,
test/bench.js:57:    gfm: true,
test/bench.js:66:  await bench('es5 marked (gfm)', specs, marked);
test/bench.js:69:    gfm: true,
test/bench.js:78:  await bench('es6 marked (gfm)', specs, es6marked);
test/bench.js:82:    gfm: false,
test/bench.js:94:    gfm: false,
test/update-specs.js:36:    const res = await fetch('https://github.github.com/gfm/');
test/update-specs.js:60:      const html = marked(spec.markdown, { gfm: true, pedantic: false });
test/update-specs.js:65:    fs.writeFileSync(path.resolve(dir, `./gfm.${version}.json`), JSON.stringify(specs, null, 2) + '\n');
test/update-specs.js:73:const gfmDir = path.resolve(__dirname, './specs/gfm');
test/update-specs.js:75:removeFiles(gfmDir);
test/update-specs.js:76:updateCommonmark(commonmarkDir, { gfm: false, pedantic: false, headerIds: false });
test/update-specs.js:77:updateCommonmark(gfmDir, { gfm: true, pedantic: false, headerIds: false });
test/update-specs.js:78:updateGfm(gfmDir);
--- test tree ---
test/.eslintrc.json
test/bench.js
test/helpers/helpers.js
test/helpers/html-differ.js
test/helpers/load.js
test/rules.js
test/specs/commonmark/commonmark.0.29.json
test/specs/gfm/commonmark.0.29.json
test/specs/gfm/gfm.0.29.json
test/specs/new/adjacent_lists.html
test/specs/new/adjacent_lists.md
test/specs/new/autolink_lines.html
test/specs/new/autolink_lines.md
test/specs/new/autolinks.html
test/specs/new/autolinks.md
test/specs/new/blockquote_following_nptable.html
test/specs/new/blockquote_following_nptable.md
test/specs/new/blockquote_following_table.html
test/specs/new/blockquote_following_table.md
test/specs/new/blockquote_list_item.html
test/specs/new/blockquote_list_item.md
test/specs/new/breakline.html
test/specs/new/breakline.md
test/specs/new/breaks.html
test/specs/new/breaks.md
test/specs/new/case_insensitive_refs.html
test/specs/new/case_insensitive_refs.md
test/specs/new/code_compensation_indent.html
test/specs/new/code_compensation_indent.md
test/specs/new/code_consistent_newline.html
test/specs/new/code_consistent_newline.md
test/specs/new/code_following_nptable.html
test/specs/new/code_following_nptable.md
test/specs/new/code_following_table.html
test/specs/new/code_following_table.md
test/specs/new/code_spans.html
test/specs/new/code_spans.md
test/specs/new/codespan_newline.html
test/specs/new/codespan_newline.md
test/specs/new/def_blocks.html
test/specs/new/def_blocks.md
test/specs/new/del_strikethrough.html
test/specs/new/del_strikethrough.md
test/specs/new/double_link.html
test/specs/new/double_link.md
test/specs/new/em_2char.html
test/specs/new/em_2char.md
test/specs/new/em_and_reflinks.html
test/specs/new/em_and_reflinks.md
test/specs/new/em_list_links.html
test/specs/new/em_list_links.md
test/specs/new/em_strong_adjacent.html
test/specs/new/em_strong_adjacent.md
test/specs/new/emphasis_extra tests.html
test/specs/new/emphasis_extra tests.md
test/specs/new/escaped_angles.html
test/specs/new/escaped_angles.md
test/specs/new/fences_breaking_paragraphs.html
test/specs/new/fences_breaking_paragraphs.md
test/specs/new/fences_following_nptable.html
test/specs/new/fences_following_nptable.md
test/specs/new/fences_following_table.html
test/specs/new/fences_following_table.md
test/specs/new/heading_following_nptable.html
test/specs/new/heading_following_nptable.md
test/specs/new/heading_following_table.html
test/specs/new/heading_following_table.md
test/specs/new/headings_id.html
test/specs/new/headings_id.md
test/specs/new/hr_following_nptables.html
test/specs/new/hr_following_nptables.md
test/specs/new/hr_following_tables.html
test/specs/new/hr_following_tables.md
test/specs/new/hr_list_break.html
test/specs/new/hr_list_break.md
test/specs/new/html_comments.html
test/specs/new/html_comments.md
test/specs/new/html_following_nptable.html
test/specs/new/html_following_nptable.md
test/specs/new/html_following_table.html
test/specs/new/html_following_table.md
test/specs/new/html_no_new_line.html
test/specs/new/html_no_new_line.md
test/specs/new/image_links.html
test/specs/new/image_links.md
test/specs/new/image_paren.html
test/specs/new/image_paren.md
test/specs/new/images.html
test/specs/new/images.md
test/specs/new/indented_tables.html
test/specs/new/indented_tables.md
test/specs/new/inlinecode_following_nptables.html
test/specs/new/inlinecode_following_nptables.md
test/specs/new/inlinecode_following_tables.html
test/specs/new/inlinecode_following_tables.md
test/specs/new/lazy_blockquotes.html
test/specs/new/lazy_blockquotes.md
test/specs/new/lheading_following_nptable.html
test/specs/new/lheading_following_nptable.md
test/specs/new/lheading_following_table.html
test/specs/new/lheading_following_table.md
test/specs/new/link_lt.html
test/specs/new/link_lt.md
test/specs/new/link_tick_redos.html
test/specs/new/link_tick_redos.md
test/specs/new/links.html
test/specs/new/links.md
test/specs/new/links_paren.html
test/specs/new/links_paren.md
test/specs/new/list_align_number.html
test/specs/new/list_align_number.md
test/specs/new/list_following_nptable.html
test/specs/new/list_following_nptable.md
test/specs/new/list_following_table.html
test/specs/new/list_following_table.md
test/specs/new/list_item_text.html
test/specs/new/list_item_text.md
test/specs/new/list_loose_tasks.html
test/specs/new/list_loose_tasks.md
test/specs/new/list_paren_delimiter.html
test/specs/new/list_paren_delimiter.md
test/specs/new/list_table.html
test/specs/new/list_table.md
test/specs/new/main.html
test/specs/new/main.md
test/specs/new/mangle_xss.html
test/specs/new/mangle_xss.md
test/specs/new/nested_code.html
test/specs/new/nested_code.md
test/specs/new/nested_em.html
test/specs/new/nested_em.md
test/specs/new/nested_square_link.html
test/specs/new/nested_square_link.md
test/specs/new/nogfm_hashtag.html
test/specs/new/nogfm_hashtag.md
test/specs/new/not_a_link.html
test/specs/new/not_a_link.md
test/specs/new/pedantic_heading_interrupts_paragraph.html
test/specs/new/pedantic_heading_interrupts_paragraph.md
test/specs/new/ref_paren.html
test/specs/new/ref_paren.md
test/specs/new/relative_base_urls.html
test/specs/new/relative_base_urls.md
test/specs/new/relative_urls.html
test/specs/new/relative_urls.md
test/specs/new/same_bullet.html
test/specs/new/same_bullet.md
test/specs/new/sanitize_links.html
test/specs/new/sanitize_links.md
test/specs/new/smartypants.html
test/specs/new/smartypants.md
test/specs/new/smartypants_code.html
test/specs/new/smartypants_code.md
test/specs/new/strong_following_nptables.html
test/specs/new/strong_following_nptables.md
test/specs/new/strong_following_tables.html
test/specs/new/strong_following_tables.md
test/specs/new/substitutions.html
test/specs/new/substitutions.md
test/specs/new/table_cells.html
[The command completed with exit code 0.]
[Current working directory: /workspace/marked]
[Python interpreter: /usr/bin/python]
[Command finished with exit code 0]