Merge pull request #4184 from mb21/html-reader-figcaption

HTML Reader: be more forgiving about figcaption
This commit is contained in:
John MacFarlane
2017-12-27 13:33:00 -07:00
committed by GitHub
2 changed files with 39 additions and 4 deletions
+7 -4
View File
@@ -75,8 +75,8 @@ import Text.Pandoc.Options (
ReaderOptions (readerExtensions, readerStripComments),
extensionEnabled)
import Text.Pandoc.Parsing hiding ((<|>))
import Text.Pandoc.Shared (addMetaField, crFilter, escapeURI, extractSpaces,
safeRead, underlineSpan)
import Text.Pandoc.Shared (addMetaField, blocksToInlines', crFilter, escapeURI,
extractSpaces, safeRead, underlineSpan)
import Text.Pandoc.Walk
import Text.Parsec.Error
import Text.TeXMath (readMathML, writeTeX)
@@ -600,8 +600,11 @@ pFigure = try $ do
skipMany pBlank
let pImg = (\x -> (Just x, Nothing)) <$>
(pOptInTag "p" pImage <* skipMany pBlank)
pCapt = (\x -> (Nothing, Just x)) <$>
(pInTags "figcaption" inline <* skipMany pBlank)
pCapt = (\x -> (Nothing, Just x)) <$> do
skipMany pBlank
bs <- pInTags "figcaption" block
skipMany pBlank
return $ blocksToInlines' $ B.toList bs
pSkip = (Nothing, Nothing) <$ pSatisfy (not . matchTagClose "figure")
res <- many (pImg <|> pCapt <|> pSkip)
let mbimg = msum $ map fst res
+32
View File
@@ -0,0 +1,32 @@
```
% pandoc -f html -t native
<figure>
<img src="foo" alt="bar">
</figure>
^D
[Para [Image ("",[],[]) [] ("foo","fig:")]]
```
```
% pandoc -f html -t native
<figure>
<img src="foo" alt="bar">
<figcaption>
<div>
baz
</div>
</figcaption>
</figure>
^D
[Para [Image ("",[],[]) [Str "baz"] ("foo","fig:")]]
```
```
% pandoc -f html -t native
<figure>
<img src="foo">
<figcaption><p><em>baz</em></p></figcaption>
</figure>
^D
[Para [Image ("",[],[]) [Emph [Str "baz"]] ("foo","fig:")]]
```