diff --git a/src/mdformat/renderer/_context.py b/src/mdformat/renderer/_context.py index 238dd07d..73150c3d 100644 --- a/src/mdformat/renderer/_context.py +++ b/src/mdformat/renderer/_context.py @@ -218,6 +218,8 @@ def image(node: RenderTreeNode, context: RenderContext) -> str: uri = maybe_add_link_brackets(uri) title = node.attrs.get("title") if title is not None: + assert isinstance(title, str) + title = title.replace('"', '\\"') return f'![{description}]({uri} "{title}")' return f"![{description}]({uri})" diff --git a/tests/data/default_style.md b/tests/data/default_style.md index 7f1d4538..eed8b3ed 100644 --- a/tests/data/default_style.md +++ b/tests/data/default_style.md @@ -130,6 +130,17 @@ references: [ref2]: link3 "title" . +link and image titles with embedded quotes +. +[text](link1 "a \"quoted\" title") + +![text](img.png "a \"quoted\" title") +. +[text](link1 "a \"quoted\" title") + +![text](img.png "a \"quoted\" title") +. + thematic breaks . something something