# default document-root

server.document-root = "/var/www/example.org/pages/"

# TCP port

server.port = 80

# selecting modules

server.modules = ("mod_access",
                  "mod_rewrite")

# variables, computed when config is read.

var.mymodule = "foo"

server.modules += ("mod_" + var.mymodule)

# var.PID is initialised to the pid of lighttpd before config is parsed

# include, relative to dirname of main config file

include "mime.types.conf"

# read configuration from output of a command

include_shell "/usr/local/bin/confmimetype /etc/mime.types"

(Config
   [CommentE " default document-root",
    OptionE
      (QName{moduleName = Name "server",
             baseName = Name "document-root"})
      (StringV "/var/www/example.org/pages/"),
    CommentE " TCP port",
    OptionE (QName{moduleName = Name "server", baseName = Name "port"})
      (IntegerV 80),
    CommentE " selecting modules",
    OptionE
      (QName{moduleName = Name "server", baseName = Name "modules"})
      (ArrayV
         [ArrayElem Nothing (StringV "mod_access"),
          ArrayElem Nothing (StringV "mod_rewrite")]),
    CommentE " variables, computed when config is read.",
    OptionE
      (QName{moduleName = Name "var", baseName = Name "mymodule"})
      (StringV "foo"),
    MergeE
      (QName{moduleName = Name "server", baseName = Name "modules"})
      (ArrayV
         [ArrayElem Nothing
            (ManyV
               [StringV "mod_",
                VarV
                  (QName{moduleName = Name "var", baseName = Name "mymodule"})])]),
    CommentE
      " var.PID is initialised to the pid of lighttpd before config is parsed",
    CommentE " include, relative to dirname of main config file",
    IncludeE (ValueI (StringV "mime.types.conf")),
    CommentE " read configuration from output of a command",
    IncludeE (ShellI "/usr/local/bin/confmimetype /etc/mime.types")])