在设计 wiki 应用程序时,我应该考虑哪些事项?
到目前为止,我有:
- 修订
- 解析某种标记文本
- 跟踪 wiki 中的链接,以及链接到其他页面的页面。
- 相关 wiki 即 wiki 与其他 wiki 相关。
构建 Wiki 还需要什么?
在设计 wiki 应用程序时,我应该考虑哪些事项?
到目前为止,我有:
构建 Wiki 还需要什么?
如果有帮助,这里是 Wikipedia 的数据库模式(实际上是 MediaWiki,Wikipedia 背后的引擎):
http://upload.wikimedia.org/wikipedia/commons/4/41/Mediawiki-database-schema.png?
在过去的几年里,我对 wiki 进行了大量研究和工作,供我自己使用并为我的各种客户/雇主支持技术团队。
我得出的结论是,wiki 最重要的标准是使其透明,就像http://c2.com/上的原始 wiki 。贡献应该如此容易,以至于用户永远不会质疑他们是否应该费心去做。编辑器必须易于访问,它应该使用传统的纯文本(NO WYSIWYG !!!)wiki 格式,应该易于添加新页面,应该易于链接到外部页面(其他 wiki 或常规网络) , 它应该有反向链接。模仿原始的wiki,你会没事的。
如果用户曾经以一种或另一种方式质疑他们是否应该因为太痛苦而费心做出贡献,那么 wiki 就会停滞不前并失败。我已经看到它一遍又一遍地发生。WYSIWYG 是一种常见的故障模式,混入大量文件、多媒体等“丰富”内容是另一种,无法备份/恢复是一个大问题。如果您想要“花哨”的内容,请使用托管在“附近”的标准 Web 服务器,wiki 用户可以链接到该服务器。请记住,wiki 是关于交流的,而不是关于漂亮的。
看看TiddlyWiki。我认为它具有我在任何 wiki 中看到的最佳功能组合。(对于下面的“页面”,请阅读“项目”,因为 TiddlyWiki 是一个单页 wiki。但我认为这些功能也应该适用于有页面的 wiki):
还有很多我没有提到的。我认为格式化可能是许多好功能中最好的,因为它很容易编辑,也很难搞砸。
经常被忽视:
如果您找到了一种实现易于重组的 wiki 的好方法,那也很棒(即重命名页面,或将两个页面合二为一,并且不会破坏无数的 wiki 链接)。
用户界面——对用户来说最令人沮丧的事情之一是他们必须学习一个用于 MediaWiki 的用户界面,一个用于 TikiWiki 的用户界面,以及一个用于其他无数 wiki 中的任何一个的用户界面。
wiki 最重要的部分不是技术可行性——它让用户以一种方便有效的方式进行贡献和编辑。您可以拥有世界上技术最强大的 wiki,但如果它不易于使用,那么它作为 wiki 应有的社区工具将毫无用处。
要么复制现有的和熟悉的 wiki 语法(例如 MediaWiki),要么准备投入巨资创建 WYSIWYG 编辑器。
我不会启动一个新的 wiki 引擎,它具有每个人都拥有的相同功能,那里有很多这样的功能。
我只会在一个提供不同/独特的东西上工作,而不仅仅是一个标准的 wiki。
一些想法包括(也许一些维基已经有了这个):
确保对人们为防止 XSS 所做的所有编辑执行输入验证。没有什么比人们被黑客入侵更能毁掉一个好的维基了。
每次我试图让非开发人员使用 wiki 时,编写文本的难度一直是最大的障碍。与 StackOverflow 类似的 WYSIWYG 编辑器对我来说似乎是个好主意。它仍然在框中显示标记,因此有动力的用户最终会学会使用它(从而变得更有效率),但它还显示实时预览,以便用户获得关于他们的文本是否正确的即时反馈。
沿着同样的思路,另一个烦恼是每个 wiki 似乎使用略有不同的标记。我猜每个设计师都认为他们可以比以前做得更好。我建议使用 MediaWiki 的语法,或者像 MarkDown 这样的标准语法,以便高级用户可以更轻松地处理事情。
最后,考虑一下您的 wiki 将如何与已经存在的许多其他 wiki 区分开来,以及您的设计将如何影响这一点。