aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <[email protected]>2022-10-19 09:11:34 -0700
committerJohn MacFarlane <[email protected]>2022-10-19 09:16:13 -0700
commitfde8635a181a6ed0cec2a1756fc3e35fee39d29d (patch)
tree46180c54701e1267afd69ad61d5f1ee36741c2a0
parent4bf685e7ebc5255ab985b9886c88915c0feb8b61 (diff)
Split Text.Pandoc.Version from Text.Pandoc.Shared.
This new module exports `pandocVersion` and `pandocVersionText`, which are no longer exported from Text.Pandoc.Shared. [API change] Also, we now set the `pandoc-version` variable centrally rather than in the writers. One effect is the man writer now emits a comment with the pandoc version (this was intended before, judging from the template, but it didn't happen because the vairable wasn't set).
-rw-r--r--MANUAL.txt3
-rw-r--r--pandoc-cli/lua/PandocCLI/Lua.hs2
-rw-r--r--pandoc-cli/src/pandoc.hs3
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Global.hs2
-rw-r--r--pandoc.cabal3
-rw-r--r--src/Text/Pandoc.hs2
-rw-r--r--src/Text/Pandoc/App/OutputSettings.hs2
-rw-r--r--src/Text/Pandoc/Filter/JSON.hs3
-rw-r--r--src/Text/Pandoc/Shared.hs13
-rw-r--r--src/Text/Pandoc/Version.hs28
-rw-r--r--src/Text/Pandoc/Writers/Man.hs2
-rw-r--r--src/Text/Pandoc/Writers/Ms.hs1
-rw-r--r--src/Text/Pandoc/Writers/ODT.hs3
-rw-r--r--test/writer.man2
-rw-r--r--test/writer.ms2
15 files changed, 49 insertions, 22 deletions
diff --git a/MANUAL.txt b/MANUAL.txt
index 04eaa282f..8feedc003 100644
--- a/MANUAL.txt
+++ b/MANUAL.txt
@@ -3158,6 +3158,9 @@ on the output format, and include the following:
`curdir`
: working directory from which pandoc is run.
+`pandoc-version`
+: pandoc version.
+
`toc`
: non-null value if `--toc/--table-of-contents` was specified
diff --git a/pandoc-cli/lua/PandocCLI/Lua.hs b/pandoc-cli/lua/PandocCLI/Lua.hs
index 6507587c8..8c50e66b3 100644
--- a/pandoc-cli/lua/PandocCLI/Lua.hs
+++ b/pandoc-cli/lua/PandocCLI/Lua.hs
@@ -14,7 +14,7 @@ import HsLua.CLI (EnvBehavior (..), Settings (..), runStandalone)
import Text.Pandoc.Class (runIOorExplode)
import Text.Pandoc.Error (handleError)
import Text.Pandoc.Lua (runLua, runLuaNoEnv, getEngine)
-import Text.Pandoc.Shared (pandocVersionText)
+import Text.Pandoc.Version (pandocVersionText)
-- | Runs pandoc as a Lua interpreter that is (mostly) compatible with
-- the default @lua@ program shipping with Lua.
diff --git a/pandoc-cli/src/pandoc.hs b/pandoc-cli/src/pandoc.hs
index 274b1c567..4415f7e69 100644
--- a/pandoc-cli/src/pandoc.hs
+++ b/pandoc-cli/src/pandoc.hs
@@ -24,7 +24,8 @@ import Data.Monoid (Any(..))
import Control.Monad (when)
import PandocCLI.Lua
import PandocCLI.Server
-import Text.Pandoc.Shared (pandocVersion, defaultUserDataDir)
+import Text.Pandoc.Version (pandocVersion)
+import Text.Pandoc.Shared (defaultUserDataDir)
import Text.Pandoc.Scripting (ScriptingEngine(..))
import Data.Version (showVersion)
import qualified Data.Text as T
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Global.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Global.hs
index 5ec7ced64..304ad8695 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Global.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Global.hs
@@ -25,7 +25,7 @@ import Text.Pandoc.Lua.Marshal.ReaderOptions (pushReaderOptionsReadonly)
import Text.Pandoc.Lua.Marshal.WriterOptions (pushWriterOptions)
import Text.Pandoc.Lua.PandocLua ()
import Text.Pandoc.Options (ReaderOptions, WriterOptions)
-import Text.Pandoc.Shared (pandocVersion)
+import Text.Pandoc.Version (pandocVersion)
import qualified Data.Text as Text
diff --git a/pandoc.cabal b/pandoc.cabal
index dbe489f65..466cea2c2 100644
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -636,7 +636,8 @@ library
Text.Pandoc.ImageSize,
Text.Pandoc.Class,
Text.Pandoc.Class.IO,
- Text.Pandoc.Citeproc
+ Text.Pandoc.Citeproc,
+ Text.Pandoc.Version
other-modules: Text.Pandoc.App.CommandLineOptions,
Text.Pandoc.App.FormatHeuristics,
Text.Pandoc.App.Input,
diff --git a/src/Text/Pandoc.hs b/src/Text/Pandoc.hs
index 2f2b396af..fb8a49334 100644
--- a/src/Text/Pandoc.hs
+++ b/src/Text/Pandoc.hs
@@ -73,7 +73,7 @@ import Text.Pandoc.Generic
import Text.Pandoc.Logging
import Text.Pandoc.Options
import Text.Pandoc.Readers
-import Text.Pandoc.Shared (pandocVersion, pandocVersionText)
+import Text.Pandoc.Version (pandocVersion, pandocVersionText)
import Text.Pandoc.Templates
import Text.Pandoc.Translations (setTranslations, translateTerm)
import Text.Pandoc.Writers
diff --git a/src/Text/Pandoc/App/OutputSettings.hs b/src/Text/Pandoc/App/OutputSettings.hs
index d38618198..56020cd1f 100644
--- a/src/Text/Pandoc/App/OutputSettings.hs
+++ b/src/Text/Pandoc/App/OutputSettings.hs
@@ -181,6 +181,8 @@ optToOutputSettings scriptingEngine opts = do
>>=
setVariableM "outputfile" (T.pack outputFile)
>>=
+ setVariableM "pandoc-version" pandocVersionText
+ >>=
setFilesVariableM "include-before" (optIncludeBeforeBody opts)
>>=
setFilesVariableM "include-after" (optIncludeAfterBody opts)
diff --git a/src/Text/Pandoc/Filter/JSON.hs b/src/Text/Pandoc/Filter/JSON.hs
index c3019c679..883e3c7c4 100644
--- a/src/Text/Pandoc/Filter/JSON.hs
+++ b/src/Text/Pandoc/Filter/JSON.hs
@@ -27,7 +27,8 @@ import Text.Pandoc.Definition (Pandoc)
import Text.Pandoc.Error (PandocError (PandocFilterError))
import Text.Pandoc.Filter.Environment (Environment (..))
import Text.Pandoc.Process (pipeProcess)
-import Text.Pandoc.Shared (pandocVersionText, tshow)
+import Text.Pandoc.Version (pandocVersionText)
+import Text.Pandoc.Shared (tshow)
import qualified Control.Exception as E
import qualified Text.Pandoc.UTF8 as UTF8
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs
index 0a836847b..b2d14c52a 100644
--- a/src/Text/Pandoc/Shared.hs
+++ b/src/Text/Pandoc/Shared.hs
@@ -88,9 +88,6 @@ module Text.Pandoc.Shared (
safeStrRead,
-- * User data directory
defaultUserDataDir,
- -- * Version
- pandocVersion,
- pandocVersionText
) where
import Codec.Archive.Zip
@@ -110,8 +107,6 @@ import Data.Monoid (Any (..))
import Data.Sequence (ViewL (..), ViewR (..), viewl, viewr)
import qualified Data.Set as Set
import qualified Data.Text as T
-import Data.Version (Version, showVersion)
-import Paths_pandoc (version)
import System.Directory
import System.FilePath (isPathSeparator, splitDirectories)
import qualified System.FilePath.Posix as Posix
@@ -127,14 +122,6 @@ import Text.Pandoc.Generic (bottomUp)
import Text.DocLayout (charWidth)
import Text.Pandoc.Walk
--- | Version number of pandoc library.
-pandocVersion :: Version
-pandocVersion = version
-
--- | Text representation of the library's version number.
-pandocVersionText :: T.Text
-pandocVersionText = T.pack $ showVersion version
-
--
-- List processing
--
diff --git a/src/Text/Pandoc/Version.hs b/src/Text/Pandoc/Version.hs
new file mode 100644
index 000000000..e5d1c2a74
--- /dev/null
+++ b/src/Text/Pandoc/Version.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE CPP #-}
+{- |
+ Module : Text.Pandoc.Version
+ Copyright : Copyright (C) 2022 John MacFarlane
+ License : GNU GPL, version 2 or above
+
+ Maintainer : John MacFarlane <[email protected]>
+ Stability : alpha
+ Portability : portable
+
+Version information.
+-}
+module Text.Pandoc.Version (
+ pandocVersion,
+ pandocVersionText
+ ) where
+
+import Data.Version (Version, showVersion)
+import Paths_pandoc (version)
+import qualified Data.Text as T
+
+-- | Version number of pandoc library.
+pandocVersion :: Version
+pandocVersion = version
+
+-- | Text representation of the library's version number.
+pandocVersionText :: T.Text
+pandocVersionText = T.pack $ showVersion version
diff --git a/src/Text/Pandoc/Writers/Man.hs b/src/Text/Pandoc/Writers/Man.hs
index fd4d52d3c..f4d829059 100644
--- a/src/Text/Pandoc/Writers/Man.hs
+++ b/src/Text/Pandoc/Writers/Man.hs
@@ -74,7 +74,7 @@ pandocToMan opts (Pandoc meta blocks) = do
$ setFieldsFromTitle
$ defField "has-tables" hasTables
$ defField "hyphenate" True
- $ defField "pandoc-version" pandocVersionText metadata
+ $ metadata
return $ render colwidth $
case writerTemplate opts of
Nothing -> main
diff --git a/src/Text/Pandoc/Writers/Ms.hs b/src/Text/Pandoc/Writers/Ms.hs
index 5592b3d86..ceff1697f 100644
--- a/src/Text/Pandoc/Writers/Ms.hs
+++ b/src/Text/Pandoc/Writers/Ms.hs
@@ -76,7 +76,6 @@ pandocToMs opts (Pandoc meta blocks) = do
let context = defField "body" main
$ defField "has-inline-math" hasInlineMath
$ defField "hyphenate" True
- $ defField "pandoc-version" pandocVersionText
$ defField "toc" (writerTableOfContents opts)
$ defField "title-meta" titleMeta
$ defField "author-meta" (T.intercalate "; " authorsMeta)
diff --git a/src/Text/Pandoc/Writers/ODT.hs b/src/Text/Pandoc/Writers/ODT.hs
index 77289faea..302debe7f 100644
--- a/src/Text/Pandoc/Writers/ODT.hs
+++ b/src/Text/Pandoc/Writers/ODT.hs
@@ -35,7 +35,8 @@ import Text.Pandoc.Logging
import Text.Pandoc.MIME (extensionFromMimeType, getMimeType)
import Text.Pandoc.Options (WrapOption (..), WriterOptions (..))
import Text.DocLayout
-import Text.Pandoc.Shared (stringify, pandocVersionText, tshow)
+import Text.Pandoc.Shared (stringify, tshow)
+import Text.Pandoc.Version (pandocVersionText)
import Text.Pandoc.Writers.Shared (lookupMetaString, lookupMetaBlocks,
fixDisplayMath, getLang,
ensureValidXmlIdentifiers)
diff --git a/test/writer.man b/test/writer.man
index 30d83465f..752852322 100644
--- a/test/writer.man
+++ b/test/writer.man
@@ -1,3 +1,5 @@
+.\" Automatically generated by Pandoc 3.0
+.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
diff --git a/test/writer.ms b/test/writer.ms
index 5b00e2f15..fd78272d6 100644
--- a/test/writer.ms
+++ b/test/writer.ms
@@ -1,3 +1,5 @@
+.\" Automatically generated by Pandoc 3.0
+.\"
.\" **** Custom macro definitions *********************************
.\" * Super/subscript
.\" (https://lists.gnu.org/archive/html/groff/2012-07/msg00046.html)