diff --git a/pandoc-lua-engine.cabal b/pandoc-lua-engine.cabal
--- a/pandoc-lua-engine.cabal
+++ b/pandoc-lua-engine.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.4
 name:                pandoc-lua-engine
-version:             0.3
+version:             0.3.1
 build-type:          Simple
 license:             GPL-2.0-or-later
 license-file:        COPYING.md
@@ -124,7 +124,7 @@
                      , hslua-repl            >= 0.1.1   && < 0.2
                      , lpeg                  >= 1.1     && < 1.2
                      , mtl                   >= 2.2     && < 2.4
-                     , pandoc                >= 3.2.1   && < 3.3
+                     , pandoc                >= 3.3     && < 3.4
                      , pandoc-lua-marshal    >= 0.2.7   && < 0.3
                      , pandoc-types          >= 1.22    && < 1.24
                      , parsec                >= 3.1     && < 3.2
diff --git a/src/Text/Pandoc/Lua.hs b/src/Text/Pandoc/Lua.hs
--- a/src/Text/Pandoc/Lua.hs
+++ b/src/Text/Pandoc/Lua.hs
@@ -3,7 +3,7 @@
    Copyright   : Copyright © 2017-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
 
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
 
 Running pandoc Lua filters.
diff --git a/src/Text/Pandoc/Lua/Engine.hs b/src/Text/Pandoc/Lua/Engine.hs
--- a/src/Text/Pandoc/Lua/Engine.hs
+++ b/src/Text/Pandoc/Lua/Engine.hs
@@ -4,7 +4,7 @@
    Module      : Text.Pandoc.Lua.Engine
    Copyright   : Copyright © 2017-2024 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@zeitkraut.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Running pandoc Lua filters.
 -}
diff --git a/src/Text/Pandoc/Lua/Filter.hs b/src/Text/Pandoc/Lua/Filter.hs
--- a/src/Text/Pandoc/Lua/Filter.hs
+++ b/src/Text/Pandoc/Lua/Filter.hs
@@ -5,7 +5,7 @@
 Copyright   : © 2012-2024 John MacFarlane,
               © 2017-2024 Albert Krewinkel
 License     : GPL-2.0-or-later
-Maintainer  : Albert Krewinkel <pandoc@tarleb.com>
+Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Types and functions for running Lua filters.
 -}
diff --git a/src/Text/Pandoc/Lua/Global.hs b/src/Text/Pandoc/Lua/Global.hs
--- a/src/Text/Pandoc/Lua/Global.hs
+++ b/src/Text/Pandoc/Lua/Global.hs
@@ -4,7 +4,7 @@
    Copyright   : Copyright © 2017-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
 
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
 
 Pandoc's Lua globals.
diff --git a/src/Text/Pandoc/Lua/Init.hs b/src/Text/Pandoc/Lua/Init.hs
--- a/src/Text/Pandoc/Lua/Init.hs
+++ b/src/Text/Pandoc/Lua/Init.hs
@@ -5,7 +5,7 @@
    Module      : Text.Pandoc.Lua.Init
    Copyright   : © 2017-2024 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Functions to initialize the Lua interpreter.
 -}
diff --git a/src/Text/Pandoc/Lua/Marshal/Chunks.hs b/src/Text/Pandoc/Lua/Marshal/Chunks.hs
--- a/src/Text/Pandoc/Lua/Marshal/Chunks.hs
+++ b/src/Text/Pandoc/Lua/Marshal/Chunks.hs
@@ -4,7 +4,7 @@
    Module      : Text.Pandoc.Lua.Marshal.Chunks
    Copyright   : © 2022 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Marshaling chunks, i.e., pandoc subdocuments.
 -}
diff --git a/src/Text/Pandoc/Lua/Marshal/CommonState.hs b/src/Text/Pandoc/Lua/Marshal/CommonState.hs
--- a/src/Text/Pandoc/Lua/Marshal/CommonState.hs
+++ b/src/Text/Pandoc/Lua/Marshal/CommonState.hs
@@ -4,7 +4,7 @@
    Copyright   : © 2012-2024 John MacFarlane
                  © 2017-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
 
 Instances to marshal (push) and unmarshal (peek) the common state.
diff --git a/src/Text/Pandoc/Lua/Marshal/Context.hs b/src/Text/Pandoc/Lua/Marshal/Context.hs
--- a/src/Text/Pandoc/Lua/Marshal/Context.hs
+++ b/src/Text/Pandoc/Lua/Marshal/Context.hs
@@ -8,7 +8,7 @@
                  © 2017-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
 
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
 
 Marshaling instance for doctemplates Context and its components.
diff --git a/src/Text/Pandoc/Lua/Marshal/Format.hs b/src/Text/Pandoc/Lua/Marshal/Format.hs
--- a/src/Text/Pandoc/Lua/Marshal/Format.hs
+++ b/src/Text/Pandoc/Lua/Marshal/Format.hs
@@ -6,7 +6,7 @@
    Module      : Text.Pandoc.Lua.Marshaling.Format
    Copyright   : © 2022-2024 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Marshaling functions and instance for format related types, including
 'Extensions' and 'ExtensionConfig'.
diff --git a/src/Text/Pandoc/Lua/Marshal/LogMessage.hs b/src/Text/Pandoc/Lua/Marshal/LogMessage.hs
--- a/src/Text/Pandoc/Lua/Marshal/LogMessage.hs
+++ b/src/Text/Pandoc/Lua/Marshal/LogMessage.hs
@@ -3,7 +3,7 @@
    Module      : Text.Pandoc.Lua.Marshal.LogMessage
    Copyright   : © 2017-2024 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Pushing and retrieving of pandoc log messages.
 -}
diff --git a/src/Text/Pandoc/Lua/Marshal/PandocError.hs b/src/Text/Pandoc/Lua/Marshal/PandocError.hs
--- a/src/Text/Pandoc/Lua/Marshal/PandocError.hs
+++ b/src/Text/Pandoc/Lua/Marshal/PandocError.hs
@@ -6,7 +6,7 @@
    Copyright   : © 2020-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
 
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
 
 Marshal of @'PandocError'@ values.
diff --git a/src/Text/Pandoc/Lua/Marshal/ReaderOptions.hs b/src/Text/Pandoc/Lua/Marshal/ReaderOptions.hs
--- a/src/Text/Pandoc/Lua/Marshal/ReaderOptions.hs
+++ b/src/Text/Pandoc/Lua/Marshal/ReaderOptions.hs
@@ -9,7 +9,7 @@
                  © 2017-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
 
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
 
 Marshaling instance for ReaderOptions and its components.
diff --git a/src/Text/Pandoc/Lua/Marshal/Reference.hs b/src/Text/Pandoc/Lua/Marshal/Reference.hs
--- a/src/Text/Pandoc/Lua/Marshal/Reference.hs
+++ b/src/Text/Pandoc/Lua/Marshal/Reference.hs
@@ -8,7 +8,7 @@
                  © 2017-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
 
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
 
 Marshal citeproc 'Reference' values.
diff --git a/src/Text/Pandoc/Lua/Marshal/Sources.hs b/src/Text/Pandoc/Lua/Marshal/Sources.hs
--- a/src/Text/Pandoc/Lua/Marshal/Sources.hs
+++ b/src/Text/Pandoc/Lua/Marshal/Sources.hs
@@ -5,7 +5,7 @@
 Module      : Text.Pandoc.Lua.Marshaling.Sources
 Copyright   : © 2021-2024 Albert Krewinkel
 License     : GNU GPL, version 2 or above
-Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Marshal 'Sources'.
 -}
diff --git a/src/Text/Pandoc/Lua/Marshal/Template.hs b/src/Text/Pandoc/Lua/Marshal/Template.hs
--- a/src/Text/Pandoc/Lua/Marshal/Template.hs
+++ b/src/Text/Pandoc/Lua/Marshal/Template.hs
@@ -5,7 +5,7 @@
 Module      : Text.Pandoc.Lua.Marshal.Template
 Copyright   : © 2021-2024 Albert Krewinkel
 License     : GNU GPL, version 2 or above
-Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Marshal 'Template' 'Text'.
 -}
diff --git a/src/Text/Pandoc/Lua/Marshal/WriterOptions.hs b/src/Text/Pandoc/Lua/Marshal/WriterOptions.hs
--- a/src/Text/Pandoc/Lua/Marshal/WriterOptions.hs
+++ b/src/Text/Pandoc/Lua/Marshal/WriterOptions.hs
@@ -8,7 +8,7 @@
    Copyright   : © 2021-2024 Albert Krewinkel, John MacFarlane
    License     : GNU GPL, version 2 or above
 
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
 
 Marshaling instance for WriterOptions and its components.
diff --git a/src/Text/Pandoc/Lua/Module.hs b/src/Text/Pandoc/Lua/Module.hs
--- a/src/Text/Pandoc/Lua/Module.hs
+++ b/src/Text/Pandoc/Lua/Module.hs
@@ -4,7 +4,7 @@
    Module      : Text.Pandoc.Lua.Module
    Copyright   : © 2017-2024 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <pandoc@tarleb.com>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Setting up and initializing Lua modules.
 -}
@@ -13,8 +13,7 @@
   ( initModules
   ) where
 
-import Control.Monad (forM, forM_, when)
-import Data.Maybe (catMaybes)
+import Control.Monad (forM_, when)
 import Data.Version (makeVersion)
 import HsLua as Lua
 import Text.Pandoc.Error (PandocError)
@@ -111,37 +110,25 @@
         [ ("lpeg", LPeg.luaopen_lpeg_ptr)  -- must be loaded first
         , ("re", LPeg.luaopen_re_ptr)      -- re depends on lpeg
         ]
-  loadedBuiltInModules <- fmap catMaybes . forM globalModules $
+  forM_ globalModules $
     \(pkgname, luaopen) -> do
       Lua.pushcfunction luaopen
-      usedBuiltIn <- Lua.pcall 0 1 Nothing >>= \case
+      Lua.pcall 0 1 Nothing >>= \case
         OK -> do               -- all good, loading succeeded
           -- register as loaded module so later modules can rely on this
           Lua.getfield Lua.registryindex Lua.loaded
           Lua.pushvalue (Lua.nth 2)
           Lua.setfield (Lua.nth 2) pkgname
           Lua.pop 1  -- pop _LOADED
-          return True
         _  -> do               -- built-in library failed, load system lib
           Lua.pop 1  -- ignore error message
           -- Try loading via the normal package loading mechanism.
           Lua.getglobal "require"
           Lua.pushName pkgname
           Lua.call 1 1  -- Throws an exception if loading failed again!
-          return False
 
       -- Module on top of stack. Register as global
       Lua.setglobal pkgname
-      return $ if usedBuiltIn then Just pkgname else Nothing
-
-  -- Remove module entry from _LOADED table in registry if we used a
-  -- built-in library. This ensures that later calls to @require@ will
-  -- prefer the shared library, if any.
-  forM_ loadedBuiltInModules $ \pkgname -> do
-    Lua.getfield Lua.registryindex Lua.loaded
-    Lua.pushnil
-    Lua.setfield (Lua.nth 2) pkgname
-    Lua.pop 1  -- registry
 
 installLpegSearcher :: PandocLua ()
 installLpegSearcher = liftPandocLua $ do
diff --git a/src/Text/Pandoc/Lua/Module/CLI.hs b/src/Text/Pandoc/Lua/Module/CLI.hs
--- a/src/Text/Pandoc/Lua/Module/CLI.hs
+++ b/src/Text/Pandoc/Lua/Module/CLI.hs
@@ -4,7 +4,7 @@
    Module      : Text.Pandoc.Lua.Module.CLI
    Copyright   : © 2022-2024 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Command line helpers
 -}
diff --git a/src/Text/Pandoc/Lua/Module/Format.hs b/src/Text/Pandoc/Lua/Module/Format.hs
--- a/src/Text/Pandoc/Lua/Module/Format.hs
+++ b/src/Text/Pandoc/Lua/Module/Format.hs
@@ -3,7 +3,7 @@
    Module      : Text.Pandoc.Lua.Module.Format
    Copyright   : © 2022-2024 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Lua module to handle pandoc templates.
 -}
diff --git a/src/Text/Pandoc/Lua/Module/JSON.hs b/src/Text/Pandoc/Lua/Module/JSON.hs
--- a/src/Text/Pandoc/Lua/Module/JSON.hs
+++ b/src/Text/Pandoc/Lua/Module/JSON.hs
@@ -4,7 +4,7 @@
 Module      : Text.Pandoc.Lua.Module.JSON
 Copyright   : © 2022-2024 Albert Krewinkel
 License     : MIT
-Maintainer  : Albert Krewinkel <albert@hslua.org>
+Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Lua module to work with JSON.
 -}
diff --git a/src/Text/Pandoc/Lua/Module/Log.hs b/src/Text/Pandoc/Lua/Module/Log.hs
--- a/src/Text/Pandoc/Lua/Module/Log.hs
+++ b/src/Text/Pandoc/Lua/Module/Log.hs
@@ -4,7 +4,7 @@
    Module      : Text.Pandoc.Lua.Module.Log
    Copyright   : © 2024 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Logging module.
 -}
diff --git a/src/Text/Pandoc/Lua/Module/MediaBag.hs b/src/Text/Pandoc/Lua/Module/MediaBag.hs
--- a/src/Text/Pandoc/Lua/Module/MediaBag.hs
+++ b/src/Text/Pandoc/Lua/Module/MediaBag.hs
@@ -4,7 +4,7 @@
    Module      : Text.Pandoc.Lua.Module.MediaBag
    Copyright   : Copyright © 2017-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 The Lua module @pandoc.mediabag@.
 -}
diff --git a/src/Text/Pandoc/Lua/Module/Pandoc.hs b/src/Text/Pandoc/Lua/Module/Pandoc.hs
--- a/src/Text/Pandoc/Lua/Module/Pandoc.hs
+++ b/src/Text/Pandoc/Lua/Module/Pandoc.hs
@@ -6,12 +6,10 @@
 {- |
    Module      : Text.Pandoc.Lua.Module.Pandoc
    Copyright   : Copyright © 2017-2024 Albert Krewinkel
-   License     : GNU GPL, version 2 or above
-
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
-   Stability   : alpha
+   License     : GPL-2.0-or-later
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
-Pandoc module for lua.
+Main @pandoc@ module, containing element constructors and central functions.
 -}
 module Text.Pandoc.Lua.Module.Pandoc
   ( documentedModule
@@ -61,19 +59,22 @@
 documentedModule = Module
   { moduleName = "pandoc"
   , moduleDescription = T.unlines
-    [ "Lua functions for pandoc scripts; includes constructors for"
-    , "document elements, functions to parse text in a given"
+    [ "Fields and functions for pandoc scripts; includes constructors for"
+    , "document tree elements, functions to parse text in a given"
     , "format, and functions to filter and modify a subtree."
     ]
   , moduleFields = readersField : writersField :
                    stringConstants ++ [inlineField, blockField]
   , moduleOperations = []
   , moduleFunctions = mconcat
-      [ functions
-      , otherConstructors
+      [ [mkPandoc, mkMeta]
+      , metaValueConstructors
       , blockConstructors
+      , [mkBlocks]
       , inlineConstructors
-      , metaValueConstructors
+      , [mkInlines]
+      , otherConstructors
+      , functions
       ]
   , moduleTypeInitializers =
     [ initType typePandoc
@@ -144,30 +145,51 @@
 
 otherConstructors :: [DocumentedFunction PandocError]
 otherConstructors =
-  [ mkPandoc
-  , mkMeta
-  , mkAttr
+  [ mkAttr
+  , mkCell
   , mkAttributeList
-  , mkBlocks
   , mkCitation
-  , mkCell
+  , mkListAttributes
   , mkRow
-  , mkTableHead
   , mkTableFoot
-  , mkInlines
-  , mkListAttributes
+  , mkTableHead
   , mkSimpleTable
 
   , defun "ReaderOptions"
     ### liftPure id
-    <#> parameter peekReaderOptions "ReaderOptions|table" "opts" "reader options"
+    <#> parameter peekReaderOptions "ReaderOptions|table" "opts"
+        (T.unlines
+         [ "Either a table with a subset of the properties of a"
+         , "[[ReaderOptions]] object, or another ReaderOptions object."
+         , "Uses the defaults specified in the manual for all"
+         , "properties that are not explicitly specified. Throws an"
+         , "error if a table contains properties which are not present"
+         , "in a ReaderOptions object."
+        ]
+        )
     =#> functionResult pushReaderOptions "ReaderOptions" "new object"
-    #? "Creates a new ReaderOptions value."
+    #? T.unlines
+    [ "Creates a new ReaderOptions value."
+    , ""
+    , "Usage:"
+    , ""
+    , "    -- copy of the reader options that were defined on the command line."
+    , "    local cli_opts = pandoc.ReaderOptions(PANDOC_READER_OPTIONS)"
+    , "    -- default reader options, but columns set to 66."
+    , "    local short_colums_opts = pandoc.ReaderOptions {columns = 66}"
+    ]
 
   , defun "WriterOptions"
     ### liftPure id
     <#> parameter peekWriterOptions "WriterOptions|table" "opts"
-          "writer options"
+        (T.unlines
+        [ "Either a table with a subset of the properties of a"
+        , "[[WriterOptions]] object, or another WriterOptions object."
+        , "Uses the defaults specified in the manual for all"
+        , "properties that are not explicitly specified. Throws an"
+        , "error if a table contains properties which are not present"
+        , "in a WriterOptions object."
+        ])
     =#> functionResult pushWriterOptions "WriterOptions" "new object"
     #? "Creates a new WriterOptions value."
   ]
@@ -260,22 +282,59 @@
               (ByteStringWriter w, es) -> Left <$>
                 w writerOpts{ writerExtensions = es } doc)
     <#> parameter peekPandoc "Pandoc" "doc" "document to convert"
-    <#> opt (parameter peekFlavoredFormat "string|table"
-                       "formatspec" "format and extensions")
-    <#> opt (parameter peekWriterOptions "WriterOptions" "writer_options"
-              "writer options")
+    <#> opt (parameter peekFlavoredFormat "string|table" "formatspec"
+             (T.unlines
+              [ "format specification; defaults to `\"html\"`. See the"
+              , "documentation of [`pandoc.read`](#pandoc.read) for a complete"
+              , "description of this parameter."
+              ]))
+    <#> opt (parameter peekWriterOptions "WriterOptions|table" "writer_options"
+            (T.unlines
+            [ "options passed to the writer; may be a WriterOptions object"
+            , "or a table with a subset of the keys and values of a"
+            , "WriterOptions object; defaults to the default values"
+            , "documented in the manual."
+            ])
+            )
     =#> functionResult (either pushLazyByteString pushText) "string"
           "result document"
+    #? T.unlines
+    [ "Converts a document to the given target format."
+    , ""
+    , "Usage:"
+    , ""
+    , "    local doc = pandoc.Pandoc("
+    , "      {pandoc.Para {pandoc.Strong 'Tea'}}"
+    , "    )"
+    , "    local html = pandoc.write(doc, 'html')"
+    , "    assert(html == '<p><strong>Tea</strong></p>')"
+    ]
 
   , defun "write_classic"
     ### (\doc mwopts -> runCustom (fromMaybe def mwopts) doc)
     <#> parameter peekPandoc "Pandoc" "doc" "document to convert"
     <#> opt (parameter peekWriterOptions "WriterOptions" "writer_options"
-              "writer options")
+             (T.unlines
+              [ "options passed to the writer; may be a WriterOptions object"
+              , "or a table with a subset of the keys and values of a"
+              , "WriterOptions object; defaults to the default values"
+              , "documented in the manual."
+              ]))
     =#> functionResult pushText "string" "rendered document"
     #? (T.unlines
        [ "Runs a classic custom Lua writer, using the functions defined"
        , "in the current environment."
+       , ""
+       , "Usage:"
+       , ""
+       , "    -- Adding this function converts a classic writer into a"
+       , "    -- new-style custom writer."
+       , "    function Writer (doc, opts)"
+       , "      PANDOC_DOCUMENT = doc"
+       , "      PANDOC_WRITER_OPTIONS = opts"
+       , "      loadfile(PANDOC_SCRIPT_FILE)()"
+       , "      return pandoc.write_classic(doc, opts)"
+       , "    end"
        ])
   ]
  where
diff --git a/src/Text/Pandoc/Lua/Module/Scaffolding.hs b/src/Text/Pandoc/Lua/Module/Scaffolding.hs
--- a/src/Text/Pandoc/Lua/Module/Scaffolding.hs
+++ b/src/Text/Pandoc/Lua/Module/Scaffolding.hs
@@ -3,7 +3,7 @@
    Module      : Text.Pandoc.Lua.Module.Scaffolding
    Copyright   : Copyright © 2022-2024 Albert Krewinkel, John MacFarlane
    License     : GNU GPL, version 2 or above
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Scaffolding for custom Writers.
 -}
diff --git a/src/Text/Pandoc/Lua/Module/Structure.hs b/src/Text/Pandoc/Lua/Module/Structure.hs
--- a/src/Text/Pandoc/Lua/Module/Structure.hs
+++ b/src/Text/Pandoc/Lua/Module/Structure.hs
@@ -4,7 +4,7 @@
    Module      : Text.Pandoc.Lua.Module.Structure
    Copyright   : © 2023 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Command line helpers
 -}
diff --git a/src/Text/Pandoc/Lua/Module/System.hs b/src/Text/Pandoc/Lua/Module/System.hs
--- a/src/Text/Pandoc/Lua/Module/System.hs
+++ b/src/Text/Pandoc/Lua/Module/System.hs
@@ -6,7 +6,7 @@
    Copyright   : © 2019-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
 
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
 
 Pandoc's system Lua module.
diff --git a/src/Text/Pandoc/Lua/Module/Template.hs b/src/Text/Pandoc/Lua/Module/Template.hs
--- a/src/Text/Pandoc/Lua/Module/Template.hs
+++ b/src/Text/Pandoc/Lua/Module/Template.hs
@@ -3,7 +3,7 @@
    Module      : Text.Pandoc.Lua.Module.Template
    Copyright   : Copyright © 2022-2024 Albert Krewinkel, John MacFarlane
    License     : GNU GPL, version 2 or above
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Lua module to handle pandoc templates.
 -}
diff --git a/src/Text/Pandoc/Lua/Module/Text.hs b/src/Text/Pandoc/Lua/Module/Text.hs
--- a/src/Text/Pandoc/Lua/Module/Text.hs
+++ b/src/Text/Pandoc/Lua/Module/Text.hs
@@ -3,7 +3,7 @@
 Module      : Text.Pandoc.Lua.Module.Text
 Copyright   : © 2023 Albert Krewinkel
 License     : MIT
-Maintainer  : Albert Krewinkel <albert@hslua.org>
+Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Lua module to work with UTF-8 strings.
 -}
diff --git a/src/Text/Pandoc/Lua/Module/Types.hs b/src/Text/Pandoc/Lua/Module/Types.hs
--- a/src/Text/Pandoc/Lua/Module/Types.hs
+++ b/src/Text/Pandoc/Lua/Module/Types.hs
@@ -4,7 +4,7 @@
    Copyright   : © 2019-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
 
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
 
 Pandoc data type constructors.
diff --git a/src/Text/Pandoc/Lua/Module/Utils.hs b/src/Text/Pandoc/Lua/Module/Utils.hs
--- a/src/Text/Pandoc/Lua/Module/Utils.hs
+++ b/src/Text/Pandoc/Lua/Module/Utils.hs
@@ -7,7 +7,7 @@
    Copyright   : Copyright © 2017-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
 
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
 
 Utility module for Lua, exposing internal helper functions.
diff --git a/src/Text/Pandoc/Lua/Orphans.hs b/src/Text/Pandoc/Lua/Orphans.hs
--- a/src/Text/Pandoc/Lua/Orphans.hs
+++ b/src/Text/Pandoc/Lua/Orphans.hs
@@ -6,7 +6,7 @@
                  © 2017-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
 
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
 
 Orphan instances for Lua's Pushable and Peekable type classes.
diff --git a/src/Text/Pandoc/Lua/PandocLua.hs b/src/Text/Pandoc/Lua/PandocLua.hs
--- a/src/Text/Pandoc/Lua/PandocLua.hs
+++ b/src/Text/Pandoc/Lua/PandocLua.hs
@@ -9,7 +9,7 @@
    Module      : Text.Pandoc.Lua.PandocLua
    Copyright   : © 2020-2024 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 PandocMonad instance which allows execution of Lua operations and which
 uses Lua to handle state.
diff --git a/src/Text/Pandoc/Lua/Run.hs b/src/Text/Pandoc/Lua/Run.hs
--- a/src/Text/Pandoc/Lua/Run.hs
+++ b/src/Text/Pandoc/Lua/Run.hs
@@ -5,7 +5,7 @@
    Module      : Text.Pandoc.Lua.Run
    Copyright   : Copyright © 2017-2024 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Run code in the Lua interpreter.
 -}
diff --git a/src/Text/Pandoc/Lua/SourcePos.hs b/src/Text/Pandoc/Lua/SourcePos.hs
--- a/src/Text/Pandoc/Lua/SourcePos.hs
+++ b/src/Text/Pandoc/Lua/SourcePos.hs
@@ -3,7 +3,7 @@
    Module      : Text.Pandoc.Lua.SourcePos
    Copyright   : © 2024 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <tarleb+pandoc@moltkeplatz.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Helper function to retrieve the 'SourcePos' in a Lua script.
 -}
diff --git a/src/Text/Pandoc/Lua/Writer/Scaffolding.hs b/src/Text/Pandoc/Lua/Writer/Scaffolding.hs
--- a/src/Text/Pandoc/Lua/Writer/Scaffolding.hs
+++ b/src/Text/Pandoc/Lua/Writer/Scaffolding.hs
@@ -4,7 +4,7 @@
    Module      : Text.Pandoc.Lua.Writer.Scaffolding
    Copyright   : © 2022-2024 Albert Krewinkel
    License     : GPL-2.0-or-later
-   Maintainer  : Albert Krewinkel <pandoc@tarleb.com>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Conversion of Pandoc documents using a custom Lua writer.
 -}
diff --git a/test/Tests/Lua.hs b/test/Tests/Lua.hs
--- a/test/Tests/Lua.hs
+++ b/test/Tests/Lua.hs
@@ -6,7 +6,7 @@
    Copyright   : © 2017-2024 Albert Krewinkel
    License     : GNU GPL, version 2 or above
 
-   Maintainer  : Albert Krewinkel <albert@zeitkraut.de>
+   Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
    Stability   : alpha
    Portability : portable
 
diff --git a/test/Tests/Lua/Module.hs b/test/Tests/Lua/Module.hs
--- a/test/Tests/Lua/Module.hs
+++ b/test/Tests/Lua/Module.hs
@@ -3,7 +3,7 @@
 Copyright   : © 2019-2024 Albert Krewinkel
 License     : GNU GPL, version 2 or above
 
-Maintainer  : Albert Krewinkel <albert@zeitkraut.de>
+Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 Stability   : alpha
 Portability : portable
 
diff --git a/test/Tests/Lua/Reader.hs b/test/Tests/Lua/Reader.hs
--- a/test/Tests/Lua/Reader.hs
+++ b/test/Tests/Lua/Reader.hs
@@ -3,7 +3,7 @@
 Module      : Tests.Lua.Reader
 Copyright   : © 2022-2024 Albert Krewinkel
 License     : GPL-2.0-or-later
-Maintainer  : Albert Krewinkel <pandoc@tarleb.com>
+Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Tests for custom Lua readers.
 -}
diff --git a/test/Tests/Lua/Writer.hs b/test/Tests/Lua/Writer.hs
--- a/test/Tests/Lua/Writer.hs
+++ b/test/Tests/Lua/Writer.hs
@@ -4,7 +4,7 @@
 Module      : Tests.Lua.Writer
 Copyright   : © 2019-2024 Albert Krewinkel
 License     : GNU GPL, version 2 or above
-Maintainer  : Albert Krewinkel <albert@zeitkraut.de>
+Maintainer  : Albert Krewinkel <albert+pandoc@tarleb.com>
 
 Tests for custom Lua writers.
 -}
