feat: 新增 QuantaNote 项目展示,重构项目卡片与截图浏览组件
- 新增 QuantaNote 完整项目数据(特性描述、截图、Logo) - 为所有项目添加 logo 和 websiteUrl 字段支持 - 移除 stars/forks 相关展示与排序逻辑 - ScreenshotCarousel 增加左右切换箭头和 Lightbox 全屏预览(支持键盘导航) - 更新项目创建文档,补充 logo 和 installGuide 配置说明
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Link } from 'react-router-dom';
|
||||
import { ExternalLink, Download, BookOpen, Star } from 'lucide-react';
|
||||
import { ExternalLink, Download, BookOpen, Globe } from 'lucide-react';
|
||||
import { useI18n } from '../hooks/useI18n';
|
||||
import { siteData } from '../data/siteData';
|
||||
import { getIcon } from '../utils/iconRegistry';
|
||||
@@ -17,7 +17,12 @@ export default function ProjectCard({ project }: ProjectCardProps) {
|
||||
return (
|
||||
<div className="project-card">
|
||||
<div className="project-card-header">
|
||||
<div className="project-icon">{IconComponent && <IconComponent size={22} />}</div>
|
||||
<div className="project-icon">
|
||||
{project.logo
|
||||
? <img src={project.logo} alt={project.name} className="project-logo" />
|
||||
: (IconComponent && <IconComponent size={22} />)
|
||||
}
|
||||
</div>
|
||||
<div className="project-card-info">
|
||||
<div className="project-name">
|
||||
<Link to={`/projects/${project.id}`}>{project.displayName[lang] || project.name}</Link>
|
||||
@@ -44,12 +49,6 @@ export default function ProjectCard({ project }: ProjectCardProps) {
|
||||
))}
|
||||
</div>
|
||||
|
||||
<div className="project-card-meta">
|
||||
<span className="badge badge-accent">
|
||||
<Star size={12} /> {project.stars}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div className="project-card-actions">
|
||||
<a href={project.repoUrl} target="_blank" rel="noopener noreferrer" className="btn btn-sm">
|
||||
<ExternalLink size={14} /> GitHub
|
||||
@@ -59,6 +58,16 @@ export default function ProjectCard({ project }: ProjectCardProps) {
|
||||
<Download size={14} /> {t('common.download')}
|
||||
</Link>
|
||||
)}
|
||||
{project.websiteUrl && (
|
||||
<a
|
||||
href={project.websiteUrl}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="btn btn-sm"
|
||||
>
|
||||
<Globe size={14} /> {t('detail.website')}
|
||||
</a>
|
||||
)}
|
||||
{project.docsUrl && (
|
||||
<a
|
||||
href={project.docsUrl}
|
||||
|
||||
Reference in New Issue
Block a user