網站更新
這個網站應該不會有什麼 fancy 的東西, 所以應該用隨便一個 ssg 都可以滿足所需, 只要吐出來的 static site 夠乾淨就好。
Hugo 已經是個很好的選擇了, document 夠清楚詳細, user base 夠大所以有豐富的社群資源如 forum 和 theme,而且編譯網站很快, 可調性高,想要的話可以完全不用 javascript。
那為何 Hugo 用的好好的要跑去用其他的 ssg 呢?
Moving to sukr¶
sukr, 我甚至不知道這要怎麼發音(sucker?), 總之這是一個自稱 suckless 的 ssg,也確實。一樣沒有任何的 javascript, 相較於 Hugo 架構更簡單,要修改一些小地方似乎比較方便(也可能只是我不會用 Hugo), 而且它直接把我對於這個網站的理想條件做好:build-time only.
WrItTEn in RuST btW.
no JavaScript¶
我基本上對 JavaScript 沒什麼了解,聽說過 JS 很肥,浪費資源, 也聽說它其實本身蠻輕量的,真正搞砸的是一堆複雜的 frameworks, 但總之它可以在 client 端作到一些純 html/css 無法作到的功能。
這邊不用 JS 的原因是這邊基本上沒什麼功能真的需要它, 網站需要的應該都可以用純 html/css 和一些 tradeoffs 去達成, 所以為了讓網站簡單一些,給自己加了這個限制, 雖然簡單的純 JS 可能很輕,但畢竟還是需要 client 每次都用一些算力去執行。
build-time only¶
把 no JavaScript 的想法再繼續延伸,我想要一個不複雜的網站,最多複雜到它需要的程度, 接下來要求比較多的可能就是一些需要 LaTeX 的內容,畢竟當初弄這個網站時也希望 放一些筆記類的內容(希望真的會有囉),據我所知最常見的作法是用 MathJax 之類的, 但這就不符合之前 noJS 的目標。
而且想一下,這些數學式和其他的內容一樣,在 compile 後就不會改了, 要 client 每次都重跑一次 JS 去得到一樣的內容確實聽起來可以改進。 (也許用 JS 是主流方法是有好的理由的,這只是我一個門外漢的想法)
大概查了一下,有不需要 JS 的解法,可以用 MathML 或是 KaTeX
把 LaTeX render 成一堆 <span> 和 css 的組合,
sukr 是用 pulldown-latex 轉成 MathML,但測試後似乎一些瀏覽器不支援
(用 firefox 正常顯示,但 mullvad browser 不行),為了比較好的支援性想要換成
KaTeX,幸運的是 sukr 在幾個 commit 前還是用 KaTeX,只要把 math.rs 改成那個
commit 前的版本,再加上 KaTeX 提供的 css 和 font,就得到了一堆可以顯示成數學式
的 <span>,不過聽說 MathML 對於 screen reader 之類的比較友好,所以還是依照
KaTeX 預設的保留了一般瀏覽器不會 render 出來的 MathML。
測試一下:
此外它也會把 mermaid 轉成 svg 顯示,但我還沒測試。
TODO¶
- feed
目前 sukr 產生的 atom feed 只有包含大綱,聽說有人習慣用 feeder 直接閱讀, 日後會想辦法把整個內容塞進去,但我還沒搞懂在這裡怎麼做,下次一定。
總之,現在這個網站是由一個對於 web design 沒什麼概念的人, 拿著 AI 幫忙糊出來的 css,小小亂改一下一個用自己完全看不懂的語言寫的小眾開源專案搓出來的, 反正好玩就好, what can go wrong?(flag)