Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:For related page

Permanently protected module
From Wikipedia, the free encyclopedia

local mFor = require('Module:For')
local mArguments = require('Module:Arguments')
local p = {}

function p.forFoo (frame)
	local args = mArguments.getArgs(frame, 
		{parentOnly = true}
	)
	local forargs = {frame.args.what}
	if args[1] and (args[1] or '' ~= '') then
		for i, v in ipairs(args) do
			if (v or '' ~= '') then	table.insert(forargs, args[i]) end
		end
	else
		local target
		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
		table.insert(forargs, target or string.format(forms[1], title))
	end

	return mFor._For(forargs)
end
return p