diff options
Diffstat (limited to 'src/Text/Pandoc/Readers')
-rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 6ca699d20..1fb361585 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -770,13 +770,23 @@ compactify'DL items = para :: MarkdownParser (F Blocks) para = try $ do + exts <- getOption readerExtensions result <- trimInlinesF . mconcat <$> many1 inline - option (B.plain <$> result) $ try $ do - newline - (blanklines >> return mempty) - <|> (guardDisabled Ext_blank_before_blockquote >> lookAhead blockQuote) - <|> (guardDisabled Ext_blank_before_header >> lookAhead header) - return $ B.para <$> result + option (B.plain <$> result) + $ try $ do + newline + (blanklines >> return mempty) + <|> (guardDisabled Ext_blank_before_blockquote >> lookAhead blockQuote) + <|> (guardDisabled Ext_blank_before_header >> lookAhead header) + return $ do + result' <- result + case B.toList result' of + [Image alt (src,tit)] + | Ext_implicit_figures `Set.member` exts -> + -- the \1 at beginning of title indicates a figure + return $ B.para $ B.singleton + $ Image alt (src,'\1':tit) + _ -> return $ B.para result' plain :: MarkdownParser (F Blocks) plain = fmap B.plain . trimInlinesF . mconcat <$> many1 inline <* spaces |