diff options
author | Alexander Krotov <ilabdsf@gmail.com> | 2017-11-12 18:08:11 +0300 |
---|---|---|
committer | Alexander Krotov <ilabdsf@gmail.com> | 2017-11-12 18:08:41 +0300 |
commit | df4cb20f297b4a33e0520e62ce3d5ac08bf2a8ee (patch) | |
tree | e784555a3141fbc594eae907d9e2fa28edbb1715 | |
parent | f13f142945a1a05ef7b54b720b1670d16a051225 (diff) | |
download | pandoc-df4cb20f297b4a33e0520e62ce3d5ac08bf2a8ee.tar.gz |
Muse reader: accept Emacs Muse definition lists
Emacs Muse does not require indentation.
-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" |