throw error if unrecognized fields used in config.ld; examples field may now be a string; needed to normalize paths on Windows
This commit is contained in:
parent
5e77edc33a
commit
eb15776a9b
30
ldoc.lua
30
ldoc.lua
|
@ -115,6 +115,13 @@ function ldoc.new_type (tag,header,project_level)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local ldoc_contents = {
|
||||||
|
'alias','add_language_extension','new_type','add_section',
|
||||||
|
'file','project','title','package','format','output','dir','ext',
|
||||||
|
'one','style','description','examples','readme','all'
|
||||||
|
}
|
||||||
|
ldoc_contents = tablex.makeset(ldoc_contents)
|
||||||
|
|
||||||
-- any file called 'config.ld' found in the source tree will be
|
-- any file called 'config.ld' found in the source tree will be
|
||||||
-- handled specially. It will be loaded using 'ldoc' as the environment.
|
-- handled specially. It will be loaded using 'ldoc' as the environment.
|
||||||
local function read_ldoc_config (fname)
|
local function read_ldoc_config (fname)
|
||||||
|
@ -136,6 +143,11 @@ local function read_ldoc_config (fname)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if err then print('error loading config file '..fname..': '..err) end
|
if err then print('error loading config file '..fname..': '..err) end
|
||||||
|
for k in pairs(ldoc) do
|
||||||
|
if not ldoc_contents[k] then
|
||||||
|
quit("this config file field/function is unrecognized: "..k)
|
||||||
|
end
|
||||||
|
end
|
||||||
return directory, not_found
|
return directory, not_found
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -167,6 +179,8 @@ if args.module then
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local abspath = tools.abspath
|
||||||
|
|
||||||
-- a special case: 'ldoc .' can get all its parameters from config.ld
|
-- a special case: 'ldoc .' can get all its parameters from config.ld
|
||||||
if args.file == '.' then
|
if args.file == '.' then
|
||||||
local err
|
local err
|
||||||
|
@ -178,18 +192,21 @@ if args.file == '.' then
|
||||||
args.file = lfs.currentdir()
|
args.file = lfs.currentdir()
|
||||||
elseif type(args.file) == 'table' then
|
elseif type(args.file) == 'table' then
|
||||||
for i,f in ipairs(args.file) do
|
for i,f in ipairs(args.file) do
|
||||||
args.file[i] = path.abspath(f)
|
args.file[i] = abspath(f)
|
||||||
print(args.file[i])
|
print(args.file[i])
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
args.file = path.abspath(args.file)
|
args.file = abspath(args.file)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
args.file = path.abspath(args.file)
|
args.file = abspath(args.file)
|
||||||
end
|
end
|
||||||
|
|
||||||
local source_dir = args.file
|
local source_dir = args.file
|
||||||
if type(args.file) == 'string' and path.isfile(args.file) then
|
if type(source_dir) == 'table' then
|
||||||
|
source_dir = source_dir[1]
|
||||||
|
end
|
||||||
|
if type(source_dir) == 'string' and path.isfile(source_dir) then
|
||||||
source_dir = path.splitpath(source_dir)
|
source_dir = path.splitpath(source_dir)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -309,6 +326,9 @@ local function add_special_project_entity (f,tags,process)
|
||||||
return item
|
return item
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if type(ldoc.examples) == 'string' then
|
||||||
|
ldoc.examples = {ldoc.examples}
|
||||||
|
end
|
||||||
if type(ldoc.examples) == 'table' then
|
if type(ldoc.examples) == 'table' then
|
||||||
local prettify = require 'ldoc.prettify'
|
local prettify = require 'ldoc.prettify'
|
||||||
local formatter = markup.create(ldoc,'plain')
|
local formatter = markup.create(ldoc,'plain')
|
||||||
|
@ -349,7 +369,7 @@ for mod in module_list:iter() do
|
||||||
end
|
end
|
||||||
|
|
||||||
-- the default is not to show local functions in the documentation.
|
-- the default is not to show local functions in the documentation.
|
||||||
if not args.all then
|
if not args.all and not ldoc.all then
|
||||||
for mod in module_list:iter() do
|
for mod in module_list:iter() do
|
||||||
mod:mask_locals()
|
mod:mask_locals()
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue