这些步骤指导你:轻松创建协作式开放在线教程
2016-11-22周庆国谢启荣高成龙周睿
文/周庆国 谢启荣 高成龙 周睿
这些步骤指导你:轻松创建协作式开放在线教程
文/周庆国 谢启荣 高成龙 周睿
协作式开放在线课程,英文名称为Collaborative Open Online Course,缩写为COOC,是对MOOC的补充和支撑,它能够把优质在线资源与课堂面对面教学的优势有机结合起来。
随着科学技术的发展,各行各业的知识技能都在飞速的迭代,尤其是信息技术领域更是日新月异,然而作为知识最主要载体的教材却没有跟上时代的步伐,导致书本上的许多知识都与行业发展脱节,而协作式开放在线教程则是一种新型的,采用互联网的思维来编写教材的方式。本文详细描述了创建协作式开放在线教程的步骤,旨在提高大众对于协作式开放在线教程平台的了解和兴趣,引导更多的人加入到协作式开放在线教程的建设中来。
概念解释
GitHub
GitHub是一个基于Web和Git的互联网托管服务,它除了提供了Git的所有功能之外,还添加了一些自己的特性,比如优美的Web图形化前段、Windows和Mac客户端、访问控制和一些多人协作的特性如问题追踪、功能需求、任务管理。
在GitHub上,任何人可以通过fork和pull request方式参与任何公共项目的开发,并可以通过协作示意图来查看参与的开发者及其贡献量并追踪所有fork的版本。正是由于这些特性,为我们的协作式开放在线课程提供了机会。
GitBook
GitBook创建于2014年,它是一个基于NodeJS创建的工具库,其原则是建立一套更加简单、现代化的文档、电子刊物写作和出版的方案。使用GitBook可以轻松地编写出漂亮的图书,它可以将图书以静态网站、PDF、ePub、MOBI几种不同的形式呈现。此外,GitBook完全开源。
图书结构:一本图书就是一个GitBook中的一个仓库, 至少包含两个文件: README.md 和 SUMMARY.md。
1. README.md可以被自动地加入到最终的Summary 之中。
2. SUMMARY.md 定义了图书的目录。它应该包含章节的列表,以及它们的链接。
例如,SUMMARY.md的内容会是以下这样:
# Summary
This is the summary of my book.
* [section 1](section1/README.md)
* [example 1](section1/example1.md)
* [example 2](section1/example2.md)* [section 2](section2/README.md)* [example 1](section2/example1.md)
不被 SUMMARY.md 包含的文件不会被 GitBook 处理,此外,你可能还需要book.json这个文件来配置一些图书相关信息。
协作式在线开放教程
协作式开放在线课程,英文名称为Collaborative Open Online Course,缩写为COOC,是对MOOC的补充和支撑,它能够把优质在线资源与课堂面对面教学的优势有机结合起来,激励教学者和学习者都投入到课程的建设与完善中来,实现对教学流程的重构与创新。COOC以GitHub和GitBook为支撑工具,采用了开源协作的思想来编写教材,符合当前开源开放的发展趋势。目前,COOC平台的官网地址为https://cooc-china.github.io。
图1 Connect to GitHub
协作式开放在线教程创建步骤
创建仓库
1. 打开GitBook(https://www.gitbook. com),若已有账户直接登录,没有账户则先注册。
图2 Authorize application
图3 Connect to GitHub成功
图4 需要填写的信息
2. 进入Dashboard后,点击“SETTINGS”进入设置页面。
3. 在SETTINGS页面向下滑动,在GitHub处先点击“Connect to GitHub”右边的三角箭头,再在下拉菜单中点击“With access to public repostories”,如图1所示。
4. 接下来如果浏览器已登录过GitHub则会直接进入第5步的授权确认页,否则会到GitHub的登录页,在此可输入GitHub的账户名和邮箱登录,若无GitHub账户则先点击下方的“Create an account”创建账户。
5. 登录后会转到授权确认页,点击“Authorize application”确认授权GitBook使用GitHub的仓库,如图2所示。
6. 授权确认后会跳转回GitBook的SETTINGS页面,此时GitHub面板处会如下图所示,否则请重试以上步骤,如图3所示。
7. 在GitBook中创建图书仓库,点击上方导航栏右侧的“+NEW”按钮,创建一个图书仓库。
然后在弹出的对话框中填写以下信息,再点击“Create Book”即可完成在GitBook中创建图书仓库,如图4所示。
接下来将此仓库导出到GitHub中建立两个仓库的关联,导出到GitHub中是因为发挥GitHub在协同工作方面的优势,并且便于统计每个人的贡献量以及问题追踪等。建立好关联之后两个仓库的代码就完全同步了,即在GitHub仓库中做出改动会自动同步到GitBook仓库中,反之亦然。
8. 在GitBook中创建完成后会跳转到图书的欢迎页面,在页面中点击“SETTINGS”进入图书的设置页面,如图5所示。
9. 在图书设置页面中,可以在Options选项卡中修改图书的Name等属性,也可以添加Topic、修改图书语言等,点击左侧的“GitHub”打开GitHub选项卡,在这里点击“Export to GitHub”进入GitHub Importer页面,如图6所示。
10. 在GitHub Importer页面中先点击“Check URL”。
11. 等待Check URL完成,即可设置GitHub中仓库的名字和是否公开(请选择Public),设置完后点击“Begin Import”,如图7所示。
12. 接下来会跳转到GitBook的授权页,在这里输入GitBook的账户名和密码,后点击“Authenticate”,授权后等待导入完成,如图8所示。
13. 点击“Continue to repository”,即可进入GitHub中查看仓库,可以看到之前提到的GitBook图书仓库中必须包含的两个文件:SUMMARY.md和README.md,如图9所示。
至此就已经完成了GitBook图书仓库创建和导出到GitHub仓库并建立两个仓库的关联这些步骤。
安装环境、写作
1. 通过客户端方式撰写(以Windows平台为例)
此方法不适合大众协同贡献,仅适合团队内部成员维护。
(1)下载并安装GitBook客户端(该客户端同时支持Windows、Linux和Mac平台)。
(2)打开GitBook客户端并登录。
(3)点击GITBOOK.COM,并在下方选择要编辑的图书,图书的撰写遵循Markdown语法,下面介绍图书编辑界面,如图10所示。
(4)写作完之后请点击“Sync”将改动提交到远程仓库中,除了使用离线客户端,你还可以使用Web编辑器在线编辑,在GitBook的图书欢迎页面中点击右上角的“Edit”即可进入在线编辑器界面,界面布局与操作方式大致同客户端编辑器,由于国内的网络环境,不推荐使用在线编辑器。
2. 通过命令行的方式编写(以Ubuntu平台为例)
其他平台也可参考此方法。
(1)安装Git,打开终端模拟器,运行一下命令:
$ sudo apt-get install git #安装Git
$ git config --global user.name "Git用户名(不可使用中文字符)"
图5 图书的SETTINGS
图6 Export to GitHub
图7 Begin import
$ git config --global user.email "邮箱"
(2) 安装NodeJS
$ curl -sL https://deb.nodesource.com/ setup_4.x | sudo -E bash -
$ sudo apt-get install -y nodejs
(3)安装GitBook
$ sudo npm install -g gitbook-cli
(4)获取图书源文件
$ git clone 前面提到的GitHub远程仓库的地址
(5)撰写图书按照GitBook目录的说明创建章节等并撰写相关内容,使用普通的文本编辑器即可,也可使用专用的Markdown编辑器,推荐使用Haroopad
(6)本地预览,在终端模拟器中进入本地仓库根目录运行
图8 导入完成
图9 已导入至GitHub
图10 编辑面板
$ gitbook serve
(7)然后可通过浏览器打开http:// localhost:4000以查看图书效果,确认无误后运行以下命令将改动提交到远程仓库。
$ git add -A
$ git commit -m "提交说明"
$ git push origin master
GitBook高级用法
通过以上步骤已经可以在GitBook上创建并维护一门COOC教程了,但是这时图书的一切配置都只是默认的,比如语言默认是英语、侧边栏的链接无法更改等。要想修改这些属性则需要配置之前提到的book.json文件,以下就对book.json文件中一些常用的配置做介绍。
book.json是一个JSON文件,其格式当然就必须按照JSON格式来写,通过book.json文件你可以配置图书的名称等信息,可以配置侧边栏链接、使用插件、配置语言等。以下是一个完整的book.json文件的内容:
{
"author": "COOC China",
"title": "测试教程",
"description": "COOC 测试教程",
"links": {
"sidebar": {
"COOC China": "https://cooc-china.github.io/",
"参与贡献": "https://github.com/Archxr/demo-book.
git"
}
},
"plugins": [
"duoshuo" ],
"pluginsConfig": {
"sharing": {
"facebook": false,
"google": false,
"twitter": false, "weibo": true,
"instapaper": false, "all": [
"weibo" ]
},
"duoshuo": {
"short_name": "demo-book" }
},
"language": "zh-hans"
}
1. author表示图书的作者;
2. title表示图书的标题;
3. description表示图书的描述;
4. links里的内容控制在浏览器浏览图书时侧边栏上方显示的链接;
5. plugins表示这本图书里要使用的插件,插件具有很强大的功能,比如在书中插入习题等就可以用插件来完成,所有的插件可以在https://plugins.gitbook.com/找到,其中duoshuo是一款社会化评论插件,使用时需要先在http://duoshuo.com/创建一个站点;
6. pluginsConfig是对插件的一些配置,其中sharing是一个默认使用的分享插件,即以网站形式浏览时右上角的分享按钮,“false”值表示不显示分享到此平台的按钮。duoshuo的“short_name”是多说创建站点时填写的唯一ID;
7. language表示图书所使用的语言,简体中文用“zh-hans”表示。
以上就是创建一门COOC教程的完整步骤,普通用户、熟悉Git与计算机的高级用户都可以轻松地创建一门COOC教程。COOC倡导开放协作的思想完全符合目前开源开放的时代趋势,在合适的开放协议和质量控制手段的配合下,必定能像Linux内核一样以星星之火呈现出燎原之势。
(作者单位为兰州大学信息科学与工程学院嵌入式与分布式实验室)