feat: 添加站点设置中的 favicon URL 支持,更新相关接口和页面
All checks were successful
ui-regression / playwright-regression (push) Successful in 6m20s
docker-images / resolve-build-targets (push) Successful in 6s
docker-images / build-and-push (admin) (push) Successful in 25s
docker-images / build-and-push (backend) (push) Successful in 35s
docker-images / build-and-push (frontend) (push) Successful in 1m46s
docker-images / submit-indexnow (push) Successful in 15s
All checks were successful
ui-regression / playwright-regression (push) Successful in 6m20s
docker-images / resolve-build-targets (push) Successful in 6s
docker-images / build-and-push (admin) (push) Successful in 25s
docker-images / build-and-push (backend) (push) Successful in 35s
docker-images / build-and-push (frontend) (push) Successful in 1m46s
docker-images / submit-indexnow (push) Successful in 15s
This commit is contained in:
@@ -412,6 +412,7 @@ export interface AdminSiteSettingsResponse {
|
||||
media_r2_public_base_url: string | null
|
||||
media_r2_access_key_id: string | null
|
||||
media_r2_secret_access_key: string | null
|
||||
seo_favicon_url: string | null
|
||||
seo_default_og_image: string | null
|
||||
seo_default_twitter_handle: string | null
|
||||
seo_wechat_share_qr_enabled: boolean
|
||||
@@ -489,6 +490,7 @@ export interface SiteSettingsPayload {
|
||||
mediaR2PublicBaseUrl?: string | null
|
||||
mediaR2AccessKeyId?: string | null
|
||||
mediaR2SecretAccessKey?: string | null
|
||||
seoFaviconUrl?: string | null
|
||||
seoDefaultOgImage?: string | null
|
||||
seoDefaultTwitterHandle?: string | null
|
||||
seoWechatShareQrEnabled?: boolean
|
||||
|
||||
@@ -216,6 +216,7 @@ function toPayload(form: AdminSiteSettingsResponse): SiteSettingsPayload {
|
||||
mediaR2PublicBaseUrl: form.media_r2_public_base_url,
|
||||
mediaR2AccessKeyId: form.media_r2_access_key_id,
|
||||
mediaR2SecretAccessKey: form.media_r2_secret_access_key,
|
||||
seoFaviconUrl: form.seo_favicon_url,
|
||||
seoDefaultOgImage: form.seo_default_og_image,
|
||||
seoDefaultTwitterHandle: form.seo_default_twitter_handle,
|
||||
seoWechatShareQrEnabled: form.seo_wechat_share_qr_enabled,
|
||||
@@ -915,6 +916,22 @@ export function SiteSettingsPage() {
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent className="grid gap-6 lg:grid-cols-2">
|
||||
<Field label="Favicon URL" hint="浏览器标签页图标;支持外链,也支持上传 / 抓取 / 选择媒体库。">
|
||||
<div className="space-y-3">
|
||||
<Input
|
||||
value={form.seo_favicon_url ?? ''}
|
||||
onChange={(event) => updateField('seo_favicon_url', event.target.value)}
|
||||
/>
|
||||
<MediaUrlControls
|
||||
value={form.seo_favicon_url ?? ''}
|
||||
onChange={(seoFaviconUrl) => updateField('seo_favicon_url', seoFaviconUrl)}
|
||||
prefix="seo-assets/"
|
||||
contextLabel="站点 favicon 上传"
|
||||
remoteTitle={form.site_name || form.site_title || '站点 favicon'}
|
||||
dataTestIdPrefix="site-favicon"
|
||||
/>
|
||||
</div>
|
||||
</Field>
|
||||
<Field label="默认 OG 图 URL" hint="文章未单独设置时作为分享图回退,也支持上传 / 抓取 / 选择媒体库。">
|
||||
<div className="space-y-3">
|
||||
<Input
|
||||
|
||||
Reference in New Issue
Block a user