mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2026-06-05 21:01:46 +08:00
feat: 不再支持 butterfly.yml 寫法
improvement: 文章頁標題改為h1(seo) improvement: 改用hexo 內置的 injector 插入 inject 的代碼 improvement: canonical 改為hexo提供的函數生成 improvement: 優化手機toc 的特效和按鈕出現的時機 remove: 刪除搜索不必要的配置 remove: 移除豆瓣配置,如需配置,請使用 hexo-butterfly-douban fix: 修復上一個版本導致的搜索按鈕在pjax下無法點擊的bugs close #387 fix: 修復上一個版本更新的toc z-index 過低的bugs
This commit is contained in:
@@ -9,4 +9,13 @@ hexo.extend.filter.register('before_generate', () => {
|
||||
logger.error('請把 Hexo 升級到 V5.0.0 或更高的版本!')
|
||||
process.exit(-1)
|
||||
}
|
||||
|
||||
if (hexo.locals.get) {
|
||||
const data = hexo.locals.get('data')
|
||||
if (data && data.butterfly) {
|
||||
logger.error(" 'butterfly.yml' is deprecated. Please use '_config.butterfly.yml' ")
|
||||
logger.error(" 'butterfly.yml' 已經棄用,請使用 '_config.butterfly.yml' ")
|
||||
process.exit(-1)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* 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')
|
||||
if (data && data.butterfly) {
|
||||
hexo.theme.config = deepMerge(hexo.theme.config, data.butterfly)
|
||||
}
|
||||
}
|
||||
hexo.theme.config.rootConfig = rootConfig
|
||||
})
|
||||
@@ -6,7 +6,8 @@
|
||||
'use strict'
|
||||
|
||||
hexo.extend.filter.register('before_post_render', function (data) {
|
||||
if (hexo.theme.config.rootConfig.post_asset_folder) {
|
||||
const { config } = this
|
||||
if (config.post_asset_folder) {
|
||||
const imgTestReg = /\.(png|jpe?g|gif|svg|webp)(\?.*)?$/
|
||||
const topImg = data.top_img
|
||||
const cover = data.cover
|
||||
|
||||
+2
-17
@@ -2,13 +2,12 @@
|
||||
* Butterfly
|
||||
* @example
|
||||
* page_description()
|
||||
* injectHtml(data)
|
||||
* cloudTags(source, minfontsize, maxfontsize, limit)
|
||||
*/
|
||||
|
||||
'use strict'
|
||||
|
||||
const { stripHTML, escapeHTML } = require('hexo-util')
|
||||
const { stripHTML, escapeHTML, prettyUrls } = require('hexo-util')
|
||||
const crypto = require('crypto')
|
||||
|
||||
hexo.extend.helper.register('page_description', function () {
|
||||
@@ -23,15 +22,6 @@ hexo.extend.helper.register('page_description', function () {
|
||||
}
|
||||
})
|
||||
|
||||
hexo.extend.helper.register('injectHtml', function (data) {
|
||||
let result = ''
|
||||
if (!data) return ''
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
result += data[i]
|
||||
}
|
||||
return result
|
||||
})
|
||||
|
||||
hexo.extend.helper.register('cloudTags', function (options = {}) {
|
||||
const env = this
|
||||
let source = options.source
|
||||
@@ -65,12 +55,7 @@ hexo.extend.helper.register('cloudTags', function (options = {}) {
|
||||
})
|
||||
|
||||
hexo.extend.helper.register('urlNoIndex', function () {
|
||||
const { permalink } = hexo.config
|
||||
let url = this.url.replace(/index\.html$/, '')
|
||||
if (!permalink.endsWith('.html')) {
|
||||
url = url.replace(/\.html$/, '')
|
||||
}
|
||||
return url
|
||||
return prettyUrls(this.url, { trailing_index: false, trailing_html: false })
|
||||
})
|
||||
|
||||
hexo.extend.helper.register('md5', function (path) {
|
||||
|
||||
@@ -35,7 +35,7 @@ hexo.extend.helper.register('related_posts', function (currentPost, allPosts) {
|
||||
return ''
|
||||
}
|
||||
let result = ''
|
||||
const hexoConfig = hexo.theme.config.rootConfig
|
||||
const hexoConfig = hexo.config
|
||||
const config = hexo.theme.config
|
||||
|
||||
const limitNum = config.related_post.limit || 6
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
// Injector
|
||||
|
||||
'use strict'
|
||||
|
||||
hexo.extend.injector.register('head_end', function () {
|
||||
const data = hexo.config.theme_config && hexo.config.theme_config.inject.head
|
||||
return genResult(data)
|
||||
})
|
||||
|
||||
hexo.extend.injector.register('body_end', () => {
|
||||
const data = hexo.config.theme_config && hexo.config.theme_config.inject.bottom
|
||||
return genResult(data)
|
||||
})
|
||||
|
||||
function genResult (data) {
|
||||
let result = ''
|
||||
if (!data) return ''
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
result += data[i]
|
||||
}
|
||||
return result
|
||||
}
|
||||
Reference in New Issue
Block a user