summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Shared.hs4
-rw-r--r--src/Text/Pandoc/Writers/LaTeX.hs13
-rw-r--r--src/Text/Pandoc/Writers/Markdown.hs14
-rw-r--r--src/pandoc.hs26
-rw-r--r--templates/context.template3
-rw-r--r--templates/docbook.template4
-rw-r--r--templates/html.template4
-rw-r--r--templates/latex.template10
-rw-r--r--templates/man.template4
-rw-r--r--templates/markdown.template8
-rw-r--r--templates/mediawiki.template4
-rw-r--r--templates/opendocument.template4
-rw-r--r--templates/rst.template5
-rw-r--r--templates/rtf.template2
-rw-r--r--templates/s5.template4
-rw-r--r--templates/texinfo.template2
16 files changed, 50 insertions, 61 deletions
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs
index ae14937d5..dbb5d94a4 100644
--- a/src/Text/Pandoc/Shared.hs
+++ b/src/Text/Pandoc/Shared.hs
@@ -984,6 +984,8 @@ data WriterOptions = WriterOptions
{ writerStandalone :: Bool -- ^ Include header and footer
, writerTemplate :: String -- ^ Template to use in standalone mode
, writerVariables :: [(String, String)] -- ^ Variables to set in template
+ , writerIncludeBefore :: String -- ^ Text to include before the body
+ , writerIncludeAfter :: String -- ^ Text to include after the body
, writerTabStop :: Int -- ^ Tabstop for conversion btw spaces and tabs
, writerTableOfContents :: Bool -- ^ Include table of contents
, writerS5 :: Bool -- ^ We're writing S5
@@ -1005,6 +1007,8 @@ defaultWriterOptions =
WriterOptions { writerStandalone = False
, writerTemplate = ""
, writerVariables = []
+ , writerIncludeBefore = ""
+ , writerIncludeAfter = ""
, writerTabStop = 4
, writerTableOfContents = False
, writerS5 = False
diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs
index f119598a6..6782cc14e 100644
--- a/src/Text/Pandoc/Writers/LaTeX.hs
+++ b/src/Text/Pandoc/Writers/LaTeX.hs
@@ -52,7 +52,14 @@ writeLaTeX options document =
pandocToLaTeX :: WriterOptions -> Pandoc -> State WriterState String
pandocToLaTeX options (Pandoc (Meta title authors date) blocks) = do
- main <- liftM render $ blockListToLaTeX blocks
+ body <- blockListToLaTeX blocks
+ let before = if null (writerIncludeBefore options)
+ then empty
+ else text $ writerIncludeBefore options
+ let after = if null (writerIncludeAfter options)
+ then empty
+ else text $ writerIncludeAfter options
+ let main = render $ before $$ body $$ after
titletext <- liftM render $ inlineListToLaTeX title
authorsText <- mapM (liftM render . inlineListToLaTeX) authors
dateText <- liftM render $ inlineListToLaTeX date
@@ -62,7 +69,9 @@ pandocToLaTeX options (Pandoc (Meta title authors date) blocks) = do
, ("title", titletext)
, ("authors", intercalate "\\\\" authorsText)
, ("date", dateText) ]
- return $ renderTemplate context $ writerTemplate options
+ return $ if writerStandalone options
+ then renderTemplate context $ writerTemplate options
+ else main
-- escape things as needed for LaTeX
diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs
index 266336968..25fe561da 100644
--- a/src/Text/Pandoc/Writers/Markdown.hs
+++ b/src/Text/Pandoc/Writers/Markdown.hs
@@ -60,17 +60,25 @@ pandocToMarkdown opts (Pandoc meta blocks) = do
then tableOfContents opts headerBlocks
else empty
body <- blockListToMarkdown opts blocks
+ let before = if null (writerIncludeBefore opts)
+ then empty
+ else text $ writerIncludeBefore opts
+ let after = if null (writerIncludeAfter opts)
+ then empty
+ else text $ writerIncludeAfter opts
(notes, _) <- get
notes' <- notesToMarkdown opts (reverse notes)
(_, refs) <- get -- note that the notes may contain refs
refs' <- keyTableToMarkdown opts (reverse refs)
+ let main = render $ before $+$ body $+$ text "" $+$ notes' $+$ text "" $+$ refs' $+$ after
let context = writerVariables opts ++
[ ("toc", render toc)
- , ("body", render $ body $+$ text "" $+$ notes' $+$
- text "" $+$ refs')
+ , ("body", main)
, ("titleblock", render head')
]
- return $ renderTemplate context $ writerTemplate opts
+ if writerStandalone opts
+ then return $ renderTemplate context $ writerTemplate opts
+ else return main
-- | Return markdown representation of reference key table.
keyTableToMarkdown :: WriterOptions -> KeyTable -> State WriterState Doc
diff --git a/src/pandoc.hs b/src/pandoc.hs
index a18e069cc..431a41836 100644
--- a/src/pandoc.hs
+++ b/src/pandoc.hs
@@ -138,6 +138,8 @@ data Opt = Opt
, optTableOfContents :: Bool -- ^ Include table of contents
, optTemplate :: String -- ^ Custom template
, optVariables :: [(String,String)] -- ^ Template variables to set
+ , optBefore :: [String] -- ^ Texts to include before body
+ , optAfter :: [String] -- ^ Texts to include after body
, optOutputFile :: String -- ^ Name of output file
, optNumberSections :: Bool -- ^ Number sections in LaTeX
, optIncremental :: Bool -- ^ Use incremental lists in S5
@@ -172,6 +174,8 @@ defaultOpts = Opt
, optTableOfContents = False
, optTemplate = ""
, optVariables = []
+ , optBefore = []
+ , optAfter = []
, optOutputFile = "-" -- "-" means stdout
, optNumberSections = False
, optIncremental = False
@@ -383,13 +387,8 @@ options =
(ReqArg
(\arg opt -> do
text <- readFile arg
- let oldvars = optVariables opt
- let newvars = case lookup "before" oldvars of
- Nothing -> ("before", text) : oldvars
- Just b -> ("before", b ++ text) :
- filter ((/= "before") . fst)
- oldvars
- return opt { optVariables = newvars })
+ let oldBefore = optBefore opt
+ return opt { optBefore = text : oldBefore })
"FILENAME")
"" -- "File to include before document body"
@@ -397,13 +396,8 @@ options =
(ReqArg
(\arg opt -> do
text <- readFile arg
- let oldvars = optVariables opt
- let newvars = case lookup "after" oldvars of
- Nothing -> ("after", text) : oldvars
- Just a -> ("after", a ++ text) :
- filter ((/= "after") . fst)
- oldvars
- return opt { optVariables = newvars })
+ let oldAfter = optAfter opt
+ return opt { optAfter = text : oldAfter })
"FILENAME")
"" -- "File to include after document body"
@@ -572,6 +566,8 @@ main = do
, optWriter = writerName
, optParseRaw = parseRaw
, optVariables = variables
+ , optBefore = befores
+ , optAfter = afters
, optTableOfContents = toc
, optTemplate = template
, optOutputFile = outputFile
@@ -665,6 +661,8 @@ main = do
then defaultTemplate
else template,
writerVariables = variables',
+ writerIncludeBefore = concat befores,
+ writerIncludeAfter = concat afters,
writerTabStop = tabStop,
writerTableOfContents = toc &&
writerName' /= "s5",
diff --git a/templates/context.template b/templates/context.template
index abd56a0c7..a3ca8baf9 100644
--- a/templates/context.template
+++ b/templates/context.template
@@ -78,8 +78,6 @@ $header-includes$
\placecontent
-$before$
-
\subject{section oen}
\startitemize[n][stopper=.]
@@ -106,7 +104,6 @@ footnote
code
\stoptyping
}
-$after$
\stoptext
diff --git a/templates/docbook.template b/templates/docbook.template
index 4e5f464f3..993115ab9 100644
--- a/templates/docbook.template
+++ b/templates/docbook.template
@@ -10,7 +10,7 @@
/>$header-includes$
</head
><body
- >$before$
+ >
<h1 class="title"
><span class="math"
><em
@@ -68,7 +68,7 @@
> <a href="#fnref1" class="footnoteBackLink" title="Jump back to footnote 1">&#8617;</a></li
></ol
></div
- >$after$
+ >
</body
></html
>
diff --git a/templates/html.template b/templates/html.template
index 4e5f464f3..993115ab9 100644
--- a/templates/html.template
+++ b/templates/html.template
@@ -10,7 +10,7 @@
/>$header-includes$
</head
><body
- >$before$
+ >
<h1 class="title"
><span class="math"
><em
@@ -68,7 +68,7 @@
> <a href="#fnref1" class="footnoteBackLink" title="Jump back to footnote 1">&#8617;</a></li
></ol
></div
- >$after$
+ >
</body
></html
>
diff --git a/templates/latex.template b/templates/latex.template
index 6af0a59cc..d9dc8e5ff 100644
--- a/templates/latex.template
+++ b/templates/latex.template
@@ -1,4 +1,3 @@
-$if(standalone)$
$if(legacy-header)$
$legacy-header$
$else$
@@ -49,17 +48,8 @@ $endif$
\begin{document}
\maketitle
-$endif$
$if(toc)$
\tableofcontents
$endif$
-$if(before)$
-$before$
-$endif$
$body$
-$if(after)$
-$after$
-$endif$
-$if(standalone)$
\end{document}
-$endif$
diff --git a/templates/man.template b/templates/man.template
index 4e5f464f3..993115ab9 100644
--- a/templates/man.template
+++ b/templates/man.template
@@ -10,7 +10,7 @@
/>$header-includes$
</head
><body
- >$before$
+ >
<h1 class="title"
><span class="math"
><em
@@ -68,7 +68,7 @@
> <a href="#fnref1" class="footnoteBackLink" title="Jump back to footnote 1">&#8617;</a></li
></ol
></div
- >$after$
+ >
</body
></html
>
diff --git a/templates/markdown.template b/templates/markdown.template
index 5c8a27674..bd373d95f 100644
--- a/templates/markdown.template
+++ b/templates/markdown.template
@@ -1,18 +1,10 @@
-$if(standalone)$
$if(titleblock)$
$titleblock$
$endif$
$if(header-includes)$
$header-includes$
$endif$
-$endif$
-$if(before)$
-$before$
-$endif$
$if(toc)$
$toc$
$endif$
$body$
-$if(after)$
-$after$
-$endif$
diff --git a/templates/mediawiki.template b/templates/mediawiki.template
index 4e5f464f3..993115ab9 100644
--- a/templates/mediawiki.template
+++ b/templates/mediawiki.template
@@ -10,7 +10,7 @@
/>$header-includes$
</head
><body
- >$before$
+ >
<h1 class="title"
><span class="math"
><em
@@ -68,7 +68,7 @@
> <a href="#fnref1" class="footnoteBackLink" title="Jump back to footnote 1">&#8617;</a></li
></ol
></div
- >$after$
+ >
</body
></html
>
diff --git a/templates/opendocument.template b/templates/opendocument.template
index 4e5f464f3..993115ab9 100644
--- a/templates/opendocument.template
+++ b/templates/opendocument.template
@@ -10,7 +10,7 @@
/>$header-includes$
</head
><body
- >$before$
+ >
<h1 class="title"
><span class="math"
><em
@@ -68,7 +68,7 @@
> <a href="#fnref1" class="footnoteBackLink" title="Jump back to footnote 1">&#8617;</a></li
></ol
></div
- >$after$
+ >
</body
></html
>
diff --git a/templates/rst.template b/templates/rst.template
index 6c4bfd0d4..a939719ea 100644
--- a/templates/rst.template
+++ b/templates/rst.template
@@ -9,8 +9,6 @@
$header-includes$
-$before$
-
.. role:: math(raw)
:format: html latex
@@ -39,6 +37,3 @@ footnote [1]_
code
-
-$after$
-
diff --git a/templates/rtf.template b/templates/rtf.template
index 8f4322783..b0d7cb1a6 100644
--- a/templates/rtf.template
+++ b/templates/rtf.template
@@ -9,7 +9,6 @@ $header-includes$
{\pard \ql \f0 \sa180 \li0 \fi0 \par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs36 Contents\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 \bullet \tx360\tab section oen\sa180\par}
-$before$
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs36 section oen\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 1.\tx360\tab one\par}
{\pard \ql \f0 \sa0 \li720 \fi-360 a.\tx360\tab two\par}
@@ -18,7 +17,6 @@ $before$
{\pard \ql \f0 \sa180 \li0 \fi0 footnote{\super\chftn}{\*\footnote\chftn\~\plain\pard {\pard \ql \f0 \sa180 \li0 \fi0 with code\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \f1 code\par}
}\par}
-$after$
}
diff --git a/templates/s5.template b/templates/s5.template
index e33cf912b..19aaa2be9 100644
--- a/templates/s5.template
+++ b/templates/s5.template
@@ -271,7 +271,7 @@ window.onload=startup;window.onresize=function(){setTimeout('fontScale()',50);}
$header-includes$
</head
><body
- >$before$
+ >
<div class="layout">
<div id="controls"></div>
<div id="currentSlide"></div>
@@ -343,7 +343,7 @@ $header-includes$
> <a href="#fnref1" class="footnoteBackLink" title="Jump back to footnote 1">&#8617;</a></li
></ol
></div
- >$after$
+ >
</body
></html
>
diff --git a/templates/texinfo.template b/templates/texinfo.template
index 968b43340..553395a3b 100644
--- a/templates/texinfo.template
+++ b/templates/texinfo.template
@@ -12,7 +12,6 @@ $header-includes$
$date$
@end titlepage
@contents
-$before$
@node Top
@top @math{title}
@@ -48,6 +47,5 @@ code
@end verbatim
}
-$after$
@bye