diff options
| author | mb21 <mb21@users.noreply.github.com> | 2017-12-21 09:56:14 +0100 | 
|---|---|---|
| committer | mb21 <mb21@users.noreply.github.com> | 2017-12-23 09:42:04 +0100 | 
| commit | 9b54b9461221f1bb34b8d3e6ffa0f43d5a9e6352 (patch) | |
| tree | 5bab188e9fc91ee199831a169b4dc6e2e8e8fac6 | |
| parent | e3c1449ae6c238f7195981f39bb505da0c69bc0c (diff) | |
| download | pandoc-9b54b9461221f1bb34b8d3e6ffa0f43d5a9e6352.tar.gz | |
HTML Reader: be more forgiving about figcaption
fixes #4183
| -rw-r--r-- | src/Text/Pandoc/Readers/HTML.hs | 11 | ||||
| -rw-r--r-- | test/command/4183.md | 32 | 
2 files changed, 39 insertions, 4 deletions
| diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs index f5f296712..3e59c4bf7 100644 --- a/src/Text/Pandoc/Readers/HTML.hs +++ b/src/Text/Pandoc/Readers/HTML.hs @@ -74,8 +74,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) @@ -588,8 +588,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 diff --git a/test/command/4183.md b/test/command/4183.md new file mode 100644 index 000000000..c18320882 --- /dev/null +++ b/test/command/4183.md @@ -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:")]] +``` | 
