Project pages: add ToC sidebar to all remaining articles (EN/MK/SI)

Give the 23 project pages that used a single-column layout the same scrollspy
table-of-contents sidebar as the others (built from their <h2> sections, with
language-agnostic section-N ids so it works for Cyrillic too), plus the mobile
ToC header. The "Like what we do?" sidebar CTA now sits under the ToC on every
non-memorial project page; the two memorial stories get the ToC but no CTA.
The full-width bottom CTA remains the mobile fallback.

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:01:17 +02:00
1 parent 7c52f30e3b
commit b79ad2d0de
23 files changed
+754 -116

No files matched your search

@@ -193,7 +193,29 @@
<!-- END_HEADER -->
<main class="article-page">
<article class="article-container">
<!-- Sticky Mobile Header -->
<div class="mobile-article-header">
<span id="mobile-article-title">In Memory of the Victims of the Kochani Tragedy</span>
<i class="fas fa-chevron-down"></i>
<div class="progress-bar-container">
<div class="progress-bar"></div>
</div>
<div class="mobile-scrollspy-dropdown">
<ul id="mobile-scrollspy-links"></ul>
</div>
</div>
<div class="article-layout-container">
<aside class="article-sidebar">
<nav class="scrollspy-nav">
<ul>
<li><a href="#section-1" class="active">The gathering in Ljubljana</a></li>
<li><a href="#section-2">A message beyond borders</a></li>
<li><a href="#section-3">Closing words</a></li>
</ul>
</nav>
</aside>
<article class="article-container">
<header class="article-header">
<p class="article-publish-date">Published on March 21, 2025</p>
<h1>In Memory of the Victims of the Kochani Tragedy</h1>
@@ -213,7 +235,7 @@
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/kochani-2.webp" alt="Candlelight and flowers at the memorial gathering in Ljubljana">
</figure>
<h2>The gathering in Ljubljana</h2>
<h2 id="section-1">The gathering in Ljubljana</h2>
<p>On March 21, the square in Ljubljana was filled with silence and candlelight. What began as an expectation of around 200 attendees grew into a gathering of more than 600 people of all ages. The program opened with a short address by the MSOS president, followed by a 16-minute silence to honor the victims, one minute for each March day leading up to the tragedy.</p>
@@ -223,7 +245,7 @@
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/kochani-3.webp" alt="A sea of candles and flowers left by attendees">
</figure>
<h2>A message beyond borders</h2>
<h2 id="section-2">A message beyond borders</h2>
<p>This gathering was a reminder that even away from home, students carry their roots, their compassion, and their voice for justice. It was not a promotional act but a human one, a sign that the new generation wants to build a future where solidarity and care define who we are.</p>
@@ -233,7 +255,7 @@
<img width="720" height="480" loading="lazy" decoding="async" src="../../../images/kochani-4.webp" alt="Attendees standing together during the moment of silence">
</figure>
<h2>Closing words</h2>
<h2 id="section-3">Closing words</h2>
<p>The tragedy in Kochani showed us how fragile life is, but also how strong we can be when we come together. In Ljubljana, the student community stood side by side, sending love and respect back home.</p>
@@ -250,6 +272,7 @@
</div>
</section>
</article>
</div>
<section class="newsletter-cta">
<div class="container">
<div class="cta-content">