git.iko.soy/typeable/pandoc
on master help sign in
Renamed removedLeadingTrailingSpace to trim.

Also removeLeadingSpace to triml, removeTrailingSpace to trimr.

commit93e92a47169ee84e1a42c68f9b890314f8866de1 authorJohn MacFarlane <jgm@berkeley.edu> dateSat 29 Sep 2012, 17:09 (14 years ago) parent487d011
9 files changed+38−43
src/Text/Pandoc/Parsing.hs+2−3 src/Text/Pandoc/Readers/LaTeX.hs−3 src/Text/Pandoc/Readers/Markdown.hs+9−9 src/Text/Pandoc/Readers/RST.hs+11−11 src/Text/Pandoc/Shared.hs+9−9 src/Text/Pandoc/Writers/Docbook.hs+2−2 src/Text/Pandoc/Writers/EPUB.hs+2−2 src/Text/Pandoc/Writers/Man.hs+1−2 tests/Tests/Helpers.hs+2−2
src/Text/Pandoc/Parsing.hs+2−3
@@ -610,7 +610,7 @@ gridTableWith blocks headless =
610610
611611gridTableSplitLine :: [Int] -> String -> [String]
612612gridTableSplitLine indices line = map removeFinalBar $ tail $
613− splitStringByIndices (init indices) $ removeTrailingSpace line
613+ splitStringByIndices (init indices) $ trimr line
614614
615615gridPart :: Char -> Parser [Char] st (Int, Int)
616616gridPart ch = do
@@ -652,8 +652,7 @@ gridTableHeader headless blocks = try $ do
652652 then replicate (length dashes) ""
653653 else map (intercalate " ") $ transpose
654654 $ map (gridTableSplitLine indices) rawContent
655− heads <- mapM (parseFromString blocks) $
656− map removeLeadingTrailingSpace rawHeads
655+ heads <- mapM (parseFromString blocks) $ map trim rawHeads
657656 return (heads, aligns, indices)
658657
659658gridTableRawLine :: [Int] -> Parser [Char] ParserState [String]
src/Text/Pandoc/Readers/LaTeX.hs−3
@@ -146,9 +146,6 @@ braced = bgroup *> (concat <$> manyTill
146146bracketed :: Monoid a => LP a -> LP a
147147bracketed parser = try $ char '[' *> (mconcat <$> manyTill parser (char ']'))
148148
149−trim :: String -> String
150−trim = removeLeadingTrailingSpace
151−
152149mathDisplay :: LP String -> LP Inlines
153150mathDisplay p = displayMath <$> (try p >>= applyMacros' . trim)
154151
src/Text/Pandoc/Readers/Markdown.hs+9−9
@@ -239,7 +239,7 @@ referenceKey = try $ do
239239 src <- try betweenAngles <|> sourceURL
240240 tit <- option "" referenceTitle
241241 blanklines
242− let target = (escapeURI $ removeTrailingSpace src, tit)
242+ let target = (escapeURI $ trimr src, tit)
243243 st <- getState
244244 let oldkeys = stateKeys st
245245 updateState $ \s -> s { stateKeys = M.insert (toKey raw) target oldkeys }
@@ -848,7 +848,7 @@ simpleTableHeader headless = try $ do
848848 else rawHeads
849849 heads <- fmap sequence
850850 $ mapM (parseFromString (mconcat <$> many plain))
851− $ map removeLeadingTrailingSpace rawHeads'
851+ $ map trim rawHeads'
852852 return (heads, aligns, indices)
853853
854854-- Returns an alignment type for a table, based on a list of strings
@@ -859,7 +859,7 @@ alignType :: [String]
859859 -> Alignment
860860alignType [] _ = AlignDefault
861861alignType strLst len =
862− let nonempties = filter (not . null) $ map removeTrailingSpace strLst
862+ let nonempties = filter (not . null) $ map trimr strLst
863863 (leftSpace, rightSpace) =
864864 case sortBy (comparing length) nonempties of
865865 (x:_) -> (head x `elem` " \t", length x < len)
@@ -884,7 +884,7 @@ rawTableLine :: [Int]
884884rawTableLine indices = do
885885 notFollowedBy' (blanklines <|> tableFooter)
886886 line <- many1Till anyChar newline
887− return $ map removeLeadingTrailingSpace $ tail $
887+ return $ map trim $ tail $
888888 splitStringByIndices (init indices) line
889889
890890-- Parse a table line and return a list of lists of blocks (columns).
@@ -957,7 +957,7 @@ multilineTableHeader headless = try $ do
957957 else map (intercalate " ") rawHeadsList
958958 heads <- fmap sequence $
959959 mapM (parseFromString (mconcat <$> many plain)) $
960− map removeLeadingTrailingSpace rawHeads
960+ map trim rawHeads
961961 return (heads, aligns, indices)
962962
963963-- Parse a grid table: starts with row of '-' on top, then header
@@ -972,7 +972,7 @@ gridTable headless =
972972
973973gridTableSplitLine :: [Int] -> String -> [String]
974974gridTableSplitLine indices line = map removeFinalBar $ tail $
975− splitStringByIndices (init indices) $ removeTrailingSpace line
975+ splitStringByIndices (init indices) $ trimr line
976976
977977gridPart :: Char -> Parser [Char] st (Int, Int)
978978gridPart ch = do
@@ -1014,7 +1014,7 @@ gridTableHeader headless = try $ do
10141014 else map (intercalate " ") $ transpose
10151015 $ map (gridTableSplitLine indices) rawContent
10161016 heads <- fmap sequence $ mapM (parseFromString block) $
1017− map removeLeadingTrailingSpace rawHeads
1017+ map trim rawHeads
10181018 return (heads, aligns, indices)
10191019
10201020gridTableRawLine :: [Int] -> Parser [Char] ParserState [String]
@@ -1228,7 +1228,7 @@ code = try $ do
12281228 notFollowedBy (char '`')))
12291229 attr <- option ([],[],[]) (try $ guardEnabled Ext_inline_code_attributes >>
12301230 optional whitespace >> attributes)
1231− return $ return $ B.codeWith attr $ removeLeadingTrailingSpace $ concat result
1231+ return $ return $ B.codeWith attr $ trim $ concat result
12321232
12331233math :: Parser [Char] ParserState (F Inlines)
12341234math = (return . B.displayMath <$> (mathDisplay >>= applyMacros'))
@@ -1416,7 +1416,7 @@ source' = do
14161416 tit <- option "" linkTitle
14171417 skipSpaces
14181418 eof
1419− return (escapeURI $ removeTrailingSpace src, tit)
1419+ return (escapeURI $ trimr src, tit)
14201420
14211421linkTitle :: Parser [Char] ParserState String
14221422linkTitle = try $ do
src/Text/Pandoc/Readers/RST.hs+11−11
@@ -256,15 +256,15 @@ imageBlock = try $ do
256256imageDef :: Inlines -> RSTParser Inlines
257257imageDef defaultAlt = try $ do
258258 string "image:: "
259− src <- escapeURI . removeLeadingTrailingSpace <$> manyTill anyChar newline
259+ src <- escapeURI . trim <$> manyTill anyChar newline
260260 fields <- try $ do indent <- lookAhead $ many (oneOf " /t")
261261 many $ rawFieldListItem indent
262262 optional blanklines
263− let alt = maybe defaultAlt (\x -> B.str $ removeTrailingSpace x)
263+ let alt = maybe defaultAlt (\x -> B.str $ trimr x)
264264 $ lookup "alt" fields
265265 let img = B.image src "" alt
266266 return $ case lookup "target" fields of
267− Just t -> B.link (escapeURI $ removeLeadingTrailingSpace t)
267+ Just t -> B.link (escapeURI $ trim t)
268268 "" img
269269 Nothing -> img
270270
@@ -381,7 +381,7 @@ customCodeBlock = try $ do
381381figureBlock :: RSTParser Blocks
382382figureBlock = try $ do
383383 string ".. figure::"
384− src <- escapeURI . removeLeadingTrailingSpace <$> manyTill anyChar newline
384+ src <- escapeURI . trim <$> manyTill anyChar newline
385385 body <- indentedBlock
386386 caption <- parseFromString extractCaption body
387387 return $ B.para $ B.image src "" caption
@@ -540,7 +540,7 @@ defaultRoleBlock :: RSTParser Blocks
540540defaultRoleBlock = try $ do
541541 string ".. default-role::"
542542 -- doesn't enforce any restrictions on the role name; embedded spaces shouldn't be allowed, for one
543− role <- manyTill anyChar newline >>= return . removeLeadingTrailingSpace
543+ role <- manyTill anyChar newline >>= return . trim
544544 updateState $ \s -> s { stateRstDefaultRole =
545545 if null role
546546 then stateRstDefaultRole defaultParserState
@@ -587,7 +587,7 @@ directive = try $ do
587587-- divide string by blanklines
588588toChunks :: String -> [String]
589589toChunks = dropWhile null
590− . map (removeLeadingTrailingSpace . unlines)
590+ . map (trim . unlines)
591591 . splitBy (all (`elem` " \t")) . lines
592592
593593---
@@ -674,7 +674,7 @@ targetURI = do
674674 contents <- many1 (try (many spaceChar >> newline >>
675675 many1 spaceChar >> noneOf " \t\n") <|> noneOf "\n")
676676 blanklines
677− return $ escapeURI $ removeLeadingTrailingSpace $ contents
677+ return $ escapeURI $ trim $ contents
678678
679679imageKey :: RSTParser ()
680680imageKey = try $ do
@@ -758,7 +758,7 @@ simpleTableRow indices = do
758758
759759simpleTableSplitLine :: [Int] -> String -> [String]
760760simpleTableSplitLine indices line =
761− map removeLeadingTrailingSpace
761+ map trim
762762 $ tail $ splitByIndices (init indices) line
763763
764764simpleTableHeader :: Bool -- ^ Headerless table
@@ -777,7 +777,7 @@ simpleTableHeader headless = try $ do
777777 then replicate (length dashes) ""
778778 else simpleTableSplitLine indices rawContent
779779 heads <- mapM (parseFromString (B.toList . mconcat <$> many plain)) $
780− map removeLeadingTrailingSpace rawHeads
780+ map trim rawHeads
781781 return (heads, aligns, indices)
782782
783783-- Parse a simple table.
@@ -845,7 +845,7 @@ code = try $ do
845845 string "``"
846846 result <- manyTill anyChar (try (string "``"))
847847 return $ B.code
848− $ removeLeadingTrailingSpace $ unwords $ lines result
848+ $ trim $ unwords $ lines result
849849
850850-- succeeds only if we're not right after a str (ie. in middle of word)
851851atStart :: RSTParser a -> RSTParser a
@@ -932,7 +932,7 @@ explicitLink = try $ do
932932 src <- manyTill (noneOf ">\n") (char '>')
933933 skipSpaces
934934 string "`_"
935− return $ B.link (escapeURI $ removeLeadingTrailingSpace src) "" label'
935+ return $ B.link (escapeURI $ trim src) "" label'
936936
937937referenceLink :: RSTParser Inlines
938938referenceLink = try $ do
src/Text/Pandoc/Shared.hs+9−9
@@ -38,9 +38,9 @@ module Text.Pandoc.Shared (
3838 backslashEscapes,
3939 escapeStringUsing,
4040 stripTrailingNewlines,
41− removeLeadingTrailingSpace,
42− removeLeadingSpace,
43− removeTrailingSpace,
41+ trim,
42+ triml,
43+ trimr,
4444 stripFirstAndLast,
4545 camelCaseToHyphenated,
4646 toRomanNumeral,
@@ -161,16 +161,16 @@ stripTrailingNewlines :: String -> String
161161stripTrailingNewlines = reverse . dropWhile (== '\n') . reverse
162162
163163-- | Remove leading and trailing space (including newlines) from string.
164−removeLeadingTrailingSpace :: String -> String
165−removeLeadingTrailingSpace = removeLeadingSpace . removeTrailingSpace
164+trim :: String -> String
165+trim = triml . trimr
166166
167167-- | Remove leading space (including newlines) from string.
168−removeLeadingSpace :: String -> String
169−removeLeadingSpace = dropWhile (`elem` " \r\n\t")
168+triml :: String -> String
169+triml = dropWhile (`elem` " \r\n\t")
170170
171171-- | Remove trailing space (including newlines) from string.
172−removeTrailingSpace :: String -> String
173−removeTrailingSpace = reverse . removeLeadingSpace . reverse
172+trimr :: String -> String
173+trimr = reverse . triml . reverse
174174
175175-- | Strip leading and trailing characters from string
176176stripFirstAndLast :: String -> String
src/Text/Pandoc/Writers/Docbook.hs+2−2
@@ -49,7 +49,7 @@ authorToDocbook opts name' =
4949 in if ',' `elem` name
5050 then -- last name first
5151 let (lastname, rest) = break (==',') name
52− firstname = removeLeadingSpace rest in
52+ firstname = triml rest in
5353 inTagsSimple "firstname" (text $ escapeStringForXML firstname) <>
5454 inTagsSimple "surname" (text $ escapeStringForXML lastname)
5555 else -- last name last
@@ -74,7 +74,7 @@ writeDocbook opts (Pandoc (Meta tit auths dat) blocks) =
7474 else Nothing
7575 render' = render colwidth
7676 opts' = if "/book>" `isSuffixOf`
77− (removeTrailingSpace $ writerTemplate opts)
77+ (trimr $ writerTemplate opts)
7878 then opts{ writerChapters = True }
7979 else opts
8080 startLvl = if writerChapters opts' then 0 else 1
src/Text/Pandoc/Writers/EPUB.hs+2−2
@@ -151,7 +151,7 @@ writeEPUB opts doc@(Pandoc meta _) = do
151151 [("id", takeBaseName $ eRelativePath ent),
152152 ("href", eRelativePath ent),
153153 ("media-type", maybe "" id $ getMimeType $ eRelativePath ent)] $ ()
154− let plainify t = removeTrailingSpace $
154+ let plainify t = trimr $
155155 writePlain opts'{ writerStandalone = False } $
156156 Pandoc meta [Plain t]
157157 let plainTitle = plainify $ docTitle meta
@@ -289,7 +289,7 @@ transformInlines _ sourceDir picsRef (Image lab (src,tit) : xs) = do
289289 return new
290290 return $ Image lab (newsrc, tit) : xs
291291transformInlines (MathML _) _ _ (x@(Math _ _) : xs) = do
292− let writeHtmlInline opts z = removeTrailingSpace $
292+ let writeHtmlInline opts z = trimr $
293293 writeHtmlString opts $ Pandoc (Meta [] [] []) [Plain [z]]
294294 mathml = writeHtmlInline def{writerHTMLMathMethod = MathML Nothing } x
295295 fallback = writeHtmlInline def{writerHTMLMathMethod = PlainMath } x
src/Text/Pandoc/Writers/Man.hs+1−2
@@ -63,8 +63,7 @@ pandocToMan opts (Pandoc (Meta title authors date) blocks) = do
6363 (text (reverse xs), char d)
6464 xs -> (text (reverse xs), doubleQuotes empty)
6565 let description = hsep $
66− map (doubleQuotes . text . removeLeadingTrailingSpace) $
67− splitBy (== '|') rest
66+ map (doubleQuotes . text . trim) $ splitBy (== '|') rest
6867 body <- blockListToMan opts blocks
6968 notes <- liftM stNotes get
7069 notes' <- notesToMan opts (reverse notes)
tests/Tests/Helpers.hs+2−2
@@ -17,7 +17,7 @@ import Test.Framework
1717import Test.Framework.Providers.HUnit
1818import Test.Framework.Providers.QuickCheck2
1919import Test.HUnit (assertBool)
20−import Text.Pandoc.Shared (normalize, removeTrailingSpace)
20+import Text.Pandoc.Shared (normalize, trimr)
2121import Text.Pandoc.Options
2222import Text.Pandoc.Writers.Native (writeNative)
2323import Language.Haskell.TH.Quote (QuasiQuoter(..))
@@ -94,7 +94,7 @@ instance ToString Blocks where
9494 toString = writeNative def . toPandoc
9595
9696instance ToString Inlines where
97− toString = removeTrailingSpace . writeNative def . toPandoc
97+ toString = trimr . writeNative def . toPandoc
9898
9999instance ToString String where
100100 toString = id