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