“阳光百科迁移计划”的版本间的差异
Chaosconst(讨论 | 贡献) |
Chaosconst(讨论 | 贡献) |
||
(未显示2个用户的17个中间版本) | |||
第1行: | 第1行: | ||
− | ==时间线== | + | ==时间线 (8月1日进行调整,整体延期一周)== |
− | * | + | * 8月10 日导入标准页面(课程总结、课程提纲、学生课堂表现)(混沌) |
− | * | + | * 8月10 日导入非标准页面 (xiansweety) |
− | * | + | * 8月12 日界面调试完毕 |
− | * | + | * 8月15 日旧百科进入只读模式,www.ygclub.org/wiki指向新百科 |
==待完成任务列表== | ==待完成任务列表== | ||
第9行: | 第9行: | ||
# 总结帖、助教反馈、学生表现关联 | # 总结帖、助教反馈、学生表现关联 | ||
# 非标准页面导入 | # 非标准页面导入 | ||
− | # 图像的导入 | + | # 图像的导入 (任务9代替之) |
# 不同课程用不同的logo | # 不同课程用不同的logo | ||
# 一个定制的皮肤( http://www.mediawiki.org/wiki/Manual:Gallery_of_user_styles) | # 一个定制的皮肤( http://www.mediawiki.org/wiki/Manual:Gallery_of_user_styles) | ||
− | # 导入层级类目体系 | + | # 导入层级类目体系 (用template代替之) |
# 采用类目体系来组织多次上过的课程和正在开发的课程 | # 采用类目体系来组织多次上过的课程和正在开发的课程 | ||
+ | # 维持对旧百科的链接兼容性 | ||
+ | # 解析tags | ||
==互动百科导入维基百科数据的关键点== | ==互动百科导入维基百科数据的关键点== | ||
第43行: | 第45行: | ||
表格需要另外想办法处理,两边非常不兼容,所以阳光百科的课程总结、上课准备提纲都有专门的程序转换,这里只考虑非标准页面(不是课程提纲、总结、学生课堂表现)的页面。 | 表格需要另外想办法处理,两边非常不兼容,所以阳光百科的课程总结、上课准备提纲都有专门的程序转换,这里只考虑非标准页面(不是课程提纲、总结、学生课堂表现)的页面。 | ||
− | ==== | + | ==== 页面二级标 题 转换==== |
+ | <nowiki><div class="hdwiki_tmml">第一条、总则</div> </nowiki> | ||
+ | 转换为 | ||
+ | <nowiki>==第一条、总则==</nowiki> | ||
+ | 使得页面原来的结构得以保留 | ||
===理想的效果=== | ===理想的效果=== | ||
针对每一个hdwiki的页面(现在大概800个),都生成一个对应的wiki markup的文本文件。 | 针对每一个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 |
2013年8月20日 (二) 03:58的最后版本
目录
时间线(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