Module:Hatnote list: Difference between revisions
Content added Content deleted
m (1 revision imported) |
(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 = {} |
||
if forSeeTable then |
|||
for k, v in pairs(forSeeTable) do |
|||
local useStr = v.use or options.otherText |
|||
local |
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, ' ') |