diff options
author | 2025-04-08 16:53:46 +0100 | |
---|---|---|
committer | 2025-04-08 16:53:46 +0100 | |
commit | 0a30daf906841ec136114e1bc8688ef1c6898c84 (patch) | |
tree | 2b9dde05c402e0c94976c305b64b55d962024fc1 | |
parent | Bump markdownify from 0.14.1 to 1.1.0 (diff) |
Fix markdownify breaking change: convert_as_inline->parent_tags
Now _inline is set as a pseudo value in parent_tags
-rw-r--r-- | bot/exts/info/doc/_markdown.py | 22 | ||||
-rw-r--r-- | bot/exts/info/doc/_parsing.py | 2 |
2 files changed, 12 insertions, 12 deletions
diff --git a/bot/exts/info/doc/_markdown.py b/bot/exts/info/doc/_markdown.py index a030903ed..1ff50ee95 100644 --- a/bot/exts/info/doc/_markdown.py +++ b/bot/exts/info/doc/_markdown.py @@ -15,7 +15,7 @@ class DocMarkdownConverter(markdownify.MarkdownConverter): super().__init__(**options) self.page_url = page_url - def convert_li(self, el: PageElement, text: str, convert_as_inline: bool) -> str: + def convert_li(self, el: PageElement, text: str, parent_tags: set[str]) -> str: """Fix markdownify's erroneous indexing in ol tags.""" parent = el.parent if parent is not None and parent.name == "ol": @@ -31,38 +31,38 @@ class DocMarkdownConverter(markdownify.MarkdownConverter): bullet = bullets[depth % len(bullets)] return f"{bullet} {text}\n" - def _convert_hn(self, _n: int, el: PageElement, text: str, convert_as_inline: bool) -> str: + def _convert_hn(self, _n: int, el: PageElement, text: str, parent_tags: set[str]) -> str: """Convert h tags to bold text with ** instead of adding #.""" - if convert_as_inline: + if "_inline" in parent_tags: return text return f"**{text}**\n\n" - def convert_code(self, el: PageElement, text: str, convert_as_inline: bool) -> str: + def convert_code(self, el: PageElement, text: str, parent_tags: set[str]) -> str: """Undo `markdownify`s underscore escaping.""" return f"`{text}`".replace("\\", "") - def convert_pre(self, el: PageElement, text: str, convert_as_inline: bool) -> str: + def convert_pre(self, el: PageElement, text: str, parent_tags: set[str]) -> str: """Wrap any codeblocks in `py` for syntax highlighting.""" code = "".join(el.strings) return f"```py\n{code}```" - def convert_a(self, el: PageElement, text: str, convert_as_inline: bool) -> str: + def convert_a(self, el: PageElement, text: str, parent_tags: set[str]) -> str: """Resolve relative URLs to `self.page_url`.""" el["href"] = urljoin(self.page_url, el["href"]) # Discord doesn't handle titles properly, showing links with them as raw text. el["title"] = None - return super().convert_a(el, text, convert_as_inline) + return super().convert_a(el, text, parent_tags) - def convert_p(self, el: PageElement, text: str, convert_as_inline: bool) -> str: + def convert_p(self, el: PageElement, text: str, parent_tags: set[str]) -> str: """Include only one newline instead of two when the parent is a li tag.""" - if convert_as_inline: + if "_inline" in parent_tags: return text parent = el.parent if parent is not None and parent.name == "li": return f"{text}\n" - return super().convert_p(el, text, convert_as_inline) + return super().convert_p(el, text, parent_tags) - def convert_hr(self, el: PageElement, text: str, convert_as_inline: bool) -> str: + def convert_hr(self, el: PageElement, text: str, parent_tags: set[str]) -> str: """Ignore `hr` tag.""" return "" diff --git a/bot/exts/info/doc/_parsing.py b/bot/exts/info/doc/_parsing.py index bc5a5bd31..0f5734a15 100644 --- a/bot/exts/info/doc/_parsing.py +++ b/bot/exts/info/doc/_parsing.py @@ -159,7 +159,7 @@ def _get_truncated_description( if rendered_length + element_length < max_length: if is_tag: - element_markdown = markdown_converter.process_tag(element, convert_as_inline=False) + element_markdown = markdown_converter.process_tag(element) else: element_markdown = markdown_converter.process_text(element) |