Module:Year Link
使用Lua語言編寫: |
本模块已应用于 110,000+页面。 为避免大规模的破坏及不必要的服务器负荷,任何改动均应先在模板的沙盒、测试样例页面或您自己的用户页测试,经过测试後即可一次性改动本模块。为尊重其他用户,任何改动在生效前都应先在讨论页讨论。 |
此模板可將紀年轉換為所對應的公元,在鼠標移動到紀年時顯示公元,並加上公元的分類。
不過需要注意的是:年初和年末並非一一對應,且年號有重複的情況。此時,需指定本模板的第二個參數。如:
{{YL|天復元年|901年}}
{{YL|康熙壬寅|1662年}}
可參考:
欲修订年号转换错误或新增年号转换,参见Year Link/data
將年號鏈接至公元紀年分類
参数 | 描述 | 类型 | 状态 | |
---|---|---|---|---|
年號 | 1 | 无描述
| 字符串 | 必需 |
公元年份 | 2 | 无描述
| 字符串 | 可选 |
上述文档嵌入自Module:Year Link/doc。 (编辑 | 历史) 编者可以在本模块的沙盒 (编辑 | 差异)和测试样例 (创建)页面进行实验。 本模块的子页面。 |
local export = {}
local data = mw.loadData("Module:Year Link/data")
function normalize(raw)
local r = raw
for key, val in pairs(data.nMap) do
r = r:gsub(key, val)
end
return r
end
function switch_convert(input)
local year_text = input.args[1]
return data.ref_switch[normalize(year_text or "NA")]
end
function specify_convert(input)
local year_text= input.args[1]
return data.ref_specify[normalize(year_text or "NA")]
end
function export.gl(frame)
local result = ''
local specified = mw.text.trim(frame.args[2])
local name = mw.text.trim(frame.args[1])
local subpagetitle = string.gsub(mw.title.getCurrentTitle().subpageText, "[0-9]", "")
if specified ~= '' then
result = '[[:Category:' .. specified .. ' (提及)|<span title="' .. specified .. '">' .. name .. '</span>]]'
if subpagetitle ~= '全覽' then
result = result .. '[[Category:' .. specified .. ' (提及)]]'
end
return result
end
local converted = switch_convert(frame)
if converted ~= nil then
result = '[[:Category:' .. converted .. ' (提及)|<span title="' .. converted .. '">' .. name .. '</span>]]'
if subpagetitle ~= '全覽' then
result = result .. '[[Category:' .. converted .. ' (提及)]]'
end
return result
end
local notetext = specify_convert(frame)
if notetext ~= nil then
result = '[[:Category:需要指定公元的紀年|<span title="' .. notetext .. '">' .. name .. '</span>]]'
if subpagetitle ~= '全覽' then
result = result .. '[[Category:需要指定公元的紀年]]'
end
return result
end
return name
end
return export