### Pimp the docs linter (and assorted changes)
#### `scripts/lint-docs.js`
- Add an optional cache for faster runs
- Add a final report
- Don't return anything from `exec()`
- Cover more files
#### `scripts/_command.js`
- Look for a "--cache" option
#### `package.json` scripts
- Added `watch:lint-docs`
- Added `cleanup:lint` to remove the eslint and lint-docs cache files
- Changed `lint:docs` to use the `--cache` option
- Added `test:js` so that we can run the test suite without the linter
- Changed `test` to defer to `test:js`
#### Actual lint fixes:
- Bad link in a migration guide
- The unicode dashes in the "https://en.wikipedia.org/wiki/Subject–verb–object" are not escaped by marked
### Some more lint-docs pimping
#### `scripts/lint-docs.js`
- some code reorg and cleanup (take a hint from the local coding conventions)
- fix misc bugs
- pass a User-Agent header to the requests
- even nicer reporting
#### `package.json`
- bump the @babel/parser dep to the latest
#### Docs
- tweaks based on lints missed due to previous bugs
### Docs: use the github page for velocity.js, the home page has too many errors.
Co-Authored-By: Isiah Meadows <contact@isiahmeadows.com>
* Recast key docs to be much clearer and more accurate [skip ci]
Also, fix a couple broken hash links I noticed while making this.
* Ensure `diff` blocks are highlighted correctly
* Fix a copy/paste fail
Also, fix some incorrect tests.
* Clarify how routes are diffed, improve key + route resolver docs
- Add some missing links to route resolvers and single-child keyed
fragments, clarify usage around them.
- Drive-by: remove a redundant sentence that itself was missing a
period.
* Actually test for propagation and preventDefault
Previously, the mocks were both junk and inaccurate. No wonder my tests
were silently failing - they were wrong and not obviously wrong.
* De-servicify router (mostly)
Still uses the redraw service, but it no longer has an intermediate
service of its own.
Also, did a *lot* of test deduplication in this. About 30-40% of the
router service tests were already tested on the main router API instance
itself.
Bundle size decreased from 9560 to 9548 bytes min+gzip.
* Merge `m.mount` + `m.redraw`, update router
Simplifies the router and redraw mechanism, and makes it much easier to
keep predictable.
Bundle size down to 9433 bytes min+gzip, docs updated accordingly.
* Make `mithril/render` just return the `m.render` function directly.
* Deservicify `m.render`, revise `m.route`
- You now have to use `mithril/render/render` directly if you want an
implicit redraw function. (This will likely be going away in v3.)
- Revise `m.route` to only `key` components
* Add `redraw` to `m.render`, deservicify requests
* Test error logging
* Update docs + changelog [skip ci]
* Fix#2434
* Treat holes as unkeyed, normalize boolean/null/undefined
This brings a lot better consistency with that API, even though it's
slightly breaking. (I had to update a bunch of tests to correspond with
it.)
* Fill in PR number [skip ci]
The previous example about hiding keys had syntax errors, and example in itself didn't follow our own guidelines (key should be on immediate child of an array)
In the new example we reuse the code from the previous example but break out a User component (which is much more likely) and the example says to move the key from inside the user component instead