Galtz's Blog:個人技術部落格
使用 Gatsby + Netlify 搭建的個人技術部落格,包含自己學習程式技術的筆記、工作心得,還會不定期分享好吃新奇又好玩的音樂知識!
由於筆者的強迫症,本 Blog 並沒有套用 UI Template,而是決定純手工打造,展現日本職人的匠心,いっらしゃいませ!
架構說明
採用 Jamstack,使用 Gatsby 作為 Static Site Generator(SSG),根據 repo 內的 markdown files 產生靜態頁面後,部署至 Netlify。主要有以下好處:
- Performance:不需每次請求都經過過後端 template render,把 run time 處理的事情提前到 build time 處理。
- Multiple Source:不只能使用 local 的 markdown files 作為 content source,也可以選擇透過 CI 整合 headless CMS,如 Ghost、Wordpress 等。
- Security:由於 content source 都在 local files 或是第三方 headless CMS 服務上,不需管理 API、database,減少受到攻擊的機會。
- Easy to Deploy/Scale:在有限額度內使用完全免費,透過簡單的設定即可和 Github 整合 CI/CD,也有 Deploy Previews 這種超讚的功能。
功能
文章都放在 `src/posts/` 下,為 mdx 格式,簡單來說就是可以在 markdown file 中使用 React component。經過 gatsby build 產出的網頁會在 `public/` 底下,除了網頁內容外,還會包含:
- sitemap/:由 gatsby-plugin-advanced-sitemap 產生,提交給 Google Search Console,讓 Google 更有效率的方式檢索網站。
- rss.xml:由 gatsby-plugin-feed 產生,讓 RSS 服務能夠訂閱我們的 blog。
- robots.txt:由 gatsby-plugin-robots-txt 產生,主要用來避免網站因要求過多而超載。
詳細開發流程請參考 Github repo 內的 README 文件。
Website url: https://galtz.netlify.app
Github repo: https://github.com/YogaPan/blog