2024-07-11 08:59:32 +08:00
|
|
|
<div class="footer">
|
2024-07-26 11:24:34 +08:00
|
|
|
<nav class="nav" style="clear: both;">
|
|
|
|
|
© 2019 - {{ now.Year }}
|
|
|
|
|
<br>
|
|
|
|
|
<a href="https://beian.miit.gov.cn/" target="_blank"><span style="color:#999999;">鄂ICP备2022015735号-1</span></a>
|
2024-07-27 16:53:51 +08:00
|
|
|
<br>
|
2024-07-26 11:24:34 +08:00
|
|
|
本站由<a href="https://www.upyun.com/?utm_source=lianmeng&utm_medium=referral" target="blank" title="又拍云"
|
|
|
|
|
style="display:inline-block;text-decoration:none;height:20px;line-height:20px;">
|
|
|
|
|
<span style="color: var(--contentColor);font-weight: 700;">又拍云CDN</span>
|
|
|
|
|
</a>提供CDN加速服务
|
2024-07-27 17:15:02 +08:00
|
|
|
<br>
|
2024-07-26 11:24:34 +08:00
|
|
|
</nav>
|
2024-07-11 08:59:32 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2026-01-24 18:35:57 +08:00
|
|
|
<div class="floating-tools">
|
2026-01-28 23:20:39 +08:00
|
|
|
<a href="javascript:;" id="search-btn" title="搜索文章">
|
|
|
|
|
<i class="ri-search-line"></i>
|
|
|
|
|
</a>
|
2026-01-24 18:35:57 +08:00
|
|
|
<a href="javascript:;" id="theme-toggle" title="切换主题">
|
2026-01-29 20:33:30 +08:00
|
|
|
<i class="ri-sun-line"></i>
|
2026-01-24 18:35:57 +08:00
|
|
|
</a>
|
|
|
|
|
<a href="#Comments" id="to-comments" title="跳转评论">
|
|
|
|
|
<i class="ri-chat-2-line"></i>
|
|
|
|
|
</a>
|
|
|
|
|
<a href="#" id="back-to-top" title="返回顶部">
|
|
|
|
|
<i class="ri-arrow-up-line"></i>
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
2026-01-28 23:20:39 +08:00
|
|
|
|
|
|
|
|
<!-- Search Modal -->
|
|
|
|
|
<div id="search-modal" class="search-modal">
|
|
|
|
|
<div class="search-modal-content">
|
|
|
|
|
<div class="search-header">
|
|
|
|
|
<h3>搜索文章</h3>
|
|
|
|
|
<span class="close-search">×</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="search-body">
|
|
|
|
|
<div class="search-input-wrapper">
|
|
|
|
|
<input type="text" id="search-input" placeholder="输入关键词搜索..." autocomplete="off">
|
|
|
|
|
<button id="search-submit"><i class="ri-search-line"></i></button>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="search-results" class="search-results">
|
|
|
|
|
<!-- Search results will appear here -->
|
|
|
|
|
<p class="search-tip">输入关键词并回车进行搜索</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2026-01-31 23:42:49 +08:00
|
|
|
{{ $iconfont := resources.Get "js/libs/iconfont.js" }}
|
|
|
|
|
{{ $uikit := resources.Get "js/libs/uikit.min.js" }}
|
2026-01-31 19:24:22 +08:00
|
|
|
{{ $easylazyload := resources.Get "js/modules/lazyload.js" }}
|
2026-01-31 23:42:49 +08:00
|
|
|
{{ $viewimage := resources.Get "js/libs/view-image.min.js" }}
|
2026-01-22 21:39:19 +08:00
|
|
|
{{ $main := resources.Get "js/main.js" }}
|
2026-01-31 23:42:49 +08:00
|
|
|
{{ $mypjax := resources.Get "js/modules/mypjax.js" }}
|
|
|
|
|
{{ $nprogress := resources.Get "js/libs/nprogress.js" }}
|
|
|
|
|
{{ $tiaozhuan := resources.Get "js/modules/tiaozhuan.js" }}
|
2026-05-24 14:00:12 +08:00
|
|
|
{{ $toast := resources.Get "js/modules/toast.js" }}
|
2026-02-02 21:36:53 +08:00
|
|
|
{{ $reward := resources.Get "js/modules/reward.js" }}
|
2026-01-31 19:24:22 +08:00
|
|
|
{{/* Modules */}}
|
|
|
|
|
{{ $utils := resources.Get "js/modules/utils.js" }}
|
|
|
|
|
{{ $loader := resources.Get "js/modules/loader.js" }}
|
2026-05-20 14:33:05 +08:00
|
|
|
{{ $cache := resources.Get "js/modules/cache.js" }}
|
2026-01-31 19:24:22 +08:00
|
|
|
{{ $search := resources.Get "js/modules/search.js" }}
|
|
|
|
|
{{ $floatingTools := resources.Get "js/modules/floating-tools.js" }}
|
2026-01-31 21:27:06 +08:00
|
|
|
{{ $paragraphComments := resources.Get "js/modules/paragraph-comments.js" }}
|
2026-01-31 22:52:19 +08:00
|
|
|
{{ $infiniteScroll := resources.Get "js/modules/infinite-scroll.js" }}
|
2026-01-31 19:24:22 +08:00
|
|
|
{{ $artalkModule := resources.Get "js/modules/artalk.js" }}
|
2026-01-31 23:42:49 +08:00
|
|
|
{{ $pjaxLib := resources.Get "js/libs/pjax.js" }}
|
2026-06-02 12:44:47 +08:00
|
|
|
{{ $linkify := resources.Get "js/modules/linkify.js" }}
|
2026-06-02 14:34:23 +08:00
|
|
|
{{ $pangu := resources.Get "js/modules/pangu.js" }}
|
2026-01-31 19:24:22 +08:00
|
|
|
|
2026-06-02 14:34:23 +08:00
|
|
|
{{ $scripts := slice $iconfont $uikit $easylazyload $viewimage $utils $loader $cache $search $floatingTools $paragraphComments $infiniteScroll $artalkModule $nprogress $pjaxLib $pangu $linkify $main $mypjax $toast $tiaozhuan $reward | resources.Concat "js/bundle.js" | resources.Minify | resources.Fingerprint }}
|
2026-02-02 21:36:53 +08:00
|
|
|
|
2026-01-31 22:52:19 +08:00
|
|
|
<script>
|
|
|
|
|
window.enableInfiniteScroll = {{ .Site.Params.infiniteScroll.enable | default false }};
|
|
|
|
|
</script>
|
2026-05-25 12:23:00 +08:00
|
|
|
{{/* Fetch friend data at build time — no runtime network requests */}}
|
|
|
|
|
{{ $linkHosts := slice }}
|
|
|
|
|
{{ $linkNames := slice }}
|
|
|
|
|
{{ with resources.GetRemote "https://api.usj.cc/api/links?all=1" }}
|
|
|
|
|
{{ with .Err }}
|
|
|
|
|
{{ warnf "Links API fetch failed: %s" . }}
|
|
|
|
|
{{ else }}
|
|
|
|
|
{{ with .Content | transform.Unmarshal }}
|
|
|
|
|
{{ range .links }}
|
|
|
|
|
{{ $host := "" }}
|
|
|
|
|
{{ with .url | urls.Parse }}
|
|
|
|
|
{{ $host = .Host | strings.TrimPrefix "www." }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ $title := .name | default "" }}
|
|
|
|
|
{{ if $host }}
|
|
|
|
|
{{ $linkHosts = $linkHosts | append (dict "host" $host "title" $title) }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ if $title }}
|
|
|
|
|
{{ $linkNames = $linkNames | append (dict "lower" (lower $title) "title" $title) }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
<script>
|
|
|
|
|
window.friendLinks = {{ dict "hosts" $linkHosts "names" $linkNames | jsonify | safeJS }};
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
{{ $feedHosts := slice }}
|
|
|
|
|
{{ $feedNames := slice }}
|
|
|
|
|
{{ with resources.GetRemote "https://api.usj.cc/api/feeds" }}
|
|
|
|
|
{{ with .Err }}
|
|
|
|
|
{{ warnf "Feeds API fetch failed: %s" . }}
|
|
|
|
|
{{ else }}
|
|
|
|
|
{{ with .Content | transform.Unmarshal }}
|
|
|
|
|
{{ range .feeds }}
|
|
|
|
|
{{ $host := "" }}
|
|
|
|
|
{{ with .url | urls.Parse }}
|
|
|
|
|
{{ $host = .Host | strings.TrimPrefix "www." }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ $title := .feedTitle | default "" }}
|
|
|
|
|
{{ if $host }}
|
|
|
|
|
{{ $feedHosts = $feedHosts | append (dict "host" $host "title" $title) }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ if $title }}
|
|
|
|
|
{{ $feedNames = $feedNames | append (dict "lower" (lower $title) "title" $title) }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
<script>
|
|
|
|
|
window.friendFeeds = {{ dict "hosts" $feedHosts "names" $feedNames | jsonify | safeJS }};
|
|
|
|
|
</script>
|
2026-05-25 00:03:50 +08:00
|
|
|
<script defer src="{{ $scripts.RelPermalink }}"></script>
|
2026-01-31 22:52:19 +08:00
|
|
|
<script async src="/js/bsz.js"></script>
|
2024-07-11 08:59:32 +08:00
|
|
|
</body>
|
2024-07-12 14:55:59 +08:00
|
|
|
|
2025-04-13 19:08:41 +08:00
|
|
|
</html>
|