- package: markdown-it/markdown-it | |
commit: f798bea9623277bbf89b9621cf7fb283c693fcab | |
date: Mar 12, 2020 | |
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++} {}` | |
- Use python version of `charCodeAt` | |
- | | |
Reduce use of charCodeAt() by storing char codes in a srcCharCodes attribute for state | |
objects and sharing those whenever possible | |
This provides a significant performance boost | |
- | | |
Use python's built-in `html.escape` and `urlparse.quote` methods, as a replacement for | |
the JS dependencies [mdurl](https://www.npmjs.com/package/mdurl) | |
and [punycode](https://www.npmjs.com/package/punycode) | |
- | | |
Remove indirect references within `MarkdownIt`; | |
self.validateLink = validateLink | |
self.normalizeLink = normalizeLink | |
self.normalizeLinkText = normalizeLinkText | |
in favour of using them directly through: | |
from markdown_it.common.normalize_url import normalizeLinkText | |
- | | |
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 | |
- 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 extensability to more than just HTML renderers |