mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2026-04-12 14:07:06 +08:00
1. chore: 只支持hexo 4.2.0以上版本
2. feat: 可隱藏Mobile sidebar 子菜單 3. refactor: archives和card-post 改為flex佈局 4. feat: 當寬度小於1024時,點擊toc滾動,增加滾動效果 5. feat: 點擊滾動,如果滾動是向上時,將會偏移60px, 避免導航欄遮擋 close #317 6. feat: 可配置font-size 7. refactor: 去除字體放大、縮小按鈕 8. refactor: 部分css由'px'改為'em',適應font-size值改變而改變 9. feat: pjax增加exclude配置 10. fix: 修復canvas_nest 配置沒有生效的Bugs 11. feat: 新增 cnzz_analytics 12. feat: 騰訊分析改為騰訊移動分析,並適配pjax 13. perf: 改cookies為localstore存儲 14. feat: 設置中的theme_color可單獨配置幾個,而不需要全部開啟 close #314 15. feat: butterfly.yml 採用deepMerge, 與_config文件進行合併而不是替換 16. fix: 修復rightsize-bottom配置無效的bug 17. refactor: aside增加position sticky 18. refactor: 調整webinfo 寬度小時的顯示 19. feat: 更改addtoany item的寫法 20. refactor: aside 內容邊距調整 21. feat: 增加最後更新時間顯示
This commit is contained in:
12
scripts/events/check_hexo.js
Normal file
12
scripts/events/check_hexo.js
Normal file
@@ -0,0 +1,12 @@
|
||||
const logger = require('hexo-log')()
|
||||
|
||||
hexo.extend.filter.register('before_generate', () => {
|
||||
// Get first two digits of the Hexo version number
|
||||
var hexoVer = hexo.version.replace(/(^.*\..*)\..*/, '$1')
|
||||
|
||||
if (hexoVer < 4.2) {
|
||||
logger.error('Please update Hexo to V4.2.0 or higher!')
|
||||
logger.error('請把 Hexo 升級到 V4.2.0 或更高的版本!')
|
||||
process.exit(-1)
|
||||
}
|
||||
})
|
||||
@@ -1,14 +1,18 @@
|
||||
/**
|
||||
* Note: configs in _data/butterfly.yml will replace configs in hexo.theme.config.
|
||||
* Note: configs in _data/butterfly.yml will merge configs with hexo.theme.config.
|
||||
*/
|
||||
|
||||
'use strict'
|
||||
|
||||
const { deepMerge } = require('hexo-util')
|
||||
|
||||
hexo.on('generateBefore', function () {
|
||||
const rootConfig = hexo.config
|
||||
if (hexo.locals.get) {
|
||||
const data = hexo.locals.get('data')
|
||||
data && data.butterfly && (hexo.theme.config = data.butterfly)
|
||||
if (data && data.butterfly) {
|
||||
hexo.theme.config = deepMerge(hexo.theme.config, data.butterfly)
|
||||
}
|
||||
}
|
||||
hexo.theme.config.rootConfig = rootConfig
|
||||
})
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
const logger = require('hexo-log')()
|
||||
|
||||
hexo.on('ready', () => {
|
||||
const { version } = require('../../package.json')
|
||||
hexo.log.info(`
|
||||
logger.info(`
|
||||
===================================================================
|
||||
|
||||
##### # # ##### ##### ###### ##### ###### # # #
|
||||
@@ -10,6 +12,6 @@ hexo.on('ready', () => {
|
||||
# # # # # # # # # # # #
|
||||
##### #### # # ###### # # # ###### #
|
||||
|
||||
${version}
|
||||
${version}
|
||||
===================================================================`)
|
||||
})
|
||||
@@ -38,11 +38,13 @@ hexo.extend.helper.register('cloudTags', function (options = {}) {
|
||||
const minfontsize = options.minfontsize
|
||||
const maxfontsize = options.maxfontsize
|
||||
const limit = options.limit
|
||||
const unit = options.unit || 'px'
|
||||
|
||||
let result = ''
|
||||
const tagLimit = limit === 0 ? source.length : limit
|
||||
source.sort('name').limit(tagLimit).forEach(function (tags) {
|
||||
const fontSize = Math.floor(Math.random() * (maxfontsize - minfontsize) + minfontsize) + 'px'
|
||||
const fontSizeRD = Math.random() * (maxfontsize - minfontsize) + minfontsize
|
||||
const fontSize = fontSizeRD.toFixed(2) + unit
|
||||
const color = 'rgb(' + Math.floor(Math.random() * 201) + ', ' + Math.floor(Math.random() * 201) + ', ' + Math.floor(Math.random() * 201) + ')' // 0,0,0 -> 200,200,200
|
||||
result += `<a href='${env.url_for(tags.path)}' style='font-size:${fontSize}; color:${color}'>${tags.name}</a>`
|
||||
})
|
||||
@@ -64,4 +66,4 @@ hexo.extend.helper.register('md5', function (path) {
|
||||
|
||||
hexo.extend.helper.register('get_hexo_version', function () {
|
||||
return hexo.version
|
||||
})
|
||||
})
|
||||
|
||||
@@ -44,7 +44,7 @@ function postTabs (args, content) {
|
||||
const icon = tabIcon.trim()
|
||||
tabIcon.length > 0 && (tabIcon = `<i class="${icon}"${isOnlyicon}></i>`)
|
||||
|
||||
const toTop = '<button type="button" class="tab-to-top" onclick="scrollToDest($(this).parents(\'.tabs\'),65)"><i class="fas fa-arrow-up"></i></button>'
|
||||
const toTop = '<button type="button" class="tab-to-top"><i class="fas fa-arrow-up"></i></button>'
|
||||
|
||||
const isActive = (tabActive > 0 && tabActive === tabId) || (tabActive === 0 && tabId === 1) ? ' active' : ''
|
||||
tabNav += `<li class="tab${isActive}"><button type="button" data-href="#${tabHref}">${tabIcon + tabCaption.trim()}</button></li>`
|
||||
|
||||
Reference in New Issue
Block a user