帮助:开发者101
简单
入门
进阶
复杂
开发
Wiki的魅力之一就是允许用户依照需求扩展功能。本文将简述作为一个开发者,如何扩展灰机wiki。您可以在这里申请成为开发者。
能做什么
灰机的开发者可以通过灰机提供的API结合MediaWiki已有的API,进行大胆而具有创意的改造,包括但不限于:
- UI改造:魔兽世界中文维基
- 数据呈现:FF14中文维基
- 简化编辑:warframe中文维基
- 功能扩展:地图零件
基本上,你可以充分发挥你的创意,除非它有悖于project:使用条款和内容声明。
做好功课
- 很多功能可能已经有人实现了。所以不妨依照相关协议直接使用或加以修改。
- 很多库可能大大简便你的开发过程。其中有不少灰机已经打包。如有疑问,可在论坛咨询。
- 观摩其他维基的代码是一个非常方便的学习模式。
语言选择
- JavaScript 通常用于修改UI和呈现数据。可以利用API做很多事情,但由于异步加载的特性,不太适合做内容主干部分。
- Lua 制作模板。优势是可以和维基标记语言(Wikitext)交换信息,并且Lua是在服务器端执行的,适合做内容。
- CSS 修改样式。
- Python、Node.js等 通常用于离线脚本。
- PHP 编写MediaWiki扩展。
- Wikitext 维基标记语言也能实现简易的逻辑运算,但是wikitext的解析效率较低,建议选择一门真正的编程语言。
数据存储
建议将数据存储于wiki页面中,可以解决版本控制等问题。并且,这种数据存储是免费/稳定的,不需要额外购买服务器。
例子
在帮助:主题编辑器的设计初期,样式是保存在数据库中的。这样造成了几个问题:数据没有版本控制、数据修改没有日志、必须编写一套独立接口、不利于样式分享、不利于其他开发者再进行二次开发。再之后的调整中,所有样式以Json形式保存在MediaWiki:CommonStyle中,解决了以上几个问题。
查询页面内容的效率略低于数据库,但对于大多数二次开发来讲应该足够。
API
灰机Wiki支持全部MediaWiki API,并且在此基础上还增加了一些额外的接口:API
安全意识
可以明确的是,开发者的权限发放不是一场对编程水平和经验的考核。毕竟,每个人都曾是一个菜鸟。最重要的是安全意识和责任意识。不管你在各行各业,这都是亘古不变的准则。拥有开发者权限的用户,必须要:
- 了解浏览器安全原理。
- 消除XSS隐患(所有的input都要validate,所有的output都要escape)。
- 不得窃取、存储用户隐私。
- 不使用别处粘贴来的陌生代码。
- 经常维护更新,消灭漏洞。
- 珍惜用户访问体验。
- 尊重API礼仪。
- 保护好自己的账号,增加密码强度,毕竟被盗号了上边都没有意义。
- ……
向优秀开发者取经
您可以在他们的个人页面留言求助(请注意礼仪😀)
开发者 | 擅长领域 | 活跃站点 |
---|---|---|
Summerset | CSS,JS,Mustache | 魔兽世界\太空工程师 |
Yuee | JS,CSS,Lua,Mustache | FF14 |
Honestleaf | JS,Lua | Warframe |
东风有意 | JS,Lua | 太吾绘卷 |
林地树喵 | JS,Lua | 风暴英雄 |
MycroftQin | JS,CSS, 主页设计,Mustache | 驯龙高手 |
Kurax | 啥都会 | |
SerGawen | CSS, Lua |
来自灰机wiki