hexo-theme-solitude 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +19 -0
- package/README.md +56 -0
- package/_config.yml +432 -0
- package/languages/en-US.yml +39 -0
- package/languages/zh-CN.yml +39 -0
- package/layout/404.ejs +34 -0
- package/layout/archive.ejs +10 -0
- package/layout/category.ejs +18 -0
- package/layout/index.ejs +20 -0
- package/layout/layout.ejs +35 -0
- package/layout/page/about.ejs +13 -0
- package/layout/page/categories.ejs +12 -0
- package/layout/page/circle.ejs +5 -0
- package/layout/page/echarts.ejs +14 -0
- package/layout/page/equipment.ejs +2 -0
- package/layout/page/links.ejs +57 -0
- package/layout/page/page.ejs +3 -0
- package/layout/page/rss.ejs +37 -0
- package/layout/page/says.ejs +16 -0
- package/layout/page/tags.ejs +12 -0
- package/layout/page/tlink.ejs +11 -0
- package/layout/page.ejs +45 -0
- package/layout/partial/body.ejs +8 -0
- package/layout/partial/compoment/about/authorinfo.ejs +18 -0
- package/layout/partial/compoment/about/award.ejs +57 -0
- package/layout/partial/compoment/about/contentinfo.ejs +33 -0
- package/layout/partial/compoment/about/hobbies.ejs +44 -0
- package/layout/partial/compoment/about/motto.ejs +17 -0
- package/layout/partial/compoment/about/other.ejs +68 -0
- package/layout/partial/compoment/about/personalities.ejs +11 -0
- package/layout/partial/compoment/about/skillsinfo.ejs +62 -0
- package/layout/partial/compoment/aside/aside.ejs +28 -0
- package/layout/partial/compoment/aside/asideAllInfo.ejs +6 -0
- package/layout/partial/compoment/aside/asideArchive.ejs +11 -0
- package/layout/partial/compoment/aside/asideFlipCard.ejs +8 -0
- package/layout/partial/compoment/aside/asideInfoCard.ejs +39 -0
- package/layout/partial/compoment/aside/asideNewestPost.ejs +31 -0
- package/layout/partial/compoment/aside/asidePower.ejs +31 -0
- package/layout/partial/compoment/aside/asideSwitch.ejs +35 -0
- package/layout/partial/compoment/aside/asideTag.ejs +5 -0
- package/layout/partial/compoment/aside/asideToc.ejs +11 -0
- package/layout/partial/compoment/aside/asideWebInfo.ejs +60 -0
- package/layout/partial/compoment/circle/angle.ejs +26 -0
- package/layout/partial/compoment/circle/banner.ejs +11 -0
- package/layout/partial/compoment/circle/content.ejs +22 -0
- package/layout/partial/compoment/dorakika/rightmenu.ejs +115 -0
- package/layout/partial/compoment/equipment/list.ejs +37 -0
- package/layout/partial/compoment/home/homeCategoryBar.ejs +11 -0
- package/layout/partial/compoment/home/postList.ejs +37 -0
- package/layout/partial/compoment/hometop/bbTimeList.ejs +15 -0
- package/layout/partial/compoment/hometop/categoryGroup.ejs +19 -0
- package/layout/partial/compoment/hometop/groupTag.ejs +30 -0
- package/layout/partial/compoment/hometop/topGroup.ejs +48 -0
- package/layout/partial/compoment/inject/body.ejs +57 -0
- package/layout/partial/compoment/inject/head.ejs +19 -0
- package/layout/partial/compoment/links/banner.ejs +42 -0
- package/layout/partial/compoment/links/linksCard.ejs +27 -0
- package/layout/partial/compoment/links/linksItem.ejs +21 -0
- package/layout/partial/compoment/mixins/articleSort.ejs +26 -0
- package/layout/partial/compoment/mixins/pagination.ejs +11 -0
- package/layout/partial/compoment/nav/left.ejs +22 -0
- package/layout/partial/compoment/nav/menu.ejs +25 -0
- package/layout/partial/compoment/nav/right.ejs +42 -0
- package/layout/partial/compoment/post/award.ejs +52 -0
- package/layout/partial/compoment/post/copyright.ejs +37 -0
- package/layout/partial/compoment/post/postMeta.ejs +83 -0
- package/layout/partial/compoment/post/postNav.ejs +41 -0
- package/layout/partial/compoment/post/wave.ejs +14 -0
- package/layout/partial/compoment/says/banner.ejs +10 -0
- package/layout/partial/compoment/says/saysBottom.ejs +18 -0
- package/layout/partial/compoment/says/saysContent.ejs +11 -0
- package/layout/partial/compoment/third-party/comments/comment.ejs +12 -0
- package/layout/partial/compoment/third-party/comments/twikoo.ejs +29 -0
- package/layout/partial/compoment/third-party/comments/twikoo_k.ejs +29 -0
- package/layout/partial/compoment/third-party/music.ejs +5 -0
- package/layout/partial/compoment/third-party/pjax.ejs +31 -0
- package/layout/partial/compoment/third-party/search/algolia-search.ejs +20 -0
- package/layout/partial/compoment/third-party/search/index.ejs +10 -0
- package/layout/partial/compoment/third-party/search/local-search.ejs +22 -0
- package/layout/partial/compoment/tlink/banner.ejs +10 -0
- package/layout/partial/console.ejs +62 -0
- package/layout/partial/footer.ejs +107 -0
- package/layout/partial/head.ejs +37 -0
- package/layout/partial/header.ejs +6 -0
- package/layout/partial/hometop.ejs +15 -0
- package/layout/partial/loading.ejs +86 -0
- package/layout/partial/nav.ejs +34 -0
- package/layout/partial/pwa.ejs +40 -0
- package/layout/partial/sidebar.ejs +31 -0
- package/layout/post.ejs +36 -0
- package/layout/tag.ejs +19 -0
- package/package.json +24 -0
- package/scripts/event/init.js +22 -0
- package/scripts/event/page.js +40 -0
- package/scripts/event/welcome.js +15 -0
- package/scripts/filter/checkThemeConfig.js +18 -0
- package/scripts/filter/default.js +23 -0
- package/scripts/filter/katex.js +25 -0
- package/scripts/filter/lazyload.js +11 -0
- package/scripts/filter/randomPosts.js +9 -0
- package/scripts/helper/charts.js +397 -0
- package/scripts/helper/getArchiveLength.js +18 -0
- package/scripts/helper/randomLinks.js +16 -0
- package/scripts/helper/related_post.js +91 -0
- package/scripts/helper/themeJsExport.js +77 -0
- package/scripts/tags/bvideo.js +42 -0
- package/scripts/tags/expand.js +4 -0
- package/scripts/tags/fold.js +19 -0
- package/scripts/tags/link.js +17 -0
- package/scripts/tags/note.js +3 -0
- package/scripts/tags/tabs.js +61 -0
- package/scripts/tags/timeline.js +35 -0
- package/source/css/commentBarrage.css +174 -0
- package/source/css/custom.css +901 -0
- package/source/css/main.css +16471 -0
- package/source/css/search/algolia-search.css +141 -0
- package/source/css/search/local-search.css +138 -0
- package/source/css/var.css +186 -0
- package/source/img/default.png +0 -0
- package/source/img/loading.gif +0 -0
- package/source/img/power.png +0 -0
- package/source/img/pwa/180.png +0 -0
- package/source/img/pwa/192.png +0 -0
- package/source/img/pwa/512.png +0 -0
- package/source/img/pwa/logo.png +0 -0
- package/source/img/pwa/siteicon/splash-1125x2436.png +0 -0
- package/source/img/pwa/siteicon/splash-1136x640.png +0 -0
- package/source/img/pwa/siteicon/splash-1170x2532.png +0 -0
- package/source/img/pwa/siteicon/splash-1179x2556.png +0 -0
- package/source/img/pwa/siteicon/splash-1242x2208.png +0 -0
- package/source/img/pwa/siteicon/splash-1242x2688.png +0 -0
- package/source/img/pwa/siteicon/splash-1248x2778.png +0 -0
- package/source/img/pwa/siteicon/splash-1290x2796.png +0 -0
- package/source/img/pwa/siteicon/splash-1334x750.png +0 -0
- package/source/img/pwa/siteicon/splash-1536x2048.png +0 -0
- package/source/img/pwa/siteicon/splash-1620x2160.png +0 -0
- package/source/img/pwa/siteicon/splash-1668x2224.png +0 -0
- package/source/img/pwa/siteicon/splash-1668x2388.png +0 -0
- package/source/img/pwa/siteicon/splash-1792x828.png +0 -0
- package/source/img/pwa/siteicon/splash-2048x1536.png +0 -0
- package/source/img/pwa/siteicon/splash-2048x2732.png +0 -0
- package/source/img/pwa/siteicon/splash-2160x1620.png +0 -0
- package/source/img/pwa/siteicon/splash-2208x1242.png +0 -0
- package/source/img/pwa/siteicon/splash-2224x1668.png +0 -0
- package/source/img/pwa/siteicon/splash-2388x1668.png +0 -0
- package/source/img/pwa/siteicon/splash-2436x1125.png +0 -0
- package/source/img/pwa/siteicon/splash-2532x1170.png +0 -0
- package/source/img/pwa/siteicon/splash-2556x1179.png +0 -0
- package/source/img/pwa/siteicon/splash-2688x1242.png +0 -0
- package/source/img/pwa/siteicon/splash-2732x2048.png +0 -0
- package/source/img/pwa/siteicon/splash-2778x1248.png +0 -0
- package/source/img/pwa/siteicon/splash-2796x1290.png +0 -0
- package/source/img/pwa/siteicon/splash-640x1136.png +0 -0
- package/source/img/pwa/siteicon/splash-750x1334.png +0 -0
- package/source/img/pwa/siteicon/splash-828x1792.png +0 -0
- package/source/img/theme/avatar.png +0 -0
- package/source/js/circle.js +1828 -0
- package/source/js/commentBarrage.js +148 -0
- package/source/js/extend/console/comment.js +99 -0
- package/source/js/extend/covercolor/local.js +150 -0
- package/source/js/extend/covercolor/web.js +137 -0
- package/source/js/extend/search/algolia-search.js +136 -0
- package/source/js/extend/search/local-search.js +160 -0
- package/source/js/main.js +705 -0
- package/source/js/post_ai.js +517 -0
- package/source/js/utils.js +153 -0
- package/source/lib/bundle.js +27 -0
- package/source/lib/friends_post.js +98 -0
- package/source/lib/lazyload.js +1 -0
- package/source/lib/snackbar.js +16 -0
- package/source/lib/snackbar.min.css +1 -0
- package/source/lib/view-image.js +13 -0
- package/source/lib/waterfall.min.js +1 -0
@@ -0,0 +1,29 @@
|
|
1
|
+
<script>
|
2
|
+
async function initComment(){
|
3
|
+
var initOptions = Object.assign(
|
4
|
+
<%- JSON.stringify(theme.comment.twikoo || {}) %>,
|
5
|
+
{
|
6
|
+
el: '#comment',
|
7
|
+
onCommentLoaded: function() {
|
8
|
+
GLOBALCONFIG.lightbox && sco.lightbox('#article-container img, #twikoo .tk-content img:not(.tk-owo-emotion)')
|
9
|
+
}
|
10
|
+
}
|
11
|
+
)
|
12
|
+
await twikoo.init(initOptions)
|
13
|
+
<% if(theme.post.meta.comment && is_post()){ %>
|
14
|
+
var countOptions = Object.assign(
|
15
|
+
<%- JSON.stringify(theme.comment.twikoo || {}) %>,
|
16
|
+
{
|
17
|
+
urls: [window.location.pathname],
|
18
|
+
includeReply: false
|
19
|
+
}
|
20
|
+
)
|
21
|
+
const res = await twikoo.getCommentsCount(countOptions)
|
22
|
+
try{
|
23
|
+
document.getElementById('twikoo-count').innerText = res[0].count
|
24
|
+
}catch (e) {
|
25
|
+
document.getElementById('twikoo-count').innerText = '加载错误'
|
26
|
+
}
|
27
|
+
<% } %>
|
28
|
+
}
|
29
|
+
</script>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<script>
|
2
|
+
async function initComment(){
|
3
|
+
var initOptions = Object.assign(
|
4
|
+
<%- JSON.stringify(theme.comment.twikoo || {}) %>,
|
5
|
+
{
|
6
|
+
el: '#comment',
|
7
|
+
onCommentLoaded: function() {
|
8
|
+
GLOBALCONFIG.lightbox && sco.lightbox('#article-container img, #twikoo .tk-content img:not(.tk-owo-emotion)')
|
9
|
+
}
|
10
|
+
}
|
11
|
+
)
|
12
|
+
await twikoo.init(initOptions)
|
13
|
+
<% if(theme.post.meta.comment && is_post()){ %>
|
14
|
+
var countOptions = Object.assign(
|
15
|
+
<%- JSON.stringify(theme.comment.twikoo || {}) %>,
|
16
|
+
{
|
17
|
+
urls: [window.location.pathname],
|
18
|
+
includeReply: false
|
19
|
+
}
|
20
|
+
)
|
21
|
+
const res = await twikoo.getCommentsCount(countOptions)
|
22
|
+
try{
|
23
|
+
document.getElementById('twikoo-count').innerText = res[0].count
|
24
|
+
}catch (e) {
|
25
|
+
document.getElementById('twikoo-count').innerText = '加载错误'
|
26
|
+
}
|
27
|
+
<% } %>
|
28
|
+
}
|
29
|
+
</script>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<div class="needEndHide" id="nav-music" onclick="sco.musicToggle()">
|
2
|
+
<div id="nav-music-hoverTips">音乐已暂停</div>
|
3
|
+
<meting-js id="<%= theme.thirdparty.aplayer.id %>" server="<%= theme.thirdparty.aplayer.server %>" type="playlist" mutex="true"
|
4
|
+
preload="none" data-lrctype="0" order="random" theme="var(--sco-main)"></meting-js>
|
5
|
+
</div>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<script>
|
2
|
+
let pjaxSelectors = [
|
3
|
+
'title',
|
4
|
+
'#body-wrap',
|
5
|
+
'#site-config',
|
6
|
+
'meta[name="description"]',
|
7
|
+
'#js-pjax'
|
8
|
+
]
|
9
|
+
|
10
|
+
const pjax = new Pjax({
|
11
|
+
elements: 'a:not([target="_blank"])',
|
12
|
+
selectors: pjaxSelectors,
|
13
|
+
cacheBust: false,
|
14
|
+
analytics: false,
|
15
|
+
scrollRestoration: false
|
16
|
+
})
|
17
|
+
|
18
|
+
document.querySelectorAll('script[data-pjax]').forEach(item => {
|
19
|
+
const newScript = document.createElement('script')
|
20
|
+
const content = item.text || item.textContent || item.innerHTML || ""
|
21
|
+
Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value))
|
22
|
+
newScript.appendChild(document.createTextNode(content))
|
23
|
+
item.parentNode.replaceChild(newScript, item)
|
24
|
+
})
|
25
|
+
|
26
|
+
document.addEventListener('pjax:error', (e) => {
|
27
|
+
if (e.request.status === 404) {
|
28
|
+
pjax.loadUrl('/404.html')
|
29
|
+
}
|
30
|
+
})
|
31
|
+
</script>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<div id="algolia-search">
|
2
|
+
<div class="search-dialog">
|
3
|
+
<nav class="search-nav">
|
4
|
+
<span class="search-dialog-title">搜索</span>
|
5
|
+
<button class="search-close-button">
|
6
|
+
<i class="ri-time-fill"></i>
|
7
|
+
</button>
|
8
|
+
</nav>
|
9
|
+
<div class="search-wrap">
|
10
|
+
<div class="search-box" id="search-input"></div>
|
11
|
+
<div id="search-results">
|
12
|
+
<div id="algolia-hits">
|
13
|
+
</div>
|
14
|
+
<div class="algolia-stats"></div>
|
15
|
+
<div class="algolia-poweredBy" style="display: none"></div>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
<div id="search-mask"></div>
|
20
|
+
</div>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<% if(theme.thirdparty.search.local_search.enable){ %>
|
2
|
+
<%- partial('partial/compoment/third-party/search/local-search') %>
|
3
|
+
<%- css('/css/search/local-search.css') %>
|
4
|
+
<%- js('/js/extend/search/local-search.js') %>
|
5
|
+
<% } %>
|
6
|
+
<% if(theme.thirdparty.search.algolia_search.enable){ %>
|
7
|
+
<%- partial('partial/compoment/third-party/search/algolia-search') %>
|
8
|
+
<%- css('/css/search/algolia-search') %>
|
9
|
+
<%- js('/js/extend/search/algolia-search.js') %>
|
10
|
+
<% } %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<div id="local-search">
|
2
|
+
<div class="search-dialog">
|
3
|
+
<nav class="search-nav">
|
4
|
+
<span class="search-dialog-title">搜索</span>
|
5
|
+
<button class="search-close-button">
|
6
|
+
<i class="ri-time-fill"></i>
|
7
|
+
</button>
|
8
|
+
</nav>
|
9
|
+
<div id="loading-database">
|
10
|
+
<i class="ri-loader-2-fill"></i>
|
11
|
+
<span>加载中</span>
|
12
|
+
</div>
|
13
|
+
<div class="search-wrap">
|
14
|
+
<div class="search-box">
|
15
|
+
<input class="search-box-input" placeholder="<%= __('search.placeholder') %>" type="text" id="search-input" autocomplete="off" spellcheck="false" autocorrect="off" autocapitalize="off">
|
16
|
+
</div>
|
17
|
+
<div id="loading-status"></div>
|
18
|
+
<div id="search-results"></div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
<div id="search-mask"></div>
|
22
|
+
</div>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<div class="author-content author-content-item essayPage single nolazyload" style="background: url(<%= page.cover %>) no-repeat center;background-size: cover;">
|
2
|
+
<div class="card-content">
|
3
|
+
<div class="author-content-item-tips"><%= page.title %></div>
|
4
|
+
<span class="author-content-item-title"><%= page.desc %></span>
|
5
|
+
<div class="content-bottom">
|
6
|
+
<div class="tips"><%- page.tipl %></div>
|
7
|
+
<div class="tips"><%- page.tipr %></div>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
</div>
|
@@ -0,0 +1,62 @@
|
|
1
|
+
<div id="console" style="zoom: 1;" class="">
|
2
|
+
<div class="close-btn" onclick="sco.hideConsole()" href="javascript:void(0);">
|
3
|
+
<i class="ri-close-fill"></i>
|
4
|
+
</div>
|
5
|
+
<% if(theme.thirdparty.consolePlus){ %>
|
6
|
+
<div class="console-card-group">
|
7
|
+
<div class="console-card-group-left">
|
8
|
+
<div class="console-card" id="card-newest-comments" onclick="sco.hideConsole()">
|
9
|
+
<div class="card-content">
|
10
|
+
<div class="author-content-item-tips">互动</div>
|
11
|
+
<div class="author-content-item-title">最新评论</div>
|
12
|
+
</div>
|
13
|
+
<div class="aside-list"></div>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
</div>
|
17
|
+
<div class="console-card-group-right">
|
18
|
+
<div class="console-card tags" onclick="sco.hideConsole()">
|
19
|
+
<div class="card-content">
|
20
|
+
<div class="author-content-item-tips">标签</div>
|
21
|
+
<div class="author-content-item-title">寻找感兴趣的领域</div>
|
22
|
+
</div>
|
23
|
+
<div class="card-tag-cloud">
|
24
|
+
<% site.tags.data.forEach(data => { %>
|
25
|
+
<a href="<%= url_for(data.path) %>"
|
26
|
+
style="font-size: 0.8rem; color: #d3d3d3"><%= data.name %>
|
27
|
+
<sup><%= data.length %></sup></a>
|
28
|
+
<% }) %>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
<div class="console-card history" onclick="sco.hideConsole()">
|
32
|
+
<%- partial('partial/compoment/aside/asideArchive', {type: 'month'}) %>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
<% } %>
|
37
|
+
|
38
|
+
<div class="button-group">
|
39
|
+
<div class="console-btn-item">
|
40
|
+
<a class="darkmode_switchbutton" onclick="sco.switchDarkMode()" title="显示模式切换"
|
41
|
+
href="javascript:void(0);" rel="external nofollow" data-pjax-state="">
|
42
|
+
<i class="ri-contrast-2-fill" style="font-size: 1rem;"></i>
|
43
|
+
</a>
|
44
|
+
</div>
|
45
|
+
<% if(theme.thirdparty.aplayer.enable){ %>
|
46
|
+
<div class="console-btn-item" id="consoleMusic" onclick="sco.musicToggle()" title="音乐开关">
|
47
|
+
<a class="music-switch">
|
48
|
+
<i class="ri-disc-fill"></i>
|
49
|
+
</a>
|
50
|
+
</div>
|
51
|
+
<% } %>
|
52
|
+
<% if(theme.comment.enable) { %>
|
53
|
+
<div class="console-btn-item on" id="consoleCommentBarrage" onclick="sco.switchCommentBarrage()"
|
54
|
+
title="热评开关">
|
55
|
+
<a class="commentBarrage">
|
56
|
+
<i class="ri-message-3-fill"></i>
|
57
|
+
</a>
|
58
|
+
</div>
|
59
|
+
<% }%>
|
60
|
+
</div>
|
61
|
+
<div class="console-mask" onclick="sco.hideConsole()" href="javascript:void(0);" rel="external nofollow"></div>
|
62
|
+
</div>
|
@@ -0,0 +1,107 @@
|
|
1
|
+
<div id="sco-footer-bar">
|
2
|
+
<div class="footer-logo">
|
3
|
+
<% if (theme.site.name.class === 'i_class') { %>
|
4
|
+
<i class="<%= theme.site.name.custom %>" style="font-size: 16px;"></i>
|
5
|
+
<% } else if (theme.site.name.class === 'img') { %>
|
6
|
+
<i style="background-image: url('<%= url_for(theme.site.name.custom) %>')"></i>
|
7
|
+
<% } else if (theme.site.name.class === 'text') { %>
|
8
|
+
<span class="scoicon"><%= theme.site.name.custom %></span>
|
9
|
+
<% } %>
|
10
|
+
</div>
|
11
|
+
<div class="footer-bar-description">来自 <%- config.title %> 最新设计与科技的文章</div>
|
12
|
+
<a class="footer-bar-link" href="/" data-pjax-state="">了解更多</a>
|
13
|
+
</div>
|
14
|
+
<div id="footer_deal">
|
15
|
+
<% for(const i in theme.footer.information.left){ %>
|
16
|
+
<a class="deal_link" href="<%= url_for(theme.footer.information.left[i].url) %>" rel="external nofollow"
|
17
|
+
title="<%= i %>">
|
18
|
+
<i class="<%= theme.footer.information.left[i].icon %>"></i>
|
19
|
+
</a>
|
20
|
+
<% } %>
|
21
|
+
<img class="footer_mini_logo" src="<%= theme.site.icon %>"
|
22
|
+
title="返回顶部" onclick="sco.toTop()">
|
23
|
+
<% for(const i in theme.footer.information.right){ %>
|
24
|
+
<a class="deal_link" href="<%= url_for(theme.footer.information.right[i].url) %>" rel="external nofollow"
|
25
|
+
title="<%= i %>">
|
26
|
+
<i class="<%= theme.footer.information.right[i].icon %>"></i>
|
27
|
+
</a>
|
28
|
+
<% } %>
|
29
|
+
</div>
|
30
|
+
<div id="sco-footer">
|
31
|
+
<% for(const x in theme.footer.group){ %>
|
32
|
+
<div class="footer-group">
|
33
|
+
<h3 class="footer-title"><%= x %></h3>
|
34
|
+
<div class="footer-links">
|
35
|
+
<% for(const y in theme.footer.group[x]){ %>
|
36
|
+
<a class="footer-item" href="<%= url_for(theme.footer.group[x][y]) %>" title="<%= y %>"
|
37
|
+
rel="noopener external nofollow noreferrer"><%= y %></a>
|
38
|
+
<% } %>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
<% } %>
|
42
|
+
<% if(theme.footer.randomlink){ %>
|
43
|
+
<div class="footer-group">
|
44
|
+
<div class="footer-title-group">
|
45
|
+
<h3 class="footer-title">友链</h3>
|
46
|
+
<a class="random-friends-btn" href="javascript:randomLinksList();" rel="external nofollow">
|
47
|
+
<i class="ri-refresh-line"></i>
|
48
|
+
</a>
|
49
|
+
</div>
|
50
|
+
<div class="footer-links" id="friend-links-in-footer">
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
<% } %>
|
54
|
+
</div>
|
55
|
+
<div id="footer-bar">
|
56
|
+
<div class="footer-bar-links">
|
57
|
+
<div class="footer-bar-left">
|
58
|
+
<div id="footer-bar-tips">
|
59
|
+
<% if(moment(theme.aside.siteinfo.runtime).year() === new Date().getFullYear()){ %>
|
60
|
+
<div class="copyright">© <%= moment(theme.aside.siteinfo.runtime).year() %>
|
61
|
+
By
|
62
|
+
<a class="footer-bar-link" href="/" rel="external nofollow"><%= config.author %></a>
|
63
|
+
</div>
|
64
|
+
<% }else{ %>
|
65
|
+
<div class="copyright">© <%= moment(theme.aside.siteinfo.runtime).year() %>
|
66
|
+
- <%= new Date().getFullYear() %> By
|
67
|
+
<a class="footer-bar-link" href="/" rel="external nofollow"><%= config.author %></a>
|
68
|
+
</div>
|
69
|
+
<% } %>
|
70
|
+
</div>
|
71
|
+
</div>
|
72
|
+
<div class="footer-bar-right">
|
73
|
+
<% if(theme.footer.rss.enable){ %>
|
74
|
+
<a class="footer-bar-link" href="/rss/" rel="external nofollow"
|
75
|
+
target="_self">订阅</a>
|
76
|
+
<% } %>
|
77
|
+
<a class="footer-bar-link" href="https://github.com/DuoSco/hexo-theme-solitude" rel="external nofollow"
|
78
|
+
target="_self">主题</a>
|
79
|
+
<% if(theme.site.icp){ %>
|
80
|
+
<a class="footer-bar-link" target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index"
|
81
|
+
rel="noopener external nofollow noreferrer noopener">
|
82
|
+
<%= theme.site.icp %>
|
83
|
+
</a>
|
84
|
+
<% } %>
|
85
|
+
<a class="footer-bar-link cc" href="<%- theme.footer.license.url %>" target="_self" rel="external nofollow">
|
86
|
+
<i class="ri-copyright-line"></i>
|
87
|
+
<i class="ri-creative-commons-by-line"></i>
|
88
|
+
<i class="ri-creative-commons-nc-line"></i>
|
89
|
+
<i class="ri-creative-commons-nd-line"></i>
|
90
|
+
</a>
|
91
|
+
</div>
|
92
|
+
</div>
|
93
|
+
</div>
|
94
|
+
<div class="needEndHide" id="cookies-window">
|
95
|
+
<div class="cookies-window-title">协议提醒助手</div>
|
96
|
+
<div class="cookies-window-content">
|
97
|
+
<span class="cookies-tip">查看本站为你的个人隐私做出的努力</span>
|
98
|
+
<a class="cookies-link" href="/privacy/" title="本站如何保护你的隐私" data-pjax-state="">
|
99
|
+
<i class="heofont icon-arrow-right-circle-fill"></i>
|
100
|
+
</a>
|
101
|
+
</div>
|
102
|
+
</div>
|
103
|
+
<div class="comment-barrage">
|
104
|
+
</div>
|
105
|
+
<% if(theme.comment.enable){ %>
|
106
|
+
<%- js('/js/commentBarrage') %>
|
107
|
+
<% } %>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<% const cdn = theme.cdn.head %>
|
2
|
+
|
3
|
+
<meta charset="UTF-8">
|
4
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<%
|
7
|
+
var title = '', subtitle = ''
|
8
|
+
if (is_home()) {
|
9
|
+
title = config.title
|
10
|
+
} else if (is_archive()) title = '归档 ' + (page.year || '')
|
11
|
+
else if (is_category()) title = '分类 ' + page.category
|
12
|
+
else if (is_tag()) title = '标签 ' + page.tag
|
13
|
+
else if (page.type === '404') title = '404 ' + theme.errorpage.text
|
14
|
+
else if (is_page() || is_post()) title = page.title
|
15
|
+
if (is_home()) subtitle = config.subtitle ? ' - ' + config.subtitle : ''
|
16
|
+
else subtitle = title ? ' | ' + config.title : config.title
|
17
|
+
var description = page.desc || page.excerpt || config.description
|
18
|
+
-%>
|
19
|
+
<title><%= title + subtitle %></title>
|
20
|
+
<noscript>开启Javascript是必要的</noscript>
|
21
|
+
<link rel="icon" type="image/x-icon" href="<%= url_for(theme.site.siteIcon) %>">
|
22
|
+
<meta name="description" content="<%= description %>">
|
23
|
+
<% if (theme.pwa.enable) { %>
|
24
|
+
<%- partial('partial/pwa') %>
|
25
|
+
<% }else{ %>
|
26
|
+
<meta name="apple-mobile-web-app-title" content="<%= config.title %>">
|
27
|
+
<link rel="bookmark" href="<%= url_for(theme.site.siteIcon) %>">
|
28
|
+
<link rel="apple-touch-icon-precomposed" sizes="180x180" href="<%= url_for(theme.site.siteIcon) %>">
|
29
|
+
<% } %>
|
30
|
+
<link rel="stylesheet" href="/css/var.css">
|
31
|
+
<link rel="stylesheet" href="/css/main.css">
|
32
|
+
<link rel="stylesheet" href="/css/custom.css">
|
33
|
+
<%- partial('partial/compoment/inject/head', {cache: true}) %>
|
34
|
+
<% if (theme.extends.head) for (const i of theme.extends.head){ %>
|
35
|
+
<%- i %>
|
36
|
+
<% } %>
|
37
|
+
<%- export_config() %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div class="recent-top-post-group" id="recent-top-post-group">
|
2
|
+
<div class="recent-post-top" id="recent-post-top">
|
3
|
+
<div id="bannerGroup">
|
4
|
+
<div id="banners">
|
5
|
+
<%- partial('partial/compoment/hometop/groupTag') %>
|
6
|
+
</div>
|
7
|
+
<div class="categoryGroup">
|
8
|
+
<%- partial('partial/compoment/hometop/categoryGroup') %>
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
<div class="topGroup">
|
12
|
+
<%- partial('partial/compoment/hometop/topGroup') %>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</div>
|
@@ -0,0 +1,86 @@
|
|
1
|
+
<div id="loading-box" onclick="preloader.endLoading();" class style="zoom: 1;">
|
2
|
+
<div class="loading-bg">
|
3
|
+
<img class="loading-img nolazyload" alt="loading image"
|
4
|
+
src="<%= theme.site.icon %>">
|
5
|
+
</div>
|
6
|
+
</div>
|
7
|
+
<script>
|
8
|
+
const preloader = {
|
9
|
+
endLoading: () => {
|
10
|
+
document.getElementById('loading-box').classList.add("loaded")
|
11
|
+
},
|
12
|
+
initLoading: () => {
|
13
|
+
document.getElementById('loading-box').classList.remove("loaded")
|
14
|
+
},
|
15
|
+
removePaceDone: () => {
|
16
|
+
document.getElementById('body').classList = 'pace-done'
|
17
|
+
}
|
18
|
+
}
|
19
|
+
window.addEventListener('load',()=> { preloader.endLoading() })
|
20
|
+
document.addEventListener('pjax:send', () => { preloader.initLoading() })
|
21
|
+
document.addEventListener('pjax:complete', () => { preloader.endLoading() })
|
22
|
+
</script>
|
23
|
+
<style>
|
24
|
+
#loading-box {
|
25
|
+
-webkit-user-select: none;
|
26
|
+
}
|
27
|
+
|
28
|
+
#loading-box .loading-bg {
|
29
|
+
display: flex;
|
30
|
+
width: 100%;
|
31
|
+
height: 100%;
|
32
|
+
position: fixed;
|
33
|
+
background: var(--sco-background);
|
34
|
+
z-index: 1999;
|
35
|
+
opacity: 1;
|
36
|
+
transition: 0.2s;
|
37
|
+
pointer-events: all;
|
38
|
+
animation: showLoading 0.3s 0s backwards;
|
39
|
+
}
|
40
|
+
|
41
|
+
#loading-box.loaded .loading-bg {
|
42
|
+
pointer-events: none;
|
43
|
+
transition: 0.2s;
|
44
|
+
animation: hideLoading 0.3s 0s forwards;
|
45
|
+
}
|
46
|
+
|
47
|
+
#loading-box .loading-img {
|
48
|
+
width: 100px;
|
49
|
+
margin: auto;
|
50
|
+
animation-duration: 0.2s;
|
51
|
+
animation-name: loadingAction;
|
52
|
+
border-radius: 50px;
|
53
|
+
animation-iteration-count: infinite;
|
54
|
+
animation-direction: alternate;
|
55
|
+
}
|
56
|
+
|
57
|
+
@keyframes loadingAction {
|
58
|
+
from {
|
59
|
+
opacity: 1;
|
60
|
+
}
|
61
|
+
|
62
|
+
to {
|
63
|
+
opacity: 0.6;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
@keyframes hideLoading {
|
68
|
+
from {
|
69
|
+
opacity: 1;
|
70
|
+
}
|
71
|
+
|
72
|
+
to {
|
73
|
+
opacity: 0;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
@keyframes showLoading {
|
78
|
+
from {
|
79
|
+
opacity: 0;
|
80
|
+
}
|
81
|
+
|
82
|
+
to {
|
83
|
+
opacity: 1;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
</style>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<nav id="nav" class="show">
|
2
|
+
<div id="nav-group">
|
3
|
+
<div id="blog_name">
|
4
|
+
<% if(theme.nav.left.enable){ %>
|
5
|
+
<div class="back-home-button" tabindex="-1">
|
6
|
+
<i class="back-home-button-icon scoicon ri-apps-fill"></i>
|
7
|
+
<%- partial('partial/compoment/nav/left') %>
|
8
|
+
</div>
|
9
|
+
<% } %>
|
10
|
+
<a id="site-name" href="/" title="返回博客主页" target="_self">
|
11
|
+
<% if (theme.site.name.class === 'i_class') { %>
|
12
|
+
<i class="<%= theme.site.name.custom %>" style="font-size: 16px;"></i>
|
13
|
+
<% } else if (theme.site.name.class === 'img') { %>
|
14
|
+
<i style="background-image: url('<%= url_for(theme.site.name.custom) %>')"></i>
|
15
|
+
<% } else if (theme.site.name.class === 'text') { %>
|
16
|
+
<span class="scoicon"><%= theme.site.name.custom %></span>
|
17
|
+
<% } %>
|
18
|
+
</a>
|
19
|
+
</div>
|
20
|
+
<div id="page-name-mask">
|
21
|
+
<div id="page-name">
|
22
|
+
<a id="page-name-text" onclick="sco.toTop()"><%= page.title || config.title %></a>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
<div id="menus">
|
26
|
+
<%- partial('partial/compoment/nav/menu') %>
|
27
|
+
</div>
|
28
|
+
<div id="nav-left">
|
29
|
+
</div>
|
30
|
+
<div id="nav-right">
|
31
|
+
<%- partial('partial/compoment/nav/right') %>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
</nav>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<meta name="theme-color" content="<%- theme.pwa.theme_color %>">
|
2
|
+
<link rel="manifest" href="<%- theme.pwa.manifest %>">
|
3
|
+
<% if (theme.pwa.theme_color) { %><meta name="msapplication-TileColor" content="<%- theme.pwa.theme_color %>"><% } %>
|
4
|
+
<% if (theme.pwa.mask_icon) { %><link rel="mask-icon" href="<%- theme.pwa.mask_icon %>" color="<%- theme.pwa.theme_color %>"><% } %>
|
5
|
+
<% if (theme.pwa.apple_touch_icon) { %><link rel="apple-touch-icon" sizes="180x180" href="<%- theme.pwa.apple_touch_icon %>">
|
6
|
+
<link rel="apple-touch-icon-precomposed" sizes="180x180" href="<%- theme.pwa.apple_touch_icon %>">
|
7
|
+
<meta name="apple-mobile-web-app-title" content="<%= config.title %>"><% } %>
|
8
|
+
<% if (theme.pwa.favicon_16_16) { %><link rel="icon" type="image/png" sizes="16x16" href="<%- theme.pwa.favicon_16_16 %>"><% } %>
|
9
|
+
<% if (theme.pwa.favicon_32_32) { %><link rel="icon" type="image/png" sizes="32x32" href="<%- theme.pwa.favicon_32_32 %>"><% } %>
|
10
|
+
<% if (theme.pwa.bookmark_icon) { %><link rel="bookmark" href="<%- theme.pwa.bookmark_icon %>"><% } %><% if (theme.pwa.startup_image_enable) { %>
|
11
|
+
<% if (theme.pwa.favicon_2048_2732) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_2048_2732 %>" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><% } %>
|
12
|
+
<% if (theme.pwa.favicon_2732_2048) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_2732_2048 %>" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><% } %>
|
13
|
+
<% if (theme.pwa.favicon_1668_2388) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1668_2388 %>" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><% } %>
|
14
|
+
<% if (theme.pwa.favicon_2388_1668) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_2388_1668 %>" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><% } %>
|
15
|
+
<% if (theme.pwa.favicon_1536_2048) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1536_2048 %>" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><% } %>
|
16
|
+
<% if (theme.pwa.favicon_2048_1536) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_2048_1536 %>" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><% } %>
|
17
|
+
<% if (theme.pwa.favicon_1668_2224) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1668_2224 %>" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><% } %>
|
18
|
+
<% if (theme.pwa.favicon_1668_2224) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1668_2224 %>" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><% } %>
|
19
|
+
<% if (theme.pwa.favicon_1620_2160) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1620_2160 %>" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><% } %>
|
20
|
+
<% if (theme.pwa.favicon_2160_1620) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_2160_1620 %>" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><% } %>
|
21
|
+
<% if (theme.pwa.favicon_1290_2796) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1290_2796 %>" media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><% } %>
|
22
|
+
<% if (theme.pwa.favicon_2796_1290) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_2796_1290 %>" media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><% } %>
|
23
|
+
<% if (theme.pwa.favicon_1179_2556) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1179_2556 %>" media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><% } %>
|
24
|
+
<% if (theme.pwa.favicon_2556_1179) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_2556_1179 %>" media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><% } %>
|
25
|
+
<% if (theme.pwa.favicon_1248_2778) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1248_2778 %>" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><% } %>
|
26
|
+
<% if (theme.pwa.favicon_2778_1248) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_2778_1248 %>" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><% } %>
|
27
|
+
<% if (theme.pwa.favicon_1170_2532) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1170_2532 %>" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><% } %>
|
28
|
+
<% if (theme.pwa.favicon_2532_1170) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_2532_1170 %>" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><% } %>
|
29
|
+
<% if (theme.pwa.favicon_1125_2436) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1125_2436 %>" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><% } %>
|
30
|
+
<% if (theme.pwa.favicon_2436_1125) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_2436_1125 %>" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><% } %>
|
31
|
+
<% if (theme.pwa.favicon_1242_2688) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1242_2688 %>" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><% } %>
|
32
|
+
<% if (theme.pwa.favicon_2688_1242) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_2688_1242 %>" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><% } %>
|
33
|
+
<% if (theme.pwa.favicon_828_1792) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_828_1792 %>" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><% } %>
|
34
|
+
<% if (theme.pwa.favicon_1792_828) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1792_828 %>" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><% } %>
|
35
|
+
<% if (theme.pwa.favicon_1242_2208) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1242_2208 %>" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"><% } %>
|
36
|
+
<% if (theme.pwa.favicon_2208_1242) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_2208_1242 %>" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"><% } %>
|
37
|
+
<% if (theme.pwa.favicon_750_1334) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_750_1334 %>" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><% } %>
|
38
|
+
<% if (theme.pwa.favicon_1334_750) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1334_750 %>" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><% } %>
|
39
|
+
<% if (theme.pwa.favicon_640_1136) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_640_1136 %>" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"><% } %>
|
40
|
+
<% if (theme.pwa.favicon_1136_640) { %><link rel="apple-touch-startup-image" href="<%- theme.pwa.favicon_1136_640 %>" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"><% } %><% } %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<div id="sidebar" style="zoom: 1;">
|
2
|
+
<div id="menu-mask" style="display: none;"></div>
|
3
|
+
<div id="sidebar-menus" class>
|
4
|
+
<span class="sidebar-menu-item-title">功能</span>
|
5
|
+
<div class="sidebar-menu-item">
|
6
|
+
<a class="darkmode_switchbutton menu-child" onclick="sco.switchDarkMode()" title="显示模式切换"
|
7
|
+
href="javascript:void(0);" rel="external nofollow">
|
8
|
+
<i class="scoicon ri-contrast-2-fill" style="font-size: 1rem;"></i>
|
9
|
+
<span>显示模式</span>
|
10
|
+
</a>
|
11
|
+
</div>
|
12
|
+
<% if(theme.nav.left.enable){ %>
|
13
|
+
<%- partial('partial/compoment/nav/left') %>
|
14
|
+
<% } %>
|
15
|
+
<%- partial('partial/compoment/nav/menu') %>
|
16
|
+
<span class="sidebar-menu-item-title">标签</span>
|
17
|
+
<div class="card-widget card-tags card-archives card-webinfo card-allinfo">
|
18
|
+
<div class="item-headline">
|
19
|
+
<i class="scoicon ri-price-tag-3-fill"></i>
|
20
|
+
<span>标签</span>
|
21
|
+
</div>
|
22
|
+
<div class="card-tag-cloud">
|
23
|
+
<% site.tags.data.forEach(data => { %>
|
24
|
+
<a href="<%= url_for(data.path) %>" style="font-size: 1em; color: #d3d3d3"><%= data.name %>
|
25
|
+
<sup><%= data.length %></sup>
|
26
|
+
</a>
|
27
|
+
<% }) %>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</div>
|
package/layout/post.ejs
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
<main class="layout" id="content-inner">
|
2
|
+
<div id="post">
|
3
|
+
<article class="post-content" id="article-container">
|
4
|
+
<%- page.content %>
|
5
|
+
</article>
|
6
|
+
<%- partial('partial/compoment/post/copyright') %>
|
7
|
+
|
8
|
+
<div class="post-tools-right">
|
9
|
+
<div class="tag_share">
|
10
|
+
<div class="post-meta__tag-list">
|
11
|
+
<% page.tags.data.forEach(data => { %>
|
12
|
+
<a href="<%= url_for(data.path) %>" class="post-meta__tags">
|
13
|
+
<span class="tags-punctuation"></span>
|
14
|
+
<%= data.name %>
|
15
|
+
<span class="tagsPageCount"><%= data.length %></span>
|
16
|
+
</a>
|
17
|
+
<% }) %>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<%- partial('partial/compoment/post/postNav') %>
|
23
|
+
|
24
|
+
<%- related_posts(page, site.posts) %>
|
25
|
+
|
26
|
+
<% if(page.comment){ %>
|
27
|
+
<%- partial('partial/compoment/third-party/comments/comment') %>
|
28
|
+
<% } %>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<%- partial('partial/compoment/aside/aside') %>
|
32
|
+
|
33
|
+
<% if(theme.ai.enable){ %>
|
34
|
+
<script type="text/javascript" src="/js/post_ai.js"></script>
|
35
|
+
<% } %>
|
36
|
+
</main>
|