4.3 KiB
Posting a Journal Entry
Two ways to post: the mobile form at /post (quick, phone-friendly) or the Admin panel at /admin (drafts, scheduling, editing).
Quick start — mobile form
- Open
/poston your phone (login required) - Fill in Title and Content (required)
- Tap Get Location → fills Lat/Lng automatically
- Tap Get Weather → fills weather fields using your coordinates
- Type City and Country (optional but nice)
- Attach photos (optional) — first photo becomes the hero image
- Tap Submit → entry appears in the feed immediately
Form fields reference
| Field | Required | Notes |
|---|---|---|
| Title | ✅ | Entry headline |
| Content | ✅ | Markdown body |
| Date | ✅ | Defaults to now — adjust if posting later |
| Lat / Lng | — | Filled by Get Location; used for map marker |
| City | — | Shown as 📍 Kyoto, Japan on feed cards |
| Country | — | Combined with City in location badge |
| Weather | — | Filled by Get Weather (Open-Meteo, free, no key) |
| Photos | — | All uploaded files appear in the gallery; first = hero |
Weather descriptions (must be one of these if entered manually):
Sunny · Partly cloudy · Cloudy · Foggy · Drizzle · Rain · Snow · Thunderstorm
How it works (for debugging)
Browser → /post (post-form.md)
└─ Grav Form plugin validates fields
└─ add-page-by-form plugin
├─ reads pageconfig.parent (/trips/<active_trip>/dailies)
├─ writes user/pages/01.trips/<active_trip>/01.dailies/<slug>/entry.md
└─ moves uploaded photos into the page folder
└─ cache-on-save plugin
└─ calls $grav['cache']->deleteAll() → entry visible immediately
└─ form shows success message
Slug format: <YYYY-MM-DD-HHmm>-<slugified-title>.entry
Example: 2026-07-20-0930-first-day-in-kyoto.entry
Entry folder structure:
user/pages/01.trips/japan-korea-2026/01.dailies/
└─ 2026-07-20-0930-first-day-in-kyoto.entry/
├─ entry.md ← frontmatter + markdown body
├─ temple.jpg ← hero image (or set hero_image in frontmatter)
└─ market.jpg ← additional gallery image
Admin panel — drafts and scheduling
Use the Admin panel at /admin for drafts, scheduled posts, or editing existing entries.
- Log in at
/admin - Pages → Add Page
- Set Parent Page to
/trips/<active_trip>/dailiesand Template toentry - Fill in the Entry tab (city, country, lat/lng, weather)
- Write content in the Content tab
- Upload photos in the Media tab
- Drafts: set
published: false— won't appear until you flip it totrue - Scheduling: set
publish_datein Options → Scheduling - Save
The Admin form fields are defined by user/themes/intotheeast/blueprints/entry.yaml.
Frontmatter reference
Every entry supports these frontmatter fields:
| Field | Type | Notes |
|---|---|---|
title |
string | Required |
date |
datetime | Format: Y-m-d H:i (e.g. 2026-06-17 10:00) |
template |
string | Always entry |
published |
bool | true to show in feed |
lat |
string | Decimal degrees (e.g. 52.3676) |
lng |
string | Decimal degrees (e.g. 4.9041) |
location_city |
string | e.g. Kyoto |
location_country |
string | e.g. Japan |
weather_desc |
string | One of the allowed values above |
weather_temp_c |
number | Celsius, displayed rounded |
hero_image |
string | Filename to pin as hero (e.g. temple.jpg); auto-selects first image if blank |
Troubleshooting
Entry doesn't appear in feed after submit
→ Check that active_trip in user/config/site.yaml matches the parent in user/pages/02.post/post-form.md (pageconfig.parent). If they're out of sync, entries go to the wrong folder. See trip switching guide.
Get Weather button shows an error → Fill in Lat/Lng first (tap Get Location or enter manually). Open-Meteo requires coordinates.
Photos not showing in gallery → Verify files were uploaded (check the entry folder in Admin → Media). Only jpg, jpeg, png, webp, gif are rendered.
500 error after posting
→ Run make fix-perms to restore container file ownership.