git.iko.soy/typeable/pandoc
on master help sign in
Muse reader: require block <literal> tags to be on separate lines
commitc6232d0f7d4aa18db4870b1fdb8ba701822e2889 authorAlexander Krotov <ilabdsf@gmail.com> dateSun 25 Mar 2018, 17:27 (9 years ago) parent2582de5
2 files changed+11−2
src/Text/Pandoc/Readers/Muse.hs+8−2 test/Tests/Readers/Muse.hs+3
src/Text/Pandoc/Readers/Muse.hs+8−2
@@ -404,9 +404,15 @@ exampleTag = try $ do
404404 return $ return $ B.codeBlockWith attr $ rchop $ intercalate "\n" $ dropSpacePrefix $ splitOn "\n" $ lchop contents
405405
406406literalTag :: PandocMonad m => MuseParser m (F Blocks)
407−literalTag =
408− (return . rawBlock) <$> htmlBlock "literal"
407+literalTag = try $ do
408+ many spaceChar
409+ (TagOpen _ attr, _) <- htmlTag (~== TagOpen "literal" [])
410+ manyTill spaceChar eol
411+ content <- manyTill anyChar endtag
412+ manyTill spaceChar eol
413+ return $ return $ rawBlock (htmlAttrToPandoc attr, content)
409414 where
415+ endtag = void $ htmlTag (~== TagClose "literal")
410416 -- FIXME: Emacs Muse inserts <literal> without style into all output formats, but we assume HTML
411417 format (_, _, kvs) = fromMaybe "html" $ lookup "style" kvs
412418 rawBlock (attrs, content) = B.rawBlock (format attrs) $ rchop $ intercalate "\n" $ dropSpacePrefix $ splitOn "\n" $ lchop content
test/Tests/Readers/Muse.hs+3
@@ -210,6 +210,9 @@ tests =
210210 [ test emacsMuse "Inline literal"
211211 ("Foo<literal style=\"html\">lit</literal>bar" =?>
212212 para (text "Foo" <> rawInline "html" "lit" <> text "bar"))
213+ , test emacsMuse "Single inline literal in paragraph"
214+ ("<literal style=\"html\">lit</literal>" =?>
215+ para (rawInline "html" "lit"))
213216 ]
214217 ]
215218