git.iko.soy/typeable/pandoc
on master help sign in
Muse reader: parse markup in definition list terms
commit77af25b4c3297cdd011a4c3c2755ffcac9807b7d authorAlexander Krotov <ilabdsf@gmail.com> dateFri 24 Nov 2017, 14:02 (9 years ago) parent137c7c2
2 files changed+6−2
src/Text/Pandoc/Readers/Muse.hs+4−2 test/Tests/Readers/Muse.hs+2
src/Text/Pandoc/Readers/Muse.hs+4−2
@@ -442,7 +442,8 @@ orderedList = try $ do
442442
443443definitionListItem :: PandocMonad m => MuseParser m (F (Inlines, [Blocks]))
444444definitionListItem = try $ do
445− term <- termParser
445+ rawTerm <- termParser
446+ term <- parseFromString (trimInlinesF . mconcat <$> many inline) rawTerm
446447 many1 spaceChar
447448 string "::"
448449 firstLine <- many $ noneOf "\n"
@@ -450,7 +451,8 @@ definitionListItem = try $ do
450451 let lns = firstLine : restLines
451452 lineContent <- parseFromString (withListContext parseBlocks) $ concat lns ++ "\n"
452453 pure $ do lineContent' <- lineContent
453− pure (B.text term, [lineContent'])
454+ term' <- term
455+ pure (term', [lineContent'])
454456 where
455457 termParser = (guardDisabled Ext_amuse <|> void spaceChar) >> -- Initial space is required by Amusewiki, but not Emacs Muse
456458 many spaceChar >>
test/Tests/Readers/Muse.hs+2
@@ -756,6 +756,8 @@ tests =
756756 definitionList [ ("Bar", [ para "baz" ]) ]
757757 , "One-line definition list" =: " foo :: bar" =?>
758758 definitionList [ ("foo", [ para "bar" ]) ]
759+ , "Definition list term with emphasis" =: " *Foo* :: bar\n" =?>
760+ definitionList [ (emph "Foo", [ para "bar" ]) ]
759761 , "Multi-line definition lists" =:
760762 T.unlines
761763 [ " First term :: Definition of first term"