Difference between revisions of "Module:See also if exists"
Jump to navigation
Jump to search
blackwiki>BrownHairedGirl (convert) |
blackwiki>Pppery (Merging in Module:Category see also if exists per TfD) |
||
| Line 2: | Line 2: | ||
]] | ]] | ||
local p = {} | local p = {} | ||
| − | + | local yesno = require("Module:yesno") | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
function p.main(frame) | function p.main(frame) | ||
local rawpages = {} | local rawpages = {} | ||
local nvalid = 0 | local nvalid = 0 | ||
| − | for i, v in ipairs( | + | local namespace = frame.args.ns |
| + | for i, v in ipairs(frame:getParent().args) do | ||
if (v ~= nil) then | if (v ~= nil) then | ||
local thisArg = mw.text.trim(v) | local thisArg = mw.text.trim(v) | ||
if (thisArg ~= "") then | if (thisArg ~= "") then | ||
| − | + | local title = mw.title.new(thisArg, namespace) | |
| − | table.insert(rawpages, | + | if title ~= nil and title.exists then |
| + | table.insert(rawpages, title.fullText) | ||
nvalid = nvalid + 1 | nvalid = nvalid + 1 | ||
end | end | ||
| Line 30: | Line 21: | ||
end | end | ||
if (nvalid == 0) then | if (nvalid == 0) then | ||
| + | if yesno(frame.args.warning) then | ||
| + | if namespace:sub(-1) == "y" then | ||
| + | namespace = namespace:sub(0, -2) .. "ie" | ||
| + | elseif namespace == nil then | ||
| + | namespace = "page" | ||
| + | end | ||
| + | mw.addWarning(string.format("'''[[%s]] — no output, because none of the %ss currently exist.'''", | ||
| + | frame:getParent():getTitle(),namespace)) | ||
| + | end | ||
return "" | return "" | ||
end | end | ||
Revision as of 21:38, 24 March 2019
{{Module rating }}
Usage
Used by Template:see also if exists and Template:Category see also if exists.
{{#invoke:See also if exists| main}}
--[[ v1.0
]]
local p = {}
local yesno = require("Module:yesno")
function p.main(frame)
local rawpages = {}
local nvalid = 0
local namespace = frame.args.ns
for i, v in ipairs(frame:getParent().args) do
if (v ~= nil) then
local thisArg = mw.text.trim(v)
if (thisArg ~= "") then
local title = mw.title.new(thisArg, namespace)
if title ~= nil and title.exists then
table.insert(rawpages, title.fullText)
nvalid = nvalid + 1
end
end
end
end
if (nvalid == 0) then
if yesno(frame.args.warning) then
if namespace:sub(-1) == "y" then
namespace = namespace:sub(0, -2) .. "ie"
elseif namespace == nil then
namespace = "page"
end
mw.addWarning(string.format("'''[[%s]] — no output, because none of the %ss currently exist.'''",
frame:getParent():getTitle(),namespace))
end
return ""
end
local mLabelledList = require('Module:Labelled list hatnote')
local pages = mLabelledList._labelledList(rawpages, "See also", "")
return pages
end
return p