- Replace 'Shared feed-map partial' section with 'entry-map' partial + the single MapUtils.initEntryMap map path - Trip architecture: two content subfolders (dailies/stories as inert routable:false containers); map/stats inline on trip page - Fix stale references to deleted map/stats/dailies/stories templates in architecture.md (template list, page tree, GPX flow) and trip-switching.md (scaffold + verify steps) - Correct GPX rendering: toGeoJSON bundled in map.js, no leaflet CDN - Pre-launch smoke test now checks the trip page feed, not /dailies Left docs/working/* (milestones, learnings, QA, plans) as point-in-time history. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
88 lines
3.2 KiB
Markdown
88 lines
3.2 KiB
Markdown
# Switching to a New Trip
|
|
|
|
When you start a new trip, **two files must be updated together** — if only one is changed, new entries will be posted to the wrong folder silently (no error, wrong trip).
|
|
|
|
---
|
|
|
|
## Checklist
|
|
|
|
- [ ] Update `user/config/site.yaml` → `active_trip`
|
|
- [ ] Update `user/pages/02.post/post-form.md` → `pageconfig.parent`
|
|
- [ ] Create the new trip page tree (see below)
|
|
- [ ] Run `make content-push` to push the changes to production
|
|
|
|
---
|
|
|
|
## Step 1 — Update site.yaml
|
|
|
|
In `user/config/site.yaml`, set `active_trip` to the new trip slug:
|
|
|
|
```yaml
|
|
active_trip: japan-korea-2026 # ← change this
|
|
```
|
|
|
|
The slug must exactly match the folder name under `user/pages/01.trips/`.
|
|
|
|
---
|
|
|
|
## Step 2 — Update post-form.md
|
|
|
|
In `user/pages/02.post/post-form.md`, set `pageconfig.parent` to the new dailies path:
|
|
|
|
```yaml
|
|
pageconfig:
|
|
parent: /trips/japan-korea-2026/dailies # ← change this
|
|
```
|
|
|
|
**Why both?** Grav's config and page frontmatter are static YAML — no variable substitution is possible, so `post-form.md` can't read from `site.yaml` automatically. They must match manually.
|
|
|
|
**What breaks if they're out of sync:** `active_trip` controls which trip page is featured on the home page and trip page. `pageconfig.parent` controls where new entries land. If they differ, new posts go to the old trip's dailies folder while the home page shows the new trip — entries appear to vanish.
|
|
|
|
---
|
|
|
|
## Step 3 — Create the new trip page tree
|
|
|
|
Create the two content subfolders under `user/pages/01.trips/<new-slug>/`:
|
|
|
|
```
|
|
user/pages/01.trips/japan-korea-2026/
|
|
├─ trip.md ← title, date_start, date_end, cover_image, album_url
|
|
├─ 01.dailies/
|
|
│ └─ dailies.md ← inert container: template: default, routable: false, visible: false
|
|
└─ 04.stories/
|
|
└─ stories.md ← inert container: template: default, routable: false, visible: false
|
|
```
|
|
|
|
Copy these files from an existing trip and update the frontmatter (especially `title` and `date_start` in `trip.md`).
|
|
|
|
> The `02.map/` and `03.stats/` standalone views were retired (2026-07-04) — the map and stats render inline on the trip page. The `01.dailies/` and `04.stories/` folders now exist only as data containers holding the entry/story children; their own routes are non-routable.
|
|
|
|
Fields in `trip.md` to update:
|
|
|
|
| Field | Example | Notes |
|
|
|---|---|---|
|
|
| `title` | `Japan & Korea 2026` | Displayed in nav and trip header |
|
|
| `date_start` | `2026-07-15` | Used for "X days on the road" stat |
|
|
| `date_end` | *(leave blank while travelling)* | Set when you return |
|
|
| `cover_image` | `cover.jpg` | Shown on the trips listing page |
|
|
| `album_url` | `https://...` | Optional external album link |
|
|
|
|
---
|
|
|
|
## Step 4 — Push
|
|
|
|
```bash
|
|
make content-push
|
|
```
|
|
|
|
This commits and pushes the `user/` repo to Gitea. The webhook triggers a production pull automatically.
|
|
|
|
---
|
|
|
|
## Verify
|
|
|
|
After pushing, check:
|
|
1. Home page shows the new trip (title and date)
|
|
2. Submit a test entry via `/post` — verify it lands under `user/pages/01.trips/<new-slug>/01.dailies/` and appears in the feed at `/trips/<new-slug>`
|
|
3. The inline map on `/trips/<new-slug>` shows the correct (empty or GPX-only) state
|