added:友联本地和远程重写逻辑
This commit is contained in:
1 parent
c83c28fb9c
commit
c7e2f77893
4 files changed
+472
-4
No files matched your search
@@ -70,13 +70,49 @@
|
||||
</style>
|
||||
<div class="post-content" itemprop="articleBody">
|
||||
<div class="links">
|
||||
<ul uk-scrollspy="target: > li; cls: uk-animation-slide-bottom-small; delay: 0">
|
||||
<ul id="links-list" uk-scrollspy="target: > li; cls: uk-animation-slide-bottom-small; delay: 0">
|
||||
<!-- 静态生成的内容作为 SEO 兜底或构建时数据 -->
|
||||
{{ range site.Data.links.blogs }}
|
||||
<li><a href="{{ .url }}" class="url-name">{{ .name }}</a><span style="margin-left: 13px;">{{
|
||||
.description }}</span></li>
|
||||
<li><a href="{{ .url }}" class="url-name" target="_blank">{{ .name }}</a><span style="margin-left: 13px;">{{ .description }}</span></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
// 配置:友链数据源地址
|
||||
// 1. 本地模块模式:使用 '/json/link_lite.json' (默认)
|
||||
// 2. 远程模式:修改为您的 GitHub + jsDelivr 链接
|
||||
// 例如:const linksJsonUrl = 'https://cdn.jsdelivr.net/gh/您的用户名/您的仓库名@main/link_lite.json';
|
||||
const linksJsonUrl = '/json/link_lite.json';
|
||||
|
||||
const list = document.getElementById('links-list');
|
||||
if (!list) return;
|
||||
|
||||
fetch(linksJsonUrl)
|
||||
.then(response => {
|
||||
if (!response.ok) throw new Error('Network response was not ok');
|
||||
return response.json();
|
||||
})
|
||||
.then(data => {
|
||||
if (data && Array.isArray(data) && data.length > 0) {
|
||||
// 清空现有的静态内容,使用动态数据
|
||||
list.innerHTML = '';
|
||||
|
||||
data.forEach(item => {
|
||||
const li = document.createElement('li');
|
||||
// 保持原有的 DOM 结构和类名
|
||||
li.innerHTML = `<a href="${item.url}" class="url-name" target="_blank">${item.name}</a><span style="margin-left: 13px;">${item.description || ''}</span>`;
|
||||
list.appendChild(li);
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.warn('友链动态加载失败,回退到静态内容:', error);
|
||||
// 加载失败时保留静态内容 (Hugo 生成的)
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
{{ end }}
|
||||
Reference in new issue
Block a user