diff options
author | John MacFarlane <jgm@berkeley.edu> | 2019-07-26 12:00:44 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2019-07-28 19:25:45 -0700 |
commit | b35fae651145482f1218d32dbea5fffff60e0b0b (patch) | |
tree | 02175f056c40aee4329b8f944ada9c9cd6ac1284 /test/Tests | |
parent | 99e24cf18337b0b460005bf77e367783c34b75e7 (diff) | |
download | pandoc-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')
-rw-r--r-- | test/Tests/Helpers.hs | 2 | ||||
-rw-r--r-- | test/Tests/Readers/Docx.hs | 2 | ||||
-rw-r--r-- | test/Tests/Readers/FB2.hs | 2 | ||||
-rw-r--r-- | test/Tests/Readers/Odt.hs | 2 | ||||
-rw-r--r-- | test/Tests/Writers/Native.hs | 2 | ||||
-rw-r--r-- | test/Tests/Writers/RST.hs | 19 |
6 files changed, 20 insertions, 9 deletions
diff --git a/test/Tests/Helpers.hs b/test/Tests/Helpers.hs index c5dab8f23..5ad867065 100644 --- a/test/Tests/Helpers.hs +++ b/test/Tests/Helpers.hs @@ -136,7 +136,7 @@ instance ToString Pandoc where where s = case d of (Pandoc (Meta m) _) | M.null m -> Nothing - | otherwise -> Just "" -- need this to get meta output + | otherwise -> Just mempty -- need this to get meta output instance ToString Blocks where toString = unpack . purely (writeNative def) . toPandoc diff --git a/test/Tests/Readers/Docx.hs b/test/Tests/Readers/Docx.hs index e5bbabadf..9d0913e55 100644 --- a/test/Tests/Readers/Docx.hs +++ b/test/Tests/Readers/Docx.hs @@ -46,7 +46,7 @@ instance ToString NoNormPandoc where where s = case d of NoNormPandoc (Pandoc (Meta m) _) | M.null m -> Nothing - | otherwise -> Just "" -- need this to get meta output + | otherwise -> Just mempty -- need this to get meta output instance ToPandoc NoNormPandoc where toPandoc = unNoNorm diff --git a/test/Tests/Readers/FB2.hs b/test/Tests/Readers/FB2.hs index e64e8a2ce..dd228aeae 100644 --- a/test/Tests/Readers/FB2.hs +++ b/test/Tests/Readers/FB2.hs @@ -24,7 +24,7 @@ import Data.Text.Lazy (fromStrict) import System.FilePath (replaceExtension) fb2ToNative :: Text -> Text -fb2ToNative = purely (writeNative def{ writerTemplate = Just "" }) . purely (readFB2 def) +fb2ToNative = purely (writeNative def{ writerTemplate = Just mempty }) . purely (readFB2 def) fb2Test :: TestName -> FilePath -> TestTree fb2Test name path = goldenVsString name native (fromTextLazy . fromStrict . fb2ToNative . toText <$> BS.readFile path) diff --git a/test/Tests/Readers/Odt.hs b/test/Tests/Readers/Odt.hs index d66a4e98b..9dc93c92e 100644 --- a/test/Tests/Readers/Odt.hs +++ b/test/Tests/Readers/Odt.hs @@ -61,7 +61,7 @@ instance ToString NoNormPandoc where where s = case d of NoNormPandoc (Pandoc (Meta m) _) | M.null m -> Nothing - | otherwise -> Just "" -- need this for Meta output + | otherwise -> Just mempty -- need this for Meta output instance ToPandoc NoNormPandoc where toPandoc = unNoNorm diff --git a/test/Tests/Writers/Native.hs b/test/Tests/Writers/Native.hs index 708b5069c..905e83b1e 100644 --- a/test/Tests/Writers/Native.hs +++ b/test/Tests/Writers/Native.hs @@ -11,7 +11,7 @@ import Text.Pandoc.Arbitrary () p_write_rt :: Pandoc -> Bool p_write_rt d = - read (unpack $ purely (writeNative def{ writerTemplate = Just "" }) d) == d + read (unpack $ purely (writeNative def{ writerTemplate = Just mempty }) d) == d p_write_blocks_rt :: [Block] -> Bool p_write_blocks_rt bs = 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") <> |