markdown: Migrate off deprecated extension registration interface.

Fixes #15205.

https://python-markdown.github.io/change_log/release-3.0/#homegrown-ordereddict-has-been-replaced-with-a-purpose-built-registry
https://python-markdown.github.io/change_log/release-3.0/#md_globals-keyword-deprecated-from-extension-api

The priority numbers are arbitrarily chosen to preserve the existing
order.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2020-10-19 16:28:13 -07:00
committed by Anders Kaseorg
parent 84142df152
commit 254b904965
10 changed files with 34 additions and 33 deletions

View File

@@ -21,9 +21,9 @@ class MarkdownArgumentsTableGenerator(Extension):
for key, value in configs.items():
self.setConfig(key, value)
def extendMarkdown(self, md: markdown.Markdown, md_globals: Dict[str, Any]) -> None:
md.preprocessors.add(
'generate_api_arguments', APIArgumentsTablePreprocessor(md, self.getConfigs()), '_begin',
def extendMarkdown(self, md: markdown.Markdown) -> None:
md.preprocessors.register(
APIArgumentsTablePreprocessor(md, self.getConfigs()), 'generate_api_arguments', 505
)

View File

@@ -15,9 +15,9 @@ class MarkdownReturnValuesTableGenerator(Extension):
def __init__(self, configs: Mapping[str, Any] = {}) -> None:
self.config: Dict[str, Any] = {}
def extendMarkdown(self, md: markdown.Markdown, md_globals: Dict[str, Any]) -> None:
md.preprocessors.add(
'generate_return_values', APIReturnValuesTablePreprocessor(md, self.getConfigs()), '_begin',
def extendMarkdown(self, md: markdown.Markdown) -> None:
md.preprocessors.register(
APIReturnValuesTablePreprocessor(md, self.getConfigs()), 'generate_return_values', 510
)

View File

@@ -149,7 +149,7 @@ class FencedCodeExtension(markdown.Extension):
for key, value in config.items():
self.setConfig(key, value)
def extendMarkdown(self, md: markdown.Markdown, md_globals: Dict[str, Any]) -> None:
def extendMarkdown(self, md: markdown.Markdown) -> None:
""" Add FencedBlockPreprocessor to the Markdown instance. """
md.registerExtension(self)
processor = FencedBlockPreprocessor(

View File

@@ -1,5 +1,5 @@
import re
from typing import Any, Dict, List
from typing import Any, List
from typing.re import Match
import markdown
@@ -36,10 +36,10 @@ ROW_HTML = """\
"""
class EmoticonTranslationsHelpExtension(markdown.Extension):
def extendMarkdown(self, md: markdown.Markdown, md_globals: Dict[str, Any]) -> None:
def extendMarkdown(self, md: markdown.Markdown) -> None:
""" Add SettingHelpExtension to the Markdown instance. """
md.registerExtension(self)
md.preprocessors.add('emoticon_translations', EmoticonTranslation(), '_end')
md.preprocessors.register(EmoticonTranslation(), 'emoticon_translations', -505)
class EmoticonTranslation(Preprocessor):

View File

@@ -1,5 +1,5 @@
import re
from typing import Any, Dict, List, Optional
from typing import Any, List, Optional
from typing.re import Match
import markdown
@@ -67,10 +67,10 @@ LINK_TYPE_HANDLERS = {
}
class RelativeLinksHelpExtension(markdown.Extension):
def extendMarkdown(self, md: markdown.Markdown, md_globals: Dict[str, Any]) -> None:
def extendMarkdown(self, md: markdown.Markdown) -> None:
""" Add RelativeLinksHelpExtension to the Markdown instance. """
md.registerExtension(self)
md.preprocessors.add('help_relative_links', RelativeLinks(), '_begin')
md.preprocessors.register(RelativeLinks(), 'help_relative_links', 520)
relative_help_links: Optional[bool] = None

View File

@@ -1,5 +1,5 @@
import re
from typing import Any, Dict, List, Optional
from typing import Any, List, Optional
from typing.re import Match
import markdown
@@ -63,10 +63,10 @@ settings_markdown = """
class SettingHelpExtension(markdown.Extension):
def extendMarkdown(self, md: markdown.Markdown, md_globals: Dict[str, Any]) -> None:
def extendMarkdown(self, md: markdown.Markdown) -> None:
""" Add SettingHelpExtension to the Markdown instance. """
md.registerExtension(self)
md.preprocessors.add('setting', Setting(), '_begin')
md.preprocessors.register(Setting(), 'setting', 515)
relative_settings_links: Optional[bool] = None

View File

@@ -1,6 +1,6 @@
import os
import re
from typing import Any, Dict, List
from typing import Any, List
import markdown
from markdown_include.include import IncludePreprocessor, MarkdownInclude
@@ -11,11 +11,11 @@ INC_SYNTAX = re.compile(r'\{!\s*(.+?)\s*!\}')
class MarkdownIncludeCustom(MarkdownInclude):
def extendMarkdown(self, md: markdown.Markdown, md_globals: Dict[str, Any]) -> None:
md.preprocessors.add(
'include_wrapper',
def extendMarkdown(self, md: markdown.Markdown) -> None:
md.preprocessors.register(
IncludeCustomPreprocessor(md, self.getConfigs()),
'_begin',
'include_wrapper',
500,
)
class IncludeCustomPreprocessor(IncludePreprocessor):

View File

@@ -8,11 +8,11 @@ from zerver.lib.markdown import ResultWithFamily, walk_tree_with_family
class NestedCodeBlocksRenderer(Extension):
def extendMarkdown(self, md: markdown.Markdown, md_globals: Dict[str, Any]) -> None:
md.treeprocessors.add(
'nested_code_blocks',
def extendMarkdown(self, md: markdown.Markdown) -> None:
md.treeprocessors.register(
NestedCodeBlocksRendererTreeProcessor(md, self.getConfigs()),
'_end',
'nested_code_blocks',
-500,
)
class NestedCodeBlocksRendererTreeProcessor(markdown.treeprocessors.Treeprocessor):

View File

@@ -79,9 +79,10 @@ TAB_DISPLAY_NAMES = {
}
class TabbedSectionsGenerator(Extension):
def extendMarkdown(self, md: markdown.Markdown, md_globals: Dict[str, Any]) -> None:
md.preprocessors.add(
'tabbed_sections', TabbedSectionsPreprocessor(md, self.getConfigs()), '_end')
def extendMarkdown(self, md: markdown.Markdown) -> None:
md.preprocessors.register(
TabbedSectionsPreprocessor(md, self.getConfigs()), 'tabbed_sections', -500
)
class TabbedSectionsPreprocessor(Preprocessor):
def __init__(self, md: markdown.Markdown, config: Dict[str, Any]) -> None:

View File

@@ -348,12 +348,12 @@ class APIMarkdownExtension(Extension):
],
}
def extendMarkdown(self, md: markdown.Markdown, md_globals: Dict[str, Any]) -> None:
md.preprocessors.add(
'generate_code_example', APICodeExamplesPreprocessor(md, self.getConfigs()), '_begin',
def extendMarkdown(self, md: markdown.Markdown) -> None:
md.preprocessors.register(
APICodeExamplesPreprocessor(md, self.getConfigs()), 'generate_code_example', 525
)
md.preprocessors.add(
'generate_api_description', APIDescriptionPreprocessor(md, self.getConfigs()), '_begin',
md.preprocessors.register(
APIDescriptionPreprocessor(md, self.getConfigs()), 'generate_api_description', 530
)
class APICodeExamplesPreprocessor(Preprocessor):