diff --git a/src/FSharp.Formatting.Markdown/HtmlFormatting.fs b/src/FSharp.Formatting.Markdown/HtmlFormatting.fs
index 600bd742..b492289a 100644
--- a/src/FSharp.Formatting.Markdown/HtmlFormatting.fs
+++ b/src/FSharp.Formatting.Markdown/HtmlFormatting.fs
@@ -76,7 +76,7 @@ let rec internal formatSpan (ctx: FormattingContext) span =
// use mathjax grammar, for detail, check: http://www.mathjax.org/
ctx.Writer.Write("\\(" + (htmlEncode body) + "\\)")
- | AnchorLink(id, _) -> ctx.Writer.Write(" ")
+ | AnchorLink(id, _) -> ctx.Writer.Write(" ")
| EmbedSpans(cmd, _) -> formatSpans ctx (cmd.Render())
| Literal(str, _) -> ctx.Writer.Write(str)
| HardLineBreak(_) -> ctx.Writer.Write("
" + ctx.Newline)
@@ -181,7 +181,8 @@ let rec internal formatParagraph (ctx: FormattingContext) paragraph =
if ctx.GenerateHeaderAnchors then
let anchorName = formatAnchor ctx spans
- ctx.Writer.Write(sprintf """""" anchorName anchorName)
+ let safeAnchorName = htmlEncodeQuotes anchorName
+ ctx.Writer.Write(sprintf """""" safeAnchorName safeAnchorName)
formatSpans ctx spans
ctx.Writer.Write ""
else
@@ -210,7 +211,7 @@ let rec internal formatParagraph (ctx: FormattingContext) paragraph =
if String.IsNullOrWhiteSpace(language) then
ctx.Writer.Write(sprintf "
")
else
- let langCode = sprintf "language-%s" language
+ let langCode = sprintf "language-%s" (htmlEncodeQuotes language)
ctx.Writer.Write(sprintf "" langCode)
ctx.Writer.Write(htmlEncode code)