@@ -189,9 +189,13 @@ type ParStyleMap = M.Map String ParStyleData
189189data Numbering = Numbering NameSpaces [Numb] [AbstractNumb]
190190 deriving Show
191191
192−data Numb = Numb String String -- right now, only a key to an abstract num
192+data Numb = Numb String String [LevelOverride]
193193 deriving Show
194194
195+-- ilvl, startOverride, lvl
196+data LevelOverride = LevelOverride String (Maybe String) (Maybe Level)
197+ deriving Show
198+
195199data AbstractNumb = AbstractNumb String [Level]
196200 deriving Show
197201
@@ -505,10 +509,20 @@ filePathIsMedia fp =
505509
506510lookupLevel :: String -> String -> Numbering -> Maybe Level
507511lookupLevel numId ilvl (Numbering _ numbs absNumbs) = do
508− absNumId <- lookup numId $ map (\(Numb nid absnumid) -> (nid, absnumid)) numbs
512+ absNumId <- lookup numId $ map (\(Numb nid absnumid _) -> (nid, absnumid)) numbs
509513 lvls <- lookup absNumId $ map (\(AbstractNumb aid ls) -> (aid, ls)) absNumbs
510514 lookup ilvl $ map (\l@(Level i _ _ _) -> (i, l)) lvls
511515
516+loElemToLevelOverride :: NameSpaces -> Element -> Maybe LevelOverride
517+loElemToLevelOverride ns element
518+ | isElem ns "w" "lvlOverride" element = do
519+ ilvl <- findAttrByName ns "w" "ilvl" element
520+ let startOverride = findChildByName ns "w" "startOverride" element
521+ >>= findAttrByName ns "w" "val"
522+ lvl = findChildByName ns "w" "lvl" element
523+ >>= levelElemToLevel ns
524+ return $ LevelOverride ilvl startOverride lvl
525+loElemToLevelOverride _ _ = Nothing
512526
513527numElemToNum :: NameSpaces -> Element -> Maybe Numb
514528numElemToNum ns element
@@ -516,7 +530,10 @@ numElemToNum ns element
516530 numId <- findAttrByName ns "w" "numId" element
517531 absNumId <- findChildByName ns "w" "abstractNumId" element
518532 >>= findAttrByName ns "w" "val"
519− return $ Numb numId absNumId
533+ let lvlOverrides = mapMaybe
534+ (loElemToLevelOverride ns)
535+ (findChildrenByName ns "w" "lvlOverride" element)
536+ return $ Numb numId absNumId lvlOverrides
520537numElemToNum _ _ = Nothing
521538
522539absNumElemToAbsNum :: NameSpaces -> Element -> Maybe AbstractNumb