diff --git a/themes/Ying/assets/js/modules/artalk.js b/themes/Ying/assets/js/modules/artalk.js index 864bf0e4..82a1caf3 100644 --- a/themes/Ying/assets/js/modules/artalk.js +++ b/themes/Ying/assets/js/modules/artalk.js @@ -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 + '条评论)';