git.iko.soy/typeable/pandoc
on master help sign in
Markdown reader: Parse span, div tags as Span, Div elements.

Assuming markdown_in_html extension is set.

commit3117c668a7d245689bfc291d5d9a64cb3178b52c authorJohn MacFarlane <fiddlosopher@gmail.com> dateThu 15 Aug 2013, 22:39 (13 years ago) parent5a5a252
1 file changed+22
src/Text/Pandoc/Readers/Markdown.hs+22
src/Text/Pandoc/Readers/Markdown.hs+22
@@ -446,6 +446,7 @@ block = choice [ mempty <$ blanklines
446446 , header
447447 , lhsCodeBlock
448448 , rawTeXBlock
449+ , divHtml
449450 , htmlBlock
450451 , table
451452 , lineBlock
@@ -1355,6 +1356,7 @@ inline = choice [ whitespace
13551356 , superscript
13561357 , inlineNote -- after superscript because of ^[link](/foo)^
13571358 , autoLink
1359+ , spanHtml
13581360 , rawHtmlInline
13591361 , escapedChar
13601362 , rawLaTeXInline'
@@ -1755,6 +1757,26 @@ inBrackets parser = do
17551757 char ']'
17561758 return $ "[" ++ contents ++ "]"
17571759
1760+spanHtml :: MarkdownParser (F Inlines)
1761+spanHtml = try $ do
1762+ guardEnabled Ext_markdown_in_html_blocks
1763+ (TagOpen _ attrs, _) <- htmlTag (~== TagOpen "span" [])
1764+ contents <- mconcat <$> manyTill inline (htmlTag (~== TagClose "span"))
1765+ let ident = maybe "" id $ lookup "id" attrs
1766+ let classes = maybe [] words $ lookup "class" attrs
1767+ let keyvals = [(k,v) | (k,v) <- attrs, k /= "id" && k /= "class"]
1768+ return $ B.spanWith (ident, classes, keyvals) <$> contents
1769+
1770+divHtml :: MarkdownParser (F Blocks)
1771+divHtml = try $ do
1772+ guardEnabled Ext_markdown_in_html_blocks
1773+ (TagOpen _ attrs, _) <- htmlTag (~== TagOpen "div" [])
1774+ contents <- mconcat <$> manyTill block (htmlTag (~== TagClose "div"))
1775+ let ident = maybe "" id $ lookup "id" attrs
1776+ let classes = maybe [] words $ lookup "class" attrs
1777+ let keyvals = [(k,v) | (k,v) <- attrs, k /= "id" && k /= "class"]
1778+ return $ B.divWith (ident, classes, keyvals) <$> contents
1779+
17581780rawHtmlInline :: MarkdownParser (F Inlines)
17591781rawHtmlInline = do
17601782 guardEnabled Ext_raw_html