feat(cms): U1 content model + migration scaffold for blog/news/events

Establish content/ as the source of truth for editable content and
back-fill it from the existing detail pages, per U1 of the no-code CMS
plan.

- docs/content-model.md: front-matter schema (EN/MK/SI), body_format
  html-vs-markdown, content/events -> projects/ output mapping.
- tools/migrate_pages_to_content.py: bs4/yaml extractor; pulls title,
  subtitle, category, ISO date (from ARTICLE_DATES), hero image+caption;
  preserves the article body PLUS trailing sibling sections (event
  galleries) verbatim as body_format: html. Reports unparseable pages
  instead of emitting half-formed files.
- content/**: 51 files (17 entries x EN/MK/SI), 0 skips.
- tools/tests/test_migrate_roundtrip.py: 12 characterization tests
  (structured fields, news-has-no-subtitle, event gallery/lightbox
  preserved, Cyrillic UTF-8 round-trip, every page parses).
- .gitignore: ignore __pycache__/ and *.pyc.

U1 is unblocked and standalone. U2 (render content -> pages) is next;
U5/U6 remain blocked on Open Question Q1 (Gitea<->GitHub topology).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
popovskikandClaude Opus 4.8 committed 2026-08-08 16:18:29 +02:00
1 parent 6204db5f0c
commit 9ddd0f88ef
55 files changed
+4572

No files matched your search

@@ -0,0 +1,26 @@
---
type: news
slug: proof-of-means-updated-2026
lang: mk
source_folder: news
title: Износот за доказ за средства ажуриран на 507,43 € месечно
date: '2026-08-01'
date_line: Објавено 1 август 2026
hero:
src: /images/news-proof-of-means.webp
alt: Каса полна со евра, монети и банкноти
width: '1600'
height: '1067'
caption_html: <span class="fig-illustrative"><i aria-hidden="true" class="fas fa-circle-info"></i> Илустративна слика</span> · Image by <a href="https://pixabay.com/users/alexas_fotos-686414/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=1642989" rel="noopener" target="_blank">Alexa</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=1642989" rel="noopener" target="_blank">Pixabay</a>
body_format: html
---
<div class="news-article-body">
<p>Ако аплицирате за студентска дозвола за престој во Словенија или ја продолжувате, мора да докажете дека имате доволно средства за издршка. Тој услов е врзан за словенечкиот основен износ на минимален доход (osnovni znesek minimalnega dohodka).</p>
<p>Од 1 април 2026 овој основен износ на минимален доход изнесува 507,43 € месечно. Тоа е износот што треба да бидете подготвени да го докажете за целата академска година, најчесто преку писмена изјава од родител за поддршка, или преку други прифатени докази како стипендија, банкарски средства или заработка од студентска работа.</p>
<p>Бидејќи износот го следи минималниот доход, може повторно да се промени. Пред да поднесете, секогаш потврдете го тековниот официјален износ кај вашата управна единица и прашајте како го пресметуваат периодот и кои докази ги прифаќаат.</p>
</div>
<div class="news-source">
<span class="news-source-label"><i aria-hidden="true" class="fas fa-up-right-from-square"></i> Официјален извор</span>
<a href="https://www.gov.si/teme/denarna-socialna-pomoc/" rel="noopener" target="_blank">gov.si, Парична социјална помош</a>
</div>
<a class="btn btn-secondary news-article-cta" href="../../student-welcome-guide/student-residence-permit/">Прочитај го водичот за дозвола за престој</a>