git.iko.soy/typeable/pandoc
on master help sign in
Docx reader: simplify blockNormalize
3da515bJesse Rosenthal
src/Text/Pandoc/Readers/Docx.hs+8−10
@@ -150,19 +150,17 @@ strNormalize (Str "" : ils) = strNormalize ils
150strNormalize ((Str s) : (Str s') : l) = strNormalize ((Str (s++s')) : l)
150strNormalize ((Str s) : (Str s') : l) = strNormalize ((Str (s++s')) : l)
151strNormalize (il:ils) = il : (strNormalize ils)
151strNormalize (il:ils) = il : (strNormalize ils)
152
152
153+stripSpaces :: [Inline] -> [Inline]
154+stripSpaces ils =
155+ reverse $ dropWhile (Space ==) $ reverse $ dropWhile (Space ==) ils
156+
153blockNormalize :: Block -> Block
157blockNormalize :: Block -> Block
154−blockNormalize (Plain (Space : ils)) = blockNormalize (Plain ils)
155−blockNormalize (Plain ils) = Plain $ strNormalize ils
158+blockNormalize (Plain ils) = Plain $ strNormalize $ stripSpaces ils
156−blockNormalize (Para (Space : ils)) = blockNormalize (Para ils)
157−blockNormalize (Para ils) = Para $ strNormalize ils
159+blockNormalize (Para ils) = Para $ strNormalize $ stripSpaces ils
158−blockNormalize (Header n attr (Space : ils)) =
159− blockNormalize $ Header n attr ils
160blockNormalize (Header n attr ils) =
160blockNormalize (Header n attr ils) =
161− Header n attr $ strNormalize ils
161+ Header n attr $ strNormalize $ stripSpaces ils
162−blockNormalize (Table (Space : ils) align width hdr cells) =
163− blockNormalize $ Table ils align width hdr cells
164blockNormalize (Table ils align width hdr cells) =
162blockNormalize (Table ils align width hdr cells) =
165− Table (strNormalize ils) align width hdr cells
163+ Table (strNormalize $ stripSpaces ils) align width hdr cells
166blockNormalize blk = blk
164blockNormalize blk = blk
167
165
168runToInlines :: ReaderOptions -> Docx -> Run -> [Inline]
166runToInlines :: ReaderOptions -> Docx -> Run -> [Inline]