From 7e7bc3493ef7ca17fbd8746bae8731dfecef60dd Mon Sep 17 00:00:00 2001 From: Albert Krewinkel Date: Sun, 5 May 2019 13:53:11 +0200 Subject: [PATCH] Org reader: recognize emphasis after TODO/DONE keyword Fixes: #5484 --- src/Text/Pandoc/Readers/Org/DocumentTree.hs | 4 +++- test/Tests/Readers/Org/Block/Header.hs | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Text/Pandoc/Readers/Org/DocumentTree.hs b/src/Text/Pandoc/Readers/Org/DocumentTree.hs index 2edbd2354..07b3178ff 100644 --- a/src/Text/Pandoc/Readers/Org/DocumentTree.hs +++ b/src/Text/Pandoc/Readers/Org/DocumentTree.hs @@ -273,7 +273,9 @@ headlineToHeader hdln = do todoKeyword :: Monad m => OrgParser m TodoMarker todoKeyword = try $ do taskStates <- activeTodoMarkers <$> getState - let kwParser tdm = try (tdm <$ string (todoMarkerName tdm) <* spaceChar) + let kwParser tdm = try (tdm <$ string (todoMarkerName tdm) + <* spaceChar + <* updateLastPreCharPos) choice (map kwParser taskStates) todoKeywordToInlines :: TodoMarker -> Inlines diff --git a/test/Tests/Readers/Org/Block/Header.hs b/test/Tests/Readers/Org/Block/Header.hs index e20571b53..5636d9c2a 100644 --- a/test/Tests/Readers/Org/Block/Header.hs +++ b/test/Tests/Readers/Org/Block/Header.hs @@ -87,6 +87,13 @@ tests = let todoSpan = spanWith ("", ["done", "DONE"], []) "DONE" in headerWith ("header", [], []) 1 (todoSpan <> space <> "header") + , "emphasis in first word" =: + "** TODO /fix/ this" =?> + let todoSpan = spanWith ("", ["todo", "TODO"], []) "TODO" + in headerWith ("fix-this", [], []) + 2 + (todoSpan <> space <> emph "fix" <> space <> "this") + , "Header with unknown todo keyword" =: "* WAITING header" =?> headerWith ("waiting-header", [], []) 1 "WAITING header"