From aa8c509b9629be5468a6a745f57b4d03aa19d3f0 Mon Sep 17 00:00:00 2001 From: Jerry <16351105+jerryc127@users.noreply.github.com> Date: Tue, 16 Jun 2020 18:37:22 +0800 Subject: [PATCH] =?UTF-8?q?:label:=20=E6=9B=B4=E6=96=B0=E8=87=B33.0.0-RC-1?= =?UTF-8?q?=20close=20#189,=20close=20#192,=20close=20#223,=20close=20#224?= =?UTF-8?q?,=20close=20#229,=20close=20232,=20close=20#240?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 +- README_CN.md | 14 +- _config.yml | 649 ++++++++++-------- languages/default.yml | 25 +- languages/en.yml | 25 +- languages/zh-CN.yml | 18 +- languages/zh-TW.yml | 16 +- layout/404.pug | 22 +- layout/flink.pug | 26 +- layout/includes/additional-js.pug | 18 +- layout/includes/chat/chatra.pug | 30 + layout/includes/chat/daovoice.pug | 37 + layout/includes/chat/gitter.pug | 28 + layout/includes/chat/index.pug | 8 + layout/includes/chat/tidio.pug | 39 ++ layout/includes/comments/disqusjs.pug | 3 +- layout/includes/comments/index.pug | 6 +- .../comments/{laibili.pug => livere.pug} | 2 +- layout/includes/comments/valine.pug | 4 +- layout/includes/footer.pug | 2 +- layout/includes/head.pug | 26 +- layout/includes/head/Open_Graph.pug | 9 +- layout/includes/head/aplayer.pug | 3 + layout/includes/head/config.pug | 20 +- layout/includes/head/config_site.pug | 14 +- layout/includes/head/darkmode.pug | 75 +- layout/includes/head/dns_prefetch.pug | 22 - layout/includes/head/noscript.pug | 2 +- layout/includes/head/preconnect.pug | 19 + layout/includes/head/subtitle.pug | 10 +- layout/includes/header/index.pug | 6 +- layout/includes/header/menu_item.pug | 4 +- .../includes/header/{header.pug => nav.pug} | 10 +- layout/includes/header/post-info.pug | 29 +- layout/includes/header/social.pug | 4 +- layout/includes/layout.pug | 7 +- layout/includes/mixins/article-sort.pug | 4 +- layout/includes/mixins/post-ui.pug | 46 +- .../includes/mobile-sidebar/mobile-menus.pug | 2 +- layout/includes/pagination.pug | 22 +- layout/includes/post/reward.pug | 7 +- layout/includes/rightside.pug | 39 +- layout/includes/search/algolia.pug | 2 +- layout/includes/search/local-search.pug | 2 +- layout/includes/sidebar.pug | 12 +- layout/includes/third-party/pangu.pug | 15 +- layout/includes/widget/card_announcement.pug | 2 +- layout/includes/widget/card_archives.pug | 2 +- layout/includes/widget/card_author.pug | 8 +- layout/includes/widget/card_categories.pug | 4 +- layout/includes/widget/card_recent_post.pug | 8 +- layout/includes/widget/card_tags.pug | 2 +- layout/includes/widget/card_webinfo.pug | 5 +- scripts/filters/post_lazyload.js | 7 +- scripts/helpers/aside_archives.js | 2 +- scripts/helpers/aside_categories.js | 41 +- scripts/helpers/related_post.js | 10 +- scripts/tags/button.js | 28 + scripts/tags/hide.js | 10 +- scripts/tags/tabs.js | 62 ++ source/css/_global/function.styl | 18 + source/css/_global/index.styl | 107 ++- source/css/_highlight/diff.styl | 79 ++- source/css/_highlight/highlight.styl | 223 +++--- source/css/_highlight/theme.styl | 61 +- source/css/_layout/404.styl | 104 ++- source/css/_layout/aside.styl | 53 +- source/css/_layout/chat.styl | 8 + source/css/_layout/flink.styl | 147 ++-- source/css/_layout/head.styl | 28 +- source/css/_layout/mobile-sidebar.styl | 42 +- source/css/_layout/page.styl | 28 +- source/css/_layout/pagination.styl | 14 +- source/css/_layout/post.styl | 75 +- source/css/_layout/relatedposts.styl | 34 +- source/css/_layout/reward.styl | 31 +- source/css/_layout/rightside.styl | 12 +- source/css/_layout/third-party.styl | 5 +- source/css/_mode/darkmode.styl | 107 ++- source/css/_mode/readmode.styl | 106 ++- source/css/_search/index.styl | 2 +- source/css/_tags/button.styl | 60 ++ source/css/_tags/gallery.styl | 8 +- source/css/_tags/hexo.styl | 30 + source/css/_tags/hide.styl | 9 +- source/css/_tags/note.styl | 248 +------ source/css/_tags/tabs.styl | 71 ++ source/css/index.styl | 2 +- source/css/var.styl | 56 +- source/js/main.js | 201 +++--- source/js/search/algolia.js | 10 +- source/js/tw_cn.js | 159 ++--- source/js/utils.js | 31 +- 93 files changed, 2109 insertions(+), 1648 deletions(-) create mode 100644 layout/includes/chat/chatra.pug create mode 100644 layout/includes/chat/daovoice.pug create mode 100644 layout/includes/chat/gitter.pug create mode 100644 layout/includes/chat/index.pug create mode 100644 layout/includes/chat/tidio.pug rename layout/includes/comments/{laibili.pug => livere.pug} (85%) create mode 100644 layout/includes/head/aplayer.pug delete mode 100644 layout/includes/head/dns_prefetch.pug create mode 100644 layout/includes/head/preconnect.pug rename layout/includes/header/{header.pug => nav.pug} (72%) create mode 100644 scripts/tags/button.js create mode 100644 scripts/tags/tabs.js create mode 100644 source/css/_global/function.styl create mode 100644 source/css/_layout/chat.styl create mode 100644 source/css/_tags/button.styl create mode 100644 source/css/_tags/hexo.styl create mode 100644 source/css/_tags/tabs.styl diff --git a/README.md b/README.md index a788b3d..1aea826 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # hexo-theme-butterfly -Version +Version Author Hexo node.js @@ -14,20 +14,20 @@ Based on [hexo-theme-melody](https://github.com/Molunerfinn/hexo-theme-melody) t Stable branch [recommend]: ``` -git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/Butterfly +git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly ``` Dev branch: ``` -git clone -b dev https://github.com/jerryc127/hexo-theme-butterfly.git themes/Butterfly +git clone -b dev https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly ``` ## Configuration Set theme in the hexo work folder's root config file `_config.yml`: -> theme: Butterfly +> theme: butterfly If you don't have pug & stylus renderer, try this: @@ -35,13 +35,13 @@ git clone -b dev https://github.com/jerryc127/hexo-theme-butterfly.git themes/Bu ## Documentation -Find in [hexo-theme-butterfly docs](https://docs.jerryc.me) and [JerryC](https://jerryc.me/posts/21cfbf15). it supports `zh-TW` and `zh-CN` +Find in [Butterfly Docs](https://demo.jerryc.me/posts/21cfbf15/). it supports `zh-TW` and `zh-CN` You can also join the Chat Group. -[ 💬 Join QQ Group [recommend]](https://jq.qq.com/?_wv=1027&k=5KI3Jqb) +[💬 Join QQ Group [recommend]](https://jq.qq.com/?_wv=1027&k=5KI3Jqb) -[ 💬 Join Telegram Group](https://t.me/hexo_butterfly) +[💬 Join Telegram Group](https://t.me/hexo_butterfly) diff --git a/README_CN.md b/README_CN.md index 0802850..c951209 100644 --- a/README_CN.md +++ b/README_CN.md @@ -1,6 +1,6 @@ # hexo-theme-butterfly -Version +Version Author Hexo node.js @@ -14,33 +14,33 @@ Demo: 👍 [Butterfly](https://demo.jerryc.me/) || 🤞 [JerryC](https://jer 在你的博客根目錄裡安裝穩定版【推薦】 ``` -git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/Butterfly +git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly ``` 如果想要安裝比較新的dev分支,可以 ``` -git clone -b dev https://github.com/jerryc127/hexo-theme-butterfly.git themes/Butterfly +git clone -b dev https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly ``` ## 應用主題 修改hexo配置文件`_config.yml`,把主題改為`Butterfly` ``` -theme: Butterfly +theme: butterfly ``` >如果你沒有pug以及stylus的渲染器,請下載安裝: npm install hexo-renderer-pug hexo-renderer-stylus --save or yarn add hexo-renderer-pug hexo-renderer-stylus ## 文檔 -可查看[hexo-theme-butterfly docs](https://docs.jerryc.me) 和 [JerryC](https://jerryc.me/posts/21cfbf15) +可查看[Butterfly Docs](https://demo.jerryc.me/posts/21cfbf15/) 你也可以加入群組 -[ 💬 QQ群 [推薦]](https://jq.qq.com/?_wv=1027&k=5KI3Jqb) +[ 💬 QQ群 [推薦]](https://jq.qq.com/?_wv=1027&k=5KI3Jqb) -[ 💬Telegram群](https://t.me/hexo_butterfly) +[ 💬 Telegram群](https://t.me/hexo_butterfly) ## 截圖 diff --git a/_config.yml b/_config.yml index 7061c75..ff041a8 100644 --- a/_config.yml +++ b/_config.yml @@ -1,60 +1,48 @@ -# Main menu navigation -# --------------- -# format: xxx: 連結 || icon +# Main menu navigation (導航目錄) +# -------------------------------------- + +# format: name: link || icon # sub-menu -# xxx || icon: -# xxx || 連結 || icon +# name || icon: +# name || link || icon + menu: - Home: / || fa fa-home - Archives: /archives/ || fa fa-archive - Tags: /tags/ || fa fa-tags - Categories: /categories/ || fa fa-folder-open - Link: /link/ || fa fa-link - About: /about/ || fa fa-heart - List||fa fa-list: - - Music || /music/ || fa fa-music - - Movie || /movies/ || fa fa-film + Home: / || fas fa-home + Archives: /archives/ || fas fa-archive + 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 + Link: /link/ || fas fa-link + About: /about/ || fas fa-heart -# PWA -# See https://github.com/JLHwung/hexo-offline -# --------------- -# pwa: -# enable: true -# manifest: /img/pwa/manifest.json -# theme_color: "#fff" -# apple_touch_icon: /img/pwa/apple-touch-icon.png -# favicon_32_32: /img/pwa/32.png -# favicon_16_16: /img/pwa/16.png -# mask_icon: /img/pwa/safari-pinned-tab.svg - -# Highlight theme -# --------------- -highlight_theme: light # default / darker / pale night / light / ocean -highlight_copy: true #代碼複製按鈕 -highlight_lang: true #代碼語言顯示 -highlight_shrink: false # true 全部代碼框不展開,需點擊 '>' 打開 / false 代碼框展開,有'>'點擊按鈕 | none 代碼框展開,不顯示 '>' 按鈕 +# Code Blocks (代碼相關) +# -------------------------------------- +highlight_theme: light # default / darker / pale night / light / ocean / mac / false +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 code_word_wrap: false -# copy setting -# 是否禁止複製(如果禁止,highlight_copy的功能將無效) -# copyright 複製的內容後面加上版權信息 +# copy settings +# copyright: Add the copyright information after copied content (複製的內容後面加上版權信息) copy: - enable: true # true 開啟 / false 禁止 + enable: true copyright: false -# social settings +# social settings (社交圖標設置) # formal: # icon: link || the description -# --------------- social: - fa fa-github: https://github.com/jerryc127 || Github - fa fa-envelope: mailto:xxxxxxx@gmail.com || Email - fa fa-rss: /atom.xml || RSS + fab fa-github: https://github.com/xxxxx || Github + fas fa-envelope: mailto:xxxxxx@gmail.com || Email + +# search (搜索) +# -------------------------------------- -#### search #### # Algolia search -# --------------- algolia_search: enable: false hits: @@ -66,51 +54,42 @@ algolia_search: hits_stats: '${hits} results found in ${time} ms' # Local search -# Please see doc for more details: https://docs.jerryc.me/config.html#本地搜索 -# --------------- local_search: enable: false labels: input_placeholder: Search for Posts hits_empty: "We didn't find any results for the search: ${query}" # if there are no result +# Math (數學) +# -------------------------------------- +# About the per_page +# if you set it to true, it will load mathjax/katex script in each page (true 表示每一頁都加載js) +# if you set it to false, it will load mathjax/katex script according to your setting (add the 'mathjax: true' in page's front-matter) +# (false 需要時加載,須在使用的 Markdown Front-matter 加上 mathjax: true) + # MathJax -# Please see doc for more details: https://docs.jerryc.me/config.html#mathjax -# --------------- mathjax: enable: false - # true 表示每一頁都加載mathjax.js - # false 需要時加載,須在使用的Markdown Front-matter 加上 mathjax: true per_page: false # KaTeX -# --------------- katex: enable: false - # true 表示每一頁都加載katex.js - # false 需要時加載,須在使用的Markdown Front-matter 加上 katex: true per_page: false hide_scrollbar: true -# mermaid -# see https://github.com/knsv/mermaid -# ------------------------------- -mermaid: - enable: false - # built-in themes: default/forest/dark/neutral - theme: default +# Image (圖片設置) +# -------------------------------------- -# Favicon -# --------------- +# Favicon(網站圖標) favicon: /img/favicon.png -# Post info settings -# --------------- +# Avatar (頭像) avatar: img: /img/avatar.png - effect: false # 頭像會一直轉圈 + effect: false -# the banner image of index +# the banner image of home page index_img: # if the banner of page not setting,it will show the top_img @@ -127,7 +106,7 @@ tag_img: # category page, look like https://xxxxxxxxx.com/categories/butterfly category_img: -# 如果你有使用hexo-douban,可配置這個 +# If you are using hexo-douban, you can configure it (如果你有使用 hexo-douban,可配置這個) # douban: # meta: false # movies_img: @@ -135,31 +114,30 @@ category_img: # games_img: cover: - # 是否顯示文章封面 + # display the cover or not (是否顯示文章封面) index_enable: true aside_enable: true archives_enable: true - # 封面顯示的位置 - # 三個值可配置 left , right , both + # the position of cover in home page (封面顯示的位置) + # left/right/both position: both - # 當沒有設置cover時,默認的封面顯示 - default_cover: + # When cover is not set, the default cover is displayed (當沒有設置cover時,默認的封面顯示) + default_cover: - https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg -# if the photo link cannot connect,it will show that -lodding_bg: - flink: /img/friend_404.gif #404後圖片 - post_page: /img/404.jpg #404後圖片 -# post: /img/loading.gif ##加載動畫 +# Replace Broken Images (替換無法顯示的圖片) +error_img: + flink: /img/friend_404.gif + post_page: /img/404.jpg # A simple 404 page error_404: enable: false subtitle: 'Page Not Found' - background: + background: https://i.loli.net/2020/05/19/aKOcLiyPl2JQdFD.png post_meta: - page: + page: # Home Page date_type: created # created or updated or both 主頁文章日期是創建日或者更新日或都顯示 categories: true # true or false 主頁是否顯示分類 tags: false # true or false 主頁是否顯示標籤 @@ -168,20 +146,29 @@ post_meta: categories: true # true or false 文章頁是否顯示分類 tags: true # true or false 文章頁是否顯示標籤 -# Please see doc for more details: https://docs.jerryc.me/config.html#字數統計 +# wordcount (字數統計) wordcount: enable: false post_wordcount: true min2read: true total_wordcount: true +# Display the article introduction on homepage +# 1: description +# 2: both (if the description exists, it will show description. or show the auto_excerpt) +# 3: auto_excerpt (default) +index_post_content: + method: 3 + length: 500 # if you set method to 2 or 3, the length need to config + +# Post +# -------------------------------------- + +# toc (目錄) toc: enable: true number: true - -# auto open the sidebar in 'post' -auto_open_sidebar: - enable: true + auto_open: true # auto open the sidebar post_copyright: enable: true @@ -189,21 +176,46 @@ post_copyright: license: CC BY-NC-SA 4.0 license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/ -# 自動節選 -auto_excerpt: - enable: true - length: 150 +# Sponsor/reward +reward: + enable: false + QR_code: + - img: /img/wechat.jpg + link: + text: wechat + - img: /img/alipay.jpg + link: + text: alipay -#### Share System #### -# ----------------------------------------- +# Related Articles +related_post: + enable: true + limit: 6 # Number of posts displayed + date_type: created # or created or updated 文章日期顯示創建日或者更新日 + +# figcaption (圖片描述文字) +photofigcaption: false + +# anchor +# when you scroll in post, the URL will update according to header id. +anchor: false + +# Share System (分享功能) +# -------------------------------------- + +# AddThis +# https://www.addthis.com/ addThis: enable: false pubid: +# Share.js +# https://github.com/overtrue/share.js sharejs: enable: true sites: facebook,twitter,wechat,weibo,qq +# AddToAny # https://www.addtoany.com/ addtoany: enable: false @@ -216,30 +228,38 @@ addtoany: - email - copy_link -#### Comments System #### -# ------------------------------------ +# Comments System +# -------------------------------------- + +# disqus +# https://disqus.com/ disqus: enable: false shortname: count: false # dispaly comment count in top_img -# Disqus.js版評論系統,應對大陸長城的折中方案,兼容原版:https://github.com/SukkaW/DisqusJS -# API 申請地址:https://disqus.com/api/applications/ -# 與 disqus 共用樣式 +# Alternative Disqus - Render comments with Disqus API +# DisqusJS評論系統,可以實現在網路審查地區載入 Disqus 評論列表,兼容原版 +# https://github.com/SukkaW/DisqusJS disqusjs: enable: false shortname: siteName: apikey: - api: https://disqus.skk.moe/disqus/ #一般情況下無需修改 API 地址 + api: + nocomment: # display when a blog post or an article has no comment attached admin: adminLabel: count: false # dispaly comment count in top_img -laibili: +# livere(來必力) +# https://www.livere.com/ +livere: enable: false uid: +# gitalk +# https://github.com/gitalk/gitalk gitalk: enable: false client_id: @@ -247,31 +267,30 @@ gitalk: repo: owner: admin: - language: zh-CN # en , zh-CN , zh-TW + language: en # en, zh-CN, zh-TW, es-ES, fr, ru perPage: 10 # Pagination size, with maximum 100. 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 count: false # dispaly comment count in top_img -# valine comment system. https://valine.js.org +# valine +# https://valine.js.org valine: enable: false # if you want use valine,please set this value is true appId: # leancloud application app id appKey: # leancloud application app key - notify: false # valine mail notify (true/false) Deprecated in v1.4.0+ - verify: false # valine verify code (true/false) Deprecated in v1.4.0+ pageSize: 10 # comment list page size avatar: monsterid # gravatar style https://valine.js.org/#/avatar lang: en # i18n: zh-CN/zh-TW/en/ja placeholder: Please leave your footprints # valine comment input placeholder(like: Please leave your footprints ) - guest_info: nick,mail,link #valine comment header info + guest_info: nick,mail,link #valine comment header info (nick/mail/link) recordIP: false # Record reviewer IP serverURLs: # This configuration is suitable for domestic custom domain name users, overseas version will be automatically detected (no need to manually fill in) + bg: # valine background emojiCDN: # emoji CDN enableQQ: false # enable the Nickname box to automatically get QQ Nickname and QQ Avatar - requiredFields: nick,mail # required fields nick/mail/link - bg: # valine background + requiredFields: nick,mail # required fields (nick/mail) count: false # dispaly comment count in top_img # utterances @@ -279,9 +298,9 @@ valine: utterances: enable: false repo: - # 可選 pathname/url/title/og:title + # Issue Mapping: pathname/url/title/og:title issue_term: pathname - # 可選 github-light/github-dark/github-dark-orange/icy-dark/dark-blue/photon-dark + # Theme: github-light/github-dark/github-dark-orange/icy-dark/dark-blue/photon-dark light_theme: github-light dark_theme: photon-dark @@ -296,14 +315,48 @@ facebook_comments: lang: en_US # Language en_US/zh_CN/zh_TW and so on count: false -##### Footer Settings #### -# ------------------------------------ +# Chat Services +# -------------------------------------- + +# Chat Button [recommend] +# It will create a button in the bottom right corner of website, and hide the origin button +chat_btn: false + +# The origin chat button is displayed when scrolling up, and the button is hidden when scrolling down +chat_hide_show: false + +# chatra +# https://chatra.io/ +chatra: + enable: false + id: + +# tidio +# https://www.tidio.com/ +tidio: + enable: false + public_key: + +# daovoice +# http://daovoice.io/ +daovoice: + enable: false + app_id: + +# gitter +# https://gitter.im/ +gitter: + enable: false + room: + +# Footer Settings +# -------------------------------------- + since: 2020 footer_custom_text: -footer_copyright: - enable: true +footer_copyright: true ICP: enable: false @@ -311,33 +364,37 @@ ICP: text: icon: /img/icp.png -#### Analysis #### -# --------------- +# Analysis +# -------------------------------------- + +# Baidu Analytics baidu_analytics: # Google Analytics google_analytics: -# Tencent_analytics ID +# Tencent Analytics ID tencent_analytics: -# Ads -# --------------- -# Google Adsense +# Advertisement +# -------------------------------------- + +# Google Adsense (谷歌廣告) google_adsense: enable: false js: https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js client: enable_page_level_ads: true -# 廣告插入位置 -# 適用於開啓手動廣告的配置 +# Insert ads manually (手動插入廣告) # ad: # index: # aside: # post: -#### 站長驗證 #### +# Verification (站長驗證) +# -------------------------------------- + # Google Webmaster tools verification setting # See: https://www.google.com/webmasters/ google_site_verification: @@ -354,37 +411,12 @@ baidu_site_verification: # see http://zhanzhang.so.com/ qihu_site_verification: -# 打賞按鈕 -reward: - enable: true - QR_code: - - itemlist: - img: /img/wechat.jpg - text: 微信 - - itemlist: - img: /img/alipay.jpg - text: 支付寶 - -# 推薦文章 -related_post: - enable: true - limit: 6 # 顯示推薦文章數目 - date_type: created # or created or updated 文章日期顯示創建日或者更新日 - -# figcaption -# 圖片描述文字 -photofigcaption: false - -# anchor -# when you scroll in post, the url will update according to header id. -anchor: false - -#### 美化/效果 #### -#-------------------------------- +# Beautify/Effect (美化/效果) +# -------------------------------------- # Theme color for customize # Notice: color value must in double quotes like "#000" or may cause error! -# --------------- + # theme_color: # enable: true # main: "#49B1F5" @@ -400,31 +432,36 @@ anchor: false # blockquote_padding_color: "#49b1f5" # blockquote_background_color: "#49b1f5" -# 主頁設置 -# 默認top_img全屏,site_info在中間 -# 使用默認, 都無需填寫(建議默認) -index_site_info_top: # 主頁標題距離頂部距離 例如 300px/300em/300rem/10% -index_top_img_height: # 主頁top_img高度 例如 300px/300em/300rem 不能使用百分比 +# The top_img settings of home page +# default: top img - full screen, site info - middle (默認top_img全屏,site_info在中間) +# The positon of site info, eg: 300px/300em/300rem/10% (主頁標題距離頂部距離) +index_site_info_top: +# The height of top_img, eg: 300px/300em/300rem (主頁top_img高度) +index_top_img_height: -# category和tag頁的UI設置 -# index 值代表 UI將與首頁的UI一樣 -# 默認跟archives頁面UI一樣 -category_ui: # 留空或index -tag_ui: # 留空或index +# The user interface setting of category and tag page (category和tag頁的UI設置) +# index - same as Homepage UI (index 值代表 UI將與首頁的UI一樣) +# default - same as archives UI 默認跟archives頁面UI一樣 +category_ui: # 留空或 index +tag_ui: # 留空或 index -# 設置網站背景 -# 可設置圖片 或者 顔色 -# 圖片格式 background: url(http://xxxxxx.com/xxx.jpg) -# 顔色 background: '#49B202' -# 留空 顯示白色 +# Website Background (設置網站背景) +# can set it to color or image (可設置圖片 或者 顔色) +# The formal of color: '#49B202' +# The formal of image: url(http://xxxxxx.com/xxx.jpg) +# White color will be shown as default background: -# footer是否顯示圖片背景(與top_img一致) +# Show the footer background image (same as top_img) footer_bg: false -# 背景特效 -# 避免卡頓,建議只開啟一個 -# canvas_ribbon 禁止彩帶背景 +# the position of bottom right button/default unit: px (右下角按鈕距離底部的距離/默認單位為px) +rightside-bottom: + +# Background effects (背景特效) +# -------------------------------------- + +# canvas_ribbon (靜止彩帶背景) # See: https://github.com/hustcc/ribbon.js canvas_ribbon: enable: false @@ -432,12 +469,12 @@ canvas_ribbon: alpha: 0.6 zIndex: -1 click_to_change: false - mobile: false # false 手機端不顯示 true 手機端顯示 + mobile: false -# 動態彩帶 +# Dynamic ribbon (動態彩帶) canvas_ribbon_piao: enable: false - mobile: false # false 手機端不顯示 true 手機端顯示 + mobile: false # canvas_nest # https://github.com/hustcc/canvas-nest.js @@ -447,25 +484,24 @@ canvas_nest: opacity: 0.7 # the opacity of line (0~1), default: 0.5. zIndex: -1 # z-index property of the background, default: -1. count: 99 # the number of lines, default: 99. - mobile: false # false 手機端不顯示 true 手機端顯示 + mobile: false -# 打字效果 +# Typewriter Effect (打字效果) +# https://github.com/disjukr/activate-power-mode activate_power_mode: enable: false - colorful: true # 冒光特效 - shake: true # 抖動特效 + colorful: true # open particle animation (冒光特效) + shake: true # open shake (抖動特效) -# 鼠標點擊效果 -# 避免卡頓,建議只開啟一個 -# 點擊煙火特效 +# Mouse click effects: fireworks (鼠標點擊效果: 煙火特效) fireworks: enable: false + zIndex: 9999 # -1 or 9999 -# 點擊出現愛心 -click_heart: - enable: false +# Mouse click effects: Heart symbol (鼠標點擊效果: 愛心) +click_heart: false -# 點擊出現文字,文字可自行修改 +# Mouse click effects: words (鼠標點擊效果: 文字) ClickShowText: enable: false text: @@ -474,43 +510,42 @@ ClickShowText: - YOU fontSize: 15px -# 網站顯示模式 -# light 默認模式 -# dark 黑暗模式(不建議) +# Default display mode (網站默認的顯示模式) +# light (default) / dark display_mode: light -# 美化頁面顯示 +# Beautify (美化頁面顯示) beautify: enable: false field: post # site/post title-prefix-icon: '\f0c1' title-prefix-icon-color: '#F47466' -# 全局字體 +# Global font settings +# Don't modify the following settings unless you know how they work (非必要不要修改) font: - enable: false - font-family: Lato, Helvetica Neue For Number, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, PingFang SC, Hiragino Sans GB, MicrMicrosoft YaHei", Helvetica Neue, Helvetica, Arial, sans-serif - code-font: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace, Helvetica Neue For Number + font-family: + code-font: -# 網站名字字體 +# Font settings for the site title and site subtitle # 左上角網站名字 主頁居中網站名字 blog_title_font: - font_link: https://fonts.googleapis.com/css?family=Titillium+Web #字體鏈接 - font-family: Titillium Web, PingFang SC, Hiragino Sans GB, "Microsoft YaHei", Helvetica Neue, Helvetica, Arial, sans-serif + font_link: https://fonts.googleapis.com/css?family=Titillium+Web&display=swap + font-family: Titillium Web, 'PingFang SC', 'Hiragino Sans GB', Microsoft YaHei', sans-serif -# 水平分隔綫 -hr: - enable: false - icon: '\f21c' #fontawesome上圖標的Unicode - icon-top: -20px +# The setting of divider icon (水平分隔線圖標設置) +hr_icon: + enable: true + icon: # the unicode value of Font Awesome icon + icon-top: -# 主頁subtitle +# the subtitle on homepage (主頁subtitle) subtitle: enable: true - # 打字效果 + # Typewriter Effect (打字效果) effect: true - # 循環或者只打字一次 - loop: false + # loop (循環打字) + loop: true # source調用第三方服務 # source: false 關閉調用 # source: 1 調用搏天api的隨機語錄(簡體) https://api.btstu.cn/ @@ -519,26 +554,23 @@ subtitle: # source: 4 調用今日詩詞(簡體) https://www.jinrishici.com/ # subtitle 會先顯示 source , 再顯示 sub 的內容 source: false - # (如果有英文逗號' , ',請使用轉義字符 ,) + # 如果有英文逗號' , ',請使用轉義字元 , + # 如果有英文雙引號' " ',請使用轉義字元 " + # 開頭不允許轉義字元,如需要,請把整個句子用雙引號包住 # 如果關閉打字效果,subtitle只會顯示sub的第一行文字 sub: - 今日事,今日畢 - Never put off till tomorrow what you can do today -# fontawesome圖標 -# 默認使用的是 fontawesome v4版本的圖標 -fontawesome_v5: - enable: false - -# 加載動畫 Loading Animation +# Loading Animation (加載動畫) preloader: false -#### 側邊欄 #### -#------------------------------------- -# 側邊欄顯示設置 +# aside (側邊欄) +# -------------------------------------- + aside: enable: true - mobile: true # 手機頁面( 顯示寬度 < 768px )是否顯示aside內容 + mobile: true # display on mobile position: right # left or right card_author: enable: true @@ -552,6 +584,7 @@ aside: card_categories: enable: true limit: 8 # if set 0 will show all + expand: none # none/true/false card_tags: enable: true limit: 40 # if set 0 will show all @@ -571,88 +604,66 @@ busuanzi: site_pv: true page_pv: true -# 網頁開通時間 -# 格式: 月/日/年 時間 -# 也可以寫成 年/月/日 時間 +# Time difference between publish date and now (網頁運行時間) +# Formal: Month/Day/Year Time or Year/Month/Day Time runtimeshow: - enable: true - start_date: 6/7/2018 00:00:00 + enable: false + publish_date: -#### 右下角按鈕 #### -#---------------------------------------------- -# 簡繁轉換 +# Bottom right button (右下角按鈕) +# -------------------------------------- + +# Conversion between Traditional and Simplified Chinese (簡繁轉換) translate: enable: true - # 默認按鈕顯示文字 + # The text of a button default: 繁 - #網站默認語言,1: 繁體中文, 2: 簡體中文 + # the language of website (1 - Traditional Chinese/ 2 - Simplified Chinese) defaultEncoding: 2 - #延遲時間,若不在前, 要設定延遲翻譯時間, 如100表示100ms,默認為0 + # Time delay translateDelay: 0 - #博客網址 - cookieDomain: 'https://xxx/' - #當文字是簡體時,按鈕顯示的文字 + # The text of the button when the language is Simplified Chinese msgToTraditionalChinese: '繁' - #當文字是繁體時,按鈕顯示的文字 + # The text of the button when the language is Traditional Chinese msgToSimplifiedChinese: '簡' -#閲讀模式 -readmode: - enable: true +# Read Mode (閲讀模式) +readmode: true # dark mode darkmode: enable: true - # dark mode和 light mode切換按鈕 + # Toggle Button to switch dark/light mode button: true - # 自動切換 dark mode和 light mode - # autoChangeMode: 1 跟隨系統而變化,不支持的瀏覽器/系統將按照時間晚上6點到早上6點之間切換為 dark mode - # autoChangeMode: 2 只按照時間晚上6點到早上6點之間切換為 dark mode - # autoChangeMode: false 取消自動切換 - autoChangeMode: 1 + # Switch dark/light mode automatically (自動切換 dark mode和 light mode) + # autoChangeMode: 1 Following System Settings, if the system doesn't support dark mode, it will switch dark mode between 6 pm to 6 am + # autoChangeMode: 2 Switch dark mode between 6 pm to 6 am + # autoChangeMode: false + autoChangeMode: false -#### other #### -#------------------------------------------------ +# Lightbox (圖片大圖查看模式) +# -------------------------------------- +# You can only choose one, or neither (只能選擇一個 或者 兩個都不選) -# 圖片大圖查看模式 -# 可選 medium_zoom 或者 fancybox -# 只選一個 或者 兩個都不選 -#-------------------------------------------- -# medium_zoom https://github.com/francoischalifour/medium-zoom -medium_zoom: +# medium-zoom +# https://github.com/francoischalifour/medium-zoom +medium_zoom: false + +# fancybox +# http://fancyapps.com/fancybox/3/ +fancybox: true + +# Tag Plugins settings (標籤外掛) +# -------------------------------------- + +# mermaid +# see https://github.com/knsv/mermaid +mermaid: enable: false - -# fancybox http://fancyapps.com/fancybox/3/ -fancybox: - enable: true - -# Snackbar 彈窗 -# https://github.com/polonel/SnackBar -# position 彈窗位置 -# 可選 top-left / top-center / top-right / bottom-left / bottom-center / bottom-right -snackbar: - enable: false - position: bottom-left - bg_light: '#49b1f5' #light mode時彈窗背景 - bg_dark: '#2d3035' #dark mode時彈窗背景 - -#百度推送 -baidu_push: - enable: false - -# https://instant.page/ -# prefetch預加載 -instantpage: - enable: true - -# https://github.com/vinta/pangu.js -# 中英文之間添加空格 -pangu: - enable: false - field: page # page/post + # built-in themes: default/forest/dark/neutral + theme: default # Note (Bootstrap Callout) -# https://muse.theme-next.org/docs/tag-plugins/note note: # Note tag style values: # - simple bs-callout old alert style. Default. @@ -666,37 +677,72 @@ note: # Offset also applied to label tag variables. This option can work with disabled note tag. light_bg_offset: 0 -# 圖片懶加載 -# https://github.com/ApoorvSaxena/lozad.js -lazyload: false +# other +# -------------------------------------- -# 避免重複網址分散seo -canonical: true +# Snackbar (Toast Notification 彈窗) +# https://github.com/polonel/SnackBar +# position 彈窗位置 +# 可選 top-left / top-center / top-right / bottom-left / bottom-center / bottom-right +snackbar: + enable: false + position: bottom-left + bg_light: '#49b1f5' # The background color of Toast Notification in light mode + bg_dark: '#121212' # The background color of Toast Notification in dark mode -# 禁止百度轉碼 +# Baidu Push (百度推送) +baidu_push: false + +# https://instant.page/ +# prefetch (預加載) +instantpage: true + +# https://github.com/vinta/pangu.js +# Insert a space between Chinese character and English character (中英文之間添加空格) +pangu: + enable: false + field: site # site/post + +# Lazyload (圖片懶加載) +# https://github.com/verlok/lazyload +lazyload: + enable: true + post: /img/loading.gif + +# PWA +# See https://github.com/JLHwung/hexo-offline +# --------------- +# pwa: +# enable: false +# manifest: /image/pwa/manifest.json +# theme_color: "#fff" +# apple_touch_icon: /image/pwa/apple-touch-icon.png +# favicon_32_32: /image/pwa/32.png +# favicon_16_16: /image/pwa/16.png +# mask_icon: /image/pwa/safari-pinned-tab.svg + +# Disable Baidu transformation on mobile devices (禁止百度轉碼) disable_baidu_transformation: true -# twitter分享自動帶上樣式 -# https://i.loli.net/2019/09/08/qm3RfvUCKbct1Wz.png -twitter_meta: true - -# facebook QQ 等 分享自動帶上樣式 -# https://i.loli.net/2019/09/08/2wbFJEKloisRvhj.png +# Open graph meta tags +# https://developers.facebook.com/docs/sharing/webmasters/ Open_Graph_meta: true -# 開啟hexo自帶的緩存,加快生成速度 +# Caches the contents in a fragment, speed up the generation (開啟hexo自帶的緩存,加快生成速度) fragment_cache: true -# inject -# 插入代码到头部之前 和 尾部之前 +# Inject +# Insert the code to head (before '' tag) and the bottom (before '' tag) +# 插入代码到头部 之前 和 底部 之前 inject: head: - # - + # - bottom: # - # CDN -# 非必要不要修改 +# Don't modify the following settings unless you know how they work +# 非必要請不要修改 CDN: # main main_css: /css/index.css @@ -709,8 +755,8 @@ CDN: gitalk: https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.js gitalk_css: https://cdn.jsdelivr.net/npm/gitalk/dist/gitalk.min.css valine: https://cdn.jsdelivr.net/npm/valine/dist/Valine.min.js - disqusjs: https://cdn.jsdelivr.net/npm/disqusjs@1.2/dist/disqus.js - disqusjs_css: https://cdn.jsdelivr.net/npm/disqusjs@1.2/dist/disqusjs.css + disqusjs: https://cdn.jsdelivr.net/npm/disqusjs@1/dist/disqus.js + disqusjs_css: https://cdn.jsdelivr.net/npm/disqusjs@1/dist/disqusjs.css utterances: https://utteranc.es/client.js # share @@ -739,10 +785,9 @@ CDN: canvas_ribbon_piao: /js/third-party/piao.js canvas_nest: /js/third-party/canvas-nest.js - lazyload: https://cdn.jsdelivr.net/npm/lozad/dist/lozad.min.js - instantpage: https://cdn.jsdelivr.net/npm/instant.page@3/instantpage.min.js + lazyload: https://cdn.jsdelivr.net/npm/vanilla-lazyload/dist/lazyload.iife.min.js + instantpage: https://cdn.jsdelivr.net/npm/instant.page/instantpage.min.js typed: https://cdn.jsdelivr.net/npm/typed.js - js_cookies: https://cdn.jsdelivr.net/npm/js-cookie/dist/js.cookie.min.js pangu: https://cdn.jsdelivr.net/npm/pangu/dist/browser/pangu.min.js # photo @@ -754,7 +799,7 @@ CDN: snackbar_css: https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css snackbar: https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js - # 鼠標點擊特效 + # effect anime: https://cdn.jsdelivr.net/npm/animejs@latest/anime.min.js activate_power_mode: /js/third-party/activate-power-mode.js fireworks: /js/third-party/fireworks.js @@ -762,8 +807,16 @@ CDN: ClickShowText: /js/third-party/ClickShowText.js # fontawesome - fontawesome_v4: https://cdn.jsdelivr.net/npm/font-awesome@latest/css/font-awesome.min.css - fontawesome_v5: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css + fontawesome: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css - # 簡繁轉換 + # Conversion between Traditional and Simplified Chinese translate: /js/tw_cn.js + + # justifiedGallery + justifiedGallery_js: https://cdn.jsdelivr.net/npm/justifiedGallery/dist/js/jquery.justifiedGallery.min.js + justifiedGallery_css: https://cdn.jsdelivr.net/npm/justifiedGallery/dist/css/justifiedGallery.min.css + + # aplayer + aplayer_css: https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css + aplayer_js: https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js + meting_js: https://cdn.jsdelivr.net/npm/meting@1.2.0/dist/Meting.min.js diff --git a/languages/default.yml b/languages/default.yml index a8ff80b..6c601af 100644 --- a/languages/default.yml +++ b/languages/default.yml @@ -24,7 +24,7 @@ post: created: Created updated: Updated wordcount: Word count - min2read: "Reading time: %s min" + min2read: 'Reading time: %s min' page_pv: Post View comments: Comments copyright: @@ -32,13 +32,13 @@ post: link: Link copyright_notice: Copyright Notice copyright_content: 'All articles in this blog are licensed under %s unless stating additionally.' - recommend: Recommend + recommend: Related Articles search: Search algolia_search: input_placeholder: Search for Posts hits_empty: "We didn't find any results for the search: ${query}." - hits_stats: "${hits} results found in ${time} ms" + hits_stats: '${hits} results found in ${time} ms' local_search: label: Local search @@ -78,13 +78,13 @@ bookmark: rightside: readmode_title: Read Mode - font_plus_title: Increase font size - font_minus_title: Decrease font size - translate_title: Traditional Chinese and Simplified Chinese Conversion - night_mode_title: Dark Mode - back_to_top: Back to top - toc: Table of Contents - scroll_to_comment: Scroll to comment + font_plus_title: Increase Font Size + font_minus_title: Decrease Font Size + translate_title: Switch Between Traditional Chinese And Simplified Chinese + night_mode_title: Switch Between Light And Dark Mode + back_to_top: Back To Top + toc: Table Of Contents + scroll_to_comment: Scroll To Comments setting: Setting runtime_unit: days @@ -104,5 +104,8 @@ Snackbar: day_to_night: Dark Mode Activated Manually night_to_day: Light Mode Activated Manually -error_title: Page not found loading: Loading... + +error404: + error_title: Page not found + back_button: Go back home diff --git a/languages/en.yml b/languages/en.yml index a8ff80b..6c601af 100644 --- a/languages/en.yml +++ b/languages/en.yml @@ -24,7 +24,7 @@ post: created: Created updated: Updated wordcount: Word count - min2read: "Reading time: %s min" + min2read: 'Reading time: %s min' page_pv: Post View comments: Comments copyright: @@ -32,13 +32,13 @@ post: link: Link copyright_notice: Copyright Notice copyright_content: 'All articles in this blog are licensed under %s unless stating additionally.' - recommend: Recommend + recommend: Related Articles search: Search algolia_search: input_placeholder: Search for Posts hits_empty: "We didn't find any results for the search: ${query}." - hits_stats: "${hits} results found in ${time} ms" + hits_stats: '${hits} results found in ${time} ms' local_search: label: Local search @@ -78,13 +78,13 @@ bookmark: rightside: readmode_title: Read Mode - font_plus_title: Increase font size - font_minus_title: Decrease font size - translate_title: Traditional Chinese and Simplified Chinese Conversion - night_mode_title: Dark Mode - back_to_top: Back to top - toc: Table of Contents - scroll_to_comment: Scroll to comment + font_plus_title: Increase Font Size + font_minus_title: Decrease Font Size + translate_title: Switch Between Traditional Chinese And Simplified Chinese + night_mode_title: Switch Between Light And Dark Mode + back_to_top: Back To Top + toc: Table Of Contents + scroll_to_comment: Scroll To Comments setting: Setting runtime_unit: days @@ -104,5 +104,8 @@ Snackbar: day_to_night: Dark Mode Activated Manually night_to_day: Light Mode Activated Manually -error_title: Page not found loading: Loading... + +error404: + error_title: Page not found + back_button: Go back home diff --git a/languages/zh-CN.yml b/languages/zh-CN.yml index 21ce127..d66990e 100644 --- a/languages/zh-CN.yml +++ b/languages/zh-CN.yml @@ -24,7 +24,7 @@ post: created: 发表于 updated: 更新于 wordcount: 字数总计 - min2read: "阅读时长: %s 分钟" + min2read: '阅读时长: %s 分钟' page_pv: 阅读量 comments: 评论数 copyright: @@ -38,14 +38,14 @@ post: search: 搜索 algolia_search: input_placeholder: 搜索文章 - hits_empty: "找不到您查询的内容:${query}" - hits_stats: "找到 ${hits} 条结果,用时 ${time} 毫秒" + hits_empty: '找不到您查询的内容:${query}' + hits_stats: '找到 ${hits} 条结果,用时 ${time} 毫秒' local_search: label: 本地搜索 input_placeholder: 搜索文章 - hits_empty: "找不到您查询的内容:${query}" - powered: "提供支持" + hits_empty: '找不到您查询的内容:${query}' + powered: '提供支持' by: 由 pagination: @@ -83,7 +83,7 @@ rightside: font_plus_title: 放大字体 font_minus_title: 缩小字体 translate_title: 简繁转换 - night_mode_title: 夜间模式 + night_mode_title: 浅色和深色模式转换 back_to_top: 回到顶部 toc: 目录 scroll_to_comment: 直达评论 @@ -107,4 +107,8 @@ Snackbar: night_to_day: 你已切换为浅色模式 error_title: 页面没有找到 -loading: 加载中... \ No newline at end of file +loading: 加载中... + +error404: + error_title: 页面没有找到 + back_button: 回到主页 diff --git a/languages/zh-TW.yml b/languages/zh-TW.yml index 95cb5d3..0e73531 100644 --- a/languages/zh-TW.yml +++ b/languages/zh-TW.yml @@ -24,7 +24,7 @@ post: created: 發表於 updated: 更新於 wordcount: 字數總計 - min2read: "閱讀時長: %s 分鐘" + min2read: '閱讀時長: %s 分鐘' page_pv: 閱讀量 comments: 評論數 copyright: @@ -38,14 +38,14 @@ post: search: 搜尋 algolia_search: input_placeholder: 搜尋文章 - hits_empty: "找不到您查詢的內容:${query}" - hits_stats: "找到 ${hits} 條結果,用時 ${time} 毫秒" + hits_empty: '找不到您查詢的內容:${query}' + hits_stats: '找到 ${hits} 條結果,用時 ${time} 毫秒' local_search: label: 本地搜尋 input_placeholder: 搜尋文章 - hits_empty: "找不到您查詢的內容:${query}" - powered: "提供支援" + hits_empty: '找不到您查詢的內容:${query}' + powered: '提供支援' by: 由 pagination: @@ -83,7 +83,7 @@ rightside: font_plus_title: 放大字型 font_minus_title: 縮小字型 translate_title: 簡繁轉換 - night_mode_title: 夜間模式 + night_mode_title: 淺色和深色模式轉換 back_to_top: 回到頂部 toc: 目錄 scroll_to_comment: 直達評論 @@ -106,6 +106,8 @@ Snackbar: day_to_night: 你已切換為深色模式 night_to_day: 你已切換為淺色模式 -error_title: 頁面沒有找到 loading: 載入中... +error404: + error_title: 頁面沒有找到 + back_button: 回到主頁 diff --git a/layout/404.pug b/layout/404.pug index a088390..2de0d72 100644 --- a/layout/404.pug +++ b/layout/404.pug @@ -11,14 +11,20 @@ html(lang=config.language data-theme=theme.display_mode) if theme.fireworks && theme.fireworks.enable canvas.fireworks + + if theme.background + - var is_photo = theme.background.startsWith('url') ? 'photo':'color' + #web_bg(data-type=is_photo) - include includes/mobile-sidebar/index.pug - - nav#nav.error-no-found(style=bg_img) - include includes/header/header.pug - #error_info.is-center - h1#error_title= '404' - #error_subtitle= theme.error_404.subtitle - include includes/rightside.pug + #error-wrap + .error-content + .error-img(style=bg_img) + .error-info + h1.error_title= '404' + .error_subtitle= theme.error_404.subtitle + a.button--animated(href=url_for(config.root)) + i.fas.fa-rocket + = _p('error404.back_button') + !=partial('includes/search/index', {}, {cache:theme.fragment_cache}) include includes/additional-js.pug diff --git a/layout/flink.pug b/layout/flink.pug index a646413..178f683 100644 --- a/layout/flink.pug +++ b/layout/flink.pug @@ -2,18 +2,20 @@ .flink#article-container if site.data.link each i in site.data.link - h2= i.class_name - .post-cards - .md-links - each item in i.link_list - .md-links-item - a(href=url_for(item.link) title=item.name target="_blank") - if theme.lazyload - img(data-src=url_for(item.avatar) onerror=`this.onerror=null;this.src='` + url_for(theme.lodding_bg.flink) + `'` alt=item.name ) - else - img(src=url_for(item.avatar) onerror=`this.onerror=null;this.src='` + url_for(theme.lodding_bg.flink) + `'` alt=item.name ) - .md-links-title= item.name - .md-links-des= item.descr + if i.class_name + h2!= i.class_name + if i.class_desc + .flink-desc!=i.class_desc + .flink-list + each item in i.link_list + .flink-list-item + a(href=url_for(item.link) title=item.name target="_blank") + if theme.lazyload.enable + img(data-src=url_for(item.avatar) onerror=`this.onerror=null;this.src='` + url_for(theme.error_img.flink) + `'` alt=item.name ) + else + img(src=url_for(item.avatar) onerror=`this.onerror=null;this.src='` + url_for(theme.error_img.flink) + `'` alt=item.name ) + .flink-item-name= item.name + .flink-item-desc= item.descr != page.content if page.comments !== false include includes/comments/index.pug diff --git a/layout/includes/additional-js.pug b/layout/includes/additional-js.pug index 266af58..effa64e 100644 --- a/layout/includes/additional-js.pug +++ b/layout/includes/additional-js.pug @@ -5,10 +5,10 @@ script(src=url_for(theme.CDN.main)) if theme.translate && theme.translate.enable script(src=url_for(theme.CDN.translate)) -if (theme.medium_zoom && theme.medium_zoom.enable) +if theme.medium_zoom script(src=url_for(theme.CDN.medium_zoom)) -if (theme.fancybox && theme.fancybox.enable) +if theme.fancybox script(src=url_for(theme.CDN.fancybox)) include ./math/index.pug @@ -39,14 +39,14 @@ if theme.activate_power_mode.enable if theme.busuanzi.site_uv || theme.busuanzi.site_pv || theme.busuanzi.page_pv script(async src=url_for(theme.CDN.busuanzi)) -if theme.instantpage.enable - script(src=url_for(theme.CDN.instantpage) type="module") +if theme.instantpage + script(src=url_for(theme.CDN.instantpage) type="module" defer) -if theme.lazyload - script(src=url_for(theme.CDN.lazyload)) +if theme.lazyload.enable + script(src=url_for(theme.CDN.lazyload) async) //- 鼠標特效 -if theme.click_heart && theme.click_heart.enable +if theme.click_heart script(src=url_for(theme.CDN.click_heart)) if theme.ClickShowText && theme.ClickShowText.enable @@ -71,4 +71,6 @@ if is_home() !=fragment_cache('injectBottom', function(){return injectHtml(theme.inject.bottom)}) if theme.preloader - !=partial('includes/loading/loading-js', {}, {cache:theme.fragment_cache}) \ No newline at end of file + !=partial('includes/loading/loading-js', {}, {cache:theme.fragment_cache}) + +!=partial('includes/chat/index', {}, {cache:theme.fragment_cache}) diff --git a/layout/includes/chat/chatra.pug b/layout/includes/chat/chatra.pug new file mode 100644 index 0000000..0566392 --- /dev/null +++ b/layout/includes/chat/chatra.pug @@ -0,0 +1,30 @@ +//- https://chatra.io/help/api/ +script. + (function(d, w, c) { + w.ChatraID = '#{theme.chatra.id}'; + var s = d.createElement('script'); + w[c] = w[c] || function() { + (w[c].q = w[c].q || []).push(arguments); + }; + s.async = true; + s.src = 'https://call.chatra.io/chatra.js'; + if (d.head) d.head.appendChild(s); + })(document, window, 'Chatra'); + + if (!{theme.chat_btn}) { + var chatBtn = document.getElementById("chat_btn") + chatBtn.addEventListener("click", function(){ + Chatra('openChat') + }); + } else { + if (!{theme.chat_hide_show}) { + function chatBtnHide () { + Chatra('hide') + } + function chatBtnShow () { + Chatra('show') + } + } + } + + diff --git a/layout/includes/chat/daovoice.pug b/layout/includes/chat/daovoice.pug new file mode 100644 index 0000000..dd0e047 --- /dev/null +++ b/layout/includes/chat/daovoice.pug @@ -0,0 +1,37 @@ +//- https://guide.daocloud.io/daovoice/javascript-api-5869833.html +script. + (function(i,s,o,g,r,a,m){i["DaoVoiceObject"]=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;a.charset="utf-8";m.parentNode.insertBefore(a,m)})(window,document,"script",('https:' == document.location.protocol ? 'https:' : 'http:') + "//widget.daovoice.io/widget/!{theme.daovoice.app_id}.js","daovoice") + +script. + var isChatBtn = !{theme.chat_btn} + daovoice('init', { + app_id: '!{theme.daovoice.app_id}',},{ + launcher: { + disableLauncherIcon: isChatBtn // 悬浮 ICON 是否显示 + }, + }); + daovoice('update'); + + if (isChatBtn) { + var chatBtn = document.getElementById("chat_btn") + chatBtn.addEventListener("click", function(){ + daovoice('show') + }); + } else { + if (!{theme.chat_hide_show}) { + function chatBtnHide () { + daovoice('update', {},{ + launcher: { + disableLauncherIcon: true // 悬浮 ICON 是否显示 + }, + }); + } + function chatBtnShow () { + daovoice('update', {},{ + launcher: { + disableLauncherIcon: false // 悬浮 ICON 是否显示 + }, + }); + } + } + } \ No newline at end of file diff --git a/layout/includes/chat/gitter.pug b/layout/includes/chat/gitter.pug new file mode 100644 index 0000000..51cdc0a --- /dev/null +++ b/layout/includes/chat/gitter.pug @@ -0,0 +1,28 @@ +//- https://sidecar.gitter.im/ +script. + var isChatBtn = !{theme.chat_btn} + + if (isChatBtn) { + ((window.gitter = {}).chat = {}).options = { + room: '#{theme.gitter.room}', + activationElement: '#chat_btn' + }; + } else { + ((window.gitter = {}).chat = {}).options = { + room: '#{theme.gitter.room}', + }; + + if (!{theme.chat_hide_show}) { + var gitterBtn = document.getElementsByClassName('gitter-open-chat-button') + + function chatBtnHide () { + gitterBtn[0].style.display= 'none' + } + + function chatBtnShow () { + gitterBtn[0].style.display= 'block' + } + } + } + +script(src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer) \ No newline at end of file diff --git a/layout/includes/chat/index.pug b/layout/includes/chat/index.pug new file mode 100644 index 0000000..48b8585 --- /dev/null +++ b/layout/includes/chat/index.pug @@ -0,0 +1,8 @@ +if theme.chatra && theme.chatra.enable + include ./chatra.pug +else if theme.tidio && theme.tidio.enable + include ./tidio.pug +else if theme.daovoice && theme.daovoice.enable + include ./daovoice.pug +else if theme.gitter && theme.gitter.enable + include ./gitter.pug \ No newline at end of file diff --git a/layout/includes/chat/tidio.pug b/layout/includes/chat/tidio.pug new file mode 100644 index 0000000..90270a7 --- /dev/null +++ b/layout/includes/chat/tidio.pug @@ -0,0 +1,39 @@ +script(src=`//code.tidio.co/${theme.tidio.public_key}.js` async) + +if theme.chat_btn + script. + (function() { + function onTidioChatApiReady() { + window.tidioChatApi.hide(); + window.tidioChatApi.on("close", function() { + window.tidioChatApi.hide(); + }); + } + if (window.tidioChatApi) { + window.tidioChatApi.on("ready", onTidioChatApiReady); + } else { + document.addEventListener("tidioChat-ready", onTidioChatApiReady); + } + + document.getElementById("chat_btn").addEventListener("click", function(){ + window.tidioChatApi.show(); + window.tidioChatApi.open(); + }); + })(); +else if theme.chat_hide_show + script. + function chatBtnHide () { + if (window.tidioChatApi) { + window.tidioChatApi.hide(); + //- document.getElementById('tidio-chat').style.display= 'none' + } + } + + function chatBtnShow () { + if (window.tidioChatApi) { + window.tidioChatApi.show(); + //- document.getElementById('tidio-chat').style.display= 'block' + } + } + + diff --git a/layout/includes/comments/disqusjs.pug b/layout/includes/comments/disqusjs.pug index d1ddd2f..7d670d2 100644 --- a/layout/includes/comments/disqusjs.pug +++ b/layout/includes/comments/disqusjs.pug @@ -3,12 +3,13 @@ script(src=url_for(theme.CDN.disqusjs)) script. var dsqjs = new DisqusJS({ shortname: '!{theme.disqusjs.shortname}', - siteName: "!{theme.disqusjs.siteName}", + siteName: '!{theme.disqusjs.siteName}', identifier: '!{ page.path }', url: '!{ page.permalink }', title: '!{ page.title }', api: '!{theme.disqusjs.api}', apikey: '!{theme.disqusjs.apikey}', + nocomment: '!{theme.disqusjs.nocomment}', admin: '!{theme.disqusjs.admin}', adminLabel: '!{theme.disqusjs.adminLabel}' }); diff --git a/layout/includes/comments/index.pug b/layout/includes/comments/index.pug index 61c1042..a8d1a92 100644 --- a/layout/includes/comments/index.pug +++ b/layout/includes/comments/index.pug @@ -1,6 +1,6 @@ - var d = theme.disqus && theme.disqus.enable - var dj = theme.disqusjs && theme.disqusjs.enable -- var l = theme.laibili && theme.laibili.enable +- var l = theme.livere && theme.livere.enable - var gt = theme.gitalk && theme.gitalk.enable - var v = theme.valine && theme.valine.enable - var u = theme.utterances && theme.utterances.enable @@ -11,14 +11,14 @@ if isComment hr #post-comment .comment_headling - i.fa.fa-comments.fa-fw(aria-hidden="true") + i.fas.fa-comments.fa-fw span= ' ' + _p('comment') if d include ./disqus.pug else if dj include ./disqusjs.pug else if l - include ./laibili.pug + include ./livere.pug else if gt include ./gitalk.pug else if v diff --git a/layout/includes/comments/laibili.pug b/layout/includes/comments/livere.pug similarity index 85% rename from layout/includes/comments/laibili.pug rename to layout/includes/comments/livere.pug index cd0fc75..f530901 100644 --- a/layout/includes/comments/laibili.pug +++ b/layout/includes/comments/livere.pug @@ -1,4 +1,4 @@ -#lv-container(data-id="city" data-uid=theme.laibili.uid) +#lv-container(data-id="city" data-uid=theme.livere.uid) script. (function(d, s) { var j, e = d.getElementsByTagName(s)[0]; diff --git a/layout/includes/comments/valine.pug b/layout/includes/comments/valine.pug index ac70878..d5c7493 100644 --- a/layout/includes/comments/valine.pug +++ b/layout/includes/comments/valine.pug @@ -15,14 +15,12 @@ script. } var guestInfo = requestSetting(['nick','mail','link'],'#{ theme.valine.guest_info }') - var requiredFields = requestSetting(['nick','mail','link'],'#{ theme.valine.requiredFields }') + var requiredFields = requestSetting(['nick','mail'],'#{ theme.valine.requiredFields }') window.valine = new Valine({ el:'#vcomment', appId: '#{theme.valine.appId}', appKey: '#{theme.valine.appKey}', - notify: #{theme.valine.notify}, - verify: #{theme.valine.verify}, placeholder: '#{theme.valine.placeholder}', avatar: '#{theme.valine.avatar}', meta: guestInfo, diff --git a/layout/includes/footer.pug b/layout/includes/footer.pug index 30b238f..c1e710d 100644 --- a/layout/includes/footer.pug +++ b/layout/includes/footer.pug @@ -5,7 +5,7 @@ .copyright!= `©${theme.since} - ${nowYear} By ${config.author}` else .copyright!= `©${nowYear} By ${config.author}` - if theme.footer_copyright.enable + if theme.footer_copyright .framework-info span= _p('footer.driven') + ' ' a(href='https://hexo.io') diff --git a/layout/includes/head.pug b/layout/includes/head.pug index 92a66d5..bb40a6c 100644 --- a/layout/includes/head.pug +++ b/layout/includes/head.pug @@ -4,7 +4,7 @@ - else if (is_category()) pageTitle = _p('page.category') + ': ' + page.category - else if (is_month()) pageTitle += ': ' + page.month + '/' + page.year - else if (is_year()) pageTitle += ': ' + page.year -- else if (is_current('/404.html', [strict])) pageTitle = _p('error_title') +- else if (is_current('/404.html', [strict])) pageTitle = _p('error404.error_title') - else pageTitle = page.title || config.title || '' - var isSubtitle = config.subtitle ? ' - ' + config.subtitle : '' @@ -29,6 +29,7 @@ meta(name="author" content=pageAuthor) meta(name="copyright" content=pageCopyright) meta(name ="format-detection" content="telephone=no") !=favicon_tag(theme.favicon || config.favicon) +link(rel="canonical" href=urlNoIndex()) if theme.disable_baidu_transformation meta(http-equiv="Cache-Control" content="no-transform") @@ -39,7 +40,7 @@ if theme.douban meta(name="referrer" content="no-referrer") //- 預解析 -!=partial('includes/head/dns_prefetch', {}, {cache:theme.fragment_cache}) +!=partial('includes/head/preconnect', {}, {cache:theme.fragment_cache}) //- 網站驗證 !=partial('includes/head/site_verification', {}, {cache:theme.fragment_cache}) @@ -51,28 +52,19 @@ include ./head/Open_Graph.pug if (theme.pwa && theme.pwa.enable) !=partial('includes/head/pwa', {}, {cache:theme.fragment_cache}) -script(src=url_for(theme.CDN.js_cookies)) - if theme.darkmode.enable !=partial('includes/head/darkmode', {}, {cache:theme.fragment_cache}) //- main css link(rel='stylesheet', href=url_for(theme.CDN.main_css)) +link(rel='stylesheet', href=url_for(theme.CDN.fontawesome)) -if theme.fontawesome_v5 && theme.fontawesome_v5.enable - link(rel='stylesheet', href=url_for(theme.CDN.fontawesome_v5)) -else - link(rel='stylesheet', href=url_for(theme.CDN.fontawesome_v4)) - -if (theme.fancybox && theme.fancybox.enable) +if theme.fancybox link(rel='stylesheet', href=url_for(theme.CDN.fancybox_css)) if (theme.snackbar && theme.snackbar.enable) link(rel='stylesheet', href=url_for(theme.CDN.snackbar_css)) -if theme.canonical - link(rel="canonical" href=urlNoIndex()) - if is_post() if(page.prev) link(rel="prev" title=page.prev.title href=url_for(page.prev.permalink) ) @@ -92,8 +84,9 @@ include ./head/comment.pug //- analytics !=partial('includes/head/analytics', {}, {cache:theme.fragment_cache}) +//- font if theme.blog_title_font.font_link - link(rel='stylesheet', href=url_for(theme.blog_title_font.font_link)) + link(rel='stylesheet' href=url_for(theme.blog_title_font.font_link)) //- global config !=partial('includes/head/config', {}, {cache:theme.fragment_cache}) @@ -101,4 +94,7 @@ if theme.blog_title_font.font_link include ./head/config_site.pug include ./head/noscript.pug -!=fragment_cache('injectHead', function(){return injectHtml(theme.inject.head)}) \ No newline at end of file +!=fragment_cache('injectHead', function(){return injectHtml(theme.inject.head)}) + +if page.aplayer + include ./head/aplayer.pug \ No newline at end of file diff --git a/layout/includes/head/Open_Graph.pug b/layout/includes/head/Open_Graph.pug index 5e8da5f..78d04c8 100644 --- a/layout/includes/head/Open_Graph.pug +++ b/layout/includes/head/Open_Graph.pug @@ -1,13 +1,5 @@ - var contentType = is_post() ? 'article' : 'website' -//- twitter meta -if theme.twitter_meta - meta(name="twitter:card" content="summary") - meta(name="twitter:title" content=pageTitle) - meta(name="twitter:description" content!=pageDescription) - meta(name="twitter:image" content=full_url_for(page.cover || theme.avatar.img)) - -//- Open_Graph if theme.Open_Graph_meta meta(property="og:type" content=contentType) meta(property="og:title" content=pageTitle) @@ -17,3 +9,4 @@ if theme.Open_Graph_meta meta(property="og:image" content=full_url_for(page.cover || theme.avatar.img)) meta(property="article:published_time" content=date_xml(page.date)) meta(property="article:modified_time" content=date_xml(page.updated)) + meta(name="twitter:card" content="summary") diff --git a/layout/includes/head/aplayer.pug b/layout/includes/head/aplayer.pug new file mode 100644 index 0000000..c7aa010 --- /dev/null +++ b/layout/includes/head/aplayer.pug @@ -0,0 +1,3 @@ +link(rel='stylesheet' href=url_for(theme.CDN.aplayer_css)) +script(src=url_for(theme.CDN.aplayer_js)) +script(src=url_for(theme.CDN.meting_js)) \ No newline at end of file diff --git a/layout/includes/head/config.pug b/layout/includes/head/config.pug index b4c0c6f..3ffe6d2 100644 --- a/layout/includes/head/config.pug +++ b/layout/includes/head/config.pug @@ -31,7 +31,6 @@ translate = JSON.stringify({ defaultEncoding: theme.translate.defaultEncoding, translateDelay: theme.translate.translateDelay, - cookieDomain: theme.translate.cookieDomain, msgToTraditionalChinese: theme.translate.msgToTraditionalChinese, msgToSimplifiedChinese: theme.translate.msgToSimplifiedChinese }) @@ -60,7 +59,7 @@ var Snackbar = 'undefined'; if (theme.snackbar && theme.snackbar.enable) { - Snackbar = JSON.stringify({ + Snackbar = JSON.stringify({ bookmark: { message_prev: _p("Snackbar.bookmark.message_prev"), message_next: _p("Snackbar.bookmark.message_next") @@ -94,17 +93,18 @@ script. runtime: !{theme.runtimeshow.enable}, copyright: !{copyright}, ClickShowText: !{ClickShowText}, - medium_zoom: !{theme.medium_zoom.enable}, - fancybox: !{theme.fancybox.enable}, + medium_zoom: !{theme.medium_zoom}, + fancybox: !{theme.fancybox}, Snackbar: !{Snackbar}, - baiduPush: !{theme.baidu_push && theme.baidu_push.enable}, + justifiedGallery: { + js: '!{theme.CDN.justifiedGallery_js}', + css: '!{theme.CDN.justifiedGallery_css}' + }, + baiduPush: !{theme.baidu_push}, highlightCopy: !{theme.highlight_copy}, highlightLang: !{theme.highlight_lang}, - highlightShrink: '!{theme.highlight_shrink}', - isFontAwesomeV5: !{theme.fontawesome_v5 && theme.fontawesome_v5.enable}, isPhotoFigcaption: !{theme.photofigcaption}, - islazyload: !{theme.lazyload}, - isanchor: !{theme.anchor} - + islazyload: !{theme.lazyload.enable}, + isanchor: !{theme.anchor} } diff --git a/layout/includes/head/config_site.pug b/layout/includes/head/config_site.pug index 1d7ae99..01417ab 100644 --- a/layout/includes/head/config_site.pug +++ b/layout/includes/head/config_site.pug @@ -1,7 +1,17 @@ +- + let isHighlightShrink + if (theme.highlight_shrink == 'none') isHighlightShrink = 'undefined' + else if (page.highlight_shrink !== undefined) isHighlightShrink = page.highlight_shrink + else isHighlightShrink = theme.highlight_shrink + + const pageToc = page.toc !== undefined ? page.toc : theme.toc.enable + const showToc = is_post() && pageToc && (toc(page.content) !== '' || page.encrypt == true ) +- + script. var GLOBAL_CONFIG_SITE = { isPost: !{is_post()}, isHome: !{is_home()}, - isSidebar: !{is_post() && page.toc !== false && theme.toc.enable && (toc(page.content) !== '' || page.encrypt == true )} + isHighlightShrink: !{isHighlightShrink}, + isSidebar: !{showToc} } - diff --git a/layout/includes/head/darkmode.pug b/layout/includes/head/darkmode.pug index bd5961f..cc1a27b 100644 --- a/layout/includes/head/darkmode.pug +++ b/layout/includes/head/darkmode.pug @@ -1,47 +1,56 @@ script. + var activateDarkMode = function () { + document.documentElement.setAttribute('data-theme', 'dark') + if (document.querySelector('meta[name="theme-color"]') !== null) { + document.querySelector('meta[name="theme-color"]').setAttribute('content', '#000') + } + } + var activateLightMode = function () { + document.documentElement.setAttribute('data-theme', 'light') + if (document.querySelector('meta[name="theme-color"]') !== null) { + document.querySelector('meta[name="theme-color"]').setAttribute('content', '#fff') + } + } + + var getCookies = function (name) { + const value = `; ${document.cookie}` + const parts = value.split(`; ${name}=`) + if (parts.length === 2) return parts.pop().split(';').shift() + } + var autoChangeMode = '#{theme.darkmode.autoChangeMode}' - var t = Cookies.get("theme") - if (autoChangeMode == '1'){ - var isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches - var isLightMode = window.matchMedia("(prefers-color-scheme: light)").matches - var isNotSpecified = window.matchMedia("(prefers-color-scheme: no-preference)").matches + var t = getCookies('theme') + if (autoChangeMode === '1') { + var isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches + var isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches + var isNotSpecified = window.matchMedia('(prefers-color-scheme: no-preference)').matches var hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified - if (t === undefined){ + if (t === undefined) { if (isLightMode) activateLightMode() else if (isDarkMode) activateDarkMode() - else if (isNotSpecified || hasNoSupport){ + else if (isNotSpecified || hasNoSupport) { console.log('You specified no preference for a color scheme or your browser does not support it. I Schedule dark mode during night time.') var now = new Date() var hour = now.getHours() - var isNight = hour < 6 || hour >= 18 + var isNight = hour <= 6 || hour >= 18 isNight ? activateDarkMode() : activateLightMode() - } - } else if (t == 'light') activateLightMode() + } + window.matchMedia('(prefers-color-scheme: dark)').addListener(function (e) { + if (Cookies.get('theme') === undefined) { + e.matches ? activateDarkMode() : activateLightMode() + } + }) + } else if (t === 'light') activateLightMode() else activateDarkMode() - - } else if (autoChangeMode == '2'){ - now = new Date(); - hour = now.getHours(); - isNight = hour < 6 || hour >= 18 - if(t === undefined) isNight? activateDarkMode() : activateLightMode() + } else if (autoChangeMode === '2') { + now = new Date() + hour = now.getHours() + isNight = hour <= 6 || hour >= 18 + if (t === undefined) isNight ? activateDarkMode() : activateLightMode() else if (t === 'light') activateLightMode() - else activateDarkMode() + else activateDarkMode() } else { - if ( t == 'dark' ) activateDarkMode() - else if ( t == 'light') activateLightMode() + if (t === 'dark') activateDarkMode() + else if (t === 'light') activateLightMode() } - - function activateDarkMode(){ - document.documentElement.setAttribute('data-theme', 'dark') - if (document.querySelector('meta[name="theme-color"]') !== null){ - document.querySelector('meta[name="theme-color"]').setAttribute('content','#000') - } - } - function activateLightMode(){ - document.documentElement.setAttribute('data-theme', 'light') - if (document.querySelector('meta[name="theme-color"]') !== null){ - document.querySelector('meta[name="theme-color"]').setAttribute('content','#fff') - } - } - diff --git a/layout/includes/head/dns_prefetch.pug b/layout/includes/head/dns_prefetch.pug deleted file mode 100644 index e5faf44..0000000 --- a/layout/includes/head/dns_prefetch.pug +++ /dev/null @@ -1,22 +0,0 @@ -link(rel="preconnect" href="//cdn.jsdelivr.net") -link(rel="dns-prefetch" href="//cdn.jsdelivr.net") - -if theme.google_analytics - link(rel="preconnect" href="https://www.google-analytics.com" crossorigin) - link(rel="dns-prefetch" href="https://www.google-analytics.com") - -if theme.baidu_analytics - link(rel="preconnect" href="https://hm.baidu.com") - link(rel="dns-prefetch" href="https://hm.baidu.com") - -if theme.tencent_analytics - link(rel="preconnect" href="http://ta.qq.com") - link(rel="dns-prefetch" href="http://ta.qq.com") - -if theme.blog_title_font.font_link - link(rel="preconnect" href="https://fonts.googleapis.com" crossorigin) - link(rel="dns-prefetch" href="https://fonts.googleapis.com") - -if theme.busuanzi.site_uv || theme.busuanzi.site_pv || theme.busuanzi.page_pv - link(rel="preconnect" href="//busuanzi.ibruce.info") - link(rel="dns-prefetch" href="//busuanzi.ibruce.info") diff --git a/layout/includes/head/noscript.pug b/layout/includes/head/noscript.pug index de8a2d8..761826c 100644 --- a/layout/includes/head/noscript.pug +++ b/layout/includes/head/noscript.pug @@ -1,6 +1,6 @@ noscript.