aboutsummaryrefslogtreecommitdiff
path: root/test/Tests/Writers/RST.hs
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2019-07-26 12:00:44 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2019-07-28 19:25:45 -0700
commitb35fae651145482f1218d32dbea5fffff60e0b0b (patch)
tree02175f056c40aee4329b8f944ada9c9cd6ac1284 /test/Tests/Writers/RST.hs
parent99e24cf18337b0b460005bf77e367783c34b75e7 (diff)
downloadpandoc-b35fae651145482f1218d32dbea5fffff60e0b0b.tar.gz
Use doctemplates 0.3, change type of writerTemplate.
* Require recent doctemplates. It is more flexible and supports partials. * Changed type of writerTemplate to Maybe Template instead of Maybe String. * Remove code from the LaTeX, Docbook, and JATS writers that looked in the template for strings to determine whether it is a book or an article, or whether csquotes is used. This was always kludgy and unreliable. To use csquotes for LaTeX, set `csquotes` in your variables or metadata. It is no longer sufficient to put `\usepackage{csquotes}` in your template or header includes. To specify a book style, use the `documentclass` variable or `--top-level-division`. * Change template code to use new API for doctemplates.
Diffstat (limited to 'test/Tests/Writers/RST.hs')
-rw-r--r--test/Tests/Writers/RST.hs19
1 files changed, 15 insertions, 4 deletions
diff --git a/test/Tests/Writers/RST.hs b/test/Tests/Writers/RST.hs
index 0d5b7c38a..07eef1f60 100644
--- a/test/Tests/Writers/RST.hs
+++ b/test/Tests/Writers/RST.hs
@@ -3,6 +3,7 @@
module Tests.Writers.RST (tests) where
import Prelude
+import Control.Monad.Identity
import Test.Tasty
import Test.Tasty.HUnit
import Tests.Helpers
@@ -10,6 +11,8 @@ import Text.Pandoc
import Text.Pandoc.Arbitrary ()
import Text.Pandoc.Builder
import Text.Pandoc.Writers.RST
+import Text.Pandoc.Templates (compileTemplate)
+import qualified Data.Text as T
infix 4 =:
(=:) :: (ToString a, ToPandoc a)
@@ -18,8 +21,15 @@ infix 4 =:
testTemplate :: (ToString a, ToString c, ToPandoc a) =>
String -> String -> (a, c) -> TestTree
-testTemplate t =
- test (purely (writeRST def{ writerTemplate = Just t }) . toPandoc)
+testTemplate t = case runIdentity (compileTemplate [] (T.pack t)) of
+ Left e -> error $ "Could not compile RST template: " ++ e
+ Right templ -> test (purely (writeRST def{ writerTemplate = Just templ }) . toPandoc)
+
+bodyTemplate :: Template
+bodyTemplate = case runIdentity (compileTemplate [] "$body$\n") of
+ Left e -> error $
+ "Could not compile RST bodyTemplate" ++ e
+ Right templ -> templ
tests :: [TestTree]
tests = [ testGroup "rubrics"
@@ -104,7 +114,8 @@ tests = [ testGroup "rubrics"
[ "foo"
, "==="]
-- note: heading normalization is only done in standalone mode
- , test (purely (writeRST def{ writerTemplate = Just "$body$\n" }) . toPandoc)
+ , test (purely (writeRST def{ writerTemplate = Just bodyTemplate })
+ . toPandoc)
"heading levels" $
header 1 (text "Header 1") <>
header 3 (text "Header 2") <>
@@ -134,7 +145,7 @@ tests = [ testGroup "rubrics"
, ""
, "Header 2"
, "--------"]
- , test (purely (writeRST def{ writerTemplate = Just "$body$\n" }) . toPandoc)
+ , test (purely (writeRST def{ writerTemplate = Just bodyTemplate }) . toPandoc)
"minimal heading levels" $
header 2 (text "Header 1") <>
header 3 (text "Header 2") <>