- produkt: nazov produktu, ostatne obrazky: nadpis okna / nazov modulu - z alt textu sa odstrania HTML znacky (napr. <br> v nadpisoch) - pri kazdom obrazku pole Alt text; ak je vyplnene, ma prednost Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
19 lines
580 B
TypeScript
19 lines
580 B
TypeScript
// Alt text obrázka: prvý neprázdny kandidát (ručne zadaný alt, názov produktu, nadpis okna...),
|
|
// bez HTML značiek (napr. <br> v nadpisoch) a nadbytočných medzier
|
|
export function pickAlt(...candidates: Array<string | null | undefined>): string {
|
|
for (const c of candidates) {
|
|
const clean = stripTags(c);
|
|
if (clean) return clean;
|
|
}
|
|
return '';
|
|
}
|
|
|
|
function stripTags(str: string | null | undefined): string {
|
|
if (!str) return '';
|
|
return String(str)
|
|
.replace(/<br\s*\/?>/gi, ' ')
|
|
.replace(/<[^>]*>/g, '')
|
|
.replace(/\s+/g, ' ')
|
|
.trim();
|
|
}
|