Subject: CVS commit: pkgsrc/textproc/py-markdown-it-py
From: Thomas Klausner
Date: 2023-06-06 10:21:18
Message id: 20230606082118.39915FA89@cvs.NetBSD.org

Log Message:
py-markdown-it-py: update to 3.0.0.

## 3.0.0 - 2023-06-03

⚠️ This release contains some minor breaking changes in the internal API and \ 
improvements to the parsing strictness.

**Full Changelog**: \ 
<https://github.com/executablebooks/markdown-it-py/compare/v2.2.0...v3.0.0>

### ⬆️ UPGRADE: Drop support for Python 3.7

Also add testing for Python 3.11

### ⬆️ UPGRADE: Update from upstream markdown-it `12.2.0` to `13.0.0`

A key change is the addition of a new `Token` type, `text_special`, which is \ 
used to represent HTML entities and backslash escaped characters.
This ensures that (core) typographic transformation rules are not incorrectly \ 
applied to these texts.
The final core rule is now the new `text_join` rule, which joins adjacent \ 
`text`/`text_special` tokens,
and so no `text_special` tokens should be present in the final token stream.
Any custom typographic rules should be inserted before `text_join`.

A new `linkify` rule has also been added to the inline chain, which will linkify \ 
full URLs (e.g. `https://example.com`),
and fixes collision of emphasis and linkifier (so \ 
`http://example.org/foo._bar_-_baz` is now a single link, not emphasized).
Emails and fuzzy links are not affected by this.

* ♻️ Refactor backslash escape logic, add `text_special` \ 
[#276](https://github.com/executablebooks/markdown-it-py/pull/276)
* ♻️ Parse entities to `text_special` token \ 
[#280](https://github.com/executablebooks/markdown-it-py/pull/280)
* ♻️ Refactor: Add linkifier rule to inline chain for full links \ 
[#279](https://github.com/executablebooks/markdown-it-py/pull/279)
* ‼️ Remove `(p)` => `§` replacement in typographer \ 
[#281](https://github.com/executablebooks/markdown-it-py/pull/281)
* ‼️ Remove unused `silent` arg in `ParserBlock.tokenize` \ 
[#284](https://github.com/executablebooks/markdown-it-py/pull/284)
* 🐛 FIX: numeric character reference passing \ 
[#272](https://github.com/executablebooks/markdown-it-py/pull/272)
* 🐛 Fix: tab preventing paragraph continuation in lists \ 
[#274](https://github.com/executablebooks/markdown-it-py/pull/274)
* 👌 Improve nested emphasis parsing \ 
[#273](https://github.com/executablebooks/markdown-it-py/pull/273)
* 👌 fix possible ReDOS in newline rule \ 
[#275](https://github.com/executablebooks/markdown-it-py/pull/275)
* 👌 Improve performance of `skipSpaces`/`skipChars` \ 
[#271](https://github.com/executablebooks/markdown-it-py/pull/271)
* 👌 Show text of `text_special` in `tree.pretty` \ 
[#282](https://github.com/executablebooks/markdown-it-py/pull/282)

### ♻️ REFACTOR: Replace most character code use with strings

The use of `StateBase.srcCharCode` is deprecated (with backward-compatibility), \ 
and all core uses are replaced by `StateBase.src`.

Conversion of source string characters to an integer representing the Unicode \ 
character is prevalent in the upstream JavaScript implementation, to improve \ 
performance.
However, it is unnecessary in Python and leads to harder to read code and \ 
performance deprecations (during the conversion in the `StateBase` \ 
initialisation).

See [#270](https://github.com/executablebooks/markdown-it-py/pull/270), thanks \ 
to [@hukkinj1](https://github.com/hukkinj1).

### ♻️ Centralise indented code block tests

For CommonMark, the presence of indented code blocks prevent any other block \ 
element from having an indent of greater than 4 spaces.
Certain Markdown flavors and derivatives, such as mdx and djot, disable these \ 
code blocks though, since it is more common to use code fences and/or arbitrary \ 
indenting is desirable.
Previously, disabling code blocks did not remove the indent limitation, since \ 
most block elements had the 3 space limitation hard-coded.
This change centralised the logic of applying this limitation (in \ 
`StateBlock.is_code_block`), and only applies it when indented code blocks are \ 
enabled.

This allows for e.g.

```md
<div>
  <div>

    I can indent as much as I want here.

  <div>
<div>
```

See [#260](https://github.com/executablebooks/markdown-it-py/pull/260)

### 🔧 Maintenance changes

Strict type annotation checking has been applied to the whole code base,
[ruff](https://github.com/charliermarsh/ruff) is now used for linting,
and fuzzing tests have been added to the CI, to integrate with Google \ 
[OSS-Fuzz](https://github.com/google/oss-fuzz/tree/master/projects/markdown-it-py) \ 
testing, thanks to [@DavidKorczynski](https://github.com/DavidKorczynski).

* 🔧 MAINTAIN: Make type checking strict \ 
[#](https://github.com/executablebooks/markdown-it-py/pull/267)
* 🔧 Add typing of rule functions \ 
[#283](https://github.com/executablebooks/markdown-it-py/pull/283)
* 🔧 Move linting from flake8 to ruff \ 
[#268](https://github.com/executablebooks/markdown-it-py/pull/268)
* 🧪 CI: Add fuzzing workflow for PRs \ 
[#262](https://github.com/executablebooks/markdown-it-py/pull/262)
* 🔧 Add tox env for fuzz testcase run \ 
[#263](https://github.com/executablebooks/markdown-it-py/pull/263)
* 🧪 Add OSS-Fuzz set up by @DavidKorczynski in \ 
[#255](https://github.com/executablebooks/markdown-it-py/pull/255)
* 🧪 Fix fuzzing test failures \ 
[#254](https://github.com/executablebooks/markdown-it-py/pull/254)

Files:
RevisionActionfile
1.4modifypkgsrc/textproc/py-markdown-it-py/Makefile
1.2modifypkgsrc/textproc/py-markdown-it-py/PLIST
1.3modifypkgsrc/textproc/py-markdown-it-py/distinfo