Module:Hatnote list: Difference between revisions

Jump to navigation Jump to search
Content added Content deleted
(Updated from sandbox)
(add "extratext" functionality to "ForSee" to allow text to be added after it)
Line 85: Line 85:
title = mw.title.getCurrentTitle().text,
title = mw.title.getCurrentTitle().text,
otherText = 'other uses',
otherText = 'other uses',
forSeeForm = 'For %s, see %s.'
forSeeForm = 'For %s, see %s.',
}
}


Line 125: Line 125:
local i = from
local i = from
local terminated = false
local terminated = false
-- If there is extra text, and no arguments are given, give nil value
-- to not produce default of "For other uses, see foo (disambiguation)"
if options.extratext and i > maxArg then return nil end
-- Loop to generate rows
-- Loop to generate rows
repeat
repeat
Line 157: Line 160:
function p.forSeeTableToString (forSeeTable, options)
function p.forSeeTableToString (forSeeTable, options)
-- Type-checks and defaults
-- Type-checks and defaults
checkType("forSeeTableToString", 1, forSeeTable, "table")
checkType("forSeeTableToString", 1, forSeeTable, "table", true)
checkType("forSeeTableToString", 2, options, "table", true)
checkType("forSeeTableToString", 2, options, "table", true)
options = options or {}
options = options or {}
Line 165: Line 168:
-- Stringify each for-see item into a list
-- Stringify each for-see item into a list
local strList = {}
local strList = {}
for k, v in pairs(forSeeTable) do
if forSeeTable then
for k, v in pairs(forSeeTable) do
local useStr = v.use or options.otherText
local pagesStr = p.andList(v.pages, true) or
local useStr = v.use or options.otherText
mHatnote._formatLink(mHatnote.disambiguate(options.title))
local pagesStr = p.andList(v.pages, true) or mHatnote._formatLink(mHatnote.disambiguate(options.title))
local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr)
local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr)
forSeeStr = punctuationCollapse(forSeeStr)
forSeeStr = punctuationCollapse(forSeeStr)
table.insert(strList, forSeeStr)
table.insert(strList, forSeeStr)
end
end
end
table.insert(strList, options.extratext)
-- Return the concatenated list
-- Return the concatenated list
return table.concat(strList, ' ')
return table.concat(strList, ' ')