From ab94c252733199427fe2dfcf25346b6be93cf61e Mon Sep 17 00:00:00 2001 From: zqlit Date: Sat, 3 Oct 2026 17:13:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=91=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E5=90=8E=E5=8D=A1=E7=89=87=E8=A2=AB=E6=8C=A4=E4=B8=8B=E5=8E=BB?= =?UTF-8?q?=EF=BC=9A=E5=8E=9F=E8=AF=84=E8=AE=BA=E5=86=85=E5=AE=B9=E6=94=B9?= =?UTF-8?q?=E7=94=A8class+!important=E9=9A=90=E8=97=8F(Artalk=E9=87=8D?= =?UTF-8?q?=E6=B8=B2=E6=9F=93=E4=BC=9A=E6=8A=B9=E6=8E=89=E5=86=85=E8=81=94?= =?UTF-8?q?display)=EF=BC=8C=E8=BD=AC=E6=8D=A2=E9=80=BB=E8=BE=91=E6=94=B9?= =?UTF-8?q?=E5=B9=82=E7=AD=89=E8=87=AA=E6=84=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- themes/Ying/assets/js/modules/artalk.js | 5 ++++- themes/Ying/layouts/partials/artalk.html | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/themes/Ying/assets/js/modules/artalk.js b/themes/Ying/assets/js/modules/artalk.js index 68f88983..5f975d3c 100644 --- a/themes/Ying/assets/js/modules/artalk.js +++ b/themes/Ying/assets/js/modules/artalk.js @@ -722,9 +722,12 @@ artalk.on('comment-rendered', function(node) { if (!d2 || !el2) return; var content = String(d2.content || '').trim().replace(/\/+$/, '').toLowerCase(); if (content !== 'https://usj.cc/link-apply') return; - if (el2.querySelector('.atk-fl-apply')) return; + // 幂等 + 自愈:class 每次渲染都补一次(隐藏原评论内容的 CSS 规则依赖它), + // 已有卡片就直接返回,避免 Artalk 重渲染时出现第二张卡片 el2.classList.add('atk-fl-apply'); + if (el2.querySelector('.atk-fl-card')) return; + el2.style.cursor = 'pointer'; el2.title = '点击申请友链'; diff --git a/themes/Ying/layouts/partials/artalk.html b/themes/Ying/layouts/partials/artalk.html index 367522a6..7fb103f8 100644 --- a/themes/Ying/layouts/partials/artalk.html +++ b/themes/Ying/layouts/partials/artalk.html @@ -99,6 +99,16 @@ /* ================= 友链申请入口卡片 ================= PJAX 下每次切页评论区都会重建卡片 → 入场动画与打字机自然重播; 打字机定时器在 artalk.js 里会检测卡片是否还在文档中(切页后自动停)。 */ + + /* 卡片评论:常规内容(头像/昵称/正文/页脚)整体隐藏。 + 必须用 class + !important,不能用 JS 内联 display:none —— + Artalk 发完新评论会重渲染 .atk-main,内联样式会被抹掉, + 原评论正文(那条 URL)就会重新冒出来把卡片挤下去(刷新才恢复)。 */ + .atk-comment-wrap.atk-fl-apply > .atk-main, + .atk-comment-wrap.atk-fl-apply > .atk-comment > .atk-main, + .atk-comment.atk-fl-apply > .atk-main { + display: none !important; + } .atk-fl-card { animation: flApplyIn .5s cubic-bezier(.22, 1, .36, 1) both; }