Kotlin製の静的サイトジェネレーターKraftを自作してみた
こんにちは、鈴木俊吾(すずしん)です。
先日、私はnote記事で今月の目標について書きました。
その中で、自作ブログの作成を目指していたんですよね。
対象の記事はこちら。
どんな事を書いたのか気になる方はチェックしてみてください。
そこで、今月は黙々とプログラミングに邁進しまして…。
とりあえず、形になるところまでは来ました。
今回は、自作の静的サイトジェネレーターKraftについて簡単に紹介します。
そして、このKraftを使って作成した、実際のブログも見せますよ!
静的サイトジェネレーターKraftとは?
Kraftというのは、今回私が自作したKotlin製の静的サイトジェネレーター。
テンプレートとマークダウンファイルから、HTMLファイルを自動生成。
基本的に、扱うのは静的ファイルのみになるので…。
ブログの表示速度は爆速になります!
「WordPressでブログを運営するほど、高度な機能は要らない!」
「セキュリティ的に安全なブログにしたい!」
「軽量で高速に動作するブログを自作したい!」
「プログラミングスキルの向上をしたい!」
そんな個人的なニーズを満たすべく…。
今回、自分で開発をしてみることにしたのです。
Kraftの基本機能
Kraftでは、以下の機能を実装しています。
FreeMarkerのテンプレート(.ftl)とマークダウンファイル(.md)からHTMLファイル(.html)を自動生成。
静的ファイル(images/js/css)をコピー
タグ毎の記事一覧ページを自動生成
サイトマップ自動生成
RSS自動生成
静的サイトジェネレーターとして必要になりそうな基本機能は実装済み。
他にあると良さそうな機能については、後日アップデートで追加していく予定です。
基本的な構想を練った後は、ChatGPTで大まかなコードを出力してもらい、適宜修正を加えるという形で作りました。
AIをフル活用すると、だいぶプログラミング作業が楽になりますね!
もし、1から自分でフルスクラッチだと、もっと作成に時間がかかっていると思います。
Kraftを使ったブログ作成の流れ
Kraftは、あくまでHTMLファイルの自動作成がメイン。
実際にブログを作るためには、テンプレートと必要なファイルを全て自作する必要があります。
今回の私のブログ『スズシンラボ』を作るために、結構な数のファイルを作りましたね…。
意外と手間はかかっています。
とは言え、テンプレートが使えるので、だいぶ制作のコストは下がっていますよ。
ブログ作成の流れとしては以下のようになります。
必要なテンプレートファイル(.ftl)を作成
各記事に対応するマークダウンファイル(.md)を作成
ブログの見た目を決めるCSSファイル(.css)を作成
必要に応じてJavaScriptファイル(.js)を作成
KraftでHTMLファイル(.html)に変換。
私のブログ『スズシンラボ』について
今回作成した私のブログ。
その名も『スズシンラボ』と言います。
古本をイメージしたデザインにしています。
個人的には、結構気に入っていますよ♪
なかなか良い感じでしょう?
このブログでは、私が人生大逆転を目指していく過程をまとめていきます。
様々なことに挑戦しながら、日々成長していきますので…。
ぜひあなたも『スズシンラボ』をチェックしてみてくださいね。
ちなみに、ブログのスピードがどの程度か気になったので…。
PageSpeed Insightsというサイトで計測してみました。
その結果がこちら。
ポストの動画を観てもらえれば分かりますが…。
スマホのパフォーマンスを除けば、他の項目は100点満点!?
予想以上にハイスコアを叩き出しました!
これは頑張って作った甲斐がありますね〜。
Kraftの公開については検討中
今回作成した静的サイトジェネレーターKraftは、あくまで自分用に作成したものです。
基本的には、自分で使うためだけの用途なのですが…。
もし、需要がありそうなら公開も考えています。
使いたいという方がもしいたら、前向きに検討したいですね。
まとめ
今回の記事では、Kotlin製の静的サイトジェネレーターKraftを自作して…。
私のブログ『スズシンラボ』を制作したという話をしてみました。
サクッと作れるとは思ってなかったですが…。
でも、予想以上に制作には時間がかかりましたね。
「あーでもない、こーでもない」と、試行錯誤を繰り返しましたよ。
でも、そのぶん…。
プログラミングスキルは上がったような気がしています。
実際に作ってみて良かったと思っていますよ♪
非常に勉強になりました!
この後は、Kraftの更新もしつつ…。
『スズシンラボ』の記事作成を頑張っていきたいです。
ブログの運営が当初の目的でしたからっ!
だいぶ遠回りしましたが、ここからは飛ばしていきますよ〜。
このnoteはもちろん…。
『スズシンラボ』の方もチェックしてもらえたら嬉しいです。
今後ともよろしくお願いしますね。
▼イチオシのリンク
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?