bmf-tech.com のソースリポジトリ。 gohan 製の静的サイトで、Cloudflare Pages でホスティングしている。
| レイヤー | 使用技術 |
|---|---|
| 静的サイトジェネレーター | gohan |
| ホスティング | Cloudflare Pages |
| CI/CD | GitHub Actions |
| CSS フレームワーク | sleyt |
| 言語 | Go (ツール類), HTML/CSS (テーマ) |
.
├── .github/workflows/deploy.yml # Cloudflare Pages デプロイワークフロー
├── assets/
│ └── images/posts/ # 記事内画像 (外部→ローカル移行済み)
├── content/
│ ├── en/
│ │ ├── posts/ # 英語記事
│ │ ├── about.md # About ページ
│ │ ├── picks.md # picks ページ(curated 記事インデックス)
│ │ ├── privacy-policy.md # プライバシーポリシー
│ │ ├── categories.yaml # カテゴリ定義
│ │ └── tags.yaml # タグ定義
│ └── ja/
│ ├── posts/ # 日本語記事
│ ├── about.md # About ページ(JA)
│ ├── picks.md # picks ページ(JA)
│ ├── privacy-policy.md # プライバシーポリシー(JA)
│ ├── categories.yaml # カテゴリ定義(JA)
│ └── tags.yaml # タグ定義(JA)
├── docs/
│ └── DESIGN_DOC.md # 設計ドキュメント
├── public/ # ビルド出力 (.gitignore済み)
├── themes/default/
│ └── templates/ # HTMLテンプレート
├── _redirects # Cloudflare Pages リダイレクトルール
└── config.yaml # gohan 設定
# リポジトリをクローン
git clone git@github.com:bmf-san/bmf-tech.git
cd bmf-tech
# gohan をインストール
make install-gohan# サイトをビルド
make build
# ローカルサーバーを起動 (http://localhost:1313)
make serve記事の作成・フロントマター・ブランチ運用については CONTRIBUTING.md を参照。
| コンテンツ | URL |
|---|---|
| 英語記事 | /posts/{slug}/ |
| 日本語記事 | /ja/posts/{slug}/ |
| picks | /picks/ |
| About | /about/ |
| プライバシーポリシー | /privacy-policy/ |
| タグ別記事一覧 | /tags/{name}/ |
| カテゴリ別記事一覧 | /categories/{name}/ |
| アーカイブ | /archives/{year}/{month}/ |
main ブランチへの push で自動デプロイ。
sequenceDiagram
participant Dev as Developer
participant GH as GitHub
participant GA as GitHub Actions
participant CF as Cloudflare Pages
Dev->>GH: git push origin main
GH->>GA: trigger workflow
GA->>GA: gohan build → public/
GA->>GA: cp _redirects public/
GA->>CF: wrangler pages deploy public/
CF-->>GA: deploy complete
CI フロー(.github/workflows/deploy.yml):
- GitHub Actions (ubuntu ランナー) が
gohan buildを実行しpublic/を生成 _redirectsをpublic/へコピーwrangler pages deploy publicでpublic/を Cloudflare Pages へダイレクトアップロード
Cloudflare Pages 側ではビルドを行わない。ビルドは GitHub Actions ランナー上で完結する。
assets/fonts/などgohan buildに必要なファイルはリポジトリに含める必要がある。
GitHub Secrets に設定が必要:
CLOUDFLARE_API_TOKEN— Cloudflare API トークン (Pages:Edit 権限)CLOUDFLARE_ACCOUNT_ID— Cloudflare アカウント ID
手動デプロイ: GitHub Actions の workflow_dispatch からトリガー可能。
CONTRIBUTING.md を参照。
コンテンツ (content/) は著作権保持。ソースコード (themes/) は MIT ライセンス。
