mirror of
https://github.com/jgm/pandoc.git
synced 2026-08-26 10:16:32 +00:00
Docx reader: fix list number resumption for sublists. Closes #4324.
The first list item of a sublist should not resume numbering from the number of the last sublist item of the same level, if that sublist was a sublist of a different list item. That is, we should not get: ``` 1. one 1. sub one 2. sub two 2. two 3. sub one ```
This commit is contained in:
@@ -640,7 +640,14 @@ bodyPartToBlocks (ListItem pPr numId lvl (Just levelInfo) parparts) = do
|
||||
, ("text", txt)
|
||||
, ("start", show start)
|
||||
]
|
||||
modify $ \st -> st{ docxListState = M.insert (numId, lvl) start listState}
|
||||
modify $ \st -> st{ docxListState =
|
||||
-- expire all the continuation data for lists of level > this one:
|
||||
-- a new level 1 list item resets continuation for level 2+
|
||||
let expireKeys = [ (numid', lvl')
|
||||
| (numid', lvl') <- M.keys listState
|
||||
, lvl' > lvl
|
||||
]
|
||||
in foldr M.delete (M.insert (numId, lvl) start listState) expireKeys }
|
||||
blks <- bodyPartToBlocks (Paragraph pPr parparts)
|
||||
return $ divWith ("", ["list-item"], kvs) blks
|
||||
bodyPartToBlocks (ListItem pPr _ _ _ parparts) =
|
||||
|
||||
Reference in New Issue
Block a user