Jump to content

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
Cookies help us deliver our services. By using our services, you agree to our use of cookies.