Adds the Cloudflare Web Analytics beacon to every page (injected in
GA_LINES alongside the GA tag). Cookieless and consent-free, so it
counts all visitors regardless of the cookie banner — complements GA4,
which only records consented sessions.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Clears the 3 non-critical Events issues in Search Console
("Missing field endDate/performer/offers") across all /projects/
recap pages. These are free, single-day events, so endDate mirrors
startDate, performer is MSOS (host org), and offers is a zero-price
Offer. Generated centrally in tools/seo_inject.py and re-injected.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Deploy to Production on Develop Push / deploy (push) Successful in 22sDetails
- Brand orange is now the official #FA7850 everywhere: folded the stray
oranges (#F2762E, #E8833A, #ff6b2c) into it and kept a single darker shade
(#E85D2A) for gradient depth + button hover. Added the official brand
--yellow (#FFE16E) token.
- Tablet header gap (769-1024px): the fixed header shrinks 80->60px there but
first-section paddings kept their 80px clearance; pull the first section up
by the 20px delta in that range only (phones untouched). Verified on
interior pages and the full-bleed homepage hero — gap now matches desktop,
no overlap.
- Re-stamped cache-bust (v=f95de694).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Deploy to Production on Develop Push / deploy (push) Successful in 20sDetails
- Add :root design tokens in _typography.css (was empty) — brand teal/orange,
ink/text greys, radius + type scale + section rhythm. Visually neutral;
new rules can reference var()s instead of scattered literals.
- a11y: visible :focus-visible ring on header nav + dropdown links (keyboard
users had none).
- Fix synthesized faux-bold: .route-report h1 800 -> 700 (Inter loads 400-700).
- Testimonials column: overflow-y scroll -> auto (no permanent scrollbar gutter).
- Lightbox image radius 6px -> 8px (matches the site rounding scale).
- Consistent card affordance: homepage .news-card now lifts on hover like the
news-hub / blog cards.
- Re-stamped cache-bust (v=1f64b22f).
Deferred (needs a brand decision): unifying the two primary oranges
(#FA7850 vs #F2762E) and the fuller literal->token migration.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Deploy to Production on Develop Push / deploy (push) Successful in 22sDetails
- Latest-news row and FAQ grid now go 3 -> 2 -> 1 columns (added a 1024px
tablet step); .news-card drops its brittle fixed 405.33px width and fills a
responsive grid cell. Fixes cramped 3-across cards on 769-1024px.
- Contrast: replace #98A2B3 text color (2.58:1 on white) with the palette
muted #667085 (~4.8:1) across 13 CSS files (31 text-color uses; borders/
backgrounds untouched, verified none on dark backgrounds).
- Re-stamped cache-bust (v=6770822f).
Note: the ~20px-looser header top-gap at 769-1024px is left as a minor,
lower-risk follow-up (would need a coordinated multi-page padding pass).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Deploy to Production on Develop Push / deploy (push) Successful in 21sDetails
From the QA audit — high-impact, low-risk fixes:
- SI homepage hero: replace leftover template boilerplate subtitle
("timski nabiralniki"...) and truncated badge with proper Slovene copy
matching EN/MK.
- Footer: .footer-container was a hard width:1280px and got clipped by
overflow-x:clip on 769-1279px screens; now width:100%; max-width:1280px.
- WCAG AA contrast: darken orange text (.article-publish-date, .mm-real-link)
and the Ask-MSOS footer (.msa-foot) which were ~2.6-3:1 on white.
- iOS Safari focus-zoom: bump form/search/assistant inputs to 16px
(.ms-field, .msa-input, .filterbar-search-field).
- Re-stamped cache-bust (v=9ff60d7a).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Deploy to Production on Develop Push / deploy (push) Successful in 20sDetails
Stops deploys being served stale from browser cache — the recurring "changes
do not show up until a hard refresh" problem.
- New tools/cache_bust.py stamps a global content hash onto every local
<link>/<script> CSS/JS ref AND the @import lines in css/main.css (so partial
edits bust too). External (https://) refs are untouched. Deterministic and
idempotent: same content -> same stamp, any asset edit -> new stamp sitewide.
- Wired as the final step of tools/build_site.py so every build/deploy stamps.
- Initial stamp applied across 259 pages + main.css (v=64a53dd6).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add the Capital Asset Management logo to the partner/sponsor marquee on the
homepage and Support page (both carousel groups, EN/MK/SI).
- Fix the Meet Student Slovenia livestream embeds: the 2024 page was embedding
the 2023 recording. Now 2024 embeds the 2024 live (00GGIfVx8wA) and 2023
embeds the 2023 live (DJD02mQIE98), as proper iframes on all three languages
(MK/SI 2024 previously had only a placeholder "#" link).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Meet Student Slovenia 2026 news card had an empty description because the
auto-extractor looks for the first <p> right after .news-article-body, but that
page starts with the sticky-CTA <a>, so nothing matched. Add a curated
description (EN/MK/SI) via seo_inject DESC_OVERRIDES; this now fills the meta
description, OG/Twitter/JSON-LD, the News-hub card excerpt, and llms.txt.
MK/SI copy AI-drafted — flag for native review.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The blog index cards showed placeholder icons even for published posts that
have a hero image. Replace the icon thumb with the post hero (cover-cropped)
for every published card in EN/MK/SI, and add a .blog-thumb--image rule to
mirror the existing featured-card image style. Coming-soon / unpublished cards
keep their icons.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Remove the "a-new-space-for-the-community-3" (toast) and "additional-12"
(diploma) photos from the Teambuilding / MSOS Hub opening event: drop the
inline article image and both gallery thumbnails, promote one hidden thumb to
keep 5 visible, and correct the "+more" badges and album photo count
(16 -> 14). Delete the two now-orphaned webp files. All three languages.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Live-stream line now invites online registration ("Не можеш да дојдеш во
живо? Пријави се и следи го настанот онлајн." / EN / SI equivalents).
- MK grammar fix: "некој да им го кажел" -> "некој да им каже".
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Change the "See the full album" caption under the moments gallery from
singular last-year to plural past-years, across MK/EN/SI.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add Capital Asset Management sponsor logo (images/partners/capital.png),
replacing the plain-text sponsor name in the event partners row.
- Set the in-article hero to the clean event banner (mss-2026-hero.webp) and
the News/homepage listing cards to the sponsor-strip promo variant
(mss-2026-card.webp) via a new front-matter `card:` field.
- Update the venue everywhere (event page key info + prose + confirmation
text, and the homepage promo banner) to
"НЛБ експозитура, локација East Gate Mall, Скопје" (EN: NLB branch;
SI: poslovalnica NLB), across all three languages.
Build tooling: build_content emits an optional data-card on the hero <img>;
build_listings prefers data-card as the listing thumbnail so the card can
differ from the in-article hero. Rebuilt news pages, listings and search index.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This reverts commit fb26cda to publish the MSS 2026 event page,
homepage banner, and listings ahead of the 4 Sep 2026 event.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Name Google Forms (membership/feedback/event forms) and Google Analytics as
processors in the privacy policy, add form-submission data to 'what we collect'
and its legal basis, and note the possible US transfer under SCCs. Applied to
EN/MK/SI. Draft wording — pending review.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add the interview 'Македонците се поврзуваат — интервју со лидерот на МСОС'
(youtube.com/watch?v=Vi6wzK9Zfwc) as the first item in the In the media list
on the EN/MK/SI press pages, with localized descriptions.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Mirror the Macedonian reviewer's date fix to Slovenian and English: expand
feb/mar/sep... to full month names inside the deadline table cells on
application-deadlines, bachelor- and master-application (SI + EN).
Replacement is scoped to <td> cells to avoid touching words like SI 'nov'.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Remove the MSS 2026 news page, homepage promo banner, and listing entries,
then rebuild listings/sitemap/llms.txt/search-index so no MSS references
remain. Keeps shared event CSS/JS intact for other events. MSS 2026 stays
on feat/no-code-cms for a later, separate publish.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace event-placeholder.svg with real .webp photos across all 2025-2026
event/project pages (EN/MK/SI), updating OG/Twitter/JSON-LD image refs,
inline article images, and content/events/*.md. Also Latinize EN/SI titles
(e.g. "Kafanska večer") and drop empty "In numbers" TOC sections.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add trilingual (EN/MK/SI) event pages for seven MSOS activities:
- Joint Walk "Path Around the Wire" (May 2025)
- Kafanska vecher (May 2025)
- Watching the Macedonia-Wales match (Nov 2025)
- Team-building and MSOS Hub opening (Feb 2026)
- SEPA webinar with the National Bank of RNM (May 2026)
- President Siljanovska-Davkova lecture at UL (May 2026)
- Morning Coffee in front of CTK, 4th edition (Jun 2026)
Each page uses a neutral placeholder image (images/event-placeholder.svg)
in every hero/inline/gallery slot, with captions describing the intended
photo so real images can be dropped in later. Pages follow the existing
event template (narrative sections + scrollspy + photo gallery); no
"At a glance" classification box.
Wires the events into the Projects hub (filter cards), News hub, sitemap,
bot-discovery files and the offline search index. Unrelated pages were
kept out of this commit to avoid build-tool encoding churn.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Update the Student Welcome Guide residence pages (EN/MK/SI):
- visa-and-residence-explained: clarify that visa D mainly applies to
study exchanges (e.g. Erasmus, up to one year) and is handled only by
the embassy, while degree students use the temporary residence permit
decided by the administrative unit (a permit, not a "visa").
- where-to-apply-for-residence: explain that the embassy only forwards
the application to the administrative unit (slower, costlier); present
applying directly at the administrative unit as usually faster and
cheaper with the same documents; replace vague checklist prompts with
concrete facts (appointment contact, standard document list, official
Slovenian translation, certification, criminal-record recency, fees);
keep the cautious lawful-stay wording and add a warning about leaving
Slovenia while the application is pending.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Sources sections on the Welcome Days, accommodation-search and
Ad futura scholarship articles used bare <ul>/<ol> lists, which rendered
as default bullets/numbers with plain blue links instead of the site's
standard source-list style (chain icon, teal links, row dividers).
Add class="guide-linklist" to the Sources lists (converting Ad futura's
<ol> to <ul>) in the content/ source markdown and the generated en/mk/si
pages, matching the Student Welcome Guide. Edits scoped to the affected
articles to avoid unrelated build-tool reformatting churn.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The .event-banner rules were dropped during an _event.css rewrite, so the
homepage promo banner rendered unstyled (full-width dark text, no gradient).
Restored the banner styles and removed the em-dash from the banner copy.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Event page (Meet Student Slovenia 2026):
- Guide-style centred header with wide banner hero and caption
- Key facts on a plain background: When/Where side by side, subtle
live-stream line, centred Register CTA, full-width note
- Partner logos (NLB patron, Embassy support) + sponsor
Kapital Aset Menadžment DOOEL / Капитал асет менаџмент ДООЕЛ
- Inline photos between sections; em-dash removed from the subtitle
- "Support MSOS" call-out linking to the support page
Support page:
- Added the become-a-member supporter flow (supporter path only) via a
new data-only-flow="supporter" mode in member-form.js; submits to the
same combined Google Form tagged type=supporter
- Hero "Become a partner" button now scrolls to the form
- .ms-section carries its own brand vars so the form renders off the
member page
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Trilingual (EN/MK/SI) promo page for the upcoming "Meet Student Slovenia
2026" event, built through the content CMS (content/news/...) plus custom
sections styled to match the site.
- Guide-style centred header with a wide banner hero and caption
- Plain-background key facts (When/Where), subtle live-stream line,
centred Register CTA, and partner/patron/sponsor logos
(NLB Banka, Embassy of Slovenia; Capital Financial Center as text)
- Auto-scrolling "Moments from previous years" carousel + inline photos
- Embedded registration form (dropdowns, required study-plan fields,
multi-field study preferences) wired to a Google Form; left-hand
floating Register button
- Homepage promo banner (EN/MK/SI) + auto-listed in News hub, homepage
latest, sitemap, llms.txt and the offline search index
- New assets: css/pages/_event.css, event-register.js
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a "Photos, images & copyright" card to the Official information
(legal) page in all three languages, plus a short rights/removal note
on the Gallery and Events & Projects pages.
- Clarifies most images are MSOS property or used with permission, and
that third-party images (Get to know Macedonia/Slovenia, Student
Welcome Guide) remain their owners' property.
- Requires prior written permission to reuse MSOS's own images.
- Adds a photo-removal / consent-withdrawal path via info@msosorg.com.
- New shared .photo-rights-note style in css/pages/_gallery.css.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Gallery flow:
- Album covers now open the photo lightbox directly (full album set), while
the title/"Read the story" link opens the article. Previously the whole card
linked to the article and photos were only at the bottom of it.
- Each album carries its full photo set in a hidden js-lightbox grid; added
main.js support for [data-lightbox-target] cover triggers.
- Added the missing main.js include on the gallery page (its lightbox, mobile
menu and language switcher never ran before).
- Lightbox gained an optional "Read the story ->" button (data-project-url /
data-project-label) shown only for gallery albums.
Watermark:
- Baked a subtle "(c) msosorg.com" watermark (bottom-right, sized per image)
into 114 of our own event/community photos. Stock/partner/logo/icon images
excluded. Clean originals backed up to images/_originals/ (git-ignored); the
script always re-derives from them so re-runs never stack.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Renamed the section from "Our members & friends" to "Through the years"
(Низ годините / Skozi leta) — a retrospective framing that honours everyone
who has been part of MSOS without labelling anyone a current member or friend.
Updated title, marquee aria-label, image alt text and the dev comment.
- Removed dashes from the hero intro, section intro and closing note.
- Replaced the placeholder names with the full list of 74 contributors, kept
the original five, sorted alphabetically per language (Latin for EN/SI,
Macedonian Cyrillic with native collation for MK).
- New design for the names: a clean multi-column credits wall (accent dot,
hairline rows, hover) instead of pill chips (css/pages/_about.css).
- Added a thank-you note to members past, present and future, and to everyone
who has volunteered, contributed or supported MSOS. EN/MK/SI.
MK/SI copy is AI-drafted and pending a native proofread.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- "Our members & friends" carousel now uses 22 curated, web-optimised photos
(members-01..22.webp) from the members & friends library, chosen for warmth,
smiles, hugs, events, team and community; applied to EN/MK/SI, with the
seamless-loop duplicate set and per-language alt text. Old placeholder
event photos removed.
- Hero slideshow enriched with 6 new candid 1920px slides (group hug, pizza,
picnic, coffee, night group, arms-up cheer) interleaved among the existing
crowd shots; the JS picks up all slides automatically (now 17).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- New Press & media page in all three languages: press-enquiries contact,
a 6-way logo download grid (EN/SI/MK x colour/white), an "MSOS at a glance"
fact sheet (full legal name + preferred name), and a grouped coverage list
(media, universities & institutions, official records, reference, government)
with 29 verified third-party links, each described in EN/MK/SL.
- Styling in css/pages/_press.css (imported by main.css), on the site's tokens.
- Footer: added a "Press & media" link to the Organisation column on every page
(all languages, relative paths correct for each page depth).
- SEO/sitemap refreshed so the new pages carry NGO schema + hreflang.
MK/SI copy is AI-drafted and pending a native proofread.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Generative Engine Optimization pass so AI answer engines (ChatGPT, Gemini,
Perplexity, AI Overviews) can confidently identify and cite MSOS.
Schema (tools/seo_inject.py, propagated to all 231 pages):
- FAQPage JSON-LD parsed from the /faq/ Q&A blocks (33 Q&A x EN/MK/SI)
- Organization upgraded to NGO with entity-disambiguation fields:
alternateName (all spellings), description, areaServed Slovenia,
knowsLanguage, and foundingDate 2023-03-05
- Event JSON-LD on all 9 /projects/ recap pages (date + real location)
Autonomous for future content (no code edits to add a project):
- Event/Article dates auto-read from the English page's publish date;
event city auto-detected from the body (Slovenian-city whitelist).
ARTICLE_DATES/PROJECT_LOCATIONS are now optional overrides only.
(Auto-detect corrected Paint & Wine to Nova Gorica.)
- build_listings.py: auto-date fallback so undated new content still lists
- pre-commit hook now runs seo_inject.py --all --sitemap first, then
listings/botlinks, and re-stages changed pages (idempotent)
Docs: docs/geo-offsite-worklist.md - copy-paste-ready off-site plan
(Wikidata, Wikipedia fixes, directories, Google Business, AI-visibility tests).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Layout / CSS (css/pages/_guide.css):
- Left-align .guide-checklist and .guide-steps (margin 16px 0) so bullet
lists no longer drift right inside the flex article-body.
- Make .guide-table-wrap shrink to the viewport (width:100%; min-width:0)
so wide tables scroll horizontally on mobile instead of overflowing.
- Add a reusable .guide-cta pill button for inline calls to action.
Content, applied across all three languages:
- Replace the info-pill row (guide-meta) on every guide page with a
"Last checked" eyebrow above the title.
- application-deadlines: correct "North Macedonian citizen" to
"Citizen of North Macedonia".
- study-cities: reword the "X map:" run-on paragraphs, give Nova Gorica
and Celje proper strengths/challenges bullet lists.
- tuition-and-scholarships: fix the leftover "Link the exact call" note
and add a prominent SRIPS 380th-call button.
- student-accommodation: retitle to "full-time student", delete the SRCe
brokerage paragraph, add an ownership-check (land register / GURS)
paragraph.
- prepare-to-move: add bus, flight, airport-transfer and car-sharing
providers with links.
- administrative-basics: link the DR-02 form and FURS tax-number page and
the bank-account blog; remove the "A common sequence" section.
- official-sources-and-checklists: remove the "Checklists to build"
section and the pre-publication reminder sentence, and tidy the meta
description that referenced the removed section.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Remove the coloured placeholder cards behind the "ways to be part of
MSOS" carousel (override the _hub.css gradients on .mm-use) and load the
photos eagerly with fetchpriority so they appear immediately.
- Remove the "Figures to confirm before launch." note (and the SI
equivalent) from the MSOS-in-numbers section.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
About Us:
- Replace the appreciation photo with an Apple-style scrolling marquee that
focal-zooms the centred photo (main.js + _about.css); heading now sits above
the carousel; remove the "Have any questions?" FAQ CTA (EN/MK/SI).
Landing hero:
- Turn the flat blue overlay into a Proxify-style radial vignette (light centre
over the CTA, dark edges) and raise the "Become a member" button.
Filter bar (Events & Projects / Blog / News, EN/MK/SI):
- Add a shared Proxify-style rounded pill bar with a trailing search icon that
swaps to a search field and opens a results dropdown (thumbnail + category +
title). New css/pages/_filterbar.css + filter-search.js, layered on top of the
existing filter/pagination JS. Blog category icons preserved.
- Balance the News filter bar spacing between the header and the cards.
Student Welcome Guide:
- Widen the intro paragraphs, constrain the full-bleed disclaimer to a normal
centred width, and add space before the route configurator.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Rework the About Us hero so the eyebrow, title and description are overlaid on
the auto-rotating team images (centred, white, text-shadowed) exactly like the
landing hero, instead of sitting in a separate white band above them. Remove the
old page-header band and move its text into the hero. All three languages.
- Rename the "Who We Are" menu item from "Our team" to "About Us"
(MK "За нас", SI "O nas") across all pages; footer "About us" link unchanged.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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>
Previously /llms.txt and /links-for-bots/ existed but were not linked anywhere,
so users/bots couldn't find them. Following Proxify's pattern, add a "For bots"
footer column (all 225 pages, EN/MK/SI) linking to category link lists and an
AI summary page.
build_botlinks.py now also generates:
/links-for-bots/blog|guide|projects/ per-section link lists (EN/MK/SI)
/links-for-bots/about-msos/ "Hey AI, learn about us" summary
/links-for-bots/ hub + /llms.txt
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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>
Add a compact "Like what we do?" CTA box directly below the table of contents
in the left sidebar. The ToC already scrolls internally when long, so the box
stays pinned in the same visual field. The full-width bottom CTA is hidden on
desktop where a sidebar CTA exists (via :has()) and remains the mobile fallback.
Applied to the 4 project pages that have a ToC sidebar; the others (all MK/SI +
3 EN) have no sidebar and keep the bottom CTA.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Publish Vasil Handziski's personal essay in MK (original) with EN/SI AI-drafted
translations. Adds a prose article variant (no scrollspy sidebar, centred column,
custom byline) via .article-page--prose, plus blog index cards in all languages.
Converter now omits the "last checked" line when empty.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Build the Welcome Days article in all three languages from the multilingual
source (# English / # Slovenščina / # Македонски sections + shared sources),
no machine translation. Date registered, SEO injected. Cards already existed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add Macedonian and Slovenian versions of the accommodation post (AI-drafted,
flagged for native review), rebuild EN with a proper Student Welcome Guide link
and a real Sources section, and add MK/SI blog index cards. Converter now treats
a secondary "# Sources" heading as a section.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Build full articles for "Learning Slovene", "Study in North Macedonia
(government scholarship)" and "Ad futura scholarship" in all three languages,
split from the trilingual Markdown sources (no machine translation). Dates
registered in ARTICLE_DATES and SEO re-injected per page. Blog index cards for
these already existed and now point to real content instead of stubs.
Hero images are placeholders pending topical photos.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tools/build_blog.py converts a Markdown source into the site's scrollspy blog
article (title, header, hero, sidebar nav from ## headings, body). First output:
the new EN post "Where to search for student accommodation in Slovenia", added at
the top of the blog index (newest first), dated 2026-08-03, SEO injected.
MK/SI of this post and the rest of the blog batch (refresh 1-5, split trilingual
posts 2-4, personal essay post 7) still to come.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
#9.2 Full-width auto-rotating team hero (crossfade every 4.5s, transparent blue
overlay) directly under the About Us title — 11 landscape photos supplied by MSOS.
#9.4 "Our members & friends" appreciation section after Mission & Vision: a
contained photo carousel + name chips. Photos and names are PLACEHOLDERS
(names in "First L." format) pending the full members list.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>