@@ -523,10 +523,21 @@ hierarchicalizeWithIds (Header level attr@(_,classes,_) title':xs) = do
523523 sectionContents' <- hierarchicalizeWithIds sectionContents
524524 rest' <- hierarchicalizeWithIds rest
525525 return $ Sec level newnum attr title' sectionContents' : rest'
526−hierarchicalizeWithIds (Div ("refs",classes',kvs')
527− (Header level (ident,classes,kvs) title' : xs):ys) =
528− hierarchicalizeWithIds (Header level (ident,"references":classes,kvs)
529− title' : Div ("refs",classes',kvs') xs : ys)
526+hierarchicalizeWithIds (Div attr@(_,classes',_)
527+ (Header level (_,classes,_) title' : xs):ys)
528+ | not ("columns" `elem` classes')
529+ , not ("column" `elem` classes') = do
530+ lastnum <- S.get
531+ let lastnum' = take level lastnum
532+ let newnum = case length lastnum' of
533+ x | "unnumbered" `elem` classes -> []
534+ | x >= level -> init lastnum' ++ [last lastnum' + 1]
535+ | otherwise -> lastnum ++
536+ replicate (level - length lastnum - 1) 0 ++ [1]
537+ unless (null newnum) $ S.put newnum
538+ sectionContents' <- hierarchicalizeWithIds xs
539+ rest' <- hierarchicalizeWithIds ys
540+ return $ Sec level newnum attr title' sectionContents' : rest'
530541hierarchicalizeWithIds (x:rest) = do
531542 rest' <- hierarchicalizeWithIds rest
532543 return $ Blk x : rest'