diff --git a/tests/example/laurent/config.ld b/tests/example/laurent/config.ld new file mode 100644 index 0000000..dfb0778 --- /dev/null +++ b/tests/example/laurent/config.ld @@ -0,0 +1,3 @@ +style = true +template = true +file = 'mod1.lua' diff --git a/tests/example/laurent/ldoc.css b/tests/example/laurent/ldoc.css new file mode 100644 index 0000000..7c9023d --- /dev/null +++ b/tests/example/laurent/ldoc.css @@ -0,0 +1,271 @@ +/* BEGIN RESET + +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 2.8.2r1 +*/ +html { + color: #000; + background: #FFF; +} +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td { + margin: 0; + padding: 0; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +fieldset,img { + border: 0; +} +address,caption,cite,code,dfn,em,strong,th,var,optgroup { + font-style: inherit; + font-weight: inherit; +} +del,ins { + text-decoration: none; +} +li { + list-style: bullet; + margin-left: 20px; +} +caption,th { + text-align: left; +} +h1,h2,h3,h4,h5,h6 { + font-size: 100%; + font-weight: bold; +} +q:before,q:after { + content: ''; +} +abbr,acronym { + border: 0; + font-variant: normal; +} +sup { + vertical-align: baseline; +} +sub { + vertical-align: baseline; +} +legend { + color: #000; +} +input,button,textarea,select,optgroup,option { + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; +} +input,button,textarea,select {*font-size:100%; +} +/* END RESET */ + +body { + margin-left: 1em; + margin-right: 1em; + font-family: arial, helvetica, geneva, sans-serif; + background-color: #ffffff; margin: 0px; +} + +code, tt { font-family: monospace; } + +body, p, td, th { font-size: .95em; line-height: 1.2em;} + +p, ul { margin: 10px 0 0 10px;} + +strong { font-weight: bold;} + +em { font-style: italic;} + +h1 { + font-size: 1.5em; + margin: 0 0 20px 0; +} +h2, h3, h4 { margin: 15px 0 10px 0; } +h2 { font-size: 1.25em; } +h3 { font-size: 1.15em; } +h4 { font-size: 1.06em; } + +a:link { font-weight: bold; color: #004080; text-decoration: none; } +a:visited { font-weight: bold; color: #006699; text-decoration: none; } +a:link:hover { text-decoration: underline; } + +hr { + color:#cccccc; + background: #00007f; + height: 1px; +} + +blockquote { margin-left: 3em; } + +ul { list-style-type: disc; } + +p.name { + font-family: "Andale Mono", monospace; + padding-top: 1em; +} + +pre.example { + background-color: rgb(245, 245, 245); + border: 1px solid silver; + padding: 10px; + margin: 10px 0 10px 0; + font-family: "Andale Mono", monospace; + font-size: .85em; +} + +pre { + background-color: rgb(245, 245, 245); + border: 1px solid silver; + padding: 10px; + margin: 10px 0 10px 0; + font-family: "Andale Mono", monospace; +} + + +table.index { border: 1px #00007f; } +table.index td { text-align: left; vertical-align: top; } + +#container { + margin-left: 1em; + margin-right: 1em; + background-color: #f0f0f0; +} + +#product { + text-align: center; + border-bottom: 1px solid #cccccc; + background-color: #ffffff; +} + +#product big { + font-size: 2em; +} + +#main { + background-color: #f0f0f0; + border-left: 2px solid #cccccc; +} + +#navigation { + float: left; + width: 18em; + vertical-align: top; + background-color: #f0f0f0; + overflow: visible; + position: fixed; +} + +#navigation h2 { + background-color:#e7e7e7; + font-size:1.1em; + color:#000000; + text-align: left; + padding:0.2em; + border-top:1px solid #dddddd; + border-bottom:1px solid #dddddd; +} + +#navigation ul +{ + font-size:1em; + list-style-type: none; + margin: 1px 1px 10px 1px; +} + +#navigation li { + text-indent: -1em; + display: block; + margin: 3px 0px 0px 22px; +} + +#navigation li li a { + margin: 0px 3px 0px -1em; +} + +#content { + margin-left: 18em; + padding: 1em; + border-left: 2px solid #cccccc; + border-right: 2px solid #cccccc; + background-color: #ffffff; +} + +#about { + clear: both; + padding: 5px; + border-top: 2px solid #cccccc; + background-color: #ffffff; +} + +@media print { + body { + font: 12pt "Times New Roman", "TimeNR", Times, serif; + } + a { font-weight: bold; color: #004080; text-decoration: underline; } + + #main { + background-color: #ffffff; + border-left: 0px; + } + + #container { + margin-left: 2%; + margin-right: 2%; + background-color: #ffffff; + } + + #content { + padding: 1em; + background-color: #ffffff; + } + + #navigation { + display: none; + } + pre.example { + font-family: "Andale Mono", monospace; + font-size: 10pt; + page-break-inside: avoid; + } +} + +table.module_list { + border-width: 1px; + border-style: solid; + border-color: #cccccc; + border-collapse: collapse; +} +table.module_list td { + border-width: 1px; + padding: 3px; + border-style: solid; + border-color: #cccccc; +} +table.module_list td.name { background-color: #f0f0f0; } +table.module_list td.summary { width: 100%; } + + +table.function_list { + border-width: 1px; + border-style: solid; + border-color: #cccccc; + border-collapse: collapse; +} +table.function_list td { + border-width: 1px; + padding: 3px; + border-style: solid; + border-color: #cccccc; +} +table.function_list td.name { background-color: #f0f0f0; } +table.function_list td.summary { width: 100%; } + +dl.table dt, dl.function dt {border-top: 1px solid #ccc; padding-top: 1em;} +dl.table dd, dl.function dd {padding-bottom: 1em; margin: 10px 0 0 20px;} +dl.table h3, dl.function h3 {font-size: .95em;} + diff --git a/tests/example/laurent/ldoc.ltp b/tests/example/laurent/ldoc.ltp new file mode 100644 index 0000000..7e4341b --- /dev/null +++ b/tests/example/laurent/ldoc.ltp @@ -0,0 +1,201 @@ + + + + + $(ldoc.title) + + + + +
+ +
+ +
+
+
+ + +
+ +# 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 + + + + + +
+ +#if module then +

$(ldoc.titlecase(module.type)) $(module.name)

+# 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 +

$(kind)

+ +# for item in items() do + + + + +# end -- for items +
$(display_name(item))$(M(item.summary))
+#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 +

$(kind)

+ $(M(module.kinds:get_section_description(kind))) +
+# for item in items() do ldoc.item = item -- provides context for M() +
+ + $(display_name(item)) +
+
+ $(M(item.summary..'
'..(item.description or ''))) + +# if show_parms and item.params and #item.params > 0 then +

$(module.kinds:type_of(item).subnames):

+
    +# for p in iter(item.params) do +
  • $(p): $(M(item.params[p]))
  • +# end -- for +
+# end -- if params + +# if show_return and item.ret then +# local li,il = use_li(item.ret) +

Returns:

+
    +# for r in iter(item.ret) do + $(li)$(M(r))$(il) +# end -- for +
+# end -- if returns + +# if item.usage then +# local li,il = use_li(item.usage) +

Usage:

+
    +# for usage in iter(item.usage) do + $(li)
    $(usage)
    $(il) +# end -- for +
+# end -- if usage + +# if item.see then +# local li,il = use_li(item.see) +

see also:

+
    +# for see in iter(item.see) do + $(li)$(see.label)$(il) +# end -- for +
+# end -- if see +
+# end -- for items +
+# end -- for kinds + +# else -- if module; project-level contents + +# if ldoc.description then +

$(M(ldoc.description))

+# end + +# for kind, mods in ldoc.kinds() do +

$(kind)

+# kind = kind:lower() + +# for m in mods() do + + + + +# end -- for modules +
$(m.name)$(M(m.summary))
+# end -- for kinds +# end -- if module + +
+
+
+generated by LDoc +
+
+ + \ 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 + + +