aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Shared.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc/Shared.hs')
-rw-r--r--src/Text/Pandoc/Shared.hs13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs
index adc2621f3..d4687b10e 100644
--- a/src/Text/Pandoc/Shared.hs
+++ b/src/Text/Pandoc/Shared.hs
@@ -52,7 +52,7 @@ module Text.Pandoc.Shared (
-- * Pandoc block list processing
consolidateList,
isNoteBlock,
- splitBySpace,
+ splitBy,
normalizeSpaces,
compactify,
generateReference,
@@ -274,10 +274,13 @@ removeTrailingSpace = reverse . removeLeadingSpace . reverse
stripFirstAndLast str =
drop 1 $ take ((length str) - 1) str
--- | Split list of inlines into groups separated by a space.
-splitBySpace :: [Inline] -> [[Inline]]
-splitBySpace lst = filter (\a -> (/= Space) (head a))
- (groupBy (\a b -> (/= Space) a && (/= Space) b) lst)
+-- | Split list into groups separated by sep.
+splitBy :: (Eq a) => a -> [a] -> [[a]]
+splitBy _ [] = []
+splitBy sep lst =
+ let (first, rest) = break (== sep) lst
+ rest' = dropWhile (== sep) rest in
+ first:(splitBy sep rest')
-- | Normalize a list of inline elements: remove leading and trailing
-- @Space@ elements, and collapse double @Space@s into singles.