個人サイトをNext.jsで書き直した
個人サイトをNext.jsで作り直した
今まではRustを使った自作静的サイトジェネレータを使っていたが、
Markdown処理
Markdownはremark
でgetStaticProps
の中で処理している。text-loader
SSGなので高速だしを使って遷移するのでSPAの速度感が出る。
ある程度Markdownを処理できるようにはしたがシンタックスハイライトの対応はまだだし、でうまくまとめるような処理も入れてない。
Syntaxhighlight
react-refractor
を使用した。楽〜。
;
OGP
OGPも対応させた。元々はNext.jsで使える/pages/api
でnode-canvasを使ってNoto Sans CJKjp
が15 MB、node_modules
が40 MBくらいで
これはヘッドレスChromiumでスクリーンショットを取ることで画像を生成しているらしい。
CSS
いつもどおりTailwind.cssです。
そう言えばChakra UIというのもあり、
一応読めるようにはなったがマジで適当なCSSなのでもう少しなんとかしたい。
履歴とサイトマップ
nodejsで作ったスクリプトでビルド前に./lib/generated/metadata
とpublic/sitemap.xml
に自動生成。git log
の--pretty
オプションと--date
オプションを使えば好きな形に整形できるのでプログラムからも扱いやすい。./article/blog
か./article/diary
以下に作成されれば自動で追加されるようになっている。GetStaticProps
とかでfs.reafFileSync
を呼んでファイルをパースすれば
ぬん
機能的にはタグ画面がまだだし、
とにかく物は出来たし保守性も悪く無さそうなので今後はHatenablogよりこちらで書いていきたい。