git.iko.soy/typeable/pandoc
on master help sign in
Muse reader: add underline support in Emacs Muse mode
commited261e58320038601ec37a78cb5fe94f2013ca66 authorAlexander Krotov <ilabdsf@gmail.com> dateMon 4 Dec 2017, 15:59 (9 years ago) parent4235c2d
2 files changed+11−1
src/Text/Pandoc/Readers/Muse.hs+7−1 test/Tests/Readers/Muse.hs+4
src/Text/Pandoc/Readers/Muse.hs+7−1
@@ -57,7 +57,7 @@ import Text.Pandoc.Logging
5757import Text.Pandoc.Options
5858import Text.Pandoc.Parsing
5959import Text.Pandoc.Readers.HTML (htmlTag)
60−import Text.Pandoc.Shared (crFilter)
60+import Text.Pandoc.Shared (crFilter, underlineSpan)
6161
6262-- | Read Muse from an input string and return a Pandoc document.
6363readMuse :: PandocMonad m
@@ -577,6 +577,7 @@ inlineList = [ endline
577577 , strongTag
578578 , emph
579579 , emphTag
580+ , underlined
580581 , superscriptTag
581582 , subscriptTag
582583 , strikeoutTag
@@ -666,6 +667,11 @@ strong = fmap B.strong <$> emphasisBetween (string "**")
666667emph :: PandocMonad m => MuseParser m (F Inlines)
667668emph = fmap B.emph <$> emphasisBetween (char '*')
668669
670+underlined :: PandocMonad m => MuseParser m (F Inlines)
671+underlined = do
672+ guardDisabled Ext_amuse -- Supported only by Emacs Muse
673+ fmap underlineSpan <$> emphasisBetween (char '_')
674+
669675emphTag :: PandocMonad m => MuseParser m (F Inlines)
670676emphTag = inlineTag B.emph "em"
671677
test/Tests/Readers/Muse.hs+4
@@ -10,6 +10,7 @@ import Tests.Helpers
1010import Text.Pandoc
1111import Text.Pandoc.Arbitrary ()
1212import Text.Pandoc.Builder
13+import Text.Pandoc.Shared (underlineSpan)
1314-- import Text.Pandoc.Walk (walk)
1415
1516amuse :: Text -> Pandoc
@@ -83,6 +84,9 @@ tests =
8384 "***strength***" =?>
8485 para (strong . emph $ "strength")
8586
87+ , test emacsMuse "Underline"
88+ ("_Underline_" =?> para (underlineSpan "Underline"))
89+
8690 , "Superscript tag" =: "<sup>Superscript</sup>" =?> para (superscript "Superscript")
8791
8892 , "Subscript tag" =: "<sub>Subscript</sub>" =?> para (subscript "Subscript")