站点设置是全局值:标题、副标题、徽标、社交账号与展示偏好。在管理后台维护,在模板中用 getSiteSettings() 读取。
读取设置
---
import { getSiteSettings } from "emdash";
const settings = await getSiteSettings();
---
<html lang="en">
<head>
<title>{settings.title}</title>
{settings.favicon && (
<link rel="icon" href={settings.favicon.url} />
)}
</head>
<body>
<header>
{settings.logo ? (
<img src={settings.logo.url} alt={settings.logo.alt || settings.title} />
) : (
<span class="site-title">{settings.title}</span>
)}
{settings.tagline && <p class="tagline">{settings.tagline}</p>}
</header>
<slot />
</body>
</html>
可用字段
与英文文档相同的 SiteSettings / MediaReference TypeScript 接口。
读取单项
import { getSiteSetting } from "emdash";
const title = await getSiteSetting("title");
const logo = await getSiteSetting("logo");
在组件中使用
可提供站点页头、社交链接与 SEO 元信息示例(结构与英文文档 Header.astro、SocialLinks.astro、SEO.astro、PostDate.astro 一致)。
日期格式
dateFormat 为模式字符串,实际渲染可能需要 date-fns 等库配合 timezone。
管理 API
GET /_emdash/api/settings 与 POST /_emdash/api/settings 的 JSON 示例与英文文档相同;更新时只需提交变更字段。媒体字段更新时通常只提交 mediaId。
API 参考
getSiteSettings()→Promise<Partial<SiteSettings>>getSiteSetting(key)→ 按 key 返回对应类型