Dugout Value
Baseball research on pitching, hitting, and projections, plus tools for comparing players, contracts, and trade value.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Printable, week-numbered marathon training calendar. One self-contained HTML page: readiness-based plan, optional pace guidance, US/metric, landscape or portrait print. No dependencies, no tracking.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A free, printable training planner for the marathon and half marathon. Enter your current mileage and how you like to train, and it builds a week-by-week, readiness-based plan you can print, export to your calendar, and tick off as you go.
Live site: https://evansmith1377.github.io/physical-training-planner/
The page is a single index.html with no build step, no dependencies, and no network requests.
.ics file with every workout as an all-day event, for Google Calendar, Apple Calendar or Outlook. Re-importing the same plan doesn't create duplicates; if you change the plan, delete the old events first.All distances are calculated in miles and converted for display.
| Rule | Value |
|---|---|
| Weekly distance inputs | Usual 1–99 mi (2–160 km); peak 10–99 mi (16–160 km) |
| Low volume | Under 15 mi (24 km) a week: run/walk and no tempo or race-effort work. When a week can't give every run day 2 mi, the spare run days become brisk walks |
| Phase 1 (Stabilize) | 3 weeks at your current distance and long run (long run up to 55% of the week) |
| Weekly build | +8% per build week (min 1.5 mi, max 3 mi), up to your peak. From a tiny base (under 6 mi) the step is at most 25% of the week |
| Long run | +1 mi per build week at most and ≤ 50% of the week. Once at the peak, it alternates between the peak and about 85% of it. Capped at 20 mi (marathon), 14 mi (half), 16 mi (durability) |
| Cutback weeks | About 25% less distance and about 28% shorter long run, every 3rd or 4th week |
| Race-specific block | Marathon: up to 16 weeks including taper (warning below 14). Half: up to 12 (warning below 10) |
| Taper | Marathon, 3 weeks: 80% → 65% of peak → race week (2 weeks: 72% → race week). Half, 2 weeks: 75% → race week (1 week: race week only) |
| Quality | Strides in Phase 1 and cutbacks; progressive tempo in Phase 2; alternating tempo and race-effort sessions in Phase 3 |
| Minimum length | Marathon 10 weeks, half 8, durability 6 |
When inputs conflict, the page shows a warning instead of silently adjusting. Examples: a plan too short or too long, a rest day on the long-run day, a peak below your current mileage, weekday runs longer than the long run (high volume on few days), a taper that doesn't fit the goal, out-of-range values from a shared link, a race date that has passed, or a projected base that misses the readiness gate.
Paces use the Daniels/Gilbert race-equivalency equations: easy covers about 62–70% of aerobic capacity and tempo about 88%. The race-effort range is the predicted pace plus a buffer of 15 s/mi for the marathon or 6 s/mi for the half. These formulas tend to be optimistic for first marathons, and the page says so.
The site needs nothing to run. The tests use Python (CI runs 3.14; 3.12 or newer works locally), pytest and Playwright (with axe-core for accessibility):
pip install -r requirements-dev.txt
python -m playwright install chromium
pytest -q
The suite serves the page over local HTTP, so the Content Security Policy applies, and fails on any console error or warning, and on any Python warning. It covers layout from 320 to 1280 px, units, shared links (including hostile ones), each goal, dates and calendar export, checkmarks, print sizes, plan invariants across many settings, and serious accessibility violations.
| Script | Purpose |
|---|---|
python scripts/csp_hash.py | Update the CSP hash after editing the inline <script> (--check is used in CI) |
python scripts/screenshots.py | Regenerate assets/og-image.png and the README screenshots |
CI and deploy: every pull request runs the tests (.github/workflows/ci.yml). Each merge to main runs them again and deploys index.html and assets/ to GitHub Pages (.github/workflows/deploy.yml). Actions are pinned to commit SHAs, and Dependabot proposes one grouped update PR per month for the actions and one for the test dependencies, skipping releases less than a week old. One-time setup: Settings → Pages → Build and deployment → Source: GitHub Actions.
Branch protection: .github/rulesets/main.json is a repository ruleset for main: changes land only through a squash-merged pull request with the test check passing on an up-to-date branch and all review threads resolved, and the branch can't be force-pushed or deleted. GitHub doesn't apply it automatically. Import it once under Settings → Rules → Rulesets → New ruleset → Import a ruleset.
To host the page elsewhere, copy index.html and the assets/ folder to any static host. If the address changes, update the canonical and og: URLs in index.html.
See CONTRIBUTING.md to propose changes, and CLAUDE.md for the code map and conventions.
Current versions of Chrome, Edge, Firefox, and Safari. The ⓘ info bubbles use the native Popover API, with a script fallback for older browsers.
General fitness guidance only. This is not medical advice, and it does not replace an individualized plan from a coach, clinician, or sports dietitian.
Released into the public domain under the Unlicense.