+
+# local no_spaces = ldoc.no_spaces
+# local use_li = ldoc.use_li
+# local display_name = ldoc.display_name
+# local iter = ldoc.modules.iter
+# local M = ldoc.markup
+
+
+
+
+
+
$(ldoc.project)
+
+# if not ldoc.single and module then -- reference back to project index
+
+# end
+
+
+
+# -------- contents of project ----------
+# if not ldoc.no_summary then
+# local this_mod = module and module.name
+# for kind, mods, type in ldoc.kinds() do
+# if not ldoc.kinds_allowed or ldoc.kinds_allowed[type] then
+
$(kind)
+
+# for mod in mods() do
+# if mod.name == this_mod then -- highlight current module, link to others
+
+# end
+
+# if ldoc.body then -- verbatim HTML as contents; 'non-code' entries
+ $(ldoc.body)
+# elseif module then -- module documentation
+# ldoc.item = module -- context for M()
+
$(M(module.summary))
+
$(M(module.description))
+
+# if not ldoc.no_summary then
+# -- bang out the tables of item types for this module (e.g Functions, Tables, etc)
+# for kind,items in module.kinds() do
+
+#end -- for kinds
+
+
+
+
+#end -- if not no_summary
+
+# --- currently works for both Functions and Tables. The params field either contains
+# --- function parameters or table fields.
+# local show_return = not ldoc.no_return_or_parms
+# local show_parms = show_return
+# for kind, items in module.kinds() do
+
+
+
\ No newline at end of file
diff --git a/tests/example/laurent/mod1.lua b/tests/example/laurent/mod1.lua
new file mode 100644
index 0000000..4b5c9b0
--- /dev/null
+++ b/tests/example/laurent/mod1.lua
@@ -0,0 +1,61 @@
+---------------------------
+-- Test module providing bonzo.dog.
+-- Rest is a longer description
+-- @class module
+-- @name mod1
+
+--- zero function. Two new ldoc features here; item types
+-- can be used directly as tags, and aliases for tags
+-- can be defined in config.lp.
+-- @function zero_fun
+-- @param k1 first
+-- @param k2 second
+
+--- first function. Some description
+-- @param p1 first parameter
+-- @param[opt] p2 second parameter
+-- @param[optchain] p3 third parameter
+function mod1.first_fun(p1,p2,p3)
+end
+
+-------------------------
+-- second function.
+-- @param ... var args!
+function mod1.second_function(...)
+end
+
+------------
+-- third function. Can also provide parameter comments inline,
+-- provided they follow this pattern.
+function mod1.third_function(
+ alpha, -- correction A
+ beta, -- correction B
+ gamma -- factor C
+ )
+end
+
+-----
+-- A useful macro. This is an example of a custom 'kind'.
+-- @macro first_macro
+-- @see second_function
+
+---- general configuration table
+-- @table config
+-- @field A alpha
+-- @field B beta
+-- @field C gamma
+mod1.config = {
+ A = 1,
+ B = 2,
+ C = 3
+}
+
+--[[--
+Another function. Using a Lua block comment
+@param p a parameter
+]]
+function mod1.zero_function(p)
+end
+
+
+
diff --git a/tests/mod1.ld b/tests/mod1.ld
new file mode 100644
index 0000000..ebd8bad
--- /dev/null
+++ b/tests/mod1.ld
@@ -0,0 +1,9 @@
+-- ldoc -c mod1.ld .
+project = 'mod1'
+description = 'showing various ldoc comment styles'
+title = 'mod docs'
+-- may be a table containing files and directories
+file = 'mod1.lua'
+-- show local functions as well!
+all = true
+
diff --git a/tests/mod1.lua b/tests/mod1.lua
new file mode 100644
index 0000000..b8cd2b9
--- /dev/null
+++ b/tests/mod1.lua
@@ -0,0 +1,46 @@
+------
+-- always need a doc comment to start!
+-- Can have a module with no internal doc comments,
+-- although you will get a warning. At least we no
+-- longer get a 'end-of-file' if there is no explicit
+-- module name.
+
+----- not a doc comment -----
+-- a common style when just specifying an informative comment
+-- May start with a doc comment but has trailing hyphens
+
+local g -- so g below must be marked as local
+
+--- simple.
+--@param x a parameter
+function _M.f(x) end
+
+--- implicit local function.
+-- Local functions appear in dump but only in docs if you say --all
+local function L(t,v) end
+
+--- explicit local function.
+-- @local here
+function g(a,b) end
+
+--- a table of this module
+_M.contents = {
+ A = 'f', -- alpha
+ B = 'g' -- beta
+}
+
+--- another way to do parameters.
+function _M.kay(
+ a, -- ay
+ b, -- bee
+) end
+
+--- a field of this module.
+_M.constant = 'hello'
+
+--- functions can also be like so.
+_M.why = function(x,y)
+end
+
+
+