Interconnect News hub + homepage with Blog & Projects (real sync)

Rewrite tools/build_listings.py to treat the Blog, Projects and News detail
pages as the single source of truth. It now regenerates:
  - the News hub grid (all items, newest first, correct dates from ARTICLE_DATES)
  - the homepage "Latest news" block (top 3)
both marker-wrapped. Previously the News hub was hand-maintained with drifted,
hardcoded dates and only some blog posts; now adding a blog/event and running
the script flows through to News and the homepage automatically.

Card links/images are root-relative so they work on any host.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
popovskikandClaude Opus 4.8 committed 2026-08-05 18:27:40 +02:00
1 parent e12724bbd1
commit cf3fce2522
7 files changed
+729 -576

No files matched your search

+20 -20
View File
@@ -307,38 +307,38 @@
<p>What is new at MSOS, from events and projects to blog stories and announcements.</p>
</div>
<div class="news-articles">
<!-- AUTO-LATEST-NEWS:START (generated from en/news/ by tools/build_listings.py — edit the News page, not here) -->
<article class="news-card" data-type="news">
<a class="news-card-media" href="../en/news/proof-of-means-updated-2026/">
<img width="1600" height="1067" src="../images/news-proof-of-means.webp" alt="Proof-of-means amount updated to €507,43 per month" loading="lazy">
<span class="news-badge news-badge--news"><i class="fas fa-bullhorn" aria-hidden="true"></i> News</span>
<!-- AUTO-LATEST-NEWS:START -->
<article class="news-card" data-type="blog">
<a class="news-card-media" href="/en/blog/welcome-days-slovenian-universities-2026-2027/">
<img width="1600" height="1067" src="/images/event4-img-1.webp" alt="New students at a university welcome day in Slovenia" loading="lazy">
<span class="news-badge news-badge--blog"><i class="fas fa-pen-nib" aria-hidden="true"></i> Blog</span>
</a>
<div class="card-content">
<p class="author">1 August 2026</p>
<h3><a href="../en/news/proof-of-means-updated-2026/">Proof-of-means amount updated to €507,43 per month</a></h3>
<p class="author">3 August 2026</p>
<h3><a href="/en/blog/welcome-days-slovenian-universities-2026-2027/">Welcome Days for Bachelor's, Master's and Erasmus students in Slovenia</a></h3>
</div>
</article>
<article class="news-card" data-type="news">
<a class="news-card-media" href="../en/news/">
<div class="news-ph"><i class="fas fa-bullhorn" aria-hidden="true"></i></div>
<span class="news-badge news-badge--news"><i class="fas fa-bullhorn" aria-hidden="true"></i> News</span>
<article class="news-card" data-type="blog">
<a class="news-card-media" href="/en/blog/where-to-search-for-accommodation-in-slovenia/">
<img width="1600" height="1067" src="/images/event4-image2.webp" alt="Macedonian students settling into accommodation in Slovenia" loading="lazy">
<span class="news-badge news-badge--blog"><i class="fas fa-pen-nib" aria-hidden="true"></i> Blog</span>
</a>
<div class="card-content">
<p class="author">15 July 2026</p>
<h3><a href="../en/news/">Applications for the 2026/2027 academic year are open</a></h3>
<p class="author">3 August 2026</p>
<h3><a href="/en/blog/where-to-search-for-accommodation-in-slovenia/">Where to search for student accommodation in Slovenia</a></h3>
</div>
</article>
<article class="news-card" data-type="news">
<a class="news-card-media" href="../en/news/">
<div class="news-ph"><i class="fas fa-bullhorn" aria-hidden="true"></i></div>
<span class="news-badge news-badge--news"><i class="fas fa-bullhorn" aria-hidden="true"></i> News</span>
<article class="news-card" data-type="blog">
<a class="news-card-media" href="/en/blog/ad-futura-scholarship-slovenia-2026/">
<img width="1600" height="1067" src="/images/event4-image2.webp" alt="Macedonian students together in Slovenia" loading="lazy">
<span class="news-badge news-badge--blog"><i class="fas fa-pen-nib" aria-hidden="true"></i> Blog</span>
</a>
<div class="card-content">
<p class="author">5 July 2026</p>
<h3><a href="../en/news/">Join our welcome week for new students</a></h3>
<p class="author">2 August 2026</p>
<h3><a href="/en/blog/ad-futura-scholarship-slovenia-2026/">Study in Slovenia with an Ad futura Scholarship: Guide for Western Balkan Students in 2026</a></h3>
</div>
</article>
<!-- AUTO-LATEST-NEWS:END -->
<!-- AUTO-LATEST-NEWS:END -->
</div>
<a href="../en/news/" class="btn btn-secondary">See all</a>
</section>