Difference between revisions of "Module:For related page"
Jump to navigation
Jump to search
blackwiki>Nihiltres (A prototype…) |
m (6 revisions imported) |
||
| (5 intermediate revisions by 4 users not shown) | |||
| Line 3: | Line 3: | ||
local p = {} | local p = {} | ||
| − | function p. | + | function p.forFoo (frame) |
| − | local args = mArguments.getArgs(frame) | + | local args = mArguments.getArgs(frame, |
| + | {parentOnly = true} | ||
| + | ) | ||
local target | local target | ||
if args[1] then | if args[1] then | ||
| Line 11: | Line 13: | ||
local title = mw.title.getCurrentTitle().text | local title = mw.title.getCurrentTitle().text | ||
local titles = { | local titles = { | ||
| − | + | mw.ustring.lower(mw.ustring.sub(title, 1, 1)) .. mw.ustring.sub(title, 2), | |
| − | mw.ustring.lower(mw.ustring.sub(title, 1, 1)) .. mw.ustring.sub(title, 2) | + | title |
} | } | ||
| − | local | + | local forms = frame.args |
| − | + | for k, v in ipairs(forms) do | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | for k, v in | ||
for i, j in pairs(titles) do | for i, j in pairs(titles) do | ||
local lookup = string.format(v, j) | local lookup = string.format(v, j) | ||
| Line 33: | Line 27: | ||
if target then break end | if target then break end | ||
end | end | ||
| − | target = target or string.format( | + | target = target or string.format(forms[1], title) |
end | end | ||
| − | return mFor._For({ | + | return mFor._For({frame.args.what, target}) |
end | end | ||
| − | |||
return p | return p | ||
Latest revision as of 16:40, 26 September 2020
Implements {{for outline}}, {{for timeline}}, and {{for glossary}}
local mFor = require('Module:For')
local mArguments = require('Module:Arguments')
local p = {}
function p.forFoo (frame)
local args = mArguments.getArgs(frame,
{parentOnly = true}
)
local target
if args[1] then
target = args[1]
else
local title = mw.title.getCurrentTitle().text
local titles = {
mw.ustring.lower(mw.ustring.sub(title, 1, 1)) .. mw.ustring.sub(title, 2),
title
}
local forms = frame.args
for k, v in ipairs(forms) do
for i, j in pairs(titles) do
local lookup = string.format(v, j)
if mw.title.new(lookup, 0).exists then
target = lookup
break
end
end
if target then break end
end
target = target or string.format(forms[1], title)
end
return mFor._For({frame.args.what, target})
end
return p