aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Readers/Muse.hs5
-rw-r--r--test/Tests/Readers/Muse.hs28
2 files changed, 30 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Readers/Muse.hs b/src/Text/Pandoc/Readers/Muse.hs
index 1ae73c148..9d967a9de 100644
--- a/src/Text/Pandoc/Readers/Muse.hs
+++ b/src/Text/Pandoc/Readers/Muse.hs
@@ -115,11 +115,10 @@ htmlElement :: PandocMonad m => String -> MuseParser m (Attr, String)
htmlElement tag = try $ do
(TagOpen _ attr, _) <- htmlTag (~== TagOpen tag [])
content <- manyTill anyChar (endtag <|> endofinput)
- return (htmlAttrToPandoc attr, trim content)
+ return (htmlAttrToPandoc attr, content)
where
endtag = void $ htmlTag (~== TagClose tag)
endofinput = lookAhead $ try $ skipMany blankline >> skipSpaces >> eof
- trim = dropWhile (=='\n') . reverse . dropWhile (=='\n') . reverse
htmlAttrToPandoc :: [Attribute String] -> Attr
htmlAttrToPandoc attrs = (ident, classes, keyvals)
@@ -132,7 +131,7 @@ parseHtmlContentWithAttrs :: PandocMonad m
=> String -> MuseParser m a -> MuseParser m (Attr, [a])
parseHtmlContentWithAttrs tag parser = do
(attr, content) <- htmlElement tag
- parsedContent <- try $ parseContent content
+ parsedContent <- try $ parseContent (content ++ "\n")
return (attr, parsedContent)
where
parseContent = parseFromString $ nested $ manyTill parser endOfContent
diff --git a/test/Tests/Readers/Muse.hs b/test/Tests/Readers/Muse.hs
index fe0a59992..a069bb972 100644
--- a/test/Tests/Readers/Muse.hs
+++ b/test/Tests/Readers/Muse.hs
@@ -314,5 +314,33 @@ tests =
, para "* Bar"
]
]
+ , "List inside a tag" =:
+ T.unlines
+ [ "<quote>"
+ , " 1. First"
+ , ""
+ , " 2. Second"
+ , ""
+ , " 3. Third"
+ , "</quote>"
+ ] =?>
+ blockQuote (orderedListWith (1, Decimal, Period) [ para "First"
+ , para "Second"
+ , para "Third"
+ ])
+ -- Amusewiki requires block tags to be on separate lines,
+ -- but Emacs Muse allows them to be on the same line as contents.
+ , "List inside an inline tag" =:
+ T.unlines
+ [ "<quote> 1. First"
+ , ""
+ , " 2. Second"
+ , ""
+ , " 3. Third</quote>"
+ ] =?>
+ blockQuote (orderedListWith (1, Decimal, Period) [ para "First"
+ , para "Second"
+ , para "Third"
+ ])
]
]