در حال ویرایش پودمان:Hatnote list
این ویرایش را میتوان خنثی کرد. لطفاً تفاوت زیر را بررسی کنید تا تأیید کنید که این چیزی است که میخواهید انجام دهید، سپس تغییرات زیر را ذخیره کنید تا خنثیسازی ویرایش را به پایان ببرید.
نسخهٔ فعلی | متن شما | ||
خط ۲۳: | خط ۲۳: | ||
--default options table used across the list stringification functions | --default options table used across the list stringification functions | ||
local stringifyListDefaultOptions = { | local stringifyListDefaultOptions = { | ||
conjunction = " | conjunction = "and", | ||
separator = " | separator = ",", | ||
altSeparator = " | altSeparator = ";", | ||
space = " ", | space = " ", | ||
formatted = false | formatted = false | ||
خط ۴۶: | خط ۴۶: | ||
local separator = options.separator | local separator = options.separator | ||
--searches display text only | --searches display text only | ||
function searchDisp(t, f) | local function searchDisp(t, f) | ||
return string.find(string.sub(t, (string.find(t, '|') or 0) + 1), f) | return string.find(string.sub(t, (string.find(t, '|') or 0) + 1), f) | ||
end | end | ||
خط ۷۰: | خط ۷۰: | ||
-- Stringifies lists with "and" or "or" | -- Stringifies lists with "and" or "or" | ||
function p.andList (...) return conjList(" | function p.andList (...) return conjList("and", ...) end | ||
function p.orList (...) return conjList(" | function p.orList (...) return conjList("or", ...) end | ||
-------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||
خط ۸۲: | خط ۸۲: | ||
--default options table used across the forSee family of functions | --default options table used across the forSee family of functions | ||
local forSeeDefaultOptions = { | local forSeeDefaultOptions = { | ||
andKeyword = ' | andKeyword = 'and', | ||
title = mw.title.getCurrentTitle().text, | title = mw.title.getCurrentTitle().text, | ||
otherText = ' | otherText = 'other uses', | ||
forSeeForm = ' | forSeeForm = 'For %s, see %s.', | ||
} | } | ||
خط ۹۲: | خط ۹۲: | ||
local replacements = { | local replacements = { | ||
["%.%.$"] = ".", | ["%.%.$"] = ".", | ||
["%?%.$"] = " | ["%?%.$"] = "?", | ||
["%!%.$"] = "!", | ["%!%.$"] = "!", | ||
["%.%]%]%.$"] = ".]]", | ["%.%]%]%.$"] = ".]]", | ||
["%?%]%]%.$"] = " | ["%?%]%]%.$"] = "?]]", | ||
["%!%]%]%.$"] = "!]]" | ["%!%]%]%.$"] = "!]]" | ||
} | } | ||
خط ۱۲۵: | خط ۱۲۵: | ||
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 | ||
خط ۱۵۷: | خط ۱۶۰: | ||
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 {} | ||
خط ۱۶۵: | خط ۱۶۸: | ||
-- 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 mHatnote._formatLink{link = mHatnote.disambiguate(options.title)} | |||
local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr) | |||
forSeeStr = punctuationCollapse(forSeeStr) | |||
table.insert(strList, forSeeStr) | |||
end | |||
end | end | ||
if options.extratext then table.insert(strList, punctuationCollapse(options.extratext..'.')) end | |||
-- Return the concatenated list | -- Return the concatenated list | ||
return table.concat(strList, ' ') | return table.concat(strList, ' ') |