diff options
Diffstat (limited to 'src/Text/Pandoc/Shared.hs')
-rw-r--r-- | src/Text/Pandoc/Shared.hs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs index e169ccb82..7c8a2e2a8 100644 --- a/src/Text/Pandoc/Shared.hs +++ b/src/Text/Pandoc/Shared.hs @@ -510,9 +510,12 @@ makeSections numbering mbBaseLevel bs = S.modify $ \(_, ln) -> (mbLevel, ln) rest' <- go rest let divattr = (ident, ["section"], []) - let attr = ("",classes,kvs ++ - [("number", intercalate "." (map show newnum)) - | numbering]) + let attr = ("",classes, + -- don't touch number if already present + case lookup "number" kvs of + Nothing | numbering -> + ("number", intercalate "." (map show newnum)) : kvs + _ -> kvs) return $ Div divattr (Header level' attr title' : sectionContents') : rest' go (Div (dident,dclasses,dkvs) |