Files
BaiTu-homepage/static/js/my-websites.js
2026-01-14 21:43:58 +08:00

99 lines
3.4 KiB
JavaScript

// 定义网站数据
const websitesData = [
{
category: 'personal_blog_h3', // 分类标识符,对应国际化 key
items: [
{
url: 'https://www.ittoolman.top/',
linkTextKey: 'personal_blog_link1'
},
{
url: 'https://blog.iletter.top/',
linkTextKey: 'personal_blog_link2'
}
]
},
{
category: 'online_apps',
items: [
{
url: 'https://img.iletter.top/',
linkTextKey: 'online_app_link1'
},
{
url: 'https://gitea.iletter.top/',
linkTextKey: 'online_app_link2'
},
{
url: 'http://openlist.iletter.top/',
linkTextKey: 'online_app_link3'
},
{
url: 'http://umami.iletter.top/',
linkTextKey: 'online_app_link4'
},
{
url: 'http://beszel.iletter.top/',
linkTextKey: 'online_app_link5'
}
]
}
];
function renderWebsites(data, translations, lang = 'zh') {
const container = document.getElementById('dynamic-website-links');
if (!container) {
console.error("Container '#dynamic-website-links' not found.");
return;
}
// 清空容器
container.innerHTML = '';
data.forEach(categoryObj => {
const catKey = categoryObj.category;
const items = categoryObj.items;
// 创建分类标题
const heading = document.createElement('h3');
// 使用传入的语言获取翻译文本
const translatedHeadingText = translations[lang][catKey];
if (translatedHeadingText !== undefined) {
heading.textContent = translatedHeadingText;
} else {
// 如果找不到翻译,则显示 key 或一个默认值
console.warn(`Translation key '${catKey}' not found for language '${lang}'`);
heading.textContent = catKey; // 或者设置为 "Unknown Category"
}
container.appendChild(heading);
// 创建一个 div 来包裹该分类下的所有链接
const linksDiv = document.createElement('div');
linksDiv.className = 'category-links'; // 可选,方便 CSS 样式化
items.forEach(item => {
const linkElement = document.createElement('a');
linkElement.href = item.url;
linkElement.target = '_blank';
// 获取链接的显示文本
const linkTextKey = item.linkTextKey;
const translatedLinkText = translations[lang][linkTextKey];
if (translatedLinkText !== undefined) {
linkElement.textContent = translatedLinkText;
} else {
// 如果找不到翻译,则显示 key 或一个默认值
console.warn(`Translation key '${linkTextKey}' not found for language '${lang}'`);
linkElement.textContent = item.url; // 或者设置为 "Link"
}
linksDiv.appendChild(linkElement);
// 添加一个间隔(例如空格或换行符,取决于你的 CSS 布局)
const space = document.createTextNode(' ');
linksDiv.appendChild(space);
});
container.appendChild(linksDiv);
});
}