Difference between revisions of "Module:For"
Jump to navigation
Jump to search
blackwiki>Primefac (TFD closed as no consensus (XFDcloser)) |
test>Nihiltres (Updated from sandbox: prints error if first parameter is empty (previously defaulted to "other uses"); exact-match "other uses" is still categorized) |
||
| Line 1: | Line 1: | ||
| − | + | local mArguments --initialize lazily | |
| − | {{ | + | local mHatlist = require('Module:Hatnote list') |
| − | + | local mHatnote = require('Module:Hatnote') | |
| + | local yesNo = require('Module:Yesno') | ||
| + | local p = {} | ||
| + | |||
| + | --Implements {{For}} from the frame | ||
| + | --uses capitalized "For" to avoid collision with Lua reserved word "for" | ||
| + | function p.For (frame) | ||
| + | mArguments = require('Module:Arguments') | ||
| + | return p._For(mArguments.getArgs(frame)) | ||
| + | end | ||
| + | |||
| + | --Implements {{For}} but takes a manual arguments table | ||
| + | function p._For (args) | ||
| + | local use = args[1] | ||
| + | if (not use) then | ||
| + | return mHatnote.makeWikitextError( | ||
| + | 'no context parameter provided. Use {{other uses}} for "other uses" hatnotes.', | ||
| + | 'Template:For#Errors', | ||
| + | args.category | ||
| + | ) | ||
| + | end | ||
| + | local pages = {} | ||
| + | function two (a, b) return a, b, 1 end --lets us run ipairs from 2 | ||
| + | for k, v in two(ipairs(args)) do table.insert(pages, v) end | ||
| + | return mHatnote._hatnote( | ||
| + | mHatlist.forSeeTableToString({{use = use, pages = pages}}), | ||
| + | {selfref = args.selfref} | ||
| + | ) .. ( | ||
| + | (use == 'other uses') and yesNo(args.category) and | ||
| + | '[[Category:Hatnote templates using unusual parameters]]' or '' | ||
| + | ) | ||
| + | end | ||
| + | |||
| + | return p | ||
Revision as of 16:25, 16 August 2018
| 40px | This Lua module is used on 158,000+ pages. To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them. Transclusion count updated automatically (see documentation). |
| 40x40px | This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
Implements {{for}}.
local mArguments --initialize lazily
local mHatlist = require('Module:Hatnote list')
local mHatnote = require('Module:Hatnote')
local yesNo = require('Module:Yesno')
local p = {}
--Implements {{For}} from the frame
--uses capitalized "For" to avoid collision with Lua reserved word "for"
function p.For (frame)
mArguments = require('Module:Arguments')
return p._For(mArguments.getArgs(frame))
end
--Implements {{For}} but takes a manual arguments table
function p._For (args)
local use = args[1]
if (not use) then
return mHatnote.makeWikitextError(
'no context parameter provided. Use {{other uses}} for "other uses" hatnotes.',
'Template:For#Errors',
args.category
)
end
local pages = {}
function two (a, b) return a, b, 1 end --lets us run ipairs from 2
for k, v in two(ipairs(args)) do table.insert(pages, v) end
return mHatnote._hatnote(
mHatlist.forSeeTableToString({{use = use, pages = pages}}),
{selfref = args.selfref}
) .. (
(use == 'other uses') and yesNo(args.category) and
'[[Category:Hatnote templates using unusual parameters]]' or ''
)
end
return p