diff options
author | John MacFarlane <jgm@berkeley.edu> | 2012-08-11 15:04:12 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2012-08-11 15:04:12 -0700 |
commit | 78d3a0fb9d3f862d5e2b61bd45434f7af9cd9f18 (patch) | |
tree | d9d421ec88fb89baa93e25199e4df419b1b235ca | |
parent | 9591fc96147610fddd210ae6396f54850018754e (diff) | |
download | pandoc-78d3a0fb9d3f862d5e2b61bd45434f7af9cd9f18.tar.gz |
Implemented Ext_markdown_attribute.
This adds markdown=1 to block tags.
-rw-r--r-- | README | 6 | ||||
-rw-r--r-- | src/Text/Pandoc/Options.hs | 1 | ||||
-rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 11 |
3 files changed, 17 insertions, 1 deletions
@@ -2207,6 +2207,12 @@ Causes anything between `\\(` and `\\)` to be interpreted as inline TeX math, and anything between `\\[` and `\\]` to be interpreted as display TeX math. +**Extension: `markdown_attribute`**\ +Causes the attribute `markdown=1` to be added to all block-level +HTML tags that might contain markdown. In pandoc, material inside +block-level tags is interpreted a markdown by default, but in some +other implementations, the `markdown=1` tag is needed. + Producing slide shows with Pandoc ================================= diff --git a/src/Text/Pandoc/Options.hs b/src/Text/Pandoc/Options.hs index f7f07a939..6d235e7a8 100644 --- a/src/Text/Pandoc/Options.hs +++ b/src/Text/Pandoc/Options.hs @@ -64,6 +64,7 @@ data Extension = Ext_footnotes | Ext_delimited_code_blocks | Ext_inline_code_attributes | Ext_markdown_in_html_blocks + | Ext_markdown_attribute | Ext_escaped_line_breaks | Ext_autolink_code_spans | Ext_fancy_lists diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 8a1299de6..fbcdeeb14 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -736,10 +736,19 @@ rawTeXBlock = do spaces return $ return result +addMarkdownAttribute :: (Tag String, String) -> Parser [Char] ParserState String +addMarkdownAttribute (t,s) = do + (guardDisabled Ext_markdown_attribute >> return s) + <|> case t of + TagOpen x attrs + | "markdown" `elem` map fst attrs -> return s + | otherwise -> return $ renderTags [TagOpen x (("markdown","1"):attrs)] + _ -> return s + rawHtmlBlocks :: Parser [Char] ParserState String rawHtmlBlocks = do htmlBlocks <- many1 $ do blk <- rawVerbatimBlock <|> - liftM snd (htmlTag isBlockTag) + (htmlTag isBlockTag >>= addMarkdownAttribute) sps <- do sp1 <- many spaceChar sp2 <- option "" (blankline >> return "\n") sp3 <- many spaceChar |