From df4cb20f297b4a33e0520e62ce3d5ac08bf2a8ee Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Sun, 12 Nov 2017 18:08:11 +0300 Subject: Muse reader: accept Emacs Muse definition lists Emacs Muse does not require indentation. --- src/Text/Pandoc/Readers/Muse.hs | 3 ++- test/Tests/Readers/Muse.hs | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Text/Pandoc/Readers/Muse.hs b/src/Text/Pandoc/Readers/Muse.hs index 6f4244ac3..6739bc41f 100644 --- a/src/Text/Pandoc/Readers/Muse.hs +++ b/src/Text/Pandoc/Readers/Muse.hs @@ -423,7 +423,8 @@ definitionListItem = try $ do pure $ do lineContent' <- lineContent pure (B.text term, [lineContent']) where - termParser = many1 spaceChar >> -- Initial space as required by Amusewiki, but not Emacs Muse + termParser = (guardEnabled Ext_emacs <|> void spaceChar) >> -- Initial space is required by Amusewiki, but not Emacs Muse + many spaceChar >> many1Till anyChar (lookAhead (void (try (spaceChar >> string "::")) <|> void newline)) endOfInput = try $ skipMany blankline >> skipSpaces >> eof twoBlankLines = try $ blankline >> skipMany1 blankline diff --git a/test/Tests/Readers/Muse.hs b/test/Tests/Readers/Muse.hs index 1469b01a0..29cef09ca 100644 --- a/test/Tests/Readers/Muse.hs +++ b/test/Tests/Readers/Muse.hs @@ -16,6 +16,10 @@ muse = purely $ \s -> do setOutputFile (Just "out") readMuse def s +emacsMuse :: Text -> Pandoc +emacsMuse = purely $ readMuse def { readerExtensions = + enableExtension Ext_emacs pandocExtensions } + infix 4 =: (=:) :: ToString c => String -> (Text, c) -> TestTree @@ -622,6 +626,14 @@ tests = , "Foo :: bar" ] =?> para "First :: second Foo :: bar" + , test emacsMuse "Emacs Muse definition list" + (T.unlines + [ "First :: second" + , "Foo :: bar" + ] =?> + definitionList [ ("First", [ para "second" ]) + , ("Foo", [ para "bar" ]) + ]) , "Definition list" =: T.unlines [ " First :: second" -- cgit v1.2.3