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 で配信しています。