git.iko.soy/typeable/pandoc
on master help sign in
HTML reader: keep h1 tags as normal headers (#7274)
013e4a3Albert Krewinkel
src/Text/Pandoc/Readers/HTML.hs+1−5
@@ -499,17 +499,13 @@ pHeader = try $ do
499 tagOpen (`elem` ["h1","h2","h3","h4","h5","h6"])
499 tagOpen (`elem` ["h1","h2","h3","h4","h5","h6"])
500 (const True)
500 (const True)
501 let attr = toStringAttr attr'
501 let attr = toStringAttr attr'
502− let bodyTitle = TagOpen tagtype attr' ~== TagOpen ("h1" :: Text)
503− [("class","title")]
504 level <- headerLevel tagtype
502 level <- headerLevel tagtype
505 contents <- trimInlines . mconcat <$> manyTill inline (pCloses tagtype <|> eof)
503 contents <- trimInlines . mconcat <$> manyTill inline (pCloses tagtype <|> eof)
506 let ident = fromMaybe "" $ lookup "id" attr
504 let ident = fromMaybe "" $ lookup "id" attr
507 let classes = maybe [] T.words $ lookup "class" attr
505 let classes = maybe [] T.words $ lookup "class" attr
508 let keyvals = [(k,v) | (k,v) <- attr, k /= "class", k /= "id"]
506 let keyvals = [(k,v) | (k,v) <- attr, k /= "class", k /= "id"]
509 attr'' <- registerHeader (ident, classes, keyvals) contents
507 attr'' <- registerHeader (ident, classes, keyvals) contents
510− return $ if bodyTitle
511− then mempty -- skip a representation of the title in the body
512− else B.headerWith attr'' level contents
508+ return $ B.headerWith attr'' level contents
513
509
514pHrule :: PandocMonad m => TagParser m Blocks
510pHrule :: PandocMonad m => TagParser m Blocks
515pHrule = do
511pHrule = do
test/html-reader.native+2−1
@@ -1,5 +1,6 @@
1Pandoc (Meta {unMeta = fromList [("generator",MetaInlines [Str "pandoc"]),("title",MetaInlines [Str "Pandoc",Space,Str "Test",Space,Str "Suite"])]})
1Pandoc (Meta {unMeta = fromList [("generator",MetaInlines [Str "pandoc"]),("title",MetaInlines [Str "Pandoc",Space,Str "Test",Space,Str "Suite"])]})
2+[Header 1 ("pandoc-test-suite",["title"],[]) [Str "Pandoc",Space,Str "Test",Space,Str "Suite"]
2−[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber's",Space,Str "markdown",Space,Str "test",Space,Str "suite."]
3+,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber's",Space,Str "markdown",Space,Str "test",Space,Str "suite."]
3,HorizontalRule
4,HorizontalRule
4,Header 1 ("headers",[],[]) [Str "Headers"]
5,Header 1 ("headers",[],[]) [Str "Headers"]
5,Header 2 ("level-2-with-an-embedded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link ("",[],[]) [Str "embedded",Space,Str "link"] ("/url","")]
6,Header 2 ("level-2-with-an-embedded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link ("",[],[]) [Str "embedded",Space,Str "link"] ("/url","")]