cabal-version:       2.4
name:                pandoc-lua-engine
version:             0.4.1.1
build-type:          Simple
license:             GPL-2.0-or-later
license-file:        COPYING.md
copyright:           © 2006-2024 John MacFarlane, 2017-2024 Albert Krewinkel
author:              John MacFarlane, Albert Krewinkel
maintainer:          Albert Krewinkel <albert@hslua.org>
bug-reports:         https://github.com/jgm/pandoc/issues
homepage:            https://pandoc.org
category:            Text
tested-with:         GHC == 8.6.5
                   , GHC == 8.8.4
                   , GHC == 8.10.7
                   , GHC == 9.0.2
                   , GHC == 9.2.5
                   , GHC == 9.4.4
synopsis:            Lua engine to power custom pandoc conversions
description:         This package provides a pandoc scripting engine based on
                     Lua.
extra-source-files:  README.md
                   , test/bytestring.bin
                   , test/bytestring.lua
                   , test/bytestring-reader.lua
                   , test/extensions.lua
                   , test/lua/*.lua
                   , test/lua/module/*.lua
                   , test/lua/module/partial.test
                   , test/lua/module/sample.svg
                   , test/lua/module/tiny.epub
                   , test/sample.lua
                   , test/tables.custom
                   , test/tables.native
                   , test/testsuite.native
                   , test/writer.custom
                   , test/writer-template.lua
                   , test/writer-template.out.txt

source-repository head
  type:                git
  location:            https://github.com/jgm/pandoc.git
  subdir:              pandoc-lua-engine

common common-options
  default-language:    Haskell2010
  build-depends:       base              >= 4.12 && < 5
  ghc-options:         -Wall -fno-warn-unused-do-bind
                       -Wincomplete-record-updates
                       -Wnoncanonical-monad-instances
                       -Wcpp-undef
                       -Wincomplete-uni-patterns
                       -Widentities
                       -Wpartial-fields
                       -Wmissing-export-lists
                       -Wmissing-signatures
                       -fhide-source-paths

  if impl(ghc >= 8.10)
    ghc-options:         -Wunused-packages

  if impl(ghc >= 9.0)
    ghc-options:         -Winvalid-haddock

library
  import:              common-options
  hs-source-dirs:      src
  exposed-modules:     Text.Pandoc.Lua
  other-modules:       Text.Pandoc.Lua.Custom
                     , Text.Pandoc.Lua.Engine
                     , Text.Pandoc.Lua.Filter
                     , Text.Pandoc.Lua.Global
                     , Text.Pandoc.Lua.Init
                     , Text.Pandoc.Lua.Module
                     , Text.Pandoc.Lua.Marshal.Chunks
                     , Text.Pandoc.Lua.Marshal.CommonState
                     , Text.Pandoc.Lua.Marshal.Context
                     , Text.Pandoc.Lua.Marshal.Format
                     , Text.Pandoc.Lua.Marshal.ImageSize
                     , Text.Pandoc.Lua.Marshal.LogMessage
                     , Text.Pandoc.Lua.Marshal.PandocError
                     , Text.Pandoc.Lua.Marshal.ReaderOptions
                     , Text.Pandoc.Lua.Marshal.Reference
                     , Text.Pandoc.Lua.Marshal.Sources
                     , Text.Pandoc.Lua.Marshal.Template
                     , Text.Pandoc.Lua.Marshal.WriterOptions
                     , Text.Pandoc.Lua.Module.CLI
                     , Text.Pandoc.Lua.Module.Format
                     , Text.Pandoc.Lua.Module.Image
                     , Text.Pandoc.Lua.Module.JSON
                     , Text.Pandoc.Lua.Module.Log
                     , Text.Pandoc.Lua.Module.MediaBag
                     , Text.Pandoc.Lua.Module.Pandoc
                     , Text.Pandoc.Lua.Module.Scaffolding
                     , Text.Pandoc.Lua.Module.Structure
                     , Text.Pandoc.Lua.Module.System
                     , Text.Pandoc.Lua.Module.Template
                     , Text.Pandoc.Lua.Module.Text
                     , Text.Pandoc.Lua.Module.Types
                     , Text.Pandoc.Lua.Module.Utils
                     , Text.Pandoc.Lua.Orphans
                     , Text.Pandoc.Lua.PandocLua
                     , Text.Pandoc.Lua.Run
                     , Text.Pandoc.Lua.SourcePos
                     , Text.Pandoc.Lua.Writer.Classic
                     , Text.Pandoc.Lua.Writer.Scaffolding

  build-depends:       aeson
                     , bytestring            >= 0.9     && < 0.13
                     , crypton               >= 0.30    && < 1.1
                     , citeproc              >= 0.8     && < 0.9
                     , containers            >= 0.6.0.1 && < 0.9
                     , data-default          >= 0.4     && < 0.9
                     , doclayout             >= 0.5     && < 0.6
                     , doctemplates          >= 0.11    && < 0.12
                     , exceptions            >= 0.8     && < 0.11
                     , hslua                 >= 2.3     && < 2.4
                     , hslua-module-doclayout>= 1.2     && < 1.3
                     , hslua-module-path     >= 1.1     && < 1.2
                     , hslua-module-system   >= 1.1     && < 1.2
                     , hslua-module-text     >= 1.1     && < 1.2
                     , hslua-module-version  >= 1.1     && < 1.2
                     , hslua-module-zip      >= 1.1.3   && < 1.2
                     , hslua-repl            >= 0.1.1   && < 0.2
                     , lpeg                  >= 1.1     && < 1.2
                     , mtl                   >= 2.2     && < 2.4
                     , pandoc                >= 3.6     && < 3.7
                     , pandoc-lua-marshal    >= 0.3     && < 0.4
                     , pandoc-types          >= 1.22    && < 1.24
                     , parsec                >= 3.1     && < 3.2
                     , text                  >= 1.1.1   && < 2.2


test-suite test-pandoc-lua-engine
  import:              common-options
  type:                exitcode-stdio-1.0
  main-is:             test-pandoc-lua-engine.hs
  hs-source-dirs:      test
  build-depends:       pandoc-lua-engine
                     , bytestring
                     , directory
                     , data-default
                     , exceptions            >= 0.8     && < 0.11
                     , filepath
                     , hslua                 >= 2.3     && < 2.4
                     , pandoc
                     , pandoc-types          >= 1.22    && < 1.24
                     , tasty
                     , tasty-golden
                     , tasty-hunit
                     , tasty-lua             >= 1.1     && < 1.2
                     , text                  >= 1.1.1   && < 2.2
  other-modules:       Tests.Lua
                     , Tests.Lua.Module
                     , Tests.Lua.Reader
                     , Tests.Lua.Writer