阳光百科迁移计划
目录
时间线(8月1日进行调整,整体延期一周)[编辑 | 编辑源代码]
- 8月10日导入标准页面(课程总结、课程提纲、学生课堂表现)(混沌)
- 8月10日导入非标准页面 (xiansweety)
- 8月12日界面调试完毕
- 8月15日旧百科进入只读模式,www.ygclub.org/wiki指向新百科
待完成任务列表[编辑 | 编辑源代码]
- 导入总结帖、助教总结、学生课堂表现
- 总结帖、助教反馈、学生表现关联
- 非标准页面导入
- 图像的导入(任务9代替之)
- 不同课程用不同的logo
- 一个定制的皮肤( http://www.mediawiki.org/wiki/Manual:Gallery_of_user_styles)
- 导入层级类目体系(用template代替之)
- 采用类目体系来组织多次上过的课程和正在开发的课程
- 维持对旧百科的链接兼容性
- 解析tags
互动百科导入维基百科数据的关键点[编辑 | 编辑源代码]
互动百科的数据格式:html[编辑 | 编辑源代码]
互动百科的数据格式保存的形式是html,在数据库中位于表wiki_doc中
其中,我们需要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!
维基百科的图片和链接与html不相容[编辑 | 编辑源代码]
当出现链接和图片的时候,需要进行转换才能正常显示。 也就是<img>标签以及<a>标签,维基百科是不支持的。
- <img>标签的处理,维基百科支持的是直接输入图片的链接地址,比如
- <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
- 旧百科图片链接地址保持相容
- 旧百科所有页面显示只读和过期信息,建议大家使用新百科
- 半年内新百科首页显著标出旧版本地址
上线步骤[编辑 | 编辑源代码]
- hdwiki设为只读(混沌)
- 导出hdwiki数据
- 导出总结帖:SELECT did,`views`,`edits`,author,title,summary,tag,content FROM `wiki_doc` WHERE title like '%课程总结%' and content like '%课程回顾%' and content like '%第一次活动%' limit 1,300;
- 导出助教反馈:SELECT did,author,title,summary,content FROM wiki_doc WHERE title like "%-助教反馈%" limit 1, 300;
- 运行转换程序
- dos2unix
- scripts/clean.sh
- hdwiki2mediawiki.*.py
- cp -r output data
- import.*.sh
- 去掉<tbody>
- 写入新页面
- mediawiki可用性冒烟测试
- 复制hdwiki的uploads目录到wiki
- 修改hdwiki样式
- 修改LocalSettings.php中目录路径,并重启php进程:sudo service php5-fpm restart
- 修改nginx配置,包括快捷url重定向和过滤爬虫
- /var/www/www.ygclub.org/wiki 更改为 /var/www/www.ygclub.org/hdwiki
- /var/www/www.ygclub.org/mediawiki 更改为 /var/www/www.ygclub.org/wiki
- 链接兼容性冒烟测试
回滚方案[编辑 | 编辑源代码]
- /var/www/www.ygclub.org/wiki 更改为 /var/www/www.ygclub.org/mediawiki
- /var/www/www.ygclub.org/hdwiki 更改为 /var/www/www.ygclub.org/wiki