# Shoka 主題的基本安裝
會選擇 Hexo 最主要就是覺得主題很炫啊!!衝著 Shoka 主題來的 Hugo:效能不重要嗎
其實在官方主題導覽交叉瀏覽時,知道想裝的 Shoka 似乎已經停止維護了(作者太忙了),本來想裝 ShokaX,但因為一些疏忽裝不起來,畫面渲染一直失敗
我後來裝完 Shoka 推測,裝不起來 ShokaX 的原因是照著 ShokaX 文件安裝時,文件上少寫步驟、我也不清楚 Shoka 這個主題的安裝背景(畢竟 ShokaX 是基於 Shoka 來的),沒有移除 Hexo 預裝的 Markdown 渲染器衝突導致
照著官方教學一步一步安裝
我假設你們安裝跟調整主題時,是把用作部署的 hexo 儲存庫
git clone到到本機用 VSCode 修改,這階段不推薦用 vscode.dev,因為很多報錯得透過 CLI 提供的訊息去解
應該很快在本機終端輸入 hexo s 就能看到美美的主題 'w',但我在中間還是踩了一些坑,在這邊 note 下來節省大家時間:
- npm 這個東西很囉唆*喂),它會提醒你一些漏洞,只要不是 error 其實都不影響功能
- 但是但是,如果覺得這樣就能把所有安裝主題需要的 npm 指令寫在一個
*.bat/*.sh一次跑完這麼好康... 就錯了 ><,它會卡在提醒漏洞的地方,沒裝完任何文中提醒要裝的套件,主題都會渲染失敗,所以還是一條一條老實跑吧;w;
- 但是但是,如果覺得這樣就能把所有安裝主題需要的 npm 指令寫在一個
- 因為 shoka 主題在你 hexo 儲藏庫的 theme 目錄下,但安裝方式導致它也來自原作者的儲藏庫,你得在你的 hexo 儲藏庫跟目錄撰寫
.gitmodules去說明組件的版控,不然建置時會一直報錯;另外如果要魔改主題(如果原作者提供的覆寫方案你覺得不足,像是想抽換載入貓條動畫等),你在你 hexo/theme 下可以更換為你 fork 原作者 Shoka 主題到自己帳號下的儲藏庫,也要去改.gitmodules內描的網址
# Shoka 主題的功能配置
剛剛只是安裝完主題的皮,我們又跟著原作者手把手填寫好了_config.yml 跟建立_config.shoka.yml 並填寫了相關設置,再次進行了部署,但其實仔細一用網站會發現留言跟搜尋功能都是不能用的
# 留言功能配置 & 解套件衝突
這教學寫的不錯,如果有早點看到就能少踩坑了;w;
基本上照著套件官方文件申請 LeanCloud 帳號(台灣要用國際版才能信箱認證),建立 APP,把 API ID 跟 Key 貼上應該就要能作用了,但為什麼不行呢 — 請確認以下:
# 一、LeanCloud 國際版在_config.shoka.yml 留言板的部分加上 serverURL 比較穩定
相關討論
跟打開 f12 拋出網路相關錯誤訊息(常見於中國網友)可能是類似的問題,都是要修改 serverURL 設置
這篇文章寫的不錯,但對於國際版要不要加 serverURL 持保留態度
# 二、解衝突
打開 f12 拋出類似沒有物件的錯誤訊息,通常便屬於此,參考本文改寫你 yml 留言板設定的部分
# 三、沒有物件
還是一直卡在載入中嗎?發第一篇留言在 LeanCloud 產生 Comment 物件(不喜歡留言再去 DB 刪掉),重新整理世界就恢復和平了ˇWˇ...
更正:其實照著上方推薦的文章先在 DB 建立 Comment 物件再開始使用留言板即可
# 搜尋功能配置
這教學寫的不錯,還有教你怎麼建立權限更高的 API + 在本機初始化索引,這篇也不錯
配置完以後,我們每次得在 hexo g 之後跑 hexo algolia 產生索引(順序很重要喔,寫反會無效 XDD!!)
但之前的 Hexo 源頭儲藏庫, netlify.toml 寫的指令為:
[build] | |
publish = "public" | |
command = "hexo generate" |
改為:
[build] | |
publish = "public" | |
command = "hexo generate;hexo algolia" |
才能在生成靜態頁面後接續產生索引
參考:Linux 執行多個指令
重點:&& 是上段指令成功後才執行,分號則是不管
# 替代方案:爬蟲服務?
Algolia for Netlify,會自動安裝變數跟工具到你的 Netlify 專案上,每次部屬就會觸發爬蟲,但我覺得跟在專案內用 hexo algolia 建立索引速度差太多,而且又要改 yml 設定懶,還是沒有採納
# 結語
到這邊的時候,你的網站應該可以留言跟搜尋了 'w'
