Module:Sandbox/Andy M. Wang

local mHatnote = require('Module:Hatnote') local mArguments -- lazily initialise

local p = {}

function p.forfun(frame) mArguments = require('Module:Arguments') local args = mArguments.getArgs(frame, {parentOnly = true}) local pages = {} local firstArg = (args[1] and args[1]) or 'other uses' for k, v in pairs(args) do		if type(k) == 'number' then if k ~= 1 then pages[k - 1] = v			end end end return p._for(mw.title.getCurrentTitle.text, firstArg, unpack(pages)) end

function p._for(titleText, firstArg, ...) local links = mHatnote.formatPages(...) --Module:See also behavior --links = mw.text.listToText(links) --Oxford comma if table.getn(links) <= 2 then links = mw.text.listToText(links, ' and ') else links = mw.text.listToText(links, ', ', ', and ') end if links == '' then links = mHatnote._formatLink(			mw.title.getCurrentTitle.text .. ' (disambiguation)') end local text = 'For ' .. firstArg .. ', see ' .. links

local noAdd = { "%.%]%]$", "%?%]%]$", "%!%]%]$" } local noFullStop = false for k, v in pairs(noAdd) do		noFullStop = noFullStop or string.find(text, v)		if noFullStop then break end end

if not noFullStop then text = text .. '.'	end return mHatnote._hatnote(text) end

return p