🍋

自分のブログをDeno&Freshで実装した話

2023/01/30に公開

https://kstdx.deno.dev

はじめに

皆さんはDenoを知っていますか?最近は結構日の目を浴びるようになってきたJavaScriptランタイムです。さて、DenoにはFreshというフレームワークがあるんですが、こいつが結構使えます。何がいいかって言うと、Tailwindライクなスタイリング(Twind)とか、Island Architectureとか、デプロイが簡単だとか(Deno Deploy)、TSがそのまま使えるとか(自分は使いませんが)色々です。
私は今回このFreshを使ってブログを作ってみました。

Freshを選んだ理由

まず、Denoを使ってブログを作りたいと前々から思っていました。
そこで、最初はDenoのSSGアプリケーションであるLumeを使おうとしましたが、SSGっていうのが自分とあありマッチしませんでした。(理由は特にありません。SSGが最善の選択だとも思っていたのですが、なんかしっくりきませんでした)
次に、deno_blogをやってみました。これが簡単で、とても楽しかったです。(デザインもかわいいです)なんですが、拡張性はほとんどゼロで、なによりGA4(Google Analytics)が使えなくて困りました。(使う方法はあったかもしれませんが出てこなかったのでやめました)

そこで、Freshというフレームワークに挑戦してみました。
私はフルスタックフレームワークはSveltekitをちょこっとかじったくらいで、ほとんど未経験なので食わず嫌いをしていました。が、Freshがまた簡単で、ほとんど追加設定はせずにデプロイすることが出来ました。

ブログの実装

もちろん使いやすいとは言っても、すこし突っかかったところはありました。
まず、MarkedでブログのMarkdownファイルを読み込み処理していたんですが、困ったことにTailwindのクラスをパース後のHTMLに差し込むことが出来ませんでした。
なので、これまたDenoDOMというHTMLパーサを利用して、いったんDOMに変形させて差し込むことで実装しました。

これから

単なるブログなので別に機能追加とかはありませんが、スマホ対応くらいはしたいと思っています。

最後に

以上、Freshはいいぞという記事でした。
ネットで調べても結構資料が増えてきたように感じるので、みなさんもぜひ使ってみて下さい。

Discussion