./textproc/py-markdown-it-py, Python port of markdown-it

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.0.0nb1, Package name: py311-markdown-it-py-3.0.0nb1, Maintainer: pkgsrc-users

This is a Python port of markdown-it, and some of its associated plugins.

* Follows the CommonMark spec for baseline parsing
* Configurable syntax: you can add new rules and even replace existing ones.
* Pluggable: Adds syntax extensions to extend the parser (see the plugin list).
* High speed (see our benchmarking tests)
* Safe by default


Master sites:

Filesize: 72.848 KB

Version history: (Expand)


CVS history: (Expand)


   2023-10-28 21:57:26 by Thomas Klausner | Files touched by this commit (516) | Package updated
Log message:
python/wheel.mk: simplify a lot, and switch to 'installer' for installation

This follows the recommended bootstrap method (flit_core, build, installer).

However, installer installs different files than pip, so update PLISTs
for all packages using wheel.mk and bump their PKGREVISIONs.
   2023-08-02 01:20:57 by Thomas Klausner | Files touched by this commit (158)
Log message:
*: remove more references to Python 3.7
   2023-06-06 10:21:18 by Thomas Klausner | Files touched by this commit (3) | Package updated
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)
   2023-03-05 08:27:37 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-markdown-it-py: updated to 2.2.0

2.2.0 - 2023-02-22

What's Changed

* ⬆️ UPGRADE: Allow linkify-it-py v2
* 🐛 FIX: CVE-2023-26303
* 🐛 FIX: CLI crash on non-utf8 character
* 📚 DOCS: Update the example
* 📚 DOCS: Add section about markdown renderer
* 🔧 Create SECURITY.md
* 🔧 MAINTAIN: Update mypy's additional dependencies
* Fix typo
* 🔧 Bump GH actions
* 🔧 Update benchmark pkg versions
   2023-02-21 00:34:17 by Thomas Klausner | Files touched by this commit (1)
Log message:
py-markdown-it-py: mark as not for python 2
   2023-02-20 11:52:17 by Adam Ciarcinski | Files touched by this commit (5)
Log message:
py-markdown-it-py: added version 2.1.0

This is a Python port of markdown-it, and some of its associated plugins.

* Follows the CommonMark spec for baseline parsing
* Configurable syntax: you can add new rules and even replace existing ones.
* Pluggable: Adds syntax extensions to extend the parser (see the plugin list).
* High speed (see our benchmarking tests)
* Safe by default