從 Hugo 遷到 Gatsby 的紀錄
最近把網站從 Hugo 遷移到 Gatsby,遇到了一些問題,我就來簡單記錄一下解決問題的過程,而且因為我對 Node 也不是很熟,所以主要是在當作我練習 Node 和 React。
VSCode SSH 連入 Docker Container
為什麼要在 Container 中 Coding?因爲開發中最大的難題總是在環境建置,好不容易建置好環境,要寫下個專案時,因為電腦已經髒兮兮,安裝環境時就會容易衝到版本,而造成惡性循環,環境建置一次比一次困難,最後發現重灌電腦最快。在 Container 中 Coding 就可以簡單用完即丟,每次都可以在乾淨的電腦安裝環境,裝任何東西也不怕把本機弄髒,在 Windows 上更可以簡單的在 Linux 中開發。
Kotlin Flow
Kotlin 在多工處理上提供非常好用的 Coroutine。當不同 Job 之間需要傳遞資料時,總會遇到許多問題,以前最簡單的方式就是 Callback,但 Callback 模式已經在各個程式語言中產生許多問題,這邊就不多討論。Kotlin Coroutine 如果只是要回傳一個值,可以直接用 Suspend 的 Return 值,但如果是要回傳很多資料呢?簡單的方式是直接回傳 List,可是如果資料非常大,也會產生出問題。所以 Kotlin 提供 Flow 來幫助解決大量資料傳遞的問題。
MeiliSearch with Hugo
說到搜尋的解決方案,最有名的大概就是 Algolia,可以方便的創建索引,也有很多寫好的前端網頁元件可以使用,唯一的缺點就是收費。雖然 Algolia 要收費,但其實對於我這個小網頁都索引量是完全不用錢的,但是就還是覺得自己架一個索引系統比較有感覺,然後我就在 GitHub 上發現了開源的 MeiliSearch,功能基本上跟 Algolia 很像,也支援中文,甚至有些前端元件可以直接使用 Algolia 的,缺點就是要自己架設 Server。