[Git] 將 GitBook 發佈到 GitHub Pages

2016-04-24

最近在使用 GitBook 撰寫一個 Swift 入門的電子書

這幾天寫到一個段落 可以進行其他部分

其中一點就是將電子書發佈到 GitHub Pages 上

▼ 匯入到 GitHub

首先要先從 GitBook 把電子書 export 到 GitHub

在 GitBook 裡 找到 SETTINGS > GitHub 並點擊[Export to GitHub]

接著按照他的步驟進行 最後會在 GitHub 新建好一個 repository

▼ 建立書籍

因為原始檔案都是一個一個的 .md 檔案 必須做轉換才可以直接在網頁上看

我是在 Mac 本機上做這個操作(需要 npm ,如果還沒有的話要先安裝 nodejs )

先使用 npm 安裝 gitbook-cli

$ npm install -g gitbook-cli

接著找好要放置的目錄並將前一步驟新建好的 repository clone 回本機

(這邊使用 SwiftGo 電子書做範例)

$ git clone https://github.com/itisjoe/swiftgo.git

然後在該目錄裡使用 gitbook 指令來建立書籍

$ gitbook build

如果建立成功的話 目錄底下會多出一個 _book 目錄

這裡面就是已經轉換好的電子書網頁內容

▼ 建立 gh-pages branch

如果要可以在 http://[帳號].github.io/[repository 名稱] 看到專案內容

必須建立一個名為 gh-pages 的 branch (使用 --orphan 參數, 這樣會建立一個沒有 parent 的 branch)

$ git checkout --orphan gh-pages

接著將目錄內不需要的檔案都刪除掉 (僅留 _book 就好, 其他原始檔案在 master branch 裡, 不用擔心)

$ git rm --cached -r .
$ git clean -df
$ rm -rf *~

接著可以建立 .gitignore 檔案 (也可以省略這個步驟, 看使用習慣)

$ echo "*~" > .gitignore
$ echo "_book" >> .gitignore
$ git add .gitignore
$ git commit -m "ignore files"

然後將電子書內容(在 _book 裡)移到這個目錄下

$ cp -r _book/* .
$ git add .
$ git commit -m "publish"

▼ 發佈書籍內容到 GitHub

最後將修改後的 branch 推送回 GitHub (目前位於 gh-pages 這個 branch 下)

$ git push -u origin gh-pages

現在就會有兩個 branch 了 ( master 跟 gh-pages )

稍等幾秒鐘到一兩分鐘 即可在網頁上看到內容 如下

http://itisjoe.github.io/swiftgo/

ref:
http://www.chengweiyang.cn/gitbook/github-pages/README.html

發表迴響

彙整

分類