开发者文档
本页用于描述本Wiki已有设计、代码的思路和实现,并简述了我们的开发原则。
关于MediaWiki(简称MW)和Web开发,请参阅相关文档。
版本
最新信息请参阅 特殊:版本。 本节更新于截至2024年5月。
Bwiki会定期升级Wiki版本,请注意相关通知。在版本变更后,需要测试所有的模板、模块,以防某些特性变化导致bug。
Wiki:
- MediaWiki: 1.37.0
- Semantic MediaWiki: 4.0.0
前端:
- Bootstrap v3.3.7 文档:https://getbootstrap.com/docs/3.3/
- jQuery v3.6.0 文档:https://api.jquery.com/ (由于偶发JQ不加载,优先使用原生JS)
原则
优先级: 可用性 >> 可维护性 >> 美观 >> 新特性新技术
Wiki需要考虑未来数年的稳定维护。因此,相比于酷炫的效果和复杂的实现,简单可用更重要。
请参阅 帮助:模板 中的: 单一功能原则 和 KISS原则。
模板
允许我们重用结构和内容。
关于模板的整体思路,请参阅:帮助:模板。
我们使用独立模板页模式在单独页面维护帮助文档。这些文档位于帮助命名空间,模板位于模板命名空间。
所有的模板都需要详细的说明文档,供使用者、维护者参阅。
前端
请务必多写注释。
最新信息请参阅 特殊:版本 和浏览器 DevTools(按F12开启)。
主页
描述主页的结构和相关模板
CSS
核心文件:
- MediaWiki:Common.css 全站CSS,有缓存,约半小时
BWiki的CSS有多重覆盖,包括mediawiki、vector皮肤、BWiki官方、本Wiki的DIY。
因此,修改CSS时需要谨慎和仔细的测试。
例如,可能由多个CSS对同一个位置设定颜色,新CSS需要注意优先级和影响。已有的CSS也可能超过其设计影响范围。
善用浏览器DevTools,能节省大量精力。
Javascript
核心文件:
- MediaWiki:Common.js 全站JS。有缓存,约半小时
BWiki已经引入了jQuery,但由于加载不稳定,请优先使用原生JS。
缓存
Bwiki的静态资源有缓存,约半小时。
请参见社区文档 缓存。
机器人
API: wukong/api.php
请注意限制机器人的操作频率。
在执行批量操作时,请务必先在少量页面测试,再进行大规模修改。
虽然Wiki会保留操作记录,但是批量的错误操作仍需要时间恢复,因此务必要小心谨慎。
机器人需要的cookie(SESSDATA)通常是手填,但是也可以从浏览器存储中自动读取。
请参阅社区文档 基于Python的API示例