实时组件
本地化页脚
共享页脚会根据当前路由解析站点链接,并默认渲染 Copyright 组件。
在哪里查看:滚动到页面底部即可查看真实页脚,链接标签会匹配当前语言。
import Footer from '@hagicode/hagilight/Footer';
<Footer locale="zh-CN" links={{ rssFeedUrl: '/rss.xml' }} />@hagicode/hagilight · 独立 Astro 示例
通过独立的 Astro 双语示例,了解 @hagicode/hagilight 提供的共享组件和构建集成。
浏览功能以下展示的是实际加载的包组件,而不是仿制的静态界面。
实时组件
共享页脚会根据当前路由解析站点链接,并默认渲染 Copyright 组件。
在哪里查看:滚动到页面底部即可查看真实页脚,链接标签会匹配当前语言。
import Footer from '@hagicode/hagilight/Footer';
<Footer locale="zh-CN" links={{ rssFeedUrl: '/rss.xml' }} />页脚内实时呈现 · 可单独导入
Footer 默认组合 Copyright,也可以在其他位置单独渲染。
在哪里查看:页脚展示当前年份和 HagiCode 名称。
import Copyright from '@hagicode/hagilight/Copyright';
<Copyright name="HagiCode" />实时组合
布局将由站点提供的 RSS 地址传入链接解析器和 Footer。
在哪里查看:页眉和页脚中的 RSS 链接都会指向此示例的 feed。
import { resolveSiteLinks } from '@hagicode/hagilight/site-links';
const links = resolveSiteLinks('zh-CN', {
rssFeedUrl: '/rss.xml',
});实时组件 · 远程推广为可选
PromotoBanner 优先展示符合条件的远程推广;没有可用推广时使用本地化后备内容。
在哪里查看:本页挂载了该组件;后备按钮会跳转到页脚,组件进入页脚区域时会隐藏。
import PromotoBanner from '@hagicode/hagilight/PromotoBanner';
<PromotoBanner locale="zh-CN" fallback={fallbackCard} />实时资源
页面页眉直接导入并显示包中提供的 Logo 图片资源。
在哪里查看:请查看页面顶部的 Hagilight 标志。
import logo from '@hagicode/hagilight/logo.png';
<img src={logo.src} alt="Hagilight" />这些集成会生成元数据、浏览器图标或 feed,不会额外显示成页面组件。
真实文档 head
SEOHead 为当前路由生成 canonical 地址,以及 Open Graph 和 Twitter 标题、描述元数据。
在哪里查看:检查本页文档 head 或查看源代码中的 canonical 和分享字段。
import SEOHead from '@hagicode/hagilight/SEOHead';
const site = Astro.site.href;
const pageUrl = new URL(Astro.url.pathname, site).href;
<SEOHead
site={site}
page={{ url: pageUrl, title, description }}
structuredData={pageStructuredData}
/>构建时工具
工具函数可构造安全的 canonical 和 JSON-LD 数据;seoSchema 用于校验可选 frontmatter 字段。
在哪里查看:本页 head 中的 JSON-LD 脚本只包含示例站点和页面事实。
import { buildBreadcrumbStructuredData } from '@hagicode/hagilight/seo-utils';
import { seoSchema } from '@hagicode/hagilight/seo-schema';
const pageSeo = seoSchema.parse({ seo: { title, description } });浏览器标签页可见 · 构建集成
Astro 集成会加入内置 favicon;包也导出 favicon.ico 静态资源,可复制到站点目录。
在哪里查看:查看浏览器标签页图标;集成会将 data URI 注入生成页面的 head。
import { hagilightFavicon } from '@hagicode/hagilight/favicon';
import favicon from '@hagicode/hagilight/favicon.ico';
integrations: [hagilightFavicon()]
<link rel="icon" href={favicon} type="image/x-icon" />真实构建产物 · 路由由使用方负责
包内 renderer 负责格式化 feed 数据,而 /rss.xml 路由和条目由 Astro 站点维护。
在哪里查看:点击页眉或页脚中的 RSS 链接即可打开生成的 feed。
import { generateRssFeed } from '@hagicode/hagilight/rss';
export const GET: APIRoute = ({ site }) => generateRssFeed({
site, title, description, language: 'zh-CN', items,
});以下仅为导入示例;本展示页不会加载分析脚本或发送访客数据。
可选 · 仅生产环境加载脚本
两个组件都需要 ID,并且只会在生产构建中输出第三方跟踪脚本。
在哪里查看:本页没有挂载任一组件,因此构建后的示例不会跟踪访客。
import GoogleAnalytics from '@hagicode/hagilight/GoogleAnalytics';
import Analytics51LA from '@hagicode/hagilight/Analytics51LA';
{import.meta.env.PUBLIC_GA_ID && <GoogleAnalytics measurementId={import.meta.env.PUBLIC_GA_ID} />}
{import.meta.env.PUBLIC_51LA_SITE_ID && <Analytics51LA siteId={import.meta.env.PUBLIC_51LA_SITE_ID} />}推广示例:符合条件的远程推广可能替代此本地后备内容。后备链接会跳转到页脚,以演示组件的可见性行为。