From 1df179c327d9fc3154b672636293ccad6579cbec Mon Sep 17 00:00:00 2001 From: limitcool Date: Fri, 3 Apr 2026 13:46:08 +0800 Subject: [PATCH] Refactor SEO and JSON-LD handling; improve layout and styles - Introduced `compactJsonLd` utility to filter out falsy values from JSON-LD arrays. - Updated various pages to utilize `compactJsonLd` for cleaner JSON-LD handling. - Refactored music playlist configuration in Header component. - Enhanced BaseLayout with inline script for JSON-LD and removed unnecessary media attributes from stylesheets. - Improved error handling in category and tag pages by simplifying response logic. - Added new styles for home hero section and sidebar components to enhance UI. - Adjusted layout components for better responsiveness and visual consistency. --- frontend/src/components/Header.astro | 3 +- frontend/src/layouts/BaseLayout.astro | 6 +- frontend/src/lib/seo.ts | 8 ++ frontend/src/pages/about/index.astro | 4 +- frontend/src/pages/articles/[slug].astro | 9 +- frontend/src/pages/articles/index.astro | 4 +- frontend/src/pages/ask/index.astro | 4 +- frontend/src/pages/categories/[slug].astro | 44 +++--- frontend/src/pages/friends/index.astro | 4 +- frontend/src/pages/index.astro | 154 +++++++++++---------- frontend/src/pages/reviews/index.astro | 4 +- frontend/src/pages/tags/[slug].astro | 44 +++--- frontend/src/styles/global.css | 128 ++++++++++++++++- 13 files changed, 269 insertions(+), 147 deletions(-) diff --git a/frontend/src/components/Header.astro b/frontend/src/components/Header.astro index 04b4d5f..d1d2d44 100644 --- a/frontend/src/components/Header.astro +++ b/frontend/src/components/Header.astro @@ -17,7 +17,8 @@ const { const { locale, t, buildLocaleUrl } = getI18n(Astro); const aiEnabled = Boolean(Astro.props.siteSettings?.ai?.enabled); const musicEnabled = Astro.props.siteSettings?.musicEnabled ?? true; -const musicPlaylist = (musicEnabled ? Astro.props.siteSettings?.musicPlaylist : []).filter( +const configuredMusicPlaylist = Astro.props.siteSettings?.musicPlaylist ?? []; +const musicPlaylist = (musicEnabled ? configuredMusicPlaylist : []).filter( (item) => item?.title?.trim() && item?.url?.trim() ); const musicPlaylistPayload = JSON.stringify(musicPlaylist); diff --git a/frontend/src/layouts/BaseLayout.astro b/frontend/src/layouts/BaseLayout.astro index 10f874f..4aed7c1 100644 --- a/frontend/src/layouts/BaseLayout.astro +++ b/frontend/src/layouts/BaseLayout.astro @@ -150,7 +150,7 @@ const i18nPayload = JSON.stringify({ locale, messages }); /> {title} - {jsonLd && } + {jsonLd && }