git.iko.soy/typeable/pandoc
on master help sign in
Markdown reader: Make 'block' conditional on strictness state,
f74dda2fiddlosopher
Text/Pandoc/Readers/Markdown.hs+27−21
@@ -226,17 +226,32 @@ noteBlock = try $ do
226
226
227parseBlocks = manyTill block eof
227parseBlocks = manyTill block eof
228
228
229+block = do
230+ st <- getState
231+ choice (if stateStrict st
232+ then [ header
233+ , codeBlock
234+ , hrule
235+ , bulletList
236+ , orderedList
237+ , blockQuote
238+ , htmlBlock
239+ , para
240+ , plain
241+ , nullBlock ]
229−block = choice [ header
242+ else [ header
230− , table
243+ , table
231− , codeBlock
244+ , codeBlock
232− , hrule
245+ , hrule
233− , list
246+ , bulletList
247+ , orderedList
248+ , definitionList
234− , blockQuote
249+ , blockQuote
235− , rawLaTeXEnvironment'
250+ , rawLaTeXEnvironment
236− , para
251+ , para
237− , htmlBlock
252+ , htmlBlock
238− , plain
253+ , plain
239− , nullBlock ] <?> "block"
254+ , nullBlock ]) <?> "block"
240
255
241--
256--
242-- header blocks
257-- header blocks
@@ -314,8 +329,6 @@ blockQuote = do
314-- list blocks
329-- list blocks
315--
330--
316
331
317−list = choice [ bulletList, orderedList, definitionList ] <?> "list"
318−
319bulletListStart = try $ do
332bulletListStart = try $ do
320 optional newline -- if preceded by a Plain block in a list context
333 optional newline -- if preceded by a Plain block in a list context
321 nonindentSpaces
334 nonindentSpaces
@@ -434,7 +447,6 @@ defRawBlock = try $ do
434 return $ firstline ++ "\n" ++ unlines rawlines ++ trailing
447 return $ firstline ++ "\n" ++ unlines rawlines ++ trailing
435
448
436definitionList = do
449definitionList = do
437− failIfStrict
438 items <- many1 definitionListItem
450 items <- many1 definitionListItem
439 let (terms, defs) = unzip items
451 let (terms, defs) = unzip items
440 let defs' = compactify defs
452 let defs' = compactify defs
@@ -502,12 +514,6 @@ rawHtmlBlocks = do
502 else combined
514 else combined
503 return $ RawHtml combined'
515 return $ RawHtml combined'
504
516
505−--
506−-- LaTeX
507−--
508−
509−rawLaTeXEnvironment' = failIfStrict >> rawLaTeXEnvironment
510−
511--
517--
512-- Tables
518-- Tables
513--
519--
@@ -629,7 +635,7 @@ alignType strLst len =
629 (True, True) -> AlignCenter
635 (True, True) -> AlignCenter
630 (False, False) -> AlignDefault
636 (False, False) -> AlignDefault
631
637
632−table = failIfStrict >> (simpleTable <|> multilineTable) <?> "table"
638+table = simpleTable <|> multilineTable <?> "table"
633
639
634--
640--
635-- inline
641-- inline