我正在开发一个构建在线协作工具的项目。看一下维基百科,我注意到用户生成的页面的itterations可以很容易地相互比较;比较突出了差异。
从概念上讲,我需要实施哪些措施才能完全相同?
答案 0 :(得分:1)
根据好建议合成:
最简单的方法是使用任何已有的wiki引擎。有很多好的维基引擎 。不要重新发明轮子。
例如,StackOverflow本身是一个自定义构建的wiki。查看Stack Overflow上的编辑查看器,了解其功能与问题中描述的功能的匹配程度。
答案 1 :(得分:0)
您需要版本化数据存储和差异化算法。
通过为每个资源提供修订号来存储资源的版本。当用户编辑资源而不是替换资源时,将编辑保存为数据存储区中的新条目,并使用新的更高版本号。如果要检索资源,请返回具有最高版本的资源。
您可以使用时间戳代替修订号。时间戳不仅总是增加,而且修订号本身可用于识别资源何时被修改。
根据您存储资源的方式选择差异算法。 Wikitext通常是行式的,因此如果用户正在编辑它,那么使用像标准Unix diff
实用程序一样的行式差异是有意义的。如果资源是XML,您可能希望找到特定于XML的diff算法,以便用户可以清楚地了解差异。