From 69e2def93f1be2a272906dce1ba19fe4a59266c5 Mon Sep 17 00:00:00 2001 From: Livin Nector Date: Sat, 29 Mar 2025 11:28:59 +0530 Subject: [PATCH 1/2] added support for inline double math --- mdformat_myst/plugin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mdformat_myst/plugin.py b/mdformat_myst/plugin.py index 13d796e..bab7800 100644 --- a/mdformat_myst/plugin.py +++ b/mdformat_myst/plugin.py @@ -42,7 +42,7 @@ def update_mdit(mdit: MarkdownIt) -> None: mdit.use(myst_block_plugin) # Enable dollarmath markdown-it extension - mdit.use(dollarmath_plugin) + mdit.use(dollarmath_plugin, double_inline=True) # Trick `mdformat`s AST validation by removing HTML rendering of code # blocks and fences. Directives are parsed as code fences and we @@ -93,7 +93,6 @@ def _escape_paragraph(text: str, node: RenderTreeNode, context: RenderContext) - lines = text.split("\n") for i in range(len(lines)): - # Three or more "+" chars are interpreted as a block break. Escape them. space_removed = lines[i].replace(" ", "") if space_removed.startswith("+++"): @@ -126,6 +125,7 @@ def _escape_text(text: str, node: RenderTreeNode, context: RenderContext) -> str "myst_block_break": _blockbreak_renderer, "myst_target": _target_renderer, "math_inline": _math_inline_renderer, + "math_inline_double": _math_block_renderer, "math_block_label": _math_block_label_renderer, "math_block": _math_block_renderer, "fence": fence, From 890e03eed5926ecb100d98d63d6baf56b5a9f1fb Mon Sep 17 00:00:00 2001 From: Livin Nector Date: Mon, 31 Mar 2025 14:43:14 +0530 Subject: [PATCH 2/2] formatting inline doubles as math blocks --- mdformat_myst/plugin.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mdformat_myst/plugin.py b/mdformat_myst/plugin.py index bab7800..7e533b2 100644 --- a/mdformat_myst/plugin.py +++ b/mdformat_myst/plugin.py @@ -81,6 +81,11 @@ def _math_block_renderer(node: RenderTreeNode, context: RenderContext) -> str: return f"$${node.content}$$" +def _math_inline_double_renderer(node: RenderTreeNode, context: RenderContext) -> str: + # formats the inline doubles as math blocks + return f"\n$$\n{node.content.strip()}\n$$\n" + + def _math_block_label_renderer(node: RenderTreeNode, context: RenderContext) -> str: return f"$${node.content}$$ ({node.info})" @@ -125,7 +130,7 @@ def _escape_text(text: str, node: RenderTreeNode, context: RenderContext) -> str "myst_block_break": _blockbreak_renderer, "myst_target": _target_renderer, "math_inline": _math_inline_renderer, - "math_inline_double": _math_block_renderer, + "math_inline_double": _math_inline_double_renderer, "math_block_label": _math_block_label_renderer, "math_block": _math_block_renderer, "fence": fence,