@@ -195,10 +195,7 @@ noteBlock = try $ do
195195 raw <- sepBy rawLines (try (blankline >> indentSpaces))
196196 optional blanklines
197197 -- parse the extracted text, which may contain various block elements:
198− rest <- getInput
199− setInput $ (joinWithSep "\n" raw) ++ "\n\n"
200− contents <- parseBlocks
201− setInput rest
198+ contents <- parseFromString parseBlocks $ (joinWithSep "\n" raw) ++ "\n\n"
202199 return $ NoteBlock ref contents
203200
204201--
@@ -307,10 +304,7 @@ emailBlockQuote = try $ do
307304blockQuote = do
308305 raw <- emailBlockQuote <|> emacsBoxQuote
309306 -- parse the extracted block, which may contain various block elements:
310− rest <- getInput
311− setInput $ (joinWithSep "\n" raw) ++ "\n\n"
312− contents <- parseBlocks
313− setInput rest
307+ contents <- parseFromString parseBlocks $ (joinWithSep "\n" raw) ++ "\n\n"
314308 return $ BlockQuote contents
315309
316310--
@@ -393,11 +387,8 @@ listItem start = try $ do
393387 let oldContext = stateParserContext state
394388 setState $ state {stateParserContext = ListItemState}
395389 -- parse the extracted block, which may contain various block elements:
396− rest <- getInput
397390 let raw = concat (first:continuations)
398− setInput raw
399− contents <- parseBlocks
400− setInput rest
391+ contents <- parseFromString parseBlocks raw
401392 updateState (\st -> st {stateParserContext = oldContext})
402393 return contents
403394
@@ -419,10 +410,7 @@ definitionListItem = try $ do
419410 state <- getState
420411 let oldContext = stateParserContext state
421412 -- parse the extracted block, which may contain various block elements:
422− rest <- getInput
423− setInput (concat raw)
424− contents <- parseBlocks
425− setInput rest
413+ contents <- parseFromString parseBlocks $ concat raw
426414 updateState (\st -> st {stateParserContext = oldContext})
427415 return ((normalizeSpaces term), contents)
428416