From 3ff297a55ade9efca359ae92339b4b326439b4d2 Mon Sep 17 00:00:00 2001 From: JOYCEQL <1449239013@qq.com> Date: Sat, 15 Mar 2025 13:23:24 +0800 Subject: [PATCH] perf: update project link rendering and add fallback for empty links --- src/components/preview/ProjectSection.tsx | 58 +++++++++++++++-------- src/lib/getChangelog.ts | 18 ++++--- 2 files changed, 48 insertions(+), 28 deletions(-) diff --git a/src/components/preview/ProjectSection.tsx b/src/components/preview/ProjectSection.tsx index fe78756..5ae4489 100644 --- a/src/components/preview/ProjectSection.tsx +++ b/src/components/preview/ProjectSection.tsx @@ -15,9 +15,6 @@ const ProjectItem = React.forwardRef( ({ project, globalSettings }, ref) => { const centerSubtitle = globalSettings?.centerSubtitle; - // 根据centerSubtitle判断网格布局为几列 - const gridColumns = centerSubtitle ? 3 : 2; - return ( ( }} > *:last-child]:justify-self-end`} + className={`grid grid-cols-3 gap-2 items-center justify-items-start [&>*:last-child]:justify-self-end`} >

( > {project.name}

- {project.link && !centerSubtitle && ( - - {project.link} - - )}
- {globalSettings?.centerSubtitle && ( + + {project.link && !centerSubtitle && ( + + {(() => { + try { + const url = new URL( + project.link.startsWith("http") + ? project.link + : `https://${project.link}` + ); + return url.hostname.replace(/^www\./, ""); + } catch (e) { + return project.link; + } + })()} + + )} + + {!project.link && !centerSubtitle &&
} + + {centerSubtitle && ( {project.role} @@ -72,12 +85,13 @@ const ProjectItem = React.forwardRef( } target="_blank" rel="noopener noreferrer" - className="text-blue-500 hover:underline" + className="underline" + title={project.link} > {project.link} )} - {project.description && ( + {project.description ? ( ( }} dangerouslySetInnerHTML={{ __html: project.description }} > + ) : ( +
)}
); diff --git a/src/lib/getChangelog.ts b/src/lib/getChangelog.ts index 6bebe32..bb2b0f0 100644 --- a/src/lib/getChangelog.ts +++ b/src/lib/getChangelog.ts @@ -13,22 +13,26 @@ export function getChangelog(): TimelineEntry[] { sections: [ { title: "修复", - items: ["修复多余分割线引起的导出PDF 400 错误"], + items: ["修复多余分割线引起的导出PDF 400 错误"] }, - ], + { + title: "优化", + items: ["项目链接过长时的样式"] + } + ] }, { date: "2025-03-07", sections: [ { title: "新增", - items: ["工作台 Dock 栏支持复制简历", "仪表盘简历模板支持预览大图"], + items: ["工作台 Dock 栏支持复制简历", "仪表盘简历模板支持预览大图"] }, { title: "优化", - items: ["服务端导出PDF 速度优化"], - }, - ], - }, + items: ["服务端导出PDF 速度优化"] + } + ] + } ]; }