mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2026-04-10 21:17:07 +08:00
4.11
This commit is contained in:
9
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
9
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -53,6 +53,15 @@ body:
|
|||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: dependencies
|
||||||
|
attributes:
|
||||||
|
label: 依賴插件 | Package dependencies Information
|
||||||
|
description: 在 Hexo 根目錄下執行`npm ls --depth 0` | Run `npm ls --depth 0` in Hexo root directory
|
||||||
|
render: Text
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: description
|
id: description
|
||||||
attributes:
|
attributes:
|
||||||
|
|||||||
8
.github/ISSUE_TEMPLATE/config.yml
vendored
8
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -12,11 +12,7 @@ contact_links:
|
|||||||
url: https://t.me/bu2fly
|
url: https://t.me/bu2fly
|
||||||
about: 'Official Telegram Group'
|
about: 'Official Telegram Group'
|
||||||
|
|
||||||
- name: QQ 1群
|
- name: QQ 群
|
||||||
url: https://jq.qq.com/?_wv=1027&k=KU9105XR
|
url: https://jq.qq.com/?_wv=1027&k=KU9105XR
|
||||||
about: '群號 1070540070,不要兩個Q群都添加'
|
about: '群號 1070540070'
|
||||||
|
|
||||||
- name: QQ 2群
|
|
||||||
url: https://jq.qq.com/?_wv=1027&k=r1nK0DQz
|
|
||||||
about: '群號 978221020,不要兩個Q群都添加'
|
|
||||||
|
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ theme: butterfly
|
|||||||
- [x] 多種在線聊天(Chatra/Tidio/Daovoice/Crisp/messenger)
|
- [x] 多種在線聊天(Chatra/Tidio/Daovoice/Crisp/messenger)
|
||||||
- [x] 多種分析系統
|
- [x] 多種分析系統
|
||||||
- [x] 谷歌廣告/手動廣告位置
|
- [x] 谷歌廣告/手動廣告位置
|
||||||
- [x] 各種站長驗證(Google/Bing/Baidu/360/Yandex)
|
- [x] 各種站長驗證
|
||||||
- [x] 修改網站配色
|
- [x] 修改網站配色
|
||||||
- [x] 打字特效 activate_power_mode
|
- [x] 打字特效 activate_power_mode
|
||||||
- [x] 多種背景特效(靜止彩帶/動態彩帶/Canvas Nest)
|
- [x] 多種背景特效(靜止彩帶/動態彩帶/Canvas Nest)
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ if (theme.pwa && theme.pwa.enable)
|
|||||||
|
|
||||||
//- main css
|
//- main css
|
||||||
link(rel='stylesheet', href=url_for(theme.asset.main_css))
|
link(rel='stylesheet', href=url_for(theme.asset.main_css))
|
||||||
link(rel='stylesheet', href=url_for(theme.asset.fontawesome) media="print" onload="this.media='all'")
|
link(rel='stylesheet', href=url_for(theme.asset.fontawesome))
|
||||||
|
|
||||||
if (theme.snackbar && theme.snackbar.enable)
|
if (theme.snackbar && theme.snackbar.enable)
|
||||||
link(rel='stylesheet', href=url_for(theme.asset.snackbar_css) media="print" onload="this.media='all'")
|
link(rel='stylesheet', href=url_for(theme.asset.snackbar_css) media="print" onload="this.media='all'")
|
||||||
|
|||||||
@@ -78,9 +78,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
let highlight = 'undefined';
|
let highlight = 'undefined';
|
||||||
if ((config.highlight && config.highlight.enable) || (config.prismjs && config.prismjs.enable)) {
|
let syntaxHighlighter = config.syntax_highlighter;
|
||||||
|
let highlightEnable = syntaxHighlighter ? ['highlight.js', 'prismjs'].includes(syntaxHighlighter) : (config.highlight.enable || config.prismjs.enable);
|
||||||
|
if (highlightEnable) {
|
||||||
highlight = JSON.stringify({
|
highlight = JSON.stringify({
|
||||||
plugin: config.highlight.enable ? 'highlighjs' : 'prismjs',
|
plugin: syntaxHighlighter ? syntaxHighlighter : config.highlight.enable ? 'highlight.js' : 'prismjs',
|
||||||
highlightCopy: theme.highlight_copy,
|
highlightCopy: theme.highlight_copy,
|
||||||
highlightLang: theme.highlight_lang,
|
highlightLang: theme.highlight_lang,
|
||||||
highlightHeightLimit: theme.highlight_height_limit
|
highlightHeightLimit: theme.highlight_height_limit
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ script.
|
|||||||
}
|
}
|
||||||
|
|
||||||
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
||||||
$dom.innerHTML= result
|
$dom && ($dom && ($dom.innerHTML= result))
|
||||||
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
||||||
window.pjax && window.pjax.refresh($dom)
|
window.pjax && window.pjax.refresh($dom)
|
||||||
}
|
}
|
||||||
@@ -90,7 +90,7 @@ script.
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
const $dom = document.querySelector('#card-newest-comments .aside-list')
|
const $dom = document.querySelector('#card-newest-comments .aside-list')
|
||||||
$dom.innerHTML= "!{_p('aside.card_newest_comments.error')}"
|
$dom.textContent= "!{_p('aside.card_newest_comments.error')}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ script.
|
|||||||
}
|
}
|
||||||
|
|
||||||
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
||||||
$dom.innerHTML= result
|
$dom && ($dom.innerHTML= result)
|
||||||
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
||||||
window.pjax && window.pjax.refresh($dom)
|
window.pjax && window.pjax.refresh($dom)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ script.
|
|||||||
}
|
}
|
||||||
|
|
||||||
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
||||||
$dom.innerHTML= result
|
$dom && ($dom.innerHTML= result)
|
||||||
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
||||||
window.pjax && window.pjax.refresh($dom)
|
window.pjax && window.pjax.refresh($dom)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ script.
|
|||||||
}
|
}
|
||||||
|
|
||||||
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
||||||
$dom.innerHTML= result
|
$dom && ($dom.innerHTML= result)
|
||||||
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
||||||
window.pjax && window.pjax.refresh($dom)
|
window.pjax && window.pjax.refresh($dom)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ script.
|
|||||||
}
|
}
|
||||||
|
|
||||||
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
||||||
$dom.innerHTML= result
|
$dom && ($dom.innerHTML= result)
|
||||||
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
||||||
window.pjax && window.pjax.refresh($dom)
|
window.pjax && window.pjax.refresh($dom)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ script.
|
|||||||
}
|
}
|
||||||
|
|
||||||
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
||||||
$dom.innerHTML= result
|
$dom && ($dom.innerHTML= result)
|
||||||
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
||||||
window.pjax && window.pjax.refresh($dom)
|
window.pjax && window.pjax.refresh($dom)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ script.
|
|||||||
}
|
}
|
||||||
|
|
||||||
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
||||||
$dom.innerHTML= result
|
$dom && ($dom.innerHTML= result)
|
||||||
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
||||||
window.pjax && window.pjax.refresh($dom)
|
window.pjax && window.pjax.refresh($dom)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "hexo-theme-butterfly",
|
"name": "hexo-theme-butterfly",
|
||||||
"version": "4.10.0",
|
"version": "4.11.0",
|
||||||
"description": "A Simple and Card UI Design theme for Hexo",
|
"description": "A Simple and Card UI Design theme for Hexo",
|
||||||
"main": "package.json",
|
"main": "package.json",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
32
plugins.yml
32
plugins.yml
@@ -5,7 +5,7 @@ algolia_search:
|
|||||||
instantsearch:
|
instantsearch:
|
||||||
name: instantsearch.js
|
name: instantsearch.js
|
||||||
file: dist/instantsearch.production.min.js
|
file: dist/instantsearch.production.min.js
|
||||||
version: 4.57.0
|
version: 4.60.0
|
||||||
pjax:
|
pjax:
|
||||||
name: pjax
|
name: pjax
|
||||||
file: pjax.min.js
|
file: pjax.min.js
|
||||||
@@ -37,7 +37,7 @@ disqusjs_css:
|
|||||||
twikoo:
|
twikoo:
|
||||||
name: twikoo
|
name: twikoo
|
||||||
file: dist/twikoo.all.min.js
|
file: dist/twikoo.all.min.js
|
||||||
version: 1.6.22
|
version: 1.6.25
|
||||||
waline_js:
|
waline_js:
|
||||||
name: '@waline/client'
|
name: '@waline/client'
|
||||||
file: dist/waline.js
|
file: dist/waline.js
|
||||||
@@ -73,7 +73,7 @@ katex_copytex:
|
|||||||
mermaid:
|
mermaid:
|
||||||
name: mermaid
|
name: mermaid
|
||||||
file: dist/mermaid.min.js
|
file: dist/mermaid.min.js
|
||||||
version: 10.5.0
|
version: 10.6.1
|
||||||
canvas_ribbon:
|
canvas_ribbon:
|
||||||
name: butterfly-extsrc
|
name: butterfly-extsrc
|
||||||
file: dist/canvas-ribbon.min.js
|
file: dist/canvas-ribbon.min.js
|
||||||
@@ -105,7 +105,7 @@ clickShowText:
|
|||||||
lazyload:
|
lazyload:
|
||||||
name: vanilla-lazyload
|
name: vanilla-lazyload
|
||||||
file: dist/lazyload.iife.min.js
|
file: dist/lazyload.iife.min.js
|
||||||
version: 17.8.4
|
version: 17.8.5
|
||||||
instantpage:
|
instantpage:
|
||||||
name: instant.page
|
name: instant.page
|
||||||
file: instantpage.js
|
file: instantpage.js
|
||||||
@@ -113,7 +113,7 @@ instantpage:
|
|||||||
typed:
|
typed:
|
||||||
name: typed.js
|
name: typed.js
|
||||||
file: dist/typed.umd.js
|
file: dist/typed.umd.js
|
||||||
version: 2.0.16
|
version: 2.1.0
|
||||||
pangu:
|
pangu:
|
||||||
name: pangu
|
name: pangu
|
||||||
file: dist/browser/pangu.min.js
|
file: dist/browser/pangu.min.js
|
||||||
@@ -121,17 +121,17 @@ pangu:
|
|||||||
fancybox_css:
|
fancybox_css:
|
||||||
name: '@fancyapps/ui'
|
name: '@fancyapps/ui'
|
||||||
file: dist/fancybox/fancybox.css
|
file: dist/fancybox/fancybox.css
|
||||||
version: 5.0.24
|
version: 5.0.28
|
||||||
other_name: fancyapps-ui
|
other_name: fancyapps-ui
|
||||||
fancybox:
|
fancybox:
|
||||||
name: '@fancyapps/ui'
|
name: '@fancyapps/ui'
|
||||||
file: dist/fancybox/fancybox.umd.js
|
file: dist/fancybox/fancybox.umd.js
|
||||||
version: 5.0.24
|
version: 5.0.28
|
||||||
other_name: fancyapps-ui
|
other_name: fancyapps-ui
|
||||||
medium_zoom:
|
medium_zoom:
|
||||||
name: medium-zoom
|
name: medium-zoom
|
||||||
file: dist/medium-zoom.min.js
|
file: dist/medium-zoom.min.js
|
||||||
version: 1.0.8
|
version: 1.1.0
|
||||||
snackbar_css:
|
snackbar_css:
|
||||||
name: node-snackbar
|
name: node-snackbar
|
||||||
file: dist/snackbar.min.css
|
file: dist/snackbar.min.css
|
||||||
@@ -145,11 +145,19 @@ fontawesome:
|
|||||||
file: css/all.min.css
|
file: css/all.min.css
|
||||||
other_name: font-awesome
|
other_name: font-awesome
|
||||||
version: 6.4.2
|
version: 6.4.2
|
||||||
|
flickr_justified_gallery_js:
|
||||||
|
name: flickr-justified-gallery
|
||||||
|
file: dist/fjGallery.min.js
|
||||||
|
version: 2.1.2
|
||||||
|
flickr_justified_gallery_css:
|
||||||
|
name: flickr-justified-gallery
|
||||||
|
file: dist/fjGallery.css
|
||||||
|
version: 2.1.2
|
||||||
egjs_infinitegrid:
|
egjs_infinitegrid:
|
||||||
name: '@egjs/infinitegrid'
|
name: '@egjs/infinitegrid'
|
||||||
other_name: egjs-infinitegrid
|
other_name: egjs-infinitegrid
|
||||||
file: dist/infinitegrid.min.js
|
file: dist/infinitegrid.min.js
|
||||||
version: 4.10.1
|
version: 4.11.0
|
||||||
aplayer_css:
|
aplayer_css:
|
||||||
name: aplayer
|
name: aplayer
|
||||||
file: dist/APlayer.min.css
|
file: dist/APlayer.min.css
|
||||||
@@ -180,11 +188,11 @@ prismjs_autoloader:
|
|||||||
artalk_js:
|
artalk_js:
|
||||||
name: artalk
|
name: artalk
|
||||||
file: dist/Artalk.js
|
file: dist/Artalk.js
|
||||||
version: 2.6.3
|
version: 2.6.4
|
||||||
artalk_css:
|
artalk_css:
|
||||||
name: artalk
|
name: artalk
|
||||||
file: dist/Artalk.css
|
file: dist/Artalk.css
|
||||||
version: 2.6.3
|
version: 2.6.4
|
||||||
pace_js:
|
pace_js:
|
||||||
name: pace-js
|
name: pace-js
|
||||||
other_name: pace
|
other_name: pace
|
||||||
@@ -208,4 +216,4 @@ docsearch_css:
|
|||||||
abcjs_basic_js:
|
abcjs_basic_js:
|
||||||
name: abcjs
|
name: abcjs
|
||||||
file: dist/abcjs-basic-min.js
|
file: dist/abcjs-basic-min.js
|
||||||
version: 6.2.2
|
version: 6.2.3
|
||||||
|
|||||||
544
scripts/events/merge_config.js
Normal file
544
scripts/events/merge_config.js
Normal file
@@ -0,0 +1,544 @@
|
|||||||
|
hexo.extend.filter.register('before_generate', () => {
|
||||||
|
const defaultConfig = {
|
||||||
|
nav: {
|
||||||
|
logo: null,
|
||||||
|
display_title: true,
|
||||||
|
fixed: false
|
||||||
|
},
|
||||||
|
menu: null,
|
||||||
|
highlight_theme: 'light',
|
||||||
|
highlight_copy: true,
|
||||||
|
highlight_lang: true,
|
||||||
|
highlight_shrink: false,
|
||||||
|
highlight_height_limit: false,
|
||||||
|
code_word_wrap: false,
|
||||||
|
social: null,
|
||||||
|
favicon: '/img/favicon.png',
|
||||||
|
avatar: {
|
||||||
|
img: 'https://i.loli.net/2021/02/24/5O1day2nriDzjSu.png',
|
||||||
|
effect: false
|
||||||
|
},
|
||||||
|
disable_top_img: false,
|
||||||
|
index_img: null,
|
||||||
|
default_top_img: null,
|
||||||
|
archive_img: null,
|
||||||
|
tag_img: null,
|
||||||
|
tag_per_img: null,
|
||||||
|
category_img: null,
|
||||||
|
category_per_img: null,
|
||||||
|
cover: {
|
||||||
|
index_enable: true,
|
||||||
|
aside_enable: true,
|
||||||
|
archives_enable: true,
|
||||||
|
position: 'both',
|
||||||
|
default_cover: null
|
||||||
|
},
|
||||||
|
error_img: {
|
||||||
|
flink: '/img/friend_404.gif',
|
||||||
|
post_page: '/img/404.jpg'
|
||||||
|
},
|
||||||
|
error_404: {
|
||||||
|
enable: false,
|
||||||
|
subtitle: 'Page Not Found',
|
||||||
|
background: 'https://i.loli.net/2020/05/19/aKOcLiyPl2JQdFD.png'
|
||||||
|
},
|
||||||
|
post_meta: {
|
||||||
|
page: {
|
||||||
|
date_type: 'created',
|
||||||
|
date_format: 'date',
|
||||||
|
categories: true,
|
||||||
|
tags: false,
|
||||||
|
label: true
|
||||||
|
},
|
||||||
|
post: {
|
||||||
|
date_type: 'both',
|
||||||
|
date_format: 'date',
|
||||||
|
categories: true,
|
||||||
|
tags: true,
|
||||||
|
label: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
index_post_content: {
|
||||||
|
method: 3,
|
||||||
|
length: 500
|
||||||
|
},
|
||||||
|
anchor: {
|
||||||
|
auto_update: false,
|
||||||
|
click_to_scroll: false
|
||||||
|
},
|
||||||
|
photofigcaption: false,
|
||||||
|
copy: {
|
||||||
|
enable: true,
|
||||||
|
copyright: {
|
||||||
|
enable: false,
|
||||||
|
limit_count: 50
|
||||||
|
}
|
||||||
|
},
|
||||||
|
toc: {
|
||||||
|
post: true,
|
||||||
|
page: false,
|
||||||
|
number: true,
|
||||||
|
expand: false,
|
||||||
|
style_simple: false,
|
||||||
|
scroll_percent: true
|
||||||
|
},
|
||||||
|
post_copyright: {
|
||||||
|
enable: true,
|
||||||
|
decode: false,
|
||||||
|
author_href: null,
|
||||||
|
license: 'CC BY-NC-SA 4.0',
|
||||||
|
license_url: 'https://creativecommons.org/licenses/by-nc-sa/4.0/'
|
||||||
|
},
|
||||||
|
reward: {
|
||||||
|
enable: false,
|
||||||
|
text: null,
|
||||||
|
QR_code: null
|
||||||
|
},
|
||||||
|
post_edit: {
|
||||||
|
enable: false,
|
||||||
|
url: null
|
||||||
|
},
|
||||||
|
related_post: {
|
||||||
|
enable: true,
|
||||||
|
limit: 6,
|
||||||
|
date_type: 'created'
|
||||||
|
},
|
||||||
|
post_pagination: 1,
|
||||||
|
noticeOutdate: {
|
||||||
|
enable: false,
|
||||||
|
style: 'flat',
|
||||||
|
limit_day: 500,
|
||||||
|
position: 'top',
|
||||||
|
message_prev: 'It has been',
|
||||||
|
message_next: 'days since the last update, the content of the article may be outdated.'
|
||||||
|
},
|
||||||
|
footer: {
|
||||||
|
owner: {
|
||||||
|
enable: true,
|
||||||
|
since: 2020
|
||||||
|
},
|
||||||
|
custom_text: null,
|
||||||
|
copyright: true
|
||||||
|
},
|
||||||
|
aside: {
|
||||||
|
enable: true,
|
||||||
|
hide: false,
|
||||||
|
button: true,
|
||||||
|
mobile: true,
|
||||||
|
position: 'right',
|
||||||
|
display: {
|
||||||
|
archive: true,
|
||||||
|
tag: true,
|
||||||
|
category: true
|
||||||
|
},
|
||||||
|
card_author: {
|
||||||
|
enable: true,
|
||||||
|
description: null,
|
||||||
|
button: {
|
||||||
|
enable: true,
|
||||||
|
icon: 'fab fa-github',
|
||||||
|
text: 'Follow Me',
|
||||||
|
link: 'https://github.com/xxxxxx'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
card_announcement: {
|
||||||
|
enable: true,
|
||||||
|
content: 'This is my Blog'
|
||||||
|
},
|
||||||
|
card_recent_post: {
|
||||||
|
enable: true,
|
||||||
|
limit: 5,
|
||||||
|
sort: 'date',
|
||||||
|
sort_order: null
|
||||||
|
},
|
||||||
|
card_categories: {
|
||||||
|
enable: true,
|
||||||
|
limit: 8,
|
||||||
|
expand: 'none',
|
||||||
|
sort_order: null
|
||||||
|
},
|
||||||
|
card_tags: {
|
||||||
|
enable: true,
|
||||||
|
limit: 40,
|
||||||
|
color: false,
|
||||||
|
orderby: 'random',
|
||||||
|
order: 1,
|
||||||
|
sort_order: null
|
||||||
|
},
|
||||||
|
card_archives: {
|
||||||
|
enable: true,
|
||||||
|
type: 'monthly',
|
||||||
|
format: 'MMMM YYYY',
|
||||||
|
order: -1,
|
||||||
|
limit: 8,
|
||||||
|
sort_order: null
|
||||||
|
},
|
||||||
|
card_webinfo: {
|
||||||
|
enable: true,
|
||||||
|
post_count: true,
|
||||||
|
last_push_date: true,
|
||||||
|
sort_order: null
|
||||||
|
},
|
||||||
|
card_post_series: {
|
||||||
|
enable: true,
|
||||||
|
orderBy: 'date',
|
||||||
|
order: -1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
busuanzi: {
|
||||||
|
site_uv: true,
|
||||||
|
site_pv: true,
|
||||||
|
page_pv: true
|
||||||
|
},
|
||||||
|
runtimeshow: {
|
||||||
|
enable: false,
|
||||||
|
publish_date: null
|
||||||
|
},
|
||||||
|
newest_comments: {
|
||||||
|
enable: false,
|
||||||
|
sort_order: null,
|
||||||
|
limit: 6,
|
||||||
|
storage: 10,
|
||||||
|
avatar: true
|
||||||
|
},
|
||||||
|
translate: {
|
||||||
|
enable: false,
|
||||||
|
default: '繁',
|
||||||
|
defaultEncoding: 2,
|
||||||
|
translateDelay: 0,
|
||||||
|
msgToTraditionalChinese: '繁',
|
||||||
|
msgToSimplifiedChinese: '簡'
|
||||||
|
},
|
||||||
|
readmode: true,
|
||||||
|
darkmode: {
|
||||||
|
enable: true,
|
||||||
|
button: true,
|
||||||
|
autoChangeMode: false,
|
||||||
|
start: null,
|
||||||
|
end: null
|
||||||
|
},
|
||||||
|
rightside_scroll_percent: false,
|
||||||
|
rightside_item_order: {
|
||||||
|
enable: false,
|
||||||
|
hide: null,
|
||||||
|
show: null
|
||||||
|
},
|
||||||
|
mathjax: {
|
||||||
|
enable: false,
|
||||||
|
per_page: false
|
||||||
|
},
|
||||||
|
katex: {
|
||||||
|
enable: false,
|
||||||
|
per_page: false,
|
||||||
|
hide_scrollbar: true
|
||||||
|
},
|
||||||
|
algolia_search: {
|
||||||
|
enable: false,
|
||||||
|
hits: {
|
||||||
|
per_page: 6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
local_search: {
|
||||||
|
enable: false,
|
||||||
|
preload: false,
|
||||||
|
top_n_per_article: 1,
|
||||||
|
unescape: false,
|
||||||
|
CDN: null
|
||||||
|
},
|
||||||
|
docsearch: {
|
||||||
|
enable: false,
|
||||||
|
appId: null,
|
||||||
|
apiKey: null,
|
||||||
|
indexName: null,
|
||||||
|
option: null
|
||||||
|
},
|
||||||
|
sharejs: {
|
||||||
|
enable: true,
|
||||||
|
sites: 'facebook,twitter,wechat,weibo,qq'
|
||||||
|
},
|
||||||
|
addtoany: {
|
||||||
|
enable: false,
|
||||||
|
item: 'facebook,twitter,wechat,sina_weibo,facebook_messenger,email,copy_link'
|
||||||
|
},
|
||||||
|
comments: {
|
||||||
|
use: null,
|
||||||
|
text: true,
|
||||||
|
lazyload: false,
|
||||||
|
count: false,
|
||||||
|
card_post_count: false
|
||||||
|
},
|
||||||
|
disqus: {
|
||||||
|
shortname: null,
|
||||||
|
apikey: null
|
||||||
|
},
|
||||||
|
disqusjs: {
|
||||||
|
shortname: null,
|
||||||
|
apikey: null,
|
||||||
|
option: null
|
||||||
|
},
|
||||||
|
livere: {
|
||||||
|
uid: null
|
||||||
|
},
|
||||||
|
gitalk: {
|
||||||
|
client_id: null,
|
||||||
|
client_secret: null,
|
||||||
|
repo: null,
|
||||||
|
owner: null,
|
||||||
|
admin: null,
|
||||||
|
option: null
|
||||||
|
},
|
||||||
|
valine: {
|
||||||
|
appId: null,
|
||||||
|
appKey: null,
|
||||||
|
avatar: 'monsterid',
|
||||||
|
serverURLs: null,
|
||||||
|
bg: null,
|
||||||
|
visitor: false,
|
||||||
|
option: null
|
||||||
|
},
|
||||||
|
waline: {
|
||||||
|
serverURL: null,
|
||||||
|
bg: null,
|
||||||
|
pageview: false,
|
||||||
|
option: null
|
||||||
|
},
|
||||||
|
utterances: {
|
||||||
|
repo: null,
|
||||||
|
issue_term: 'pathname',
|
||||||
|
light_theme: 'github-light',
|
||||||
|
dark_theme: 'photon-dark'
|
||||||
|
},
|
||||||
|
facebook_comments: {
|
||||||
|
app_id: null,
|
||||||
|
user_id: null,
|
||||||
|
pageSize: 10,
|
||||||
|
order_by: 'social',
|
||||||
|
lang: 'zh_TW'
|
||||||
|
},
|
||||||
|
twikoo: {
|
||||||
|
envId: null,
|
||||||
|
region: null,
|
||||||
|
visitor: false,
|
||||||
|
option: null
|
||||||
|
},
|
||||||
|
giscus: {
|
||||||
|
repo: null,
|
||||||
|
repo_id: null,
|
||||||
|
category_id: null,
|
||||||
|
theme: {
|
||||||
|
light: 'light',
|
||||||
|
dark: 'dark'
|
||||||
|
},
|
||||||
|
option: null
|
||||||
|
},
|
||||||
|
remark42: {
|
||||||
|
host: null,
|
||||||
|
siteId: null,
|
||||||
|
option: null
|
||||||
|
},
|
||||||
|
artalk: {
|
||||||
|
server: null,
|
||||||
|
site: null,
|
||||||
|
visitor: false,
|
||||||
|
option: null
|
||||||
|
},
|
||||||
|
chat_btn: false,
|
||||||
|
chat_hide_show: false,
|
||||||
|
chatra: {
|
||||||
|
enable: false,
|
||||||
|
id: null
|
||||||
|
},
|
||||||
|
tidio: {
|
||||||
|
enable: false,
|
||||||
|
public_key: null
|
||||||
|
},
|
||||||
|
daovoice: {
|
||||||
|
enable: false,
|
||||||
|
app_id: null
|
||||||
|
},
|
||||||
|
crisp: {
|
||||||
|
enable: false,
|
||||||
|
website_id: null
|
||||||
|
},
|
||||||
|
messenger: {
|
||||||
|
enable: false,
|
||||||
|
pageID: null,
|
||||||
|
lang: 'zh_TW'
|
||||||
|
},
|
||||||
|
baidu_analytics: null,
|
||||||
|
google_analytics: null,
|
||||||
|
cloudflare_analytics: null,
|
||||||
|
microsoft_clarity: null,
|
||||||
|
google_adsense: {
|
||||||
|
enable: false,
|
||||||
|
auto_ads: true,
|
||||||
|
js: 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js',
|
||||||
|
client: null,
|
||||||
|
enable_page_level_ads: true
|
||||||
|
},
|
||||||
|
site_verification: null,
|
||||||
|
index_site_info_top: null,
|
||||||
|
index_top_img_height: null,
|
||||||
|
category_ui: null,
|
||||||
|
tag_ui: null,
|
||||||
|
text_align_justify: false,
|
||||||
|
background: null,
|
||||||
|
footer_bg: false,
|
||||||
|
mask: {
|
||||||
|
header: true,
|
||||||
|
footer: true
|
||||||
|
},
|
||||||
|
rightside_bottom: null,
|
||||||
|
enter_transitions: true,
|
||||||
|
activate_power_mode: {
|
||||||
|
enable: false,
|
||||||
|
colorful: true,
|
||||||
|
shake: true,
|
||||||
|
mobile: false
|
||||||
|
},
|
||||||
|
canvas_ribbon: {
|
||||||
|
enable: false,
|
||||||
|
size: 150,
|
||||||
|
alpha: 0.6,
|
||||||
|
zIndex: -1,
|
||||||
|
click_to_change: false,
|
||||||
|
mobile: false
|
||||||
|
},
|
||||||
|
canvas_fluttering_ribbon: {
|
||||||
|
enable: false,
|
||||||
|
mobile: false
|
||||||
|
},
|
||||||
|
canvas_nest: {
|
||||||
|
enable: false,
|
||||||
|
color: '0,0,255',
|
||||||
|
opacity: 0.7,
|
||||||
|
zIndex: -1,
|
||||||
|
count: 99,
|
||||||
|
mobile: false
|
||||||
|
},
|
||||||
|
fireworks: {
|
||||||
|
enable: false,
|
||||||
|
zIndex: 9999,
|
||||||
|
mobile: false
|
||||||
|
},
|
||||||
|
click_heart: {
|
||||||
|
enable: false,
|
||||||
|
mobile: false
|
||||||
|
},
|
||||||
|
clickShowText: {
|
||||||
|
enable: false,
|
||||||
|
text: null,
|
||||||
|
fontSize: '15px',
|
||||||
|
random: false,
|
||||||
|
mobile: false
|
||||||
|
},
|
||||||
|
display_mode: 'light',
|
||||||
|
beautify: {
|
||||||
|
enable: false,
|
||||||
|
field: 'post',
|
||||||
|
'title-prefix-icon': null,
|
||||||
|
'title-prefix-icon-color': null
|
||||||
|
},
|
||||||
|
font: {
|
||||||
|
'global-font-size': null,
|
||||||
|
'code-font-size': null,
|
||||||
|
'font-family': null,
|
||||||
|
'code-font-family': null
|
||||||
|
},
|
||||||
|
blog_title_font: {
|
||||||
|
font_link: null,
|
||||||
|
'font-family': null
|
||||||
|
},
|
||||||
|
hr_icon: {
|
||||||
|
enable: true,
|
||||||
|
icon: null,
|
||||||
|
'icon-top': null
|
||||||
|
},
|
||||||
|
subtitle: {
|
||||||
|
enable: false,
|
||||||
|
effect: true,
|
||||||
|
typed_option: null,
|
||||||
|
source: false,
|
||||||
|
sub: null
|
||||||
|
},
|
||||||
|
preloader: {
|
||||||
|
enable: false,
|
||||||
|
source: 1,
|
||||||
|
pace_css_url: null
|
||||||
|
},
|
||||||
|
wordcount: {
|
||||||
|
enable: false,
|
||||||
|
post_wordcount: true,
|
||||||
|
min2read: true,
|
||||||
|
total_wordcount: true
|
||||||
|
},
|
||||||
|
medium_zoom: false,
|
||||||
|
fancybox: true,
|
||||||
|
series: {
|
||||||
|
enable: true,
|
||||||
|
orderBy: 'title',
|
||||||
|
order: 1,
|
||||||
|
number: true
|
||||||
|
},
|
||||||
|
abcjs: {
|
||||||
|
enable: false,
|
||||||
|
per_page: true
|
||||||
|
},
|
||||||
|
mermaid: {
|
||||||
|
enable: false,
|
||||||
|
theme: {
|
||||||
|
light: 'default',
|
||||||
|
dark: 'dark'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
note: {
|
||||||
|
style: 'flat',
|
||||||
|
icons: true,
|
||||||
|
border_radius: 3,
|
||||||
|
light_bg_offset: 0
|
||||||
|
},
|
||||||
|
pjax: {
|
||||||
|
enable: false,
|
||||||
|
exclude: null
|
||||||
|
},
|
||||||
|
aplayerInject: {
|
||||||
|
enable: false,
|
||||||
|
per_page: true
|
||||||
|
},
|
||||||
|
snackbar: {
|
||||||
|
enable: false,
|
||||||
|
position: 'bottom-left',
|
||||||
|
bg_light: '#49b1f5',
|
||||||
|
bg_dark: '#1f1f1f'
|
||||||
|
},
|
||||||
|
instantpage: false,
|
||||||
|
pangu: {
|
||||||
|
enable: false,
|
||||||
|
field: 'site'
|
||||||
|
},
|
||||||
|
lazyload: {
|
||||||
|
enable: false,
|
||||||
|
field: 'site',
|
||||||
|
placeholder: null,
|
||||||
|
blur: false
|
||||||
|
},
|
||||||
|
Open_Graph_meta: {
|
||||||
|
enable: true,
|
||||||
|
option: null
|
||||||
|
},
|
||||||
|
css_prefix: true,
|
||||||
|
inject: {
|
||||||
|
head: null,
|
||||||
|
bottom: null
|
||||||
|
},
|
||||||
|
CDN: {
|
||||||
|
internal_provider: 'local',
|
||||||
|
third_party_provider: 'jsdelivr',
|
||||||
|
version: false,
|
||||||
|
custom_format: null,
|
||||||
|
option: null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hexo.theme.config = Object.assign(defaultConfig, hexo.theme.config)
|
||||||
|
}, 1)
|
||||||
@@ -5,8 +5,15 @@
|
|||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
hexo.extend.filter.register('stylus:renderer', style => {
|
hexo.extend.filter.register('stylus:renderer', style => {
|
||||||
const { enable: highlightEnable, line_number: highlightLineNumber } = hexo.config.highlight
|
const { syntax_highlighter: syntaxHighlighter, highlight, prismjs } = hexo.config
|
||||||
const { enable: prismjsEnable, line_number: prismjsLineNumber } = hexo.config.prismjs
|
let { enable: highlightEnable, line_number: highlightLineNumber } = highlight
|
||||||
|
let { enable: prismjsEnable, line_number: prismjsLineNumber } = prismjs
|
||||||
|
|
||||||
|
// for hexo > 7.0
|
||||||
|
if (syntaxHighlighter) {
|
||||||
|
highlightEnable = syntaxHighlighter === 'highlight.js'
|
||||||
|
prismjsEnable = syntaxHighlighter === 'prismjs'
|
||||||
|
}
|
||||||
|
|
||||||
style.define('$highlight_enable', highlightEnable)
|
style.define('$highlight_enable', highlightEnable)
|
||||||
.define('$highlight_line_number', highlightLineNumber)
|
.define('$highlight_line_number', highlightLineNumber)
|
||||||
|
|||||||
@@ -109,6 +109,16 @@ beautify()
|
|||||||
line-height: 1em
|
line-height: 1em
|
||||||
|
|
||||||
if hexo-config('anchor.click_to_scroll')
|
if hexo-config('anchor.click_to_scroll')
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6
|
||||||
|
a:not(.headerlink)
|
||||||
|
position relative
|
||||||
|
z-index 10
|
||||||
|
|
||||||
a.headerlink
|
a.headerlink
|
||||||
position: absolute
|
position: absolute
|
||||||
top: 0
|
top: 0
|
||||||
|
|||||||
@@ -33,15 +33,16 @@
|
|||||||
margin: 20px auto
|
margin: 20px auto
|
||||||
|
|
||||||
.menus_items
|
.menus_items
|
||||||
padding: 0 5px
|
padding: 0 10px
|
||||||
|
|
||||||
.site-page
|
.site-page
|
||||||
@extend .limit-one-line
|
@extend .limit-one-line
|
||||||
position: relative
|
position: relative
|
||||||
display: block
|
display: block
|
||||||
padding: 6px 30px 6px 22px
|
padding: 3px 28px 3px 20px
|
||||||
color: var(--font-color)
|
color: var(--font-color)
|
||||||
font-size: 1.15em
|
font-size: 1.15em
|
||||||
|
border-radius: 6px
|
||||||
|
|
||||||
&:hover
|
&:hover
|
||||||
background: var(--text-bg-hover)
|
background: var(--text-bg-hover)
|
||||||
|
|||||||
@@ -53,7 +53,6 @@
|
|||||||
|
|
||||||
.search-result
|
.search-result
|
||||||
margin: 0 0 8px
|
margin: 0 0 8px
|
||||||
word-break: break-word
|
|
||||||
|
|
||||||
.search-result-list
|
.search-result-list
|
||||||
overflow-y: overlay
|
overflow-y: overlay
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
const { highlightCopy, highlightLang, highlightHeightLimit, plugin } = highLight
|
const { highlightCopy, highlightLang, highlightHeightLimit, plugin } = highLight
|
||||||
const isHighlightShrink = GLOBAL_CONFIG_SITE.isHighlightShrink
|
const isHighlightShrink = GLOBAL_CONFIG_SITE.isHighlightShrink
|
||||||
const isShowTool = highlightCopy || highlightLang || isHighlightShrink !== undefined
|
const isShowTool = highlightCopy || highlightLang || isHighlightShrink !== undefined
|
||||||
const $figureHighlight = plugin === 'highlighjs' ? document.querySelectorAll('figure.highlight') : document.querySelectorAll('pre[class*="language-"]')
|
const $figureHighlight = plugin === 'highlight.js' ? document.querySelectorAll('figure.highlight') : document.querySelectorAll('pre[class*="language-"]')
|
||||||
|
|
||||||
if (!((isShowTool || highlightHeightLimit) && $figureHighlight.length)) return
|
if (!((isShowTool || highlightHeightLimit) && $figureHighlight.length)) return
|
||||||
|
|
||||||
@@ -75,23 +75,23 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
const highlightShrinkEle = isHighlightShrink !== undefined ? '<i class="fas fa-angle-down expand"></i>' : ''
|
const highlightShrinkEle = isHighlightShrink !== undefined ? '<i class="fas fa-angle-down expand"></i>' : ''
|
||||||
const highlightCopyEle = highlightCopy ? '<div class="copy-notice"></div><i class="fas fa-paste copy-button"></i>' : ''
|
const highlightCopyEle = highlightCopy ? '<div class="copy-notice"></div><i class="fas fa-paste copy-button"></i>' : ''
|
||||||
|
|
||||||
const copy = (text, ctx) => {
|
const alertInfo = (ele, text) => {
|
||||||
|
if (GLOBAL_CONFIG.Snackbar !== undefined) {
|
||||||
|
btf.snackbarShow(text)
|
||||||
|
} else {
|
||||||
|
const prevEle = ele.previousElementSibling
|
||||||
|
prevEle.textContent = text
|
||||||
|
prevEle.style.opacity = 1
|
||||||
|
setTimeout(() => { prevEle.style.opacity = 0 }, 800)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const copy = ctx => {
|
||||||
if (document.queryCommandSupported && document.queryCommandSupported('copy')) {
|
if (document.queryCommandSupported && document.queryCommandSupported('copy')) {
|
||||||
document.execCommand('copy')
|
document.execCommand('copy')
|
||||||
if (GLOBAL_CONFIG.Snackbar !== undefined) {
|
alertInfo(ctx, GLOBAL_CONFIG.copy.success)
|
||||||
btf.snackbarShow(GLOBAL_CONFIG.copy.success)
|
|
||||||
} else {
|
} else {
|
||||||
const prevEle = ctx.previousElementSibling
|
alertInfo(ctx, GLOBAL_CONFIG.copy.noSupport)
|
||||||
prevEle.textContent = GLOBAL_CONFIG.copy.success
|
|
||||||
prevEle.style.opacity = 1
|
|
||||||
setTimeout(() => { prevEle.style.opacity = 0 }, 700)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (GLOBAL_CONFIG.Snackbar !== undefined) {
|
|
||||||
btf.snackbarShow(GLOBAL_CONFIG.copy.noSupport)
|
|
||||||
} else {
|
|
||||||
ctx.previousElementSibling.textContent = GLOBAL_CONFIG.copy.noSupport
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,8 +105,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
range.selectNodeContents($buttonParent.querySelectorAll(`${preCodeSelector}`)[0])
|
range.selectNodeContents($buttonParent.querySelectorAll(`${preCodeSelector}`)[0])
|
||||||
selection.removeAllRanges()
|
selection.removeAllRanges()
|
||||||
selection.addRange(range)
|
selection.addRange(range)
|
||||||
const text = selection.toString()
|
copy(ele.lastChild)
|
||||||
copy(text, ele.lastChild)
|
|
||||||
selection.removeAllRanges()
|
selection.removeAllRanges()
|
||||||
$buttonParent.classList.remove('copy-true')
|
$buttonParent.classList.remove('copy-true')
|
||||||
}
|
}
|
||||||
@@ -783,7 +782,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
const commentContainer = document.getElementById('post-comment')
|
const commentContainer = document.getElementById('post-comment')
|
||||||
const handleSwitchBtn = () => {
|
const handleSwitchBtn = () => {
|
||||||
commentContainer.classList.toggle('move')
|
commentContainer.classList.toggle('move')
|
||||||
if (!switchDone) {
|
if (!switchDone && typeof loadOtherComment === 'function') {
|
||||||
switchDone = true
|
switchDone = true
|
||||||
loadOtherComment()
|
loadOtherComment()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user