fix: sanitize public provenance links
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
---
|
||||
import { safeHttpUrl } from "../lib/urls";
|
||||
const { source, href, tone = "source" } = Astro.props as { source: string; href?: string | null; tone?: "source" | "incomplete" | "verified" };
|
||||
const labels: Record<string, string> = {
|
||||
"rf4-official": "RF4 · официальный",
|
||||
@@ -12,5 +13,6 @@ const labels: Record<string, string> = {
|
||||
};
|
||||
const label = labels[source] ?? source;
|
||||
const mark = source === "players" ? "♟" : source === "rf4-official" ? "★" : "↗";
|
||||
const safeHref = safeHttpUrl(href);
|
||||
---
|
||||
{href ? <a class="source-chip" data-source={source} data-tone={tone} href={href} target="_blank" rel="noreferrer" title={`Открыть источник: ${label}`}><i>{mark}</i><span>{label}</span></a> : <span class="source-chip" data-source={source} data-tone={tone}><i>{mark}</i><span>{label}</span></span>}
|
||||
{safeHref ? <a class="source-chip" data-source={source} data-tone={tone} href={safeHref} target="_blank" rel="noreferrer" title={`Открыть источник: ${label}`}><i>{mark}</i><span>{label}</span></a> : <span class="source-chip" data-source={source} data-tone={tone}><i>{mark}</i><span>{label}</span></span>}
|
||||
|
||||
Reference in New Issue
Block a user