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

+164 -151
View File
@@ -204,182 +204,195 @@
<button type="button" class="newshub-chip" data-type="news">Вести</button>
</div>
<div class="newshub-grid">
<!-- AUTO-NEWS:START -->
<article class="newshub-card" data-type="blog">
<a class="newshub-media" href="/mk/blog/welcome-days-slovenian-universities-2026-2027/">
<img width="1600" height="1067" src="/images/event4-img-1.webp" alt="Нови студенти на ден за добредојде на универзитет во Словенија" loading="lazy">
<span class="news-badge news-badge--blog"><i class="fas fa-pen-nib" aria-hidden="true"></i> Блог</span>
</a>
<div class="newshub-body">
<p class="newshub-date">3 август 2026</p>
<h3><a href="/mk/blog/welcome-days-slovenian-universities-2026-2027/">Денови за добредојде за додипломски, магистерски и Erasmus студенти во Словенија</a></h3>
<p class="newshub-excerpt">Почетокот на студиите во друга држава е полесен кога знаете каде треба да одите, кого да прашате и што ќе се случува во првите денови. Главните универзитети во…</p>
</div>
</article>
<article class="newshub-card" data-type="blog">
<a class="newshub-media" href="/mk/blog/where-to-search-for-accommodation-in-slovenia/">
<img width="1600" height="1067" src="/images/event4-image2.webp" alt="Македонски студенти се вселуваат во сместување во Словенија" loading="lazy">
<span class="news-badge news-badge--blog"><i class="fas fa-pen-nib" aria-hidden="true"></i> Блог</span>
</a>
<div class="newshub-body">
<p class="newshub-date">3 август 2026</p>
<h3><a href="/mk/blog/where-to-search-for-accommodation-in-slovenia/">Каде да барате студентско сместување во Словенија</a></h3>
<p class="newshub-excerpt">Пронаоѓањето сместување често е еден од најстресните делови од преселбата во Словенија, особено во Љубљана и на приморјето. Најдобриот пристап е да започнете…</p>
</div>
</article>
<article class="newshub-card" data-type="blog">
<a class="newshub-media" href="/mk/blog/ad-futura-scholarship-slovenia-2026/">
<img width="1600" height="1067" src="/images/event4-image2.webp" alt="Македонски студенти заедно во Словенија" loading="lazy">
<span class="news-badge news-badge--blog"><i class="fas fa-pen-nib" aria-hidden="true"></i> Блог</span>
</a>
<div class="newshub-body">
<p class="newshub-date">2 август 2026</p>
<h3><a href="/mk/blog/ad-futura-scholarship-slovenia-2026/">Студирајте во Словенија со стипендијата Ad futura: Водич за студенти од Западен Балкан во 2026 година</a></h3>
<p class="newshub-excerpt">Планирате да ги продолжите студиите во Словенија? Државјаните на Северна Македонија и на уште неколку земји од Западен Балкан можат да аплицираат за стипендија…</p>
</div>
</article>
<article class="newshub-card" data-type="news">
<a class="newshub-media" href="../../mk/news/proof-of-means-updated-2026/">
<img width="1600" height="1067" src="../../images/news-proof-of-means.webp" alt="Износот за доказ за средства ажуриран на 507,43 € месечно" loading="lazy">
<a class="newshub-media" href="/mk/news/proof-of-means-updated-2026/">
<img width="1600" height="1067" src="/images/news-proof-of-means.webp" alt="Каса полна со евра, монети и банкноти" loading="lazy">
<span class="news-badge news-badge--news"><i class="fas fa-bullhorn" aria-hidden="true"></i> Вест</span>
</a>
<div class="newshub-body">
<p class="newshub-date">1 август 2026</p>
<h3><a href="../../mk/news/proof-of-means-updated-2026/">Износот за доказ за средства ажуриран на 507,43 € месечно</a></h3>
<p class="newshub-excerpt">Словенечкиот основен износ на минимален доход од 1 април 2026 се зголеми на 507,43 € месечно: нов износ за докажување при студентската дозвола за престој.</p>
</div>
</article>
<article class="newshub-card" data-type="news">
<a class="newshub-media" href="../../mk/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> Вест</span>
</a>
<div class="newshub-body">
<p class="newshub-date">15 јули 2026</p>
<h3><a href="../../mk/news/">Пријавите за академската 2026/2027 година се отворени</a></h3>
<p class="newshub-excerpt">Клучни рокови и чекори за македонските кандидати, на едно место.</p>
</div>
</article>
<article class="newshub-card" data-type="news">
<a class="newshub-media" href="../../mk/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> Вест</span>
</a>
<div class="newshub-body">
<p class="newshub-date">5 јули 2026</p>
<h3><a href="../../mk/news/">Придружи се на неделата на добредојде за нови студенти</a></h3>
<p class="newshub-excerpt">Запознај други македонски студенти и подготви се за првиот семестар.</p>
</div>
</article>
<article class="newshub-card" data-type="news">
<a class="newshub-media" href="../../mk/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> Вест</span>
</a>
<div class="newshub-body">
<p class="newshub-date">20 јуни 2026</p>
<h3><a href="../../mk/news/">Летни термини и како да нè контактирате</a></h3>
<p class="newshub-excerpt">Преку летото сме тука за прашања за преселба и запишување.</p>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="../../mk/projects/in-memory-of-the-kochani-victims/">
<img width="720" height="480" src="../../images/kochani-1.webp" alt="Во спомен на жртвите од трагедијата во Кочани" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">18 март 2025</p>
<h3><a href="../../mk/projects/in-memory-of-the-kochani-victims/">Во спомен на жртвите од трагедијата во Кочани</a></h3>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="../../mk/projects/meet-student-slovenia-2024/">
<img width="1920" height="1280" src="../../images/event4-img-1.webp" alt="Запознај ја студентска Словенија 2024" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">20 септември 2024</p>
<h3><a href="../../mk/projects/meet-student-slovenia-2024/">Запознај ја студентска Словенија 2024</a></h3>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="../../mk/projects/humanitarian-tournament-in-maribor/">
<img width="720" height="480" src="../../images/maribor-tournament-1.webp" alt="Хуманитарен спортски турнир: Играме со срце, заедно за Кочани" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">11 мај 2024</p>
<h3><a href="../../mk/projects/humanitarian-tournament-in-maribor/">Хуманитарен спортски турнир: Играме со срце, заедно за Кочани</a></h3>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="../../mk/projects/macedonian-student-night-in-ljubljana/">
<img width="1430" height="757" src="../../images/msnl-1.webp" alt="Македонска студентска вечер во Љубљана" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">15 март 2024</p>
<h3><a href="../../mk/projects/macedonian-student-night-in-ljubljana/">Македонска студентска вечер во Љубљана</a></h3>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="../../mk/projects/watching-handball-together-in-slovenia/">
<img width="720" height="480" src="../../images/handball-2025-1.webp" alt="Навивање за Македонија, заедничко гледање ракомет во Словенија" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">20 јануари 2024</p>
<h3><a href="../../mk/projects/watching-handball-together-in-slovenia/">Навивање за Македонија, заедничко гледање ракомет во Словенија</a></h3>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="../../mk/projects/in-memory-of-frosina-kulakova/">
<img width="720" height="480" src="../../images/frosina-1.webp" alt="Во спомен на Фросина Кулакова" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">10 ноември 2023</p>
<h3><a href="../../mk/projects/in-memory-of-frosina-kulakova/">Во спомен на Фросина Кулакова</a></h3>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="../../mk/projects/meet-student-slovenia-2023/">
<img width="1920" height="1280" src="../../images/event3-photo-1.webp" alt="Запознај ја студентска Словенија 2023" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">22 септември 2023</p>
<h3><a href="../../mk/projects/meet-student-slovenia-2023/">Запознај ја студентска Словенија 2023</a></h3>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="../../mk/projects/paint-and-wine-at-sunset/">
<img width="1600" height="1067" src="../../images/paint-wine-1.webp" alt="Сликање и вино на зајдисонце, славење на Денот на жената со уметност и музика" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">10 јуни 2023</p>
<h3><a href="../../mk/projects/paint-and-wine-at-sunset/">Сликање и вино на зајдисонце, славење на Денот на жената со уметност и музика</a></h3>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="../../mk/projects/morning-coffee-in-front-of-ctk/">
<img width="1920" height="1280" src="../../images/event4-image1.webp" alt="Утринско кафе пред ЦТК, 2024: Кафе, бурек и многу насмевки" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">5 мај 2023</p>
<h3><a href="../../mk/projects/morning-coffee-in-front-of-ctk/">Утринско кафе пред ЦТК, 2024: Кафе, бурек и многу насмевки</a></h3>
<h3><a href="/mk/news/proof-of-means-updated-2026/">Износот за доказ за средства ажуриран на 507,43 € месечно</a></h3>
<p class="newshub-excerpt">Ако аплицирате за студентска дозвола за престој во Словенија или ја продолжувате, мора да докажете дека имате доволно средства за издршка. Тој услов е врзан за…</p>
</div>
</article>
<article class="newshub-card" data-type="blog">
<a class="newshub-media" href="../../mk/blog/">
<div class="news-ph"><i class="fas fa-pen-nib" aria-hidden="true"></i></div>
<a class="newshub-media" href="/mk/blog/how-to-open-slovenian-bank-account/">
<img width="6048" height="4024" src="/images/blog-slovenian-bank-account.webp" alt="Меѓународен студент користи мобилно банкарство по отворањето на словенечка банкарска сметка" loading="lazy">
<span class="news-badge news-badge--blog"><i class="fas fa-pen-nib" aria-hidden="true"></i> Блог</span>
</a>
<div class="newshub-body">
<p class="newshub-date">Наскоро</p>
<h3><a href="../../mk/blog/">Првите две недели во Љубљана</a></h3>
<p class="newshub-date">1 август 2026</p>
<h3><a href="/mk/blog/how-to-open-slovenian-bank-account/">Како да отворите словенечка банкарска сметка како меѓународен студент</a></h3>
<p class="newshub-excerpt">Практичен водич за македонските студенти: документите што ви требаат, како да изберете банка, користење на Flik и ажурирање на вашите податоци откако ќе ја отворите сметката.</p>
</div>
</article>
<article class="newshub-card" data-type="blog">
<a class="newshub-media" href="../../mk/blog/">
<div class="news-ph"><i class="fas fa-pen-nib" aria-hidden="true"></i></div>
<a class="newshub-media" href="/mk/blog/study-in-north-macedonia-government-scholarship-2026-2027/">
<img width="1600" height="1067" src="/images/event3-photo-1.webp" alt="Студенти на универзитетски настан" loading="lazy">
<span class="news-badge news-badge--blog"><i class="fas fa-pen-nib" aria-hidden="true"></i> Блог</span>
</a>
<div class="newshub-body">
<p class="newshub-date">Наскоро</p>
<h3><a href="../../mk/blog/">Како да отворите словенечка банкарска сметка</a></h3>
<p class="newshub-date">30 јули 2026</p>
<h3><a href="/mk/blog/study-in-north-macedonia-government-scholarship-2026-2027/">Студирајте во Северна Македонија со владина стипендија: Водич за 2026/2027</a></h3>
<p class="newshub-excerpt">Дали сте странски државјанин со македонско потекло кој живее во Словенија или во друга земја опфатена со конкурсот? Министерството за образование и наука на…</p>
</div>
</article>
<article class="newshub-card" data-type="blog">
<a class="newshub-media" href="../../mk/blog/">
<div class="news-ph"><i class="fas fa-pen-nib" aria-hidden="true"></i></div>
<a class="newshub-media" href="/mk/blog/learning-slovene-where-to-start/">
<img width="1600" height="1067" src="/images/msnl-2.webp" alt="Македонски студенти вежбаат словенечки заедно" loading="lazy">
<span class="news-badge news-badge--blog"><i class="fas fa-pen-nib" aria-hidden="true"></i> Блог</span>
</a>
<div class="newshub-body">
<p class="newshub-date">Наскоро</p>
<h3><a href="../../mk/blog/">Како да го преживеете првиот испитен рок</a></h3>
<p class="newshub-date">28 јули 2026</p>
<h3><a href="/mk/blog/learning-slovene-where-to-start/">Учење словенечки: од каде да започнете</a></h3>
<p class="newshub-excerpt">Се подготвувате да студирате во Словенија? Не мора да зборувате совршено словенечки пред да пристигнете, но ако ги научите основите навреме, многу полесно ќе…</p>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="/mk/projects/humanitarian-tournament-in-maribor/">
<img width="720" height="480" src="/images/maribor-tournament-1.webp" alt="Тимот на МСОС Марибор на хуманитарниот спортски турнир" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">5 април 2025</p>
<h3><a href="/mk/projects/humanitarian-tournament-in-maribor/">Хуманитарен спортски турнир: Играме со срце, заедно за Кочани</a></h3>
<p class="newshub-excerpt">Повеќе од 200 студенти се собраа во Марибор и преку спорт собраа 1.000 € за поддршка на семејствата погодени од трагедијата во Кочани.</p>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="/mk/projects/in-memory-of-the-kochani-victims/">
<img width="720" height="480" src="/images/kochani-1.webp" alt="Свеќи и цвеќе на Конгресниот плоштад во спомен на жртвите од трагедијата во Кочани" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">21 март 2025</p>
<h3><a href="/mk/projects/in-memory-of-the-kochani-victims/">Во спомен на жртвите од трагедијата во Кочани</a></h3>
<p class="newshub-excerpt">На 21 март 2025 година, повеќе од 600 луѓе се собраа на Конгресниот плоштад во Љубљана на мирен јавен собир за да ги почестат жртвите од трагичниот пожар во Кочани.</p>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="/mk/projects/paint-and-wine-at-sunset/">
<img width="1600" height="1067" src="/images/paint-wine-1.webp" alt="Настанот Сликање и вино на зајдисонце во Горица" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">8 март 2025</p>
<h3><a href="/mk/projects/paint-and-wine-at-sunset/">Сликање и вино на зајдисонце, славење на Денот на жената со уметност и музика</a></h3>
<p class="newshub-excerpt">Сликање, вино и музика ги собраа студентите во Горица за да го одбележат Денот на жената и првиот настан на МСОС Нова Горица.</p>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="/mk/projects/in-memory-of-frosina-kulakova/">
<img width="720" height="480" src="/images/frosina-1.webp" alt="Свеќи и цвеќе во спомен на Фросина Кулакова" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">8 февруари 2025</p>
<h3><a href="/mk/projects/in-memory-of-frosina-kulakova/">Во спомен на Фросина Кулакова</a></h3>
<p class="newshub-excerpt">На 8 февруари 2025 година, македонските студенти во Љубљана се собраа на мирен јавен настан за да ја почестат меморијата на Фросина Кулакова, која трагично го…</p>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="/mk/projects/watching-handball-together-in-slovenia/">
<img width="720" height="480" src="/images/handball-2025-1.webp" alt="Навивачка атмосфера додека се гледа ракомет во Марибор" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">25 јануари 2025</p>
<h3><a href="/mk/projects/watching-handball-together-in-slovenia/">Навивање за Македонија, заедничко гледање ракомет во Словенија</a></h3>
<p class="newshub-excerpt">Од Љубљана до Марибор, македонските студенти ги наполнија кафулињата со навивачки извици, знамиња и смеа додека ја гледаа ракометната репрезентација.</p>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="/mk/projects/meet-student-slovenia-2024/">
<img width="1920" height="1280" src="/images/event4-img-1.webp" alt="Група студенти на настанот „Запознај ја студентска Словенија 2024“" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">16 септември 2024</p>
<h3><a href="/mk/projects/meet-student-slovenia-2024/">Запознај ја студентска Словенија 2024</a></h3>
<p class="newshub-excerpt">Кога студентските приказни се претвораат во првиот чекор кон новиот дом.</p>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="/mk/projects/morning-coffee-in-front-of-ctk/">
<img width="1920" height="1280" src="/images/event4-image1.webp" alt="Студенти уживаат во кафе и бурек пред ЦТК." loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">8 јуни 2024</p>
<h3><a href="/mk/projects/morning-coffee-in-front-of-ctk/">Утринско кафе пред ЦТК, 2024: Кафе, бурек и многу насмевки</a></h3>
<p class="newshub-excerpt">Кога испитите некако ти стануваат полесни со саботно утринско кафе, бурек и добро друштво пред ЦТК!</p>
</div>
</article>
<article class="newshub-card" data-type="blog">
<a class="newshub-media" href="/mk/blog/how-i-coped-with-leaving-home/">
<img width="1600" height="1067" src="/images/event3-photo-8.webp" alt="Студент во размислување по преселбата на студии во странство" loading="lazy">
<span class="news-badge news-badge--blog"><i class="fas fa-pen-nib" aria-hidden="true"></i> Блог</span>
</a>
<div class="newshub-body">
<p class="newshub-date">24 април 2024</p>
<h3><a href="/mk/blog/how-i-coped-with-leaving-home/">Како се справив со заминувањето од дома</a></h3>
<p class="newshub-excerpt">Дојдени на крајот на вашето средно образование, со скромни 18 години позади вас треба да одлучите каде ќе го продолжите вашето образование. Дали ќе останете во…</p>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="/mk/projects/meet-student-slovenia-2023/">
<img width="1920" height="1280" src="/images/event3-photo-1.webp" alt="Панел дискусија на настанот „Запознај ја студентска Словенија 2023“" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">18 септември 2023</p>
<h3><a href="/mk/projects/meet-student-slovenia-2023/">Запознај ја студентска Словенија 2023</a></h3>
<p class="newshub-excerpt">Преку искрени приказни од прва рака, идните студентите добија поддршка за првиот чекор кон нивниот нов дом.</p>
</div>
</article>
<article class="newshub-card" data-type="project">
<a class="newshub-media" href="/mk/projects/macedonian-student-night-in-ljubljana/">
<img width="1430" height="757" src="/images/msnl-1.webp" alt="Атмосфера од македонската студентска вечер во Љубљана" loading="lazy">
<span class="news-badge news-badge--project"><i class="fas fa-calendar-day" aria-hidden="true"></i> Настан</span>
</a>
<div class="newshub-body">
<p class="newshub-date">8 октомври 2022</p>
<h3><a href="/mk/projects/macedonian-student-night-in-ljubljana/">Македонска студентска вечер во Љубљана</a></h3>
<p class="newshub-excerpt">Од идеја до журка со 500 студенти, вака започна нашата приказна!</p>
</div>
</article>
<!-- AUTO-NEWS:END -->
</div>
<nav class="pagination newshub-pagination" data-page-size="9" hidden>
<button type="button" class="pagination-arrow" data-nav="prev"><i class="fas fa-arrow-left" aria-hidden="true"></i> Претходна</button>