aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2012-08-12 22:04:23 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2012-08-12 22:04:23 -0700
commit27304513f660cc158d73ec5684a01491fa1fed99 (patch)
treea1bd2ddf8a6773337a2d0702bdaa7b2bc4417f70
parent6f24fdb65811661eac851c10e12330878223454b (diff)
downloadpandoc-27304513f660cc158d73ec5684a01491fa1fed99.tar.gz
Added Ext_raw_html extension.
Closes #556 -- you can now specify markdown-raw_html as your input format. (Read: markdown minus raw_html.)
-rw-r--r--README6
-rw-r--r--src/Text/Pandoc/Options.hs5
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs9
3 files changed, 15 insertions, 5 deletions
diff --git a/README b/README
index 551d1cddf..f0b65f934 100644
--- a/README
+++ b/README
@@ -1854,9 +1854,13 @@ HTML, Slidy, DZSlides, S5, EPUB
Raw HTML
--------
+**Extenion: `raw_html`**
+
Markdown allows you to insert raw HTML (or DocBook) anywhere in a document
(except verbatim contexts, where `<`, `>`, and `&` are interpreted
-literally).
+literally). (Techncially this is not an extension, since standard
+markdown allows it, but it has been made an extension so that it can
+be disabled if desired.)
The raw HTML is passed through unchanged in HTML, S5, Slidy, Slideous,
DZSlides, EPUB, Markdown, and Textile output, and suppressed in other
diff --git a/src/Text/Pandoc/Options.hs b/src/Text/Pandoc/Options.hs
index 9992cc9d9..3214a89b6 100644
--- a/src/Text/Pandoc/Options.hs
+++ b/src/Text/Pandoc/Options.hs
@@ -58,6 +58,7 @@ data Extension = Ext_footnotes
| Ext_pipe_tables
| Ext_citations
| Ext_raw_tex
+ | Ext_raw_html
| Ext_tex_math_dollars
| Ext_tex_math_single_backslash
| Ext_tex_math_double_backslash
@@ -97,6 +98,7 @@ pandocExtensions = Set.fromList
, Ext_pipe_tables
, Ext_citations
, Ext_raw_tex
+ , Ext_raw_html
, Ext_tex_math_dollars
, Ext_latex_macros
, Ext_delimited_code_blocks
@@ -119,7 +121,8 @@ pandocExtensions = Set.fromList
]
strictExtensions :: Set Extension
-strictExtensions = Set.empty
+strictExtensions = Set.fromList
+ [ Ext_raw_html ]
data ReaderOptions = ReaderOptions{
readerExtensions :: Set Extension -- ^ Syntax extensions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 995c9c65a..4f13740eb 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -729,9 +729,11 @@ htmlElement :: Parser [Char] ParserState String
htmlElement = strictHtmlBlock <|> liftM snd (htmlTag isBlockTag)
htmlBlock :: Parser [Char] ParserState (F Blocks)
-htmlBlock = return . B.rawBlock "html" <$>
- ((guardEnabled Ext_markdown_in_html_blocks >> rawHtmlBlocks)
- <|> htmlBlock')
+htmlBlock = do
+ guardEnabled Ext_raw_html
+ res <- (guardEnabled Ext_markdown_in_html_blocks >> rawHtmlBlocks)
+ <|> htmlBlock'
+ return $ return $ B.rawBlock "html" res
htmlBlock' :: Parser [Char] ParserState String
htmlBlock' = try $ do
@@ -1507,6 +1509,7 @@ inBrackets parser = do
rawHtmlInline :: Parser [Char] ParserState (F Inlines)
rawHtmlInline = do
+ guardEnabled Ext_raw_html
mdInHtml <- option False $
guardEnabled Ext_markdown_in_html_blocks >> return True
(_,result) <- if mdInHtml