add publish infrastructure and update docs for public release

- publish/manifest: explicit file allowlist for public repo
- publish/CLAUDE.md: sanitized version (no personal data paths)
- publish/extract_config.example.yaml: generic paths and owner
- publish.sh: orphan-branch publish script (single squashed commit)
- site/.env.example: documents BINCIO_DATA_DIR and PUBLIC_EDIT_URL
- README.md: updated pipeline diagram, quick start, project layout
- CHEATSHEET.md: added bincio render and bincio edit sections,
  sidecar format reference, updated daily workflow
This commit is contained in:
Davide Scaini
2026-03-29 16:07:06 +02:00
parent 547105550b
commit 6fa7e2bea3
7 changed files with 460 additions and 23 deletions
+16 -8
View File
@@ -19,9 +19,10 @@ GPX / FIT / TCX files
~/bincio_data/ ← BAS data store. Human-readable JSON + GeoJSON.
edits/*.md ← Optional sidecar edits (titles, descriptions, photos).
bincio render / npmAstro build. Reads JSON, writes static HTML/JS/CSS.
bincio render Merges sidecars → _merged/. Runs Astro build.
site/dist/ ← Drop anywhere. Open index.html. Done.
@@ -46,17 +47,19 @@ bincio extract
# 4. Build the site (requires Node >= 20)
cd site && npm install
ln -sf ~/bincio_data public/data
npm run build
cp .env.example .env # configure BINCIO_DATA_DIR
bincio render # merges edits + runs astro build
# → open site/dist/index.html
```
For live development with hot reload:
```bash
cd site
ln -sf ~/bincio_data public/data
npm run dev
bincio render --serve # merges edits, links data, starts astro dev
# → http://localhost:4321
# Optional: enable the activity edit UI
bincio edit # starts edit server on http://localhost:4041
# Set PUBLIC_EDIT_URL=http://localhost:4041 in site/.env
```
---
@@ -207,7 +210,11 @@ bincio/ Python package
strava_csv.py Strava activities.csv reader
writer.py BAS JSON + GeoJSON writer
render/
cli.py `bincio render` stub
cli.py `bincio render` — merge + astro build/serve
merge.py sidecar edit overlay (produces _merged/)
edit/
cli.py `bincio edit` — local edit server
server.py FastAPI write API for the edit drawer
schema/
bas-v1.schema.json JSON Schema for BAS format
SCHEMA.md Human-readable BAS specification
@@ -219,10 +226,11 @@ site/ Astro project
stats/index.astro Yearly heatmaps + totals
components/
ActivityFeed.svelte Card grid, sport filter, pagination
ActivityDetail.svelte Map + stats + charts
ActivityDetail.svelte Map + stats + charts + photo gallery
ActivityMap.svelte MapLibre GL map
ActivityCharts.svelte Observable Plot charts
StatsView.svelte Heatmap, percentile scaling, sport filter
EditDrawer.svelte Slide-in activity editor
lib/
types.ts BAS TypeScript types
format.ts Formatting helpers