From c17c62a2c74bbb6e36e12feea5aa6ba8679a023a Mon Sep 17 00:00:00 2001 From: Albert Krewinkel Date: Sun, 29 May 2016 20:00:52 +0200 Subject: Org reader: support new syntax for export blocks Org-mode version 9 usees a new syntax for export blocks. Instead of `#+BEGIN_`, where `` is the format of the block's content, the new format uses `#+BEGIN_export ` instead. Both types are supported. --- src/Text/Pandoc/Readers/Org/Blocks.hs | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') diff --git a/src/Text/Pandoc/Readers/Org/Blocks.hs b/src/Text/Pandoc/Readers/Org/Blocks.hs index dba36fa4d..36645a356 100644 --- a/src/Text/Pandoc/Readers/Org/Blocks.hs +++ b/src/Text/Pandoc/Readers/Org/Blocks.hs @@ -168,6 +168,7 @@ orgBlock = try $ do blkType <- blockHeaderStart ($ blkType) $ case blkType of + "export" -> exportBlock "comment" -> rawBlockLines (const mempty) "html" -> rawBlockLines (return . (B.rawBlock blkType)) "latex" -> rawBlockLines (return . (B.rawBlock blkType)) @@ -239,6 +240,14 @@ rawBlockContent blockType = try $ do ignHeaders :: OrgParser () ignHeaders = (() <$ newline) <|> (() <$ anyLine) +-- | Read a block containing code intended for export in specific backends +-- only. +exportBlock :: String -> OrgParser (F Blocks) +exportBlock blockType = try $ do + exportType <- skipSpaces *> orgArgWord <* ignHeaders + contents <- rawBlockContent blockType + returnF (B.rawBlock (map toLower exportType) contents) + verseBlock :: String -> OrgParser (F Blocks) verseBlock blockType = try $ do ignHeaders -- cgit v1.2.3