尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A week planner and daily log that reads and writes a Google Sheet. One page (index.html), no build step, hosted on GitHub Pages.
jcm-book-library.github.io.Gym ★), so no column was added; the app strips it when showing the type.paper_url row to the sheet's Settings tab.The data lives in Supabase (project jcm-apps, schema brain); switched over on 8 Nov 2026. A device can still pick Google Sheet (archive) in Settings → Where your data lives. Settings also has sign-in (email and password, which works in a home-screen app, or an emailed link), Check (reads both and says what differs) and Copy Supabase → Sheet, the weekly backup: it previews the changes, makes hidden dated backup tabs (Plan backup 2026-10-21, newest 3 per tab), writes only the cells that differ, and checks the result. Copy Sheet → Supabase is gone, so the archive can't overwrite live data. Settings, Routine, Goals and Links are edited on the Setup tab.
supabase/SETUP.mdsupabase/01-schema.sql. Row Level Security lets only the signed-in owner read or write their rows; signed-out visitors get nothing. The publishable key in index.html is meant to be public.row_id (the app's handle on a row), user_id and updated_at.| Tab | Columns |
|---|---|
| Plan | ID, Date, End, Time, Title, Category, Type, Done, Countdown, Notes |
| Routine | Day, Category, Time, Title, Active |
| Log | Date, Steps, KM, Active mins, Pages, Max °C, Min °C, Mood, Note |
| Goals | Year, Month, Steps, KM, Active mins, Pages |
| People | ID, Name, Birthday, Last seen, To see, See every (days), Notes, Groups, Links, Next catch-up, Time, Catch-up plan, Plan ID |
| Lists | ID, List, Item, Status, Added, Notes |
| Notes | ID, Date, Topic, Note |
| Links | Name, Category, URL, Pin, Order, Notes |
| Settings | Key, Value, Notes |
Birthdays saved without a year are stored as 1904 (for example 1904-10-17); the page hides that year. The sheet's Birthday column shows day and month only.
People: Groups is a comma-separated list (for example IV, HFP). Links connects people as ID:Relationship, separated by semicolons (for example p008:Partner; p016:Parent of). A link only needs to be on one person; the other side shows it in reverse. A planned catch-up also creates an item on the Plan tab; Plan ID keeps the two in step, so change or remove catch-ups from the Family & Friends tab on the page.
Keep the column order. Rows can be added, edited or sorted by hand in the sheet; the page finds rows by ID.
tools/test.js runs the page in headless Chromium against a fake, in-memory Sheets API:
NODE_PATH=$(npm root -g) node tools/test.js /tmp/shots
NODE_PATH=$(npm root -g) node tools/test-supabase.js /tmp/shots
NODE_PATH=$(npm root -g) node tools/test-copyback.js