评论徽章全展示按优先级排序 + 新增金色头衔徽章
Deploy to Production / pre-check (push) Successful in 1m12s
Deploy to Production / build (push) Successful in 2m52s
Deploy to Production / deploy-edgeone (push) Successful in 3m27s
Deploy to Production / finalize (push) Successful in 30s
Deploy to Production / notify-failure (push) Skipped

- 徽章不再互斥:满足条件全部展示,排序 = 系统徽章(博主等)
  > 头衔(新增)> 友链 > 友圈 > 官职
- 头衔徽章:后端 users 表新增 title_name 字段,管理面板用户编辑
  可设置,金色 UI 与官职一致,优先级仅次于系统徽章
- 官方 badge-wrap 挪进昵称元素内,保证与主题徽章的排序正确
This commit is contained in:
QunLIn committed 2026-10-03 13:37:22 +08:00
1 parent da1a77a313
commit 79c1e51d5c
1 file changed
+14 -8
+14 -8
View File
@@ -669,17 +669,23 @@ artalk.on('comment-rendered', function(node) {
var host = null;
try { if (data.link) host = normalizeHost(new URL(data.link).hostname); } catch (e) {}
// 优先级:友链 > 友圈 > 官职(互斥,只注入一枚主题徽章)
var linkMatch = matchBadge(linkMap, host, nickLower);
if (linkMatch) {
injectBadge(nickEl, 'atk-link-badge', '友链', '友链: ' + linkMatch);
return;
}
var feedMatch = matchBadge(feedMap, host, nickLower);
if (feedMatch) {
injectBadge(nickEl, 'atk-feed-badge', '友圈', '友圈: ' + feedMatch);
return;
// 官方系统徽章(博主等)由 Artalk 渲染在 .atk-badge-wrap,把它挪进
// 昵称元素内,保证视觉顺序:系统徽章 > 头衔 > 友链 > 友圈 > 官职
var badgeWrap = el.querySelector('.atk-badge-wrap');
if (badgeWrap && badgeWrap.parentNode !== nickEl) nickEl.appendChild(badgeWrap);
// 1) 头衔徽章(金色,管理员在后台手动设置,仅次于系统徽章)
if (data.title_name && !nickEl.querySelector('.atk-title-badge')) {
injectBadge(nickEl, 'atk-title-badge', data.title_name, '头衔: ' + data.title_name, '#b8860b', 'rgba(197,136,27,.16)');
}
// 2) 友链
if (linkMatch) injectBadge(nickEl, 'atk-link-badge', '友链', '友链: ' + linkMatch);
// 3) 友圈
if (feedMatch) injectBadge(nickEl, 'atk-feed-badge', '友圈', '友圈: ' + feedMatch);
// 4) 评论官职(按全站评论数)
if (data.rank_name && !nickEl.querySelector('.atk-rank-badge')) {
var tip = data.rank_title || data.rank_name;
if (data.rank_count != null) tip += ' (' + data.rank_count + '条评论)';