summaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers/Org/BlockStarts.hs
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2016-11-19 01:17:04 +0100
committerAlbert Krewinkel <albert@zeitkraut.de>2016-11-19 01:17:04 +0100
commit1a8af5fc442287ef2f7775c4de179e4520487a4f (patch)
tree245e411f22c70ceb5e4076efb021fb16cf886510 /src/Text/Pandoc/Readers/Org/BlockStarts.hs
parentf9df62c29fc88634f1d4f264f894265096b0985f (diff)
Org reader: Ensure images in paragraphs are not parsed as figures
This fixes a regression introduced in 7e5220b57c5a48fabe6e43ba270db812593d3463.
Diffstat (limited to 'src/Text/Pandoc/Readers/Org/BlockStarts.hs')
-rw-r--r--src/Text/Pandoc/Readers/Org/BlockStarts.hs26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/Org/BlockStarts.hs b/src/Text/Pandoc/Readers/Org/BlockStarts.hs
index e4dc31342..53a999307 100644
--- a/src/Text/Pandoc/Readers/Org/BlockStarts.hs
+++ b/src/Text/Pandoc/Readers/Org/BlockStarts.hs
@@ -37,9 +37,11 @@ module Text.Pandoc.Readers.Org.BlockStarts
, commentLineStart
, bulletListStart
, orderedListStart
+ , endOfBlock
) where
-import Text.Pandoc.Readers.Org.Parsing
+import Control.Monad ( void )
+import Text.Pandoc.Readers.Org.Parsing
-- | Horizontal Line (five -- dashes or more)
hline :: OrgParser ()
@@ -110,3 +112,25 @@ noteMarker = try $ do
, (++) <$> string "fn:"
<*> many1Till (noneOf "\n\r\t ") (char ']')
]
+
+ -- | Succeeds if the parser is at the end of a block.
+endOfBlock :: OrgParser ()
+endOfBlock = lookAhead . try $ do
+ void blankline <|> anyBlockStart <|> void noteMarker
+ where
+ -- | Succeeds if there is a new block starting at this position.
+ anyBlockStart :: OrgParser ()
+ anyBlockStart = try . choice $
+ [ exampleLineStart
+ , hline
+ , metaLineStart
+ , commentLineStart
+ , void noteMarker
+ , void tableStart
+ , void drawerStart
+ , void headerStart
+ , void latexEnvStart
+ , void bulletListStart
+ , void orderedListStart
+ ]
+