阳光百科迁移计划

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

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

时间线(8月1日进行调整,整体延期一周)[编辑 | 编辑源代码]

  • 8月10日导入标准页面(课程总结、课程提纲、学生课堂表现)(混沌)
  • 8月10日导入非标准页面 (xiansweety)
  • 8月12日界面调试完毕
  • 8月15日旧百科进入只读模式,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;
    2. 导出助教反馈:SELECT did,author,title,summary,content FROM wiki_doc WHERE title like "%-助教反馈%" limit 1, 300;
  3. 运行转换程序
    1. dos2unix
    2. scripts/clean.sh
    3. hdwiki2mediawiki.*.py
    4. cp -r output data
    5. import.*.sh
    6. 去掉<tbody>
  4. 写入新页面
  5. mediawiki可用性冒烟测试
  6. 复制hdwiki的uploads目录到wiki
  7. 修改hdwiki样式
  8. 修改LocalSettings.php中目录路径,并重启php进程:sudo service php5-fpm restart
  9. 修改nginx配置,包括快捷url重定向和过滤爬虫
  10. /var/www/www.ygclub.org/wiki 更改为 /var/www/www.ygclub.org/hdwiki
  11. /var/www/www.ygclub.org/mediawiki 更改为 /var/www/www.ygclub.org/wiki
  12. 链接兼容性冒烟测试

回滚方案[编辑 | 编辑源代码]

  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

你的看法