Module:Header
使用Lua語言編寫: |
本模块已应用于 180,000+页面。 为避免大规模的破坏及不必要的服务器负荷,任何改动均应先在模板的沙盒、测试样例页面或您自己的用户页测试,经过测试後即可一次性改动本模块。为尊重其他用户,任何改动在生效前都应先在讨论页讨论。 |
该模板曾经使用维基文本创建,后来因代码过于复杂,于2022年10月18日 (二) 改为Lua语言模块,原来的模板存档,见Template:Header/存档。
使用方法
[编辑]抄錄以下格式,輸入內容,放在條目頂端。
- 其中作者為個人時,用“author=”輸入作者姓名,但不冠“作者:”,例如“author=班固”就自動連到作者:班固。有需要時,可用“override_author=”,將不自動加上作者的連結。如是法律文獻,則用“lawmaker=”。有特殊需要省略作者欄時,用“noauthor=”,例如“noauthor=中華民國行政院”或“noauthor=中華人民共和國國務院”。在author、noauthor、override_author、lawmaker四項中任選其中適當的一項。
- 若有前後相關文章,前者在previous而後者在next輸入頁面名稱,模板自動產生向前和向後的箭頭,請勿手動添加箭頭。
- 翻譯文章請標示譯者。
範本
[编辑]{{Header | title = [[三民主義]] | alias = 四民主义 | section = 第一卷 | times = 漢朝 | year = 1911 | author = 孫中山 | author2 = 杜甫 | author3 = 李白 | override_author = 孫中山(override) | noauthor = 孫中山(no) | collector = 蘇軾 | lawmaker = 國民政府 | translator=孟浩然 | previous = [[前一篇]] | next = [[後一篇]] | theme = 政治 | theme2 = 哲學 | theme3 = 社會 | loc = 古代中國 | type = 唐詩 | type2 = 五言絕句 | from = 全唐詩 | from2 = 古文觀止 | notes = 孫中山 著,孟浩然 譯 | edition = yes }}
- 輸出結果:
← | 前一篇 | 三民主義 又名:四民主义 第一卷 作者:孫中山 杜甫 李白 漢朝 輯者:蘇軾 孫中山(no) 孫中山(override) 制定机关:國民政府 1911年于古代中國 譯者:孟浩然 |
後一篇 |
孫中山 著,孟浩然 譯 |
詳細說明
[编辑]title
[编辑]文獻名稱,不自動加鏈接。填該文獻的總名稱,而不是子名稱(例如卷22)。
若屬於文集,需為單個文章建立單獨的頁面而不是子頁面。title填寫單個文章的標題,把父名稱填寫在from中。
alias
[编辑]文献的别名,显示为“又名:”
section
[编辑]填寫章節,如“第一卷”或“水部”。
- 若此参数不为空,则不会给页面添加以下任何分类。
时间信息
[编辑]日期
[编辑]- 公历年、月、日
例如:
|year = 1949 |month = 10 |day = 1
- 在title下换行显示为:1949年10月1日
- 并自动加分类:1949年、1949年10月、1949年10月1日
- date:自定日期信息,請改用date。
时期
[编辑]- times:
該作品的朝代。一般作品時代與作者時代相同,如果作者處於兩朝更替之時,請寫作者撰寫該作品的朝代。建議盡量填入朝代己有的分類:
夏朝 商朝 周朝 西周 東周 春秋 戰國 秦朝 漢朝 西漢 新莽 東漢 三國 晉朝 十六國 南北朝 魏 梁 陳 齊 周 隋朝 唐朝 五代十國 宋朝 遼 西夏 金 元朝 明朝 清朝
模板會自動加上朝代的分類。
- notimes:如果想自定时代信息,請改用notimes。
作者
[编辑]- author:作者名,自動加上「作者:」及分類。如果有多個作者,可在author後面加2~5。
- author_link:作者名的链接。
- override_author:同上,但不自動加分類。
- noauthor:不自動加分類。
- translator:譯者。
- notranslator:譯者,不自動加分類。
法规/公文
[编辑]- lawmaker:法律規章制定機關。
- 发布者:法律規章发布机关。
- 发布于:法律規章发布文件,如主席令、通知。
- 公布於
- 发文字号
- 公布字號
- 案号
- 生效日期
- 失效日期
导航
[编辑]- previous:前一篇,請自行加鏈接。
- next:后一篇,請自行加鏈接。
属性/分类
[编辑]- type:文章屬性,自動加分類。請填最小、最精確的分類(例如:如果是「五言絕句」,就不要填「絕句」或「五言詩」)。一般以四庫全書的最低級標題為準。可填type2~type5。
若為四庫全書的集部,或全唐詩類的,請為各子文章建立頁面,並在from填上「母文章」,而母文章的type請加上“集”。
- from:出處,自動加鏈接和分類。若有兩個,可用from2。
注释
[编辑]- notes
注释栏备用模板
[编辑]edition = yes
版本信息,连接至对应对话页。
跨计划链接
[编辑]通过操作对应的wikidata自动获取。 如果有特别需要,在项目同名参数中指定对应页面即可。比如
{{header|wikipedia=中华人民共和国宪法}}
Header |
相關模板
[编辑]- Template:Collection header 文集使用
- Template:Header2 子页面使用,不会加分类
- Template:Novel 小说子页面使用,不会加分类
- Template:Header3 不自动加←→,为template:中華民國司法院院解字解釋等服务
- Template:Footer
- Template:novel
- Template:Novel-f
文章说明
参数 | 描述 | 类型 | 状态 | |
---|---|---|---|---|
标题 | title | 文獻名稱,不自動加鏈接。填該文獻的總名稱,而不是子名稱(例如卷22)。若屬於文集,需為單個文章建立單獨的頁面而不是子頁面。title填寫單個文章的標題,把父名稱填寫在from中。 | 字符串 | 推荐 |
别名 | alias | 文献的别名,显示为“又名:” | 未知 | 可选 |
章节 | section | 填寫章節,如“第一卷”或“水部”。 | 未知 | 可选 |
作者 | author | 作者名,自動添加至“作者:”命名空间的链接及分類。 | 字符串 | 推荐 |
作者2 | author2 | 无描述 | 字符串 | 可选 |
作者3 | author3 | 无描述 | 字符串 | 可选 |
作者4 | author4 | 无描述 | 字符串 | 可选 |
作者5 | author5 | 无描述 | 字符串 | 可选 |
作者6 | author6 | 无描述 | 字符串 | 可选 |
作者7 | author7 | 无描述 | 字符串 | 可选 |
作者8 | author8 | 无描述 | 字符串 | 可选 |
作者9 | author9 | 无描述 | 字符串 | 可选 |
作者10 | author10 | 无描述 | 字符串 | 可选 |
作者11 | author11 | 无描述 | 字符串 | 可选 |
作者12 | author12 | 无描述 | 字符串 | 可选 |
作者13 | author13 | 无描述 | 字符串 | 可选 |
作者14 | author14 | 无描述 | 字符串 | 可选 |
作者15 | author15 | 无描述 | 字符串 | 可选 |
作者16 | author16 | 无描述 | 字符串 | 可选 |
作者17 | author17 | 无描述 | 字符串 | 可选 |
作者18 | author18 | 无描述 | 字符串 | 可选 |
作者19 | author19 | 无描述 | 字符串 | 可选 |
作者20 | author20 | 无描述 | 字符串 | 可选 |
作者链接 | author_link | 自定义“author”参数链接至的作者页面,不带“作者:”命名空间前缀。 | 字符串 | 可选 |
自定义作者 | noauthor override_author | 不会自动添加链接及分类。 | 字符串 | 可选 |
自定义作者2 | override_author2 | 不会自动添加链接及分类。 | 字符串 | 可选 |
署名 | 署名 | 无描述 | 未知 | 可选 |
制定机关 | lawmaker | 法律規章制定機關。 | 未知 | 可选 |
发布者 | 发布者 | 法律規章发布机关。 | 字符串 | 可选 |
译者 | translator | 自動添加至“作者:”命名空间的链接及分類。 | 单行文本 | 可选 |
译者2 | translator2 | 无描述 | 未知 | 可选 |
译者3 | translator3 | 无描述 | 未知 | 可选 |
自定义译者 | notranslator | 不会自动添加链接及分类。 | 未知 | 可选 |
輯者 | collector | 輯者姓名,自動添加至“作者:”命名空间的链接及分類。 | 字符串 | 可选 |
輯者2 | collector2 | 无描述 | 字符串 | 可选 |
輯者3 | collector3 | 无描述 | 字符串 | 可选 |
輯者4 | collector4 | 无描述 | 字符串 | 可选 |
輯者5 | collector5 | 无描述 | 字符串 | 可选 |
輯者6 | collector6 | 无描述 | 字符串 | 可选 |
輯者7 | collector7 | 无描述 | 字符串 | 可选 |
輯者8 | collector8 | 无描述 | 字符串 | 可选 |
朝代 | times | 該作品的朝代。一般作品時代與作者時代相同,如果作者處於兩朝更替之時,請寫作者撰寫該作品的朝代。模板會自動加上朝代的分類。
| 字符串 | 推荐 |
朝代2 | times2 | 无描述 | 未知 | 可选 |
自定义朝代 | notimes | 无描述 | 未知 | 可选 |
公历年 | year y 年 | 无描述 | 数字 | 可选 |
公历月 | month m 月 | 无描述 | 数字 | 可选 |
公历日 | day d 日 | 无描述 | 数字 | 可选 |
民国纪年年份 | 民 | 无描述 | 数字 | 可选 |
民国纪年年份2 | 民2 | 无描述 | 数字 | 可选 |
民国纪年年份3 | 民3 | 无描述 | 未知 | 可选 |
月2 | 月2 | 无描述 | 数字 | 可选 |
日2 | 日2 | 无描述 | 数字 | 可选 |
月3 | 月3 | 无描述 | 未知 | 可选 |
日3 | 日3 | 无描述 | 未知 | 可选 |
紀年 | 紀年 | 年号 | 未知 | 可选 |
紀元 | 紀元 | 无描述 | 未知 | 可选 |
紀月 | 紀月 | 无描述 | 未知 | 可选 |
紀日 | 紀日 | 无描述 | 未知 | 可选 |
自定义日期 | date | 自定义日期信息。 | 单行文本 | 可选 |
发布于 | 发布于 | 法律規章发布文件,如主席令、通知。 | 未知 | 可选 |
公布于 | 公布於 | 无描述 | 未知 | 可选 |
发文字号 | 发文字号 發文字號 | 无描述 | 单行文本 | 可选 |
公布字號 | 公布字號 公布字号 | 无描述 | 未知 | 可选 |
案号 | 案号 案號 | 无描述 | 未知 | 可选 |
生效日期 | 生效日期 | 无描述 | 未知 | 可选 |
失效日期 | 失效日期 | 无描述 | 未知 | 可选 |
地点 | loc | 无描述 | 未知 | 可选 |
在……上 | at | 无描述 | 未知 | 可选 |
前一篇 | previous | 之前的相关作品,請自行加鏈接。 | 字符串 | 可选 |
后一篇 | next | 之后的相关作品,請自行加鏈接。 | 字符串 | 可选 |
前一篇 | prv | 前一篇文章的标题,省略主页面名称。 | 未知 | 可选 |
后一篇 | nxt | 后一篇文章的标题,省略主页面名称。 | 未知 | 可选 |
收录于 | from | 收录该作品的文集,自动添加链接。 | 页面名称 | 可选 |
收录于2 | from2 | 无描述 | 页面名称 | 可选 |
收录于3 | from3 | 无描述 | 页面名称 | 可选 |
说明 | notes | 无描述 | 内容 | 可选 |
版本信息 | edition | 是否显示至讨论页的“版本信息”链接,如有填写yes。 | 单行文本 | 可选 |
消歧义 | disambiguation | 无描述 | 未知 | 可选 |
相关导览 | portal | 相关的主题(Portal)页面名称 | 未知 | 可选 |
主题 | theme | 无描述 | 未知 | 可选 |
主题2 | theme2 | 无描述 | 未知 | 可选 |
类型 | type | 无描述 | 未知 | 可选 |
类型2 | type2 | 无描述 | 未知 | 可选 |
main | main | 无描述 | 未知 | 可选 |
is_main_of | is_main_of | 无描述 | 未知 | 可选 |
分类 | categories | 分类按照 A/B/C 形式输入,自动划分。 | 未知 | 可选 |
上述文档嵌入自Module:Header/doc。 (编辑 | 历史) 编者可以在本模块的沙盒 (创建 | 镜像)和测试样例 (创建)页面进行实验。 本模块的子页面。 |
local p = {}
local timesTable = {
['夏'] = '夏朝',
['夏代'] = '夏朝',
['商'] = '商朝',
['商代'] = '商朝',
['周'] = '周朝',
['周代'] = '周朝',
['秦'] = '秦朝',
['秦代'] = '秦朝',
['漢'] = '漢朝',
['汉'] = '漢朝',
['漢代'] = '漢朝',
['汉代'] = '漢朝',
['晉'] = '晉朝',
['晋'] = '晉朝',
['晉代'] = '晉朝',
['晋代'] = '晉朝',
['南朝宋'] = '劉宋',
['隋'] = '隋朝',
['隋代'] = '隋朝',
['唐'] = '唐朝',
['唐代'] = '唐朝',
['宋'] = '宋朝',
['宋代'] = '宋朝',
['遼'] = '遼朝',
['遼代'] = '遼朝',
['金'] = '金朝',
['金代'] = '金朝',
['元'] = '元朝',
['元代'] = '元朝',
['明'] = '明朝',
['明代'] = '明朝',
['清'] = '清朝',
['淸'] = '清朝',
['清代'] = '清朝',
['民國'] = '中華民國',
['民国'] = '中華民國',
['阮'] = '阮朝',
['阮代'] = '阮朝'
}
local function addCategoryIf(text, condition, category)
local text2 = text
if condition and category ~= nil and category ~= '' then
text2 = text2 .. '[[Category:' .. category .. ']]'
end
return text2
end
local function isempty(arg)
return arg == nil or arg == ''
end
local function ROC(year, base)
if (year == '1' or year == '元') and base == 0 then
return '元'
elseif year == '元' and base == 1911 then
return '1912'
else
return tostring(tonumber(year) + base) -- 0 or 1911
end
end
local function CategoryYMD(year, month, day)
text = ''
if not isempty(year) then
text = '[[Category:' .. year .. '年]]'
if not isempty(month) then
text = text .. '[[Category:' .. year .. '年' .. month .. '月]]'
if not isempty(day) then
text = text .. '[[Category:' .. year .. '年' .. month .. '月' .. day .. '日]]'
end
end
end
return text
end
function p.main(frame)
-- 参数
local args = frame.args
-- 处理 Template:Header
if not isempty(args["included_via_template"]) then
if args["included_via_template"] == "1" then
args = frame:getParent().args
end
end
local title = args['title']
if isempty(title) then
title = mw.title.getCurrentTitle().text
end
local notes = args['notes']
if notes == nil then
notes = ''
end
local times = {
args['times'],
args['times2']
}
local from = {
args['from'],
args['from2'],
args['from3']
}
local author = {
args["author"],
args["author2"],
args["author3"],
args["author4"],
args["author5"],
args["author6"],
args["author7"],
args["author8"],
args["author9"],
args["author10"],
args["author11"],
args["author12"],
args["author13"],
args["author14"],
args["author15"],
args["author16"],
args["author17"],
args["author18"],
args["author19"],
args["author20"]
}
local author_link = args["author_link"]
local sign = args["署名"]
local articleNo = args['发文字号']
if isempty(articleNo) then
articleNo = args['發文字號']
end
if isempty(articleNo) then
articleNo = args['文号']
end
if isempty(articleNo) then
articleNo = args['文號']
end
local caseNo = args['案号']
if isempty(caseNo) then
caseNo = args['案號']
end
local section = args['section']
local alias = args['alias']
local lawmaker = args["lawmaker"]
local seealso = {
args['seealso'],
args['seealso2'],
args['seealso3'],
args['seealso4'],
args['seealso5']
}
local collector = {
args['collector'],
args['collector2'],
args['collector3'],
args['collector4'],
args['collector5'],
args['collector6'],
args['collector7'],
args['collector8']
}
local ROCyear = {
args['民'],
args['民2'],
args['民3']
}
local ROCmonth = {
args['月'],
args['月2'],
args['月3']
}
local ROCday = {
args['日'],
args['日2'],
args['日3']
}
local previous = args["previous"]
local next = args["next"]
local prv = args["prv"]
local nxt = args["nxt"]
if mw.wikibase ~= nil then
entityid = mw.wikibase.getEntityIdForCurrentPage()
else
entityid = nil
end
-- 输出
local text = '<div id="headerContainer">\n';
text = text .. '{| style="width:100%; margin-top:0px;'
text = text .. 'margin-bottom:3px;'; --此处原Header模版有判断语句,由于Plain sister模版的使用可能无需处理。
text = text .. 'border:1px solid var(--border-color-content-added,#93A6C0); background-color: var(--background-color-neutral-subtle,#F9F9F9); color: inherit;text-align:center;"\n'
text = text .. '|-\n'
text = text .. '| style="width:0; text-align:left; font-size:small;"|'
if not (isempty(previous) and isempty(prv)) then
text = text .. ' ←'
end
text = text .. '\n| style="width:25%; text-align:left; font-size:small;"|'
if not isempty(previous) then
text = text .. previous
elseif not isempty(prv) then
text = text .. '[[' .. mw.title.rootPageTitle .. '/' .. prv .. '|' .. prv .. ']]'
end
text = text .. '\n|style="width:50%;" |<b>'
text = text .. title
text = text .. '</b>'
if not isempty(articleNo) then
text = text .. '<br /><b>' .. frame:expandTemplate{title="i", args={articleNo}} .. '</b>'
end
if not isempty(caseNo) then
text = text .. '<br /><div style="text-align:right; font-weight:bold">' .. caseNo .. '</div>'
end
if not isempty(alias) then
text = text .. '<br />又名:<b>' .. alias .. '</b>'
end
if not isempty(section) then
text = text .. '<br />' .. section
end
if not isempty(author[1]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">作者:</span>'
if not isempty(author_link) then
text = text .. '[[作者:' .. author_link .. '|' .. author[1] .. ']]'
else
text = text .. '[[作者:' .. author[1] .. '|' .. author[1] .. ']]'
end
end
if not isempty(sign) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">(署名:</span>'
text = text .. '[[作者:' .. sign .. '|' .. sign .. ']]'
text = text .. '<span style="color:var(--color-placeholder,#999999)">)</span>'
end
for i = 2, 20 do
if not isempty(author[i]) then
text = text .. ' [[作者:' .. author[i] .. '|' .. author[i] .. ']]'
end
end
if not isempty(times[1]) then
text = text .. ' <span style="color:var(--color-placeholder,#999999)">' .. times[1] .. '</span>'
end
if not isempty(collector[1]) then
if not isempty(author[1]) then
text = text .. '<br />'
end
text = text .. ' <br /><span style="color:var(--color-placeholder,#999999)">輯者:</span>[[作者:' .. collector[1] .. '|' .. collector[1] .. ']]'
for i = 2, 8 do
if not isempty(collector[i]) then
text = text .. ' [[作者:' .. collector[i] .. '|' .. collector[i] .. ']]'
end
end
end
if not isempty(times[2]) then
text = text .. ' <span style="color:var(--color-placeholder,#999999)">' .. times[2] .. '</span>'
end
if not isempty(args['noauthor']) then
text = text .. '<br/>' .. args["noauthor"]
end
if not isempty(args['override_author']) then
text = text .. '<br/>' .. args["override_author"]
end
if not isempty(args['override_author2']) then
text = text .. '<br/>' .. args["override_author2"]
end
if not isempty(args["notimes"]) then
text = text .. '<br/><span style="color:var(--color-placeholder,#999999)">' .. args["notimes"] .. '</span>'
end
if not isempty(lawmaker) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">制定机关:</span>' .. lawmaker
end
if not isempty(args["紀元"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)"><b>' .. args["紀元"]
local year = args['紀年']
if not isempty(year) then
if year == "一" then
text = text .. "元"
else
text = text .. year
end
text = text .. "年"
if not isempty(args["紀月"]) then
text = text .. args["紀月"] .. "月"
if not isempty(args["紀日"]) then
text = text .. args["紀日"] .. "日"
end
else
text = text .. '年間'
end
end
text = text .. "</b></span>"
end
-- 民
for i = 1, 3 do
if not isempty(ROCyear[i]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)"><b>中華民國'
if ROCyear[i] == '1' or ROCyear[i] == '元' then
text = text .. '元年(1912年)'
else
text = text .. ROCyear[i] .. '年(' .. ROC(ROCyear[i], 1911) .. '年)'
end
if not isempty(ROCmonth[i]) then
text = text .. ROCmonth[i] .. '月'
if not isempty(ROCday[i]) then
text = text .. ROCday[i] .. '日'
end
end
text = text .. '</b></span>'
end
end
-- 年月日
if not isempty(args["年"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">'
text = text .. args['年'] .. '年'
if not isempty(args['月']) then
text = text .. args['月'] .. '月'
if not isempty(args['日']) then
text = text .. args['日'] .. '日'
end
end
text = text .. '</span>'
end
-- year,month,day
if not isempty(args["year"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">'
text = text .. args['year'] .. '年'
if not isempty(args['month']) then
text = text .. args['month'] .. '月'
if not isempty(args['day']) then
text = text .. args['day'] .. '日'
end
end
text = text .. '</span>'
end
-- y,m,d
if not isempty(args["y"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">'
text = text .. args['y'] .. '年'
if not isempty(args['m']) then
text = text .. args['m'] .. '月'
if not isempty(args['d']) then
text = text .. args['d'] .. '日'
end
end
text = text .. '</span>'
end
-- date
if not isempty(args["date"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">' .. args["date"] .. '</span>'
end
-- loc
if not isempty(args["loc"]) then
text = text .. '<span style="color:var(--color-placeholder,#999999)">于' .. args["loc"] .. '</span>'
end
if not isempty(args["at"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)"><small>(在[[:Category:' .. args["at"] .. '|' .. args["at"] .. ']]上)</small></span>'
end
if not isempty(args["发布者"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">发布机关:</span>' .. args["发布者"]
end
if not isempty(args["发布于"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">发布于</span>' .. args["发布于"]
end
if not isempty(args["公布于"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">公布于</span>' .. args["公布于"]
end
if not isempty(args["公布於"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">公布於</span>' .. args["公布於"]
end
if not isempty(args["公布字號"]) then
text = text .. '<br />' .. args["公布字號"]
elseif not isempty(args["公布字号"]) then
text = text .. '<br />' .. args["公布字号"]
end
if not isempty(args["生效日期"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">有效期:' .. args["生效日期"]
if isempty(args["失效日期"]) then
text = text .. '至今</span>'
else
text = text .. '—' .. args["失效日期"] .. '<small>(不含本日)</small></span>'
end
end
if not isempty(args["translator"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">譯者:</span>'
text = text .. '[[作者:' .. args["translator"] .. '|' .. args["translator"] .. ']]'
end
if not isempty(args["notranslator"]) then
text = text .. '<br /><span style="color:var(--color-placeholder,#999999)">譯者:</span>'
text = text .. args["notranslator"]
end
if not isempty(args["translator2"]) then
text = text .. ' [[作者:' .. args["translator2"] .. '|' .. args["translator2"] .. ']]'
end
if not isempty(args["translator3"]) then
text = text .. ' [[作者:' .. args["translator3"] .. '|' .. args["translator3"] .. ']]'
end
text = text .. '\n| style="width:25%; text-align:right; font-size:small;"|'
if not isempty(next) then
text = text .. next
elseif not isempty(nxt) then
text = text .. '[[' .. mw.title.rootPageTitle .. '/' .. nxt .. '|' .. nxt .. ']]'
end
text = text .. '\n| class="noprint" style="width:0; text-align:right; font-size:small;"|'
if not (isempty(next) and isempty(nxt)) then
text = text .. ' →'
end
text = text .. '\n|}'
text = text .. '\n{| style="width:100%; background:var(--background-color-progressive-subtle,#F8FCFF); color: inherit;font-size:small; border-bottom:1px solid var(--border-color-content-added,#93A6C0)"'
text = text .. '\n|-'
text = text .. '\n|'
if not isempty(from[1]) then
text = text .. '\n{| style="font-size:0.9em; text-align:left; background:var(--background-color-neutral-subtle,#F9F9F9); float:right;color: inherit;"'
text = text .. '\n| style="color: var(--color-placeholder,#999999);" |'
text = text .. frame:preprocess("-{zh:本作品收錄於;zh-hant:本作品收錄於;zh-hans:本作品收录于}-《'''[[" .. from[1] .. "]]'''》")
if not isempty(from[2]) then
text = text .. frame:preprocess("和《'''[[" .. from[2] .. "]]'''》")
if not isempty(from[3]) then
text = text .. frame:preprocess("以及《'''[[" .. from[3] .. "]]'''》")
end
end
text = text .. '\n|}\n'
end
text = text .. notes
-- 维基跨语言链接自动生成。
-- if page is not connected to Wikidata, only show plain sister if at least one of its parameters is filled in
-- if page is connected to Wikidata, always show plain sister
if not (entityid == nil and isempty(args["disambiguation"]) and isempty(args["edition"]) and isempty(args["portal"]) and isempty(args["related_author"]) and isempty(args["wikipedia"]) and isempty(args["commons"]) and isempty(args["commonscat"]) and isempty(args["wikiquote"]) and isempty(args["wikinews"]) and isempty(args["wiktionary"]) and isempty(args["wikibooks"]) and isempty(args["wikilivres"]) and isempty(args["wikidata"]) and isempty(args["wikivoyage"]) and isempty(args["wikiversity"]) and isempty(args["wikispecies"]) and isempty(args["meta"])) then
text = text .. frame:expandTemplate{title='Plain sister',args={disambiguation = args["disambiguation"], edition = args["edition"], portal = args["portal"], related_author = args["related_author"], wikipedia = args["wikipedia"], commons = args["commons"], commonscat = args["commonscat"], wikiquote = args["wikiquote"], wikinews = args["wikinews"], wiktionary = args["wiktionary"], wikibooks = args["wikibooks"], wikilivres = args["wikilivres"], wikidata = args["wikidata"], wikivoyage = args["wikivoyage"], wikiversity = args["wikiversity"], wikispecies = args["wikispecies"], meta = args["meta"]}}
end
text = text .. frame:expandTemplate{title='main subject',args={}}
text = text .. '\n|}'
text = text .. '</div>'
for i = 1, 2 do
if not isempty(times[i]) then
if timesTable[times[i]] ~= nil then
text = addCategoryIf(text, 1, timesTable[times[i]])
else
local times_object = mw.title.new('Category:' .. times[i] .. '作品')
if times_object.exists then
text = addCategoryIf(text, 1, times[i] .. '作品')
else
text = addCategoryIf(text, 1, times[i])
end
end
end
end
if not isempty(author_link) then
text = addCategoryIf(text, 1, author_link)
else
text = addCategoryIf(text, 1, author[1])
end
for i = 2, 20 do
text = addCategoryIf(text, 1, author[i])
end
text = addCategoryIf(text, 1, args["translator"])
text = addCategoryIf(text, 1, args["theme"])
for i = 2, 7 do
text = addCategoryIf(text, 1, args["theme" .. tostring(i)])
end
text = addCategoryIf(text, 1, args["at"])
text = addCategoryIf(text, 1, args["loc"])
if not isempty(args["loc"]) then
if not isempty(args["y"]) then
text = addCategoryIf(text, 1, args["y"] .. '年' .. args["loc"])
end
if not isempty(args["year"]) then
text = addCategoryIf(text, 1, args["year"] .. '年' .. args["loc"])
end
if not isempty(args["年"]) then
text = addCategoryIf(text, 1, args["年"] .. '年' .. args["loc"])
end
if not isempty(args["紀元"]) and not isempty(args["紀年"]) then
text = addCategoryIf(text, 1, args["紀元"] .. args["紀年"] .. '年' .. args["loc"])
end
for i = 1, 3 do
if not isempty(ROCyear[i]) then
text = addCategoryIf(text, 1, '中華民國' .. ROC(ROCyear[i], 0) .. '年' .. args["loc"])
end
end
end
if not isempty(args["type"]) then
if not isempty(args["y"]) then
text = addCategoryIf(text, 1, args["y"] .. '年' .. args["type"])
end
if not isempty(args["year"]) then
text = addCategoryIf(text, 1, args["year"] .. '年' .. args["type"])
end
if not isempty(args["年"]) then
text = addCategoryIf(text, 1, args["年"] .. '年' .. args["type"])
end
for i = 1, 3 do
if not isempty(ROCyear[i]) then
text = addCategoryIf(text, 1, '中華民國' .. ROC(ROCyear[i], 0) .. '年' .. args["type"])
end
end
if not isempty(args["紀元"]) and not isempty(args["紀年"]) then
text = addCategoryIf(text, 1, args["紀元"] .. args["紀年"] .. '年' .. args["type"])
end
if args["type"] == "五言" or args["type"] == "四言" or args["type"] == "七言" then
text = text .. '[[Category:' .. args["type"] .. '詩]]'
else
text = text .. '[[Category:' .. args["type"] .. ']]'
end
end
for i = 2, 10 do
local typei = args["type" .. tostring(i)]
if not isempty(typei) then
if not isempty(args["y"]) then
text = addCategoryIf(text, 1, args["y"] .. '年' .. typei)
end
if not isempty(args["year"]) then
text = addCategoryIf(text, 1, args["year"] .. '年' .. typei)
end
if not isempty(args["年"]) then
text = addCategoryIf(text, 1, args["年"] .. '年' .. typei)
end
if not isempty(ROCyear[1]) then
text = addCategoryIf(text, 1, '中華民國' .. ROC(ROCyear[1], 0) .. '年' .. typei)
end
text = text .. '[[Category:' .. typei .. ']]'
end
end
for i = 1, 3 do
if not isempty(from[i]) then
local from_page = mw.text.split(from[i], "|")[1]
local from_page_object = mw.title.new('Category:' .. from_page)
if from_page_object ~= nil then
if from_page_object.exists then
text = text .. '[[Category:' .. from[i] .. ']]'
end
end
end
end
text = text .. CategoryYMD(args["y"], args["m"], args["d"])
text = text .. CategoryYMD(args["year"], args["month"], args["day"])
text = text .. CategoryYMD(args["年"], args["月"], args["日"])
for i = 1, 3 do
if not isempty(ROCyear[i]) then
text = text .. '[[Category:中華民國' .. ROC(ROCyear[i], 0) .. '年]]'
if not isempty(ROCmonth[i]) then
text = text .. '[[Category:中華民國' .. ROC(ROCyear[i], 0) .. '年' .. ROCmonth[i] .. '月]]'
if not isempty(ROCday[i]) then
text = text .. '[[Category:' .. ROC(ROCyear[i], 1911) .. '年' .. ROCmonth[i] .. '月' .. ROCday[i] .. '日]]'
end
end
end
end
if not isempty(args["紀元"]) then
if not isempty(args["紀年"]) then
text = text .. '[[Category:' .. args["紀元"] .. args["紀年"] .. '年]]'
if not isempty(args["月"]) then
text = text .. '[[Category:' .. args["紀元"] .. args["紀年"] .. '年' .. args["月"] .. '月]]'
if not isempty(args["日"]) then
text = text .. '[[Category:' .. args["紀元"] .. args["紀年"] .. '年' .. args["月"] .. '月' .. args["日"] .. '日]]'
end
end
else
text = text .. '[[Category:' .. args["紀元"] .. ']]'
end
end
text = addCategoryIf(text, 1, args["main"])
if not isempty(args["is_main_of"]) then
text = text .. '[[Category:' .. args["is_main_of"] .. '| ]]'
end
-- 通过categories参数添加分类,分类按照 A/B/C 形式输入,自动划分
if not isempty(args["categories"]) then
for i in mw.text.gsplit(args["categories"], "/", true) do
text = addCategoryIf(text, 1, i)
end
end
return text;
end
return p