fix theme

This commit is contained in:
2026-02-10 15:51:44 +08:00
parent 1203a7168b
commit 6b37ddd9c7
3 changed files with 93 additions and 10 deletions

View File

@@ -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 `<div class='liushen-tag-link'><a class="tag-Link" target="_blank" href="${link}">
<div class="tag-link-tips">${tipMessage}</div>
<div class="tag-link-bottom">
<div class="tag-link-left" style="background-image: url(${imgUrl});"></div>
<div class="tag-link-right">
<div class="tag-link-title">${title}</div>
<div class="tag-link-sitename">${sitename}</div>
</div>
<i class="fa-solid fa-angle-right"></i>
</div>
</a></div>`;
}
hexo.extend.tag.register('link', link, { ends: false });

View File

@@ -1,4 +1,3 @@
#nav-right{ #nav-right{
flex:1 1 auto; flex:1 1 auto;
justify-content: flex-end; justify-content: flex-end;
@@ -176,22 +175,17 @@
background: rgba(255, 255, 255, 0.05); background: rgba(255, 255, 255, 0.05);
} }
/* --- 附加补丁:确保文章标题正常显示且居中 --- */
/* 1. 当文章标题显示类名触发时,确保它能浮现 */
#nav.show-title .nav-page-title { #nav.show-title .nav-page-title {
display: flex !important; display: flex !important;
opacity: 1 !important; opacity: 1 !important;
visibility: visible !important; visibility: visible !important;
/* 强制居中,不影响你原本的 blog-info 和 nav-right */
position: absolute !important; position: absolute !important;
left: 50% !important; left: 50% !important;
transform: translateX(-50%) !important; transform: translateX(-50%) !important;
white-space: nowrap !important; white-space: nowrap !important;
z-index: 1000 !important; /* 确保层级高于你原本的 menus */ z-index: 1000 !important;
} }
/* 2. 滚动时自动隐藏原本占据 100% 宽度的菜单和站点标题,防止重叠 */
#nav.show-title #menus, #nav.show-title #menus,
#nav.show-title .nav-site-title { #nav.show-title .nav-site-title {
opacity: 0 !important; opacity: 0 !important;
@@ -199,13 +193,11 @@
pointer-events: none !important; pointer-events: none !important;
} }
/* 3. 修正文章标题的基础状态,防止它在页面顶端时乱入 */
#nav .nav-page-title { #nav .nav-page-title {
display: none; /* 默认隐藏,由 show-title 类名控制 */ display: none;
transition: opacity 0.3s ease; transition: opacity 0.3s ease;
} }
/* 4. 保持你原本 blog-info 的溢出显示,确保指纹菜单可用 */
#nav #blog-info { #nav #blog-info {
overflow: visible !important; overflow: visible !important;
} }

View File

@@ -28,6 +28,9 @@
position: relative; position: relative;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
display: flex;
flex-wrap: wrap; /* 允许换行 */
align-items: flex-start; /* 防止高度拉伸导致变形 */
} }
#talk .talk_item { #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_meta,
#talk .talk_bottom { #talk .talk_bottom {