@@ -53,6 +53,7 @@ import Text.Pandoc.Logging
5353import Text.Pandoc.Parsing hiding ((<|>))
5454import Text.Pandoc.Walk
5555import qualified Data.Map as M
56+import Data.Foldable ( for_ )
5657import Data.Maybe ( fromMaybe, isJust)
5758import Data.List ( intercalate, isPrefixOf )
5859import Data.Char ( isDigit, isLetter, isAlphaNum )
@@ -134,6 +135,13 @@ type HTMLParser m s = ParserT s HTMLState (ReaderT HTMLLocal m)
134135
135136type TagParser m = HTMLParser m [Tag Text]
136137
138+pHtml :: PandocMonad m => TagParser m Blocks
139+pHtml = try $ do
140+ (TagOpen "html" attr) <- lookAhead $ pAnyTag
141+ for_ (lookup "lang" attr) $
142+ updateState . B.setMeta "lang" . B.text . T.unpack
143+ pInTags "html" block
144+
137145pBody :: PandocMonad m => TagParser m Blocks
138146pBody = pInTags "body" block
139147
@@ -175,6 +183,7 @@ block = do
175183 , pList
176184 , pHrule
177185 , pTable
186+ , pHtml
178187 , pHead
179188 , pBody
180189 , pDiv