summaryrefslogtreecommitdiff
path: root/Pancake
diff options
context:
space:
mode:
authordefanor <defanor@uberspace.net>2017-12-01 17:11:42 +0300
committerdefanor <defanor@uberspace.net>2017-12-01 17:11:42 +0300
commit014d75030c32347a5c040a2be3ed30142b969261 (patch)
treeeeea1268738071cb0c9176ae3658d6f06e17fd0d /Pancake
parentc794a79a2aa8062017884f1b04c731281e7b2023 (diff)
Add missing documentation annotations
Diffstat (limited to 'Pancake')
-rw-r--r--Pancake/Printing.hs3
1 files changed, 3 insertions, 0 deletions
diff --git a/Pancake/Printing.hs b/Pancake/Printing.hs
index 4248ceb..5ef3a81 100644
--- a/Pancake/Printing.hs
+++ b/Pancake/Printing.hs
@@ -115,6 +115,7 @@ showSexps uri ro =
showDenotation (Math m) = list ["math", ".", encodeSexpStr m]
showDenotation (Heading l) = list ["heading", ".", show l]
+-- | Merge elements with the same styling.
mergeStyled :: [Styled] -> [Styled]
mergeStyled = foldr mergeStyled' []
where
@@ -122,6 +123,8 @@ mergeStyled = foldr mergeStyled' []
mergeStyled' s [] = [s]
mergeStyled' s (s':rest) = maybe (s:s':rest) (: rest) (tryMerge s s')
+-- | Merge two elements if their styles are the same. Used by
+-- 'mergeStyled'.
tryMerge :: Styled -> Styled -> Maybe Styled
tryMerge (Plain s) (Plain s') = pure $ Plain $ s ++ s'
tryMerge (Fg clr s) (Fg clr' s')