全站通知:

上古卷轴5天际:开发者文档

来自上古卷轴5天际WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
缺少内容:我们需要你的知识和经验来完善天际Wiki。本页尚未完成,欢迎编辑完善

本页用于向高权限维护者描述本Wiki已有设计、代码的思路和实现,并简述了我们的开发原则。

关于MediaWiki(简称MW)和Web开发,请参阅相关文档。

模板

允许我们重用结构和内容。

关于模板的整体思路,请参阅:帮助:模板

我们使用{{模板帮助}}在模板页显示帮助文档。这些文档位于帮助命名空间,模板位于模板命名空间。

所有的模板都需要详细的说明文档,供使用者、维护者参阅。

模板的维护者请尽量多的查阅相关文档。

前端

请务必多写注释

Bwiki使用:

最新信息请参阅 特殊:版本 和浏览器 DevTools。

主页

目前,主页为 4:8 双栏布局,基于已有的Bootstrap。

考虑到首页每个部分的不同的编辑限制和可维护性,首页使用多个子页面拼接而成。

左栏由关于WIKI最近更改、声明组成。 中栏由轮播图和中栏组成。

因此,每个子页面可以单独设置保护级别,对每个子页面的更改也不会影响其他部分。 出现问题时,也更容易排查和测试。

CSS

核心文件:

BWiki的CSS有多重覆盖,包括mediawiki、vector皮肤、BWiki官方、本Wiki的DIY。

因此,修改CSS时需要谨慎和仔细的测试。

例如,可能由多个CSS对同一个位置设定颜色,新CSS需要注意优先级和影响。已有的CSS也可能超过其设计影响范围。

建议的CSS修改流程:

  • 在浏览器F12打开DevTools,查询和确认需要调整的CSS,并进行修改测试
  • MediaWiki:Main.css 修改CSS,观察一定时间(如半个月),请务必编写注释。
  • 确认稳定后,移入MediaWiki:Common.css

Javascript

核心文件:

BWiki已经引入了jQuery,因此可以使用其特性。


建议的JS修改流程:

  • 在浏览器F12打开DevTools,在控制台中观察测试。
  • MediaWiki:Main.js 修改CSS,观察一定时间(如半个月),请务必编写注释。
  • 确认稳定后,移入MediaWiki:Common.js

模块

模块用来重用逻辑。基于Lua的模块可以完成更多工作。

如果可以用JS实现,请尽量使用JS。因为JS更容易上手和维护。

目前,我们没有使用中的模块。

小组件

独立的小功能可以用小组件实现。

核心定义页面 MediaWiki:Gadgets-definition

如已有的BilibiliVideo、DIYBiliUser。

注意,小组件的一系列静态文件同样有缓存。因此请注意:

  • 小组件的定义的修改立即生效,但加载的缓存需要等待半小时更新。
  • 需要频繁修改的小组件可以在小组件JS中加载另一个JS文件,并为其URL添加随机数参数避免缓存。
  • 虽然小组件允许额外的CSS文件,但是考虑到缓存问题,推荐在JS文件中添加CSS,请参阅已有小组件源码。

缓存

Bwiki的静态资源有缓存,约半小时。

因此,在修改Common.js/css后,不会立即生效。

在添加、修改小组件后,不会立即生效(甚至报错如“跳过未识别的小组件XXX”)。

机器人

API:

请注意限制机器人的操作频率。

在执行批量操作时,请务必先在少量页面测试,再进行大规模修改。

虽然Wiki会保留操作记录,但是批量的错误操作仍需要时间恢复,因此务必要小心谨慎。

机器人需要的cookie通常是手填,但是也可以从浏览器存储中自动读取。

版本

最新信息请参阅 特殊:版本。 本节更新于截至2022年7月。

Bwiki会定期升级Wiki版本,请注意相关通知。在版本变更后,需要测试所有的模板、模块,以防某些特性变化导致bug。

Wiki:

  • MediaWiki: 1.37.0
  • Semantic MediaWiki: 4.0.0

前端

原则

优先级: 可用性 >> 可维护性 >> 美观 >> 新特性新技术

Wiki需要考虑未来数年的稳定维护。因此,相比于酷炫的效果和复杂的实现,简单可用更重要。

请参阅 帮助:模板 中的: 单一功能原则 和 KISS原则。

Wiki设置

请参阅mediawiki文档 部分常用的设置页面(已经添加到了导航栏“Wiki管理”一栏)