diff --git a/themes/Ying/assets/js/modules/artalk.js b/themes/Ying/assets/js/modules/artalk.js index cecd5189..a48fcdfe 100644 --- a/themes/Ying/assets/js/modules/artalk.js +++ b/themes/Ying/assets/js/modules/artalk.js @@ -1302,6 +1302,18 @@ artalk.on('comment-rendered', function(node) { while (wrap.firstChild) wrapParent.insertBefore(wrap.firstChild, wrap); wrapParent.removeChild(wrap); } + // 5.5) 统一排序兜底:不管 Artalk 把系统徽章渲染在哪、什么时候渲染, + // 最终顺序强制为:系统徽章(博主/小编) > 置顶 > 头衔 > 友链 > 友圈 > 官职。 + // 实测:管理员的系统徽章在 .atk-badge-wrap 里、走上面的逻辑会排在最前; + // 普通用户的 badge_name 徽章(小编)由 Artalk 稍后直接追加到昵称末尾, + // 会排到友链/友圈/官职后面 —— 这里按优先级重排,两种路径都归位。 + var PRIO = ['.atk-badge', '.atk-pinned-badge', '.atk-title-badge', '.atk-link-badge', '.atk-feed-badge', '.atk-rank-badge']; + var badgeFrag = document.createDocumentFragment(); + for (var pi = 0; pi < PRIO.length; pi++) { + var priEls = nickEl.querySelectorAll(PRIO[pi]); + for (var pei = 0; pei < priEls.length; pei++) badgeFrag.appendChild(priEls[pei]); + } + nickEl.appendChild(badgeFrag); // 6) 所有徽章挂同一个类,几何样式(尺寸/内边距/圆角/字重/对齐)只由 // .atk-cmt-badge 一处定义,从此不会有"两种徽章尺寸不一致"的问题 var allBadges = nickEl.querySelectorAll(