diff options
Diffstat (limited to 'src/Text/Pandoc/Readers')
| -rw-r--r-- | src/Text/Pandoc/Readers/AsciiDoc.hs | 6 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/Djot.hs | 3 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/Docx.hs | 7 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/HTML.hs | 8 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/HTML/Table.hs | 6 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/JATS.hs | 8 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/LaTeX/Math.hs | 4 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 7 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/ODT/Arrows/State.hs | 1 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/ODT/Generic/XMLConverter.hs | 4 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/ODT/StyleReader.hs | 6 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/Org/Blocks.hs | 8 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/RIS.hs | 4 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/RTF.hs | 10 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/Textile.hs | 5 |
15 files changed, 44 insertions, 43 deletions
diff --git a/src/Text/Pandoc/Readers/AsciiDoc.hs b/src/Text/Pandoc/Readers/AsciiDoc.hs index 391c38b30..965e47fa1 100644 --- a/src/Text/Pandoc/Readers/AsciiDoc.hs +++ b/src/Text/Pandoc/Readers/AsciiDoc.hs @@ -37,7 +37,7 @@ import Text.Pandoc.Parsing (newPos, sourceName) import Text.Pandoc.Logging import Text.Pandoc.Sources import Control.Monad.State -import Data.List (intersperse, foldl') +import qualified Data.List as L import Data.Char (chr, ord) import qualified Data.Text as T import qualified Data.Map as M @@ -148,7 +148,7 @@ doMeta meta = do B.setMeta "version" vers . maybe id (B.setMeta "date") mbdate . maybe id (B.setMeta "remark") mbremark) . - flip (foldl' (\m (k,v) -> + flip (L.foldl' (\m (k,v) -> -- leave out flags that are set just for processing if k == "sectids" || k == "stem" then m @@ -363,7 +363,7 @@ doInline (A.Inline (A.Attr _ps kvs') it) = do (B.str ("[" <> t <> "]")) A.Button t -> pure $ B.spanWith ("",["button"],[]) (B.strong $ B.str ("[" <> t <> "]")) - A.Kbd ts -> pure $ mconcat $ intersperse (B.str "+") $ + A.Kbd ts -> pure $ mconcat $ L.intersperse (B.str "+") $ map (B.spanWith ("",["kbd"],[]) . B.strong . B.str) ts A.Menu ts -> pure $ B.spanWith ("",["menu"],[]) $ B.strong $ B.text $ T.intercalate " › " ts diff --git a/src/Text/Pandoc/Readers/Djot.hs b/src/Text/Pandoc/Readers/Djot.hs index ecfe3e2c1..471d6a0c9 100644 --- a/src/Text/Pandoc/Readers/Djot.hs +++ b/src/Text/Pandoc/Readers/Djot.hs @@ -37,7 +37,6 @@ import Text.Pandoc.Logging import Text.Pandoc.Emoji (emojiToInline) import Control.Monad.Reader import qualified Data.Foldable as F -import Data.List (foldl') import Data.ByteString (ByteString) -- import Debug.Trace @@ -141,7 +140,7 @@ convertBlock (D.Node pos attr bl) = addAttrToBlock pos attr <$> (hs,bs):rs -> (hs,row:bs):rs [] -> [([],[row])] let reverseSnd (as,bs) = (as,reverse bs) - let bodies = reverse $ map reverseSnd $ foldl' getBody [] rest + let bodies = reverse $ map reverseSnd $ F.foldl' getBody [] rest let toCell (D.Cell _ al ils) = Cell nullAttr (toAlign al) (RowSpan 1) (ColSpan 1) . (\is -> [Para $ toList is]) <$> convertInlines ils diff --git a/src/Text/Pandoc/Readers/Docx.hs b/src/Text/Pandoc/Readers/Docx.hs index 8f70fe7a6..8ec14c040 100644 --- a/src/Text/Pandoc/Readers/Docx.hs +++ b/src/Text/Pandoc/Readers/Docx.hs @@ -74,7 +74,8 @@ import Control.Monad.State.Strict import Data.Bifunctor (bimap, first) import qualified Data.ByteString.Lazy as B import Data.Default (Default) -import Data.List (delete, intersect, foldl') +import Data.List (delete, intersect) +import qualified Data.List as L import Data.Char (isSpace) import qualified Data.Map as M import qualified Data.Text as T @@ -625,8 +626,8 @@ rowsToRows rows = do splitHeaderRows :: Bool -> [Docx.Row] -> ([Docx.Row], [Docx.Row]) splitHeaderRows hasFirstRowFormatting rs = bimap reverse reverse $ fst $ if hasFirstRowFormatting - then foldl' f ((take 1 rs, []), True) (drop 1 rs) - else foldl' f (([], []), False) rs + then L.foldl' f ((take 1 rs, []), True) (drop 1 rs) + else L.foldl' f (([], []), False) rs where f ((headerRows, bodyRows), previousRowWasHeader) r@(Docx.Row h cs) | h == HasTblHeader || (previousRowWasHeader && any isContinuationCell cs) diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs index 23019e651..9178ab848 100644 --- a/src/Text/Pandoc/Readers/HTML.hs +++ b/src/Text/Pandoc/Readers/HTML.hs @@ -33,7 +33,7 @@ import Data.Char (isAlphaNum, isLetter) import Data.Default (Default (..), def) import Data.Foldable (for_) import Data.List.Split (splitWhen) -import Data.List (foldl') +import qualified Data.List as L import qualified Data.Map as M import Data.Maybe (fromMaybe, isJust, isNothing) import Data.Either (partitionEithers) @@ -444,9 +444,9 @@ pDefListItem = try $ do terms <- many1 (try $ skipMany nonItem >> pInTags "dt" inline) defs <- many1 (try $ skipMany nonItem >> pInTags "dd" block) skipMany nonItem - let term = foldl' (\x y -> if null x - then trimInlines y - else x <> B.linebreak <> trimInlines y) + let term = L.foldl' (\x y -> if null x + then trimInlines y + else x <> B.linebreak <> trimInlines y) mempty terms return (term, map (fixPlains True) defs) diff --git a/src/Text/Pandoc/Readers/HTML/Table.hs b/src/Text/Pandoc/Readers/HTML/Table.hs index 756f857fd..b452a60ac 100644 --- a/src/Text/Pandoc/Readers/HTML/Table.hs +++ b/src/Text/Pandoc/Readers/HTML/Table.hs @@ -20,7 +20,7 @@ import Control.Applicative ((<|>)) import Data.Maybe (fromMaybe, isJust) import Data.Either (lefts, rights) import Data.List.NonEmpty (nonEmpty) -import Data.List (foldl') +import qualified Data.List as L import Data.Text (Text) import Text.HTML.TagSoup import Text.Pandoc.Builder (Blocks) @@ -204,9 +204,9 @@ pTableBody block = try $ do let adjustRowHeadCols headcolsv (currentrow, (numheads, Row _ cells)) = - foldl' (adjustRowHeadColsForCell currentrow) headcolsv + L.foldl' (adjustRowHeadColsForCell currentrow) headcolsv (take numheads cells) - let headcols = foldl' adjustRowHeadCols + let headcols = L.foldl' adjustRowHeadCols (V.replicate numrows (0 :: Int)) (zip [(0 :: Int)..] rows) let rowHeadCols = case V.uncons headcols of diff --git a/src/Text/Pandoc/Readers/JATS.hs b/src/Text/Pandoc/Readers/JATS.hs index 8f9951099..a1ea1d918 100644 --- a/src/Text/Pandoc/Readers/JATS.hs +++ b/src/Text/Pandoc/Readers/JATS.hs @@ -21,7 +21,7 @@ import Text.Pandoc.Error (PandocError(..)) import Data.Char (isDigit, isSpace) import Data.Default import Data.Generics -import Data.List (foldl', intersperse) +import qualified Data.List as L import qualified Data.Map as Map import Data.Maybe (maybeToList, fromMaybe, catMaybes) import Data.Text (Text) @@ -290,11 +290,11 @@ parseBlock (Elem e) = do let items = filterChildren (named "def") e' terms' <- mapM getInlines terms items' <- mapM getBlocks items - return (mconcat $ intersperse (str "; ") terms', items') + return (mconcat $ L.intersperse (str "; ") terms', items') parseFigure = do modify $ \st -> st{ jatsInFigure = True } capt <- case filterChild (named "caption") e of - Just t -> mconcat . intersperse linebreak <$> + Just t -> mconcat . L.intersperse linebreak <$> mapM getInlines (filterChildren (const True) t) Nothing -> return mempty contents <- getBlocks e @@ -350,7 +350,7 @@ parseBlock (Elem e) = do n <- safeRead $ "0" <> T.filter (\x -> isDigit x || x == '.') w if n > 0 then Just n else Nothing let firstBody = fromMaybe [] (headMay multipleBodyRowElements) - let numrows = foldl' max 0 $ map length firstBody + let numrows = L.foldl' max 0 $ map length firstBody let aligns = case colspecs of [] -> replicate numrows AlignDefault cs -> map toAlignment cs diff --git a/src/Text/Pandoc/Readers/LaTeX/Math.hs b/src/Text/Pandoc/Readers/LaTeX/Math.hs index f1491656e..5685465f8 100644 --- a/src/Text/Pandoc/Readers/LaTeX/Math.hs +++ b/src/Text/Pandoc/Readers/LaTeX/Math.hs @@ -14,7 +14,7 @@ module Text.Pandoc.Readers.LaTeX.Math ) where import Data.Maybe (fromMaybe, mapMaybe, listToMaybe) -import Data.List (foldl') +import qualified Data.List as L import Text.Pandoc.Walk (walk) import Text.Pandoc.Builder as B import qualified Data.Sequence as Seq @@ -160,7 +160,7 @@ newtheorem inline = do extractLabelFromBlock :: Block -> Maybe Text extractLabelFromBlock (Para inlines) = extractLabel Nothing inlines where - extractLabel = foldl' go + extractLabel = L.foldl' go go :: Maybe Text -> Inline -> Maybe Text go (Just t) _ = Just t go Nothing (Span (_, _, attrs) _) = lookup "label" attrs diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 1ee1b801e..ad22996b4 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -24,7 +24,8 @@ import Control.Monad import Control.Monad.Except (throwError) import qualified Data.Bifunctor as Bifunctor import Data.Char (isAlphaNum, isPunctuation, isSpace) -import Data.List (transpose, elemIndex, sortOn, foldl') +import Data.List (transpose, elemIndex, sortOn) +import qualified Data.List as L import qualified Data.Map as M import Data.Maybe import qualified Data.Set as Set @@ -388,7 +389,7 @@ referenceKey = try $ do addKvs <- option [] $ guardEnabled Ext_mmd_link_attributes >> many (try $ spnl >> keyValAttr) blanklines - let attr' = extractIdClass $ foldl' (\x f -> f x) attr addKvs + let attr' = extractIdClass $ L.foldl' (\x f -> f x) attr addKvs target = (escapeURI $ trimr src, tit) st <- getState let oldkeys = stateKeys st @@ -648,7 +649,7 @@ attributes = try $ do spnl attrs <- many (attribute <* spnl) char '}' - return $ foldl' (\x f -> f x) nullAttr attrs + return $ L.foldl' (\x f -> f x) nullAttr attrs attribute :: PandocMonad m => MarkdownParser m (Attr -> Attr) attribute = identifierAttr <|> classAttr <|> keyValAttr <|> specialAttr diff --git a/src/Text/Pandoc/Readers/ODT/Arrows/State.hs b/src/Text/Pandoc/Readers/ODT/Arrows/State.hs index 9e695fa17..ef6986278 100644 --- a/src/Text/Pandoc/Readers/ODT/Arrows/State.hs +++ b/src/Text/Pandoc/Readers/ODT/Arrows/State.hs @@ -36,7 +36,6 @@ module Text.Pandoc.Readers.ODT.Arrows.State import Control.Arrow import qualified Control.Category as Cat import Control.Monad -import Data.Foldable import Text.Pandoc.Readers.ODT.Arrows.Utils import Text.Pandoc.Readers.ODT.Generic.Fallible diff --git a/src/Text/Pandoc/Readers/ODT/Generic/XMLConverter.hs b/src/Text/Pandoc/Readers/ODT/Generic/XMLConverter.hs index f5bd843ca..727ec3166 100644 --- a/src/Text/Pandoc/Readers/ODT/Generic/XMLConverter.hs +++ b/src/Text/Pandoc/Readers/ODT/Generic/XMLConverter.hs @@ -64,7 +64,7 @@ import qualified Data.Map as M import Data.Text (Text) import Data.Default import Data.Maybe -import Data.List (foldl') +import qualified Data.List as L import qualified Data.List.NonEmpty as NonEmpty import Data.List.NonEmpty (NonEmpty(..)) @@ -298,7 +298,7 @@ readNSattributes = fromState $ \state -> maybe (state, failEmpty ) => XMLConverterState nsID extraState -> Maybe (XMLConverterState nsID extraState) extractNSAttrs startState - = foldl' (\state d -> state >>= addNS d) + = L.foldl' (\state d -> state >>= addNS d) (Just startState) nsAttribs where nsAttribs = mapMaybe readNSattr (XML.elAttribs element) diff --git a/src/Text/Pandoc/Readers/ODT/StyleReader.hs b/src/Text/Pandoc/Readers/ODT/StyleReader.hs index 474303bd6..a1031d4ab 100644 --- a/src/Text/Pandoc/Readers/ODT/StyleReader.hs +++ b/src/Text/Pandoc/Readers/ODT/StyleReader.hs @@ -45,7 +45,7 @@ import Control.Arrow import Data.Default import qualified Data.Foldable as F -import Data.List (unfoldr, foldl') +import qualified Data.List as L import qualified Data.Map as M import Data.Maybe import Data.Text (Text) @@ -121,7 +121,7 @@ fontPitchReader = executeInSub NsOffice "font-face-decls" ( &&& lookupDefaultingAttr NsStyle "font-pitch" )) - >>?^ ( M.fromList . foldl' accumLegalPitches [] ) + >>?^ ( M.fromList . L.foldl' accumLegalPitches [] ) ) `ifFailedDo` returnV (Right M.empty) where accumLegalPitches ls (Nothing,_) = ls accumLegalPitches ls (Just n,p) = (n,p):ls @@ -603,7 +603,7 @@ lookupListStyleByName name Styles{..} = M.lookup name listStylesByName -- be the first element of the list, followed by its parent and so on. -- The current style is not in the list. parents :: Style -> Styles -> [Style] -parents style styles = unfoldr findNextParent style -- Ha! +parents style styles = L.unfoldr findNextParent style -- Ha! where findNextParent Style{..} = fmap duplicate $ (`lookupStyle` styles) =<< styleParentName diff --git a/src/Text/Pandoc/Readers/Org/Blocks.hs b/src/Text/Pandoc/Readers/Org/Blocks.hs index 9c9123a47..cddd56382 100644 --- a/src/Text/Pandoc/Readers/Org/Blocks.hs +++ b/src/Text/Pandoc/Readers/Org/Blocks.hs @@ -38,7 +38,7 @@ import Data.Bifunctor (bimap) import Data.Char (isSpace) import Data.Default (Default) import Data.Functor (($>)) -import Data.List (find, foldl') +import qualified Data.List as L import Data.Maybe (fromMaybe, isJust, isNothing) import Data.Text (Text) import Data.List.NonEmpty (nonEmpty) @@ -130,9 +130,9 @@ blockAttributes :: PandocMonad m => OrgParser m BlockAttributes blockAttributes = try $ do kv <- many stringyMetaAttribute guard $ all (isBlockAttr . fst) kv - let caption = foldl' (appendValues "caption") Nothing kv - let kvAttrs = foldl' (appendValues "attr_html") Nothing kv - let name = snd <$> find ((`elem` ["name", "label"]) . fst) (reverse kv) + let caption = L.foldl' (appendValues "caption") Nothing kv + let kvAttrs = L.foldl' (appendValues "attr_html") Nothing kv + let name = snd <$> L.find ((`elem` ["name", "label"]) . fst) (reverse kv) caption' <- traverse (parseFromString inlines . (<> "\n")) caption kvAttrs' <- parseFromString keyValues . (<> "\n") $ fromMaybe mempty kvAttrs return BlockAttributes diff --git a/src/Text/Pandoc/Readers/RIS.hs b/src/Text/Pandoc/Readers/RIS.hs index 66fa26506..fab266657 100644 --- a/src/Text/Pandoc/Readers/RIS.hs +++ b/src/Text/Pandoc/Readers/RIS.hs @@ -23,7 +23,7 @@ import Text.Pandoc.Options import Text.Pandoc.Definition import Text.Pandoc.Parsing import Data.Char (isAsciiUpper, isDigit, isSpace, ord, chr) -import Data.List (foldl') +import qualified Data.List as L import Citeproc (Reference(..), ItemId(..), Val(..), Date(..), DateParts(..), toVariable) import Text.Pandoc.Builder as B @@ -185,7 +185,7 @@ risReferences = do return $ fixDuplicateIds $ map risRecordToReference recs fixDuplicateIds :: [Reference Text] -> [Reference Text] -fixDuplicateIds = reverse . snd . foldl' go (mempty, []) +fixDuplicateIds = reverse . snd . L.foldl' go (mempty, []) where go (ids_seen, refs) ref = case M.lookup (referenceId ref) ids_seen of diff --git a/src/Text/Pandoc/Readers/RTF.hs b/src/Text/Pandoc/Readers/RTF.hs index b1195ac19..cb60242be 100644 --- a/src/Text/Pandoc/Readers/RTF.hs +++ b/src/Text/Pandoc/Readers/RTF.hs @@ -20,7 +20,7 @@ import qualified Data.Sequence as Seq import Control.Monad import Control.Monad.Except (throwError) import Crypto.Hash (hashWith, SHA1(SHA1)) -import Data.List (find, foldl') +import qualified Data.List as L import Data.Word (Word8, Word16) import Data.Default import Data.Text (Text) @@ -895,7 +895,7 @@ parseStyle (Tok _ (Grouped toks)) = do _ -> mempty let isBasedOn (Tok _ (ControlWord "sbasedon" (Just _))) = True isBasedOn _ = False - let styBasedOn = case find isBasedOn toks of + let styBasedOn = case L.find isBasedOn toks of Just (Tok _ (ControlWord "sbasedon" (Just i))) -> Just i _ -> Nothing let isStyleControl (Tok _ (ControlWord x _)) = @@ -920,7 +920,7 @@ hexToWord t = case TR.hexadecimal t of handlePict :: PandocMonad m => [Tok] -> RTFParser m () handlePict toks = do - let pict = foldl' getPictData def toks + let pict = L.foldl' getPictData def toks let altText = "image" let bytes = if picBinary pict @@ -959,7 +959,7 @@ handlePict toks = do processFontTable :: [Tok] -> FontTable -processFontTable = snd . foldl' go (0, mempty) +processFontTable = snd . L.foldl' go (0, mempty) where go (fontnum, tbl) (Tok _ tok') = case tok' of @@ -972,7 +972,7 @@ processFontTable = snd . foldl' go (0, mempty) (ControlWord "fdecor" _) -> (fontnum, IntMap.insert fontnum Decor tbl) (ControlWord "ftech" _) -> (fontnum, IntMap.insert fontnum Tech tbl) (ControlWord "fbidi" _) -> (fontnum, IntMap.insert fontnum Bidi tbl) - (Grouped ts) -> foldl' go (fontnum, tbl) ts + (Grouped ts) -> L.foldl' go (fontnum, tbl) ts _ -> (fontnum, tbl) defaultAnsiWordToChar :: Word8 -> Char diff --git a/src/Text/Pandoc/Readers/Textile.hs b/src/Text/Pandoc/Readers/Textile.hs index f6a73d641..cbe10b327 100644 --- a/src/Text/Pandoc/Readers/Textile.hs +++ b/src/Text/Pandoc/Readers/Textile.hs @@ -38,7 +38,8 @@ module Text.Pandoc.Readers.Textile ( readTextile) where import Control.Monad (guard, liftM) import Control.Monad.Except (throwError) import Data.Char (digitToInt, isUpper) -import Data.List (intersperse, transpose, foldl') +import Data.List (intersperse, transpose) +import qualified Data.List as L import Data.List.NonEmpty (NonEmpty(..), nonEmpty) import qualified Data.Map as M import Data.Text (Text) @@ -732,7 +733,7 @@ orderedListStartAttr = do -- | Html / CSS attributes attributes :: PandocMonad m => TextileParser m Attr -attributes = foldl' (flip ($)) ("",[],[]) <$> +attributes = L.foldl' (flip ($)) ("",[],[]) <$> try (do special <- option id specialAttribute attrs <- many attribute return (special : attrs)) |
