diff options
author | John MacFarlane <jgm@berkeley.edu> | 2013-01-14 20:53:08 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2013-01-14 20:53:08 -0800 |
commit | 1a4b47e93368bfbd31daccdfedbd9527ee740201 (patch) | |
tree | 7045c38500930e78c9f0b4aad447a2244fbe64cc /src/Text/Pandoc/Readers | |
parent | 56aa257ddb60fb5cd48f8569f66e777454859738 (diff) | |
download | pandoc-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.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 |