markdown: Explode config dict.

Commit 434094e599 (#11321) changed this
from an Extension to a subclass of Markdown, so it no longer has any
reason to use a config dict structured like that of an Extension.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2021-02-04 21:36:24 -08:00
committed by Steve Howell
parent 50b0496a3a
commit ae0afa2390

View File

@@ -1885,14 +1885,9 @@ class Markdown(markdown.Markdown):
realm_filters_key: int, realm_filters_key: int,
email_gateway: bool, email_gateway: bool,
) -> None: ) -> None:
# define default configs self.realm_filters = realm_filters
self.config = { self.realm_filters_key = realm_filters_key
"realm_filters": [realm_filters, self.email_gateway = email_gateway
f"Realm-specific filters for realm_filters_key {realm_filters_key}"],
"realm": [realm_filters_key, "Realm id"],
"code_block_processor_disabled": [email_gateway,
"Disabled for email gateway"],
}
super().__init__( super().__init__(
extensions=[ extensions=[
@@ -1945,7 +1940,7 @@ class Markdown(markdown.Markdown):
parser = BlockParser(self) parser = BlockParser(self)
parser.blockprocessors.register(markdown.blockprocessors.EmptyBlockProcessor(parser), 'empty', 95) parser.blockprocessors.register(markdown.blockprocessors.EmptyBlockProcessor(parser), 'empty', 95)
parser.blockprocessors.register(ListIndentProcessor(parser), 'indent', 90) parser.blockprocessors.register(ListIndentProcessor(parser), 'indent', 90)
if not self.getConfig('code_block_processor_disabled'): if not self.email_gateway:
parser.blockprocessors.register(markdown.blockprocessors.CodeBlockProcessor(parser), 'code', 85) parser.blockprocessors.register(markdown.blockprocessors.CodeBlockProcessor(parser), 'code', 85)
parser.blockprocessors.register(HashHeaderProcessor(parser), 'hashheader', 80) parser.blockprocessors.register(HashHeaderProcessor(parser), 'hashheader', 80)
# We get priority 75 from 'table' extension # We get priority 75 from 'table' extension
@@ -2014,7 +2009,7 @@ class Markdown(markdown.Markdown):
return reg return reg
def register_realm_filters(self, inlinePatterns: markdown.util.Registry) -> markdown.util.Registry: def register_realm_filters(self, inlinePatterns: markdown.util.Registry) -> markdown.util.Registry:
for (pattern, format_string, id) in self.getConfig("realm_filters"): for (pattern, format_string, id) in self.realm_filters:
inlinePatterns.register(RealmFilterPattern(pattern, format_string, self), inlinePatterns.register(RealmFilterPattern(pattern, format_string, self),
f'realm_filters/{pattern}', 45) f'realm_filters/{pattern}', 45)
return inlinePatterns return inlinePatterns
@@ -2038,15 +2033,8 @@ class Markdown(markdown.Markdown):
postprocessors.register(markdown.postprocessors.UnescapePostprocessor(), 'unescape', 10) postprocessors.register(markdown.postprocessors.UnescapePostprocessor(), 'unescape', 10)
return postprocessors return postprocessors
def getConfig(self, key: str, default: str='') -> Any:
""" Return a setting for the given key or an empty string. """
if key in self.config:
return self.config[key][0]
else:
return default
def handle_zephyr_mirror(self) -> None: def handle_zephyr_mirror(self) -> None:
if self.getConfig("realm") == ZEPHYR_MIRROR_MARKDOWN_KEY: if self.realm_filters_key == ZEPHYR_MIRROR_MARKDOWN_KEY:
# Disable almost all inline patterns for zephyr mirror # Disable almost all inline patterns for zephyr mirror
# users' traffic that is mirrored. Note that # users' traffic that is mirrored. Note that
# inline_interesting_links is a treeprocessor and thus is # inline_interesting_links is a treeprocessor and thus is
@@ -2117,7 +2105,7 @@ def maybe_update_markdown_engines(realm_filters_key: Optional[int], email_gatewa
for realm_filters_key, filters in all_filters.items(): for realm_filters_key, filters in all_filters.items():
realm_filter_data[realm_filters_key] = filters realm_filter_data[realm_filters_key] = filters
make_md_engine(realm_filters_key, email_gateway) make_md_engine(realm_filters_key, email_gateway)
# Hack to ensure that getConfig("realm") is right for mirrored Zephyrs # Hack to ensure that realm_filters_key is right for mirrored Zephyrs
realm_filter_data[ZEPHYR_MIRROR_MARKDOWN_KEY] = [] realm_filter_data[ZEPHYR_MIRROR_MARKDOWN_KEY] = []
make_md_engine(ZEPHYR_MIRROR_MARKDOWN_KEY, False) make_md_engine(ZEPHYR_MIRROR_MARKDOWN_KEY, False)
else: else: