git.iko.soy/typeable/pandoc
on master help sign in
ConTeXt writer: Use identifiers for chapters.
75d8c99John MacFarlane
src/Text/Pandoc/Writers/ConTeXt.hs+7−6
@@ -449,19 +449,20 @@ sectionHeader (ident,classes,_) hdrLevel lst = do
449 TopLevelChapter -> hdrLevel - 1
449 TopLevelChapter -> hdrLevel - 1
450 TopLevelSection -> hdrLevel
450 TopLevelSection -> hdrLevel
451 TopLevelDefault -> hdrLevel
451 TopLevelDefault -> hdrLevel
452+ let ident' = if null ident
453+ then empty
452− let ident' = toLabel ident
454+ else brackets (text (toLabel ident))
453 let (section, chapter) = if "unnumbered" `elem` classes
455 let (section, chapter) = if "unnumbered" `elem` classes
454 then (text "subject", text "title")
456 then (text "subject", text "title")
455 else (text "section", text "chapter")
457 else (text "section", text "chapter")
456 return $ case level' of
458 return $ case level' of
457− -1 -> text "\\part" <> braces contents
459+ -1 -> text "\\part" <> ident' <> braces contents
460+ 0 -> char '\\' <> chapter <> ident' <>
458− 0 -> char '\\' <> chapter <> braces contents
461+ braces contents
459 n | n >= 1 && n <= 5 -> char '\\'
462 n | n >= 1 && n <= 5 -> char '\\'
460 <> text (concat (replicate (n - 1) "sub"))
463 <> text (concat (replicate (n - 1) "sub"))
461 <> section
464 <> section
462− <> (if (not . null) ident'
465+ <> ident'
463− then brackets (text ident')
464− else empty)
465 <> braces contents
466 <> braces contents
466 <> blankline
467 <> blankline
467 _ -> contents <> blankline
468 _ -> contents <> blankline
test/command/3968.mdnew file+9
@@ -0,0 +1,9 @@
1+```
2+% pandoc --top-level-division=chapter -t context
3+# Chapter
4+
5+## Section
6+^D
7+\chapter[chapter]{Chapter}
8+\section[section]{Section}
9+```