Files
lage-chat-control/src/components/Ext.astro
T
Aurealibe 8ebc1da9e4 Rebuild du site sur Astro : i18n multilingue, faits verifies, Docker, CI, tests
- Astro statique, EN par defaut + /fr/ + /nl/, detection langue navigateur
- i18n par fichiers JSON, ajouter une langue = ajouter des traductions
- Contenu original porte a l'identique (diff d'inventaire par langue)
- Chronologie legislative corrigee sur sources primaires (PE, Conseil, votes)
- Timeline 23 precedents + observatoire 35 items + annuaire 66 outils FOSS,
  chaque affirmation verifiee et sourcee
- Zero requete tierce (teste), lisible JS coupe, axe WCAG AA x2 themes
- Version offline monofichier par langue a chaque build
- Docker multi-stage vers nginx + CSP stricte auto-generee
- CI GitHub Actions (SHA-pinnees) + verification hebdo des liens
- CONTRIBUTING : divulgation d'affiliation obligatoire, allowlist de
  domaines testee en CI
2026-07-10 03:52:49 +01:00

17 lines
537 B
Plaintext

---
// The ONLY way to render an external link. Enforces the site's link policy:
// every external anchor carries rel="noopener noreferrer" — no exceptions,
// no per-link rel overrides (that's how PR #1 smuggled follow backlinks).
interface Props {
href: string
class?: string
}
const { href, class: className } = Astro.props
if (!href.startsWith('https://')) {
throw new Error(`Ext: external links must be https:// (got ${href})`)
}
---
<a href={href} target="_blank" rel="noopener noreferrer" class={className}><slot /></a>