@@ -335,6 +335,13 @@ indentedBlock = try $ do
335335 optional blanklines
336336 return $ unlines lns
337337
338+quotedBlock :: Parser [Char] st [Char]
339+quotedBlock = try $ do
340+ quote <- lookAhead $ oneOf "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
341+ lns <- many1 $ lookAhead (char quote) >> anyLine
342+ optional blanklines
343+ return $ unlines lns
344+
338345codeBlockStart :: Parser [Char] st Char
339346codeBlockStart = string "::" >> blankline >> blankline
340347
@@ -342,7 +349,8 @@ codeBlock :: Parser [Char] st Blocks
342349codeBlock = try $ codeBlockStart >> codeBlockBody
343350
344351codeBlockBody :: Parser [Char] st Blocks
345−codeBlockBody = try $ B.codeBlock . stripTrailingNewlines <$> indentedBlock
352+codeBlockBody = try $ B.codeBlock . stripTrailingNewlines <$>
353+ (indentedBlock <|> quotedBlock)
346354
347355lhsCodeBlock :: RSTParser Blocks
348356lhsCodeBlock = try $ do