50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
# /assets/selfies
|
|
|
|
Drop your selfie image files in this folder, then list them in `selfies.json`.
|
|
The gallery at `/selfies` is rendered from that manifest by `/js/selfies.js`.
|
|
|
|
## Adding a selfie
|
|
|
|
1. Put the image file in this folder, e.g. `assets/selfies/2026-06-clove.jpg`.
|
|
2. Add an entry to `selfies.json`. **The list is shown newest-first — put the
|
|
newest selfie at the top.**
|
|
|
|
`selfies.json` is a plain JSON array. Each entry can be either:
|
|
|
|
- **a filename string** (no caption, alt text auto-generated):
|
|
|
|
```json
|
|
[
|
|
"2026-06-clove.jpg",
|
|
"2026-05-night-out.png"
|
|
]
|
|
```
|
|
|
|
- **or an object** with optional `caption` and `alt`:
|
|
|
|
```json
|
|
[
|
|
{ "src": "2026-06-clove.jpg", "caption": "golden hour ☀️", "alt": "Clove smiling in a sunlit park" },
|
|
{ "src": "2026-05-night-out.png", "caption": "night out 💃" }
|
|
]
|
|
```
|
|
|
|
You can mix both styles in the same list.
|
|
|
|
## Fields
|
|
|
|
- **`src`** (required) — the image. A bare filename resolves to
|
|
`/assets/selfies/<filename>`. You can also give a full path (`/assets/...`)
|
|
or an absolute URL (`https://...`).
|
|
- **`caption`** (optional) — short text shown **under the thumbnail and under
|
|
the enlarged photo in the lightbox**. Leave it out for no caption.
|
|
- **`alt`** (optional) — accessibility text for screen readers only (not shown
|
|
on screen). If omitted, it falls back to the caption, then to a generic
|
|
"Selfie N of Clove Twilight".
|
|
|
|
## Notes
|
|
|
|
- Common web formats work: `.jpg`, `.jpeg`, `.png`, `.gif`, `.webp`, `.avif`.
|
|
- Until you add at least one entry, the page shows a friendly "no selfies yet"
|
|
message.
|