mirror of
https://github.com/jgm/pandoc.git
synced 2026-08-25 17:56:32 +00:00
Org reader: fix parsers relying on parseFromString
Emphasis was not parsed when it followed directly after some block types (e.g., lists). The org reader uses a wrapper for the `parseFromString` function to handle org-specific state. The last position of a character allowed before emphasis was reset incorrectly in this wrapper. Emphasized text was not recognized when placed directly behind a block which the reader parses using `parseFromString`. Fixes: #4784
This commit is contained in:
@@ -137,14 +137,13 @@ anyLine =
|
||||
<* updateLastPreCharPos
|
||||
<* updateLastForbiddenCharPos
|
||||
|
||||
-- The version Text.Pandoc.Parsing cannot be used, as we need additional parts
|
||||
-- of the state saved and restored.
|
||||
-- | Like @'Text.Pandoc.Parsing'@, but resets the position of the last character
|
||||
-- allowed before emphasised text.
|
||||
parseFromString :: Monad m => OrgParser m a -> String -> OrgParser m a
|
||||
parseFromString parser str' = do
|
||||
oldLastPreCharPos <- orgStateLastPreCharPos <$> getState
|
||||
updateState $ \s -> s{ orgStateLastPreCharPos = Nothing }
|
||||
result <- P.parseFromString parser str'
|
||||
updateState $ \s -> s{ orgStateLastPreCharPos = oldLastPreCharPos }
|
||||
updateState $ \s -> s { orgStateLastPreCharPos = Nothing }
|
||||
return result
|
||||
|
||||
-- | Skip one or more tab or space characters.
|
||||
|
||||
@@ -243,4 +243,15 @@ tests =
|
||||
mconcat [ para "CLOSED: [2015-10-19 Mon 15:03]"
|
||||
, bulletList [ plain "Note taken on [2015-10-19 Mon 13:24]" ]
|
||||
]
|
||||
|
||||
, "Markup after header and list" =:
|
||||
T.unlines [ "* headline"
|
||||
, "- list"
|
||||
, ""
|
||||
, "~variable name~"
|
||||
] =?>
|
||||
mconcat [ headerWith ("headline", [], []) 1 "headline"
|
||||
, bulletList [ plain "list" ]
|
||||
, para (code "variable name")
|
||||
]
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user