Přeskočit na obsah

npm run validate:media — Licenční brána médií

Licenční brána médií: Ověřuje, že každá publikovaná fotografie a logo má doloženou svobodnou licenci, autora, odkaz na stránku zdroje a soubor přímo v repozitáři.. npm skript, validace vstupů.

npm skript validace vstupů shodí běh pipeline: build pipeline: check

Volání

npm run validate:media

Spustí node scripts/dossier/validate-media.mjs (čteno z package.json při buildu)

Zdroj: scripts/dossier/validate-media.mjs

Ověřuje, že každá publikovaná fotografie a logo má doloženou svobodnou licenci, autora, odkaz na stránku zdroje a soubor přímo v repozitáři.

Kdy ho spustit

V build pipeline; po každém npm run media:fetch a po ručním zásahu do pole media.

Co shodí běh

  • M1 — odkazovaný soubor v repozitáři skutečně existuje a není prázdný; mrtvá cesta by se vykreslila jako rozbitý rámeček v každém sociálním náhledu.
  • M2 — licence je na seznamu svobodných licencí (scripts/media/lib/licences.mjs) a autor i datum stažení jsou vyplněné; u CC BY / BY-SA je uvedení autora podmínkou licence, ne zdvořilostí.
  • M3 — sourceUrl vede na stránku souboru s licencí, ne na samotné bajty; rozhoduje hostitel a cesta, ne přípona (stránka na Commons se legitimně jmenuje File:Něco.JPG).
  • M4 — žádný soubor v static/images/{people,logos,media} neleží v repozitáři bez záznamu, který by se k němu hlásil.

Co je potřeba vědět

  • Tvarovou kontrolu dělá schéma entity; tenhle validátor kontroluje význam — schéma ověří, že license je řetězec, ne že ta licence dovoluje publikaci.
  • Seznam svobodných licencí je záměrně allowlist se společným vlastníkem pro validátor i stahovač: „fair use“, „non-free logo“ ani prázdná hodnota neprojdou.

Vstupy a výstupy

Čte

  • data/dossiers/_shared/entities/*.json
  • static/images/people/**
  • static/images/logos/**
  • static/images/media/**

Popis vychází z hlavičkového komentáře zdrojového souboru. Volání, zařazení do pipeline i členství v pre-commit hooku se dopočítávají při každém buildu ze samotného repozitáře.