From a55a1e3a573d554677a85f2398e975ab71846997 Mon Sep 17 00:00:00 2001 From: Jesse Rosenthal Date: Tue, 2 Jan 2018 11:45:22 -0500 Subject: Docx reader: remove MultiWayIf Different formatting rules across 7.X and 8.X. Use empty case expression instead. --- src/Text/Pandoc/Readers/Docx.hs | 77 +++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/src/Text/Pandoc/Readers/Docx.hs b/src/Text/Pandoc/Readers/Docx.hs index e79c4a4fc..f01a94550 100644 --- a/src/Text/Pandoc/Readers/Docx.hs +++ b/src/Text/Pandoc/Readers/Docx.hs @@ -1,7 +1,6 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PatternGuards #-} -{-# LANGUAGE MultiWayIf #-} {- Copyright (C) 2014-2017 Jesse Rosenthal @@ -575,43 +574,45 @@ bodyPartToBlocks (Paragraph pPr parparts) (if isNull prevParaIls then mempty else space) <> ils' opts <- asks docxOptions - if | isNull ils'' && not (isEnabled Ext_empty_paragraphs opts) -> - return mempty - | Just (TrackedChange Insertion _) <- pChange pPr - , AcceptChanges <- readerTrackChanges opts -> do - modify $ \s -> s {docxPrevPara = mempty} - return $ parStyleToTransform pPr $ para ils'' - | Just (TrackedChange Insertion _) <- pChange pPr - , RejectChanges <- readerTrackChanges opts -> do - modify $ \s -> s {docxPrevPara = ils''} - return mempty - | Just (TrackedChange Insertion cInfo) <- pChange pPr - , AllChanges <- readerTrackChanges opts - , ChangeInfo _ cAuthor cDate <- cInfo -> do - let attr = ("", ["paragraph-insertion"], [("author", cAuthor), ("date", cDate)]) - insertMark = spanWith attr mempty - return $ - parStyleToTransform pPr $ - para $ ils'' <> insertMark - | Just (TrackedChange Deletion _) <- pChange pPr - , AcceptChanges <- readerTrackChanges opts -> do - modify $ \s -> s {docxPrevPara = ils''} - return mempty - | Just (TrackedChange Deletion _) <- pChange pPr - , RejectChanges <- readerTrackChanges opts -> do - modify $ \s -> s {docxPrevPara = mempty} - return $ parStyleToTransform pPr $ para ils'' - | Just (TrackedChange Deletion cInfo) <- pChange pPr - , AllChanges <- readerTrackChanges opts - , ChangeInfo _ cAuthor cDate <- cInfo -> do - let attr = ("", ["paragraph-deletion"], [("author", cAuthor), ("date", cDate)]) - insertMark = spanWith attr mempty - return $ - parStyleToTransform pPr $ - para $ ils'' <> insertMark - | otherwise -> do - modify $ \s -> s {docxPrevPara = mempty} - return $ parStyleToTransform pPr $ para ils'' + case () of + + _ | isNull ils'' && not (isEnabled Ext_empty_paragraphs opts) -> + return mempty + _ | Just (TrackedChange Insertion _) <- pChange pPr + , AcceptChanges <- readerTrackChanges opts -> do + modify $ \s -> s {docxPrevPara = mempty} + return $ parStyleToTransform pPr $ para ils'' + _ | Just (TrackedChange Insertion _) <- pChange pPr + , RejectChanges <- readerTrackChanges opts -> do + modify $ \s -> s {docxPrevPara = ils''} + return mempty + _ | Just (TrackedChange Insertion cInfo) <- pChange pPr + , AllChanges <- readerTrackChanges opts + , ChangeInfo _ cAuthor cDate <- cInfo -> do + let attr = ("", ["paragraph-insertion"], [("author", cAuthor), ("date", cDate)]) + insertMark = spanWith attr mempty + return $ + parStyleToTransform pPr $ + para $ ils'' <> insertMark + _ | Just (TrackedChange Deletion _) <- pChange pPr + , AcceptChanges <- readerTrackChanges opts -> do + modify $ \s -> s {docxPrevPara = ils''} + return mempty + _ | Just (TrackedChange Deletion _) <- pChange pPr + , RejectChanges <- readerTrackChanges opts -> do + modify $ \s -> s {docxPrevPara = mempty} + return $ parStyleToTransform pPr $ para ils'' + _ | Just (TrackedChange Deletion cInfo) <- pChange pPr + , AllChanges <- readerTrackChanges opts + , ChangeInfo _ cAuthor cDate <- cInfo -> do + let attr = ("", ["paragraph-deletion"], [("author", cAuthor), ("date", cDate)]) + insertMark = spanWith attr mempty + return $ + parStyleToTransform pPr $ + para $ ils'' <> insertMark + _ | otherwise -> do + modify $ \s -> s {docxPrevPara = mempty} + return $ parStyleToTransform pPr $ para ils'' bodyPartToBlocks (ListItem pPr numId lvl (Just levelInfo) parparts) = do -- We check whether this current numId has previously been used, -- since Docx expects us to pick up where we left off. -- cgit v1.2.3