能否复制维基百科等维基站点的模板至本校托管维基服务?
绝对可以!维基百科的很多日期类模板都是基于MediaWiki核心功能和基础扩展编写的,既然你的托管维基已经支持{{CURRENTYEAR}}这类基础模板,那完全可以复制维基百科的相关模板定义,在自己的维基里创建自定义模板来解决手动输入日期的麻烦。
第一步:获取维基百科目标模板的源代码
比如你需要的{{DAY-1}},去维基百科的对应模板页面,点击页面顶部的「查看源代码」或者「编辑」按钮,就能看到模板的原始代码。这类日期模板大多依赖ParserFunctions扩展的解析器函数(比如#time),而你已经有{{CURRENTYEAR}},说明你的维基大概率已经安装了这个扩展。第二步:检查你的维基是否支持核心函数
先做个小测试:创建一个测试页面,输入{{#time:Y-m-d}},如果能正常显示当前的年-月-日,说明#time函数可用,后续模板就能正常工作。如果不行,可能需要联系维基管理员开启ParserFunctions扩展,但根据你的描述,这种情况概率很低。第三步:复制并创建自定义模板
在你的托管维基里新建一个模板页面(比如命名为Template:DAY-1),把维基百科上的对应源代码粘贴进去保存就行。举个简化版的{{DAY-1}}代码,直接就能用:{{#time: Y-m-d | yesterday}}要是想支持自定义日期格式,比如显示“10月6日 2024”这种样式,可以用更灵活的写法:
{{#time: {{{1|Y-m-d}}} | yesterday}}这样你既可以直接用
{{DAY-1}}得到默认的年-月-日格式,也可以用{{DAY-1|m月d日 Y}}来指定显示样式。同理,
{{DATE}}模板的核心代码也很简单,复制过来就能用:{{#time: {{{1|Y-m-d}}} }}第四步:测试模板功能
保存模板后,在任意页面输入{{DAY-1}}刷新看看,是不是正确显示了昨天的日期?如果遇到问题,比如yesterday参数不生效,可以换成-1 days的写法试试:{{#time: Y-m-d | -1 days}}
- 少数维基百科模板可能依赖其他子模板,要是复制后功能不全,记得把依赖的子模板也一并复制过来。不过日期类的基础模板大多是独立的,不需要额外依赖。
- 注意你的托管维基的模板命名规则,比如是否区分大小写、有没有强制前缀之类的,按照规则命名就行。
内容的提问来源于stack exchange,提问作者SuperCiocia

