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.