From 9bcd0908482f26e3630a02e3ad3596a2f67fcab9 Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Sat, 10 Mar 2018 07:27:24 +0300 Subject: Muse reader: parse tag tag is supported by Emacs Muse --- src/Text/Pandoc/Readers/Muse.hs | 8 ++++++++ test/Tests/Readers/Muse.hs | 3 +++ 2 files changed, 11 insertions(+) diff --git a/src/Text/Pandoc/Readers/Muse.hs b/src/Text/Pandoc/Readers/Muse.hs index 4c398080c..3e642b386 100644 --- a/src/Text/Pandoc/Readers/Muse.hs +++ b/src/Text/Pandoc/Readers/Muse.hs @@ -756,6 +756,7 @@ inlineList = [ whitespace , subscriptTag , strikeoutTag , verbatimTag + , classTag , nbsp , link , code @@ -858,6 +859,13 @@ strikeoutTag = inlineTag B.strikeout "del" verbatimTag :: PandocMonad m => MuseParser m (F Inlines) verbatimTag = return . B.text . snd <$> htmlElement "verbatim" +classTag :: PandocMonad m => MuseParser m (F Inlines) +classTag = do + (TagOpen _ attrs, _) <- htmlTag (~== TagOpen "class" []) + res <- manyTill inline (void $ htmlTag (~== TagClose "class")) + let classes = maybe [] words $ lookup "name" attrs + return $ B.spanWith ("", classes, []) <$> mconcat res + nbsp :: PandocMonad m => MuseParser m (F Inlines) nbsp = try $ do string "~~" diff --git a/test/Tests/Readers/Muse.hs b/test/Tests/Readers/Muse.hs index 9fa79234b..01e8d7b85 100644 --- a/test/Tests/Readers/Muse.hs +++ b/test/Tests/Readers/Muse.hs @@ -173,6 +173,9 @@ tests = , "Verbatim tag after text" =: "Foo bar" =?> para "Foo bar" + , "Class tag" =: "bar" =?> para (spanWith ("", ["foo"], []) "bar") + , "Class tag without name" =: "foobar" =?> para (spanWith ("", [], []) "foobar") + -- tag should match with the last tag, not verbatim one , "Nested \"\" inside em tag" =: "foobar" =?> para (emph ("foobar")) -- cgit v1.2.3