git.iko.soy/typeable/pandoc
on master help sign in
Docx writer: Make Level into a real type.

It had previously been an alias for a tuple.

commit2cbd8a3351accb11fa937bb2ea571c569cf6da1f authorJesse Rosenthal <jrosenthal@jhu.edu> dateMon 10 Dec 2018, 16:38 (8 years ago) parent9366388
2 files changed+6−4
src/Text/Pandoc/Readers/Docx.hs+1−1 src/Text/Pandoc/Readers/Docx/Parse.hs+5−3
src/Text/Pandoc/Readers/Docx.hs+1−1
@@ -655,7 +655,7 @@ bodyPartToBlocks (ListItem pPr numId lvl (Just levelInfo) parparts) = do
655655 -- since Docx expects us to pick up where we left off.
656656 listState <- gets docxListState
657657 let startFromState = M.lookup (numId, lvl) listState
658− (_, fmt,txt, startFromLevelInfo) = levelInfo
658+ Level _ fmt txt startFromLevelInfo = levelInfo
659659 start = case startFromState of
660660 Just n -> n + 1
661661 Nothing -> fromMaybe 1 startFromLevelInfo
src/Text/Pandoc/Readers/Docx/Parse.hs+5−3
@@ -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