Updated readme:

- unconditional map regeneration on Save changes
 - logging to /var/log/mvlog_map.log
This commit is contained in:
hbrain 2026-06-02 13:08:41 +02:00
parent 129711d798
commit 6c213f4e79

View file

@ -14,7 +14,7 @@ PHP web UI for publishing and managing MVLog videos on **bubulescu.org**.
## Main structure ## Main structure
- `index.php` — public landing page (rendered videos) - `index.php` — public landing page (rendered videos and permalink pages)
- `new.php` — authenticated admin UI - `new.php` — authenticated admin UI
- `feed.php` — RSS feed - `feed.php` — RSS feed
- `contact.php` — contact form - `contact.php` — contact form
@ -26,8 +26,8 @@ PHP web UI for publishing and managing MVLog videos on **bubulescu.org**.
Important dirs: Important dirs:
- `in-dir/` — input/article dirs - `in-dir/` — input/article dirs
- `out-dir/` — rendered videos - `out-dir/` — rendered videos and article OG images (`<article_id>_og.jpg`)
- `thumbs/`custom video poster images - `thumbs/`legacy thumbnail cache / cleanup dir
- `cache/` — metadata/search/push caches - `cache/` — metadata/search/push caches
## Public page (`index.php`) ## Public page (`index.php`)
@ -40,9 +40,11 @@ Important dirs:
- `location=...` / `place=...` - `location=...` / `place=...`
- Case-insensitive + accent-insensitive matching - Case-insensitive + accent-insensitive matching
- Shows title/date/location/teaser/description/quote_da - Shows title/date/location/teaser/description/quote_da
- **No generated timestamp is shown on cards** - Article permalinks use `?id=<article_id>`; filename fallback is no longer used
- Permalink pages hide the bottom page numbers
- Optional map image per video (hidden when source article has `.mvlog-hide-map`) - Optional map image per video (hidden when source article has `.mvlog-hide-map`)
- Optional custom video poster from `thumbs/` - Video posters are resolved from the source image recorded in the thumbnail sidecar JSON; if the source image is missing, the `<video>` gets no poster
- Permalink OG/Twitter images use `out-dir/<article_id>_og.jpg` when present; otherwise they fall back to `https://bubulescu.org/assets/img/bubulescuorg.jpg`
## Admin (`new.php`) ## Admin (`new.php`)
@ -55,7 +57,7 @@ Tabs:
Implemented behavior: Implemented behavior:
- Article identity uses `.mvlog-id` (immutable ID), with legacy dir-name fallback - Article identity uses `.mvlog-id` / `article_id` as the stable canonical ID; legacy dir-name fallback only applies to older entries that are missing the ID
- Draft metadata is read/written from `in-dir/<job>/data.txt` - Draft metadata is read/written from `in-dir/<job>/data.txt`
- Supports metadata fields: `title`, `teaser`, `quote_da`, `date`, `place`, `description` - Supports metadata fields: `title`, `teaser`, `quote_da`, `date`, `place`, `description`
- Manual media reordering via `order.json` (AJAX action `reorder_file`) - Manual media reordering via `order.json` (AJAX action `reorder_file`)
@ -64,7 +66,11 @@ Implemented behavior:
- Render (`set_enabled`) - Render (`set_enabled`)
- Show (`set_visible`) - Show (`set_visible`)
- Hide map (`set_map_hidden` -> `.mvlog-hide-map`) - Hide map (`set_map_hidden` -> `.mvlog-hide-map`)
- Custom video poster selection from input images (`set_video_thumb`) - `Save changes` always regenerates the map PNG(s) for the article on every press, via `bin/gpsmap.py`
- Map regeneration logs are written to `/var/log/mvlog_map.log`
- Custom video poster selection uses the source image recorded in `<output>_thumb.json`; if the source image is missing, no poster file is used
- `set_video_thumb` also writes an article-specific OG image to `out-dir/<article_id>_og.jpg`
- Thumbnail provenance is stored in the thumb JSON sidecar (`article_id`, `input_dir`, `source_file`, `source_path`, `created_at`)
- Describe button uses `lib/generate_data_sync.php` - Describe button uses `lib/generate_data_sync.php`
- Job status polling via `job_status.php` every 32s - Job status polling via `job_status.php` every 32s
@ -95,6 +101,7 @@ Files:
- `sw.js` — service worker fallback notification text - `sw.js` — service worker fallback notification text
Current text behavior: Current text behavior:
- Show notifications open the article permalink (`./?id=<article_id>`)
- payload body: `New aticle @ MVL!` - payload body: `New aticle @ MVL!`
- SW fallback title/body: `MVL` / `New article @ MVL!` - SW fallback title/body: `MVL` / `New article @ MVL!`
@ -128,4 +135,4 @@ return [
- `contact.php` is currently in `.gitignore`. - `contact.php` is currently in `.gitignore`.
- Keep secrets out of git (`push.json`, private keys, auth secrets). - Keep secrets out of git (`push.json`, private keys, auth secrets).
- Worker/rendering is handled by separate movmaker worker project. - Worker/rendering is handled by separate movmaker worker project.