SEO (all 201 pages, en/mk/si): - Inject canonical, hreflang (en/mk/sl + x-default), Open Graph, Twitter cards and Organization JSON-LD via idempotent SEO:START/END block - Generate multilingual sitemap.xml (xhtml:link alternates) + robots.txt - Curated meta descriptions for lead-less pages (home, become-a-member, faq, news hub, my-route); every page now has a description - Absolute URLs target final domain msosorg.com, not the temp host - Add reusable tools/seo_inject.py (+ README) Content fixes: - Translate about-us and timeline-and-milestones into MK + SI, wire up their pages, and repair the previously-dead "Who We Are" nav links across all mk/si pages - Remove duplicate en/projects/makedonska-studentska-vecer-vo-ljubljana (unreferenced; already covered by macedonian-student-night-in-ljubljana) Locale correctness: - Normalise Slovene pages to <html lang="sl"> (correct ISO 639-1) - Map sl->si in main.js so the language-switcher highlight and newsletter i18n keep working on Slovene pages (data-lang="si" still maps to /si/) MK/SI translations and descriptions are AI-drafted; flag for native review. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| README.md | ||
| seo_inject.py | ||
README.md
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 <!-- SEO:START --> and <!-- SEO:END --> 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
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.