From 63fb690d023d2ae052331416a20efab849316767 Mon Sep 17 00:00:00 2001 From: Jerry Date: Fri, 24 Nov 2023 16:42:34 +0800 Subject: [PATCH] 4.11 --- .github/ISSUE_TEMPLATE/bug_report.yml | 9 + .github/ISSUE_TEMPLATE/config.yml | 8 +- README_CN.md | 2 +- layout/includes/head.pug | 2 +- layout/includes/head/config.pug | 6 +- .../third-party/newest-comments/artalk.pug | 4 +- .../newest-comments/disqus-comment.pug | 2 +- .../newest-comments/github-issues.pug | 2 +- .../third-party/newest-comments/remark42.pug | 2 +- .../newest-comments/twikoo-comment.pug | 2 +- .../third-party/newest-comments/valine.pug | 2 +- .../third-party/newest-comments/waline.pug | 2 +- package.json | 2 +- plugins.yml | 32 +- scripts/events/merge_config.js | 544 ++++++++++++++++++ scripts/events/stylus.js | 11 +- source/css/_layout/post.styl | 26 +- source/css/_layout/sidebar.styl | 5 +- source/css/_search/local-search.styl | 1 - source/js/main.js | 35 +- 20 files changed, 637 insertions(+), 62 deletions(-) create mode 100644 scripts/events/merge_config.js diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 4f260da..c3e26b6 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -53,6 +53,15 @@ body: validations: 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 id: description attributes: diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 9b338d0..9af6ea1 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -12,11 +12,7 @@ contact_links: url: https://t.me/bu2fly about: 'Official Telegram Group' - - name: QQ 1群 + - name: QQ 群 url: https://jq.qq.com/?_wv=1027&k=KU9105XR - about: '群號 1070540070,不要兩個Q群都添加' - - - name: QQ 2群 - url: https://jq.qq.com/?_wv=1027&k=r1nK0DQz - about: '群號 978221020,不要兩個Q群都添加' + about: '群號 1070540070' diff --git a/README_CN.md b/README_CN.md index 8b2279b..f30d642 100644 --- a/README_CN.md +++ b/README_CN.md @@ -82,7 +82,7 @@ theme: butterfly - [x] 多種在線聊天(Chatra/Tidio/Daovoice/Crisp/messenger) - [x] 多種分析系統 - [x] 谷歌廣告/手動廣告位置 -- [x] 各種站長驗證(Google/Bing/Baidu/360/Yandex) +- [x] 各種站長驗證 - [x] 修改網站配色 - [x] 打字特效 activate_power_mode - [x] 多種背景特效(靜止彩帶/動態彩帶/Canvas Nest) diff --git a/layout/includes/head.pug b/layout/includes/head.pug index cd62566..0038afc 100644 --- a/layout/includes/head.pug +++ b/layout/includes/head.pug @@ -40,7 +40,7 @@ if (theme.pwa && theme.pwa.enable) //- 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) link(rel='stylesheet', href=url_for(theme.asset.snackbar_css) media="print" onload="this.media='all'") diff --git a/layout/includes/head/config.pug b/layout/includes/head/config.pug index 05b046c..814770e 100644 --- a/layout/includes/head/config.pug +++ b/layout/includes/head/config.pug @@ -78,9 +78,11 @@ } 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({ - plugin: config.highlight.enable ? 'highlighjs' : 'prismjs', + plugin: syntaxHighlighter ? syntaxHighlighter : config.highlight.enable ? 'highlight.js' : 'prismjs', highlightCopy: theme.highlight_copy, highlightLang: theme.highlight_lang, highlightHeightLimit: theme.highlight_height_limit diff --git a/layout/includes/third-party/newest-comments/artalk.pug b/layout/includes/third-party/newest-comments/artalk.pug index e2e83ba..b757b11 100644 --- a/layout/includes/third-party/newest-comments/artalk.pug +++ b/layout/includes/third-party/newest-comments/artalk.pug @@ -40,7 +40,7 @@ script. } let $dom = document.querySelector('#card-newest-comments .aside-list') - $dom.innerHTML= result + $dom && ($dom && ($dom.innerHTML= result)) window.lazyLoadInstance && window.lazyLoadInstance.update() window.pjax && window.pjax.refresh($dom) } @@ -90,7 +90,7 @@ script. } catch (e) { console.log(e) 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')}" } } diff --git a/layout/includes/third-party/newest-comments/disqus-comment.pug b/layout/includes/third-party/newest-comments/disqus-comment.pug index 2acba1c..c729130 100644 --- a/layout/includes/third-party/newest-comments/disqus-comment.pug +++ b/layout/includes/third-party/newest-comments/disqus-comment.pug @@ -58,7 +58,7 @@ script. } let $dom = document.querySelector('#card-newest-comments .aside-list') - $dom.innerHTML= result + $dom && ($dom.innerHTML= result) window.lazyLoadInstance && window.lazyLoadInstance.update() window.pjax && window.pjax.refresh($dom) } diff --git a/layout/includes/third-party/newest-comments/github-issues.pug b/layout/includes/third-party/newest-comments/github-issues.pug index 79430db..d2cb46e 100644 --- a/layout/includes/third-party/newest-comments/github-issues.pug +++ b/layout/includes/third-party/newest-comments/github-issues.pug @@ -84,7 +84,7 @@ script. } let $dom = document.querySelector('#card-newest-comments .aside-list') - $dom.innerHTML= result + $dom && ($dom.innerHTML= result) window.lazyLoadInstance && window.lazyLoadInstance.update() window.pjax && window.pjax.refresh($dom) } diff --git a/layout/includes/third-party/newest-comments/remark42.pug b/layout/includes/third-party/newest-comments/remark42.pug index 71c2603..92e3446 100644 --- a/layout/includes/third-party/newest-comments/remark42.pug +++ b/layout/includes/third-party/newest-comments/remark42.pug @@ -38,7 +38,7 @@ script. } let $dom = document.querySelector('#card-newest-comments .aside-list') - $dom.innerHTML= result + $dom && ($dom.innerHTML= result) window.lazyLoadInstance && window.lazyLoadInstance.update() window.pjax && window.pjax.refresh($dom) } diff --git a/layout/includes/third-party/newest-comments/twikoo-comment.pug b/layout/includes/third-party/newest-comments/twikoo-comment.pug index 8615f16..4a0ca8e 100644 --- a/layout/includes/third-party/newest-comments/twikoo-comment.pug +++ b/layout/includes/third-party/newest-comments/twikoo-comment.pug @@ -69,7 +69,7 @@ script. } let $dom = document.querySelector('#card-newest-comments .aside-list') - $dom.innerHTML= result + $dom && ($dom.innerHTML= result) window.lazyLoadInstance && window.lazyLoadInstance.update() window.pjax && window.pjax.refresh($dom) } diff --git a/layout/includes/third-party/newest-comments/valine.pug b/layout/includes/third-party/newest-comments/valine.pug index 6f78774..7ac6af2 100644 --- a/layout/includes/third-party/newest-comments/valine.pug +++ b/layout/includes/third-party/newest-comments/valine.pug @@ -46,7 +46,7 @@ script. } let $dom = document.querySelector('#card-newest-comments .aside-list') - $dom.innerHTML= result + $dom && ($dom.innerHTML= result) window.lazyLoadInstance && window.lazyLoadInstance.update() window.pjax && window.pjax.refresh($dom) } diff --git a/layout/includes/third-party/newest-comments/waline.pug b/layout/includes/third-party/newest-comments/waline.pug index be25326..d26eb1a 100644 --- a/layout/includes/third-party/newest-comments/waline.pug +++ b/layout/includes/third-party/newest-comments/waline.pug @@ -38,7 +38,7 @@ script. } let $dom = document.querySelector('#card-newest-comments .aside-list') - $dom.innerHTML= result + $dom && ($dom.innerHTML= result) window.lazyLoadInstance && window.lazyLoadInstance.update() window.pjax && window.pjax.refresh($dom) } diff --git a/package.json b/package.json index 0ed17d4..e5d2510 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hexo-theme-butterfly", - "version": "4.10.0", + "version": "4.11.0", "description": "A Simple and Card UI Design theme for Hexo", "main": "package.json", "scripts": { diff --git a/plugins.yml b/plugins.yml index b25c304..31ee1b5 100644 --- a/plugins.yml +++ b/plugins.yml @@ -5,7 +5,7 @@ algolia_search: instantsearch: name: instantsearch.js file: dist/instantsearch.production.min.js - version: 4.57.0 + version: 4.60.0 pjax: name: pjax file: pjax.min.js @@ -37,7 +37,7 @@ disqusjs_css: twikoo: name: twikoo file: dist/twikoo.all.min.js - version: 1.6.22 + version: 1.6.25 waline_js: name: '@waline/client' file: dist/waline.js @@ -73,7 +73,7 @@ katex_copytex: mermaid: name: mermaid file: dist/mermaid.min.js - version: 10.5.0 + version: 10.6.1 canvas_ribbon: name: butterfly-extsrc file: dist/canvas-ribbon.min.js @@ -105,7 +105,7 @@ clickShowText: lazyload: name: vanilla-lazyload file: dist/lazyload.iife.min.js - version: 17.8.4 + version: 17.8.5 instantpage: name: instant.page file: instantpage.js @@ -113,7 +113,7 @@ instantpage: typed: name: typed.js file: dist/typed.umd.js - version: 2.0.16 + version: 2.1.0 pangu: name: pangu file: dist/browser/pangu.min.js @@ -121,17 +121,17 @@ pangu: fancybox_css: name: '@fancyapps/ui' file: dist/fancybox/fancybox.css - version: 5.0.24 + version: 5.0.28 other_name: fancyapps-ui fancybox: name: '@fancyapps/ui' file: dist/fancybox/fancybox.umd.js - version: 5.0.24 + version: 5.0.28 other_name: fancyapps-ui medium_zoom: name: medium-zoom file: dist/medium-zoom.min.js - version: 1.0.8 + version: 1.1.0 snackbar_css: name: node-snackbar file: dist/snackbar.min.css @@ -145,11 +145,19 @@ fontawesome: file: css/all.min.css other_name: font-awesome 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: name: '@egjs/infinitegrid' other_name: egjs-infinitegrid file: dist/infinitegrid.min.js - version: 4.10.1 + version: 4.11.0 aplayer_css: name: aplayer file: dist/APlayer.min.css @@ -180,11 +188,11 @@ prismjs_autoloader: artalk_js: name: artalk file: dist/Artalk.js - version: 2.6.3 + version: 2.6.4 artalk_css: name: artalk file: dist/Artalk.css - version: 2.6.3 + version: 2.6.4 pace_js: name: pace-js other_name: pace @@ -208,4 +216,4 @@ docsearch_css: abcjs_basic_js: name: abcjs file: dist/abcjs-basic-min.js - version: 6.2.2 + version: 6.2.3 diff --git a/scripts/events/merge_config.js b/scripts/events/merge_config.js new file mode 100644 index 0000000..a7540b9 --- /dev/null +++ b/scripts/events/merge_config.js @@ -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) diff --git a/scripts/events/stylus.js b/scripts/events/stylus.js index 2e6b802..4756318 100644 --- a/scripts/events/stylus.js +++ b/scripts/events/stylus.js @@ -5,8 +5,15 @@ 'use strict' hexo.extend.filter.register('stylus:renderer', style => { - const { enable: highlightEnable, line_number: highlightLineNumber } = hexo.config.highlight - const { enable: prismjsEnable, line_number: prismjsLineNumber } = hexo.config.prismjs + const { syntax_highlighter: syntaxHighlighter, highlight, prismjs } = hexo.config + 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) .define('$highlight_line_number', highlightLineNumber) diff --git a/source/css/_layout/post.styl b/source/css/_layout/post.styl index 6ad1efc..abbd58e 100644 --- a/source/css/_layout/post.styl +++ b/source/css/_layout/post.styl @@ -109,14 +109,24 @@ beautify() line-height: 1em if hexo-config('anchor.click_to_scroll') - a.headerlink - position: absolute - top: 0 - right: 0 - left 0 - bottom: 0 - width 100% - height: 100% + h1, + h2, + h3, + h4, + h5, + h6 + a:not(.headerlink) + position relative + z-index 10 + + a.headerlink + position: absolute + top: 0 + right: 0 + left 0 + bottom: 0 + width 100% + height: 100% ol, ul diff --git a/source/css/_layout/sidebar.styl b/source/css/_layout/sidebar.styl index 1a12606..d960fff 100644 --- a/source/css/_layout/sidebar.styl +++ b/source/css/_layout/sidebar.styl @@ -33,15 +33,16 @@ margin: 20px auto .menus_items - padding: 0 5px + padding: 0 10px .site-page @extend .limit-one-line position: relative display: block - padding: 6px 30px 6px 22px + padding: 3px 28px 3px 20px color: var(--font-color) font-size: 1.15em + border-radius: 6px &:hover background: var(--text-bg-hover) diff --git a/source/css/_search/local-search.styl b/source/css/_search/local-search.styl index c8dfdfe..c3ac4ff 100644 --- a/source/css/_search/local-search.styl +++ b/source/css/_search/local-search.styl @@ -53,7 +53,6 @@ .search-result margin: 0 0 8px - word-break: break-word .search-result-list overflow-y: overlay diff --git a/source/js/main.js b/source/js/main.js index a22b57f..2929801 100644 --- a/source/js/main.js +++ b/source/js/main.js @@ -66,7 +66,7 @@ document.addEventListener('DOMContentLoaded', function () { const { highlightCopy, highlightLang, highlightHeightLimit, plugin } = highLight const isHighlightShrink = GLOBAL_CONFIG_SITE.isHighlightShrink 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 @@ -75,23 +75,23 @@ document.addEventListener('DOMContentLoaded', function () { const highlightShrinkEle = isHighlightShrink !== undefined ? '' : '' const highlightCopyEle = highlightCopy ? '
' : '' - 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')) { document.execCommand('copy') - if (GLOBAL_CONFIG.Snackbar !== undefined) { - btf.snackbarShow(GLOBAL_CONFIG.copy.success) - } else { - const prevEle = ctx.previousElementSibling - prevEle.textContent = GLOBAL_CONFIG.copy.success - prevEle.style.opacity = 1 - setTimeout(() => { prevEle.style.opacity = 0 }, 700) - } + alertInfo(ctx, GLOBAL_CONFIG.copy.success) } else { - if (GLOBAL_CONFIG.Snackbar !== undefined) { - btf.snackbarShow(GLOBAL_CONFIG.copy.noSupport) - } else { - ctx.previousElementSibling.textContent = GLOBAL_CONFIG.copy.noSupport - } + alertInfo(ctx, GLOBAL_CONFIG.copy.noSupport) } } @@ -105,8 +105,7 @@ document.addEventListener('DOMContentLoaded', function () { range.selectNodeContents($buttonParent.querySelectorAll(`${preCodeSelector}`)[0]) selection.removeAllRanges() selection.addRange(range) - const text = selection.toString() - copy(text, ele.lastChild) + copy(ele.lastChild) selection.removeAllRanges() $buttonParent.classList.remove('copy-true') } @@ -783,7 +782,7 @@ document.addEventListener('DOMContentLoaded', function () { const commentContainer = document.getElementById('post-comment') const handleSwitchBtn = () => { commentContainer.classList.toggle('move') - if (!switchDone) { + if (!switchDone && typeof loadOtherComment === 'function') { switchDone = true loadOtherComment() }