aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2012-08-11 15:04:12 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2012-08-11 15:04:12 -0700
commit78d3a0fb9d3f862d5e2b61bd45434f7af9cd9f18 (patch)
treed9d421ec88fb89baa93e25199e4df419b1b235ca
parent9591fc96147610fddd210ae6396f54850018754e (diff)
downloadpandoc-78d3a0fb9d3f862d5e2b61bd45434f7af9cd9f18.tar.gz
Implemented Ext_markdown_attribute.
This adds markdown=1 to block tags.
-rw-r--r--README6
-rw-r--r--src/Text/Pandoc/Options.hs1
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs11
3 files changed, 17 insertions, 1 deletions
diff --git a/README b/README
index 4b27f3dde..29f6f2ff1 100644
--- a/README
+++ b/README
@@ -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