@@ -31,7 +31,7 @@ Conversion of markdown-formatted plain text to 'Pandoc' document.
3131module Text.Pandoc.Readers.Markdown ( readMarkdown,
3232 readMarkdownWithWarnings ) where
3333
34−import Data.List ( transpose, sortBy, findIndex, intercalate )
34+import Data.List ( transpose, sortBy, findIndex, intersperse, intercalate )
3535import qualified Data.Map as M
3636import Data.Ord ( comparing )
3737import Data.Char ( isAlphaNum, toLower )
@@ -350,6 +350,7 @@ block = choice [ codeBlockFenced
350350 , header
351351 , rawTeXBlock
352352 , htmlBlock
353+ , lineBlock
353354 , table
354355 , codeBlockIndented
355356 , lhsCodeBlock
@@ -868,6 +869,17 @@ stripMarkdownAttribute s = renderTags' $ map filterAttrib $ parseTags s
868869 [(k,v) | (k,v) <- as, k /= "markdown"]
869870 filterAttrib x = x
870871
872+--
873+-- line block
874+--
875+
876+lineBlock :: MarkdownParser (F Blocks)
877+lineBlock = try $ do
878+ guardEnabled Ext_line_blocks
879+ lines' <- lineBlockLines >>=
880+ mapM (parseFromString (trimInlinesF . mconcat <$> many inline))
881+ return $ B.para <$> (mconcat $ intersperse (return B.linebreak) lines')
882+
871883--
872884-- Tables
873885--