<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>静的サイト on tocky.net</title><link>https://www.tocky.net/tags/%E9%9D%99%E7%9A%84%E3%82%B5%E3%82%A4%E3%83%88/</link><description>Recent content in 静的サイト on tocky.net</description><generator>Hugo</generator><language>ja</language><copyright>&amp;copy; tocky.net</copyright><lastBuildDate>Tue, 25 Aug 2026 13:30:00 +0900</lastBuildDate><atom:link href="https://www.tocky.net/tags/%E9%9D%99%E7%9A%84%E3%82%B5%E3%82%A4%E3%83%88/index.xml" rel="self" type="application/rss+xml"/><item><title>このブログの構成 — Hugo と Congo を Hugo Modules で運用する</title><link>https://www.tocky.net/2026/08/blog-architecture/</link><pubDate>Tue, 25 Aug 2026 13:30:00 +0900</pubDate><guid>https://www.tocky.net/2026/08/blog-architecture/</guid><description>&lt;p&gt;最初の記事は、このブログそのものの話にする。&lt;/p&gt;&#10;&lt;p&gt;何をどう選んで、いまどういう構成で動いているのか。とくに「テーマを Hugo Modules で入れる」という一点については、日本語の情報がまだ少ないわりに、後から助けられる場面が多いので、実際の設定ファイルをそのまま出しながら書く。&lt;/p&gt;&#10;&lt;p&gt;前半は選定の理由、後半は実装の中身という構成にした。&lt;/p&gt;&#10;&lt;h2 id="何を求めて個人サイトを持つのか" class="relative group"&gt;何を求めて個人サイトを持つのか &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#%e4%bd%95%e3%82%92%e6%b1%82%e3%82%81%e3%81%a6%e5%80%8b%e4%ba%ba%e3%82%b5%e3%82%a4%e3%83%88%e3%82%92%e6%8c%81%e3%81%a4%e3%81%ae%e3%81%8b" aria-label="アンカー"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;個人サイトに求めるものは、突き詰めると 3 つしかなかった。&lt;/p&gt;&#10;&lt;p&gt;まず、書くことに集中できること。記事を 1 本書くたびに管理画面にログインして、エディタの挙動と格闘して、プレビューが本番と違う、みたいなことをやりたくない。書きたいのはテキストであって、それ以外の操作は少ないほどいい。&lt;/p&gt;&#10;&lt;p&gt;次に、長く持つこと。個人サイトは書いた瞬間より、5 年後に読み返せることのほうが価値がある。サービスが終了したら消える場所や、独自形式でデータが閉じ込められる場所には置きたくない。&lt;/p&gt;&#10;&lt;p&gt;あとは、運用に手がかからないこと。サーバの面倒は見たくないし、セキュリティパッチのために夜中に起きていたくもない。月額を払い続ける前提も避けたい。&lt;/p&gt;&#10;&lt;p&gt;この 3 つを並べると、選択肢はかなり絞られる。Markdown をファイルとして持って、静的な HTML を吐いて、それをどこかに置くだけ。要するに静的サイトジェネレータになる。&lt;/p&gt;&#10;&lt;h2 id="なぜ-hugo-なのか" class="relative group"&gt;なぜ Hugo なのか &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#%e3%81%aa%e3%81%9c-hugo-%e3%81%aa%e3%81%ae%e3%81%8b" aria-label="アンカー"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;静的サイトジェネレータはいくつもあるが、Hugo を選んだ理由は単純だった。&lt;/p&gt;&#10;&lt;p&gt;決め手は、単一バイナリで完結すること。Hugo は Go で書かれていて、実行に必要なのは &lt;code&gt;hugo&lt;/code&gt; コマンドひとつだけだ。&lt;code&gt;node_modules&lt;/code&gt; を作らないし、パッケージマネージャの都合でビルドが壊れることもない。実際このリポジトリには &lt;code&gt;package.json&lt;/code&gt; すら存在しない。数年ぶりに触ったときに「まず依存を直す」という作業が発生しない構成は、個人サイトでは想像以上にありがたい。&lt;/p&gt;&#10;&lt;p&gt;ビルドが速いのも大きかった。手元でこのサイトを丸ごとビルドしても 1 秒かからず、プレビューサーバは変更を即座に反映する。書いている最中に待たされないというのは、書く量そのものに直結する。&lt;/p&gt;&#10;&lt;p&gt;そして、出力がただの HTML であること。生成物は静的ファイルの集まりなので、置き場所を選ばない。今は GitHub Pages に置いているが、気が変われば別のどこかに移せる。ロックインが弱いというのは、10 年単位で持つつもりなら大きい。&lt;/p&gt;&#10;&lt;p&gt;ひとつ前提がある。&lt;strong&gt;Hugo には通常版と extended 版があり、このサイトは extended 版が必須&lt;/strong&gt;になっている。後述する Congo テーマが Sass のコンパイルを要求するためで、通常版の Hugo ではビルドが通らない。Homebrew で入る &lt;code&gt;hugo&lt;/code&gt; は extended 版なので普段は意識しないが、CI では明示的に extended のバイナリを取りに行っている。&lt;/p&gt;</description></item></channel></rss>