文/周慶國(guó) 謝啟榮 高成龍 周睿
這些步驟指導(dǎo)你:輕松創(chuàng)建協(xié)作式開(kāi)放在線教程
文/周慶國(guó) 謝啟榮 高成龍 周睿
協(xié)作式開(kāi)放在線課程,英文名稱為Collaborative Open Online Course,縮寫為COOC,是對(duì)MOOC的補(bǔ)充和支撐,它能夠把優(yōu)質(zhì)在線資源與課堂面對(duì)面教學(xué)的優(yōu)勢(shì)有機(jī)結(jié)合起來(lái)。
隨著科學(xué)技術(shù)的發(fā)展,各行各業(yè)的知識(shí)技能都在飛速的迭代,尤其是信息技術(shù)領(lǐng)域更是日新月異,然而作為知識(shí)最主要載體的教材卻沒(méi)有跟上時(shí)代的步伐,導(dǎo)致書本上的許多知識(shí)都與行業(yè)發(fā)展脫節(jié),而協(xié)作式開(kāi)放在線教程則是一種新型的,采用互聯(lián)網(wǎng)的思維來(lái)編寫教材的方式。本文詳細(xì)描述了創(chuàng)建協(xié)作式開(kāi)放在線教程的步驟,旨在提高大眾對(duì)于協(xié)作式開(kāi)放在線教程平臺(tái)的了解和興趣,引導(dǎo)更多的人加入到協(xié)作式開(kāi)放在線教程的建設(shè)中來(lái)。
GitHub
GitHub是一個(gè)基于Web和Git的互聯(lián)網(wǎng)托管服務(wù),它除了提供了Git的所有功能之外,還添加了一些自己的特性,比如優(yōu)美的Web圖形化前段、Windows和Mac客戶端、訪問(wèn)控制和一些多人協(xié)作的特性如問(wèn)題追蹤、功能需求、任務(wù)管理。
在GitHub上,任何人可以通過(guò)fork和pull request方式參與任何公共項(xiàng)目的開(kāi)發(fā),并可以通過(guò)協(xié)作示意圖來(lái)查看參與的開(kāi)發(fā)者及其貢獻(xiàn)量并追蹤所有fork的版本。正是由于這些特性,為我們的協(xié)作式開(kāi)放在線課程提供了機(jī)會(huì)。
GitBook
GitBook創(chuàng)建于2014年,它是一個(gè)基于NodeJS創(chuàng)建的工具庫(kù),其原則是建立一套更加簡(jiǎn)單、現(xiàn)代化的文檔、電子刊物寫作和出版的方案。使用GitBook可以輕松地編寫出漂亮的圖書,它可以將圖書以靜態(tài)網(wǎng)站、PDF、ePub、MOBI幾種不同的形式呈現(xiàn)。此外,GitBook完全開(kāi)源。
圖書結(jié)構(gòu):一本圖書就是一個(gè)GitBook中的一個(gè)倉(cāng)庫(kù), 至少包含兩個(gè)文件: README.md 和 SUMMARY.md。
1. README.md可以被自動(dòng)地加入到最終的Summary 之中。
2. SUMMARY.md 定義了圖書的目錄。它應(yīng)該包含章節(jié)的列表,以及它們的鏈接。
例如,SUMMARY.md的內(nèi)容會(huì)是以下這樣:
# 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 包含的文件不會(huì)被 GitBook 處理,此外,你可能還需要book.json這個(gè)文件來(lái)配置一些圖書相關(guān)信息。
協(xié)作式在線開(kāi)放教程
協(xié)作式開(kāi)放在線課程,英文名稱為Collaborative Open Online Course,縮寫為COOC,是對(duì)MOOC的補(bǔ)充和支撐,它能夠把優(yōu)質(zhì)在線資源與課堂面對(duì)面教學(xué)的優(yōu)勢(shì)有機(jī)結(jié)合起來(lái),激勵(lì)教學(xué)者和學(xué)習(xí)者都投入到課程的建設(shè)與完善中來(lái),實(shí)現(xiàn)對(duì)教學(xué)流程的重構(gòu)與創(chuàng)新。COOC以GitHub和GitBook為支撐工具,采用了開(kāi)源協(xié)作的思想來(lái)編寫教材,符合當(dāng)前開(kāi)源開(kāi)放的發(fā)展趨勢(shì)。目前,COOC平臺(tái)的官網(wǎng)地址為https://cooc-china.github.io。
圖1 Connect to GitHub
創(chuàng)建倉(cāng)庫(kù)
1. 打開(kāi)GitBook(https://www.gitbook. com),若已有賬戶直接登錄,沒(méi)有賬戶則先注冊(cè)。
圖2 Authorize application
圖3 Connect to GitHub成功
圖4 需要填寫的信息
2. 進(jìn)入Dashboard后,點(diǎn)擊“SETTINGS”進(jìn)入設(shè)置頁(yè)面。
3. 在SETTINGS頁(yè)面向下滑動(dòng),在GitHub處先點(diǎn)擊“Connect to GitHub”右邊的三角箭頭,再在下拉菜單中點(diǎn)擊“With access to public repostories”,如圖1所示。
4. 接下來(lái)如果瀏覽器已登錄過(guò)GitHub則會(huì)直接進(jìn)入第5步的授權(quán)確認(rèn)頁(yè),否則會(huì)到GitHub的登錄頁(yè),在此可輸入GitHub的賬戶名和郵箱登錄,若無(wú)GitHub賬戶則先點(diǎn)擊下方的“Create an account”創(chuàng)建賬戶。
5. 登錄后會(huì)轉(zhuǎn)到授權(quán)確認(rèn)頁(yè),點(diǎn)擊“Authorize application”確認(rèn)授權(quán)GitBook使用GitHub的倉(cāng)庫(kù),如圖2所示。
6. 授權(quán)確認(rèn)后會(huì)跳轉(zhuǎn)回GitBook的SETTINGS頁(yè)面,此時(shí)GitHub面板處會(huì)如下圖所示,否則請(qǐng)重試以上步驟,如圖3所示。
7. 在GitBook中創(chuàng)建圖書倉(cāng)庫(kù),點(diǎn)擊上方導(dǎo)航欄右側(cè)的“+NEW”按鈕,創(chuàng)建一個(gè)圖書倉(cāng)庫(kù)。
然后在彈出的對(duì)話框中填寫以下信息,再點(diǎn)擊“Create Book”即可完成在GitBook中創(chuàng)建圖書倉(cāng)庫(kù),如圖4所示。
接下來(lái)將此倉(cāng)庫(kù)導(dǎo)出到GitHub中建立兩個(gè)倉(cāng)庫(kù)的關(guān)聯(lián),導(dǎo)出到GitHub中是因?yàn)榘l(fā)揮GitHub在協(xié)同工作方面的優(yōu)勢(shì),并且便于統(tǒng)計(jì)每個(gè)人的貢獻(xiàn)量以及問(wèn)題追蹤等。建立好關(guān)聯(lián)之后兩個(gè)倉(cāng)庫(kù)的代碼就完全同步了,即在GitHub倉(cāng)庫(kù)中做出改動(dòng)會(huì)自動(dòng)同步到GitBook倉(cāng)庫(kù)中,反之亦然。
8. 在GitBook中創(chuàng)建完成后會(huì)跳轉(zhuǎn)到圖書的歡迎頁(yè)面,在頁(yè)面中點(diǎn)擊“SETTINGS”進(jìn)入圖書的設(shè)置頁(yè)面,如圖5所示。
9. 在圖書設(shè)置頁(yè)面中,可以在Options選項(xiàng)卡中修改圖書的Name等屬性,也可以添加Topic、修改圖書語(yǔ)言等,點(diǎn)擊左側(cè)的“GitHub”打開(kāi)GitHub選項(xiàng)卡,在這里點(diǎn)擊“Export to GitHub”進(jìn)入GitHub Importer頁(yè)面,如圖6所示。
10. 在GitHub Importer頁(yè)面中先點(diǎn)擊“Check URL”。
11. 等待Check URL完成,即可設(shè)置GitHub中倉(cāng)庫(kù)的名字和是否公開(kāi)(請(qǐng)選擇Public),設(shè)置完后點(diǎn)擊“Begin Import”,如圖7所示。
12. 接下來(lái)會(huì)跳轉(zhuǎn)到GitBook的授權(quán)頁(yè),在這里輸入GitBook的賬戶名和密碼,后點(diǎn)擊“Authenticate”,授權(quán)后等待導(dǎo)入完成,如圖8所示。
13. 點(diǎn)擊“Continue to repository”,即可進(jìn)入GitHub中查看倉(cāng)庫(kù),可以看到之前提到的GitBook圖書倉(cāng)庫(kù)中必須包含的兩個(gè)文件:SUMMARY.md和README.md,如圖9所示。
至此就已經(jīng)完成了GitBook圖書倉(cāng)庫(kù)創(chuàng)建和導(dǎo)出到GitHub倉(cāng)庫(kù)并建立兩個(gè)倉(cāng)庫(kù)的關(guān)聯(lián)這些步驟。
安裝環(huán)境、寫作
1. 通過(guò)客戶端方式撰寫(以Windows平臺(tái)為例)
此方法不適合大眾協(xié)同貢獻(xiàn),僅適合團(tuán)隊(duì)內(nèi)部成員維護(hù)。
(1)下載并安裝GitBook客戶端(該客戶端同時(shí)支持Windows、Linux和Mac平臺(tái))。
(2)打開(kāi)GitBook客戶端并登錄。
(3)點(diǎn)擊GITBOOK.COM,并在下方選擇要編輯的圖書,圖書的撰寫遵循Markdown語(yǔ)法,下面介紹圖書編輯界面,如圖10所示。
(4)寫作完之后請(qǐng)點(diǎn)擊“Sync”將改動(dòng)提交到遠(yuǎn)程倉(cāng)庫(kù)中,除了使用離線客戶端,你還可以使用Web編輯器在線編輯,在GitBook的圖書歡迎頁(yè)面中點(diǎn)擊右上角的“Edit”即可進(jìn)入在線編輯器界面,界面布局與操作方式大致同客戶端編輯器,由于國(guó)內(nèi)的網(wǎng)絡(luò)環(huán)境,不推薦使用在線編輯器。
2. 通過(guò)命令行的方式編寫(以Ubuntu平臺(tái)為例)
其他平臺(tái)也可參考此方法。
(1)安裝Git,打開(kāi)終端模擬器,運(yùn)行一下命令:
$ 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遠(yuǎn)程倉(cāng)庫(kù)的地址
(5)撰寫圖書按照GitBook目錄的說(shuō)明創(chuàng)建章節(jié)等并撰寫相關(guān)內(nèi)容,使用普通的文本編輯器即可,也可使用專用的Markdown編輯器,推薦使用Haroopad
(6)本地預(yù)覽,在終端模擬器中進(jìn)入本地倉(cāng)庫(kù)根目錄運(yùn)行
圖8 導(dǎo)入完成
圖9 已導(dǎo)入至GitHub
圖10 編輯面板
$ gitbook serve
(7)然后可通過(guò)瀏覽器打開(kāi)http:// localhost:4000以查看圖書效果,確認(rèn)無(wú)誤后運(yùn)行以下命令將改動(dòng)提交到遠(yuǎn)程倉(cāng)庫(kù)。
$ git add -A
$ git commit -m "提交說(shuō)明"
$ git push origin master
GitBook高級(jí)用法
通過(guò)以上步驟已經(jīng)可以在GitBook上創(chuàng)建并維護(hù)一門COOC教程了,但是這時(shí)圖書的一切配置都只是默認(rèn)的,比如語(yǔ)言默認(rèn)是英語(yǔ)、側(cè)邊欄的鏈接無(wú)法更改等。要想修改這些屬性則需要配置之前提到的book.json文件,以下就對(duì)book.json文件中一些常用的配置做介紹。
book.json是一個(gè)JSON文件,其格式當(dāng)然就必須按照J(rèn)SON格式來(lái)寫,通過(guò)book.json文件你可以配置圖書的名稱等信息,可以配置側(cè)邊欄鏈接、使用插件、配置語(yǔ)言等。以下是一個(gè)完整的book.json文件的內(nèi)容:
{
"author": "COOC China",
"title": "測(cè)試教程",
"description": "COOC 測(cè)試教程",
"links": {
"sidebar": {
"COOC China": "https://cooc-china.github.io/",
"參與貢獻(xiàn)": "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表示圖書的標(biāo)題;
3. description表示圖書的描述;
4. links里的內(nèi)容控制在瀏覽器瀏覽圖書時(shí)側(cè)邊欄上方顯示的鏈接;
5. plugins表示這本圖書里要使用的插件,插件具有很強(qiáng)大的功能,比如在書中插入習(xí)題等就可以用插件來(lái)完成,所有的插件可以在https://plugins.gitbook.com/找到,其中duoshuo是一款社會(huì)化評(píng)論插件,使用時(shí)需要先在http://duoshuo.com/創(chuàng)建一個(gè)站點(diǎn);
6. pluginsConfig是對(duì)插件的一些配置,其中sharing是一個(gè)默認(rèn)使用的分享插件,即以網(wǎng)站形式瀏覽時(shí)右上角的分享按鈕,“false”值表示不顯示分享到此平臺(tái)的按鈕。duoshuo的“short_name”是多說(shuō)創(chuàng)建站點(diǎn)時(shí)填寫的唯一ID;
7. language表示圖書所使用的語(yǔ)言,簡(jiǎn)體中文用“zh-hans”表示。
以上就是創(chuàng)建一門COOC教程的完整步驟,普通用戶、熟悉Git與計(jì)算機(jī)的高級(jí)用戶都可以輕松地創(chuàng)建一門COOC教程。COOC倡導(dǎo)開(kāi)放協(xié)作的思想完全符合目前開(kāi)源開(kāi)放的時(shí)代趨勢(shì),在合適的開(kāi)放協(xié)議和質(zhì)量控制手段的配合下,必定能像Linux內(nèi)核一樣以星星之火呈現(xiàn)出燎原之勢(shì)。
(作者單位為蘭州大學(xué)信息科學(xué)與工程學(xué)院嵌入式與分布式實(shí)驗(yàn)室)