diff options
-rw-r--r-- | src/Text/Pandoc/Readers/Muse.hs | 3 | ||||
-rw-r--r-- | test/Tests/Readers/Muse.hs | 12 |
2 files changed, 14 insertions, 1 deletions
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" |