Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

51 lines (27 sloc) 1.144 kb

ANN: loli: a minimal web dev DSL

loli is a DSL built on hack. It allows you to easily define routes, build your custom template backends through a simple Template interface, and integrate with other hack middleware.

  • driver

    The simplest app looks like this

    import Network.Loli
    import Hack.Handler.Happstack
    main = run . loli - get "/" (text "loli power")
  • route

    get "/hello" - do
      text "hello"

    will route "/hello" to a controller that outputs hello.

  • middleware

    using a middleware is just as declaring

    middleware lambda
  • template

    the template interface is

    class Template a where
      interpolate :: a -> String -> Context -> IO String

    Context is just [(String, String)]

    After implementing your own template engine, you can use

    output - your-engine-constructor "template-name"
  • demo

    I put the source of a dummy paste app on itself:

loli is on hackage, lolipaste is in loli repo on github:

happy hacking

Jump to Line
Something went wrong with that request. Please try again.