Chapter 6 Summary - 成功安裝 bookdown, 且順利 deploy 到 github.io

6.1 安裝套件

我只是安裝了 blogdown 套件, 就自動安裝了 bookdown 套件(應該是如此)

> if (!requireNamespace("remotes")) install.packages("remotes")  
> remotes::install_github("rstudio/blogdown")

6.2 產生 bookdown 範例檔案

到 RStudio -> File -> New project -> New directory -> 向下找到 “Book project using bookdown” -> Directory 的名字為 marconijiang.github.io 即可產生帶有範例的 bookdown 程式在 marconijiang.github.io 目錄下.

6.3 Deploy 到 github.io

到 RStudio 右上方, Environment 同一頁面的 Build, 選擇 Build Book 下的 bookdown::gitbook, RStudio 就開始將內容轉至 html, 儲存於 _book 子目錄下, 這時候到 https://marconijiang.github.io/_book/index.html 會出現 404 not found

6.4 網頁出現 404 not found時, 關於 .nojekyll 的解決方式

github pages 是基於 jekyll 支援的網頁, 因此, 如果以底線 (underline) 開頭的檔案或目錄, github 不會將這目錄上傳, 詳見Bypassing Jekyll on GitHub Pages, 偏偏 bookdown 標準設定的 html 輸出目錄正是 _book, 以底線開頭的目錄, 因此我們有兩個作法:
1. 在 檔案 _bookdown.yml 修改輸出的目錄名稱, 詳見第 §7.3 _bookdown.yml 檔案說明;
2. 新增 .nojekyll 檔案, 作法如下:

  • 在 index.html 的同一個目錄下新增 .nkjekyll 這檔案, 這檔案不必有內容, 一般都是用 linux 的指令 touch 來創建該檔案
$ touch .nojekyll

新增沒有內容的檔案, 名字為 .nojekyll 的檔案到 _book 目錄下, 詳細內容參考 github 404 not found due to missing .nojekyll 就可以成功看到 https://marconijiang.github.io/_book/index.html 的內容