Merge branch 'master' into usage_version

This commit is contained in:
Caleb Maclennan 2020-09-30 00:35:53 +03:00 committed by GitHub
commit 702585fe17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 325 additions and 18 deletions

View File

@ -6,7 +6,7 @@ backtick_references=false
file='../ldoc.lua' file='../ldoc.lua'
dir='../out' dir='../out'
readme='doc.md' readme='doc.md'
style='!pale' style='!new'
kind_names={topic='Manual',script='Programs'} kind_names={topic='Manual',script='Programs'}
examples = { examples = {
'../tests/styles/colon.lua', '../tests/styles/colon.lua',

View File

@ -433,7 +433,7 @@ examples of use; there can be multiple such tags:
-- @return second part -- @return second part
-- @usage local hello,world = split2("hello world") -- @usage local hello,world = split2("hello world")
-- @see split -- @see split
funtion split2(s,delim) .. end function split2(s,delim) .. end
Here it's assumed that 'split' is a function defined in the same module. If you wish to link Here it's assumed that 'split' is a function defined in the same module. If you wish to link
to a function in another module, then the reference has to be qualified. to a function in another module, then the reference has to be qualified.
@ -754,8 +754,11 @@ Niklas Frykholm. For convenience, LDoc comes with a copy of markdown.lua.
more features than the pure Lua version, such as PHP-Extra style tables. more features than the pure Lua version, such as PHP-Extra style tables.
- [lunamark](http://jgm.github.com/lunamark/), another pure Lua processor, faster than - [lunamark](http://jgm.github.com/lunamark/), another pure Lua processor, faster than
markdown, and with extra features (`luarocks install lunamark`). markdown, and with extra features (`luarocks install lunamark`).
- commonmark via [cmark-lua](https://github.com/jgm/cmark-lua), a Lua wrapper
around the fast [libcmark](https://github.com/jgm/cmark) C library (`luarocks
install cmark`)
You can request the processor you like with `format = 'markdown|discount|lunamark|plain|backticks'`, and You can request the processor you like with `format = 'markdown|discount|lunamark|commonmark|plain|backticks'`, and
LDoc will attempt to use it. If it can't find it, it will look for one of the other LDoc will attempt to use it. If it can't find it, it will look for one of the other
markdown processors; the original `markdown.lua` ships with LDoc, although it's slow markdown processors; the original `markdown.lua` ships with LDoc, although it's slow
for larger documents. for larger documents.

View File

@ -1,5 +1,5 @@
package = "ldoc" package = "ldoc"
version = "scm-2" version = "scm-3"
source = { source = {
dir="LDoc", dir="LDoc",
@ -42,6 +42,7 @@ build = {
["ldoc.html._reset_css"] = "ldoc/html/_reset_css.lua", ["ldoc.html._reset_css"] = "ldoc/html/_reset_css.lua",
["ldoc.html.ldoc_one_css"] = "ldoc/html/ldoc_one_css.lua", ["ldoc.html.ldoc_one_css"] = "ldoc/html/ldoc_one_css.lua",
["ldoc.html.ldoc_pale_css"] = "ldoc/html/ldoc_pale_css.lua", ["ldoc.html.ldoc_pale_css"] = "ldoc/html/ldoc_pale_css.lua",
["ldoc.html.ldoc_new_css"] = "ldoc/html/ldoc_new_css.lua",
["ldoc.html.ldoc_fixed_css"] = "ldoc/html/ldoc_fixed_css.lua", ["ldoc.html.ldoc_fixed_css"] = "ldoc/html/ldoc_fixed_css.lua",
["ldoc.builtin.globals"] = "ldoc/builtin/globals.lua", ["ldoc.builtin.globals"] = "ldoc/builtin/globals.lua",
["ldoc.builtin.coroutine"] = "ldoc/builtin/coroutine.lua", ["ldoc.builtin.coroutine"] = "ldoc/builtin/coroutine.lua",

View File

@ -587,12 +587,14 @@ if ldoc.prettify_files then
for F in file_list:iter() do for F in file_list:iter() do
files:append(F.filename) files:append(F.filename)
local mod = F.modules[1] local mod = F.modules[1]
if mod then
local ls = List() local ls = List()
for item in mod.items:iter() do for item in mod.items:iter() do
ls:append(item.lineno) ls:append(item.lineno)
end end
linemap[F.filename] = ls linemap[F.filename] = ls
end end
end
if type(ldoc.prettify_files) == 'table' then if type(ldoc.prettify_files) == 'table' then
files = tools.expand_file_list(ldoc.prettify_files, '*.*') files = tools.expand_file_list(ldoc.prettify_files, '*.*')

View File

@ -64,7 +64,7 @@ function lpeg.P(value) end
-- characters with code between the codes of x and y (both inclusive). -- characters with code between the codes of x and y (both inclusive).
-- As an example, the pattern `lpeg.R("09")` matches any digit, and `lpeg.R("az", -- As an example, the pattern `lpeg.R("09")` matches any digit, and `lpeg.R("az",
-- "AZ")` matches any ASCII letter. -- "AZ")` matches any ASCII letter.
function lpeg.R({range}) end function lpeg.R(range) end
--- ---
-- Returns a pattern that matches any single character that appears in the given -- Returns a pattern that matches any single character that appears in the given
@ -197,7 +197,7 @@ function lpeg.Ct(patt) end
--- ---
-- Creates a match-time capture. Unlike all other captures, this one is -- Creates a match-time capture. Unlike all other captures, this one is
-- evaluated immediately when a match occurs. It forces the immediate evaluation -- evaluated immediately when a match occurs. It forces the immediate evaluation
-- of all its nested captures and then calls function. -- of all its nested captures and then calls func.
-- The given function gets as arguments the entire subject, the current position -- The given function gets as arguments the entire subject, the current position
-- (after the match of patt), plus any capture values produced by patt. -- (after the match of patt), plus any capture values produced by patt.
-- The first value returned by function defines how the match happens. If the -- The first value returned by function defines how the match happens. If the
@ -209,6 +209,6 @@ function lpeg.Ct(patt) end
-- match fails. -- match fails.
-- Any extra values returned by the function become the values produced by the -- Any extra values returned by the function become the values produced by the
-- capture. -- capture.
function lpeg.Cmt(patt, function) end function lpeg.Cmt(patt, func) end
return lpeg return lpeg

292
ldoc/html/ldoc_new_css.lua Normal file
View File

@ -0,0 +1,292 @@
return [[
body {
color: #47555c;
font-size: 16px;
font-family: "Open Sans", sans-serif;
margin: 0;
background: #eff4ff;
}
a:link { color: #008fee; }
a:visited { color: #008fee; }
a:hover { color: #22a7ff; }
h1 { font-size:26px; font-weight: normal; }
h2 { font-size:22px; font-weight: normal; }
h3 { font-size:18px; font-weight: normal; }
h4 { font-size:16px; font-weight: bold; }
hr {
height: 1px;
background: #c1cce4;
border: 0px;
margin: 15px 0;
}
code, tt {
font-family: monospace;
}
span.parameter {
font-family: monospace;
font-weight: bold;
color: rgb(99, 115, 131);
}
span.parameter:after {
content:":";
}
span.types:before {
content:"(";
}
span.types:after {
content:")";
}
.type {
font-weight: bold; font-style:italic
}
p.name {
font-family: "Andale Mono", monospace;
}
#navigation {
float: left;
background-color: white;
border-right: 1px solid #d3dbec;
border-bottom: 1px solid #d3dbec;
width: 14em;
vertical-align: top;
overflow: visible;
}
#navigation br {
display: none;
}
#navigation h1 {
background-color: white;
border-bottom: 1px solid #d3dbec;
padding: 15px;
margin-top: 0px;
margin-bottom: 0px;
}
#navigation h2 {
font-size: 18px;
background-color: white;
border-bottom: 1px solid #d3dbec;
padding-left: 15px;
padding-right: 15px;
padding-top: 10px;
padding-bottom: 10px;
margin-top: 30px;
margin-bottom: 0px;
}
#content h1 {
background-color: #2c3e67;
color: white;
padding: 15px;
margin: 0px;
}
#content h2 {
background-color: #6c7ea7;
color: white;
padding: 15px;
padding-top: 15px;
padding-bottom: 15px;
margin-top: 0px;
}
#content h2 a {
background-color: #6c7ea7;
color: white;
text-decoration: none;
}
#content h2 a:hover {
text-decoration: underline;
}
#content h3 {
font-style: italic;
padding-top: 15px;
padding-bottom: 4px;
margin-right: 15px;
margin-left: 15px;
margin-bottom: 5px;
border-bottom: solid 1px #bcd;
}
#content h4 {
margin-right: 15px;
margin-left: 15px;
border-bottom: solid 1px #bcd;
}
#content pre {
margin: 15px;
}
pre {
background-color: rgb(50, 55, 68);
color: white;
border-radius: 3px;
/* border: 1px solid #C0C0C0; /* silver */
padding: 15px;
overflow: auto;
font-family: "Andale Mono", monospace;
}
#content ul pre.example {
margin-left: 0px;
}
table.index {
/* border: 1px #00007f; */
}
table.index td { text-align: left; vertical-align: top; }
#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: 14em;
}
#content p {
padding-left: 15px;
padding-right: 15px;
}
#content table {
padding-left: 15px;
padding-right: 15px;
background-color: white;
}
#content p, #content table, #content ol, #content ul, #content dl {
max-width: 900px;
}
#about {
padding: 15px;
padding-left: 16em;
background-color: white;
border-top: 1px solid #d3dbec;
border-bottom: 1px solid #d3dbec;
}
table.module_list, table.function_list {
border-width: 1px;
border-style: solid;
border-color: #cccccc;
border-collapse: collapse;
margin: 15px;
}
table.module_list td, table.function_list td {
border-width: 1px;
padding-left: 10px;
padding-right: 10px;
padding-top: 5px;
padding-bottom: 5px;
border: solid 1px rgb(193, 204, 228);
}
table.module_list td.name, table.function_list td.name {
background-color: white; min-width: 200px; border-right-width: 0px;
}
table.module_list td.summary, table.function_list td.summary {
background-color: white; width: 100%; border-left-width: 0px;
}
dl.function {
margin-right: 15px;
margin-left: 15px;
border-bottom: solid 1px rgb(193, 204, 228);
border-left: solid 1px rgb(193, 204, 228);
border-right: solid 1px rgb(193, 204, 228);
background-color: white;
}
dl.function dt {
color: rgb(99, 123, 188);
font-family: monospace;
border-top: solid 1px rgb(193, 204, 228);
padding: 15px;
}
dl.function dd {
margin-left: 15px;
margin-right: 15px;
margin-top: 5px;
margin-bottom: 15px;
}
#content dl.function dd h3 {
margin-top: 0px;
margin-left: 0px;
padding-left: 0px;
font-size: 16px;
color: rgb(128, 128, 128);
border-bottom: solid 1px #def;
}
#content dl.function dd ul, #content dl.function dd ol {
padding: 0px;
padding-left: 15px;
list-style-type: none;
}
ul.nowrap {
overflow:auto;
white-space:nowrap;
}
.section-description {
padding-left: 15px;
padding-right: 15px;
}
/* stop sublists from having initial vertical space */
ul ul { margin-top: 0px; }
ol ul { margin-top: 0px; }
ol ol { margin-top: 0px; }
ul ol { margin-top: 0px; }
/* make the target distinct; helps when we're navigating to a function */
a:target + * {
background-color: #FF9;
}
/* styles for prettification of source */
pre .comment { color: #bbccaa; }
pre .constant { color: #a8660d; }
pre .escape { color: #844631; }
pre .keyword { color: #ffc090; font-weight: bold; }
pre .library { color: #0e7c6b; }
pre .marker { color: #512b1e; background: #fedc56; font-weight: bold; }
pre .string { color: #8080ff; }
pre .number { color: #f8660d; }
pre .operator { color: #2239a8; font-weight: bold; }
pre .preprocessor, pre .prepro { color: #a33243; }
pre .global { color: #c040c0; }
pre .user-keyword { color: #800080; }
pre .prompt { color: #558817; }
pre .url { color: #272fc2; text-decoration: underline; }
]]

View File

@ -275,6 +275,15 @@ local formatters =
{ smart = true }) { smart = true })
return function(text) return parse(text) end return function(text) return parse(text) end
end end
end,
commonmark = function(format)
local ok, cmark = pcall(require, 'cmark')
if ok then
return function(text)
local doc = cmark.parse_document(text, string.len(text), cmark.OPT_DEFAULT)
return cmark.render_html(doc, cmark.OPT_DEFAULT)
end
end
end end
} }
@ -316,7 +325,7 @@ local function markdown_processor(ldoc, formatter)
return plain_processor(txt,item) return plain_processor(txt,item)
end end
local is_file = utils.is_type(item,doc.File) local is_file = utils.is_type(item,doc.File)
local is_module = not file and item and doc.project_level(item.type) local is_module = not is_file and item and doc.project_level(item.type)
if is_file or is_module then if is_file or is_module then
local deflang = 'lua' local deflang = 'lua'
if ldoc.parse_extra and ldoc.parse_extra.C then if ldoc.parse_extra and ldoc.parse_extra.C then

View File

@ -5,10 +5,10 @@ Copyright (C) 2011-2012 Steve Donovan.
## Rationale ## Rationale
This project grew out of the documentation needs of This project grew out of the documentation needs of
[Penlight](https://github.com/stevedonovan/Penlight) (and not always getting satisfaction [Penlight](https://github.com/lunarmodules/Penlight) (and not always getting satisfaction
with LuaDoc) and depends on Penlight itself. (This allowed me to _not_ write a lot of code.) with LuaDoc) and depends on Penlight itself. (This allowed me to _not_ write a lot of code.)
The [API documentation](http://stevedonovan.github.com/Penlight/api/index.html) of Penlight The [API documentation](http://lunarmodules.github.com/Penlight/api/index.html) of Penlight
is an example of a project using plain LuaDoc markup processed using LDoc. is an example of a project using plain LuaDoc markup processed using LDoc.
LDoc is intended to be compatible with [LuaDoc](http://keplerproject.github.io/luadoc/) and LDoc is intended to be compatible with [LuaDoc](http://keplerproject.github.io/luadoc/) and
@ -40,13 +40,13 @@ documentation](http://stevedonovan.github.com/winapi/api.html); this is generate
## Installation ## Installation
This is straightforward; the only external dependency is This is straightforward; the only external dependency is
[Penlight](https://github.com/stevedonovan/Penlight), which in turn needs [Penlight](https://github.com/lunarmodules/Penlight), which in turn needs
[LuaFileSystem](http://keplerproject.github.com/luafilesystem/). These are already present [LuaFileSystem](http://keplerproject.github.com/luafilesystem/). These are already present
in Lua for Windows, and Penlight is also available through LuaRocks as `luarocks install in [Lua for Windows](https://github.com/rjpcomputing/luaforwindows), and Penlight is also available through [LuaRocks](https://luarocks.org/) as `luarocks install
penlight`. penlight`.
Unpack the sources somewhere and make an alias to `ldoc.lua` on your path. That is, either Unpack the sources somewhere and make an alias to `ldoc.lua` on your path. That is, either
an excutable script called 'ldoc' like so: an executable script called 'ldoc' like so:
lua /path/to/ldoc/ldoc.lua $* lua /path/to/ldoc/ldoc.lua $*