mirror of
https://github.com/jgm/pandoc.git
synced 2026-09-24 15:44:59 +08:00
Muse reader: require closing tag to have the same indentation as opening
This commit is contained in:
@@ -169,9 +169,10 @@ parseHtmlContent :: PandocMonad m
|
||||
=> String -> MuseParser m (Attr, F Blocks)
|
||||
parseHtmlContent tag = try $ do
|
||||
many spaceChar
|
||||
pos <- getPosition
|
||||
(TagOpen _ attr, _) <- htmlTag (~== TagOpen tag [])
|
||||
manyTill spaceChar eol
|
||||
content <- parseBlocksTill (try $ manyTill spaceChar endtag)
|
||||
content <- parseBlocksTill (try $ ((count (sourceColumn pos - 1) spaceChar) >> endtag))
|
||||
manyTill spaceChar eol -- closing tag must be followed by optional whitespace and newline
|
||||
return (htmlAttrToPandoc attr, content)
|
||||
where
|
||||
|
||||
@@ -1242,5 +1242,23 @@ tests =
|
||||
, " </verse>"
|
||||
] =?>
|
||||
bulletList [ para "<quote>" <> lineBlock [ "</quote>" ] ]
|
||||
|
||||
-- Allowing indented closing tags is dangerous,
|
||||
-- as they may terminate lists
|
||||
, "No indented closing tags" =:
|
||||
T.unlines
|
||||
[ "<quote>"
|
||||
, ""
|
||||
, " - Foo"
|
||||
, ""
|
||||
, " </quote>"
|
||||
, ""
|
||||
, " bar"
|
||||
, ""
|
||||
, " <verse>"
|
||||
, " </quote>"
|
||||
, " </verse>"
|
||||
] =?>
|
||||
para "<quote>" <> bulletList [ para "Foo" <> para "</quote>" <> para "bar" <> lineBlock [ "</quote>" ] ]
|
||||
]
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user