@@ -15,18 +15,23 @@ bundle install
1515```
1616
1717### データ更新
18- ``` bash
19- # 全世界のDojoデータを取得(Clubs APIから)
20- bundle exec rake get_data_from_earth
21-
22- # 日本のDojoとイベントデータを取得(CoderDojo Japan APIから)
23- bundle exec rake get_data_from_japan
2418
25- # ロゴ画像をダウンロードしてWebP形式でキャッシュ
26- bundle exec rake cache_dojo_logos
19+ ** 重要** : Jekyll 4.3以降、` jekyll build ` 実行時に自動的にデータ更新タスクが実行されます(` _plugins/build_hooks.rb ` )。
2720
28- # GeoJSONファイルを生成(全データを統合)
29- bundle exec rake upsert_dojos_geojson
21+ ``` bash
22+ # 推奨: jekyll buildで全て自動実行
23+ bundle exec jekyll build
24+ # → 自動的に以下が実行されます:
25+ # - cache_dojo_logos
26+ # - upsert_dojos_geojson
27+ # - compact_geojson
28+
29+ # または個別実行(必要な場合のみ)
30+ bundle exec rake get_data_from_earth # 全世界のDojoデータ取得
31+ bundle exec rake get_data_from_japan # 日本のDojoとイベントデータ取得
32+ bundle exec rake cache_dojo_logos # ロゴ画像キャッシュ
33+ bundle exec rake upsert_dojos_geojson # GeoJSON生成
34+ bundle exec rake compact_geojson # GeoJSON圧縮
3035```
3136
3237### 開発・ビルド・テスト
@@ -55,11 +60,53 @@ bundle exec rake test
55603 . ** 画像最適化** : ロゴ画像を効率的に配信
5661 - ` cache_dojo_logos.rb ` : ロゴ画像をダウンロードしてWebP形式に変換
5762
63+ ### Jekyllビルドフック(自動データ更新)
64+
65+ ` _plugins/build_hooks.rb ` により、` jekyll build ` または` jekyll server ` 実行時に自動的に以下のタスクが実行されます:
66+
67+ ``` ruby
68+ # Jekyll::Hooks.register :site, :after_init
69+ 1 . upsert_dojos_geojson # GeoJSON生成
70+ 2 . compact_geojson # GeoJSON圧縮(22.9%削減)
71+ 3 . cache_dojo_logos # Dojoロゴキャッシュ
72+ ```
73+
74+ ** メリット** :
75+ - ✅ ローカル開発でも本番環境でも一貫した動作
76+ - ✅ ` dojo2dojo.csv ` 更新後、` jekyll build ` だけで自動反映
77+ - ✅ 手動でのRakeタスク実行が不要
78+
79+ ** 実行ログ例** :
80+ ```
81+ 🔄 Running pre-build tasks...
82+ → Updating dojos.geojson...
83+ → Creating dojos.min.geojson...
84+ ✅ Created dojos.min.geojson (22.9% reduction)
85+ → Caching dojo logos...
86+ ✅ Pre-build tasks completed
87+ ```
88+
5889### 自動更新システム
90+
5991GitHub Actionsで毎日自動更新(日本時間 5:59):
60921 . データ取得スクリプトを実行
61- 2 . 変更があれば自動コミット
62- 3 . GitHub Pagesへ自動デプロイ
93+ 2 . Jekyllビルド(プラグインが自動的にGeoJSON生成・圧縮)
94+ 3 . テスト実行(安全性確認)
95+ 4 . 変更があれば自動コミット
96+ 5 . GitHub Pagesへ自動デプロイ
97+
98+ ** ワークフローの手動実行** :
99+ ``` bash
100+ # scheduler_daily.yml(データ更新+デプロイ)
101+ gh workflow run scheduler_daily.yml
102+
103+ # deploy_to_pages.yml(デプロイのみ)
104+ gh workflow run deploy_to_pages.yml
105+
106+ # 実行状況確認
107+ gh run list --workflow=scheduler_daily.yml --limit 3
108+ gh run watch # リアルタイム監視
109+ ```
63110
64111### 地図表示
65112- ** Geolonia Maps** : 日本に最適化された地図タイルサービス
@@ -68,10 +115,14 @@ GitHub Actionsで毎日自動更新(日本時間 5:59):
68115- マーカークリックでポップアップ表示(名前、説明、連絡先、イベント情報)
69116
70117### 主要ファイル
71- - ` dojos_earth.json ` : Clubs APIから取得した全世界のDojoデータ
72- - ` dojos_japan.json ` : CoderDojo Japan APIから取得した日本のDojoデータ
73- - ` events_japan.json ` : 日本のイベントデータ
74- - ` dojos.geojson ` : 地図表示用の統合データ(GeoJSON形式)
118+ - ` _data/dojos_earth.json ` : Clubs APIから取得した全世界のDojoデータ
119+ - ` _data/dojos_japan.json ` : CoderDojo Japan APIから取得した日本のDojoデータ
120+ - ` _data/events_japan.json ` : 日本のイベントデータ
121+ - ` _data/dojo2dojo.json ` : dojo2dojo.csvから生成されたマッピングデータ
122+ - ` dojo2dojo.csv ` : Japan APIとClubs APIの名前マッピング(編集可能)
123+ - ` dojos.geojson ` : 地図表示用の統合データ(GeoJSON形式、人間が読める形式)
124+ - ` dojos.min.geojson ` : 圧縮版GeoJSON(本番環境で使用、22.9%削減)
125+ - ` _plugins/build_hooks.rb ` : Jekyllビルド時の自動データ更新フック
75126- ` images/dojos/*.webp ` : 各Dojoのロゴ画像(WebP形式で最適化)
76127
77128### テスト戦略
@@ -195,15 +246,35 @@ o3の検索結果を使用する際は必ず:
1952463 . ** 問題の特定と修正**
196247 - Clubs APIでの登録名と完全一致するようにdojo2dojo.csvを修正
197248 - 例:「Coderdojo Saga」vs「Saga」のような不一致を修正
198-
199- 4 . ** GeoJSONの再生成 **
249+
250+ 4 . ** マッピング追加とGeoJSON再生成 **
200251 ``` bash
252+ # dojo2dojo.csvに追加(例: すぎなみ)
253+ echo " すぎなみ Suginami" >> dojo2dojo.csv
254+
255+ # jekyll buildで自動的にGeoJSON再生成(推奨)
256+ bundle exec jekyll build
257+
258+ # または個別実行
201259 bundle exec rake upsert_dojos_geojson
260+ bundle exec rake compact_geojson
202261 ```
203262
2042635 . ** 結果の確認**
205264 ``` bash
265+ # GeoJSONに含まれているか確認
206266 grep " 対象Dojo名" dojos.geojson
267+
268+ # ローカルで地図表示確認
269+ bundle exec jekyll server
270+ # http://localhost:4000/ で確認
271+ ```
272+
273+ 6 . ** 変更をコミット**
274+ ``` bash
275+ git add dojo2dojo.csv _data/dojo2dojo.json dojos.geojson
276+ git commit -m " CoderDojo XXXのマッピングを追加"
277+ git push origin main
207278 ```
208279
209280### よくあるマッピング問題
0 commit comments