packages feed

slab-0.0.3.0: slab.cabal

cabal-version:      2.2
name:               slab
version:            0.0.3.0
license:            BSD-2-Clause
license-file:       LICENSE
copyright:          2024 Võ Minh Thu, Hypered SRL
author:             Võ Minh Thu
maintainer:         thu@hypered.be
homepage:           https://slab-lang.org
synopsis:           A programmable markup language to generate HTML
description:
    Slab is an alternative syntax for writing HTML, plus some programming
    language features (often found in templating languages, like conditionals
    and loops). You can visit the project homepage at <https://slab-lang.org>.
category:           text

source-repository head
  type: git
  location: https://github.com/hypered/slab

common common-extensions
  default-language: Haskell2010
  default-extensions:
    ImportQualifiedPost
    LambdaCase
    OverloadedStrings
    RecordWildCards
    StrictData
    TypeApplications
    TypeOperators

common common-options
  default-language: Haskell2010
  ghc-options:
    -Wall
    -Wmissing-export-lists
    -fno-warn-unused-do-bind
    +RTS -A256m -n4m -qg -RTS

-- Generating version bounds can be done with
--     nix-shell --run 'cabal freeze'
common common-dependencies
  build-depends:
      base >=4.7 && <5
    , optparse-applicative
    , protolude

library
  import: common-extensions, common-options, common-dependencies
  hs-source-dirs: src
  build-depends:
      aeson
    , blaze-html
    , blaze-markup
    , blaze-svg
    , bytestring
    , containers
    , directory
    , filepath
    , fsnotify
    , Glob
    , http-types
    , megaparsec
    , parser-combinators
    , prettyprinter
    , pretty-simple
    , process
    , servant
    , servant-blaze
    , servant-server
    , servant-websockets
    , stm
    , text
    , transformers
    , vector
    , wai
    , wai-app-static
    , warp
    , websockets
  exposed-modules:
    Slab.Build
    Slab.Command
    Slab.Error
    Slab.Execute
    Slab.Evaluate
    Slab.Generate.Haskell
    Slab.Parse
    Slab.PreProcess
    Slab.Render
    Slab.Report
    Slab.Run
    Slab.Serve
    Slab.Syntax
    Slab.Watch

executable slab
  import: common-extensions, common-options, common-dependencies
  main-is: slab.hs
  hs-source-dirs: bin
  build-depends:
    slab
  ghc-options:
    -threaded

test-suite slab-examples
  import: common-extensions, common-options, common-dependencies
  build-depends:
    , hspec
    , slab
    , filepath
    , Glob
    , lens
    , pretty-simple
    , process
    , QuickCheck
    , tasty
    , tasty-silver
    , text
  other-modules:
    -- The GHCi module is not really used in the test-suite but is mentioned
    -- here to please Fourmolu.
    Slab.GHCi
    Slab.Runner
  type: exitcode-stdio-1.0
  main-is: run-examples.hs
  hs-source-dirs:
      tests