GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||
GeezerVison is showing en.wikipedia.org — Module:For nowiki - Wikipedia
This module implements a foreach loop that can be used from wikitext. It exports two functions:
Usage{{#invoke:For nowiki|template|separator|
ExampleIf you have a template {{#invoke:For nowiki|template| |<nowiki>* {{{i}}} is {{{1}}}. Next is {{#expr:{{{i}}} + 1}}.</nowiki>}} Then calling: {{_TEMPLATE_|A|B|Foo|Orange}} Would produce:
See alsoThe above documentation is transcluded from Module:For nowiki/doc. (edit | history) Editors can experiment in this module's sandbox (edit | diff) and testcases (create) pages. Subpages of this module.
local p = {} local function doLoop(frame, args, code, sep, offset, argstosub, conjunction) local result = {} code = mw.text.unstripNoWiki(code) code = code:gsub('<', '<'):gsub('>', '>') for i, value in ipairs(args) do if i > offset then argstosub["i"] = i - offset argstosub["1"] = value local actualCode = code:gsub("{{{([^{}|]*)|?[^{}]*}}}", argstosub) table.insert(result, frame:preprocess(actualCode)) end end if conjunction then return mw.text.listToText(result, sep, conjunction) else return table.concat(result, sep) end end function p.main(frame) local args = frame:getParent().args local sep = args[1] local code = args.code or args[2] local offset = args.code and 1 or 2 local start = args.start or 1 local argstosub = {} for key, value in pairs(args) do if not tonumber(key) and key ~= "i" and key ~= "count" then argstosub[key] = value end end local countArg = args.count and tonumber(args.count); if countArg then offset = 0 args = {} for i = 1, countArg do args[i] = i + start - 1 end end return doLoop(frame, args, code, sep, offset, argstosub, frame:getParent().args.conjunction) end function p.template(frame) local sep = frame.args[1] local code = frame.args[2] or frame.args.code local offset = tonumber(frame.args.offset) or 0 return doLoop(frame:getParent(), frame:getParent().args, code, sep, offset, {}, frame.args.conjunction) end return p | ||||||
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |