個人サイトを始めた理由

あまり深い理由はないです。単純に個人サイトが欲しいなと思って作った感じですね。後、Misskeyを見ていると、個人サイトを作っている人が多い印象でした。なので作っただけです。

技術スタック

概要

ホスティングはCloudflare Pagesにしました。GitHub Pagesでもいいんですが、調べるとCloudflare Pagesのほうが評判が良かったので選びました。

構成として、HTML + CSSという単純な構成です。pandocでMarkdownをHTMLに変換しています。

pandocでHTMLを変換しようと思った経緯

最初はSSGを使おうと思っていました。SSGといえばこのあたりでしょうか。

  • JavaScriptで作成されているもの
    • Next.js
      • 個人的にはSSGだと思っていないけれど、Wikipediaには載っていた
    • Astro
      • 一年前に作った個人サイトはこれを使った
        • そのデータは消した
    • Docusaurus
      • 自分が人生で初めて認識したSSG
  • 動的型付け言語で作成されいるもの
    • MkDocs
      • Python製
    • Jekyll
      • Ruby製
  • 静的型付け言語で作成されているもの
    • Hugo
      • Go製
      • SSGの中でも大手
    • Zola
      • Rust製

Next.jsはReactを詳しく知らないといけないと考えているので、候補にすら上がりませんでした。JavaScript系のSSGは一年前にAstroを使っていましたが、npmライブラリのバージョンアップで大変な目にあったので除外しました。静的型付け言語で作られたSSGのほうが安全になりやすいんじゃないかと考えました。実際は知りませんが。

そうなると、HugoとZolaが候補に挙がります。Zolaは比較的最近出てきたこと、一年前に使ったときにやたらコンパイルが遅かった気がしたので除外しました。となるとHugoです。

そこからHugoを使おうとテンプレートの改造方法を調べました。正直、デザインは自分で作りたかったのと、よくわからないテンプレートを入れることに抵抗があったからです。調べると、何やらテンプレートのシステムが変わったという記述を見かけました。そのため、いったん様子見をしようと思い、Hugoはあきらめました。

とはいえHTMLを直打ちするのはなーと思っていたところ、pandocの存在を思い出しました。ちょっと大変だけれど、最初はこれでいいかとpandocで変換をしてサイトを作りました。

JavaScriptは使わないの?

使わないでもできたからいいかなって感じです。基本的にnpmエコシステムはサプライチェーン攻撃が怖いので、必要がなければ使わなくていいかなと思います。

ちなみにモバイルサイトでよく使われ、JavaScriptで制御をしたほうがいいとされるハンバーガーメニューですが、特に使っていません。自分のサイトのだと、ハンバーガーメニューよりもページ下部にあるナビゲーションバーでも十分かなと思ったためです。そのため、完全にJavaScriptをなくすことに成功しました。ちなみにナビゲーションバーですが、IPAのサイトでも使われています。

このサイトの使い方

基本的にはアドベントカレンダー用の記事を置くために作ろうかなと思っています。ということで、年に一回程度しか更新しないかもしれません。ただ、気が向いたら更新をするかもしれません。