@@ -56,6 +56,7 @@ module Text.Pandoc.Readers.Docx.Parse ( Docx(..)
5656 , ChangeType(..)
5757 , ChangeInfo(..)
5858 , FieldInfo(..)
59+ , Level(..)
5960 , archiveToDocx
6061 , archiveToDocxWithWarnings
6162 ) where
@@ -195,7 +196,8 @@ data AbstractNumb = AbstractNumb String [Level]
195196 deriving Show
196197
197198-- (ilvl, format, string, start)
198−type Level = (String, String, String, Maybe Integer)
199+data Level = Level String String String (Maybe Integer)
200+ deriving Show
199201
200202data DocumentLocation = InDocument | InFootnote | InEndnote
201203 deriving (Eq,Show)
@@ -505,7 +507,7 @@ lookupLevel :: String -> String -> Numbering -> Maybe Level
505507lookupLevel numId ilvl (Numbering _ numbs absNumbs) = do
506508 absNumId <- lookup numId $ map (\(Numb nid absnumid) -> (nid, absnumid)) numbs
507509 lvls <- lookup absNumId $ map (\(AbstractNumb aid ls) -> (aid, ls)) absNumbs
508− lookup ilvl $ map (\l@(i, _, _, _) -> (i, l)) lvls
510+ lookup ilvl $ map (\l@(Level i _ _ _) -> (i, l)) lvls
509511
510512
511513numElemToNum :: NameSpaces -> Element -> Maybe Numb
@@ -537,7 +539,7 @@ levelElemToLevel ns element
537539 let start = findChildByName ns "w" "start" element
538540 >>= findAttrByName ns "w" "val"
539541 >>= (\s -> listToMaybe (map fst (reads s :: [(Integer, String)])))
540− return (ilvl, fmt, txt, start)
542+ return (Level ilvl fmt txt start)
541543levelElemToLevel _ _ = Nothing
542544
543545archiveToNumbering' :: Archive -> Maybe Numbering