diff options
| -rw-r--r-- | src/Text/Pandoc/Writers/ConTeXt.hs | 22 | ||||
| -rw-r--r-- | test/command/8486.md | 43 |
2 files changed, 53 insertions, 12 deletions
diff --git a/src/Text/Pandoc/Writers/ConTeXt.hs b/src/Text/Pandoc/Writers/ConTeXt.hs index fc8ff12c9..652c4471d 100644 --- a/src/Text/Pandoc/Writers/ConTeXt.hs +++ b/src/Text/Pandoc/Writers/ConTeXt.hs @@ -664,20 +664,18 @@ sectionHeader (ident,classes,kvs) hdrLevel lst secenv = do opts <- gets stOptions contents <- inlineListToConTeXt lst levelText <- sectionLevelToText opts (ident,classes,kvs) hdrLevel secenv - let ident' = if T.null ident - then empty - else "reference=" <> braces (literal (toLabel ident)) - let contents' = if isEmpty contents - then empty - else "title=" <> braces contents - let options = if isEmpty keys || isEmpty levelText - then empty - else brackets keys - where keys = hcat $ intersperse "," $ - filter (not . isEmpty) [contents', ident'] + let optsList = mconcat . filter (not . null) $ + [ ["title=" <> braces contents | not (isEmpty contents)] + , ["reference=" <> braces (literal (toLabel ident)) | not (T.null ident)] + , ["number=no" | "unnumbered" `elem` classes] + , ["incrementnumber=no" | "unnumbered" `elem` classes] + ] let starter = case secenv of SectionHeading -> "\\start" NonSectionHeading -> "\\" + let options = if null optsList || isEmpty levelText + then empty + else brackets $ hcat (intersperse "," optsList) return $ starter <> levelText <> options <> blankline -- | Craft the section footer @@ -693,7 +691,7 @@ sectionLevelToText :: PandocMonad m -> WM m (Doc Text) sectionLevelToText opts (_,classes,_) hdrLevel headingType = do let semanticSection shift = do - let (section, chapter) = if "unnumbered" `elem` classes + let (section, chapter) = if "unlisted" `elem` classes then (literal "subject", literal "title") else (literal "section", literal "chapter") return $ case hdrLevel + shift of diff --git a/test/command/8486.md b/test/command/8486.md new file mode 100644 index 000000000..c62f2909b --- /dev/null +++ b/test/command/8486.md @@ -0,0 +1,43 @@ +# Unnumbered and unlisted headings in ConTeXt + +``` +% pandoc --to=context + +# Preface {.unlisted -} + +Nullam rutrum. + +# Introduction + +Nullam eu ante vel est convallis dignissim. + +# Methods + +Sed diam. Nulla posuere. Praesent fermentum tempor tellus. Nam +vestibulum accumsan nisl. Nam vestibulum accumsan nisl. + +# References {-} +^D +\startsectionlevel[title={Preface},reference={preface},number=no,incrementnumber=no] + +Nullam rutrum. + +\stopsectionlevel + +\startsectionlevel[title={Introduction},reference={introduction}] + +Nullam eu ante vel est convallis dignissim. + +\stopsectionlevel + +\startsectionlevel[title={Methods},reference={methods}] + +Sed diam. Nulla posuere. Praesent fermentum tempor tellus. Nam +vestibulum accumsan nisl. Nam vestibulum accumsan nisl. + +\stopsectionlevel + +\startsectionlevel[title={References},reference={references},number=no,incrementnumber=no] + +\stopsectionlevel +``` |
