fix: UI opschonen — homepage, disclaimers, navigatie
- Homepage: geen Grondwet-hoofdstukken meer, wel duidelijke links naar volledige tekst, AI-samenvatting, en historie - Disclaimer op homepage: neutraal (geen "AI-verrijkt") - Disclaimer op /grondwet: "automatisch omgezet van XML naar Markdown" - /grondwet: blauwe banner met link naar AI-samenvatting - Statistieken herordend (regelingen eerst)
This commit is contained in:
parent
9e254cc953
commit
8ee8522bdc
3 changed files with 37 additions and 27 deletions
|
|
@ -35,28 +35,18 @@ def _get_store() -> RegelingStore:
|
||||||
|
|
||||||
@router.get("/", response_class=HTMLResponse)
|
@router.get("/", response_class=HTMLResponse)
|
||||||
def homepage(request: Request) -> HTMLResponse:
|
def homepage(request: Request) -> HTMLResponse:
|
||||||
"""Homepage met zoekbalk en Grondwet overzicht."""
|
"""Homepage — project intro, zoekbalk, links."""
|
||||||
store = _get_store()
|
store = _get_store()
|
||||||
tekst = store.get_tekst(BWB_GRONDWET) or ""
|
tekst = store.get_tekst(BWB_GRONDWET) or ""
|
||||||
|
|
||||||
# Tel artikelen en hoofdstukken
|
|
||||||
artikelen = len(re.findall(r"^### Artikel", tekst, re.MULTILINE))
|
artikelen = len(re.findall(r"^### Artikel", tekst, re.MULTILINE))
|
||||||
versies = store.get_versies(BWB_GRONDWET)
|
versies = store.get_versies(BWB_GRONDWET)
|
||||||
|
|
||||||
# Extraheer hoofdstukken voor de inhoudsopgave
|
|
||||||
hoofdstukken = []
|
|
||||||
for match in re.finditer(r"^## (.+)$", tekst, re.MULTILINE):
|
|
||||||
titel = match.group(1).strip()
|
|
||||||
anchor = re.sub(r"[^\w\s-]", "", titel.lower()).replace(" ", "-")
|
|
||||||
hoofdstukken.append({"titel": titel, "anchor": anchor})
|
|
||||||
|
|
||||||
return templates.TemplateResponse(request, "index.html", {
|
return templates.TemplateResponse(request, "index.html", {
|
||||||
"stats": {
|
"stats": {
|
||||||
"artikelen": artikelen,
|
"artikelen": artikelen,
|
||||||
"versies": len(versies),
|
"versies": len(versies),
|
||||||
"regelingen": len(store.list_regelingen()),
|
"regelingen": len(store.list_regelingen()),
|
||||||
},
|
},
|
||||||
"hoofdstukken": hoofdstukken,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form class="search-box" action="/zoeken" method="get">
|
<form class="search-box" action="/zoeken" method="get">
|
||||||
<input type="text" name="q" placeholder="Zoek in de Grondwet... bijv. 'privacy' of 'mag mijn baas mijn e-mail lezen?'" autofocus>
|
<input type="text" name="q" placeholder="Zoek in de wetgeving... bijv. 'privacy' of 'mag mijn baas mijn e-mail lezen?'" autofocus>
|
||||||
<select name="mode">
|
<select name="mode">
|
||||||
<option value="keyword">Keyword</option>
|
<option value="keyword">Keyword</option>
|
||||||
<option value="semantic">Semantisch</option>
|
<option value="semantic">Semantisch</option>
|
||||||
|
|
@ -20,28 +20,39 @@
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<div class="stats">
|
<div class="stats">
|
||||||
|
<div class="stat">
|
||||||
|
<div class="stat-number">{{ stats.regelingen }}</div>
|
||||||
|
<div class="stat-label">regelingen</div>
|
||||||
|
</div>
|
||||||
<div class="stat">
|
<div class="stat">
|
||||||
<div class="stat-number">{{ stats.artikelen }}</div>
|
<div class="stat-number">{{ stats.artikelen }}</div>
|
||||||
<div class="stat-label">artikelen</div>
|
<div class="stat-label">artikelen in de Grondwet</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat">
|
<div class="stat">
|
||||||
<div class="stat-number">{{ stats.versies }}</div>
|
<div class="stat-number">{{ stats.versies }}</div>
|
||||||
<div class="stat-label">historische versies</div>
|
<div class="stat-label">historische versies</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat">
|
|
||||||
<div class="stat-number">{{ stats.regelingen }}</div>
|
|
||||||
<div class="stat-label">regelingen</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2>Grondwet voor het Koninkrijk der Nederlanden</h2>
|
<h2>Aan de slag</h2>
|
||||||
|
|
||||||
|
<div style="display: flex; flex-direction: column; gap: 1rem; margin: 1.5rem 0;">
|
||||||
|
<a href="/grondwet" style="display: block; padding: 1.2rem; border: 2px solid var(--color-accent); border-radius: 8px; text-decoration: none;">
|
||||||
|
<strong style="font-size: 1.1rem;">Lees de Grondwet</strong><br>
|
||||||
|
<span style="color: var(--color-muted);">De volledige tekst, doorzoekbaar en met versiehistorie</span>
|
||||||
|
</a>
|
||||||
|
<a href="/grondwet/samenvatting" style="display: block; padding: 1.2rem; border: 2px solid var(--color-accent-light); border-radius: 8px; text-decoration: none;">
|
||||||
|
<strong style="font-size: 1.1rem;">Samenvatting in begrijpelijk Nederlands</strong><br>
|
||||||
|
<span style="color: var(--color-muted);">AI-gegenereerde samenvatting per hoofdstuk (B1-niveau)</span>
|
||||||
|
</a>
|
||||||
|
<a href="/historie" style="display: block; padding: 1.2rem; border: 2px solid var(--color-accent-light); border-radius: 8px; text-decoration: none;">
|
||||||
|
<strong style="font-size: 1.1rem;">Bekijk de wijzigingshistorie</strong><br>
|
||||||
|
<span style="color: var(--color-muted);">Zie precies wat er veranderde bij elke grondwetswijziging</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="disclaimer">
|
<div class="disclaimer">
|
||||||
Dit is een AI-verrijkte weergave van de Grondwet. Raadpleeg altijd
|
WetGit is geen officiele bron van wetgeving. Raadpleeg altijd
|
||||||
<a href="https://wetten.overheid.nl/BWBR0001840">wetten.overheid.nl</a> voor de officiele tekst.
|
<a href="https://wetten.overheid.nl">wetten.overheid.nl</a> voor de authentieke tekst.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% for h in hoofdstukken %}
|
|
||||||
<h3><a href="/grondwet#{{ h.anchor }}">{{ h.titel }}</a></h3>
|
|
||||||
{% endfor %}
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,21 @@
|
||||||
BWB-ID: {{ bwb_id }} |
|
BWB-ID: {{ bwb_id }} |
|
||||||
<a href="https://wetten.overheid.nl/{{ bwb_id }}">Officiele tekst</a> |
|
<a href="https://wetten.overheid.nl/{{ bwb_id }}">Officiele tekst</a> |
|
||||||
<a href="/historie">{{ versies }} versies</a>
|
<a href="/historie">{{ versies }} versies</a>
|
||||||
{% if has_summary %} | <a href="/grondwet/samenvatting">AI-samenvatting</a>{% endif %}
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
{% if has_summary %}
|
||||||
|
<div style="background: var(--color-accent-light); border-radius: 8px; padding: 1rem 1.2rem; margin: 1.5rem 0;">
|
||||||
|
<a href="/grondwet/samenvatting" style="text-decoration: none;">
|
||||||
|
<strong>Samenvatting in begrijpelijk Nederlands beschikbaar</strong><br>
|
||||||
|
<span style="color: var(--color-muted);">AI-gegenereerde samenvatting per hoofdstuk (B1-niveau)</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div class="disclaimer">
|
<div class="disclaimer">
|
||||||
Dit is geen officiele bron. Raadpleeg altijd
|
Dit is de volledige wettekst, automatisch omgezet van XML naar Markdown.
|
||||||
<a href="https://wetten.overheid.nl/{{ bwb_id }}">wetten.overheid.nl</a>.
|
Raadpleeg altijd <a href="https://wetten.overheid.nl/{{ bwb_id }}">wetten.overheid.nl</a>
|
||||||
|
voor de authentieke tekst.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ content_html | safe }}
|
{{ content_html | safe }}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue