63 lines
1.7 KiB
Markdown
63 lines
1.7 KiB
Markdown
# Local preview
|
|
|
|
How to build the site from `content/` and preview it on your machine, so you
|
|
can see blog / news / event changes before they go live.
|
|
|
|
## 1. Build
|
|
|
|
From the repo root:
|
|
|
|
```sh
|
|
python tools/build_site.py
|
|
```
|
|
|
|
This runs the whole pipeline in order (renders detail pages from `content/`,
|
|
rebuilds the News hub + homepage, injects SEO + sitemap, regenerates the
|
|
bot-discovery files, and rebuilds the offline search index). Any failing step
|
|
aborts the build, so a broken step never produces half-built output.
|
|
|
|
Options:
|
|
|
|
```sh
|
|
python tools/build_site.py --check # verify pages match content/, write nothing
|
|
python tools/build_site.py --images # also convert new images to WebP + fix refs
|
|
```
|
|
|
|
The build is **idempotent** — running it again with no content change produces
|
|
no file changes.
|
|
|
|
## 2. Preview
|
|
|
|
Serve the repo root over HTTP (opening the files directly with `file://` breaks
|
|
absolute paths and the language switcher):
|
|
|
|
```sh
|
|
python -m http.server 8000
|
|
```
|
|
|
|
Then open:
|
|
|
|
- English: <http://localhost:8000/en/>
|
|
- Македонски: <http://localhost:8000/mk/>
|
|
- Slovenščina: <http://localhost:8000/si/>
|
|
|
|
Blog / news / event pages live under, e.g.,
|
|
`http://localhost:8000/en/blog/<slug>/`.
|
|
|
|
## 3. Requirements
|
|
|
|
Python 3 with `beautifulsoup4`, `pyyaml`, and `Pillow` (only needed for
|
|
`--images`):
|
|
|
|
```sh
|
|
python -m pip install beautifulsoup4 pyyaml pillow
|
|
```
|
|
|
|
## Notes
|
|
|
|
- `content/` is the **source of truth** for blog/news/events; the detail pages
|
|
under `en|mk|si/{blog,news,projects}/` are build output. Edit content in
|
|
`content/` (or, once it is wired up, the CMS), not the generated pages.
|
|
- See `docs/content-model.md` for the front-matter schema and
|
|
`docs/plans/2026-08-08-001-feat-no-code-cms-plan.md` for the overall design.
|