diff options
-rw-r--r-- | README | 6 | ||||
-rw-r--r-- | src/Text/Pandoc/Options.hs | 5 | ||||
-rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 9 |
3 files changed, 15 insertions, 5 deletions
@@ -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 |