优化前端显示

This commit is contained in:
NewName
2025-05-20 18:06:22 +08:00
parent 0866ed4742
commit 487b463ca0
2 changed files with 22 additions and 10 deletions

View File

@@ -647,7 +647,15 @@
card.className = 'result-card'; card.className = 'result-card';
// 构建显示名称 // 构建显示名称
const displayName = result.is_official ? result.name : `${result.namespace}/${result.name}`; let displayName = result.name;
if (result.is_official) {
// 对于官方镜像,去掉 library/ 前缀
displayName = result.name.replace('library/', '');
} else {
// 对于非官方镜像,显示完整路径
displayName = `${result.namespace}/${result.name}`;
}
const description = result.short_description || '暂无描述'; const description = result.short_description || '暂无描述';
const starCount = result.star_count || 0; const starCount = result.star_count || 0;
const pullCount = result.pull_count || 0; const pullCount = result.pull_count || 0;
@@ -660,8 +668,8 @@
if (organization) badges.push(`<span class="badge badge-organization">By ${organization}</span>`); if (organization) badges.push(`<span class="badge badge-organization">By ${organization}</span>`);
const stats = []; const stats = [];
if (pullCount > 0) stats.push(`<svg class="icon" viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" d="M13 5.41V21h-2V5.41L5.41 11 4 9.59 12 1.59l8 8L18.59 11z"/></svg>${formatNumber(pullCount)}+`); if (starCount > 0) stats.push(`<span class="meta-item">⭐ ${formatNumber(starCount)}</span>`);
if (starCount > 0) stats.push(`<svg class="icon" viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></svg>${formatNumber(starCount)}`); if (pullCount > 0) stats.push(`<span class="meta-item">⬇️ ${formatNumber(pullCount)}+</span>`);
card.innerHTML = ` card.innerHTML = `
<div class="result-title"> <div class="result-title">
@@ -671,7 +679,7 @@
<div class="result-description">${description}</div> <div class="result-description">${description}</div>
<div class="result-meta"> <div class="result-meta">
<div class="meta-stats"> <div class="meta-stats">
${stats.length > 0 ? `<span class="meta-item">${stats.join(' ')}</span>` : ''} ${stats.join(' ')}
${lastUpdated ? `<span class="meta-item">更新于 ${formatTimeAgo(lastUpdated)}</span>` : ''} ${lastUpdated ? `<span class="meta-item">更新于 ${formatTimeAgo(lastUpdated)}</span>` : ''}
</div> </div>
${pullsLastWeek > 0 ? ` ${pullsLastWeek > 0 ? `
@@ -686,7 +694,7 @@
card.addEventListener('click', () => { card.addEventListener('click', () => {
currentRepo = result; currentRepo = result;
const namespace = result.namespace || (result.is_official ? 'library' : ''); const namespace = result.namespace || (result.is_official ? 'library' : '');
const repoName = result.name || result.repo_name; const repoName = result.name.replace('library/', '');
if (!namespace || !repoName) { if (!namespace || !repoName) {
showToast('无效的仓库信息'); showToast('无效的仓库信息');
return; return;

View File

@@ -161,8 +161,15 @@ func searchDockerHub(ctx context.Context, query string, page, pageSize int) (*Se
// 处理搜索结果 // 处理搜索结果
for i := range result.Results { for i := range result.Results {
// 从 repo_name 中提取 namespace if result.Results[i].IsOfficial {
if !result.Results[i].IsOfficial { // 确保官方镜像有正确的名称格式
if !strings.Contains(result.Results[i].Name, "/") {
result.Results[i].Name = "library/" + result.Results[i].Name
}
// 设置命名空间为 library
result.Results[i].Namespace = "library"
} else {
// 从 repo_name 中提取 namespace
parts := strings.Split(result.Results[i].Name, "/") parts := strings.Split(result.Results[i].Name, "/")
if len(parts) > 1 { if len(parts) > 1 {
result.Results[i].Namespace = parts[0] result.Results[i].Namespace = parts[0]
@@ -170,9 +177,6 @@ func searchDockerHub(ctx context.Context, query string, page, pageSize int) (*Se
} else { } else {
result.Results[i].Namespace = result.Results[i].RepoOwner result.Results[i].Namespace = result.Results[i].RepoOwner
} }
} else {
result.Results[i].Name = strings.TrimPrefix(result.Results[i].Name, "library/")
result.Results[i].Namespace = "library"
} }
} }