From 4ff4b31db331fae5454b1d3d27f35d6bf34b8e9d Mon Sep 17 00:00:00 2001 From: XPoet Date: Fri, 11 Nov 2022 14:11:01 +0800 Subject: [PATCH] feat(footer): add the configuration of deployment provider at the footer --- _config.yml | 27 ++++++++------- languages/en.yml | 10 +++++- languages/zh-CN.yml | 10 +++++- languages/zh-TW.yml | 10 +++++- layout/_partial/footer.ejs | 23 +++++++++---- source/css/common/basic.styl | 1 + source/css/layout/_partial/footer.styl | 32 +++++++++++------- source/css/layout/page.styl | 8 ++--- source/images/deploy-provider/aliyun.png | Bin 0 -> 3279 bytes source/images/deploy-provider/gitee.png | Bin 0 -> 1799 bytes source/images/deploy-provider/github.png | Bin 0 -> 1786 bytes source/images/deploy-provider/netlify.png | Bin 0 -> 3751 bytes .../images/deploy-provider/tencent_cloud.png | Bin 0 -> 2422 bytes source/images/deploy-provider/upyun.png | Bin 0 -> 2771 bytes source/images/deploy-provider/vercel.png | Bin 0 -> 1645 bytes source/images/upyun.png | Bin 4592 -> 0 bytes 16 files changed, 84 insertions(+), 37 deletions(-) create mode 100644 source/images/deploy-provider/aliyun.png create mode 100644 source/images/deploy-provider/gitee.png create mode 100644 source/images/deploy-provider/github.png create mode 100644 source/images/deploy-provider/netlify.png create mode 100644 source/images/deploy-provider/tencent_cloud.png create mode 100644 source/images/deploy-provider/upyun.png create mode 100644 source/images/deploy-provider/vercel.png delete mode 100644 source/images/upyun.png diff --git a/_config.yml b/_config.yml index d68133e..0e78de7 100644 --- a/_config.yml +++ b/_config.yml @@ -42,16 +42,16 @@ style: # Mouse hover style settings hover: - # Shadow effect when the mouse hover. + # Shadow effect when the mouse hover shadow: false # Option values: true | false - # Scale effect when the mouse hovers. + # Scale effect when the mouse hovers scale: false # Option values: true | false # First screen style settings first_screen: enable: false # Option values: true | false - # Set transparent background for header. + # Set transparent background for header header_transparent: false # Option values: true | false # First screen background image (You can use local image or image external link) @@ -114,11 +114,11 @@ social_contact: # Home page article block display settings # --------------------------------------------------------------------------------------- home_article: - # Show category in home page article block. + # Show category in home page article block category: enable: false # Option values: true | false limit: 3 # Max number of categories shown in home page article block - # Show tags in home page article block. + # Show tags in home page article block tag: enable: false # Option values: true | false limit: 5 # Max number of tags shown in home page article block @@ -131,7 +131,7 @@ post: author_label: enable: true # Option values: true | false - # If true, show Lv1, Lv2, Lv3... + # If true, show Lv1, Lv2, Lv3 ... # If false, show custom_label_list auto: true # Option values: true | false @@ -168,7 +168,7 @@ code_block: toc: enable: false # Option values: true | false - # Automatically add list number to toc. + # Automatically add list number to toc number: false # Option values: true | false # If true, all level of TOC in a post will be displayed, rather than the activated part of it. @@ -218,7 +218,7 @@ comment: # https://gitalk.github.io gitalk: github_id: # GitHub repo owner - github_admins: # GitHub Admins (in Array type), optional. + github_admins: # GitHub Admins (in Array type), optional repository: # Repository name to store issues client_id: # GitHub Application Client ID client_secret: # GitHub Application Client Secret @@ -228,7 +228,7 @@ comment: # https://twikoo.js.org twikoo: env_id: # Tencent Cloud environment id - region: # Environment region. If select Guangzhou, fill in "ap-guangzhou". + region: # Environment region. If select Guangzhou, fill in "ap-guangzhou" version: 1.6.7 # Twikoo version, default use v1.6.7 # Waline @@ -270,6 +270,9 @@ pjax: # Footer settings # --------------------------------------------------------------------------------------- footer: - since: 2020 # the starting year of your website. Can be null - icp: # ICP record number of your website. Can be null - upyun: # If your site is deployed on upyun, your can fill the upyun url. Can be null + since: 2020 # The starting year of your website, Can be null + icp: # ICP record number of your website, Can be null + site_deploy: + enable: false # Option values: true | false + provider: github # Option values: github | vercel | netlify | gitee | aliyun | tencent_cloud | upyun + url: # Your deployment provider url, Can be null diff --git a/languages/en.yml b/languages/en.yml index de4af19..7225176 100644 --- a/languages/en.yml +++ b/languages/en.yml @@ -10,7 +10,6 @@ page: Page %d recent_posts: Recent Posts share: Share powered_by: "Powered by %s" -footer_upyun: "CDN acceleration and Cloud storage services are provided by %s" theme: Theme rss_feed: RSS Feed category: Category @@ -66,3 +65,12 @@ ago: week: "%s weeks ago" month: "%s months ago" year: "%s years ago" +footer_deploy: "This site is provided with deployment services by %s" +deploy_provider: + github: GitHub Pages + vercel: Vercel + netlify: Netlify + gitee: Gitee Pages + aliyun: Alibaba Cloud + tencent_cloud: Tencent Cloud + upyun: UPYUN diff --git a/languages/zh-CN.yml b/languages/zh-CN.yml index 2c8d536..c41adac 100644 --- a/languages/zh-CN.yml +++ b/languages/zh-CN.yml @@ -10,7 +10,6 @@ page: 第 %d 页 recent_posts: 最新文章 share: 分享 powered_by: "由 %s 驱动" -footer_upyun: "本站由 %s 提供 CDN 加速和云存储服务" theme: 主题 rss_feed: RSS Feed category: 分类 @@ -66,3 +65,12 @@ ago: week: "%s 周前" month: "%s 个月前" year: "%s 年前" +footer_deploy: "本站由 %s 提供部署服务" +deploy_provider: + github: GitHub Pages + vercel: Vercel + netlify: Netlify + gitee: Gitee Pages + aliyun: 阿里云 + tencent_cloud: 腾讯云 + upyun: 又拍云 diff --git a/languages/zh-TW.yml b/languages/zh-TW.yml index 47b351d..e066d3b 100644 --- a/languages/zh-TW.yml +++ b/languages/zh-TW.yml @@ -10,7 +10,6 @@ page: 第 %d 頁 recent_posts: 之前的文章 share: 分享 powered_by: "%s 框架" -footer_upyun: "本站由 %s 提供 CDN 加速和雲存儲服務" theme: 主題 rss_feed: RSS 訂閱 category: 分類 @@ -66,3 +65,12 @@ ago: week: "%s 周前" month: "%s 個月前" year: "%s 年前" +footer_deploy: "本站由 %s 提供部署服務" +deploy_provider: + github: GitHub Pages + vercel: Vercel + netlify: Netlify + gitee: Gitee Pages + aliyun: 阿裏雲 + tencent_cloud: 騰訊雲 + upyun: 又拍雲 diff --git a/layout/_partial/footer.ejs b/layout/_partial/footer.ejs index 1361d78..5d0f3a5 100644 --- a/layout/_partial/footer.ejs +++ b/layout/_partial/footer.ejs @@ -1,5 +1,9 @@ <% -const { since: f_since, icp: f_icp, upyun: f_upyun } = theme.footer +const { + since: f_since, + icp: f_icp, + site_deploy: f_site_deploy +} = theme.footer const { author: bi_author } = theme.base_info const { author: hexo_author } = config const { site_uv: bsz_site_uv, site_pv: bsz_site_pv, enable: bsz_enable } = theme.website_count.busuanzi_count @@ -41,11 +45,18 @@ const { site_uv: bsz_site_uv, site_pv: bsz_site_pv, enable: bsz_enable } = theme <% } %> - <% if (f_upyun) { %> -
- - <%- __('footer_upyun', '') %> - + <% if (f_site_deploy?.enable === true && f_site_deploy?.provider !== '') { %> + <% } %>
diff --git a/source/css/common/basic.styl b/source/css/common/basic.styl index 0727adf..882b949 100644 --- a/source/css/common/basic.styl +++ b/source/css/common/basic.styl @@ -261,6 +261,7 @@ button { padding 0.2rem 0.6rem color var(--text-color-6) font-size 0.8rem + letter-spacing 0.8px white-space nowrap background var(--text-color-1) border-radius 0.3rem diff --git a/source/css/layout/_partial/footer.styl b/source/css/layout/_partial/footer.styl index 8c2680c..55eaac9 100644 --- a/source/css/layout/_partial/footer.styl +++ b/source/css/layout/_partial/footer.styl @@ -2,7 +2,6 @@ color var(--text-color-4) font-size 1rem - a { color var(--text-color-4) @@ -12,25 +11,34 @@ } .info-container { + display flex + flex-direction column + align-items center + justify-content center padding-bottom 1rem - text-align center - } - .info-item { - margin 0.3rem 0 - color var(--text-color-4) + .info-item { + margin 0.2rem 0 + color var(--text-color-4) - &.ypyun-info a { - display flex - align-items center - justify-content center + &.deploy-info { + display flex - img { - margin 0 0.3rem + a + .tooltip { + display flex + align-items center + } + + img { + height 1.2rem + margin 0 0.4rem + } } } } + .icon-animate { animation icon-animate 1.2s ease-in-out infinite } diff --git a/source/css/layout/page.styl b/source/css/layout/page.styl index b89d619..9911857 100644 --- a/source/css/layout/page.styl +++ b/source/css/layout/page.styl @@ -13,14 +13,14 @@ &.is-home { .transparent-1 { background var(--header-transparent-background-1) - backdrop-filter: blur(4px); - -webkit-backdrop-filter: blur(4px); + -webkit-backdrop-filter blur(4px) + backdrop-filter blur(4px) } .transparent-2 { background var(--header-transparent-background-2) - backdrop-filter: blur(5px); - -webkit-backdrop-filter: blur(5px); + -webkit-backdrop-filter blur(5px) + backdrop-filter blur(5px) } } diff --git a/source/images/deploy-provider/aliyun.png b/source/images/deploy-provider/aliyun.png new file mode 100644 index 0000000000000000000000000000000000000000..c4e9c7ff54f539ab8577200cd02929dc47007850 GIT binary patch literal 3279 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 N002ovPDHLkV1f(5u%G|{ literal 0 HcmV?d00001 diff --git a/source/images/deploy-provider/gitee.png b/source/images/deploy-provider/gitee.png new file mode 100644 index 0000000000000000000000000000000000000000..4701bbf7925df86dcf3df31c73f2e1332fdf03e5 GIT binary patch literal 1799 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 R95Da@002ovPDHLkV1l&;X666@ literal 0 HcmV?d00001 diff --git a/source/images/deploy-provider/tencent_cloud.png b/source/images/deploy-provider/tencent_cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..9abe109b7bf89525046421cddd7197a74106a977 GIT binary patch literal 2422 zcmaKtc{J4h7stmsmhqjj73MpPHG?NhiJ5rD*h!@gsINUe^WC7TT5gGp{NO$kD-8Muy9DHH=(yLAUIa zQ*#gqG}6qFVD0s3{N@>hJ~c7&XA8wk?vH(Zc#_qLYBL5$t{V^lf{3Mc{kMUwEw*Zm zSyr`KpD*}zfuL`N4o$BQrP=a$oc%VoZdPRb;I45u{*(fvNjB=|z2|8-=e4H&KH2%+ zPB|8B!_m^}1Xzg5Eq!5vfVf0J3m$A)u^yRdDNR8dg`3pjQKTSS#oc)g(GCW{ z#1&9AHQxQtnLqMv(oQc+W8}SX-@OSIWTgk(Cj6V%Ug~R=MiSF=YeXu%?VUf&4vkKq z#K2eZ3DywI9?dD(&lc= zB#(ro82gCm&Ap&XzFXQ+PpVuMeTM$j4;ifHIiTB(R4`J*WW|D81r8;hwkT~$u>py^ zs#Rc7Py)KX7IGt3i}?eqD04B_R`5=u&8oJGOYq&kb@MtCL-ELAl$(qaIhFUr(;6?j z4zH*XpaV!Eh3d%a@eeDNv0gGKF-7Q*>ilYSX7x{$4+*J&-AG5(Tiuw>I3H7Q4^_LY ziW)4Xa<0Z}y|s8Y71*=8mRqZdqCL+Tzku?&dILdEym+w>2dX)AeW$52YJ;F-^$el0 z;X?;j=K{Kjm=4&)~}Eii+yJqR|FjdN{ApComs z_1k@M#G7|xJ#a+b!wvurcD?d3e}+FE&&02XURYY2p8itX%C6B+{%AcQ)ZJA{kVy`F zg=%YeI(00J^p5cS&C?r7r#&WVn@6?dofnVv092gmS%)4rV8=#>fW!bnIG>Z z%|1Hu!+nX?6+`mvVhG4u*1;w&_UeOPA{T=WrL=%V18M0e?L*3J4VM`DTMnY-g3nvf zl4~fv_ub;VsGC5(dcHXD$tgiRC^jX-MxEvj4BXSEf}r7C)w#*NU_|}Za(*C3z}npc zgX@ur%Y4>2P;$_&DHm+eUGM$;xgu&fIrSiKI$m28ruyCAV&-9fc1BJNT>LS0$^R zl2D0U#-Z%^UW^?wp;p6`;o0g1*Jifx3Kz~LQ*=>ceP<3JMLL`ve-7&>{eR#0ffT6dT0i5>zU1P+vbNn9Dk=hj9#fb zXT+d8Rx|_VwKi)6hn9A>yg;a6Rbh|8-`=yX4H-(N`?xk5Px3t4PrgJs+oXrgskMiy zhZhdTL4b#-2u|myeJbV%Pr;DEbeX8#zI#ZHd`{0>Zl92| zw+=#7g(ZWGmFrKRDPYSgQe`;j)^ReFfVJv+G{Ej0iZw=gO(4$j57XU< z6U|rHcmJho8ilw|7CL2Tok=&B!SsC88?j=Z?k&5OK2ohBpiO5+4;}BsF1))^fr=4QF=9ry;hjH*`n8I{@YiPNGhd2T zhlTV}HNm1Cwxv1;_&==(o%m%n8E6nYbaaXP z2}n%^>fTC~Apl3A%U`YONpV_!jxAGqJswd(G%lV=;-IDci^Wo@zzXSW>}EjACuJpU z4n&$T;HI6i+O5Nh^-3Vx>F5c%Pmo_%^xdb#oVkBnXar(>fE#Rc=O2W)nxrV2`ZH(Y z2r1+>S?T{`t?==#r|zaL^|bi}Y! HpGf%^)a^jF literal 0 HcmV?d00001 diff --git a/source/images/deploy-provider/upyun.png b/source/images/deploy-provider/upyun.png new file mode 100644 index 0000000000000000000000000000000000000000..98feb4dbda3adbdda43b8a71201f8c75e42af28d GIT binary patch literal 2771 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 literal 0 HcmV?d00001 diff --git a/source/images/deploy-provider/vercel.png b/source/images/deploy-provider/vercel.png new file mode 100644 index 0000000000000000000000000000000000000000..fc66aff51ce8e3e8146e7cbe6388e12be33363cb GIT binary patch literal 1645 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 aJ^2YR5HOu)V3Z610000J!-