import type { MaybeRefOrGetter } from 'vue'; /** 任何具备多语言能力的 CMS 资源应满足的最小契约。 */ export interface HreflangResource { slug: string; available_locales?: string[]; localized_slugs?: Record; } export interface HreflangBuilderParams { /** 当前 locale code;包内对 x-default 单独再调用一次,传入字面量 'x-default'。 */ locale: string | 'x-default'; /** 对应 locale 的本地化 slug;无本地化时回退到资源原 slug。 */ slug: string; /** 完整资源对象,builder 可读取 category / author 等领域字段拼路径。 */ resource: T; } /** * 按资源的 available_locales 注入 hreflang `` 标签。 * * 包内只负责"按 available_locales 过滤 + 添加 x-default 入口";URL 路径结构、 * locale 前缀策略、trailing slash、siteUrl 拼接全部交由 builder 决定, * 因此可适配任意资源路由模式(/{category}/{slug}、/authors/{slug} 等)。 * * 每条 link 带上 `key: cms-hreflang-{locale}`,便于 unhead 跨多次调用去重。 * * @example * useHreflangLinks(article, ({ locale, slug, resource }) => { * const origin = `https://${siteUrl}` * if (locale === 'x-default') return `${origin}/${resource.category}/${slug}/` * const prefix = locale === 'en' ? '' : `/${locale}` * return `${origin}${prefix}/${resource.category}/${slug}/` * }) */ export declare function useHreflangLinks(resource: MaybeRefOrGetter, builder: (params: HreflangBuilderParams) => string): void; //# sourceMappingURL=useHreflangLinks.d.ts.map