From d9b4d8fe733c5c2d8c5955a7cc8ea0a6ade73cf6 Mon Sep 17 00:00:00 2001 From: npmrun <1549469775@qq.com> Date: Fri, 24 Apr 2026 21:27:23 +0800 Subject: [PATCH] feat(public-profile): switch public home to modular hub layout Unify public profile aggregation and route canonical handling so the home page acts as a navigation hub with consistent public-only counts, safer external links, and backward-compatible API fields. Made-with: Cursor --- app/components/public-hub/HubModuleCard.vue | 47 ++ app/pages/@[publicSlug]/index.vue | 772 ++++++--------------- app/pages/@[publicSlug]/posts/index.vue | 12 + app/pages/@[publicSlug]/reading/index.vue | 34 +- app/pages/@[publicSlug]/timeline/index.vue | 21 +- app/utils/public-canonical-url.test.ts | 32 + app/utils/public-canonical-url.ts | 36 + app/utils/safe-external-href.test.ts | 20 + app/utils/safe-external-href.ts | 28 + server/api/public/profile/[publicSlug].get.test.ts | 326 +++++++++ server/api/public/profile/[publicSlug].get.ts | 20 +- .../profile/[publicSlug]/consistency.test.ts | 229 ++++++ server/service/public-hub/index.test.ts | 168 +++++ server/service/public-hub/index.ts | 52 ++ 14 files changed, 1217 insertions(+), 580 deletions(-) create mode 100644 app/components/public-hub/HubModuleCard.vue create mode 100644 app/utils/public-canonical-url.test.ts create mode 100644 app/utils/public-canonical-url.ts create mode 100644 app/utils/safe-external-href.test.ts create mode 100644 app/utils/safe-external-href.ts create mode 100644 server/api/public/profile/[publicSlug].get.test.ts create mode 100644 server/api/public/profile/[publicSlug]/consistency.test.ts create mode 100644 server/service/public-hub/index.test.ts create mode 100644 server/service/public-hub/index.ts diff --git a/app/components/public-hub/HubModuleCard.vue b/app/components/public-hub/HubModuleCard.vue new file mode 100644 index 0000000..4031faa --- /dev/null +++ b/app/components/public-hub/HubModuleCard.vue @@ -0,0 +1,47 @@ + + + diff --git a/app/pages/@[publicSlug]/index.vue b/app/pages/@[publicSlug]/index.vue index b3e6584..45c9deb 100644 --- a/app/pages/@[publicSlug]/index.vue +++ b/app/pages/@[publicSlug]/index.vue @@ -1,29 +1,23 @@ @@ -167,13 +207,11 @@ usePageTitle(() => { - - -
+
{