From aeb11cea4eb1d0e6f68ad71cd178cd8636dcbf5f Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Sun, 5 Mar 2017 15:27:40 +0100
Subject: [PATCH] Markdown writer: escape initial % in a paragraph...

...if the `pandoc_title_blocks` extension is enabled.
Otherwise in a document starting with a literal percent sign
the first line is wrongly interpreted as a title.

Closes #3454.
---
 src/Text/Pandoc/Writers/Markdown.hs | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs
index 7dc472568..f665ec448 100644
--- a/src/Text/Pandoc/Writers/Markdown.hs
+++ b/src/Text/Pandoc/Writers/Markdown.hs
@@ -405,7 +405,11 @@ blockToMarkdown' opts (Plain inlines) = do
                      not isPlain && beginsWithOrderedListMarker rendered
                      then text $ escapeDelimiter rendered
                      else contents
-  return $ contents' <> cr
+  -- escape if para starts with %
+  return $
+     if isEnabled Ext_pandoc_title_block opts && take 1 rendered == "%"
+        then "\\" <> contents' <> cr
+        else contents' <> cr
 -- title beginning with fig: indicates figure
 blockToMarkdown' opts (Para [Image attr alt (src,'f':'i':'g':':':tit)]) =
   blockToMarkdown opts (Para [Image attr alt (src,tit)])