From 6b37ddd9c71b17d5f64164b53069567b57198855 Mon Sep 17 00:00:00 2001 From: bisnsh Date: Tue, 10 Feb 2026 15:51:44 +0800 Subject: [PATCH] fix theme --- themes/butterfly/scripts/tag/link.js | 76 ++++++++++++++++++++++++ themes/butterfly/source/css/nav.css | 12 +--- themes/butterfly/source/css/shuoshuo.css | 15 +++++ 3 files changed, 93 insertions(+), 10 deletions(-) create mode 100644 themes/butterfly/scripts/tag/link.js diff --git a/themes/butterfly/scripts/tag/link.js b/themes/butterfly/scripts/tag/link.js new file mode 100644 index 0000000..bf65443 --- /dev/null +++ b/themes/butterfly/scripts/tag/link.js @@ -0,0 +1,76 @@ +function link(args) { + args = args.join(' ').split(','); + let title = args[0]; + let sitename = args[1]; + let link = args[2]; + + // 定义不同域名对应的头像URL + const avatarUrls = { + 'github.com': 'https://pic.biss.click/image/ed410d4e-d3f8-4b26-8840-50dd58f7dc4e.webp', + 'csdn.net': 'https://pic.biss.click/image/ed410d4e-d3f8-4b26-8840-50dd58f7dc4e.webp', + 'gitee.com': 'https://pic.biss.click/image/579241d4-6224-467b-840e-57bf63380e54.webp', + 'zhihu.com': 'https://pic.biss.click/image/1fe71116-4535-4be9-9378-0e0650fd0532.webp', + 'stackoverflow.com': 'https://pic.biss.click/image/0c02383a-f97b-4f0d-8ab0-486bc13478bd.svg', + 'wikipedia.org': 'https://pic.biss.click/image/fa4fc91d-b3a3-4559-b72c-b2d2046feacf.webp', + }; + + // 定义白名单域名 + const whitelistDomains = [ + 'biss.click' + ]; + + // 获取URL的根域名 + function getRootDomain(url) { + const hostname = new URL(url).hostname; + const domainParts = hostname.split('.').reverse(); + if (domainParts.length > 1) { + return domainParts[1] + '.' + domainParts[0]; + } + return hostname; + } + + // 根据URL获取对应的头像URL + function getAvatarUrl(url) { + const rootDomain = getRootDomain(url); + for (const domain in avatarUrls) { + if (domain.endsWith(rootDomain)) { + return avatarUrls[domain]; + } + } + return 'https://pic.biss.click/image/1971bdc1-4349-4bb9-b683-20404f5da7d7.webp'; // 默认头像URL + } + + // 检查是否在白名单中 + function isWhitelisted(url) { + const rootDomain = getRootDomain(url); + for (const domain of whitelistDomains) { + if (rootDomain.endsWith(domain)) { + return true; + } + } + return false; + } + + // 获取对应的头像URL + let imgUrl = getAvatarUrl(link); + + // 判断并生成提示信息 + // 判断并生成提示信息 + let tipMessage = isWhitelisted(link) + ? "✅来自本站,本站可确保其安全性,请放心点击跳转" + : "🪧引用站外地址,不保证站点的可用性和安全性"; + + return ``; +} + +hexo.extend.tag.register('link', link, { ends: false }); diff --git a/themes/butterfly/source/css/nav.css b/themes/butterfly/source/css/nav.css index d3cb705..6ed56ad 100644 --- a/themes/butterfly/source/css/nav.css +++ b/themes/butterfly/source/css/nav.css @@ -1,4 +1,3 @@ - #nav-right{ flex:1 1 auto; justify-content: flex-end; @@ -176,22 +175,17 @@ background: rgba(255, 255, 255, 0.05); } -/* --- 附加补丁:确保文章标题正常显示且居中 --- */ - -/* 1. 当文章标题显示类名触发时,确保它能浮现 */ #nav.show-title .nav-page-title { display: flex !important; opacity: 1 !important; visibility: visible !important; - /* 强制居中,不影响你原本的 blog-info 和 nav-right */ position: absolute !important; left: 50% !important; transform: translateX(-50%) !important; white-space: nowrap !important; - z-index: 1000 !important; /* 确保层级高于你原本的 menus */ + z-index: 1000 !important; } -/* 2. 滚动时自动隐藏原本占据 100% 宽度的菜单和站点标题,防止重叠 */ #nav.show-title #menus, #nav.show-title .nav-site-title { opacity: 0 !important; @@ -199,13 +193,11 @@ pointer-events: none !important; } -/* 3. 修正文章标题的基础状态,防止它在页面顶端时乱入 */ #nav .nav-page-title { - display: none; /* 默认隐藏,由 show-title 类名控制 */ + display: none; transition: opacity 0.3s ease; } -/* 4. 保持你原本 blog-info 的溢出显示,确保指纹菜单可用 */ #nav #blog-info { overflow: visible !important; } \ No newline at end of file diff --git a/themes/butterfly/source/css/shuoshuo.css b/themes/butterfly/source/css/shuoshuo.css index 3e0b8f5..c864222 100644 --- a/themes/butterfly/source/css/shuoshuo.css +++ b/themes/butterfly/source/css/shuoshuo.css @@ -28,6 +28,9 @@ position: relative; width: 100%; box-sizing: border-box; + display: flex; + flex-wrap: wrap; /* 允许换行 */ + align-items: flex-start; /* 防止高度拉伸导致变形 */ } #talk .talk_item { @@ -60,6 +63,18 @@ } } +/* 给 Meting 播放器预留约 80px 的固定高度 */ +meting-js { + display: block; + min-height: 100px; + margin-top: 10px; +} + +/* 如果有视频,也预留一下比例高度 */ +.talk_content iframe { + min-height: 150px; +} + /* ================= 头部信息 ================= */ #talk .talk_meta, #talk .talk_bottom {