02 · ブログ · 2026-08-02

このポートフォリオサイトをどう作ったか

ゼロから純粋な静的サイトを構築する過程の記録:Markdown をコンテンツに、Web 管理画面での更新、ワンコマンドのアトミック公開、そして「静的」が正解であり続ける理由。

公開日 · 2026-08-02 読了時間 · 約 2 分 タグ · ポートフォリオ · サイト制作

なぜ静的サイトなのか

ポートフォリオサイトの核となるのは速さ安定性です。訪問者は読み込んだ瞬間に完成されたページを手にし、バックエンドの問い合わせもデータベース接続もありません。サーバーがトラブルを起こすことはほぼなく、メンテナンスもほとんど不要です。

構成

/zh/en/ja の3つのディレクトリに同じ構成のコンテンツを置き、ページ上部のスイッチャーで言語を切り替えます。build.py が Markdown とテンプレートを静的 HTML にレンダリングし、すべてのページが独立した URL を持つため、共有や検索エンジンにも有利です。

コンテンツは Markdown

記事の追加は .md ファイルを1つ作るだけ:

---
title: 記事タイトル
date: 2026-08-07
tags: タグ
---

本文...

その後、軽量な管理画面(server/admin_server.py)を追加しました。これらの Markdown ファイルを直接読み書きし、ブラウザ上から再ビルドを実行できます。日常の更新に SSH は不要で、ソースはプレーンな Markdown のままです。静的であることとメンテナンスしやすいことは両立します。

ワンコマンド公開

bash scripts/publish.sh はビルドを実行し、dist//var/www/portfolio へアトミックに差し替えます。失敗時は自動ロールバック。公開手順が固定され再現可能なので、いつでも気軽に内容を変更できます。

自動化:日次ブリーフィング

ブログの一部は自動化されています。ai-design-daily のアーカイブが scripts/daily_to_blog.py を通じて多言語のブログ記事になります。機械が下書きし、人間が推敲して、同じビルド&公開パイプラインに乗せます。反復作業はツールが、判断は人間が担います。

デプロイ

サーバーに必要なのは静的ファイルを配信する Nginx だけです。ICP 備案は承認され、ドメイン huxuancheng.top はサーバーに結びつけ済みです。HTTPS も有効化済みで、サイト全体を https で配信しています。