forked from varia/varia.website
49 lines
2.4 KiB
YAML
49 lines
2.4 KiB
YAML
|
- package: markdown-it/markdown-it
|
||
|
version: 13.0.1
|
||
|
commit: e843acc9edad115cbf8cf85e676443f01658be08
|
||
|
date: May 3, 2022
|
||
|
notes:
|
||
|
- Rename variables that use python built-in names, e.g.
|
||
|
- `max` -> `maximum`
|
||
|
- `len` -> `length`
|
||
|
- `str` -> `string`
|
||
|
- |
|
||
|
Convert JS `for` loops to `while` loops
|
||
|
this is generally the main difference between the codes,
|
||
|
because in python you can't do e.g. `for {i=1;i<x;i++} {}`
|
||
|
- |
|
||
|
`env` is a common Python dictionary, and so does not have attribute access to keys,
|
||
|
as with JavaScript dictionaries.
|
||
|
`options` have attribute access only to core markdownit configuration options
|
||
|
- |
|
||
|
`Token.attrs` is a dictionary, instead of a list of lists.
|
||
|
Upstream the list format is only used to guarantee order: https://github.com/markdown-it/markdown-it/issues/142,
|
||
|
but in Python 3.7+ order of dictionaries is guaranteed.
|
||
|
One should anyhow use the `attrGet`, `attrSet`, `attrPush` and `attrJoin` methods
|
||
|
to manipulate `Token.attrs`, which have an identical signature to those upstream.
|
||
|
- Use python version of `charCodeAt`
|
||
|
- |
|
||
|
Use `str` units instead of `int`s to represent Unicode codepoints.
|
||
|
This provides a significant performance boost
|
||
|
- |
|
||
|
In markdown_it/rules_block/reference.py,
|
||
|
record line range in state.env["references"] and add state.env["duplicate_refs"]
|
||
|
This is to allow renderers to report on issues regarding references
|
||
|
- |
|
||
|
The `MarkdownIt.__init__` signature is slightly different for updating options,
|
||
|
since you must always specify the config first, e.g.
|
||
|
use `MarkdownIt("commonmark", {"html": False})` instead of `MarkdownIt({"html": False})`
|
||
|
- The default configuration preset for `MarkdownIt` is "commonmark" not "default"
|
||
|
- Allow custom renderer to be passed to `MarkdownIt`
|
||
|
- |
|
||
|
change render method signatures
|
||
|
`func(tokens, idx, options, env, slf)` to
|
||
|
`func(self, tokens, idx, options, env)`
|
||
|
- |
|
||
|
Extensions add render methods by format
|
||
|
`MarkdownIt.add_render_rule(name, function, fmt="html")`,
|
||
|
rather than `MarkdownIt.renderer.rules[name] = function`
|
||
|
and renderers should declare a class property `__output__ = "html"`.
|
||
|
This allows for extensibility to more than just HTML renderers
|
||
|
- inline tokens in tables are assigned a map (this is helpful for propagation to children)
|