mdx_gist: inherit from InlineProcessor, work on Python 3.11 (#3630)
mdx_gist: inherit from InlineProcessor, work on Python 3.11 (#3630)

The gist-rst pattern crashes Python 3.11, because its pattern
tries to set the multiline flag - it starts with `(?m)` - but
Markdown's `Pattern` class `__init__`, which is called by our
`GistPattern.__init__`, 'wraps' the pattern with additional
capture groups before compiling it. This causes the multiline
flag not to be at the start of the 'wrapped' pattern. From
Python 3.6 to Python 3.10 flags not being at the start of the
pattern was deprecated and triggered a warning when trying to
compile it; in Python 3.11 it's an error.

Markdown 3.0.0 added a preferred `InlineProcessor` class:
https://github.com/Python-Markdown/markdown/pull/629
which does not do this wrapping. It requires the subclass to
implement `handleMatch`, which we already do. Our `handleMatch`
uses named capture groups, so the change in the number of
capture groups in the compiled expression shouldn't matter. So
simply switching to inheriting from `InlineProcessor` instead
of `Pattern` (and slightly adjusting the signature and return
values to match what's expected of `InlineProcessor` subclasses)
should solve the problem.

We already required Markdown 3.0.0, so this does not mean we
require a newer Markdown than before.

Signed-off-by: Adam Williamson <9343557fe728326ecca60ea600eccabb6754179b@redhat.com>

getnikola/nikola,getnikola/nikola,getnikola/nikola,getnikola/nikola