From 4e6294ab786c00dead38e3528e3ab1d05cd12f5b Mon Sep 17 00:00:00 2001 From: liuyib <1656081615@qq.com> Date: Thu, 8 Aug 2019 20:42:17 +0800 Subject: [PATCH] feat: Add pwa manifest --- _config.yml | 16 +++- docs/zh-CN/advanced/theme-config.md | 9 ++- docs/zh-CN/advanced/third-part.md | 95 +++++++++++++++++++++++ layout/_common/head.pug | 27 +++++-- source/images/favicon-16x16-stun.png | Bin 442 -> 0 bytes source/images/favicon-32x32-stun.png | Bin 990 -> 0 bytes source/images/icons/apple-touch-icon.png | Bin 0 -> 3778 bytes source/images/icons/favicon-144x144.png | Bin 0 -> 3073 bytes source/images/icons/favicon-16x16.png | Bin 0 -> 460 bytes source/images/icons/favicon-32x32.png | Bin 0 -> 922 bytes source/images/icons/logo-stun.svg | 32 ++++++++ 11 files changed, 164 insertions(+), 15 deletions(-) delete mode 100644 source/images/favicon-16x16-stun.png delete mode 100644 source/images/favicon-32x32-stun.png create mode 100644 source/images/icons/apple-touch-icon.png create mode 100644 source/images/icons/favicon-144x144.png create mode 100644 source/images/icons/favicon-16x16.png create mode 100644 source/images/icons/favicon-32x32.png create mode 100644 source/images/icons/logo-stun.svg diff --git a/_config.yml b/_config.yml index 43af8a1..12b9edf 100644 --- a/_config.yml +++ b/_config.yml @@ -29,10 +29,18 @@ menu_settings: # --------------------------------------------------------------- favicon: - small: /images/favicon-16x16-stun.png - medium: /images/favicon-32x32-stun.png - # apple_touch_icon: /images/apple-touch-icon-stun.png - # safari_pinned_tab: /images/logo-stun.svg + small: /images/icons/favicon-16x16.png + medium: /images/icons/favicon-32x32.png + # apple_touch_icon: /images/icons/apple-touch-icon.png + # safari_pinned_tab: /images/icons/logo-stun.svg + # msapplication: /images/icons/favicon-144x144.png + +# PWA +# See: https://github.com/JLHwung/hexo-offline/ +pwa: + enable: false + manifest: /manifest.json + theme_color: "#54bcff" header: # Header height (Support for all types of CSS size units). diff --git a/docs/zh-CN/advanced/theme-config.md b/docs/zh-CN/advanced/theme-config.md index 95f7e49..ce1a251 100644 --- a/docs/zh-CN/advanced/theme-config.md +++ b/docs/zh-CN/advanced/theme-config.md @@ -287,10 +287,11 @@ gallery_waterfall: ```yaml favicon: - small: /imgs/favicon-16x16-stun.png - medium: /imgs/favicon-32x32-stun.png - # apple_touch_icon: /imgs/apple-touch-icon-stun.png - # safari_pinned_tab: /imgs/logo-stun.svg + small: /images/icons/favicon-16x16.png + medium: /images/icons/favicon-32x32.png + # apple_touch_icon: /images/icons/apple-touch-icon.png + # safari_pinned_tab: /images/icons/logo-stun.svg + # msapplication: /images/icons/favicon-144x144.png ``` ## 网站顶部栏信息 diff --git a/docs/zh-CN/advanced/third-part.md b/docs/zh-CN/advanced/third-part.md index aa03d57..e6d5936 100644 --- a/docs/zh-CN/advanced/third-part.md +++ b/docs/zh-CN/advanced/third-part.md @@ -1,5 +1,100 @@ # 第三方支持 +## PWA + +想要使用 PWA 特性,需要安装插件 [hexo-offline](https://github.com/JLHwung/hexo-offline),使用步骤如下: + +1、安装插件 + +```bash +$ npm install hexo-offline --save +``` + +2、配置插件 + +找到 Hexo 根目录下的 _config.yml 文件,添加以下字段: + +``` yaml +offline: + # 缓存的最大文件大小,以字节为单位 + maximumFileSizeToCacheInBytes: 5242880 + # 静态文件,如果你的站点使用了例如 webp 格式的文件,请将文件类型添加进去 + staticFileGlobs: + - public/**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff,woff2} + stripPrefix: public + verbose: true + # 缓存 CDN 资源(如果你不需要,则不用配置该项) + runtimeCaching: + - urlPattern: /* + handler: cacheFirst + options: + origin: # 替换成你 CDN 的域名 +``` + +有关插件的详尽信息,请查看插件的[文档](https://github.com/JLHwung/hexo-offline)。 + +3、修改主题配置 + +修改主题配置文件: + +```yaml +pwa: + # 是否启用 + enable: true + manifest: /manifest.json + theme_color: "#54bcff" +``` + +4、创建 `manifest.json` 文件 + +你可以通过 [Web App Manifest](https://app-manifest.firebaseapp.com/) 网站来快速生成 `manifest.json` 文件。`manifest.json` 文件的内容如下: + +```json +{ + "name": "xxx", // 应用全称 + "short_name": "xxx", // 应用简称 + "theme_color": "#ffffff", // 匹配浏览器的地址栏颜色 + "background_color": "#ffffff", // 加载应用时的背景色 + "display": "standalone", // 首选显示模式。其他选项有:fullscreen, minimal-ui, browser + "scope": "/", + "start_url": "/", + "icons": [ // 该数组指定图标参数,用来适配不同设备(格式为 png,至少包含一个 192px*192px 的图标) + { + "src": "images/icons/favicon-48x48.png", // 图标文件的路径,需在 source/ 目录下自行创建 + "sizes": "48x48", + "type": "image/png" + }, + { + "src": "images/icons/favicon-72x72.png", + "sizes": "72x72", + "type": "image/png" + }, + { + "src": "images/icons/favicon-96x96.png", + "sizes": "96x96", + "type": "image/png" + }, + { + "src": "images/icons/favicon-144x144.png", + "sizes": "144x144", + "type": "image/png" + }, + { + "src": "images/icons/favicon-192x192.png", + "sizes": "192x192", + "type": "image/png" + } + ], + "splash_pages": null // 配置自定义启动动画。 +} +``` + +5、重启 hexo 服务器 + +```bash +$ hexo clean && hexo s +``` + ## 添加 Emoji 支持 如果想要使用 Emoji,你可以直接在[这里](http://emojihomepage.com/)复制粘贴使用。 diff --git a/layout/_common/head.pug b/layout/_common/head.pug index 143775c..804caf9 100644 --- a/layout/_common/head.pug +++ b/layout/_common/head.pug @@ -26,20 +26,33 @@ meta(name="copyright" content=pageCopyright) title= pageTitle meta(name="format-detection" content="telephone=no") -meta(http-equiv="x-dns-prefetch-control" content="on") -link(rel="dns-prefetch" href="https://cdn.jsdelivr.net") +meta(name="apple-mobile-web-app-capable" content="yes") +meta(name="apple-mobile-web-app-status-bar-style" content="black") -if theme.favicon.apple_touch_icon - link(rel="apple-touch-icon" sizes="180x180" href=`${url_for(theme.favicon.apple_touch_icon)}?v=${stun_env("version")}`) +if theme.pwa && theme.pwa.enable + if theme.pwa.theme_color + meta(name="theme-color" content=theme.pwa.theme_color) + + if theme.pwa.manifest + link(rel="manifest" href=`${url_for(theme.pwa.manifest)}?v=${stun_env("version")}`) + +if theme.favicon.small + link(rel="icon" type="image/png" sizes="16x16" href=`${url_for(theme.favicon.small)}?v=${stun_env("version")}`) if theme.favicon.medium link(rel="icon" type="image/png" sizes="32x32" href=`${url_for(theme.favicon.medium)}?v=${stun_env("version")}`) -if theme.favicon.small - link(rel="icon" type="image/png" sizes="16x16" href=`${url_for(theme.favicon.small)}?v=${stun_env("version")}`) +if theme.favicon.apple_touch_icon + link(rel="apple-touch-icon" sizes="180x180" href=`${url_for(theme.favicon.apple_touch_icon)}?v=${stun_env("version")}`) if theme.favicon.safari_pinned_tab - link(rel="mask-icon" href=`${url_for(theme.favicon.safari_pinned_tab)}?v=${stun_env("version")}` color="#333") + link(rel="mask-icon" href=`${url_for(theme.favicon.safari_pinned_tab)}?v=${stun_env("version")}` color="#54bcff") + +if theme.favicon.msapplication + meta(name="msapplication-TileImage" content=`${url_for(theme.favicon.msapplication)}`) + meta(name="msapplication-TileColor" content="#000000") + +link(rel="dns-prefetch" href="https://cdn.jsdelivr.net") - var fontawesome_css = 'https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css' - if (theme.cdn.fontawesome_css) fontawesome_css = theme.cdn.fontawesome_css diff --git a/source/images/favicon-16x16-stun.png b/source/images/favicon-16x16-stun.png deleted file mode 100644 index b1967b5160ab3ffbaf2daa8732d2b84bdaf80f32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf`~aU2S0MfL>C@wrjy-<*RCLYa zo5B8%wlV`nzyK)r^wBo<2M<6Dpw!bxk027rBv3C<3s5gy5GVpt3^oubb#eVgpzPh& z=EuhZfl^m@T?NVl5s-ai%5fn1`22aZt?Pgcpq8=?;c#<+jJrlpvVl%CEeY}qW|%p% za^}pLQ@Tr1!h&2TdfRE_XT-=)oicgSgx=n|+LDrNAjnEdiir*m4h;0SG1t{r=Dl9c z8Ur+7s;7%%h{WaGURR;R1_CVQEz=B_85n>5e_zaVWB$8Uwk7guD`&II+z-pvwhez) z|DPdMYv~@QR{qH?+#Bz0tm9F+CY*58&!#72iQ%?`4APZP5*b5eECU&4GzR$>Ue3G2 z{^n+_+T}CtGJRd`;$?D-`AWC9XWi_{+LSTl%Laj@8+(?D2lz=QU*oO(<1^vr;%O3n dvv&Ppv^vW^capE|N}vN7JYD@<);T3K0RX=5+_L}x diff --git a/source/images/favicon-32x32-stun.png b/source/images/favicon-32x32-stun.png deleted file mode 100644 index 7092911163afb3809fb66b40035c76d4b531aa6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 990 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0V2ls&32_B-pArE?*DQXtl^H_b z4EBHeh|dU(}}nKP$!v^2yu9U1swl}xS*^APMfEOE7sn8b(`zrK7vFLaV0$pt zPa!E$TANX%z)8^4V4<|ZvR&UNC0Q4~-#h)k{k_}5la4>`ud|zz7kBqXNj3L-&95oH zw=?Bm*qviqq5EFx|7^zab|(GSqMp;vy`_H`+kZ83AHJcUm^q zdCu7%%E_kP+M{yxvxv(Xo<1INkGx4fZ)zU)i7j7tYI~kHi}(p4!&|%KcRoE@RC%t) zqsfQ6r9*D+%$d4j%_}Z>bs4xub6o!Q=E;+5ukP`0iJeilEn(B)GpCAjr}E_lOxW80 zQl{5b?bvbkcV?Of44EM-%=FI}Ee|jZ)aaGc^jTW>!qG79Rkhu2v8C5stur*3Yp-T4 zyyq=;?Zu`L1;t&r3bJ!jo)oN$-myeyL32VBZ}F#@G9twy7QWLrMdf{2T%Z%B$H_PM zX4slanYf_XZ7ESU><_md*Sj6baZjM4XvxFBHq7;#J=aL6weAF_A_h-aKbLh*2~7ZD C7z>#I diff --git a/source/images/icons/apple-touch-icon.png b/source/images/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..adf5f631368368371c17386147d06a43bcbee02b GIT binary patch literal 3778 zcmd5jUYz=>Y%$@bM$vCzrbM|Co;I zQqr>#E+u8ODab&jznXg>P+b;c&Q>qr>RQ z(R0$la?kQObnNW>oPa$#+{ABBZOymNE49>b{+3^BV?QC2&ri=TF0qeEC-{@Iy}iwe z4b%XtYqv zpzn5L^>)E0bZXK*GV(9j{S1%aUEIYWF@u=x(+zaf`s%mUWy17S+U(@X{)h{_=ip~M zVdEQNqXxH>icb2lLp)x>_?W(tk+v2Sxf&U^@-}dH5{&K=jWjJ|z1%`jz!PJ00GSg1>&ot*`rqw^ za@Vg$1@oWm4^YFi?u$6v=;_o}<@@j+V-Q0QRz`|_5CNc*lG8F6yz?CJB0w>FFp9CZyeDl zl`Z9DE|M>M<bg}6Y^IoFL;S78Fq{d zGCC*ibw&JvnI+qWr1%31b_19wASwluac%ua7=+3zRtbFqQ&|5q)t7K9#ZHsBUD!K| z<2}sl$f(|_)(Axjs+h8WR2-t9u0sxpQnl&k=59F~(y7vLC-KajHP*sM*}(I;526R6Zu&Z91tuC;nRSNFU~PC0>tcT5bqnFx)|B`fBxHKhN~t#= z=vDs^Dmc1eq9x`>lc?Nis*ZR=7oA;c`&sfi^Wtd+r_2Oo8pPf7fl!>dEC9FOBSdU`LX)U<2{3Rvtfk`Tjc~L=6atqys^)!<0 z#!K7SEzI95`14%gW+@*I)M{~D%a4c9m&=hiN>$h-C~h!laB8qp{8sTlKhF+@K@{9> z1E=&-MUSIo1_Y+YryTDhnY6QutJ=`@Yl7fdj(Mvc3ou1tYh=g4^VdlS{3q0=hIg(r zl``o>Z*Li-(kK^FI40Dq@*C$K1!-|I<$~gS;BCGOy_i8mIP7_k=N;C#k%><-+q;mb zBu+WCTRjTr5&1aD83PUfaf$ zvE&ZDa@5t`=5o5eywGc$H$wJL87)GarR19qQs}HiUOr*m9&xLTd22U_-?>7Z{jr!c zL->@2?L=nIJgH;XUuyh4!g9DS{L6z5z;p`YeeVf25049yPe#*xuL$K3-OB7_>cr&{ z>E@!u*bH-nykWOLlG(iyuCg?U-KK(1|NvQf3F(_d(jApUU!wye8eX|#XC8{c<()tV_IJ(51sx)(($7>4?_4XsKB3Q%5m>{ER z;JCp3j7}ovXr2w&9^)jSMHu(pf5*@O(7fH>+3amAjkW}*(n0d>KN=~I2 zC}by9C}LY!=Ec@GK4Fr8;RH0Avo-+fOTLFZFA7Us?*U$0Vb2pfJDW5Ei-rF2K)07O-+VkOZV_K0 zQpUnjY!+&u!&slDd)DBV_2G!erl2(?TkmqEOjjViqwb1 ze6@Sj96b+To66qS+$zE@ZVXRq@zU;pw*=p;;aITo8{=ZKZSe~;*GC}T?JBA)_4;bQ zv^1molZ9%PQ@Esgm#NKOZ1Ou7noBCqEbQesnMj5&@xxX!4EH*Z+bc1AXWAArZc5>g zy%w9-?uK%$a^Xi=n(x49r0Xro+U#Apc-0<~A(WEmS3%BNeTsCXl>Mfpk0Z!DE7I#A zs(jpjHi++&^a1c!Wi)M$cYcFv9X2^ZDh7)RsE{A!G2-thLrQN0=VQuem1ai={bQBC zG?~xP(cd%Lk`wbpOZgF<8D9PTEG^5Qz#j@$ue)z;?PoNYPu*h2!$hYx!0D@gw;ipT z8dm3EBx1X4ricSgZa+)}E!Lflo*F00 z-hVQv2;mChw(YzM&sYA_U&53l?djLZYV#2!_(sAZQbgVOruT32js#vRsW07cJwD;2AhqV&(9GsW4><^+j3UE0V-fE83#8Ze3I3=}_Ns z7tNqFy(L6%pC@auKV)6-1{I-c8~uzZV!z)KgqSc8a4n9NK`Esw6ok7xw4V`3X=!a% zAGH}AVSBicpUW))dfVfo!%Y)=b%qKe<`VRhGTg{jX{DH^hK{RX0v3&m^aT04!Q10x z1PnL%@Cr9NYE%*y#=hvL*X#x3b9Po(_4*ldXeYeaM>n|~b*O5ryt~0{ye4u98ug~V z)}r2`;p-ju8T2KitfnI)B1^RB%%&x#(Js)^M{EKvU_qefRLQBe{2YfpTFi4MY0q8vOmdSm>fg-&1f%gD>wvai zg^#8FDhO#06YLv!aE$`q?6BjMFH3VD7~ao>+e=4mf`Lk|NG5NhFD$)m7oo zlsbI3Pq+PRX{cri?yjrc1F4IK6U$5t!ebWXagqZ^igd38`8;J|Ipx}~2wnW$ek=BS`p)bw#1E03d5&I0%s_GNI<<*|N1@LXpx-yuS1jJr{cY!Ws zU^H}eZ)AD&3@#pov*%Q`rS-3w8W+|X0r=}ssP>%s-5PGGIlb;Uer z63HRVz+^`qu%*J+bJ2)(KXaYxTx8~|Z;Vnk9CF3fG3s9R=60-MsKY>ANHse*t*P9i zem$$ly>jV>5u%1k##QI3n`=%blOmxDsm^mze0QPz$E#$A5*XU5UnkkY$ugw3y|)y+ zR00U#A02`|1H^kQ<KiiW-V=zcJeJZQ5{d$BszuN8bWT3p7lk7gZ)yEy_yF#JZ4 zLr-J_v}=C$^ynmOnt%S!-+GtH!Uy?vm#@zrKc4DENkXPWxIX*k8vuB$XRKSR;}HEH DS)dUO literal 0 HcmV?d00001 diff --git a/source/images/icons/favicon-144x144.png b/source/images/icons/favicon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..d30cfa7d39739fe4691203288e7822dcaa71694f GIT binary patch literal 3073 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 KHK{T7O!zO_l)S_M literal 0 HcmV?d00001 diff --git a/source/images/icons/favicon-16x16.png b/source/images/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ed967af5736bb6dad95298bf23e97bf395ae93 GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMfx&WULS0MfV{rlg)fB#1UZ{NOs z{rdIOr%!=WK;d`q-a#avKYtDs1cGPJo&mK0#ee?%`R&^`pa_Kg@ZrOcA3yHxyZdtH zw0D;?fBpJZeC`BL@83UvK7IQ1_U@an&)2`2Kj-(4-+#V*e)HkOyC?5n-+2Av((}D9 zo<2By|IxeKbMM@kdh_asb7v~fpZa+4z=yrNKR@63_34T?t5$rv+hf1`MGw%$QYArt z!3^J+B9+d*dbHc^@9S6FH!bfeQ+@OL+Of$-3Tl%w3V^CMd%8G=NLIyLhHrjA7oDThR_4Y)N51XJ3e1 zxi!x4d$N*w>dtN7wghv{HoM61EGAc2?@VyfYUjN@KNsbnG^!7`taWs$IFUcvQvV*#T;Y) pfAW@OEnf8NcIS&Ov3LJJG8##VaHLmSP6Rri!PC{xWt~$(699Y)6T<)i literal 0 HcmV?d00001 diff --git a/source/images/icons/favicon-32x32.png b/source/images/icons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..a0a770f743f3cb55f332f44279a3fe02edf84985 GIT binary patch literal 922 zcmV;L17-Y)P)+Apj|N8p+|NsC0|Nrsv@&Et-|NsC0|Nrsv@&Et-|NsB-@$v2L z?eOsM^78Wk|Nr*(_V)Jn_xJbo^z`-h_5A$&{r&yt=jZqL_wn)Z?d|RF@9+8f`S$kq z>+9?2=;-zJ_3G;C|NsB|{Qdj;`=Q?2M7_1<&E@N)qUy;;^z`)Y-0jYx&ho~@@!W~t zYG&}+di?kL`11Jf(`fwl_5S?x>C@=q#^Kkn*3zia=$MuA-;(Byi|Wcr_WJts==1&i z@cZ@Os^Q+=zux5a^!x1W>)7hrx7pgZ+4}R?)T`5q*3p8~&U4Mk^U28h?#A%Ex<|gZ z^4^c)e0kw@a@q3m*6{E9?(WFz>A>mc=g;Q&;oFCG8t&;xv$-P$z*3`5a5`{@GL}>s3 z0qaRbK~y-)mD6c=nm`l=U`GTr8cj4YTNw~63?wLRXrWr$+Nja&`__G5{{Ii?y#oQe zozp%akTdr^a^}vR%zwz{=4MNULTPp`m;FOoma0lZl;mIQ`4SWKguqJqpZ|SD;VeN( ztYoL^6-GIS>GT$>q=|*QXr5g^h`hJ>Lix77C>Y3LA2zwOfEvhNjOuHm<)~KU#pMPV z?>z-aVbcQQ8V^X+WV%TQ<8`nTJ_dWXVFD^)yal`2aVVa1c=I+-G|)y>ywk?ff^$`5FyO%^?J^y7V3~RfS*7r z>rEz;;L9`ctuvo~Vu_>#*rpS>ARycl1j<^ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- GitLab