阳光百科迁移计划

来自阳光百科
2013年8月10日 (六) 09:58Chaosconst讨论 | 贡献的版本

跳转至: 导航搜索

时间线(8月1日进行调整,整体延期一周)

  • 8月2日导入标准页面(课程总结、课程提纲、学生课堂表现)
  • 8月4日导入非标准页面
  • 8月6日界面调试完毕
  • 8月7日旧百科进入只读模式,www.ygclub.org/wiki指向新百科

待完成任务列表

  1. 导入总结帖、助教总结、学生课堂表现
  2. 总结帖、助教反馈、学生表现关联
  3. 非标准页面导入
  4. 图像的导入(任务9代替之)
  5. 不同课程用不同的logo
  6. 一个定制的皮肤( http://www.mediawiki.org/wiki/Manual:Gallery_of_user_styles)
  7. 导入层级类目体系(用template代替之)
  8. 采用类目体系来组织多次上过的课程和正在开发的课程
  9. 维持对旧百科的链接兼容性
  10. 解析tags

互动百科导入维基百科数据的关键点

互动百科的数据格式:html

互动百科的数据格式保存的形式是html,在数据库中位于表wiki_doc中

Hdwiki数据库.png

其中,我们需要title, tags, summary和content。

而content里面的内容是html格式,mediawiki对其并非完全支持,我们需要对它进行处理。

维基百科的数据格式:wiki markup

维基源代码的格式点击本页右上角编辑源代码可以看到。

维基百科的数据格式和html部分相容

比如如下一段话,源代码其实是比较复杂的html,但是维基仍然可以比较好的解析:

英文歌词

A hunting we will go, a hunting we will go,
Heigh ho, the dairy-o, a hunting we will go!
A hunting we will go, a hunting we will go,
We'll catch a fox and put him in a box,
And then we'll let him go!

A hunting we will go, a hunting we will go,
Heigh ho, the dairy-o, a hunting we will go!
A hunting we will go, a hunting we will go,
We'll catch a fish and put him on a dish,
And then we'll let him go!

A hunting we will go, a hunting we will go,
Heigh ho, the dairy-o, a hunting we will go!
A hunting we will go, a hunting we will go,
We'll catch a bear and cut his hair,
And then we'll let him go!

A hunting we will go, a hunting we will go,
Heigh ho, the dairy-o, a hunting we will go!
A hunting we will go, a hunting we will go,
We'll catch a pig and dance a little jig,
And then we'll let him go!

A hunting we will go, a hunting we will go,
Heigh ho, the dairy-o, a hunting we will go!
A hunting we will go, a hunting we will go,
We'll catch a giraffe and make him laugh,
And then we'll let him go!

中文歌词
空缺(9月28号完成--宜轩)
多媒体
空缺(10月左右完成--宜轩)

维基百科的图片和链接与html不相容

当出现链接和图片的时候,需要进行转换才能正常显示。 也就是<img>标签以及<a>标签,维基百科是不支持的。

  • <img>标签的处理,维基百科支持的是直接输入图片的链接地址,比如 logo.gif
  • <a> 标签的处理,维基百科支持的如下的语法 链接

hdwiki和mediawiki表格严重不兼容

表格需要另外想办法处理,两边非常不兼容,所以阳光百科的课程总结、上课准备提纲都有专门的程序转换,这里只考虑非标准页面(不是课程提纲、总结、学生课堂表现)的页面。

页面二级标题转换

<div class="hdwiki_tmml">第一条、总则</div> 

转换为

==第一条、总则==

使得页面原来的结构得以保留

理想的效果

针对每一个hdwiki的页面(现在大概800个),都生成一个对应的wiki markup的文本文件。

新旧百科兼容性

这里讨论迁移完成后的兼容性

数据兼容性

链接兼容性

  • 访问旧百科链接诸如http://www.ygclub.org/wiki/index.php?doc-view-71.html页面时,跳转到http://www.ygclub.org/hdwiki/index.php?doc-view-71.html
  • 旧百科图片链接地址保持相容
  • 旧百科所有页面显示只读和过期信息,建议大家使用新百科
  • 半年内新百科首页显著标出旧版本地址

上线步骤

  1. hdwiki设为只读(混沌)
  2. 导出hdwiki数据
    1. 导出总结帖:SELECT did,`views`,`edits`,author,title,summary,tag,content FROM `wiki_doc` WHERE title like '%课程总结%' and content like '%课程回顾%' and content like '%第一次活动%' limit 1,300;
  3. 运行转换程序
  4. 写入新页面
  5. mediawiki可用性冒烟测试
  6. /var/www/www.ygclub.org/wiki 更改为 /var/www/www.ygclub.org/hdwiki
  7. /var/www/www.ygclub.org/mediawiki 更改为 /var/www/www.ygclub.org/wiki
  8. 复制hdwiki的uploads目录到wiki
  9. 链接兼容性冒烟测试

回滚方案

  1. /var/www/www.ygclub.org/wiki 更改为 /var/www/www.ygclub.org/mediawiki
  2. /var/www/www.ygclub.org/hdwiki 更改为 /var/www/www.ygclub.org/wiki