diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index b06681a3..d6838a23 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -3,6 +3,7 @@
## [Unreleased]
### Fixed
+* Fix `Markdown.ToMd` silently dropping `EmbedParagraphs` nodes: the serialiser now delegates to the node's `Render()` method and formats the resulting paragraphs, consistent with the HTML and LaTeX back-ends.
* Fix `Markdown.ToMd` dropping link titles in `DirectLink` and `DirectImage` spans. Links with a title attribute (e.g. `[text](url "title")`) now round-trip correctly; without this fix the title was silently discarded on serialisation.
* Fix `Markdown.ToMd` serialising inline code spans that contain backtick characters. Previously, `InlineCode` was always wrapped in single backticks, producing syntactically incorrect Markdown when the code body contained backticks. Now the serialiser selects the shortest backtick fence that does not collide with the body content (e.g. a double-backtick fence for bodies containing single backticks, triple for double, etc.), matching the CommonMark spec.
diff --git a/src/FSharp.Formatting.Markdown/MarkdownUtils.fs b/src/FSharp.Formatting.Markdown/MarkdownUtils.fs
index 1246e7fd..d31e7341 100644
--- a/src/FSharp.Formatting.Markdown/MarkdownUtils.fs
+++ b/src/FSharp.Formatting.Markdown/MarkdownUtils.fs
@@ -280,9 +280,7 @@ module internal MarkdownUtils =
yield "> " + line
yield ""
- | _ ->
- printfn "// can't yet format %0A to markdown" paragraph
- yield "" ]
+ | EmbedParagraphs(cmd, _) -> yield! cmd.Render() |> Seq.collect (formatParagraph ctx) ]
/// Strips #if SYMBOL / #endif // SYMBOL conditional compilation lines from an .fsx code block
/// so that format-specific sections are removed from non-target output formats.
diff --git a/tests/FSharp.Markdown.Tests/Markdown.fs b/tests/FSharp.Markdown.Tests/Markdown.fs
index 4a1ebebb..760637bc 100644
--- a/tests/FSharp.Markdown.Tests/Markdown.fs
+++ b/tests/FSharp.Markdown.Tests/Markdown.fs
@@ -1417,3 +1417,17 @@ let ``ToMd round-trip: indirect image with unresolved reference`` () =
let result = Markdown.ToMd(doc)
// When key is not resolved, should preserve the indirect form
result |> should contain "![alt text][unknown-ref]"
+
+[]
+let ``ToMd serialises EmbedParagraphs by delegating to Render()`` () =
+ // EmbedParagraphs was previously falling through to the catch-all '| _' branch,
+ // emitting a debug printfn and yielding an empty string. It should instead
+ // delegate to the Render() method and format the resulting paragraphs.
+ let inner =
+ { new MarkdownEmbedParagraphs with
+ member _.Render() =
+ [ Paragraph([ Literal("embedded text", MarkdownRange.zero) ], MarkdownRange.zero) ] }
+
+ let doc = MarkdownDocument([ EmbedParagraphs(inner, MarkdownRange.zero) ], dict [])
+ let result = Markdown.ToMd(doc)
+ result |> should contain "embedded text"