import { AnyNode, Attrs, E } from "ren/node.ts"; export function RepoLink(name: string, repo: string): AnyNode { const gitBase = new URL("https://git.pleshevski.ru"); return Link(name, { href: new URL(repo, gitBase).toString() }); } export function Link( text: string, sourceAttrs: Attrs | Attrs[], ): AnyNode { const attrs = Array.isArray(sourceAttrs) ? sourceAttrs : [sourceAttrs]; const isExternal = attrs.some((attr) => typeof attr.href === "string" && attr.href?.startsWith("http") ); if (isExternal) { attrs.push({ target: "_blank", rel: "external nofollow noopener noreferrer", }); } return E("a", attrs, text); }