Module:Section link: Difference between revisions

actually, just make the sections optional
m>Mr. Stradivarius
(fix error placement and tweak default conjunction)
m>Mr. Stradivarius
(actually, just make the sections optional)
Line 15: Line 15:
checkType('_main', 1, page, 'string', true)
checkType('_main', 1, page, 'string', true)
checkType('_main', 3, options, 'table', true)
checkType('_main', 3, options, 'table', true)
if type(sections) == 'string' then
if sections == nil then
sections = {}
elseif type(sections) == 'string' then
sections = {sections}
sections = {sections}
elseif type(sections) ~= 'table' then
elseif type(sections) ~= 'table' then
error(string.format(
error(string.format(
"type error in argument #2 to '_main' (string or table expected, got %s)",
"type error in argument #2 to '_main' " ..
"(string, table or nil expected, got %s)",
type(sections)
type(sections)
), 2)
), 2)
Line 28: Line 31:
-- Make the link(s).
-- Make the link(s).
local isShowingPage = not options.nopage
local isShowingPage = not options.nopage
if #sections == 1 then
if #sections <= 1 then
local linkPage = page or ''
local linkPage = page or ''
local section = sections[1] or 'Notes'
local section = sections[1] or 'Notes'
Line 38: Line 41:
return makeSectionLink(linkPage, section, display)
return makeSectionLink(linkPage, section, display)
else
else
-- Multiple sections. First, validate the sections table.
-- Multiple sections. First, make a list of the links to display.
if #sections < 1 then
error('at least one section must be specified', 2)
end
 
-- Make the list of links.
local ret = {}
local ret = {}
for i, section in ipairs(sections) do
for i, section in ipairs(sections) do
Anonymous user