|
|
|
Migration to v4
|
|
|
|
===============
|
|
|
|
|
|
|
|
v4 has the same external API as v3, but significantly changed internals. Plugin
|
|
|
|
authors should update their packages.
|
|
|
|
|
|
|
|
## For users
|
|
|
|
|
|
|
|
External API did not change.
|
|
|
|
|
|
|
|
- If you used `markdown-it` with plugins - make sure to update those.
|
|
|
|
- If you modified renderer - see dev info below.
|
|
|
|
- If you did not use plugins and renderer modification - no changes needed.
|
|
|
|
|
|
|
|
|
|
|
|
## For developers
|
|
|
|
|
|
|
|
### Tokens and renderer
|
|
|
|
|
|
|
|
- [Tokens](https://github.com/markdown-it/markdown-it/blob/master/lib/token.js)
|
|
|
|
are now classes, and allow arbitrary attributes.
|
|
|
|
- new tokens are created with `token = state.push(type, tag, nesting)`.
|
|
|
|
See [this commit](https://github.com/markdown-it/markdown-it/commit/4aabd5592ea55fb43d6a215b316c89c6f6f1f7db) to understand
|
|
|
|
how to create tokens in new way. Also see changes in plugins from other
|
|
|
|
repos in this org.
|
|
|
|
- [Renderer](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js)
|
|
|
|
methods were unified. Number of custom renderer rules were significantly reduced.
|
|
|
|
Custom renderer functions need update due to tokens format change.
|
|
|
|
|
|
|
|
### Other changes
|
|
|
|
|
|
|
|
- `.validateUrl()` -> moved to root class `.validateLink()`
|
|
|
|
- added `.normalizeLink()` & `.normalizeLinkText()` to root class, and removed
|
|
|
|
`normalizeUrl()` from utils.
|
|
|
|
- removed `replaceEntities()` in `utils`.
|