構成環境
このファイルは、PersonalHomepage プロジェクトで使っているツール、開発環境、ライブラリ、運用方針をまとめるためのメモです。
プロジェクト概要
- プロジェクト名:
PersonalHomepage - 目的: 個人ノート、技術メモ、学習記録、プロジェクト文書を公開する個人サイトを作る
- 方針: 学習を優先し、まずは小さく静的サイトとして作る
- 将来の方向性: Laravel 学習やコミュニティ機能は別フェーズで検討する
- 現在のトップページ方針: 特番情報、上場企業情報、注目の飲食店、学習記録への入口として運用する
使用ツール
Codex
このプロジェクトでの開発支援に使用する AI コーディングツール。
主な役割:
- ファイル作成、編集
- 実装方針の相談
- コマンド実行
- 動作確認
- 作業履歴の更新
- ローカルコミットの作成
- 将来的な定期更新処理の支援
このプロジェクトでは、Codex が作業後に docs/作業履歴.md を更新する。
GitHub Desktop
Git を GUI で操作するためのツール。
SourceTree と同じ種類の Git クライアントとして扱う。
主な役割:
- 変更内容の確認
- コミット履歴の確認
- GitHub への push
- GitHub からの fetch / pull
このプロジェクトでは、会社用 GitHub 認証と混ぜないため、GitHub への push は GitHub Desktop で行う。
Git
ソースコードのバージョン管理に使用する。
現在の設定:
- ブランチ:
main - リモート名:
origin - リモート URL:
https://github.com/harubsb/PersonalHomepage.git
GitHub
ソースコードの保存先。
- リポジトリ:
harubsb/PersonalHomepage - 公開範囲: private
- 用途: バージョン管理、Cloudflare Pages との連携
構築環境
Node.js
Astro や npm パッケージを実行するために使用する。
確認時点のバージョン:
v24.11.1
npm
Node.js のパッケージ管理に使用する。
確認時点のバージョン:
11.6.2
主な用途:
- 依存関係のインストール
- 開発サーバーの起動
- ビルドの実行
フレームワーク・ライブラリ
Astro
個人サイト本体を作るためのフレームワーク。
採用理由:
- 軽量
- 静的サイト生成に向いている
- 学習しやすい
- Cloudflare Pages にデプロイしやすい
package.json での指定:
"astro": "^6.3.8"
TypeScript
Astro の型定義や設定に使用する。
package.json での指定:
"typescript": "^5.8.3"
サイト構成
ページ
src/pages/index.astro
- トップページ
- 特番情報、上場企業情報、注目の飲食店、学習記録へのメニュー入口
src/pages/special-programs/
- 特番情報
- サンプル番組リスト
src/pages/listed-companies/
- 上場企業情報
- サンプル上場予定企業リスト
src/pages/restaurants/
- 注目の飲食店
- サンプル飲食店リストと、お気に入り保存機能
src/pages/notes/
- 個人ノート一覧、詳細ページ
src/pages/tech/
- 技術メモ一覧、詳細ページ
src/pages/learning/
- 学習記録一覧、詳細ページ
- docs/*.md の情報系ファイル一覧
src/pages/learning/docs/
- docs/*.md の情報系ファイル詳細ページ
src/pages/projects/
- プロジェクト文書一覧、詳細ページ
共通レイアウト
src/layouts/BaseLayout.astro
- 全ページ共通の HTML 構造、ヘッダー、ナビゲーション、フッター
スタイル
src/styles/global.css
- サイト全体の CSS
- トップページ専用のポップなヒーロー、メニューカード、ヘッダーメニューのスタイル
- トップページ専用の手書き風ブタ柄背景
- 注目の飲食店ページのカードリスト、お気に入り欄のスタイル
- 全ページ共通の固定ヘッダー
- メニューごとの背景テーマ
- ジャンル絞り込みボタンのスタイル
外部 CSS フレームワークは現時点では使っていない。
手動編集
文言、リンク、メニュー、デザインを手動で変更する場合は、次のドキュメントを参照する。
docs/編集マニュアル.md
コンテンツ
src/content/notes/
- 個人ノート
src/content/tech/
- 技術メモ
src/content/learning/
- 学習記録
src/content/projects/
- プロジェクト文書
Markdown ファイルを追加することで記事を増やす。
Content Collections
src/content.config.ts
- Astro の Content Collections 設定
- Astro 6 の Content Layer API に合わせて loader: glob(...) を使用
情報系ファイル表示
src/lib/projectDocs.ts
- docs/*.md をビルド時に読み込む処理。
- 学習記録ページの「サイト制作メモ」一覧と、詳細ページ表示に使用する。
src/pages/learning/docs/[slug].astro
- docs/*.md の本文をサイト上で閲覧するための詳細ページ。
.md 以外のファイル、たとえば .pptx は現時点では本文表示の対象外。
npm コマンド
開発サーバー
npm run dev
Astro の開発サーバーを起動する。
ビルド
npm run build
静的サイトを dist/ に生成する。
プレビュー
npm run preview
ビルド後のサイトをローカルで確認する。
チェック
npm run check
現在は astro build と同じ処理を実行する。
デプロイ
Cloudflare Pages
Astro サイトの本番公開先。
現在の設定:
- プロジェクト名:
personalhomepage - 公開 URL:
https://personalhomepage-1w7.pages.dev - GitHub リポジトリ:
harubsb/PersonalHomepage - プロダクションブランチ:
main - フレームワークプリセット:
Astro - ビルドコマンド:
npm run build - 出力ディレクトリ:
dist
GitHub の main ブランチに変更が push されると、Cloudflare Pages が自動でビルドして公開する。
自動更新予定
将来的に Codex のスケジュール機能で、次のページを定期更新することを検討する。
src/pages/special-programs/index.astro
- 特番情報。
- 現時刻から19時〜24時の間で放映される特別番組を対象にする。
- 毎週放送の番組は除外する想定。
src/pages/listed-companies/index.astro
- 上場企業情報。
- 上場予定企業の情報を対象にする。
src/pages/restaurants/index.astro
- 注目の飲食店。
- 福岡県小倉周辺の新店、リニューアル店舗などを対象にする。
- 現時点ではサンプルデータを表示し、気になった店はブラウザの localStorage にお気に入り保存する。
- ジャンルボタンで表示/非表示を切り替える。
src/pages/recommended-inns/index.astro
- お勧め宿。
- 関西エリア限定で、ご飯が美味しいことを最優先に宿を候補化する。
- 料理根拠リンクと最安プラン確認リンクを分けて掲載する。
- 気になった宿はブラウザの localStorage にお気に入り保存する。
実際に自動化する前に、情報取得元、更新頻度、掲載項目、自動 commit / push 方針を決める。
GitHub Desktop 運用
このプロジェクトの基本運用:
1. Codex が作業する。
2. Codex が docs/作業履歴.md を更新する。
3. Codex がローカルコミットを作成する。
4. ユーザーが GitHub Desktop で Push origin を押す。
5. Cloudflare Pages が自動でビルドし、https://personalhomepage-1w7.pages.dev に反映する。
ユーザーが手動でファイルを変更した場合:
1. GitHub Desktop の Changes を確認する。
2. Summary にコミットメッセージを書く。
3. Commit to main を押す。
4. Push origin を押す。
5. Cloudflare Pages のデプロイ完了後、公開 URL を確認する。
Git 管理しないもの
.gitignore で除外している主なもの:
node_modules/dist/.astro/.env.env.*astro-dev*.log
関連ドキュメント
docs/作業履歴.md
- 実施した作業の記録
docs/GitHubDesktop運用.md
- GitHub Desktop を使う運用方針
docs/GitHubDesktop操作方法.md
- GitHub Desktop の基本操作
docs/編集マニュアル.md
- 手動でサイトを編集するための参照先
Codex プロジェクト設定
Web 参照
2026-06-07 時点で、.codex/config.toml から Web 検索の許可ドメイン制限を削除した。
以前は次の設定により、Codex の Web 参照先が github.com / raw.githubusercontent.com に限定されていた。
[tools]
web_search = { allowed_domains = ["github.com", "raw.githubusercontent.com"] }
この制限を削除したため、実データ収集時に JPX、Cloudflare、番組表サイト、飲食店情報サイトなどの公式サイトを参照できる想定。
Astro Dev Toolbar
2026-06-07 時点で、astro.config.mjs に以下を設定し、Astro Dev Toolbar を無効化している。
devToolbar: {
enabled: false,
}
理由は、Windows 環境で npm run dev 実行時に Dev Toolbar 関連の依存最適化が走り、Cannot read directory "../..": Access is denied. が発生するため。公開サイトには不要な開発補助機能なので無効化している。
2026-06-07 時点では、npm run build は成功する一方、npm run dev では同じ Dev Toolbar 関連の依存最適化エラーが継続している。表示確認は必要に応じて npm run build 後に npm run preview で行う。
各メニューのリスト更新ルール
「注目の飲食店」「特番情報」「上場企業情報」「お勧め宿」は、毎日更新しても前日のリストをすぐ削除しない。
- 追加日ごとのグループで表示する。
- 7日分を保持する。
- 8日目以降は最も古い追加日グループから削除する。
- 注目の飲食店のお気に入りはブラウザの
localStorageに保存するため、通常リストから消えてもお気に入り欄に残せる。 - 特番情報、上場企業情報、お勧め宿も同じくブラウザの
localStorageにお気に入りを保存する。
ヘッダーメニュー
ヘッダーのリンクは「メニュー」ボタンにまとめている。
- ピックアップ情報
- 注目の飲食店
- 特番情報
- 上場企業情報
- お勧め宿
- 成果物
- 学習記録
フィルタ保存
各リストページのフィルタは通常非表示で、開閉状態とオン/オフ状態をブラウザの localStorage に保存する。
- 注目の飲食店
- お気に入り: personalHomepage.favoriteRestaurants
- フィルタ状態: personalHomepage.restaurantFilters
- フィルタ開閉: personalHomepage.restaurantFiltersOpen
- 特番情報
- お気に入り: personalHomepage.favoritePrograms
- フィルタ状態: personalHomepage.programFilters
- フィルタ開閉: personalHomepage.programFiltersOpen
- 上場企業情報
- お気に入り: personalHomepage.favoriteCompanies
- フィルタ状態: personalHomepage.companyFilters
- フィルタ開閉: personalHomepage.companyFiltersOpen
- お勧め宿
- お気に入り: personalHomepage.favoriteInns
- フィルタ状態: personalHomepage.innFilters
- フィルタ開閉: personalHomepage.innFiltersOpen
ピックアップ日次更新ルール
docs/ピックアップ更新ルール.md
- 4つのピックアップページを毎日更新する際の基準
- 7日保持、重複回避、再掲条件、ソース選定ルールを記録
.codex/skills/daily-pickup-update/SKILL.md
- Codex が日次更新を回すためのローカル skill
- 当日グループ追加、重複禁止、ドキュメント更新、ビルド確認までを明記