aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2013-01-14 20:53:08 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2013-01-14 20:53:08 -0800
commit1a4b47e93368bfbd31daccdfedbd9527ee740201 (patch)
tree7045c38500930e78c9f0b4aad447a2244fbe64cc /src/Text/Pandoc/Readers
parent56aa257ddb60fb5cd48f8569f66e777454859738 (diff)
downloadpandoc-1a4b47e93368bfbd31daccdfedbd9527ee740201.tar.gz
Implemented Ext_implicit_figures.
* In markdown reader, add a '\1' character to the beginning of the title of an image that is alone in its paragraph, if implicit_figures extension is selected. * In writers, check for Para [Image alt (src,'\1':tit)] and treat it as a figure if possible. * Updated tests. This is a bit of a hack, but it allows us to make implicit_figures an extension of the markdown reader, rather than the writers.
Diffstat (limited to 'src/Text/Pandoc/Readers')
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs22
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