From 7c294e0482257516f5031d268a26c87c45fb5546 Mon Sep 17 00:00:00 2001 From: Open-super Date: Mon, 8 Feb 2021 14:12:09 +0800 Subject: [PATCH 01/21] =?UTF-8?q?=E6=96=B0=E5=A2=9EHexoPlusPlus=E7=9A=84?= =?UTF-8?q?=E8=AF=B4=E8=AF=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _config.yml | 16 ++++++++++++++++ layout/includes/head.pug | 4 ++++ layout/includes/page/hpptalk.pug | 12 ++++++++++++ layout/page.pug | 2 ++ package.json | 2 +- 5 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 layout/includes/page/hpptalk.pug diff --git a/_config.yml b/_config.yml index b4761c6..6dd44af 100644 --- a/_config.yml +++ b/_config.yml @@ -795,6 +795,22 @@ artitalk: appKey: option: +# HexoPlusPlus All home +# see https://hexoplusplus.js.org +hexoplusplus: + enable: false + domain: + talk: + hpptalk: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus@1.1.0/talk_user.js # Here should be the limit must be written version number + hpptalk_css: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus@1.1.0/talk.css # Here should be the limit must be written version number + limit: 0 + start: 0 + themecss: # Default config: https://cdn.jsdelivr.net/gh/HexoPlusPlus/CDN@master/theme/hpp_user_talk/Butter_Fly_1.css + option: + + info: + enable: false + # Pjax [Beta] # It may contain bugs and unstable, give feedback when you find the bugs. # https://github.com/MoOx/pjax diff --git a/layout/includes/head.pug b/layout/includes/head.pug index 35b95c3..8010cae 100644 --- a/layout/includes/head.pug +++ b/layout/includes/head.pug @@ -49,6 +49,10 @@ if (theme.pwa && theme.pwa.enable) link(rel='stylesheet', href=url_for(theme.CDN.main_css)) link(rel='stylesheet', href=url_for(theme.CDN.fontawesome) media="print" onload="this.media='all'") +if theme.hexoplusplus.enable + script(src=url_for(theme.hexoplusplus.talk.hpptalk)) + link(rel='stylesheet', href=url_for(theme.hexoplusplus.talk.hpptalk_css)) + if (theme.snackbar && theme.snackbar.enable) link(rel='stylesheet', href=url_for(theme.CDN.snackbar_css) media="print" onload="this.media='all'") diff --git a/layout/includes/page/hpptalk.pug b/layout/includes/page/hpptalk.pug new file mode 100644 index 0000000..12b52ad --- /dev/null +++ b/layout/includes/page/hpptalk.pug @@ -0,0 +1,12 @@ +if top_img === false + h1.page-title= page.title + +#hpp_talk +script. + + new hpp_talk({ + id:"hpp_talk", + domain: "!{theme.hexoplusplus.domain}", + limit: !{theme.hexoplusplus.talk.limit}, + start: !{theme.hexoplusplus.talk.start} + }); \ No newline at end of file diff --git a/layout/page.pug b/layout/page.pug index 7287546..0f2733c 100644 --- a/layout/page.pug +++ b/layout/page.pug @@ -11,6 +11,8 @@ block content include includes/page/categories.pug when 'artitalk' include includes/page/artitalk.pug + when 'hpptalk' + include includes/page/hpptalk.pug default include includes/page/default-page.pug diff --git a/package.json b/package.json index 4421098..dd8f300 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "3.6.2", + "version": "3.6.3", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": { From e85315b256aff63890afd7f878ab9daf60c91e4c Mon Sep 17 00:00:00 2001 From: choosk <77675898+ladjeek-actions@users.noreply.github.com> Date: Mon, 8 Feb 2021 14:13:57 +0800 Subject: [PATCH 02/21] Update _config.yml --- _config.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/_config.yml b/_config.yml index 6dd44af..84ed4e2 100644 --- a/_config.yml +++ b/_config.yml @@ -808,9 +808,6 @@ hexoplusplus: themecss: # Default config: https://cdn.jsdelivr.net/gh/HexoPlusPlus/CDN@master/theme/hpp_user_talk/Butter_Fly_1.css option: - info: - enable: false - # Pjax [Beta] # It may contain bugs and unstable, give feedback when you find the bugs. # https://github.com/MoOx/pjax From 3eb7f23997a31c2eaf1143c6df980fae15ea1a04 Mon Sep 17 00:00:00 2001 From: choosk <77675898+ladjeek-actions@users.noreply.github.com> Date: Mon, 8 Feb 2021 14:20:58 +0800 Subject: [PATCH 03/21] Update hpptalk.pug --- layout/includes/page/hpptalk.pug | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/layout/includes/page/hpptalk.pug b/layout/includes/page/hpptalk.pug index 12b52ad..b4aca5a 100644 --- a/layout/includes/page/hpptalk.pug +++ b/layout/includes/page/hpptalk.pug @@ -3,10 +3,9 @@ if top_img === false #hpp_talk script. - new hpp_talk({ id:"hpp_talk", domain: "!{theme.hexoplusplus.domain}", limit: !{theme.hexoplusplus.talk.limit}, start: !{theme.hexoplusplus.talk.start} - }); \ No newline at end of file + }); From 1683998280904b33796371cb1ad9d3c9bfcc3d2f Mon Sep 17 00:00:00 2001 From: choosk <77675898+ladjeek-actions@users.noreply.github.com> Date: Mon, 8 Feb 2021 14:34:25 +0800 Subject: [PATCH 04/21] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dd8f300..4421098 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "3.6.3", + "version": "3.6.2", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": { From 092e6c5e2589103195c75c9cd3e5ec6ddaaf66d8 Mon Sep 17 00:00:00 2001 From: Open-super Date: Tue, 9 Feb 2021 21:20:55 +0800 Subject: [PATCH 05/21] =?UTF-8?q?=E4=B8=BA=20Butterfly=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20HexoPlusPlus=5FTalk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _config.yml | 9 +++++---- layout/includes/head.pug | 1 - layout/includes/page/hpptalk.pug | 23 ++++++++++++++++++----- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/_config.yml b/_config.yml index 84ed4e2..6d6c3af 100644 --- a/_config.yml +++ b/_config.yml @@ -801,11 +801,12 @@ hexoplusplus: enable: false domain: talk: - hpptalk: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus@1.1.0/talk_user.js # Here should be the limit must be written version number - hpptalk_css: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus@1.1.0/talk.css # Here should be the limit must be written version number + hpptalk: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus@main/src/talk_user.js # Here should be the limit must be written version number + hpptalk_css: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus@main/src/talk.css # Here should be the limit must be written version number limit: 0 start: 0 - themecss: # Default config: https://cdn.jsdelivr.net/gh/HexoPlusPlus/CDN@master/theme/hpp_user_talk/Butter_Fly_1.css + themecss: https://cdn.jsdelivr.net/gh/HexoPlusPlus/CDN@master/plugin/theme/hpp_user_talk/Pofato.css # Default config: https://cdn.jsdelivr.net/gh/HexoPlusPlus/CDN@master/theme/hpp_user_talk/Butter_Fly_1.css / https://cdn.jsdelivr.net/gh/HexoPlusPlus/CDN@master/plugin/theme/hpp_user_talk/Pofato.css + # In order to adapt to the night mode of the Butterfly theme, you can select the CSS in the upper comment or write your own option: # Pjax [Beta] @@ -964,4 +965,4 @@ CDN: prismjs_lineNumber_js: https://cdn.jsdelivr.net/npm/prismjs/plugins/line-numbers/prism-line-numbers.min.js prismjs_autoloader: https://cdn.jsdelivr.net/npm/prismjs/plugins/autoloader/prism-autoloader.min.js - artitalk: https://cdn.jsdelivr.net/npm/artitalk + artitalk: https://cdn.jsdelivr.net/npm/artitalk \ No newline at end of file diff --git a/layout/includes/head.pug b/layout/includes/head.pug index 8010cae..543ad71 100644 --- a/layout/includes/head.pug +++ b/layout/includes/head.pug @@ -50,7 +50,6 @@ link(rel='stylesheet', href=url_for(theme.CDN.main_css)) link(rel='stylesheet', href=url_for(theme.CDN.fontawesome) media="print" onload="this.media='all'") if theme.hexoplusplus.enable - script(src=url_for(theme.hexoplusplus.talk.hpptalk)) link(rel='stylesheet', href=url_for(theme.hexoplusplus.talk.hpptalk_css)) if (theme.snackbar && theme.snackbar.enable) diff --git a/layout/includes/page/hpptalk.pug b/layout/includes/page/hpptalk.pug index b4aca5a..056835a 100644 --- a/layout/includes/page/hpptalk.pug +++ b/layout/includes/page/hpptalk.pug @@ -3,9 +3,22 @@ if top_img === false #hpp_talk script. - new hpp_talk({ - id:"hpp_talk", - domain: "!{theme.hexoplusplus.domain}", + (()=>{ + let setting = { + id: "hpp_talk", + domain: '!{theme.hexoplusplus.domain}', limit: !{theme.hexoplusplus.talk.limit}, - start: !{theme.hexoplusplus.talk.start} - }); + start: !{theme.hexoplusplus.talk.start}, + themecss: '!{theme.hexoplusplus.talk.themecss}', + } + + const init = () => { + new hpp_talk(setting) + } + + if (typeof hpp_talk === 'function') { + init() + } else { + getScript('!{theme.hexoplusplus.talk.hpptalk}').then(init) + } + })() \ No newline at end of file From b063554dd2cd02963f8f2773c62a691a42bda73d Mon Sep 17 00:00:00 2001 From: Jerry Date: Thu, 11 Feb 2021 01:19:07 +0800 Subject: [PATCH 06/21] update update --- _config.yml | 13 +++++-------- layout/includes/head.pug | 3 --- layout/includes/page/hpptalk.pug | 18 ++++++++++++++++-- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/_config.yml b/_config.yml index 6d6c3af..d28c3f0 100644 --- a/_config.yml +++ b/_config.yml @@ -795,18 +795,13 @@ artitalk: appKey: option: -# HexoPlusPlus All home +# HexoPlusPlus Talk # see https://hexoplusplus.js.org hexoplusplus: - enable: false domain: talk: - hpptalk: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus@main/src/talk_user.js # Here should be the limit must be written version number - hpptalk_css: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus@main/src/talk.css # Here should be the limit must be written version number - limit: 0 + limit: 10 start: 0 - themecss: https://cdn.jsdelivr.net/gh/HexoPlusPlus/CDN@master/plugin/theme/hpp_user_talk/Pofato.css # Default config: https://cdn.jsdelivr.net/gh/HexoPlusPlus/CDN@master/theme/hpp_user_talk/Butter_Fly_1.css / https://cdn.jsdelivr.net/gh/HexoPlusPlus/CDN@master/plugin/theme/hpp_user_talk/Pofato.css - # In order to adapt to the night mode of the Butterfly theme, you can select the CSS in the upper comment or write your own option: # Pjax [Beta] @@ -965,4 +960,6 @@ CDN: prismjs_lineNumber_js: https://cdn.jsdelivr.net/npm/prismjs/plugins/line-numbers/prism-line-numbers.min.js prismjs_autoloader: https://cdn.jsdelivr.net/npm/prismjs/plugins/autoloader/prism-autoloader.min.js - artitalk: https://cdn.jsdelivr.net/npm/artitalk \ No newline at end of file + artitalk: https://cdn.jsdelivr.net/npm/artitalk + hpptalk: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus/talk_user.js + hpptalk_css: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus/talk.css diff --git a/layout/includes/head.pug b/layout/includes/head.pug index 543ad71..35b95c3 100644 --- a/layout/includes/head.pug +++ b/layout/includes/head.pug @@ -49,9 +49,6 @@ if (theme.pwa && theme.pwa.enable) link(rel='stylesheet', href=url_for(theme.CDN.main_css)) link(rel='stylesheet', href=url_for(theme.CDN.fontawesome) media="print" onload="this.media='all'") -if theme.hexoplusplus.enable - link(rel='stylesheet', href=url_for(theme.hexoplusplus.talk.hpptalk_css)) - if (theme.snackbar && theme.snackbar.enable) link(rel='stylesheet', href=url_for(theme.CDN.snackbar_css) media="print" onload="this.media='all'") diff --git a/layout/includes/page/hpptalk.pug b/layout/includes/page/hpptalk.pug index 056835a..5969f73 100644 --- a/layout/includes/page/hpptalk.pug +++ b/layout/includes/page/hpptalk.pug @@ -1,3 +1,5 @@ +- let hpptalkOption = theme.hexoplusplus.talk.option ? JSON.stringify(theme.hexoplusplus.talk.option) : false + if top_img === false h1.page-title= page.title @@ -9,16 +11,28 @@ script. domain: '!{theme.hexoplusplus.domain}', limit: !{theme.hexoplusplus.talk.limit}, start: !{theme.hexoplusplus.talk.start}, - themecss: '!{theme.hexoplusplus.talk.themecss}', + } + + if (!{Boolean(hpptalkOption)}) { + const otherSetting = !{hpptalkOption} + setting = Object.assign(setting, otherSetting) } const init = () => { new hpp_talk(setting) } + const addCss = () => { + const link = document.createElement('link') + link.rel = 'stylesheet' + link.href = '!{url_for(theme.CDN.hpptalk_css)}' + document.head.appendChild(link) + } + if (typeof hpp_talk === 'function') { init() } else { - getScript('!{theme.hexoplusplus.talk.hpptalk}').then(init) + addCss() + getScript('!{url_for(theme.CDN.hpptalk)}').then(init) } })() \ No newline at end of file From b199022d9bf62cfc1ea556554746f64d1f34db5e Mon Sep 17 00:00:00 2001 From: Jerry Date: Thu, 11 Feb 2021 01:30:20 +0800 Subject: [PATCH 07/21] label: 3.7.0-b1 --- README.md | 6 ++++++ README_CN.md | 6 ++++++ _config.yml | 4 ++-- package.json | 2 +- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b1d6def..f9d97b5 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ +
+ Language: + 🇺🇸 + 🇨🇳 +
+ # hexo-theme-butterfly ![master version](https://img.shields.io/github/package-json/v/jerryc127/hexo-theme-butterfly/master?color=%231ab1ad&label=master) diff --git a/README_CN.md b/README_CN.md index 4ed5d2e..659d1ba 100644 --- a/README_CN.md +++ b/README_CN.md @@ -1,3 +1,9 @@ +
+ 語言: + 中文 + 英文 +
+ # hexo-theme-butterfly ![master version](https://img.shields.io/github/package-json/v/jerryc127/hexo-theme-butterfly/master?color=%231ab1ad&label=master) diff --git a/_config.yml b/_config.yml index b4761c6..75bc97d 100644 --- a/_config.yml +++ b/_config.yml @@ -899,8 +899,8 @@ CDN: # math mathjax: https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js katex: https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.css - katex_copytex: https://cdn.jsdelivr.net/npm/katex-copytex@latest/dist/katex-copytex.min.js - katex_copytex_css: https://cdn.jsdelivr.net/npm/katex-copytex@latest/dist/katex-copytex.min.css + katex_copytex: https://cdn.jsdelivr.net/npm/katex@latest/dist/contrib/copy-tex.min.js + katex_copytex_css: https://cdn.jsdelivr.net/npm/katex@latest/dist/contrib/copy-tex.css mermaid: https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js # count diff --git a/package.json b/package.json index 4421098..029de26 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "3.6.2", + "version": "3.7.0-b1", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": { From 0314a980d9e1e924d947ef21559188e7e366d29a Mon Sep 17 00:00:00 2001 From: ChenYFan <53730587+ChenYFan@users.noreply.github.com> Date: Thu, 11 Feb 2021 08:41:46 +0800 Subject: [PATCH 08/21] Update _config.yml --- _config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index e8fbb3a..9fcc6c8 100644 --- a/_config.yml +++ b/_config.yml @@ -961,5 +961,5 @@ CDN: prismjs_autoloader: https://cdn.jsdelivr.net/npm/prismjs/plugins/autoloader/prism-autoloader.min.js artitalk: https://cdn.jsdelivr.net/npm/artitalk - hpptalk: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus/talk_user.js - hpptalk_css: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus/talk.css + hpptalk: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus@latest/talk_user.js + hpptalk_css: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus@latest/talk.css From 0cea722da8db74ed76643cb1474cda4b5ea83a98 Mon Sep 17 00:00:00 2001 From: Jerry Date: Sat, 13 Feb 2021 00:24:55 +0800 Subject: [PATCH 09/21] =?UTF-8?q?remove:=20=E7=A7=BB=E9=99=A4=20artitalk?= =?UTF-8?q?=20=EF=BC=88=E5=A6=82=E9=9C=80=E8=A6=81=EF=BC=8C=E8=AB=8B?= =?UTF-8?q?=E5=AE=89=E8=A3=9D=20hexo-butterfly-artitalk)=20remove:=20?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=20HexoPlusPlus=5FTalk=EF=BC=88=E5=A6=82?= =?UTF-8?q?=E9=9C=80=E8=A6=81=EF=BC=8C=E8=AB=8B=E5=AE=89=E8=A3=9D=20hexo-b?= =?UTF-8?q?utterfly-hpptalk)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _config.yml | 24 ++----------------- layout/includes/page/artitalk.pug | 28 ----------------------- layout/includes/page/hpptalk.pug | 38 ------------------------------- layout/page.pug | 4 ---- package.json | 2 +- 5 files changed, 3 insertions(+), 93 deletions(-) delete mode 100644 layout/includes/page/artitalk.pug delete mode 100644 layout/includes/page/hpptalk.pug diff --git a/_config.yml b/_config.yml index 9fcc6c8..771dd2f 100644 --- a/_config.yml +++ b/_config.yml @@ -788,23 +788,7 @@ note: # other # -------------------------------------- -# Artitalk -# see https://artitalk.js.org/ -artitalk: - appId: - appKey: - option: - -# HexoPlusPlus Talk -# see https://hexoplusplus.js.org -hexoplusplus: - domain: - talk: - limit: 10 - start: 0 - option: - -# Pjax [Beta] +# Pjax # It may contain bugs and unstable, give feedback when you find the bugs. # https://github.com/MoOx/pjax pjax: @@ -958,8 +942,4 @@ CDN: # Prism.js prismjs_js: https://cdn.jsdelivr.net/npm/prismjs/prism.min.js prismjs_lineNumber_js: https://cdn.jsdelivr.net/npm/prismjs/plugins/line-numbers/prism-line-numbers.min.js - prismjs_autoloader: https://cdn.jsdelivr.net/npm/prismjs/plugins/autoloader/prism-autoloader.min.js - - artitalk: https://cdn.jsdelivr.net/npm/artitalk - hpptalk: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus@latest/talk_user.js - hpptalk_css: https://cdn.jsdelivr.net/gh/HexoPlusPlus/HexoPlusPlus@latest/talk.css + prismjs_autoloader: https://cdn.jsdelivr.net/npm/prismjs/plugins/autoloader/prism-autoloader.min.js \ No newline at end of file diff --git a/layout/includes/page/artitalk.pug b/layout/includes/page/artitalk.pug deleted file mode 100644 index c2d1dde..0000000 --- a/layout/includes/page/artitalk.pug +++ /dev/null @@ -1,28 +0,0 @@ -- let option = theme.artitalk.option ? JSON.stringify(theme.artitalk.option) : false - -if top_img === false - h1.page-title= page.title - -#artitalk_main -script. - (()=>{ - let setting = { - appId: '!{theme.artitalk.appId}', - appKey: '!{theme.artitalk.appKey}', - } - - if (!{Boolean(option)}) { - const otherSetting = !{option} - setting = Object.assign(setting, otherSetting) - } - - const init = () => { - new Artitalk(setting) - } - - if (typeof Artitalk === 'function') { - init() - } else { - getScript('!{theme.CDN.artitalk}').then(init) - } - })() \ No newline at end of file diff --git a/layout/includes/page/hpptalk.pug b/layout/includes/page/hpptalk.pug deleted file mode 100644 index 5969f73..0000000 --- a/layout/includes/page/hpptalk.pug +++ /dev/null @@ -1,38 +0,0 @@ -- let hpptalkOption = theme.hexoplusplus.talk.option ? JSON.stringify(theme.hexoplusplus.talk.option) : false - -if top_img === false - h1.page-title= page.title - -#hpp_talk -script. - (()=>{ - let setting = { - id: "hpp_talk", - domain: '!{theme.hexoplusplus.domain}', - limit: !{theme.hexoplusplus.talk.limit}, - start: !{theme.hexoplusplus.talk.start}, - } - - if (!{Boolean(hpptalkOption)}) { - const otherSetting = !{hpptalkOption} - setting = Object.assign(setting, otherSetting) - } - - const init = () => { - new hpp_talk(setting) - } - - const addCss = () => { - const link = document.createElement('link') - link.rel = 'stylesheet' - link.href = '!{url_for(theme.CDN.hpptalk_css)}' - document.head.appendChild(link) - } - - if (typeof hpp_talk === 'function') { - init() - } else { - addCss() - getScript('!{url_for(theme.CDN.hpptalk)}').then(init) - } - })() \ No newline at end of file diff --git a/layout/page.pug b/layout/page.pug index 0f2733c..2fb8b7e 100644 --- a/layout/page.pug +++ b/layout/page.pug @@ -9,10 +9,6 @@ block content include includes/page/flink.pug when 'categories' include includes/page/categories.pug - when 'artitalk' - include includes/page/artitalk.pug - when 'hpptalk' - include includes/page/hpptalk.pug default include includes/page/default-page.pug diff --git a/package.json b/package.json index 029de26..0b419cf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "3.7.0-b1", + "version": "3.7.0-b2", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": { From b176ff0fa70a17eb21060335463085bdc5f0d0d7 Mon Sep 17 00:00:00 2001 From: Jerry Date: Fri, 19 Feb 2021 22:14:34 +0800 Subject: [PATCH 10/21] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0waline,valine?= =?UTF-8?q?=20=E5=92=8Ctwikoo=20=E6=8F=90=E4=BE=9B=E7=9A=84=E6=96=87?= =?UTF-8?q?=E7=AB=A0=E9=96=B2=E8=AE=80=E6=95=B8=E9=85=8D=E7=BD=AE=20close?= =?UTF-8?q?=20#502=20improvement:=20=E7=95=B6=E6=96=87=E7=AB=A0=E9=A0=81co?= =?UTF-8?q?ver=20=E5=92=8Ccover=20=E7=9A=84=20default=5Fimg=E9=83=BD?= =?UTF-8?q?=E6=B2=92=E6=9C=89=E9=85=8D=E7=BD=AE=E6=99=82=EF=BC=8C=E6=9C=83?= =?UTF-8?q?=E5=8E=BB=E8=AE=80=E5=8F=96default=5Ftop=5Fimg=E7=9A=84?= =?UTF-8?q?=E5=8F=83=E6=95=B8=20improvement:=20=E5=9C=A8=E5=AE=8C=E5=85=A8?= =?UTF-8?q?=E6=B2=92=E6=9C=89=E9=85=8D=E7=BD=AE=E7=9A=84=E6=83=85=E6=B3=81?= =?UTF-8?q?=E4=B8=8B=EF=BC=8C=E9=81=8B=E8=A1=8C=E6=99=82=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E8=87=BA=E5=A0=B1null=20=E7=9A=84=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _config.yml | 3 +++ layout/includes/head/Open_Graph.pug | 2 +- layout/includes/header/index.pug | 2 +- layout/includes/header/post-info.pug | 24 +++++++++++++++---- layout/includes/sidebar.pug | 11 +++++---- .../includes/third-party/comments/valine.pug | 1 + .../includes/third-party/comments/waline.pug | 1 + layout/includes/widget/card_author.pug | 9 +++---- layout/includes/widget/card_tags.pug | 2 +- package.json | 2 +- scripts/filters/random_cover.js | 2 +- source/css/_layout/aside.styl | 2 +- 12 files changed, 41 insertions(+), 20 deletions(-) diff --git a/_config.yml b/_config.yml index 771dd2f..5a9ead4 100644 --- a/_config.yml +++ b/_config.yml @@ -321,6 +321,7 @@ valine: emojiCDN: # emoji CDN enableQQ: false # enable the Nickname box to automatically get QQ Nickname and QQ Avatar requiredFields: nick,mail # required fields (nick/mail) + visitor: false option: # waline - A simple comment system with backend support fork from Valine @@ -330,6 +331,7 @@ waline: avatar: monsterid # gravatar style https://zh-tw.gravatar.com/site/implement/images/#default-image emojiCDN: # emoji CDN bg: # waline background + visitor: false option: # utterances @@ -356,6 +358,7 @@ facebook_comments: twikoo: envId: region: + visitor: false option: # Chat Services diff --git a/layout/includes/head/Open_Graph.pug b/layout/includes/head/Open_Graph.pug index 7d5c59c..1702985 100644 --- a/layout/includes/head/Open_Graph.pug +++ b/layout/includes/head/Open_Graph.pug @@ -1,6 +1,6 @@ if theme.Open_Graph_meta - let contentType = is_post() ? 'article' : 'website' - - let metaImage = full_url_for(page.cover || theme.avatar.img) + - let metaImage = (page.cover || theme.avatar.img) ? full_url_for(page.cover || theme.avatar.img) : '' - let fb_appId = theme.facebook_comments.app_id || '' - let fb_admins = theme.facebook_comments.user_id || '' diff --git a/layout/includes/header/index.pug b/layout/includes/header/index.pug index ed02549..2476015 100644 --- a/layout/includes/header/index.pug +++ b/layout/includes/header/index.pug @@ -1,6 +1,6 @@ if !theme.disable_top_img && page.top_img !== false if is_post() - - var top_img = page.top_img || page.cover || page.randomcover || theme.default_top_img + - var top_img = page.top_img || page.cover || page.randomcover else if is_page() - var top_img = page.top_img || theme.default_top_img else if is_tag() diff --git a/layout/includes/header/post-info.pug b/layout/includes/header/post-info.pug index 7e2d4c1..0b11b61 100644 --- a/layout/includes/header/post-info.pug +++ b/layout/includes/header/post-info.pug @@ -1,3 +1,4 @@ +- let comments = theme.comments #post-info h1.post-title= page.title || _p('no_title') if theme.post_edit.enable @@ -51,15 +52,28 @@ span.post-meta-label= _p('post.min2read') + ':' span= min2read(page.content, {cn: 350, en: 160}) + _p('post.min2read_unit') - if theme.busuanzi.page_pv + //- for pv and count + mixin pvBlock(parent_id,parent_class) span.post-meta-separator | - span.post-meta-pv-cv + span(class=parent_class id=parent_id) i.far.fa-eye.fa-fw.post-meta-icon span.post-meta-label=_p('post.page_pv') + ':' - span#busuanzi_value_page_pv + if block + block - if !theme.comments.lazyload && page.comments !== false && theme.comments.use && theme.comments.count - - var whichCount = theme.comments.use[0] + if theme.busuanzi.page_pv + +pvBlock('','post-meta-pv-cv') + span#busuanzi_value_page_pv + else if comments.use && !comments.lazyload + if (comments.use.includes('Valine') && theme.valine.visitor) || (comments.use.includes('Waline') && theme.waline.visitor) + +pvBlock(url_for(page.path),'leancloud_visitors') + span.leancloud-visitors-count + else if (comments.use.includes('Twikoo') && theme.twikoo.visitor) + +pvBlock('','') + span#twikoo_visitors + + if comments.count && !comments.lazyload && page.comments !== false && comments.use + - var whichCount = comments.use[0] mixin countBlock span.post-meta-separator | diff --git a/layout/includes/sidebar.pug b/layout/includes/sidebar.pug index 43c0b2c..1bce458 100644 --- a/layout/includes/sidebar.pug +++ b/layout/includes/sidebar.pug @@ -1,11 +1,12 @@ #sidebar #menu-mask #sidebar-menus - .author-avatar - if theme.lazyload.enable - img.avatar-img(data-lazy-src=url_for(theme.avatar.img) onerror=`onerror=null;src='${theme.error_img.flink}'` alt="avatar") - else - img.avatar-img(src=url_for(theme.avatar.img) onerror=`onerror=null;src='${theme.error_img.flink}'` alt="avatar") + if theme.avatar.img + .author-avatar + if theme.lazyload.enable + img.avatar-img(data-lazy-src=url_for(theme.avatar.img) onerror=`onerror=null;src='${theme.error_img.flink}'` alt="avatar") + else + img.avatar-img(src=url_for(theme.avatar.img) onerror=`onerror=null;src='${theme.error_img.flink}'` alt="avatar") .site-data if site.posts.length .data-item.is-center diff --git a/layout/includes/third-party/comments/valine.pug b/layout/includes/third-party/comments/valine.pug index e67f92b..249a4e3 100644 --- a/layout/includes/third-party/comments/valine.pug +++ b/layout/includes/third-party/comments/valine.pug @@ -21,6 +21,7 @@ script. emojiMaps: !{emojiMaps}, enableQQ: #{theme.valine.enableQQ}, path: window.location.pathname, + visitor: #{theme.valine.visitor} } if (!{Boolean(theme.valine.requiredFields)}) { diff --git a/layout/includes/third-party/comments/waline.pug b/layout/includes/third-party/comments/waline.pug index 027a312..b1d3eb1 100644 --- a/layout/includes/third-party/comments/waline.pug +++ b/layout/includes/third-party/comments/waline.pug @@ -13,6 +13,7 @@ script. path: location.pathname, emojiCDN: '#{theme.waline.emojiCDN}', emojiMaps: !{emojiMaps}, + visitor: #{theme.waline.visitor} } if (!{Boolean(option)}) { diff --git a/layout/includes/widget/card_author.pug b/layout/includes/widget/card_author.pug index 933b7ce..1bbc47d 100644 --- a/layout/includes/widget/card_author.pug +++ b/layout/includes/widget/card_author.pug @@ -1,10 +1,11 @@ if theme.aside.card_author.enable .card-widget.card-info .card-info-avatar.is-center - if theme.lazyload.enable - img.avatar-img(data-lazy-src=url_for(theme.avatar.img) onerror=`this.onerror=null;this.src='` + url_for(theme.error_img.flink) + `'` alt="avatar") - else - img.avatar-img(src=url_for(theme.avatar.img) onerror=`this.onerror=null;this.src='` + url_for(theme.error_img.flink) + `'` alt="avatar") + if theme.avatar.img + if theme.lazyload.enable + img.avatar-img(data-lazy-src=url_for(theme.avatar.img) onerror=`this.onerror=null;this.src='` + url_for(theme.error_img.flink) + `'` alt="avatar") + else + img.avatar-img(src=url_for(theme.avatar.img) onerror=`this.onerror=null;this.src='` + url_for(theme.error_img.flink) + `'` alt="avatar") .author-info__name= config.author .author-info__description!= theme.aside.card_author.description || config.description diff --git a/layout/includes/widget/card_tags.pug b/layout/includes/widget/card_tags.pug index 2293d82..de40e90 100644 --- a/layout/includes/widget/card_tags.pug +++ b/layout/includes/widget/card_tags.pug @@ -7,6 +7,6 @@ if theme.aside.card_tags.enable - let tagLimit = theme.aside.card_tags.limit === 0 ? 0 : theme.aside.card_tags.limit || 40 if theme.aside.card_tags.color - .card-tag-cloud!= cloudTags({source: site.tags, minfontsize: 1.1, maxfontsize: 1.5, limit: tagLimit, unit: 'em'}) + .card-tag-cloud!= cloudTags({source: site.tags, minfontsize: 1.15, maxfontsize: 1.45, limit: tagLimit, unit: 'em'}) else .card-tag-cloud!= tagcloud({min_font: 1.1, max_font: 1.5, amount: tagLimit , color: true, start_color: '#999', end_color: '#99a9bf', unit: 'em'}) diff --git a/package.json b/package.json index 0b419cf..f18ac78 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "3.7.0-b2", + "version": "3.7.0-b3", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": { diff --git a/scripts/filters/random_cover.js b/scripts/filters/random_cover.js index 8455d60..827059f 100644 --- a/scripts/filters/random_cover.js +++ b/scripts/filters/random_cover.js @@ -39,7 +39,7 @@ function randomCover () { return cover } } else { - cover = 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/img/default.jpg' + cover = theme.default_top_img || 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/img/default.jpg' return cover } } diff --git a/source/css/_layout/aside.styl b/source/css/_layout/aside.styl index cee1701..6198f62 100644 --- a/source/css/_layout/aside.styl +++ b/source/css/_layout/aside.styl @@ -115,7 +115,7 @@ .card-tag-cloud a display: inline-block - padding: 0 .1rem + padding: 0 .2rem &:hover color: $text-hover !important From 41e1931a3a28e5404f0e3dce400c67ab4af4bb20 Mon Sep 17 00:00:00 2001 From: Jerry Date: Sat, 20 Feb 2021 23:10:28 +0800 Subject: [PATCH 11/21] =?UTF-8?q?feat:=20gitalk=20=E5=A2=9E=E5=8A=A0=20opt?= =?UTF-8?q?ion=20=E9=85=8D=E7=BD=AE=20improvement:=20pug=E4=BB=A3=E7=A2=BC?= =?UTF-8?q?=E5=84=AA=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layout/includes/third-party/comments/gitalk.pug | 5 +++-- layout/includes/third-party/comments/twikoo.pug | 13 ++----------- layout/includes/third-party/comments/valine.pug | 17 +++-------------- layout/includes/third-party/comments/waline.pug | 12 ++---------- package.json | 2 +- 5 files changed, 11 insertions(+), 38 deletions(-) diff --git a/layout/includes/third-party/comments/gitalk.pug b/layout/includes/third-party/comments/gitalk.pug index dcd6eb6..8e78386 100644 --- a/layout/includes/third-party/comments/gitalk.pug +++ b/layout/includes/third-party/comments/gitalk.pug @@ -8,7 +8,7 @@ script. function loadGitalk () { function initGitalk () { - var gitalk = new Gitalk({ + var gitalk = new Gitalk(Object.assign({ clientID: '!{theme.gitalk.client_id}', clientSecret: '!{theme.gitalk.client_secret}', repo: '!{theme.gitalk.repo}', @@ -21,7 +21,8 @@ script. pagerDirection: '!{theme.gitalk.pagerDirection}', createIssueManually: !{theme.gitalk.createIssueManually}, updateCountCallback: commentCount - }) + },!{JSON.stringify(theme.gitalk.option)})) + gitalk.render('gitalk-container') } diff --git a/layout/includes/third-party/comments/twikoo.pug b/layout/includes/third-party/comments/twikoo.pug index d47a5d5..8fcf32f 100644 --- a/layout/includes/third-party/comments/twikoo.pug +++ b/layout/includes/third-party/comments/twikoo.pug @@ -1,21 +1,12 @@ -- let option = theme.twikoo.option ? JSON.stringify(theme.twikoo.option) : false - script. (()=>{ const $countDom = document.getElementById('twikoo-count') const init = () => { - let initData = { + twikoo.init(Object.assign({ el: '#twikoo-wrap', envId: '!{theme.twikoo.envId}', region: '!{theme.twikoo.region}' - } - - if (!{Boolean(option)}) { - const otherData = !{option} - initData = Object.assign(initData, otherData) - } - - twikoo.init(initData) + }, !{JSON.stringify(theme.twikoo.option)})) } const getCount = () => { diff --git a/layout/includes/third-party/comments/valine.pug b/layout/includes/third-party/comments/valine.pug index 249a4e3..d5121bc 100644 --- a/layout/includes/third-party/comments/valine.pug +++ b/layout/includes/third-party/comments/valine.pug @@ -1,4 +1,3 @@ -- let option = theme.valine.option ? JSON.stringify(theme.valine.option) : false - let emojiMaps = '""' if site.data.valine - emojiMaps = JSON.stringify(site.data.valine) @@ -6,7 +5,7 @@ if site.data.valine script. function loadValine () { function initValine () { - let initData = { + const valine = new Valine(Object.assign({ el: '#vcomment', appId: '#{theme.valine.appId}', appKey: '#{theme.valine.appKey}', @@ -21,19 +20,9 @@ script. emojiMaps: !{emojiMaps}, enableQQ: #{theme.valine.enableQQ}, path: window.location.pathname, + requiredFields: [!{theme.valine.requiredFields ? JSON.stringify(theme.valine.requiredFields).split(',') : ''}], visitor: #{theme.valine.visitor} - } - - if (!{Boolean(theme.valine.requiredFields)}) { - initData.requiredFields= ('!{theme.valine.requiredFields}'.split(',')) - } - - if (!{Boolean(option)}) { - const otherData = !{option} - initData = Object.assign(initData, otherData) - } - - const valine = new Valine(initData) + }, !{JSON.stringify(theme.valine.option)})) } if (typeof Valine === 'function') initValine() diff --git a/layout/includes/third-party/comments/waline.pug b/layout/includes/third-party/comments/waline.pug index b1d3eb1..9588049 100644 --- a/layout/includes/third-party/comments/waline.pug +++ b/layout/includes/third-party/comments/waline.pug @@ -1,4 +1,3 @@ -- let option = theme.waline.option ? JSON.stringify(theme.waline.option) : false - let emojiMaps = '""' if site.data.waline - emojiMaps = JSON.stringify(site.data.waline) @@ -6,7 +5,7 @@ if site.data.waline script. function loadWaline () { function initWaline () { - let initData = { + const waline = new Waline(Object.assign({ el: '#waline-wrap', serverURL: '!{theme.waline.serverURL}', avatar: '#{theme.waline.avatar}', @@ -14,14 +13,7 @@ script. emojiCDN: '#{theme.waline.emojiCDN}', emojiMaps: !{emojiMaps}, visitor: #{theme.waline.visitor} - } - - if (!{Boolean(option)}) { - const otherData = !{option} - initData = Object.assign(initData, otherData) - } - - const waline = new Waline(initData) + }, !{JSON.stringify(theme.waline.option)})) } if (typeof Waline === 'function') initWaline() diff --git a/package.json b/package.json index f18ac78..31bad5e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "3.7.0-b3", + "version": "3.7.0-b4", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": { From b77a445180953b41a169d8c633b7fcbde8cc5fef Mon Sep 17 00:00:00 2001 From: Jerry Date: Sat, 20 Feb 2021 23:15:34 +0800 Subject: [PATCH 12/21] feat: add gitalk option in config file --- _config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_config.yml b/_config.yml index 5a9ead4..b66b992 100644 --- a/_config.yml +++ b/_config.yml @@ -304,6 +304,7 @@ gitalk: distractionFreeMode: false # Facebook-like distraction free mode. pagerDirection: last # Comment sorting direction, available values are last and first. createIssueManually: false # Gitalk will create a corresponding github issue for your every single page automatically + option: # valine # https://valine.js.org From c25553c192ba3c012d101c34f146b98972834150 Mon Sep 17 00:00:00 2001 From: weilining <18277278902@163.com> Date: Sun, 21 Feb 2021 01:28:34 +0800 Subject: [PATCH 13/21] Improvement valine visitor --- layout/includes/header/post-info.pug | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/layout/includes/header/post-info.pug b/layout/includes/header/post-info.pug index 0b11b61..1edae72 100644 --- a/layout/includes/header/post-info.pug +++ b/layout/includes/header/post-info.pug @@ -53,23 +53,23 @@ span= min2read(page.content, {cn: 350, en: 160}) + _p('post.min2read_unit') //- for pv and count - mixin pvBlock(parent_id,parent_class) + mixin pvBlock(parent_id,parent_class,parent_title) span.post-meta-separator | - span(class=parent_class id=parent_id) + span(class=parent_class id=parent_id data-flag-title=page.title) i.far.fa-eye.fa-fw.post-meta-icon span.post-meta-label=_p('post.page_pv') + ':' if block block if theme.busuanzi.page_pv - +pvBlock('','post-meta-pv-cv') + +pvBlock('','post-meta-pv-cv','') span#busuanzi_value_page_pv else if comments.use && !comments.lazyload if (comments.use.includes('Valine') && theme.valine.visitor) || (comments.use.includes('Waline') && theme.waline.visitor) - +pvBlock(url_for(page.path),'leancloud_visitors') + +pvBlock(url_for(page.path),'leancloud_visitors',page.title) span.leancloud-visitors-count else if (comments.use.includes('Twikoo') && theme.twikoo.visitor) - +pvBlock('','') + +pvBlock('','','') span#twikoo_visitors if comments.count && !comments.lazyload && page.comments !== false && comments.use From 245bdfc46f176259c999a527a666ad5c9c91a743 Mon Sep 17 00:00:00 2001 From: GZTime Date: Mon, 22 Feb 2021 21:08:44 +0800 Subject: [PATCH 14/21] add the layout of kbd tag --- source/css/_layout/post.styl | 14 ++++++++++++++ source/css/_mode/darkmode.styl | 7 ++++++- source/css/_mode/readmode.styl | 6 ++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/source/css/_layout/post.styl b/source/css/_layout/post.styl index bce034a..d5a35ca 100644 --- a/source/css/_layout/post.styl +++ b/source/css/_layout/post.styl @@ -161,6 +161,20 @@ no-beautify() iframe margin: 0 0 1rem + kbd + margin: 0 3px + padding: 3px 5px + border-radius: 3px + border: 1px solid #b4b4b4 + box-shadow: 0 1px 3px rgba(0,0,0,.25), 0 2px 1px 0 rgba(255,255,255,.6) inset + font-family: Monaco, 'Ubuntu Mono', monospace + font-size: 0.9em + font-weight: 600 + background-color: #f8f8f8 + color: #34495e + line-height: 1em + white-space: nowrap + if hexo-config('beautify.enable') && hexo-config('beautify.field') == 'site' beautify() else if hexo-config('beautify.enable') && hexo-config('beautify.field') == 'post' diff --git a/source/css/_mode/darkmode.styl b/source/css/_mode/darkmode.styl index ad4b4de..02e3a82 100644 --- a/source/css/_mode/darkmode.styl +++ b/source/css/_mode/darkmode.styl @@ -51,6 +51,11 @@ if hexo-config('darkmode.enable') || hexo-config('display_mode') == 'dark' .aplayer filter: brightness(.8) + kbd + border-color: #696969 + background-color: #525252 + color: #e2f1ff + // 頭部 #page-header &.nav-fixed > #nav, @@ -154,4 +159,4 @@ if hexo-config('darkmode.enable') || hexo-config('display_mode') == 'dark' background: #121212 #operare_artitalk .c2 - background: #121212 \ No newline at end of file + background: #121212 diff --git a/source/css/_mode/readmode.styl b/source/css/_mode/readmode.styl index dbe2308..552aa7e 100644 --- a/source/css/_mode/readmode.styl +++ b/source/css/_mode/readmode.styl @@ -163,6 +163,12 @@ if hexo-config('readmode') border-left: .2rem solid var(--gray) background-color: var(--readmode-light-color) + kbd + border: 1px solid var(--gray) + color: var(--font-color) + box-shadow: none + background-color: transparent + .hide-toggle border: 1px solid var(--gray) !important From 5ec82ca8016283495561fb2383d49cf136783db3 Mon Sep 17 00:00:00 2001 From: Jerry Date: Wed, 24 Feb 2021 20:42:26 +0800 Subject: [PATCH 15/21] =?UTF-8?q?Breaking=20Change:=20=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E5=AD=90=E7=9B=AE=E9=8C=84=E7=9A=84=E5=AF=AB=E6=B3=95=EF=BC=8C?= =?UTF-8?q?=E8=88=87=E7=88=B6=E7=9B=AE=E9=8C=84=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _config.yml | 2 +- layout/includes/header/menu_item.pug | 12 ++++++------ layout/includes/header/nav.pug | 2 +- layout/includes/sidebar.pug | 13 ++++++------- layout/includes/widget/card_author.pug | 9 ++++----- package.json | 2 +- 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/_config.yml b/_config.yml index b66b992..d0c3427 100644 --- a/_config.yml +++ b/_config.yml @@ -83,7 +83,7 @@ favicon: /img/favicon.png # Avatar (頭像) avatar: - img: + img: https://i.loli.net/2021/02/24/5O1day2nriDzjSu.png effect: false # Disable all banner image diff --git a/layout/includes/header/menu_item.pug b/layout/includes/header/menu_item.pug index 7feff6b..a10071c 100644 --- a/layout/includes/header/menu_item.pug +++ b/layout/includes/header/menu_item.pug @@ -4,7 +4,7 @@ if theme.menu .menus_items each value, label in theme.menu - if !Array.isArray(value) + if typeof value !== 'object' .menus_item a.site-page(href=url_for(trim(value.split('||')[0]))) if value.split('||')[1] @@ -18,9 +18,9 @@ if theme.menu span=' '+ trim(label.split('||')[0]) i.fas.fa-chevron-down.expand(class=sidebarChildHide) ul.menus_item_child - each i in value + each val,lab in value li - a.site-page(href=url_for(trim(i.split('||')[1]))) - if i.split('||')[2] - i.fa-fw(class=trim(i.split('||')[2])) - span=' '+trim(i.split('||')[0]) \ No newline at end of file + a.site-page(href=url_for(trim(val.split('||')[0]))) + if val.split('||')[1] + i.fa-fw(class=trim(val.split('||')[1])) + span=' '+ lab \ No newline at end of file diff --git a/layout/includes/header/nav.pug b/layout/includes/header/nav.pug index e5660e1..2b4d3da 100644 --- a/layout/includes/header/nav.pug +++ b/layout/includes/header/nav.pug @@ -8,7 +8,7 @@ nav#nav a.site-page.social-icon.search i.fas.fa-search.fa-fw span=' '+_p('search') - !=fragment_cache('menus', function(){return partial('includes/header/menu_item')}) + !=partial('includes/header/menu_item', {}, {cache: true}) #toggle-menu a.site-page diff --git a/layout/includes/sidebar.pug b/layout/includes/sidebar.pug index 1bce458..639dd79 100644 --- a/layout/includes/sidebar.pug +++ b/layout/includes/sidebar.pug @@ -1,12 +1,11 @@ #sidebar #menu-mask #sidebar-menus - if theme.avatar.img - .author-avatar - if theme.lazyload.enable - img.avatar-img(data-lazy-src=url_for(theme.avatar.img) onerror=`onerror=null;src='${theme.error_img.flink}'` alt="avatar") - else - img.avatar-img(src=url_for(theme.avatar.img) onerror=`onerror=null;src='${theme.error_img.flink}'` alt="avatar") + .author-avatar + if theme.lazyload.enable + img.avatar-img(data-lazy-src=url_for(theme.avatar.img) onerror=`onerror=null;src='${theme.error_img.flink}'` alt="avatar") + else + img.avatar-img(src=url_for(theme.avatar.img) onerror=`onerror=null;src='${theme.error_img.flink}'` alt="avatar") .site-data if site.posts.length .data-item.is-center @@ -29,4 +28,4 @@ .headline= _p('aside.categories') .length-num= site.categories.length hr - !=fragment_cache('menus', function(){return partial('includes/header/menu_item')}) + !=partial('includes/header/menu_item', {}, {cache: true}) diff --git a/layout/includes/widget/card_author.pug b/layout/includes/widget/card_author.pug index 1bbc47d..b694bd8 100644 --- a/layout/includes/widget/card_author.pug +++ b/layout/includes/widget/card_author.pug @@ -1,11 +1,10 @@ if theme.aside.card_author.enable .card-widget.card-info .card-info-avatar.is-center - if theme.avatar.img - if theme.lazyload.enable - img.avatar-img(data-lazy-src=url_for(theme.avatar.img) onerror=`this.onerror=null;this.src='` + url_for(theme.error_img.flink) + `'` alt="avatar") - else - img.avatar-img(src=url_for(theme.avatar.img) onerror=`this.onerror=null;this.src='` + url_for(theme.error_img.flink) + `'` alt="avatar") + if theme.lazyload.enable + img.avatar-img(data-lazy-src=url_for(theme.avatar.img) onerror=`this.onerror=null;this.src='` + url_for(theme.error_img.flink) + `'` alt="avatar") + else + img.avatar-img(src=url_for(theme.avatar.img) onerror=`this.onerror=null;this.src='` + url_for(theme.error_img.flink) + `'` alt="avatar") .author-info__name= config.author .author-info__description!= theme.aside.card_author.description || config.description diff --git a/package.json b/package.json index 31bad5e..a61d621 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "3.7.0-b4", + "version": "3.7.0-b5", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": { From 6cba95298a69f7af09e1d254544c0b5028c044d3 Mon Sep 17 00:00:00 2001 From: Jerry Date: Wed, 24 Feb 2021 20:45:13 +0800 Subject: [PATCH 16/21] =?UTF-8?q?improvement:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E9=85=8D=E7=BD=AE=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index d0c3427..f9f78f2 100644 --- a/_config.yml +++ b/_config.yml @@ -12,8 +12,8 @@ menu: # Tags: /tags/ || fas fa-tags # Categories: /categories/ || fas fa-folder-open # List||fas fa-list: - # - Music || /music/ || fas fa-music - # - Movie || /movies/ || fas fa-video + # Music: /music/ || fas fa-music + # Movie: /movies/ || fas fa-video # Link: /link/ || fas fa-link # About: /about/ || fas fa-heart From 2f3094cc0a47140a87373984d8a0479b5f1646aa Mon Sep 17 00:00:00 2001 From: Jerry Date: Thu, 4 Mar 2021 16:22:04 +0800 Subject: [PATCH 17/21] =?UTF-8?q?fix:=20=E7=99=BE=E5=BA=A6=E7=B5=B1?= =?UTF-8?q?=E8=A8=88=E9=81=A9=E9=85=8Dpjax=20#516?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layout/includes/third-party/pjax.pug | 8 +++++--- package.json | 2 +- source/css/_layout/post.styl | 12 ++++++------ source/css/_mode/readmode.styl | 4 ++-- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/layout/includes/third-party/pjax.pug b/layout/includes/third-party/pjax.pug index 92c389c..e07371a 100644 --- a/layout/includes/third-party/pjax.pug +++ b/layout/includes/third-party/pjax.pug @@ -42,9 +42,11 @@ script. typeof chatBtnFn === 'function' && chatBtnFn() typeof panguInit === 'function' && panguInit() - if (typeof gtag === 'function') { - gtag('config', '!{theme.google_analytics}', {'page_path': window.location.pathname}); - } + // google analytics + typeof gtag === 'function' && gtag('config', '!{theme.google_analytics}', {'page_path': window.location.pathname}); + + //- // baidu analytics + typeof _hmt === 'object' && _hmt.push(['_trackPageview',window.location.pathname]); typeof loadMeting === 'function' && document.getElementsByClassName('aplayer').length && loadMeting() diff --git a/package.json b/package.json index a61d621..79403d0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "3.7.0-b5", + "version": "3.7.0-b6", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": { diff --git a/source/css/_layout/post.styl b/source/css/_layout/post.styl index d5a35ca..c4f9099 100644 --- a/source/css/_layout/post.styl +++ b/source/css/_layout/post.styl @@ -164,16 +164,16 @@ no-beautify() kbd margin: 0 3px padding: 3px 5px - border-radius: 3px border: 1px solid #b4b4b4 - box-shadow: 0 1px 3px rgba(0,0,0,.25), 0 2px 1px 0 rgba(255,255,255,.6) inset - font-family: Monaco, 'Ubuntu Mono', monospace - font-size: 0.9em - font-weight: 600 + border-radius: 3px background-color: #f8f8f8 + box-shadow: 0 1px 3px rgba(0, 0, 0, .25), 0 2px 1px 0 rgba(255, 255, 255, .6) inset color: #34495e - line-height: 1em white-space: nowrap + font-weight: 600 + font-size: .9em + font-family: Monaco, 'Ubuntu Mono', monospace + line-height: 1em if hexo-config('beautify.enable') && hexo-config('beautify.field') == 'site' beautify() diff --git a/source/css/_mode/readmode.styl b/source/css/_mode/readmode.styl index 552aa7e..0ef3b36 100644 --- a/source/css/_mode/readmode.styl +++ b/source/css/_mode/readmode.styl @@ -165,9 +165,9 @@ if hexo-config('readmode') kbd border: 1px solid var(--gray) - color: var(--font-color) - box-shadow: none background-color: transparent + box-shadow: none + color: var(--font-color) .hide-toggle border: 1px solid var(--gray) !important From 7bc46c47ed6298abc7ab5a9029929116c383a2bd Mon Sep 17 00:00:00 2001 From: Jerry Date: Sun, 14 Mar 2021 23:25:58 +0800 Subject: [PATCH 18/21] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=A8=AD?= =?UTF-8?q?=E7=BD=AE=E4=BB=A3=E7=A2=BC=E8=A1=8C=E6=95=B8=E9=99=90=E5=88=B6?= =?UTF-8?q?=EF=BC=8C=E9=A1=AF=E7=A4=BA=E5=B1=95=E9=96=8B=E6=8C=89=E9=88=95?= =?UTF-8?q?=20improvement:=20prismjs=20=E5=8F=AF=E4=BB=A5=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=20code=5Fword=5Fwrap=20improvement:=20=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=20hover=20=E6=95=88=E6=9E=9C=E8=88=87=E5=85=B6?= =?UTF-8?q?=E5=AE=83=E7=9B=AE=E9=8C=84=E4=B8=80=E8=87=B4=20improvement:=20?= =?UTF-8?q?css=20=E5=84=AA=E5=8C=96=20fix:=20=E4=BF=AE=E5=BE=A9prismjs=20?= =?UTF-8?q?=E7=84=A1=E6=B3=95=E8=AD=98=E5=88=A5=E7=9A=84=E8=AA=9E=E8=A8=80?= =?UTF-8?q?=20=E9=A1=AF=E7=A4=BA=20null=20=E8=80=8C=E4=B8=8D=E6=98=AF?= =?UTF-8?q?=E9=A1=AF=E7=A4=BA=20code=20=E7=9A=84=20bug=20fix:=20=E4=BF=AE?= =?UTF-8?q?=E5=BE=A9=E9=BB=98=E8=AA=8D=E4=BB=A3=E7=A2=BC=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E4=B8=8D=E6=9C=83=E9=9A=A8=E7=9D=80=E5=AD=97=E9=AB=94=E6=94=BE?= =?UTF-8?q?=E5=A4=A7/=E6=94=BE=E5=B0=8F=E8=80=8C=E6=94=B9=E8=AE=8A?= =?UTF-8?q?=E7=9A=84bug=20fix:=20=E4=BF=AE=E5=BE=A9prismjs=20=E5=9C=A8ios?= =?UTF-8?q?=20safari=20=E4=B8=8B=E8=87=AA=E5=8B=95=E6=8F=9B=E8=A1=8C?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _config.yml | 1 + layout/includes/head/config.pug | 3 +- layout/includes/header/menu_item.pug | 2 +- layout/includes/third-party/pjax.pug | 2 +- package.json | 2 +- source/css/_highlight/highlight.styl | 63 ++++- source/css/_highlight/highlight/diff.styl | 2 +- source/css/_highlight/highlight/index.styl | 6 +- source/css/_highlight/prismjs/index.styl | 2 +- .../css/_highlight/prismjs/line-number.styl | 11 +- source/css/_layout/head.styl | 32 +-- source/css/_mode/darkmode.styl | 52 +--- source/css/var.styl | 2 +- source/js/main.js | 227 ++++++++++-------- 14 files changed, 225 insertions(+), 182 deletions(-) diff --git a/_config.yml b/_config.yml index f9f78f2..16cf395 100644 --- a/_config.yml +++ b/_config.yml @@ -27,6 +27,7 @@ highlight_theme: light # darker / pale night / light / ocean / mac / mac light highlight_copy: true # copy button highlight_lang: true # show the code language highlight_shrink: false # true: shrink the code blocks / false: expand the code blocks | none: expand code blocks and hide the button +highlight_height_limit: false # unit: px code_word_wrap: false # copy settings diff --git a/layout/includes/head/config.pug b/layout/includes/head/config.pug index 710345d..9dd4f3b 100644 --- a/layout/includes/head/config.pug +++ b/layout/includes/head/config.pug @@ -78,7 +78,8 @@ highlight = JSON.stringify({ plugin: config.highlight.enable ? 'highlighjs' : 'prismjs', highlightCopy: theme.highlight_copy, - highlightLang: theme.highlight_lang + highlightLang: theme.highlight_lang, + highlightHeightLimit: theme.highlight_height_limit }) } diff --git a/layout/includes/header/menu_item.pug b/layout/includes/header/menu_item.pug index a10071c..5a63994 100644 --- a/layout/includes/header/menu_item.pug +++ b/layout/includes/header/menu_item.pug @@ -20,7 +20,7 @@ if theme.menu ul.menus_item_child each val,lab in value li - a.site-page(href=url_for(trim(val.split('||')[0]))) + a.site-page.child(href=url_for(trim(val.split('||')[0]))) if val.split('||')[1] i.fa-fw(class=trim(val.split('||')[1])) span=' '+ lab \ No newline at end of file diff --git a/layout/includes/third-party/pjax.pug b/layout/includes/third-party/pjax.pug index e07371a..853c627 100644 --- a/layout/includes/third-party/pjax.pug +++ b/layout/includes/third-party/pjax.pug @@ -45,7 +45,7 @@ script. // google analytics typeof gtag === 'function' && gtag('config', '!{theme.google_analytics}', {'page_path': window.location.pathname}); - //- // baidu analytics + // baidu analytics typeof _hmt === 'object' && _hmt.push(['_trackPageview',window.location.pathname]); typeof loadMeting === 'function' && document.getElementsByClassName('aplayer').length && loadMeting() diff --git a/package.json b/package.json index 79403d0..2ec0ed4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "3.7.0-b6", + "version": "3.7.0-b7", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": { diff --git a/source/css/_highlight/highlight.styl b/source/css/_highlight/highlight.styl index 29e9f27..5f82677 100644 --- a/source/css/_highlight/highlight.styl +++ b/source/css/_highlight/highlight.styl @@ -1,4 +1,3 @@ -// https://github.com/equinusocio/vsc-material-theme $highlight_theme = hexo-config('highlight_theme') $highlighEnable = hexo-config('highlight_settings') && hexo-config('highlight_settings.enable') $prismjsEnable = hexo-config('prismjs_settings') && hexo-config('prismjs_settings.enable') @@ -6,6 +5,16 @@ wordWrap = !hexo-config('highlight_settings.line_number') && hexo-config('code_w @require 'theme' +:root + --hl-color: $highlight-foreground + --hl-bg: $highlight-background + --hltools-bg: $highlight-tools.bg-color + --hltools-color: $highlight-tools.color + --hlnumber-bg: $highlight-gutter.bg-color + --hlnumber-color: $highlight-gutter.color + --hlscrollbar-bg: $highlight-scrollbar + --hlexpand-bg: linear-gradient(180deg, rgba($highlight-background, .6), rgba($highlight-background, .9)) + if $highlighEnable @require 'highlight/index' @@ -16,8 +25,8 @@ $code-block overflow: auto margin: 0 0 1rem padding: 0 - background: $highlight-background - color: $highlight-foreground + background: var(--hl-bg) + color: var(--hl-color) line-height: $line-height-code-block if wordWrap @@ -56,9 +65,6 @@ blockquote padding: .1rem .2rem background: $code-background color: $code-foreground - word-wrap: break-word - word-break: break-word - overflow-wrap: break-word pre @extend $code-block @@ -67,7 +73,7 @@ blockquote code padding: 0 background: none - color: $highlight-foreground + color: var(--hl-color) text-shadow: none figure.highlight @@ -88,10 +94,10 @@ blockquote a float: right padding-right: 10px - color: $highlight-foreground + color: var(--hl-color) &:hover - border-bottom-color: $highlight-foreground + border-bottom-color: var(--hl-color) .highlight-tools position: relative @@ -100,8 +106,8 @@ blockquote overflow: hidden min-height: 1.2rem height: 2.15em - background: $highlight-tools.bg-color - color: $highlight-tools.color + background: var(--hltools-bg) + color: var(--hltools-color) font-size: $code-font-size &.closed + table @@ -185,3 +191,38 @@ blockquote .code-lang left: 3.8rem !important + + if hexo-config('highlight_height_limit') + .code-expand-btn + position: absolute + bottom: 0 + z-index: 10 + width: 100% + background: var(--hlexpand-bg) + text-align: center + font-size: $code-font-size + cursor: pointer + + i + padding: .3rem 0 + color: var(--hlnumber-color) + animation: code-expand-key 1.2s infinite + + &.expand-done + display: none !important + + &:not(.expand-done) + & ~ table, + & ~ pre + overflow: hidden + height: unit(hexo-config('highlight_height_limit'), px) + +@keyframes code-expand-key + 0% + opacity: .6 + + 50% + opacity: .1 + + 100% + opacity: .6 \ No newline at end of file diff --git a/source/css/_highlight/highlight/diff.styl b/source/css/_highlight/highlight/diff.styl index 486754c..6a6eefe 100644 --- a/source/css/_highlight/highlight/diff.styl +++ b/source/css/_highlight/highlight/diff.styl @@ -1,7 +1,7 @@ figure.highlight table &::-webkit-scrollbar-thumb - background: $highlight-scrollbar + background: var(--hlscrollbar-bg) pre .deletion color: $highlight-deletion diff --git a/source/css/_highlight/highlight/index.styl b/source/css/_highlight/highlight/index.styl index 9c3d4f9..cb214c0 100644 --- a/source/css/_highlight/highlight/index.styl +++ b/source/css/_highlight/highlight/index.styl @@ -9,7 +9,7 @@ if $highlight_theme != false display: inline-block padding: 0 .3rem 0 0 min-width: 1.6rem - color: $highlight-gutter.color + color: var(--hlnumber-color) content: counter(line) counter-increment: line text-align: left @@ -29,8 +29,8 @@ if $highlight_theme != false .gutter pre padding-right: .5rem padding-left: .5rem - background-color: $highlight-gutter.bg-color - color: $highlight-gutter.color + background-color: var(--hlnumber-bg) + color: var(--hlnumber-color) text-align: right .code pre diff --git a/source/css/_highlight/prismjs/index.styl b/source/css/_highlight/prismjs/index.styl index 5ac7f4f..b21c5bf 100644 --- a/source/css/_highlight/prismjs/index.styl +++ b/source/css/_highlight/prismjs/index.styl @@ -7,7 +7,7 @@ if $highlight_theme != false #article-container pre[class*='language-'] &::-webkit-scrollbar-thumb - background: $highlight-scrollbar + background: var(--hlscrollbar-bg) &:not(.line-numbers) padding: 10px 20px diff --git a/source/css/_highlight/prismjs/line-number.styl b/source/css/_highlight/prismjs/line-number.styl index a6bd858..69f2787 100644 --- a/source/css/_highlight/prismjs/line-number.styl +++ b/source/css/_highlight/prismjs/line-number.styl @@ -8,9 +8,16 @@ > code position: relative - white-space: inherit line-height: $line-height-code-block + if hexo-config('code_word_wrap') + white-space: pre-wrap + else + white-space: inherit + word-wrap: normal + word-break: normal + overflow-wrap: normal + .line-numbers-rows position: absolute top: 0 @@ -29,6 +36,6 @@ &:before display: block padding-right: .8em - color: $highlight-gutter.color + color: var(--hlnumber-color) content: counter(linenumber) text-align: right diff --git a/source/css/_layout/head.styl b/source/css/_layout/head.styl index 37ca649..d9cb609 100644 --- a/source/css/_layout/head.styl +++ b/source/css/_layout/head.styl @@ -303,22 +303,6 @@ _:future, padding: 4px transition: transform .3s - & > a - &:after - position: absolute - bottom: 0 - left: 0 - z-index: -1 - width: 0 - height: 3px - background-color: lighten($theme-color, 30%) - content: '' - transition: all .3s ease-in-out - - &:hover - &:after - width: 100% - .menus_item_child position: absolute right: 0 @@ -377,3 +361,19 @@ _:future, text-shadow: .05rem .05rem .1rem rgba($dark-black, .3) font-size: .78em cursor: pointer + + &:not(.child) + &:after + position: absolute + bottom: 0 + left: 0 + z-index: -1 + width: 0 + height: 3px + background-color: lighten($theme-color, 30%) + content: '' + transition: all .3s ease-in-out + + &:hover + &:after + width: 100% diff --git a/source/css/_mode/darkmode.styl b/source/css/_mode/darkmode.styl index 02e3a82..da9b673 100644 --- a/source/css/_mode/darkmode.styl +++ b/source/css/_mode/darkmode.styl @@ -27,6 +27,14 @@ if hexo-config('darkmode.enable') || hexo-config('display_mode') == 'dark' --blockquote-bg: lighten(#121212, 10) --reward-pop: lighten(#121212, 10) --toc-link-color: alpha(#FFFFFF, .6) + --hl-color: alpha(#FFFFFF, .7) + --hl-bg: lighten(#121212, 2) + --hltools-bg: lighten(#121212, 3) + --hltools-color: #90a4ae + --hlnumber-bg: lighten(#121212, 2) + --hlnumber-color: alpha(#FFFFFF, .4) + --hlscrollbar-bg: lighten(#121212, 5) + --hlexpand-bg: linear-gradient(180deg, rgba(lighten(#121212, 2), .6), rgba(lighten(#121212, 2), .9)) #web_bg:before, #footer:before, @@ -42,7 +50,10 @@ if hexo-config('darkmode.enable') || hexo-config('display_mode') == 'dark' background: #2c2c2c pre > code - background: 0 + background: lighten(#121212, 2) + + figure.highlight + box-shadow: none .note code @@ -63,33 +74,6 @@ if hexo-config('darkmode.enable') || hexo-config('display_mode') == 'dark' background: alpha(#121212, .8) box-shadow: 0 5px 6px -5px rgba(133, 133, 133, 0) - // 代碼框 - #article-container - pre, - .highlight:not(.js-file-line-container) - background-color: lighten(#121212, 2) !important - color: alpha(#FFFFFF, .7) !important - - figure.highlight - box-shadow: none - - if hexo-config('highlight_settings') && hexo-config('highlight_settings.enable') - table::-webkit-scrollbar-thumb - background: lighten(#121212, 5) - - .line:before - color: alpha(#FFFFFF, .7) !important - - .hljs - background-color: lighten(#121212, 2) !important - - pre[class*='language-']::-webkit-scrollbar-thumb - background: lighten(#121212, 5) - - .highlight-tools - background: lighten(#121212, 3) !important - color: #90a4ae !important - #post-comment #comment-switch if hexo-config('comments.text') @@ -118,16 +102,6 @@ if hexo-config('darkmode.enable') || hexo-config('display_mode') == 'dark' #aside-content .aside-list > .aside-list-item:not(:last-child) border-bottom: 1px dashed alpha(#FFFFFF, .1) - // 第三方 - // 插件 hexo-blog-encrypt - #hexo-blog-encrypt - label, - input - color: alpha(#FFFFFF, .7) !important - - input - background-color: #121212 - // Gitalk #gitalk-container filter: brightness(.8) @@ -135,7 +109,7 @@ if hexo-config('darkmode.enable') || hexo-config('display_mode') == 'dark' svg fill: alpha(#FFFFFF, .9) !important - // Disqus and Disqusjs + // Disqusjs 反代模式下的適配 #disqus_thread #dsqjs .dsqjs-tab-active, diff --git a/source/css/var.styl b/source/css/var.styl index f3f0267..87e1503 100644 --- a/source/css/var.styl +++ b/source/css/var.styl @@ -28,7 +28,7 @@ $title-prefix-icon = $beautifyEnable ? hexo-config('beautify.title-prefix-icon') $title-prefix-icon-color = $beautifyEnable ? convert(hexo-config('beautify.title-prefix-icon-color')) : $light-red // Global Variables $font-size = hexo-config('font.global-font-size') ? convert(hexo-config('font.global-font-size')) : 14px -$code-font-size = hexo-config('font.code-font-size') ? convert(hexo-config('font.code-font-size')) : $font-size +$code-font-size = hexo-config('font.code-font-size') ? convert(hexo-config('font.code-font-size')) : var(--global-font-size) $font-color = #1F2D3D $rem = 20px $text-line-height = 2 diff --git a/source/js/main.js b/source/js/main.js index da5be46..197dddb 100644 --- a/source/js/main.js +++ b/source/js/main.js @@ -81,123 +81,142 @@ document.addEventListener('DOMContentLoaded', function () { * 只適用於Hexo默認的代碼渲染 */ const addHighlightTool = function () { - const isHighlightCopy = GLOBAL_CONFIG.highlight.highlightCopy - const isHighlightLang = GLOBAL_CONFIG.highlight.highlightLang + const highLight = GLOBAL_CONFIG.highlight + if (!highLight) return + + const isHighlightCopy = highLight.highlightCopy + const isHighlightLang = highLight.highlightLang const isHighlightShrink = GLOBAL_CONFIG_SITE.isHighlightShrink + const highlightHeightLimit = highLight.highlightHeightLimit const isShowTool = isHighlightCopy || isHighlightLang || isHighlightShrink !== undefined - const $figureHighlight = GLOBAL_CONFIG.highlight.plugin === 'highlighjs' ? document.querySelectorAll('figure.highlight') : document.querySelectorAll('pre[class*="language-"]') + const $figureHighlight = highLight.plugin === 'highlighjs' ? document.querySelectorAll('figure.highlight') : document.querySelectorAll('pre[class*="language-"]') - if (isShowTool && $figureHighlight.length) { - const isPrismjs = GLOBAL_CONFIG.highlight.plugin === 'prismjs' + if (!((isShowTool || highlightHeightLimit) && $figureHighlight.length)) return - let highlightShrinkEle = '' - let highlightCopyEle = '' - const highlightShrinkClass = isHighlightShrink === true ? 'closed' : '' + const isPrismjs = highLight.plugin === 'prismjs' - if (isHighlightShrink !== undefined) { - highlightShrinkEle = `` - } + let highlightShrinkEle = '' + let highlightCopyEle = '' + const highlightShrinkClass = isHighlightShrink === true ? 'closed' : '' - if (isHighlightCopy) { - highlightCopyEle = '
' - } + if (isHighlightShrink !== undefined) { + highlightShrinkEle = `` + } - const copy = (text, ctx) => { - if (document.queryCommandSupported && document.queryCommandSupported('copy')) { - document.execCommand('copy') - if (GLOBAL_CONFIG.Snackbar !== undefined) { - btf.snackbarShow(GLOBAL_CONFIG.copy.success) - } else { - const prevEle = ctx.previousElementSibling - prevEle.innerText = GLOBAL_CONFIG.copy.success - prevEle.style.opacity = 1 - setTimeout(() => { prevEle.style.opacity = 0 }, 700) - } + if (isHighlightCopy) { + highlightCopyEle = '
' + } + + const copy = (text, ctx) => { + if (document.queryCommandSupported && document.queryCommandSupported('copy')) { + document.execCommand('copy') + if (GLOBAL_CONFIG.Snackbar !== undefined) { + btf.snackbarShow(GLOBAL_CONFIG.copy.success) } else { - if (GLOBAL_CONFIG.Snackbar !== undefined) { - btf.snackbarShow(GLOBAL_CONFIG.copy.noSupport) - } else { - ctx.previousElementSibling.innerText = GLOBAL_CONFIG.copy.noSupport - } - } - } - - // click events - const highlightCopyFn = (ele) => { - const $buttonParent = ele.parentNode - $buttonParent.classList.add('copy-true') - const selection = window.getSelection() - const range = document.createRange() - if (isPrismjs) range.selectNodeContents($buttonParent.querySelectorAll('pre code')[0]) - else range.selectNodeContents($buttonParent.querySelectorAll('table .code pre')[0]) - selection.removeAllRanges() - selection.addRange(range) - const text = selection.toString() - copy(text, ele.lastChild) - selection.removeAllRanges() - $buttonParent.classList.remove('copy-true') - } - - const highlightShrinkFn = (ele) => { - const $nextEle = [...ele.parentNode.children].slice(1) - ele.firstChild.classList.toggle('closed') - if (btf.isHidden($nextEle[0])) { - $nextEle.forEach(e => { e.style.display = 'block' }) - } else { - $nextEle.forEach(e => { e.style.display = 'none' }) - } - } - - const highlightToolsFn = function (e) { - const $target = e.target.classList - if ($target.contains('expand')) highlightShrinkFn(this) - else if ($target.contains('copy-button')) highlightCopyFn(this) - } - - const createEle = () => { - const newEle = document.createElement('div') - newEle.className = `highlight-tools ${highlightShrinkClass}` - newEle.addEventListener('click', highlightToolsFn) - return newEle - } - - if (isHighlightLang) { - if (isPrismjs) { - $figureHighlight.forEach(function (item) { - const langName = item.getAttribute('data-language') !== undefined ? item.getAttribute('data-language') : 'Code' - const highlightLangEle = `
${langName}
` - btf.wrap(item, 'figure', '', 'highlight') - const newEle = createEle() - newEle.innerHTML = highlightShrinkEle + highlightLangEle + highlightCopyEle - item.parentNode.insertBefore(newEle, item) - }) - } else { - $figureHighlight.forEach(function (item) { - let langName = item.getAttribute('class').split(' ')[1] - if (langName === 'plain' || langName === undefined) langName = 'Code' - const highlightLangEle = `
${langName}
` - const newEle = createEle() - newEle.innerHTML = highlightShrinkEle + highlightLangEle + highlightCopyEle - item.insertBefore(newEle, item.firstChild) - }) + const prevEle = ctx.previousElementSibling + prevEle.innerText = GLOBAL_CONFIG.copy.success + prevEle.style.opacity = 1 + setTimeout(() => { prevEle.style.opacity = 0 }, 700) } } else { - if (isPrismjs) { - $figureHighlight.forEach(function (item) { - btf.wrap(item, 'figure', '', 'highlight') - const newEle = createEle() - newEle.innerHTML = highlightShrinkEle + highlightCopyEle - item.parentNode.insertBefore(newEle, item) - }) + if (GLOBAL_CONFIG.Snackbar !== undefined) { + btf.snackbarShow(GLOBAL_CONFIG.copy.noSupport) } else { - $figureHighlight.forEach(function (item) { - const newEle = createEle() - newEle.innerHTML = highlightShrinkEle + highlightCopyEle - item.insertBefore(newEle, item.firstChild) - }) + ctx.previousElementSibling.innerText = GLOBAL_CONFIG.copy.noSupport } } } + + // click events + const highlightCopyFn = (ele) => { + const $buttonParent = ele.parentNode + $buttonParent.classList.add('copy-true') + const selection = window.getSelection() + const range = document.createRange() + if (isPrismjs) range.selectNodeContents($buttonParent.querySelectorAll('pre code')[0]) + else range.selectNodeContents($buttonParent.querySelectorAll('table .code pre')[0]) + selection.removeAllRanges() + selection.addRange(range) + const text = selection.toString() + copy(text, ele.lastChild) + selection.removeAllRanges() + $buttonParent.classList.remove('copy-true') + } + + const highlightShrinkFn = (ele) => { + const $nextEle = [...ele.parentNode.children].slice(1) + ele.firstChild.classList.toggle('closed') + if (btf.isHidden($nextEle[0])) { + $nextEle.forEach(e => { e.style.display = 'block' }) + } else { + $nextEle.forEach(e => { e.style.display = 'none' }) + } + } + + const highlightToolsFn = function (e) { + const $target = e.target.classList + if ($target.contains('expand')) highlightShrinkFn(this) + else if ($target.contains('copy-button')) highlightCopyFn(this) + } + + const expandCode = function () { + this.classList.toggle('expand-done') + } + + function createEle (lang, item, service) { + const fragment = document.createDocumentFragment() + + if (isShowTool) { + const hlTools = document.createElement('div') + hlTools.className = `highlight-tools ${highlightShrinkClass}` + hlTools.innerHTML = highlightShrinkEle + lang + highlightCopyEle + hlTools.addEventListener('click', highlightToolsFn) + fragment.appendChild(hlTools) + } + + if (highlightHeightLimit && item.offsetHeight > highlightHeightLimit + 30) { + const ele = document.createElement('div') + ele.className = 'code-expand-btn' + ele.innerHTML = '' + ele.addEventListener('click', expandCode) + fragment.appendChild(ele) + } + + if (service === 'hl') { + item.insertBefore(fragment, item.firstChild) + } else { + item.parentNode.insertBefore(fragment, item) + } + } + + if (isHighlightLang) { + if (isPrismjs) { + $figureHighlight.forEach(function (item) { + const langName = item.getAttribute('data-language') ? item.getAttribute('data-language') : 'Code' + const highlightLangEle = `
${langName}
` + btf.wrap(item, 'figure', '', 'highlight') + createEle(highlightLangEle, item) + }) + } else { + $figureHighlight.forEach(function (item) { + let langName = item.getAttribute('class').split(' ')[1] + if (langName === 'plain' || langName === undefined) langName = 'Code' + const highlightLangEle = `
${langName}
` + createEle(highlightLangEle, item, 'hl') + }) + } + } else { + if (isPrismjs) { + $figureHighlight.forEach(function (item) { + btf.wrap(item, 'figure', '', 'highlight') + createEle('', item) + }) + } else { + $figureHighlight.forEach(function (item) { + createEle('', item, 'hl') + }) + } + } } /** @@ -819,7 +838,7 @@ document.addEventListener('DOMContentLoaded', function () { sidebarFn() GLOBAL_CONFIG_SITE.isHome && scrollDownInIndex() - GLOBAL_CONFIG.highlight && addHighlightTool() + addHighlightTool() GLOBAL_CONFIG.isPhotoFigcaption && addPhotoFigcaption() jqLoadAndRun() GLOBAL_CONFIG.lightbox === 'mediumZoom' && addMediumZoom() From ae09fb89b50a3b56ad37742a91a3d60f21d35706 Mon Sep 17 00:00:00 2001 From: Jerry Date: Mon, 15 Mar 2021 20:44:35 +0800 Subject: [PATCH 19/21] =?UTF-8?q?feature:=20=E5=A2=9E=E5=8A=A0=20tags=20?= =?UTF-8?q?=E6=A8=99=E7=B0=BD=E5=A4=96=E6=8C=82=20inlineImg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- scripts/tag/inlineImg.js | 17 +++++++++++++++++ source/css/_tags/inlineImg.styl | 6 ++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 scripts/tag/inlineImg.js create mode 100644 source/css/_tags/inlineImg.styl diff --git a/package.json b/package.json index 2ec0ed4..0dc250b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "3.7.0-b7", + "version": "3.7.0-b8", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": { diff --git a/scripts/tag/inlineImg.js b/scripts/tag/inlineImg.js new file mode 100644 index 0000000..9bcbfdb --- /dev/null +++ b/scripts/tag/inlineImg.js @@ -0,0 +1,17 @@ +/** + * inlineImg 圖片 + * {% inlineImg src height %} + */ + +'use strict' + +const urlFor = require('hexo-util').url_for.bind(hexo) + +function inlineImg (args) { + const img = args[0] + const height = args[1] ? `style="height:${args[1]}"` : '' + + return `` +} + +hexo.extend.tag.register('inlineImg', inlineImg, { ends: false }) diff --git a/source/css/_tags/inlineImg.styl b/source/css/_tags/inlineImg.styl new file mode 100644 index 0000000..c8bb0c1 --- /dev/null +++ b/source/css/_tags/inlineImg.styl @@ -0,0 +1,6 @@ +#article-container + .inline-img + display: inline + margin: 0 3px + height: 1.1em + vertical-align: text-bottom \ No newline at end of file From 1952046a8a04f8db41570d5bac202e3155fc53f2 Mon Sep 17 00:00:00 2001 From: Jerry Date: Wed, 17 Mar 2021 17:27:35 +0800 Subject: [PATCH 20/21] =?UTF-8?q?improvement:=20=E4=B8=BB=E9=A0=81?= =?UTF-8?q?=E5=88=86=E9=A0=81=E6=9C=83=E5=AE=9A=E4=BD=8D=E5=88=B0=E6=96=87?= =?UTF-8?q?=E7=AB=A0=E5=8D=80=E5=9F=9F=20close=20#519=20fix:=20=E4=BF=AE?= =?UTF-8?q?=E5=BE=A9=E8=A8=AD=E7=BD=AEhighlight=5Fheight=5Flimit=E5=BE=8C?= =?UTF-8?q?=EF=BC=8Chighlight=5Fshrink=E9=BB=9E=E6=93=8A=E7=84=A1=E6=95=88?= =?UTF-8?q?=E7=9A=84bug=20close=20#520?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layout/includes/pagination.pug | 14 ++++++++------ package.json | 2 +- source/js/main.js | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/layout/includes/pagination.pug b/layout/includes/pagination.pug index 86f0faf..8bb76a9 100644 --- a/layout/includes/pagination.pug +++ b/layout/includes/pagination.pug @@ -6,11 +6,7 @@ escape: false } -if(!is_post()) - nav#pagination - div.pagination - !=paginator(options) -else +if is_post() - let prev = theme.post_pagination === 1 ? page.prev : page.next - let next = theme.post_pagination === 1 ? page.next : page.prev nav#pagination.pagination-post @@ -38,4 +34,10 @@ else img.next-cover(src=url_for(pagination_cover) onerror=`onerror=null;src='${url_for(theme.error_img.post_page)}'` alt='cover of next post') .pagination-info .label=_p('pagination.next') - .next_info=next.title \ No newline at end of file + .next_info=next.title +else + nav#pagination + .pagination + if is_home() + - options.format = 'page/%d/#content-inner' + !=paginator(options) \ No newline at end of file diff --git a/package.json b/package.json index 0dc250b..18e69ca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "3.7.0-b8", + "version": "3.7.0-b9", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": { diff --git a/source/js/main.js b/source/js/main.js index 197dddb..9658c73 100644 --- a/source/js/main.js +++ b/source/js/main.js @@ -146,7 +146,7 @@ document.addEventListener('DOMContentLoaded', function () { const highlightShrinkFn = (ele) => { const $nextEle = [...ele.parentNode.children].slice(1) ele.firstChild.classList.toggle('closed') - if (btf.isHidden($nextEle[0])) { + if (btf.isHidden($nextEle[$nextEle.length - 1])) { $nextEle.forEach(e => { e.style.display = 'block' }) } else { $nextEle.forEach(e => { e.style.display = 'none' }) From 65d89334b25ac826e52ef0c259847a174a255d57 Mon Sep 17 00:00:00 2001 From: Jerry Date: Fri, 19 Mar 2021 01:08:50 +0800 Subject: [PATCH 21/21] =?UTF-8?q?label:=203.7.0=20improvement:=20=E4=B8=80?= =?UTF-8?q?=E5=8F=A5=20API=20=E6=94=B9=E7=88=B2=20https?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layout/includes/third-party/subtitle.pug | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/layout/includes/third-party/subtitle.pug b/layout/includes/third-party/subtitle.pug index 84830d1..ee0f583 100644 --- a/layout/includes/third-party/subtitle.pug +++ b/layout/includes/third-party/subtitle.pug @@ -69,7 +69,7 @@ case source when 3 script. function subtitleType () { - getScript('http://yijuzhan.com/api/word.php?m=js').then(() => { + getScript('https://yijuzhan.com/api/word.php?m=js').then(() => { var con = str[0] if (!{theme.subtitle.effect}) { var from = '出自 ' + str[1] diff --git a/package.json b/package.json index 18e69ca..ac48e90 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "3.7.0-b9", + "version": "3.7.0", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": {