Module:For: Difference between revisions
Jump to navigation
Jump to search
en>Plastikspork (Wikipedia:Templates for discussion/Log/2021 July 8#Template:For closed as do not merge (XFDcloser)) |
m (1 revision imported) |
||
(One intermediate revision by the same user not shown) | |||
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 | |||
local title = mw.title.getCurrentTitle() | |||
local skipCat = title.isTalkPage or title.namespace == 2 --don't categorise talk pages and userspace | |||
local oddCat = skipCat and '' or '[[Category:Hatnote templates using unusual parameters]]' | |||
local category = yesNo(args.category) | |||
return mHatnote._hatnote( | |||
mHatlist.forSeeTableToString({{use = use, pages = pages}}), | |||
{selfref = args.selfref} | |||
) .. ( | |||
(use == 'other uses') and ((category == true) or (category == nil)) and | |||
oddCat or '' | |||
) | |||
end | |||
return p |
Latest revision as of 01:17, 19 January 2023
Script error: No such module "High-use". Template:Module rating
File:Lua-Logo.svg | This module depends on the following other modules: |
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 local title = mw.title.getCurrentTitle() local skipCat = title.isTalkPage or title.namespace == 2 --don't categorise talk pages and userspace local oddCat = skipCat and '' or '[[Category:Hatnote templates using unusual parameters]]' local category = yesNo(args.category) return mHatnote._hatnote( mHatlist.forSeeTableToString({{use = use, pages = pages}}), {selfref = args.selfref} ) .. ( (use == 'other uses') and ((category == true) or (category == nil)) and oddCat or '' ) end return p