Add technical SEO foundation, MK/SI about-us + timeline, content fixes
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>
This commit is contained in:
1 parent
31487ad83e
commit
b393859467
208 files changed
+8319
-1388
No files matched your search
@@ -0,0 +1,26 @@
|
||||
# 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
|
||||
|
||||
```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.
|
||||
Reference in new issue
Block a user