diff options
author | Vaclav Zeman <vhaisman@gmail.com> | 2014-02-09 13:16:39 +0100 |
---|---|---|
committer | Vaclav Zeman <vhaisman@gmail.com> | 2014-02-09 13:16:39 +0100 |
commit | 1ba8066f67d1f8624e679e28fd800e6ade2a9511 (patch) | |
tree | 4bdd9c34936f7be77b95aaf4df723980aa675a25 /src/Text/Pandoc/Pretty.hs | |
parent | 3f0fe345f9aa69d1faf36e6a6f913013f21b3749 (diff) | |
parent | 927b51630852b56f6c8e0aa4a7763108fdb8ec89 (diff) | |
download | pandoc-1ba8066f67d1f8624e679e28fd800e6ade2a9511.tar.gz |
Merge remote-tracking branch 'origin/master' into en-dash-ligature-avoidance.
Diffstat (limited to 'src/Text/Pandoc/Pretty.hs')
-rw-r--r-- | src/Text/Pandoc/Pretty.hs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Pretty.hs b/src/Text/Pandoc/Pretty.hs index faf2a6797..5331587ce 100644 --- a/src/Text/Pandoc/Pretty.hs +++ b/src/Text/Pandoc/Pretty.hs @@ -60,6 +60,7 @@ module Text.Pandoc.Pretty ( , hsep , vcat , vsep + , nestle , chomp , inside , braces @@ -72,7 +73,7 @@ module Text.Pandoc.Pretty ( ) where -import Data.Sequence (Seq, fromList, (<|), singleton, mapWithIndex) +import Data.Sequence (Seq, fromList, (<|), singleton, mapWithIndex, viewl, ViewL(..)) import Data.Foldable (toList) import Data.List (intercalate) import Data.Monoid @@ -80,8 +81,7 @@ import Data.String import Control.Monad.State import Data.Char (isSpace) -data Monoid a => - RenderState a = RenderState{ +data RenderState a = RenderState{ output :: [a] -- ^ In reverse order , prefix :: String , usePrefix :: Bool @@ -186,6 +186,14 @@ vcat = foldr ($$) empty vsep :: [Doc] -> Doc vsep = foldr ($+$) empty +-- | Removes leading blank lines from a 'Doc'. +nestle :: Doc -> Doc +nestle (Doc d) = Doc $ go d + where go x = case viewl x of + (BlankLine :< rest) -> go rest + (NewLine :< rest) -> go rest + _ -> x + -- | Chomps trailing blank space off of a 'Doc'. chomp :: Doc -> Doc chomp d = Doc (fromList dl') |