aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Shared.hs
diff options
context:
space:
mode:
authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2007-11-17 18:42:11 +0000
committerfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2007-11-17 18:42:11 +0000
commit09b57fcf9ca4deab5fd7d8979863b36922edf6c3 (patch)
treef5d71e92b481163cbbf46b9dfe38dd9dfd7ffcc5 /src/Text/Pandoc/Shared.hs
parent780b77c14790f8053f7b2c8239bb4a5d6a22c8d7 (diff)
downloadpandoc-09b57fcf9ca4deab5fd7d8979863b36922edf6c3.tar.gz
Adjusted formatting of LaTeX and ConTeXt footnotes:
- in ConTeXt, % is not needed at end of line before note, since space is gobbled. - beginning of footnote indented four spaces. - this required an additional parameter in wrappedTeX and wrapTeXIfNeeded, in Text.Pandoc.Shared. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1080 788f1e2b-df1e-0410-8736-df70ead52e1b
Diffstat (limited to 'src/Text/Pandoc/Shared.hs')
-rw-r--r--src/Text/Pandoc/Shared.hs28
1 files changed, 19 insertions, 9 deletions
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs
index 811978476..42d9acaf0 100644
--- a/src/Text/Pandoc/Shared.hs
+++ b/src/Text/Pandoc/Shared.hs
@@ -227,8 +227,12 @@ isNote _ = False
-- | Wrap inlines to line length, treating footnotes in a way that
-- makes sense in LaTeX and ConTeXt.
-wrappedTeX :: Monad m => ([Inline] -> m Doc) -> [Inline] -> m Doc
-wrappedTeX listWriter sect = do
+wrappedTeX :: Monad m
+ => Bool -- | Include % on line before notes.
+ -> ([Inline] -> m Doc) -- | Inline list writer.
+ -> [Inline]
+ -> m Doc
+wrappedTeX includePercent listWriter sect = do
let (firstpart, rest) = break isNote sect
firstpartWrapped <- wrapped listWriter firstpart
if null rest
@@ -236,17 +240,23 @@ wrappedTeX listWriter sect = do
else do let (note:rest') = rest
restWrapped <- if null rest'
then return empty
- else wrappedTeX listWriter rest'
+ else wrappedTeX includePercent listWriter rest'
noteText <- listWriter [note]
- return $ firstpartWrapped <> PP.char '%' $$ noteText $$ restWrapped
+ return $ firstpartWrapped <>
+ (if includePercent then PP.char '%' else empty) $$
+ noteText $$ restWrapped
-- | Wrap inlines if the text wrap option is selected, specialized
-- for LaTeX and ConTeXt.
-wrapTeXIfNeeded :: Monad m => WriterOptions -> ([Inline] -> m Doc) ->
- [Inline] -> m Doc
-wrapTeXIfNeeded opts = if writerWrapText opts
- then wrappedTeX
- else ($)
+wrapTeXIfNeeded :: Monad m
+ => WriterOptions
+ -> Bool -- | Include % on line before notes.
+ -> ([Inline] -> m Doc) -- | Inline list writer.
+ -> [Inline]
+ -> m Doc
+wrapTeXIfNeeded opts includePercent = if writerWrapText opts
+ then wrappedTeX includePercent
+ else ($)
--
-- Parsing