diff --git a/layout/_partial/sidebar/widgets/recent.ejs b/layout/_partial/sidebar/widgets/recent.ejs
index 736f8a7..208dcbd 100644
--- a/layout/_partial/sidebar/widgets/recent.ejs
+++ b/layout/_partial/sidebar/widgets/recent.ejs
@@ -24,7 +24,7 @@ function layoutDiv() {
arr = site.posts.filter( p => p.title && p.title.length > 0)
}
el += '
';
- arr = arr.sort((p1, p2) => { p1.order > p2.order })
+ arr = arr.sort((p1, p2) => p1.order > p2.order ? -1 : 1)
arr.length = item.limit
arr.forEach(post => {
el += '
';
diff --git a/scripts/events/lib/doc_tree.js b/scripts/events/lib/doc_tree.js
index 3bc2922..e98d955 100644
--- a/scripts/events/lib/doc_tree.js
+++ b/scripts/events/lib/doc_tree.js
@@ -1,5 +1,5 @@
/**
- * doc_tree.js v1 | https://github.com/xaoxuu/hexo-theme-stellar/
+ * doc_tree.js v2 | https://github.com/xaoxuu/hexo-theme-stellar/
*/
'use strict';
@@ -33,129 +33,129 @@ module.exports = ctx => {
const wiki_pages = pages.filter(p => (p.layout === 'wiki') && (p.wiki != undefined) && (p.wiki.length > 0)).map(p => new WikiPage(p))
// 数据整合:项目标签
- var all_tag_name = [];
+ var all_tag_name = []
for (let id of Object.keys(wiki.projects)) {
- let proj = wiki.projects[id];
- let tags = proj.tags;
+ let proj = wiki.projects[id]
+ let tags = proj.tags
if (tags) {
if ((typeof tags == 'string') && tags.constructor == String) {
if (all_tag_name.includes(tags) === false) {
- all_tag_name.push(tags);
+ all_tag_name.push(tags)
}
// 类型转换
- tags = [tags];
+ tags = [tags]
} else if ((typeof tags == 'object') && tags.constructor == Array) {
tags.forEach((tag, i) => {
if (all_tag_name.includes(tag) === false) {
- all_tag_name.push(tag);
+ all_tag_name.push(tag)
}
- });
+ })
}
- wiki.projects[id].tags = tags;
+ wiki.projects[id].tags = tags
}
}
// 补充未分组的项目
- const projs = Object.keys(wiki.projects);
+ const projs = Object.keys(wiki.projects)
wiki_pages.forEach((p, i) => {
if (projs.includes(p.wiki) == false) {
if (wiki.projects[p.wiki] == undefined) {
- wiki.projects[p.wiki] = {};
- wiki.projects[p.wiki].pages = [];
+ wiki.projects[p.wiki] = {}
+ wiki.projects[p.wiki].pages = []
}
- var proj = wiki.projects[p.wiki];
+ var proj = wiki.projects[p.wiki]
if (proj.description == undefined) {
- proj.description = p.description;
+ proj.description = p.description
}
- wiki.projects[p.wiki].pages.push(p);
+ wiki.projects[p.wiki].pages.push(p)
}
- });
+ })
// 补充项目名称和首页
for (let id of Object.keys(wiki.projects)) {
- let proj = wiki.projects[id];
- proj.id = id;
+ let proj = wiki.projects[id]
+ proj.id = id
if (proj.title == undefined || proj.title.length === 0) {
- proj.title = id;
+ proj.title = id
}
if (proj.name == undefined || proj.name.length == 0) {
- proj.name = id;
+ proj.name = id
}
}
// 补充 order
wiki_pages.forEach((p, i) => {
if (p.order == undefined) {
- p.order = 0;
+ p.order = 0
}
- });
+ })
// 数据整合:每个项目的子页面
for (let id of Object.keys(wiki.projects)) {
- let proj = wiki.projects[id];
- const proj_pages = wiki_pages.filter( p => p.wiki === id ).sort((p1, p2) => { p1.order < p2.order });
+ let proj = wiki.projects[id]
+ let proj_pages = wiki_pages.filter(p => p.wiki === id).sort((p1, p2) => p1.order < p2.order ? -1 : 1)
if (!proj_pages || proj_pages.length == 0) {
continue
}
proj.homepage = proj_pages[0]
// 内页按 section 分组
- var section_configs = [];
+ var section_configs = []
if (proj.sections) {
for (let t of Object.keys(proj.sections)) {
- let range = proj.sections[t];
+ let range = proj.sections[t]
if (range.length > 1) {
section_configs.push({
title: t,
from: range[0],
to: range[1]
- });
+ })
}
}
}
- var sections = [];
+ var sections = []
section_configs.forEach((sec, i) => {
const sec_pages = proj_pages.filter( p => p.order >= sec.from && p.order <= sec.to )
if (sec_pages && sec_pages.length > 0) {
sections.push({
title: sec.title,
pages: sec_pages
- });
+ })
}
- });
+ })
proj.sections = sections
proj.pages = proj_pages
}
// 全站所有的项目标签
- var all_tags = {};
+ var all_tags = {}
all_tag_name.forEach((tag_name, i) => {
- var projs = [];
+ var projs = []
for (let id of Object.keys(wiki.projects)) {
- let proj = wiki.projects[id];
+ let proj = wiki.projects[id]
if (proj.tags && proj.tags.includes(tag_name) === true && projs.includes(tag_name) === false) {
- projs.push(proj.id);
+ projs.push(proj.id)
}
}
all_tags[tag_name] = {
name: tag_name,
path: (ctx.config.wiki_dir || 'wiki') + '/tags/' + tag_name + '/index.html',
items: projs
- };
- });
+ }
+ })
// 关联相似项目
for (let id of Object.keys(wiki.projects)) {
- let proj = wiki.projects[id];
+ let proj = wiki.projects[id]
if (proj.tags) {
- var related = [];
+ var related = []
proj.tags.forEach((tag_name, i) => {
- let tagObj = all_tags[tag_name];
- related = related.concat(tagObj.items);
- related = [...new Set(related)];
- });
- proj.related = related;
+ let tagObj = all_tags[tag_name]
+ related = related.concat(tagObj.items)
+ related = [...new Set(related)]
+ })
+ proj.related = related
}
}
- wiki.all_tags = all_tags;
- wiki.all_pages = wiki_pages;
- ctx.theme.config.wiki = wiki;
+ wiki.all_tags = all_tags
+ wiki.all_pages = wiki_pages
+ ctx.theme.config.wiki = wiki
-};
+}
diff --git a/source/css/_layout/partial/related.styl b/source/css/_layout/partial/related.styl
index 529bb52..93fc221 100644
--- a/source/css/_layout/partial/related.styl
+++ b/source/css/_layout/partial/related.styl
@@ -14,14 +14,13 @@
a.more
padding: 0.25rem 0.5rem
-
border-radius: $border-block
color: var(--text-p1)
.related-posts
- width: 100%
+ max-width: 100%
margin: 1rem 0
.item
line-height: 1.2
diff --git a/source/css/_layout/sidebar/widgets.styl b/source/css/_layout/sidebar/widgets.styl
index 0ba8458..942e0de 100644
--- a/source/css/_layout/sidebar/widgets.styl
+++ b/source/css/_layout/sidebar/widgets.styl
@@ -73,7 +73,6 @@
.widget-wrap#related .widget-body a
margin-top: 0.5rem
margin-bottom: 1rem
- max-width: 'calc(100% - %s * 2)' % var(--gap-l)
.title
font-weight: 700
font-size: $fs-14