mirror of
https://github.com/jgm/pandoc.git
synced 2026-10-02 12:18:02 +00:00
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).
36 lines
1.3 KiB
Haskell
36 lines
1.3 KiB
Haskell
{-# LANGUAGE OverloadedStrings #-}
|
|
{- |
|
|
Module : PandocCLI.Lua
|
|
Copyright : © 2022 Albert Krewinkel
|
|
License : GPL-2.0-or-later
|
|
Maintainer : Albert Krewinkel <albert@zeitkraut.de>
|
|
|
|
Functions to run the pandoc Lua scripting engine.
|
|
-}
|
|
module PandocCLI.Lua (runLuaInterpreter, getEngine) where
|
|
|
|
import Control.Monad ((<=<))
|
|
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.Version (pandocVersionText)
|
|
|
|
-- | Runs pandoc as a Lua interpreter that is (mostly) compatible with
|
|
-- the default @lua@ program shipping with Lua.
|
|
runLuaInterpreter :: String -- ^ Program name
|
|
-> [String] -- ^ Command line arguments
|
|
-> IO ()
|
|
runLuaInterpreter progName args = do
|
|
let settings = Settings
|
|
{ settingsVersionInfo = "\nEmbedded in pandoc " <> pandocVersionText
|
|
, settingsRunner = runner
|
|
}
|
|
runStandalone settings progName args
|
|
where
|
|
runner envBehavior =
|
|
let runLua' = case envBehavior of
|
|
IgnoreEnvVars -> runLuaNoEnv
|
|
ConsultEnvVars -> runLua
|
|
in handleError <=< runIOorExplode . runLua'
|