# tools/ ## seo_inject.py Injects a technical-SEO block into every language page (`en|mk|si/**/index.html`) and regenerates `sitemap.xml` + `robots.txt`. Safe to re-run — the block lives between `` and `` and is replaced in place. The block adds: `meta description` (auto-extracted from the page's lead/subtitle where available), `canonical`, `hreflang` alternates (en / mk / **sl** / x-default), Open Graph, Twitter Card, and an Organization JSON-LD. All absolute URLs point at the **final** domain `https://msosorg.com` (not the temporary host), so nothing needs rewriting at launch. Note: the Slovene folder is `/si/` but the ISO code is `sl` — the script maps `si → sl` for hreflang/locale. ### Usage ```sh python tools/seo_inject.py # dry run: print the block for pilot pages python tools/seo_inject.py --all # write the block into every page python tools/seo_inject.py --all --sitemap # also rebuild sitemap.xml + robots.txt ``` Run `--all --sitemap` after adding, renaming, or deleting any page so canonical tags, hreflang alternates, and the sitemap stay in sync.