@@ -316,20 +316,25 @@ blockToMarkdown opts (Div attrs ils) = do
316 contents <> blankline <> "</div>" <> blankline
316 contents <> blankline <> "</div>" <> blankline
317blockToMarkdown opts (Plain inlines) = do
317blockToMarkdown opts (Plain inlines) = do
318 contents <- inlineListToMarkdown opts inlines
318 contents <- inlineListToMarkdown opts inlines
319+ -- escape if para starts with ordered list marker
321+ let colwidth = if writerWrapText opts
322+ then Just $ writerColumns opts
324+ let rendered = render colwidth contents
325+ let escapeDelimiter (x:xs) | x `elem` ".()" = '\\':x:xs
326+ | otherwise = x : escapeDelimiter xs
327+ escapeDelimiter [] = []
328+ let contents' = if isEnabled Ext_all_symbols_escapable opts &&
329+ not (stPlain st) && beginsWithOrderedListMarker rendered
330+ then text $ escapeDelimiter rendered
319− return $ contents <> cr
332+ return $ contents' <> cr
320-- title beginning with fig: indicates figure
333-- title beginning with fig: indicates figure
321blockToMarkdown opts (Para [Image alt (src,'f':'i':'g':':':tit)]) =
334blockToMarkdown opts (Para [Image alt (src,'f':'i':'g':':':tit)]) =
322 blockToMarkdown opts (Para [Image alt (src,tit)])
335 blockToMarkdown opts (Para [Image alt (src,tit)])
323−blockToMarkdown opts (Para inlines) = do
336+blockToMarkdown opts (Para inlines) =
324− contents <- inlineListToMarkdown opts inlines
337+ (<> blankline) `fmap` blockToMarkdown opts (Plain inlines)
325− -- escape if para starts with ordered list marker
327− let esc = if isEnabled Ext_all_symbols_escapable opts &&
329− beginsWithOrderedListMarker (render Nothing contents)
330− then text "\x200B" -- zero-width space, a hack
332− return $ esc <> contents <> blankline
333blockToMarkdown opts (RawBlock f str)
338blockToMarkdown opts (RawBlock f str)
334 | f == "html" = do
339 | f == "html" = do
335 st <- get
340 st <- get