Changed order of functions in Shared.
This commit is contained in:
parent
cbac17cfd2
commit
6a68dbe5ae
1 changed files with 26 additions and 26 deletions
|
@ -45,14 +45,14 @@ module Text.Pandoc.Shared (
|
|||
toRomanNumeral,
|
||||
escapeURI,
|
||||
unescapeURI,
|
||||
tabFilter,
|
||||
-- * Prettyprinting
|
||||
wrapped,
|
||||
wrapIfNeeded,
|
||||
wrappedTeX,
|
||||
wrapTeXIfNeeded,
|
||||
BlockWrapper (..),
|
||||
wrappedBlocksToDoc,
|
||||
tabFilter,
|
||||
-- * Prettyprinting
|
||||
hang',
|
||||
-- * Pandoc block and inline list processing
|
||||
orderedListMarkers,
|
||||
|
@ -195,6 +195,30 @@ unescapeURI :: String -> String
|
|||
unescapeURI = escapeURIString (\c -> isAllowedInURI c || not (isAscii c)) .
|
||||
decodeString . unEscapeString
|
||||
|
||||
-- | Convert tabs to spaces and filter out DOS line endings.
|
||||
-- Tabs will be preserved if tab stop is set to 0.
|
||||
tabFilter :: Int -- ^ Tab stop
|
||||
-> String -- ^ Input
|
||||
-> String
|
||||
tabFilter tabStop =
|
||||
let go _ [] = ""
|
||||
go _ ('\n':xs) = '\n' : go tabStop xs
|
||||
go _ ('\r':'\n':xs) = '\n' : go tabStop xs
|
||||
go _ ('\r':xs) = '\n' : go tabStop xs
|
||||
go spsToNextStop ('\t':xs) =
|
||||
if tabStop == 0
|
||||
then '\t' : go tabStop xs
|
||||
else replicate spsToNextStop ' ' ++ go tabStop xs
|
||||
go 1 (x:xs) =
|
||||
x : go tabStop xs
|
||||
go spsToNextStop (x:xs) =
|
||||
x : go (spsToNextStop - 1) xs
|
||||
in go tabStop
|
||||
|
||||
--
|
||||
-- Prettyprinting
|
||||
--
|
||||
|
||||
-- | Wrap inlines to line length.
|
||||
wrapped :: Monad m => ([Inline] -> m Doc) -> [Inline] -> m Doc
|
||||
wrapped listWriter sect = (mapM listWriter $ splitBy Space sect) >>=
|
||||
|
@ -264,30 +288,6 @@ wrappedBlocksToDoc = foldr addBlock empty
|
|||
addBlock (Pad d) accum = d $$ text "" $$ accum
|
||||
addBlock (Reg d) accum = d $$ accum
|
||||
|
||||
-- | Convert tabs to spaces and filter out DOS line endings.
|
||||
-- Tabs will be preserved if tab stop is set to 0.
|
||||
tabFilter :: Int -- ^ Tab stop
|
||||
-> String -- ^ Input
|
||||
-> String
|
||||
tabFilter tabStop =
|
||||
let go _ [] = ""
|
||||
go _ ('\n':xs) = '\n' : go tabStop xs
|
||||
go _ ('\r':'\n':xs) = '\n' : go tabStop xs
|
||||
go _ ('\r':xs) = '\n' : go tabStop xs
|
||||
go spsToNextStop ('\t':xs) =
|
||||
if tabStop == 0
|
||||
then '\t' : go tabStop xs
|
||||
else replicate spsToNextStop ' ' ++ go tabStop xs
|
||||
go 1 (x:xs) =
|
||||
x : go tabStop xs
|
||||
go spsToNextStop (x:xs) =
|
||||
x : go (spsToNextStop - 1) xs
|
||||
in go tabStop
|
||||
|
||||
--
|
||||
-- Prettyprinting
|
||||
--
|
||||
|
||||
-- | A version of hang that works like the version in pretty-1.0.0.0
|
||||
hang' :: Doc -> Int -> Doc -> Doc
|
||||
hang' d1 n d2 = d1 $$ (nest n d2)
|
||||
|
|
Loading…
Reference in a new issue