mirror of
https://github.com/jgm/pandoc.git
synced 2026-09-24 15:44:59 +08:00
Merge pull request #4184 from mb21/html-reader-figcaption
HTML Reader: be more forgiving about figcaption
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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:")]]
|
||||
```
|
||||
Reference in New Issue
Block a user