Files
BaiTu-homepage/static/js/websites_my.js
2026-01-30 20:13:27 +08:00

133 lines
4.7 KiB
JavaScript

// ========== 网站链接数据 (包含中英双语) ==========
const websitesData = [
{
// 分类标题
category_zh: '个人博客',
category_en: 'Personal Blogs',
items: [
{
url: 'https://www.ittoolman.top/',
linkText_zh: 'ittoolman.top - Github托管',
linkText_en: 'ittoolman.top - Github Page'
},
{
url: 'https://blog.iletter.top/',
linkText_zh: 'blog.iletter.top - typecho用户的最后坚守',
linkText_en: 'blog.iletter.top - Last Stand for Typecho Users'
}
]
},
{
category_zh: '私人在线应用',
category_en: 'Personal Online Apps',
items: [
{
url: 'https://img.iletter.top/',
linkText_zh: '简单图床 - 私人图床工具',
linkText_en: 'EsayImage2 - Image Uploader Tool'
},
{
url: 'https://gitea.iletter.top/',
linkText_zh: 'Gitea - 私人git托管仓库',
linkText_en: 'Gitea - Private Git Repository'
},
{
url: 'http://openlist.iletter.top/',
linkText_zh: 'OpenList - 在线云盘合集',
linkText_en: 'OpenList - Online Cloud Disk Collection'
},
{
url: 'http://umami.iletter.top/',
linkText_zh: 'Umami - 网站访问分析',
linkText_en: 'Umami - Website visit analysis'
},
{
url: 'http://beszel.iletter.top/',
linkText_zh: 'Beszel - 服务器监控',
linkText_en: 'Beszel - Server Monitoring'
},
{
url: 'http://py.iletter.top/en-de-code',
linkText_zh: 'Base64在线加密解密 - 自写demo',
linkText_en: 'Base64 Online Encryption and Decryption - My Demo'
},
]
}
// 如果你想添加新分类,可以仿照上面的格式:
/*
{
category_zh: '新的分类名',
category_en: 'New Category Name',
items: [
{
url: 'https://example.com/',
linkText_zh: '示例网站',
linkText_en: 'Example Site'
}
]
}
*/
];
// ========== 渲染网站链接的函数 ==========
function renderWebsites(websitesArray) {
const container = document.getElementById('dynamic-website-links');
if (!container) {
console.error("未找到网站链接容器 #dynamic-website-links");
return;
}
// 检查数组是否为空或未定义/未初始化
const arrayToRender = websitesArray || websitesData;
if (!arrayToRender || !Array.isArray(arrayToRender) || arrayToRender.length === 0) {
const currentLang = localStorage.getItem("preferred_language") || "zh";
let noDataMessage = currentLang === 'en' ? 'No website data available.' : '暂无网站数据';
container.innerHTML = `<div class="memo-error">${noDataMessage}</div>`;
return; // 提前结束函数
}
const currentLang = localStorage.getItem("preferred_language") || "zh";
// 清空容器
container.innerHTML = '';
arrayToRender.forEach(categoryObj => {
// 根据当前语言选择分类标题
const categoryName = currentLang === 'en' ? categoryObj.category_en : categoryObj.category_zh;
// 创建分类标题
const heading = document.createElement('h3');
heading.textContent = categoryName;
container.appendChild(heading);
// 创建一个 div 来包裹该分类下的所有链接
const linksDiv = document.createElement('div');
linksDiv.className = 'category-links'; // 可选,方便 CSS 样式化
categoryObj.items.forEach(item => {
const linkElement = document.createElement('a');
linkElement.href = item.url;
linkElement.target = '_blank';
// 根据当前语言选择链接文本
const linkText = currentLang === 'en' ? item.linkText_en : item.linkText_zh;
linkElement.textContent = linkText;
linksDiv.appendChild(linkElement);
// 添加一个间隔(例如空格或换行符,取决于你的 CSS 布局)
const space = document.createTextNode(' ');
linksDiv.appendChild(space);
});
container.appendChild(linksDiv);
});
}
// ========== 初始化 (可选) ==========
// 如果你想在 DOM 加载完成后自动渲染,可以取消下面的注释
/*
document.addEventListener("DOMContentLoaded", function () {
renderWebsites(); // 不传参数,默认使用 websitesData
});
*/