diff options
Diffstat (limited to 'pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs')
| -rw-r--r-- | pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs new file mode 100644 index 000000000..8fa0485fc --- /dev/null +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs @@ -0,0 +1,60 @@ +{-# LANGUAGE OverloadedStrings #-} +{- | + Module : Text.Pandoc.Lua.Module.Format + Copyright : © 2022 Albert Krewinkel + License : GPL-2.0-or-later + Maintainer : Albert Krewinkel <[email protected]> + +Lua module to handle pandoc templates. +-} +module Text.Pandoc.Lua.Module.Format + ( documentedModule + ) where + +import HsLua +import Text.Pandoc.Error (PandocError) +import Text.Pandoc.Extensions + ( getAllExtensions, getDefaultExtensions ) +import Text.Pandoc.Lua.ErrorConversion () +import Text.Pandoc.Lua.Marshal.Extensions (pushExtensions) + +import qualified Data.Text as T + +-- | The "pandoc.format" module. +documentedModule :: Module PandocError +documentedModule = Module + { moduleName = "pandoc.format" + , moduleDescription = T.unlines + [ "Pandoc formats and their extensions." + ] + , moduleFields = [] + , moduleOperations = [] + , moduleFunctions = functions + } + +-- | Extension module functions. +functions :: [DocumentedFunction PandocError] +functions = + [ defun "default_extensions" + ### liftPure getDefaultExtensions + <#> parameter peekText "string" "format" "format name" + =#> functionResult pushExtensions "FormatExtensions" + "default extensions enabled for `format`" + #? T.unlines + [ "Returns the list of default extensions of the given format; this" + , "function does not check if the format is supported, it will return" + , "a fallback list of extensions even for unknown formats." + ] + + , defun "all_extensions" + ### liftPure getAllExtensions + <#> parameter peekText "string" "format" "format name" + =#> functionResult pushExtensions "FormatExtensions" + "all extensions supported for `format`" + #? T.unlines + [ "Returns the list of all valid extensions for a format." + , "No distinction is made between input and output, and an" + , "extension have an effect when reading a format but not when" + , "writing it, or *vice versa*." + ] + ] |
