Rewrite docs linter

1. I want to set the stage to deal with #2898 properly.
2. `request` was deprecated years ago. Decided that it's better to just
   move to native Node.js APIs in its place.
3. `glob` was outdated, and it's easier to just toss it than to upgrade
   across a major version.
4. I switched to using Marked's "lexer" directly so I'm not fussing
   with the complexity of renderers. This of course necessitated a more
   complex file processor as its "lexer" is really an AST parser.

I also decided to go a few steps further:
- Drop the cache to simplify everything. I might reverse this later,
  but just caching URLs per-page should be enough to prevent the world
  from crashing down.
- Drop some more dependencies, so I don't have to come back to this
  later nearly as quickly.
- Upgrade to a more modern language version in the scripts.
- Update Marked. It was super outdated.
- Add line and column numbers to the warnings. That took quite a bit of
  work, thanks to a missing Marked feature plus a bug in Marked.
This commit is contained in:
Claudia Meadows 2024-09-01 06:24:43 -07:00
parent 3a633ce99c
commit 0d095d1373
No known key found for this signature in database
GPG key ID: C86B594396786760
15 changed files with 1201 additions and 1154 deletions

View file

@ -17,10 +17,10 @@
"build:docs": "node scripts/generate-docs",
"build:min": "node scripts/bundler browser.js -output mithril.min.js -minify -save",
"build:stream-min": "node scripts/minify-stream",
"cleanup:lint": "rimraf .eslintcache .lint-docs-cache",
"cleanup:lint": "rimraf .eslintcache",
"lint": "run-s -cn lint:**",
"lint:js": "eslint . --cache",
"lint:docs": "node scripts/lint-docs --cache",
"lint:docs": "node scripts/lint-docs",
"perf": "node performance/test-perf.js",
"pretest": "npm run lint",
"test": "run-s test:js",
@ -40,13 +40,11 @@
"istanbul": "^0.4.5",
"lint-staged": "^13.2.1",
"locater": "^1.3.0",
"marked": "^4.0.10",
"marked": "^14.1.0",
"minimist": "^1.2.0",
"npm-run-all": "^4.1.5",
"ospec": "4.1.6",
"pinpoint": "^1.1.0",
"request": "^2.88.0",
"request-promise-native": "^1.0.7",
"rimraf": "^3.0.0",
"semver": "^6.3.0",
"terser": "^4.3.4"