使用 docusaurus 快速打造部落格
一直以來都有做一個網站來放筆記的想法,除了可以透過 markdown 語法寫作之外,也可以透過這個渠道和網民交流, 所以這個連假花了些時間使用 docusaurus 打造了一個部落格,以下是使用 docusaurus 建部落格的步驟。
Installtion
npx create-docusaurus@latest [your project\'s name] [template]
File Strcture:
my-website
├── blog
│ ├── 2021-08-26-welcome
│ ├── 2019-05-28-first-blog-post.md
│ ├── 2019-05-30-2019-05-29-long-blog-post.md
│ └── 2021-08-01-mdx-blog-post.mdx
├── docs
│ ├── doc1.md
│ ├── doc2.md
│ ├── doc3.md
│ └── mdx.md
├── src
│ ├── css
│ │ └── custom.css
│ └── pages
│ ├── styles.module.css
│ └── index.js
├── static
│ └── img
├── docusaurus.config.js
├── package.json
├── README.md
├── sidebars.js
└── yarn.lock
Blog
- blog sidebar 裡的文章會依照檔名的時間排序,越晚的越上面,2021 的文章會比 2020 上面。
- 可以設定 blog only mode,請參考 blog only mode。
- 可以透過 routeBasePath 更改路由,並透過 path 更改檔案讀取位置,達到網站客製化,像是我把 blog 當作放作品集的地方,請參考 plugin-content-blog。
Docs
- 因為 sidebar.js 的關係,Docs 側邊的 sidebar 會自動依照 docs 資料夾裡的檔案生成,一個資料夾為一個 category,一個檔案為一篇文章,請參考 Autogenerated。
- 可以透過 front matter 客製化 siedebar items,像是順序與標題,請參考 Autogenerated sidebar metadata
- 可以設定 docs only mode,請參考 docs only mode。
Page
docusaurus 和 jekyll 最不一樣的地方,就是可以用 React 寫 page 和處理互動的部分。
- 一個 component 等於一個 url,比方說,helloworld.js 等於 http://localhost:3000/helloworld.js。
/
預設會顯示 pages 檔案夾裡的 index.js,可以透過 blog only mode 或 docs only mode 更改。- 如果需要 navbar 與 footer,要把 component 包在 <Layout> 裡。
- 請參考 Creating Pages
Deploy
部署相關設定主要在 docusaurus.config.js,需要特別注意的欄位:
- url: 'host name'
- baseUrl: 'base url'
- organizationName: <your github user name>
- projectName: 'minhsiungw.github.io'
- deploymentBranch: 'gh-pages'
特別注意 organizationName,如果不符合的話會無法部署。
這些設定完之後,到 github 開一個 repo,準備部署:
GIT_USER=<GITHUB_USERNAME> npm run deploy
GIT_USER 為 environment setting,如要使用 ssh key 部署的話可以把 GIT_USER 換成 USE_SSH = true。更多設定可以參考 Environment settings。
結語
用 docusaurus 建立部落格真滴快,無論是樣式與使用者互動都已經設定好了,我們只需要把文章寫好,並針對一些路由做客製化設定即可開始部署,最後反而是部署花最多時間><