From e018f4248a7761649ed0e7cca03b544425584271 Mon Sep 17 00:00:00 2001 From: defanor Date: Fri, 24 Nov 2017 16:15:34 +0300 Subject: Don't skip empty lines This is particularly important for code blocks. --- Pancake/Rendering.hs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'Pancake') diff --git a/Pancake/Rendering.hs b/Pancake/Rendering.hs index 8d0cd0c..5393b77 100644 --- a/Pancake/Rendering.hs +++ b/Pancake/Rendering.hs @@ -235,7 +235,7 @@ fitLines :: Int -> [StyledLine] -- ^ Fitted lines. fitLines 0 _ = [] -fitLines maxLen inlineBits = concatMap (map reverse . fitWords [] 0) inlineBits +fitLines maxLen inlineBits = concatMap (map reverse . fitWords') inlineBits where splitStyled :: Styled -> [Styled] splitStyled (Plain s) @@ -254,6 +254,11 @@ fitLines maxLen inlineBits = concatMap (map reverse . fitWords [] 0) inlineBits splitStyled (Superscript s) = map Superscript $ splitStyled s splitStyled (Fg c s) = map (Fg c) $ splitStyled s splitStyled (Denote d s) = map (Denote d) $ splitStyled s + fitWords' :: [Styled] -> [StyledLine] + fitWords' ws + -- handle empty lines + | null (unstyled ws) = [[]] + | otherwise = fitWords [] 0 ws fitWords :: [Styled] -> Int -> [Styled] -> [StyledLine] fitWords curLine curLen (w:ws) -- handle newline characters -- cgit v1.2.3