blob: 84ec2f87b83cd20224879799c62f971760768432 [file] [log] [blame]
- 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