hexo-theme-solitude 1.1.3 → 1.2.2
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 +674 -19
- package/_config.yml +244 -193
- package/languages/en-US.yml +1 -0
- package/languages/zh-CN.yml +8 -8
- package/layout/404.pug +24 -0
- package/layout/archive.pug +11 -0
- package/layout/category.pug +16 -0
- package/layout/includes/console.pug +42 -0
- package/layout/includes/footer.pug +71 -0
- package/layout/includes/head/config.pug +79 -0
- package/layout/includes/head/pwa.pug +59 -0
- package/layout/includes/head.pug +29 -0
- package/layout/includes/header.pug +4 -0
- package/layout/includes/inject/body.pug +68 -0
- package/layout/{partial/compoment/inject/head.ejs → includes/inject/head.pug} +61 -35
- package/layout/includes/layout.pug +35 -0
- package/layout/{partial/loading.ejs → includes/loading.pug} +19 -17
- package/layout/includes/mixins/articleSort.pug +14 -0
- package/layout/includes/mixins/pagination.pug +8 -0
- package/layout/includes/nav.pug +22 -0
- package/layout/includes/page/about.pug +10 -0
- package/layout/includes/page/categories.pug +8 -0
- package/layout/includes/page/default.pug +2 -0
- package/layout/includes/page/echarts.pug +7 -0
- package/layout/includes/page/equipment.pug +3 -0
- package/layout/includes/page/links.pug +35 -0
- package/layout/includes/page/moments.pug +5 -0
- package/layout/includes/page/rss.pug +22 -0
- package/layout/includes/page/says.pug +20 -0
- package/layout/includes/page/tags.pug +8 -0
- package/layout/includes/page/tlink.pug +9 -0
- package/layout/includes/recent-posts.pug +9 -0
- package/layout/includes/sidebar.pug +17 -0
- package/layout/includes/widgets/aside/aside.pug +18 -0
- package/layout/includes/widgets/aside/asideAllInfo.pug +8 -0
- package/layout/includes/widgets/aside/asideArchive.pug +9 -0
- package/layout/includes/widgets/aside/asideFlipCard.pug +5 -0
- package/layout/includes/widgets/aside/asideHistory.pug +8 -0
- package/layout/includes/widgets/aside/asideInfoCard.pug +22 -0
- package/layout/includes/widgets/aside/asideNewestPost.pug +16 -0
- package/layout/includes/widgets/aside/asidePower.pug +19 -0
- package/layout/includes/widgets/aside/asideSwitch.pug +26 -0
- package/layout/includes/widgets/aside/asideTag.pug +11 -0
- package/layout/includes/widgets/aside/asideToc.pug +5 -0
- package/layout/includes/widgets/aside/asideWebInfo.pug +40 -0
- package/layout/includes/widgets/aside/asideWelcome.pug +12 -0
- package/layout/includes/widgets/home/banner.pug +16 -0
- package/layout/includes/widgets/home/bbTimeList.pug +8 -0
- package/layout/includes/widgets/home/categoryBar.pug +10 -0
- package/layout/includes/widgets/home/categoryGroup.pug +9 -0
- package/layout/includes/widgets/home/hometop.pug +9 -0
- package/layout/includes/widgets/home/postList.pug +26 -0
- package/layout/includes/widgets/home/rencentPost.pug +26 -0
- package/layout/includes/widgets/home/topGroup.pug +27 -0
- package/layout/includes/widgets/nav/left.pug +10 -0
- package/layout/includes/widgets/nav/menu.pug +16 -0
- package/layout/includes/widgets/nav/right.pug +23 -0
- package/layout/includes/widgets/page/about/authorinfo.pug +12 -0
- package/layout/includes/widgets/page/about/award.pug +34 -0
- package/layout/includes/widgets/page/about/contentinfo.pug +38 -0
- package/layout/includes/widgets/page/about/hobbies.pug +33 -0
- package/layout/includes/widgets/page/about/motto.pug +19 -0
- package/layout/includes/widgets/page/about/other.pug +61 -0
- package/layout/includes/widgets/page/about/personalities.pug +16 -0
- package/layout/includes/widgets/page/about/skillsinfo.pug +41 -0
- package/layout/includes/widgets/page/banner.pug +14 -0
- package/layout/includes/widgets/page/equipment/content.pug +23 -0
- package/layout/includes/widgets/page/links/banner.pug +30 -0
- package/layout/includes/widgets/page/links/linksCard.pug +18 -0
- package/layout/includes/widgets/page/links/linksItem.pug +14 -0
- package/layout/includes/widgets/page/moments/angle.pug +24 -0
- package/layout/includes/widgets/page/moments/index.pug +18 -0
- package/layout/includes/widgets/page/says/saysBottom.pug +11 -0
- package/layout/includes/widgets/page/says/saysContent.pug +6 -0
- package/layout/includes/widgets/page/says/saysFunction.pug +10 -0
- package/layout/includes/widgets/page/says/saysMeta.pug +7 -0
- package/layout/includes/widgets/post/award.pug +48 -0
- package/layout/includes/widgets/post/copyright.pug +27 -0
- package/layout/includes/widgets/post/postMeta.pug +55 -0
- package/layout/includes/widgets/post/postNav.pug +25 -0
- package/layout/includes/widgets/post/wave.pug +9 -0
- package/layout/includes/widgets/randomlink.pug +32 -0
- package/layout/includes/widgets/rightside/index.pug +74 -0
- package/layout/includes/widgets/third-party/comments/comment.pug +14 -0
- package/layout/includes/widgets/third-party/comments/gitalk.pug +0 -0
- package/layout/{partial/compoment/third-party/comments/twikoo.ejs → includes/widgets/third-party/comments/twikoo.pug} +8 -9
- package/layout/includes/widgets/third-party/comments/valine.pug +0 -0
- package/layout/includes/widgets/third-party/music.pug +3 -0
- package/layout/includes/widgets/third-party/pjax.pug +30 -0
- package/layout/includes/widgets/third-party/search/algolia-search.pug +14 -0
- package/layout/includes/widgets/third-party/search/index.pug +7 -0
- package/layout/includes/widgets/third-party/search/local-search.pug +13 -0
- package/layout/index.pug +20 -0
- package/layout/page.pug +32 -0
- package/layout/post.pug +43 -0
- package/layout/tag.pug +19 -0
- package/package.json +4 -4
- package/scripts/event/page.js +20 -2
- package/scripts/filter/checkThemeConfig.js +0 -1
- package/scripts/filter/randomPosts.js +0 -1
- package/scripts/helper/{charts.js → echarts.js} +27 -28
- package/scripts/helper/stylus.js +23 -0
- package/scripts/tags/bvideo.js +1 -36
- package/source/css/_comment/index.styl +121 -0
- package/source/css/_comment/twikoo.styl +515 -0
- package/source/css/_extra/console.styl +354 -0
- package/source/css/_extra/rightmenu.styl +83 -0
- package/source/css/_global/animation.css +756 -0
- package/source/css/_global/function.styl +83 -0
- package/source/css/_global/index.styl +120 -0
- package/source/css/_global/var.styl +1 -0
- package/source/css/_layout/articleSort.styl +199 -0
- package/source/css/_layout/base.styl +392 -0
- package/source/css/_layout/footer.styl +359 -0
- package/source/css/_layout/header.styl +1331 -0
- package/source/css/_layout/index.styl +293 -0
- package/source/css/_layout/sidebar.styl +226 -0
- package/source/css/_mode/index.styl +52 -0
- package/source/css/_page/about.styl +835 -0
- package/source/css/_page/category.styl +141 -0
- package/source/css/_page/equipment.styl +101 -0
- package/source/css/_page/error.styl +161 -0
- package/source/css/_page/home.styl +58 -0
- package/source/css/_page/homeTop.styl +1035 -0
- package/source/css/_page/index.styl +131 -0
- package/source/css/_page/link.styl +433 -0
- package/source/css/_page/moment.styl +179 -0
- package/source/css/_page/rss.styl +87 -0
- package/source/css/_page/says.styl +347 -0
- package/source/css/_page/tag.styl +56 -0
- package/source/css/_post/commentBarrage.styl +149 -0
- package/source/css/_post/externalTags.styl +694 -0
- package/source/css/_post/highlight.styl +96 -0
- package/source/css/_post/index.styl +935 -0
- package/source/css/_post/pagination.styl +467 -0
- package/source/css/_post/postContent.styl +957 -0
- package/source/css/_post/relatedPost.styl +160 -0
- package/source/css/_post/reward.styl +217 -0
- package/source/css/_search/algolia-search.styl +154 -0
- package/source/css/_search/local-search.styl +131 -0
- package/source/css/_widgets/aside/allinfo.styl +134 -0
- package/source/css/_widgets/aside/flip.styl +68 -0
- package/source/css/_widgets/aside/history.styl +35 -0
- package/source/css/_widgets/aside/index.styl +156 -0
- package/source/css/_widgets/aside/info.styl +263 -0
- package/source/css/_widgets/aside/newPost.styl +55 -0
- package/source/css/_widgets/aside/power.styl +90 -0
- package/source/css/_widgets/aside/toc.styl +85 -0
- package/source/css/_widgets/aside/welcome.styl +14 -0
- package/source/css/_widgets/index.styl +3 -0
- package/source/css/index.styl +40 -0
- package/source/js/commentBarrage.js +8 -5
- package/source/js/extend/console/comment.js +60 -63
- package/source/js/extend/covercolor/local.js +1 -1
- package/source/js/extend/search/algolia-search.js +151 -134
- package/source/js/extend/search/local-search.js +137 -162
- package/source/js/main.js +655 -505
- package/source/js/utils.js +168 -145
- package/layout/404.ejs +0 -34
- package/layout/archive.ejs +0 -10
- package/layout/category.ejs +0 -18
- package/layout/index.ejs +0 -20
- package/layout/layout.ejs +0 -30
- package/layout/page/about.ejs +0 -15
- package/layout/page/categories.ejs +0 -12
- package/layout/page/circle.ejs +0 -5
- package/layout/page/echarts.ejs +0 -1
- package/layout/page/equipment.ejs +0 -2
- package/layout/page/links.ejs +0 -46
- package/layout/page/page.ejs +0 -3
- package/layout/page/rss.ejs +0 -39
- package/layout/page/says.ejs +0 -17
- package/layout/page/tags.ejs +0 -12
- package/layout/page/tlink.ejs +0 -11
- package/layout/page.ejs +0 -45
- package/layout/partial/body.ejs +0 -7
- package/layout/partial/compoment/about/authorinfo.ejs +0 -18
- package/layout/partial/compoment/about/award.ejs +0 -59
- package/layout/partial/compoment/about/contentinfo.ejs +0 -33
- package/layout/partial/compoment/about/hobbies.ejs +0 -53
- package/layout/partial/compoment/about/motto.ejs +0 -17
- package/layout/partial/compoment/about/other.ejs +0 -76
- package/layout/partial/compoment/about/personalities.ejs +0 -11
- package/layout/partial/compoment/about/skillsinfo.ejs +0 -62
- package/layout/partial/compoment/aside/aside.ejs +0 -28
- package/layout/partial/compoment/aside/asideAllInfo.ejs +0 -6
- package/layout/partial/compoment/aside/asideArchive.ejs +0 -11
- package/layout/partial/compoment/aside/asideFlipCard.ejs +0 -72
- package/layout/partial/compoment/aside/asideHistory.ejs +0 -49
- package/layout/partial/compoment/aside/asideInfoCard.ejs +0 -39
- package/layout/partial/compoment/aside/asideNewestPost.ejs +0 -31
- package/layout/partial/compoment/aside/asidePower.ejs +0 -31
- package/layout/partial/compoment/aside/asideSwitch.ejs +0 -41
- package/layout/partial/compoment/aside/asideTag.ejs +0 -5
- package/layout/partial/compoment/aside/asideToc.ejs +0 -11
- package/layout/partial/compoment/aside/asideWebInfo.ejs +0 -60
- package/layout/partial/compoment/aside/asideWelcome.ejs +0 -33
- package/layout/partial/compoment/circle/angle.ejs +0 -26
- package/layout/partial/compoment/circle/banner.ejs +0 -11
- package/layout/partial/compoment/circle/content.ejs +0 -19
- package/layout/partial/compoment/dorakika/rightmenu.ejs +0 -100
- package/layout/partial/compoment/equipment/list.ejs +0 -37
- package/layout/partial/compoment/home/homeCategoryBar.ejs +0 -11
- package/layout/partial/compoment/home/postList.ejs +0 -37
- package/layout/partial/compoment/hometop/bbTimeList.ejs +0 -15
- package/layout/partial/compoment/hometop/categoryGroup.ejs +0 -19
- package/layout/partial/compoment/hometop/groupTag.ejs +0 -30
- package/layout/partial/compoment/hometop/topGroup.ejs +0 -41
- package/layout/partial/compoment/inject/body.ejs +0 -70
- package/layout/partial/compoment/links/angle.ejs +0 -26
- package/layout/partial/compoment/links/banner.ejs +0 -42
- package/layout/partial/compoment/links/linksCard.ejs +0 -27
- package/layout/partial/compoment/links/linksItem.ejs +0 -21
- package/layout/partial/compoment/mixins/articleSort.ejs +0 -26
- package/layout/partial/compoment/mixins/pagination.ejs +0 -11
- package/layout/partial/compoment/nav/left.ejs +0 -22
- package/layout/partial/compoment/nav/menu.ejs +0 -25
- package/layout/partial/compoment/nav/right.ejs +0 -42
- package/layout/partial/compoment/post/award.ejs +0 -60
- package/layout/partial/compoment/post/copyright.ejs +0 -39
- package/layout/partial/compoment/post/postMeta.ejs +0 -85
- package/layout/partial/compoment/post/postNav.ejs +0 -41
- package/layout/partial/compoment/post/wave.ejs +0 -14
- package/layout/partial/compoment/says/banner.ejs +0 -10
- package/layout/partial/compoment/says/saysBottom.ejs +0 -18
- package/layout/partial/compoment/says/saysContent.ejs +0 -10
- package/layout/partial/compoment/says/saysFunction.ejs +0 -15
- package/layout/partial/compoment/third-party/comments/comment.ejs +0 -12
- package/layout/partial/compoment/third-party/comments/twikoo_k.ejs +0 -29
- package/layout/partial/compoment/third-party/music.ejs +0 -5
- package/layout/partial/compoment/third-party/pjax.ejs +0 -31
- package/layout/partial/compoment/third-party/search/algolia-search.ejs +0 -20
- package/layout/partial/compoment/third-party/search/index.ejs +0 -10
- package/layout/partial/compoment/third-party/search/local-search.ejs +0 -22
- package/layout/partial/compoment/tlink/banner.ejs +0 -10
- package/layout/partial/console.ejs +0 -68
- package/layout/partial/footer.ejs +0 -109
- package/layout/partial/head.ejs +0 -37
- package/layout/partial/header.ejs +0 -6
- package/layout/partial/hometop.ejs +0 -15
- package/layout/partial/nav.ejs +0 -34
- package/layout/partial/pwa.ejs +0 -40
- package/layout/partial/sidebar.ejs +0 -31
- package/layout/post.ejs +0 -52
- package/layout/tag.ejs +0 -19
- package/scripts/helper/randomLinks.js +0 -16
- package/scripts/helper/themeJsExport.js +0 -79
- package/source/css/commentBarrage.css +0 -174
- package/source/css/custom.css +0 -901
- package/source/css/main.css +0 -16285
- package/source/css/search/algolia-search.css +0 -141
- package/source/css/search/local-search.css +0 -138
- package/source/css/var.css +0 -189
- /package/source/js/{rightmenu.js → rightside.js} +0 -0
@@ -0,0 +1,34 @@
|
|
1
|
+
- var sum = 0
|
2
|
+
if site.data.about.rewardList
|
3
|
+
.author-content
|
4
|
+
.author-content-item.single.reward
|
5
|
+
.author-content-item-tips 致谢
|
6
|
+
span.author-content-item-title 赞赏名单
|
7
|
+
.author-content-item-description
|
8
|
+
= "感谢赞赏的人,因为你们,让我感受到写博客这件事情能够给你们创造了价值。这会让我在这条路上走得更远。"
|
9
|
+
.reward-list-all
|
10
|
+
each reward in site.data.about.rewardList
|
11
|
+
- sum += reward.money
|
12
|
+
.reward-list-item
|
13
|
+
.reward-list-item-name= reward.name
|
14
|
+
.reward-list-bottom-group
|
15
|
+
.reward-list-item-money(style=reward.vip ? "background: var(--sco-vip);" : "") ¥ #{reward.money}
|
16
|
+
time.datatime.reward-list-item-time(datetime=moment(reward.time).format())
|
17
|
+
if theme.post.award.enable
|
18
|
+
.post-reward
|
19
|
+
.post-reward(onclick="AddRewardMask()")
|
20
|
+
.reward-button(title="赞赏作者")
|
21
|
+
i.scoicon.sco-hand-heart-fill
|
22
|
+
= "打赏作者"
|
23
|
+
.reward-main
|
24
|
+
ul.reward-all
|
25
|
+
span.reward-title 感谢你赐予我前进的力量
|
26
|
+
ul.reward-group
|
27
|
+
- var rewards = [{image: theme?.post?.award?.wechat, description: '微信'}, {image: theme?.post?.award?.alipay, description: '支付宝'}]
|
28
|
+
each reward in rewards
|
29
|
+
li.reward-item
|
30
|
+
a(href=reward.image, target="_blank")
|
31
|
+
img.post-qr-code-img(alt=reward.description, src=reward.image)
|
32
|
+
.post-qr-code-desc= reward.description
|
33
|
+
.reward-list-tips
|
34
|
+
p 总金额:¥ #{sum},将全部用于博客的维护
|
@@ -0,0 +1,38 @@
|
|
1
|
+
- const contentinfo = site.data.about.contentinfo
|
2
|
+
|
3
|
+
.author-content
|
4
|
+
.author-content-item.myInfoAndSayHello
|
5
|
+
.title1 你好,很高兴认识你👋
|
6
|
+
.title2 我叫
|
7
|
+
span.inline-word= contentinfo.name
|
8
|
+
.title1 是一名 #{contentinfo.title}
|
9
|
+
.aboutsiteTips.author-content-item
|
10
|
+
.author-content-item-tips 追求
|
11
|
+
h2
|
12
|
+
| 源于
|
13
|
+
br
|
14
|
+
| 热爱而去
|
15
|
+
span.inline-word 创造
|
16
|
+
.mask
|
17
|
+
span.first-tips(data-show='')= contentinfo.product
|
18
|
+
span= contentinfo.design
|
19
|
+
span= contentinfo.program
|
20
|
+
span(data-up='')= contentinfo.user_experience
|
21
|
+
|
22
|
+
script.
|
23
|
+
var pursuitInterval = null;
|
24
|
+
pursuitInterval = setInterval(function () {
|
25
|
+
const show = document.querySelector('span[data-show]')
|
26
|
+
const next = show.nextElementSibling || document.querySelector('.first-tips')
|
27
|
+
const up = document.querySelector('span[data-up]')
|
28
|
+
if (up) {
|
29
|
+
up.removeAttribute('data-up')
|
30
|
+
}
|
31
|
+
show.removeAttribute('data-show')
|
32
|
+
show.setAttribute('data-up', '')
|
33
|
+
next.setAttribute('data-show', '')
|
34
|
+
}, 2000)
|
35
|
+
|
36
|
+
document.addEventListener('pjax:send', function(){
|
37
|
+
clearInterval(pursuitInterval);
|
38
|
+
});
|
@@ -0,0 +1,33 @@
|
|
1
|
+
.author-content
|
2
|
+
if site.data.about.game1
|
3
|
+
.author-content-item.game-apex(style=`background: url(${site.data.about.game1.img}) no-repeat top; background-size: cover;`)
|
4
|
+
.card-content
|
5
|
+
.author-content-item-tips= site.data.about.game1.title
|
6
|
+
span.author-content-item-title= site.data.about.game1.subtitle
|
7
|
+
.content-bottom
|
8
|
+
.tips= site.data.about.game1.tips_left
|
9
|
+
.tips= site.data.about.game1.tips_right
|
10
|
+
if site.data.about.game2
|
11
|
+
.author-content-item.game-jl(style=`background: url(${site.data.about.game2.img}) no-repeat top; background-size: cover;`)
|
12
|
+
.card-content
|
13
|
+
.author-content-item-tips= site.data.about.game2.title
|
14
|
+
span.author-content-item-title= site.data.about.game2.subtitle
|
15
|
+
.content-bottom
|
16
|
+
.tips= site.data.about.game2.tips_left
|
17
|
+
.tips= site.data.about.game2.tips_right
|
18
|
+
|
19
|
+
if site.data.about.likes
|
20
|
+
- const likes = site.data.about.likes
|
21
|
+
.author-content
|
22
|
+
each like in likes
|
23
|
+
.author-content-item(class=like.type, style=`background: url(${like.bg}) no-repeat center;`)
|
24
|
+
.card-content
|
25
|
+
.author-content-item-tips= like.tips
|
26
|
+
span.author-content-item-title= like.title
|
27
|
+
.content-bottom
|
28
|
+
.tips= like.subtips
|
29
|
+
if like.button
|
30
|
+
.banner-button-group
|
31
|
+
a.banner-button(href=like.button_link, target="_blank", rel="noopener nofollow")
|
32
|
+
i.scoicon.sco-right-btn-fill
|
33
|
+
span.banner-button-text= like.button_text
|
@@ -0,0 +1,19 @@
|
|
1
|
+
- const motto = site.data.about.motto
|
2
|
+
- const expertise = site.data.about.expertise
|
3
|
+
|
4
|
+
.author-content
|
5
|
+
.author-content-item.maxim
|
6
|
+
.author-content-item-tips= motto.title
|
7
|
+
span.maxim-title
|
8
|
+
span(style="opacity: 0.6; margin-bottom:8px;")= motto.prefix
|
9
|
+
span= motto.content
|
10
|
+
.author-content-item.buff
|
11
|
+
.card-content
|
12
|
+
.author-content-item-tips= expertise.title
|
13
|
+
span.buff-title
|
14
|
+
span(style="opacity: 0.6; margin-bottom:8px;")
|
15
|
+
| #{expertise.prefix}
|
16
|
+
span.inline-word= expertise.specialist
|
17
|
+
span
|
18
|
+
| #{expertise.content}
|
19
|
+
span.inline-word= expertise.level
|
@@ -0,0 +1,61 @@
|
|
1
|
+
.author-content
|
2
|
+
if site.data.about.tj
|
3
|
+
.about-statistic.author-content-item(style=`background: url(${site.data.about.tj.img});`)
|
4
|
+
.card-content
|
5
|
+
.author-content-item-tips 数据
|
6
|
+
span.author-content-item-title 访问统计
|
7
|
+
#statistic
|
8
|
+
.post-tips
|
9
|
+
| 统计信息来自
|
10
|
+
a(href="https://invite.51.la/1NzKqTeb?target=V6", target="_blank", rel="noopener nofollow") 51la网站统计
|
11
|
+
if theme.about.echarts.enable
|
12
|
+
.banner-button-group
|
13
|
+
a.banner-button(onclick="pjax.loadUrl('/echart/');", data-pjax-state="")
|
14
|
+
i.scoicon.sco-right-btn-fill
|
15
|
+
span.banner-button-text 文章统计
|
16
|
+
script.
|
17
|
+
fetch("#{site.data.about.tj.url}")
|
18
|
+
.then(res => res.text())
|
19
|
+
.then(data => {
|
20
|
+
let title = ["最近活跃", "今日人数", "今日访问", "昨日人数", "昨日访问", "本月访问", "总访问量"];
|
21
|
+
let num = data.match(/(<\/span><span>).*?(\/span><\/p>)/g);
|
22
|
+
num = num.map(el => {
|
23
|
+
let val = el.replace(/(<\/span><span>)/g, "");
|
24
|
+
let str = val.replace(/(<\/span><\/p>)/g, "");
|
25
|
+
return str;
|
26
|
+
});
|
27
|
+
let s = document.getElementById("statistic");
|
28
|
+
let statistic = [];
|
29
|
+
for (let i = 0; i < num.length; i++) {
|
30
|
+
if (i == 0 || i == num.length - 1) continue;
|
31
|
+
s.innerHTML += "<div><span>" + title[i] + "</span><span id=" + title[i] + ">" + num[i] + "</span></div>";
|
32
|
+
}
|
33
|
+
});
|
34
|
+
|
35
|
+
if site.data.about.oneself
|
36
|
+
style.
|
37
|
+
:root {
|
38
|
+
--site-about-oneself-map--light: url(#{site.data.about.oneself.map.light});
|
39
|
+
--site-about-oneself-map--dark: url(#{site.data.about.oneself.map.dark});
|
40
|
+
}
|
41
|
+
- const oneself = site.data.about.oneself
|
42
|
+
.author-content-item-group.column.mapAndInfo
|
43
|
+
.author-content-item.map.single
|
44
|
+
span.map-title 我现在住在 #{oneself.location}
|
45
|
+
.author-content-item.selfInfo.single
|
46
|
+
div
|
47
|
+
span.selfInfo-title 生于
|
48
|
+
span.selfInfo-content(style="color: #43a6c6;")= oneself.birthYear
|
49
|
+
div
|
50
|
+
span.selfInfo-title= oneself.university
|
51
|
+
span.selfInfo-content(style="color: #c69043;")= oneself.major
|
52
|
+
div
|
53
|
+
span.selfInfo-title 现在职业
|
54
|
+
span.selfInfo-content(style="color: #b04fe6;")= oneself.occupation
|
55
|
+
|
56
|
+
if site.data.about.cause
|
57
|
+
.author-content
|
58
|
+
.create-site-post.author-content-item.single
|
59
|
+
.author-content-item-tips 心路历程
|
60
|
+
span.author-content-item-title 为什么建站?
|
61
|
+
!= site.data.about.cause
|
@@ -0,0 +1,16 @@
|
|
1
|
+
- const personalities = site.data.about.personalities
|
2
|
+
|
3
|
+
.author-content
|
4
|
+
.author-content-item.personalities
|
5
|
+
.author-content-item-tips= personalities.tips
|
6
|
+
span.author-content-item-title= personalities.title
|
7
|
+
.title2(style=`color:${personalities.color}`)= personalities.type
|
8
|
+
.image
|
9
|
+
img(src=personalities.image)
|
10
|
+
.post-tips
|
11
|
+
| 在
|
12
|
+
a(href="https://www.16personalities.com/", target="_blank", rel="noopener nofollow")= personalities.linkText
|
13
|
+
| 了解更多关于
|
14
|
+
a(target="_blank", rel="noopener external nofollow", href=personalities.typeLink)= personalities.typeName
|
15
|
+
.author-content-item.myphoto
|
16
|
+
img.author-content-img(src=personalities.myphoto, alt="自拍")
|
@@ -0,0 +1,41 @@
|
|
1
|
+
- var skills = site.data.about.skills
|
2
|
+
- var careers = site.data.about.careers
|
3
|
+
|
4
|
+
.author-content
|
5
|
+
.author-content-item.skills
|
6
|
+
.card-content
|
7
|
+
.author-content-item-tips= skills.title
|
8
|
+
span.author-content-item-title= skills.subtitle
|
9
|
+
.skills-style-group
|
10
|
+
.tags-group-all
|
11
|
+
.tags-group-wrapper
|
12
|
+
.tags-group-all
|
13
|
+
.tags-group-wrapper
|
14
|
+
each i in [1,2]
|
15
|
+
- var pair = []
|
16
|
+
each tag, index in skills.tags
|
17
|
+
- pair.push(tag)
|
18
|
+
if pair.length === 2 || index === skills.tags.length - 1
|
19
|
+
.tags-group-icon-pair
|
20
|
+
each item in pair
|
21
|
+
.tags-group-icon(style=`background:${item.color}`)
|
22
|
+
img(src=item.icon, title=item.title)
|
23
|
+
- pair = []
|
24
|
+
.skills-list
|
25
|
+
each tag in skills.tags
|
26
|
+
.skill-info
|
27
|
+
.skill-icon(style=`background:${tag.color}`)
|
28
|
+
img(src=tag.icon, title=tag.title)
|
29
|
+
.skill-name
|
30
|
+
span= tag.title
|
31
|
+
.etc ...
|
32
|
+
.author-content-item.careers
|
33
|
+
.card-content
|
34
|
+
.author-content-item-tips= careers.title
|
35
|
+
span.author-content-item-title= careers.subtitle
|
36
|
+
.careers-group
|
37
|
+
each item in careers.items
|
38
|
+
.careers-item
|
39
|
+
.circle(style=`background:${item.color}`)
|
40
|
+
.name= `${item.school}, ${item.major}`
|
41
|
+
img.author-content-img(src=careers.image, alt=careers.title)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
.author-content.author-content-item.single.nolazyload(style=`background: url(${page.cover}) no-repeat center; background-size: cover;`,class=`${pageClass}`)
|
2
|
+
.card-content
|
3
|
+
.author-content-item-tips= page.title
|
4
|
+
span.author-content-item-title= page.desc
|
5
|
+
.content-bottom
|
6
|
+
if (page.leftend)
|
7
|
+
.tips!= page.leftend
|
8
|
+
if(page.rightend)
|
9
|
+
.tips!= page.rightend
|
10
|
+
if page.rightbtn
|
11
|
+
.banner-button-group
|
12
|
+
a.banner-button(onclick="pjax.loadUrl(\"" + page.rightbtnlink + "\")", data-pjax-state)
|
13
|
+
i.scoicon.sco-right-btn-fill
|
14
|
+
span.banner-button-text= page.rightbtn
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#equipment
|
2
|
+
if site.data.equipment
|
3
|
+
each i in site.data.equipment
|
4
|
+
.equipment-item
|
5
|
+
h2.equipment-item-title= i.class_name
|
6
|
+
.equipment-item-description= i.description
|
7
|
+
.equipment-item-content
|
8
|
+
each item in i.equipment_list
|
9
|
+
.equipment-item-content-item
|
10
|
+
.equipment-item-content-item-cover
|
11
|
+
img.equipment-item-content-item-image(src=item.image, alt=item.name)
|
12
|
+
.equipment-item-content-item-info
|
13
|
+
.equipment-item-content-item-name= item.name
|
14
|
+
.equipment-item-content-item-specification= item.specification
|
15
|
+
.equipment-item-content-item-description= item.description
|
16
|
+
if item.link
|
17
|
+
.equipment-item-content-item-toolbar
|
18
|
+
if item.link.includes('https://') || item.link.includes('http://')
|
19
|
+
a.equipment-item-content-item-link(href=item.link, target="_blank") 详情
|
20
|
+
else
|
21
|
+
a.equipment-item-content-item-link(href=item.link, target="_blank") 查看文章
|
22
|
+
a.bber-reply(onclick=`sco.toTalk('${item.description}')`)
|
23
|
+
i.scoicon.sco-chat-fill(style="font-size: 1rem;")
|
@@ -0,0 +1,30 @@
|
|
1
|
+
.banners-title
|
2
|
+
.banners-title-small= page.title
|
3
|
+
.banners-title-big= page.desc
|
4
|
+
|
5
|
+
.banner-button-group
|
6
|
+
if theme.footer.randomlink
|
7
|
+
a.banner-button.secondary(onclick="travelling()")
|
8
|
+
i.scoicon.sco-signal-tower-fill
|
9
|
+
span.banner-button-text 随机访问
|
10
|
+
a.banner-button(onclick="sco.scrollToComment()")
|
11
|
+
i.scoicon.sco-right-btn-fill
|
12
|
+
span.scoicon.banner-button-text 申请友链
|
13
|
+
|
14
|
+
.tags-group-all.nowrapMove
|
15
|
+
.tags-group-wrapper
|
16
|
+
- const data = site.data.links.links
|
17
|
+
- for (let i = 0; i < 2; i++)
|
18
|
+
each x in data
|
19
|
+
if x.type === "item"
|
20
|
+
- var pairs = []
|
21
|
+
each y, index in x.link_list
|
22
|
+
if (index % 2 === 0)
|
23
|
+
- pairs.push([y])
|
24
|
+
else
|
25
|
+
- pairs[pairs.length - 1].push(y)
|
26
|
+
each pair in pairs
|
27
|
+
.tags-group-icon-pair
|
28
|
+
each y in pair
|
29
|
+
a.tags-group-icon(href=url_for(y.link), title=y.name)
|
30
|
+
img(src=y.avatar, title=y.name)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
.site-card-group
|
2
|
+
each item in data.link_list
|
3
|
+
.site-card
|
4
|
+
if item.tag
|
5
|
+
if item.vip
|
6
|
+
span.site-card-tag.vip= item.tag
|
7
|
+
else
|
8
|
+
span.site-card-tag= item.tag
|
9
|
+
a.img(title=item.name, href=url_for(item.link))
|
10
|
+
img.flink-avatar(src=item.topimg, alt=item.name)
|
11
|
+
.img-alt.is-center= item.name
|
12
|
+
a.info.cf-friends-link(title=item.name, href=url_for(item.link))
|
13
|
+
.site-card-avatar
|
14
|
+
img.flink-avatar.cf-friends-avatar(src=item.avatar, alt=item.name)
|
15
|
+
.img-alt.is-center= item.name
|
16
|
+
.site-card-text
|
17
|
+
span.title.cf-friends-name= item.name
|
18
|
+
span.desc(title=item.descr)= item.descr
|
@@ -0,0 +1,14 @@
|
|
1
|
+
.flink-list
|
2
|
+
each item in data.link_list
|
3
|
+
.flink-list-item
|
4
|
+
a.cf-friends-link(href=url_for(item.link), title=item.name)
|
5
|
+
if item.tag
|
6
|
+
if item.vip
|
7
|
+
span.site-card-tag.vip= item.tag
|
8
|
+
else
|
9
|
+
span.site-card-tag= item.tag
|
10
|
+
img.flink-avatar.cf-friends-avatar(alt=item.name, src=item.avatar)
|
11
|
+
.img-alt.is-center= item.name
|
12
|
+
.flink-item-info
|
13
|
+
span.flink-item-name.cf-friends-name= item.name
|
14
|
+
span.flink-item-desc(title=item.descr)= item.descr
|
@@ -0,0 +1,24 @@
|
|
1
|
+
.title-h2-a
|
2
|
+
.title-h2-a-left
|
3
|
+
h2(style="padding-top: 0;margin:0.6rem 0 0.6rem;") 🎣 钓鱼
|
4
|
+
a#random-post-start(href="javascript:fetchRandomPost();", rel="external nofollow", style="transition-duration: 0.3s; transform: rotate(63000deg); opacity: 1;", data-pjax-state="")
|
5
|
+
i.scoicon.refresh-line(hidden="hidden")
|
6
|
+
.title-h2-a-right
|
7
|
+
a.random-post-all(href="/links/", data-pjax-state="") 全部友链
|
8
|
+
|
9
|
+
#random-post
|
10
|
+
|
11
|
+
.title-h2-a
|
12
|
+
.title-h2-a-left
|
13
|
+
h2(style="padding-top: 0;margin:0.6rem 0 0.6rem;") 🐟 鱼塘
|
14
|
+
.title-h2-a-right
|
15
|
+
span 以下内容自动生成,未经过审核
|
16
|
+
|
17
|
+
script.
|
18
|
+
var fdata = {
|
19
|
+
apiurl: "#{theme.thirdparty.circle.api}",
|
20
|
+
defaultFish: 100,
|
21
|
+
hungryFish: 100,
|
22
|
+
}
|
23
|
+
|
24
|
+
script(src="/lib/friends_post.js")
|
@@ -0,0 +1,18 @@
|
|
1
|
+
div#hexo-circle-of-friends-root
|
2
|
+
script.
|
3
|
+
let UserConfig = {
|
4
|
+
// 填写你的api地址
|
5
|
+
private_api_url: '!{theme.thirdparty.circle.api}',
|
6
|
+
// 默认加载文章数
|
7
|
+
page_init_number: !{theme.thirdparty.circle.page_init_number},
|
8
|
+
// 点击加载更多时,一次最多加载几篇文章,默认10
|
9
|
+
page_turning_number: !{theme.thirdparty.circle.page_turning_number},
|
10
|
+
// 头像加载失败时,默认头像地址
|
11
|
+
error_img: '!{theme.thirdparty.circle.error_img}',
|
12
|
+
// 进入页面时第一次的排序规则
|
13
|
+
sort_rule: '!{theme.thirdparty.circle.sort_rule}',
|
14
|
+
// 本地文章缓存数据过期时间(天)
|
15
|
+
expire_days: !{theme.thirdparty.circle.expire_days},
|
16
|
+
}
|
17
|
+
script(src=url_for(theme.thirdparty.circle.appjs))
|
18
|
+
script(src=url_for(theme.thirdparty.circle.bundlejs))
|
@@ -0,0 +1,11 @@
|
|
1
|
+
.bber-bottom
|
2
|
+
.bber-info
|
3
|
+
.bber-info-time
|
4
|
+
i.scoicon.sco-calendar-todo-fill
|
5
|
+
time.datetime(datetime=moment(item.date).format())
|
6
|
+
if item.link
|
7
|
+
a.bber-content-link(href=url_for(item.link) title="跳转到短文指引的链接")
|
8
|
+
i.scoicon.sco-link-m-line
|
9
|
+
| 链接
|
10
|
+
a.bber-reply(onclick=`sco.toTalk('${item.content}')`)
|
11
|
+
i.scoicon.sco-chat-fill(style="font-size: 1rem;")
|
@@ -0,0 +1,10 @@
|
|
1
|
+
if item.aplayer
|
2
|
+
.bber-music
|
3
|
+
meting-js(server=item.aplayer.server type="song" id=item.aplayer.id mutex="true" preload="none" theme="var(--sco-main)" data-lrctype="0")
|
4
|
+
|
5
|
+
if item.video
|
6
|
+
.bber-video
|
7
|
+
if item.video.player
|
8
|
+
video(src=item.video.player controls="controls" style="object-fit: cover;")
|
9
|
+
if item.video.bilibili
|
10
|
+
iframe(src=item.video.bilibili scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true")
|
@@ -0,0 +1,7 @@
|
|
1
|
+
.meta
|
2
|
+
img.no-lightbox.no-lazyload.avatar(src=theme.aside.card.author.img)
|
3
|
+
.info
|
4
|
+
span.bber_nick= config.author
|
5
|
+
time.datetime.bber_date(datetime=moment(item.date).format())
|
6
|
+
a.bber-reply.goComment(onclick=`sco.toTalk('${item.content}')`)
|
7
|
+
i.scoicon.sco-chat-fill(style="font-size: 1rem;")
|
@@ -0,0 +1,48 @@
|
|
1
|
+
div.post-reward
|
2
|
+
div.reward-button.button--animated(onclick="AddRewardMask()" title="赞赏作者")
|
3
|
+
i.scoicon.sco-hand-heart-fill
|
4
|
+
| 打赏作者
|
5
|
+
div.reward-main
|
6
|
+
ul.reward-all
|
7
|
+
span.reward-title 感谢你赐予我前进的力量
|
8
|
+
ul.reward-group
|
9
|
+
if theme.post.award.wechat
|
10
|
+
li.reward-item
|
11
|
+
a(href=theme.post.award.wechat target="_blank")
|
12
|
+
img.post-qr-code-img(src=theme.post.award.wechat alt="微信")
|
13
|
+
div.post-qr-code-desc 微信
|
14
|
+
if theme.post.award.alipay
|
15
|
+
li.reward-item
|
16
|
+
a(href=theme.post.award.alipay target="_blank")
|
17
|
+
img.post-qr-code-img(src=theme.post.award.alipay alt="支付宝")
|
18
|
+
div.post-qr-code-desc 支付宝
|
19
|
+
a.reward-main-btn(href=url_for(theme.post.award.url))
|
20
|
+
div.reward-text 赞赏者名单
|
21
|
+
div.reward-dec 因为你们的支持让我意识到写文章的价值🙏
|
22
|
+
|
23
|
+
script.
|
24
|
+
function RemoveRewardMask() {
|
25
|
+
let rewardMainElements = document.querySelectorAll(".reward-main");
|
26
|
+
let quitBoxElement = document.querySelector("#quit-box");
|
27
|
+
|
28
|
+
rewardMainElements.forEach(element => {
|
29
|
+
element.style.display = "none";
|
30
|
+
});
|
31
|
+
|
32
|
+
if (quitBoxElement) {
|
33
|
+
quitBoxElement.style.display = "none";
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
function AddRewardMask() {
|
38
|
+
let rewardMainElements = document.querySelectorAll(".reward-main");
|
39
|
+
let quitBoxElement = document.querySelector("#quit-box");
|
40
|
+
|
41
|
+
rewardMainElements.forEach(element => {
|
42
|
+
element.style.display = "flex";
|
43
|
+
});
|
44
|
+
|
45
|
+
if (quitBoxElement) {
|
46
|
+
quitBoxElement.style.display = "flex";
|
47
|
+
}
|
48
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
div.post-copyright
|
2
|
+
div.post-copyright__author_group
|
3
|
+
a.post-copyright__author_img(href="/about/", data-pjax-state="")
|
4
|
+
img.post-copyright__author_img_back(src=theme.post.author_back)
|
5
|
+
img.post-copyright__author_img_front(src=theme.site.icon)
|
6
|
+
div.post-copyright__author_name= config.title
|
7
|
+
div.post-copyright__author_desc= config.subtitle
|
8
|
+
div.post-tools#post-tools
|
9
|
+
div.post-tools-left
|
10
|
+
if theme.post.award.enable
|
11
|
+
include ./award
|
12
|
+
if theme.footer.rss.enable
|
13
|
+
div.reward-link.mode
|
14
|
+
a.reward-link-button(href=theme.footer.rss.url)
|
15
|
+
i.scoicon.sco-plant-fill
|
16
|
+
| 订阅
|
17
|
+
if theme.post.default.copyright.enable || page.copyright
|
18
|
+
div.post-copyright__notice
|
19
|
+
span.post-copyright-info
|
20
|
+
if page.reprint
|
21
|
+
| 本文是转载或翻译文章,版权归原作者所有。转载本文请联系原作者。
|
22
|
+
else
|
23
|
+
| 本文是原创文章,采用
|
24
|
+
a(href=url_for(theme.post.default.copyright.licenurl), target="_blank")
|
25
|
+
| #{theme.post.default.copyright.license}
|
26
|
+
| 协议,完整转载请注明来自
|
27
|
+
a(href="/", target="_blank") #{config.title}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
div.coverdiv#coverdiv
|
2
|
+
img#post-cover.nolazyload(src=url_for(page.cover), alt=page.title)
|
3
|
+
div#post-info
|
4
|
+
div#post-firstinfo
|
5
|
+
div.meta-firstline
|
6
|
+
- var cc = reprint ? '转载或翻译' : '原创'
|
7
|
+
a.post-meta-original(title="该文章为" + cc + "文章,注意版权协议")= cc
|
8
|
+
if page.categories.data.length > 0
|
9
|
+
span.post-meta-categories
|
10
|
+
a.post-meta-categories(href=page.categories.data[0].path)= page.categories.data[0].name
|
11
|
+
div.tag_share
|
12
|
+
div.post-meta__tag-list
|
13
|
+
each tag in page.tags.data
|
14
|
+
a.post-meta__tags(href=url_for(tag.path))
|
15
|
+
span.tags-name.tags-punctuation= tag.name
|
16
|
+
h1.post-title= page.title
|
17
|
+
div#post-meta
|
18
|
+
div.meta-secondline
|
19
|
+
if theme.post.meta.date
|
20
|
+
span.post-meta-date(title="发布于")
|
21
|
+
i.post-meta-icon.scoicon.sco-calendar-todo-fill
|
22
|
+
time(datetime=date_xml(page.date))= date_xml(page.date)
|
23
|
+
if theme.post.meta.updated
|
24
|
+
span.post-meta-date(title="最后更新于")
|
25
|
+
i.post-meta-icon.scoicon.sco-refresh-line
|
26
|
+
time(datetime=date_xml(page.updated))= date_xml(page.updated)
|
27
|
+
if theme.thirdparty.wordcount
|
28
|
+
span.post-meta-wordcount
|
29
|
+
if theme.post.meta.wordcount
|
30
|
+
i.post-meta-icon.scoicon.sco-word-fill(title="文章字数")
|
31
|
+
span.word-count= wordcount(page.content)
|
32
|
+
span.post-meta-separator
|
33
|
+
if theme.post.meta.readtime
|
34
|
+
i.post-meta-icon.scoicon.sco-clock-fill(title="阅读耗时")
|
35
|
+
span= min2read(page.content) + " min"
|
36
|
+
if theme.post.meta.locate
|
37
|
+
span.post-meta-position(title="作者IP归属地为" + page.locate)
|
38
|
+
i.post-meta-icon.scoicon.sco-map-pin-fill
|
39
|
+
span= page.locate
|
40
|
+
if theme.thirdparty.busuanzi.enable && theme.post.meta.pv
|
41
|
+
a.post-meta-pv(href=url_for(page.path), title="文章热度")
|
42
|
+
i.post-meta-icon.scoicon.sco-fire-fill
|
43
|
+
if theme.thirdparty.busuanzi.usecomment
|
44
|
+
span#twikoo_visitors
|
45
|
+
i.scoicon.sco-loading-line
|
46
|
+
else
|
47
|
+
span#busuanzi_value_page_pv
|
48
|
+
i.scoicon.sco-loading-line
|
49
|
+
if theme.post.meta.comment && page.comment
|
50
|
+
span.post-meta-commentcount(title="评论数", onclick="sco.scrollTo('post-comment')")
|
51
|
+
i.scoicon.sco-chat-fill
|
52
|
+
a(href=url_for(page.path) + "#post-comment")
|
53
|
+
span#twikoo-count
|
54
|
+
i.scoicon.sco-loading-line
|
55
|
+
include ./wave
|
@@ -0,0 +1,25 @@
|
|
1
|
+
nav.needEndHide.pagination-post#pagination
|
2
|
+
if page.prev && page.next
|
3
|
+
div.prev-post.pull-left
|
4
|
+
a(href=url_for(page.prev.path))
|
5
|
+
div.pagination-info
|
6
|
+
div.label 上一篇
|
7
|
+
div.prev_info= page.prev.title
|
8
|
+
div.next-post.pull-right
|
9
|
+
a(href=url_for(page.next.path))
|
10
|
+
div.pagination-info
|
11
|
+
div.label 下一篇
|
12
|
+
div.next_info= page.next.title
|
13
|
+
else
|
14
|
+
if !page.prev && page.next
|
15
|
+
div.next-post.pull-full
|
16
|
+
a(href=url_for(page.next.path))
|
17
|
+
div.pagination-info
|
18
|
+
div.label 下一篇
|
19
|
+
div.next_info= page.next.title
|
20
|
+
if !page.next && page.prev
|
21
|
+
div.prev-post.pull-full
|
22
|
+
a(href=url_for(page.prev.path))
|
23
|
+
div.pagination-info
|
24
|
+
div.label 上一篇
|
25
|
+
div.prev_info= page.prev.title
|
@@ -0,0 +1,9 @@
|
|
1
|
+
section.main-hero-waves-area.waves-area
|
2
|
+
svg.waves-svg(xmlns="http://www.w3.org/2000/svg", xlink="http://www.w3.org/1999/xlink", viewBox="0 24 150 28", preserveAspectRatio="none", shape-rendering="auto")
|
3
|
+
defs
|
4
|
+
path#gentle-wave(d="M -160 44 c 30 0 58 -18 88 -18 s 58 18 88 18 s 58 -18 88 -18 s 58 18 88 18 v 44 h -352 Z")
|
5
|
+
g.parallax
|
6
|
+
use(href="#gentle-wave", x="48", y="0")
|
7
|
+
use(href="#gentle-wave", x="48", y="3")
|
8
|
+
use(href="#gentle-wave", x="48", y="5")
|
9
|
+
use(href="#gentle-wave", x="48", y="7")
|
@@ -0,0 +1,32 @@
|
|
1
|
+
- var datalinks = []
|
2
|
+
- var data = site.data.links.links
|
3
|
+
if(data)
|
4
|
+
each item in data
|
5
|
+
if item.type === "item"
|
6
|
+
each y in item.link_list
|
7
|
+
- datalinks.push({ name: y.name,link: y.link})
|
8
|
+
|
9
|
+
script.
|
10
|
+
const links = !{JSON.stringify(datalinks)}
|
11
|
+
function travelling() {
|
12
|
+
const link = links[utils.randomNum(links.length)];
|
13
|
+
utils.snackbarShow('您即将前往 ⌈ ' + link.name + ' ⌋ , 安全性未知', false, 3000);
|
14
|
+
setTimeout(() => {
|
15
|
+
window.open(link.link, "_blank")
|
16
|
+
}, 3000)
|
17
|
+
}
|
18
|
+
|
19
|
+
if theme.footer.randomlink
|
20
|
+
script.
|
21
|
+
function randomLinksList(){
|
22
|
+
let data='';
|
23
|
+
let linksCopy = [...links];
|
24
|
+
let count = Math.min(3, linksCopy.length);
|
25
|
+
for (let i = 0; i < count; i++) {
|
26
|
+
let index = utils.randomNum(linksCopy.length);
|
27
|
+
const link = linksCopy[index];
|
28
|
+
data += '<a class="footer-item" href="' + link.link + '" target="_blank" rel="noopener nofollow">' + link.name + '</a>';
|
29
|
+
linksCopy.splice(index, 1);
|
30
|
+
}
|
31
|
+
document.getElementById('friend-links-in-footer').innerHTML = data + '<a class="footer-item" href="/links/">更多</a>';
|
32
|
+
}
|