hexo-swpp 3.3.2 → 3.3.4

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/README.md CHANGED
@@ -75,6 +75,8 @@ module.exports.config = {
75
75
  1. 版本检查改为仅在执行 `hexo server` 时执行 \[3.3.0]
76
76
  2. 支持自定义版本更新检查的 URL \[3.3.0]
77
77
  3. 修复有时更新代码不执行的问题 \[3.3.1]
78
+ 4. 修改 DOM JS 的插入位置(从 body 中移动到 head 中) \[3.3.2]
79
+ 5. 修复 hexo7 中无法排序 tags 的问题 \[3.3.3]
78
80
 
79
81
  + 3.2+
80
82
 
package/dist/index.js CHANGED
@@ -178,18 +178,41 @@ function sort(hexo) {
178
178
  const result = a.length === b.length ? a < b : a.length < b.length;
179
179
  return result ? -1 : 1;
180
180
  };
181
- const sort = (obj, value) => {
181
+ const sort = (obj, value, keyName) => {
182
182
  if (!obj)
183
183
  return;
184
184
  const target = obj.data ?? obj;
185
- if (!target.sort)
186
- return;
187
- if (typeof value === 'boolean') {
188
- if (value)
189
- target.sort(compare);
185
+ if ('sort' in target) {
186
+ if (typeof value === 'boolean') {
187
+ if (value)
188
+ target.sort(compare);
189
+ }
190
+ else {
191
+ target.sort((a, b) => compare(a[value], b[value]));
192
+ }
193
+ }
194
+ else if (typeof value !== 'boolean') {
195
+ const keyList = Object.getOwnPropertyNames(target);
196
+ if (keyList.length === 0)
197
+ return;
198
+ if (!(value in target[keyList[0]])) {
199
+ console.warn(`排序时出现问题,某个键(该键的 key 为“${keyName}”)的排序规则存在问题`);
200
+ return;
201
+ }
202
+ const result = [];
203
+ for (let key of keyList) {
204
+ result.push(target[key]);
205
+ console.assert(!target[key]._id || target[key]._id == key, `排序是出现问题,_id 值异常:${target[key]._id} with ${key}`);
206
+ target[key]._id = key;
207
+ delete target[key];
208
+ }
209
+ result.sort((a, b) => compare(a[value], b[value]));
210
+ for (let item of result) {
211
+ target[item._id] = item[value];
212
+ }
190
213
  }
191
214
  else {
192
- target.sort((a, b) => compare(a[value], b[value]));
215
+ console.warn(`排序时出现问题,某个键(该键的 key 为“${keyName}”)的排序规则存在问题`);
193
216
  }
194
217
  };
195
218
  const list = {
@@ -203,11 +226,11 @@ function sort(hexo) {
203
226
  Locals.get = function (name) {
204
227
  const result = getter.call(this, name);
205
228
  if (name in list)
206
- sort(result, list[name]);
229
+ sort(result, list[name], name);
207
230
  if ('forEach' in result) {
208
231
  result.forEach((it) => {
209
232
  for (let tag in list)
210
- sort(it[tag], list[tag]);
233
+ sort(it[tag], list[tag], tag);
211
234
  });
212
235
  }
213
236
  return result;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hexo-swpp",
3
- "version": "3.3.2",
3
+ "version": "3.3.4",
4
4
  "main": "dist/index.js",
5
5
  "types": "types/index.d.ts",
6
6
  "files": [
@@ -24,7 +24,7 @@
24
24
  "devDependencies": {
25
25
  "@types/node": "^20.4.7",
26
26
  "@types/node-fetch": "^2.6.4",
27
- "hexo": "7.0.0-rc2",
27
+ "hexo": "7.0.0",
28
28
  "typescript": "^5.1.6"
29
29
  },
30
30
  "dependencies": {