Skip to content

tecolicom/OMC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OMC — 奥武蔵マウンテンバイク友の会 活動データの保管庫

このフォルダは、奥武蔵マウンテンバイク友の会の活動の記録を残し、会のカレンダーを管理するための保管庫です。 プログラムやインターネットの仕組みの知識がなくても、ここに「何が・なぜ入っているか」が分かるように書いてあります。


このフォルダは何のためにある?

会の活動は、これまで会のブログ(okumusashimtb.wixsite.com/omcweb)に 「お知らせ」と「報告」として書き続けてきました。このフォルダは、その活動の情報をもとに 2 つのことをしています。

  1. 活動の記録を、将来にわたって手元に残す。 ブログのサービス(Wix)がいつか使えなくなっても、これまでの活動の文章・写真のありか・日付が 会の手元のデータとして残るようにしています。

  2. 会のウェブサイトと Google カレンダーを、この記録からつくる。 活動の記録と写真から、会のウェブサイト(tecolicom.github.io/OMC/)を 公開しています。活動は会の Google カレンダー(okumusashi.mtb@gmail.com)にも登録し、 このカレンダーはウェブサイトや「街てこり」(city.tecoli.com)の会のページに表示しています。

つまり、「ブログに書いた活動」→「会の記録」→「ウェブサイト・カレンダー」 という流れを支える場所です。


全体の流れ(図)

   会のブログ (Wix)                このフォルダ (OMC)                   外に見せるもの
  ─────────────         ──────────────────            ───────────────
  お知らせ / 報告  ──①──▶  活動の記録・記事・写真の控え   ──②──▶  会のウェブサイト
  (文章・写真)            + ウェブサイトのソース (site/)    │       tecolicom.github.io/OMC/
                                                            └──▶  会の Google カレンダー
                                                                   └─▶ city.tecoli.com の会のページ
  • ブログの記事を読み取って、活動ごとの記録・記事の控え・写真としてここに整理して保存します。
  • その記録から、会のウェブサイトを組み立てて公開し、会の Google カレンダーに予定を登録します。 カレンダーはウェブサイトにも表示されます。

この①②は**自動で行う道具(プログラム)**が用意されていて、担当者が動かすと最新の状態に更新されます (動かし方は末尾の「維持担当者向け」を参照)。


中に入っているもの

おおまかに、次のものが入っています(細かいファイルは気にしなくて大丈夫です)。

場所 中身 ひとことで言うと
calendar/events/ 活動ごとの記録(年ごとのフォルダ、1 活動 1 ファイル) いつ・何の活動をしたかの一覧(2017〜2026年)
calendar/sources/blog/ ブログ記事を 1 本ずつ控えたもの(本文・写真のリンク・記事のリンク) ブログ全記事の控え(約 360 本)。将来の引っ越し用の保全
calendar/snapshots/ Google カレンダーに登録した内容の控え カレンダーのバックアップ
calendar/bin/ ①②を行う道具(プログラム) 更新を実行する道具(担当者が使う)
site/ 会のウェブサイト(tecolicom.github.io/OMC/)のソース 公開サイトの中身(活動一覧・写真・カレンダー)
idea.yaml 会の基本情報(名前・公式サイト・カレンダーの場所) 会のプロフィール
docs/ 設計や作業のメモ 作った人向けの記録

活動の記録(calendar/events/)の中身の例

1 つの活動は、こんな内容で記録されています(日付・活動名・関連するブログ記事へのリンクなど)。

活動名:名栗じてんしゃ広場定期作業
日付:2025-08-03
関連記事:
  - お知らせ(事前の案内)→ ブログ記事へのリンク
  - 報告(活動のようす)→ ブログ記事へのリンク
  - 写真:ブログに載せた写真のありか

「お知らせ」と「報告」のように同じ活動の複数の記事は、1 つの活動にまとめて記録しています。


カレンダーとウェブサイトについて

  • 会のウェブサイトtecolicom.github.io/OMC/)で、これまでの活動を 写真つきで公開しています。トップには今後の予定(会の Google カレンダー)も表示しています。 中身は site/ のソースから作られ、main に反映すると自動で公開されます(詳しくは site/README.md)。
  • 会の Google カレンダーokumusashi.mtb@gmail.com)には、ここの記録から過去の活動が登録済みです。 今後の新しい活動も、ブログに書いて担当者が更新すれば、同じように追加されます。
  • 街てこり(city.tecoli.com) にも会のページ https://city.tecoli.com/ideas/okumusashi-mtb/ があり、 上記カレンダーの今後の予定が表示されます(過去の予定はカレンダーアプリ側で見られます)。
  • すでにカレンダーに手で入れていた予定は、タイトルと時間はそのまま残し、説明(ブログ本文や記事リンク)だけを 足しています。会とは別の団体の予定(同じ日に入っていたもの)は触っていません

こまったとき・引き継ぎ

  • このフォルダ自体は「記録と道具の置き場」です。普段ブログを書く分には、ここを触る必要はありません。
  • 「カレンダーやウェブサイトに最新の活動を反映したい」ときは、維持担当者が下記の道具を動かします。
  • 技術的なことが分かる人が変わるときは、この README と docs/、各道具の説明を引き継いでください。

維持担当者向け(技術メモ)

ここから先は、実際に更新作業を行う担当者向けです。コマンド操作(ターミナル)と Python が必要です。

道具(calendar/bin/

道具 役割
cal-omc-blog-fetch ブログの RSS(最新分) から活動記録を作る
cal-omc-archive-fetch ブログの 全記事(サイトマップ経由) から活動記録・記事控え(sources/blog/)を作る
dedupe-chrome-images 記事控えの写真から、全ページ共通のサムネ(会と無関係な画像)を除く
cal-omc 活動記録を Google カレンダーへ反映(既定は確認のみ=書き込まない。--apply で実反映)
omc_parse.py / omc_project.py 上記が使う内部処理(直接は実行しない)

よく使う手順(make で実行)

リポジトリ直下で make を使います。make help で一覧が出ます。

make help              # できる操作の一覧を表示

make update            # ブログから活動記録を更新(全記事+写真の整理)
make calendar          # カレンダー反映の「確認」だけ(書き込まない)
make calendar-apply    # カレンダーへ実際に反映する
make test              # 動作テスト
make push              # 変更を GitHub に送る(コミットは別途)

# 年を絞る例:  make calendar-apply YEAR=2025

通常は make updatemake calendar(確認)→ make calendar-apply の順です。

ウェブサイト(site/

site/ は Astro 製の静的サイト。calendar/ のデータと取り込み済みの写真からページを生成します。 Node は nodenv 管理で .node-version(22.22.2、Astro 7 は Node ≥22.12 が必要)。

make site-dev      # ローカルで表示を確認(http://localhost:4321/OMC/)
make site-build    # 本番ビルド(site/dist/ に出力)
make site-photos   # 不足している写真をブログから取り込む

main に push すると GitHub Actions(.github/workflows/deploy-site.yml)が自動でビルドし、 GitHub Pages(https://tecolicom.github.io/OMC/)に公開します。詳しくは site/README.md

Google カレンダーの注意点

  • Google カレンダーへの書き込みには、サービスアカウントの鍵(~/.config/omc/sa.json)と、 カレンダーをそのアカウントに「予定の変更」権限で共有しておくことが必要です。
  • cal-omciCalUID(omc-<日付>@okumusashi-mtb で重複を防ぐので、何度実行しても予定は二重になりません。
  • ウェブサイト(city.tecoli.com)への会の登録は、city.tecoli.com の管理画面で行います (このフォルダから city.tecoli.com 側のファイルは触りません)。

詳しい設計は docs/superpowers/specs/docs/superpowers/plans/ にあります。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors