mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2026-04-16 20:30:53 +08:00
1. 更改手機頁面的menu和toc的顯示方式和顯示特效(ipad也能看TOC)
1. 更改手機頁面的menu和toc的顯示方式和顯示特效(ipad也能看TOC) 3. 可設置複製時,内容自動加上版權信息 4. 可修改tag的top_img 5. 可修改category的top_img 6. 可修改valine的背景 7. archives頁UI優化 8. ICP增加icon #37 9. 可設置主頁top_img的高度 10. 可設置主頁site-info的位置 11. category頁和tag頁的UI可以設置與主頁UI一樣 #31 12. 主頁subtitle可設置多個句子(不再限制2個) #37 13. 設置menu時,頭尾添加空格不受影響 14. 調整post頁的佈局 15. 书签添加icon 16. 公告icon效果 17. 首頁歸檔模塊,可設置數量限制,會顯示'查看更多'按鈕 18. 右下角按鈕調整。 19. 修复文章cover隨機图片生成,同一篇文章,不同地方的cover顯示不一样的bug 20. 修復gitalk語言設置無效的bug #35 21. 修復post頁面,當沒有設置word count時,閲讀量前有'|" 22. 修复sub-menu在safari的显示问题 23. 修复tags页评论居中问题 24. 修复header a hover 白色问题 25. 修復夜間模式下footer的顔色bug 26. 修復英文語言下,書簽英文顯示不完整的問題
This commit is contained in:
133
scripts/list_archives.js
Normal file
133
scripts/list_archives.js
Normal file
@@ -0,0 +1,133 @@
|
||||
'use strict';
|
||||
|
||||
hexo.extend.helper.register('list_archives', function (options = {}) {
|
||||
|
||||
const {
|
||||
config
|
||||
} = this;
|
||||
const archiveDir = config.archive_dir;
|
||||
const {
|
||||
timezone
|
||||
} = config;
|
||||
const lang = this.page.lang || this.page.language || config.language;
|
||||
let {
|
||||
format
|
||||
} = options;
|
||||
const type = options.type || 'monthly';
|
||||
const {
|
||||
style = 'list', transform, separator = ', '
|
||||
} = options;
|
||||
const showCount = Object.prototype.hasOwnProperty.call(options, 'show_count') ? options.show_count : true;
|
||||
const className = options.class || 'archive';
|
||||
const order = options.order || -1;
|
||||
const limit = 8;
|
||||
let result = '';
|
||||
|
||||
var more_button
|
||||
if (lang === 'zh-CN') {
|
||||
more_button = '查看更多';
|
||||
} else if (lang === 'zh-TW') {
|
||||
more_button = '查看更多';
|
||||
} else {
|
||||
more_button = 'More';
|
||||
}
|
||||
|
||||
|
||||
if (!format) {
|
||||
format = type === 'monthly' ? 'MMMM YYYY' : 'YYYY';
|
||||
}
|
||||
|
||||
const posts = this.site.posts.sort('date', order);
|
||||
if (!posts.length) return result;
|
||||
|
||||
const data = [];
|
||||
let length = 0;
|
||||
|
||||
posts.forEach(post => {
|
||||
// Clone the date object to avoid pollution
|
||||
let date = post.date.clone();
|
||||
|
||||
if (timezone) date = date.tz(timezone);
|
||||
if (lang) date = date.locale(lang);
|
||||
|
||||
const year = date.year();
|
||||
const month = date.month() + 1;
|
||||
const name = date.format(format);
|
||||
const lastData = data[length - 1];
|
||||
|
||||
if (!lastData || lastData.name !== name) {
|
||||
length = data.push({
|
||||
name,
|
||||
year,
|
||||
month,
|
||||
count: 1
|
||||
});
|
||||
} else {
|
||||
lastData.count++;
|
||||
}
|
||||
});
|
||||
|
||||
const link = item => {
|
||||
let url = `${archiveDir}/${item.year}/`;
|
||||
|
||||
if (type === 'monthly') {
|
||||
if (item.month < 10) url += '0';
|
||||
url += `${item.month}/`;
|
||||
}
|
||||
|
||||
return this.url_for(url);
|
||||
};
|
||||
|
||||
if (style === 'list') {
|
||||
result += `<ul class="${className}-list">`;
|
||||
|
||||
for (let i = 0, len = data.length; i < Math.min(len, limit); i++) {
|
||||
const item = data[i];
|
||||
|
||||
result += `<li class="${className}-list-item">`;
|
||||
|
||||
result += `<a class="${className}-list-link" href="${link(item)}">`;
|
||||
result += transform ? transform(item.name) : item.name;
|
||||
|
||||
|
||||
if (showCount) {
|
||||
result += `<span class="${className}-list-count">${item.count}</span>`;
|
||||
}
|
||||
result += '</a>';
|
||||
result += '</li>';
|
||||
|
||||
}
|
||||
|
||||
if (data.length > limit) {
|
||||
result += `<li class="${className}-list-item">`;
|
||||
result += `<a class="${className}-list-link is_center" href="${archiveDir}" >`;
|
||||
result += more_button;
|
||||
result += '</a>';
|
||||
result += '</li>';
|
||||
}
|
||||
result += '</ul>';
|
||||
} else {
|
||||
for (let i = 0, len = data.length; i < Math.min(len, limit); i++) {
|
||||
const item = data[i];
|
||||
|
||||
if (i) result += separator;
|
||||
|
||||
result += `<a class="${className}-link" href="${link(item)}">`;
|
||||
result += transform ? transform(item.name) : item.name;
|
||||
|
||||
if (showCount) {
|
||||
result += `<span class="${className}-count">${item.count}</span>`;
|
||||
}
|
||||
|
||||
result += '</a>';
|
||||
}
|
||||
if (data.length > limit) {
|
||||
result += `<a class="${className}-link" is_center" href="${archiveDir}" >`;
|
||||
result += more_button;
|
||||
result += '</a>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return result;
|
||||
})
|
||||
Reference in New Issue
Block a user