Module:Section link: Difference between revisions
sync from sandbox;
Nazarzadeh (talk | contribs) m (1 revision imported) |
(sync from sandbox;) |
||
Line 1: | Line 1: | ||
-- This module implements {{section link}}. | -- This module implements {{section link}}. | ||
require(' | require('strict'); | ||
local checkType = require('libraryUtil').checkType | local checkType = require('libraryUtil').checkType | ||
Line 9: | Line 9: | ||
display = display or section | display = display or section | ||
page = page or '' | page = page or '' | ||
-- MediaWiki doesn't allow these in | -- MediaWiki doesn't allow these in 'page', so only need to do for 'section' | ||
if type(section) == 'string' then | if type(section) == 'string' then | ||
section = string.gsub(section, "{", "{") | section = string.gsub(section, "{", "{") | ||
Line 51: | Line 51: | ||
if #sections <= 1 then | if #sections <= 1 then | ||
local linkPage = page or '' | local linkPage = page or '' | ||
local section = sections[1] | if options.permalink then -- when oldid provided | ||
linkPage = 'Special:Permalink/' .. options.permalink; -- make Special:Permalink/oldid wikilink | |||
end | |||
local section = sections[1]; -- sections[1] must have a value | |||
local display = '§ ' .. section | local display = '§ ' .. section | ||
if isShowingPage then | if isShowingPage then | ||
Line 137: | Line 140: | ||
end | end | ||
end | end | ||
options.nopage = yesno (options.nopage); -- make boolean | options.nopage = yesno (options.nopage); -- make boolean | ||
Line 159: | Line 162: | ||
end | end | ||
sections = compressArray(sections) | sections = compressArray(sections) | ||
if not sections[1] then -- empty section parameter makes {{Section link}} meaningless | |||
return ('<span style="color:#d33"><span style="font-family:monospace">{{[[Template:Section link|Section link]]}}</span>: required section parameter(s) missing</span>'); -- emit error message and abandon | |||
end | |||
return p._main(page, sections, options) | return p._main(page, sections, options) |