From 1c5f163969a01cf1b3559964019948eec7649a5c Mon Sep 17 00:00:00 2001 From: Makise Von Date: Wed, 19 Feb 2025 11:14:08 +0800 Subject: [PATCH] feat: update web app icons (#475) Fixes #474. --- config-examples/en/config.toml | 58 +++++++++++++----- config-examples/zh-cn/config.toml | 32 +++++++--- config-examples/zh-tw/config.toml | 32 +++++++--- layouts/partials/head.html | 34 ++++++---- static/icons/favicon-96x96.png | Bin 0 -> 4971 bytes static/icons/favicon.svg | 3 + static/icons/web-app-manifest-192x192.png | Bin 0 -> 10953 bytes ...2x512.png => web-app-manifest-512x512.png} | Bin static/manifest.json | 15 +++-- 9 files changed, 130 insertions(+), 44 deletions(-) create mode 100644 static/icons/favicon-96x96.png create mode 100644 static/icons/favicon.svg create mode 100644 static/icons/web-app-manifest-192x192.png rename static/icons/{android-chrome-512x512.png => web-app-manifest-512x512.png} (100%) diff --git a/config-examples/en/config.toml b/config-examples/en/config.toml index 8333d45d..e0918ef7 100644 --- a/config-examples/en/config.toml +++ b/config-examples/en/config.toml @@ -554,25 +554,55 @@ uglyURLs = false # Note: go to https://realfavicongenerator.net/ # to generate related icons and - # files, unzip after downloading, - # and keep only android-chrome-512x512.png, - # apple-touch-icon.png, mstile-150x150.png, - # safari-pinned-tab.svg, favicon.ico, - # site.webmanifest these files, - # delete the rest. Then move - # these files to the ~/blog/static/icons/ - # directory, move favicon.ico, - # site.webmanifest to the ~/blog/static/ - # directory, and finally rename - # site.webmanifest to manifest.json, - # and check and modify related - # content (the path of the icons). + # files, unzip after downloading. + # Then move these files to the + # ~/blog/static/icons/ directory, + # move favicon.ico, site.webmanifest + # to the ~/blog/static/ directory, + # and finally rename site.webmanifest + # to manifest.json, and check + # and modify related content + # (the path of the icons). + + # ATTENTION: To check your favicon, plese + # go to https://realfavicongenerator.net/favicon-checker. + # If any problems are detected, + # check the filename differences + # between the generated files + # and the related files in the + # ~/blog/themes/meme/static/ directory. + # If there are any differences, + # it means some files may be outdated. + # Please create an issue if necessary. themeColor = "#fff" themeColorDark = "#16171d" + + enableSafariMask = false safariMaskColor = "#2a6df4" + # ATTENTION: Since https://realfavicongenerator.net/ + # no longer supports generating + # safari-pinned-tab.svg (600x600 px), + # please generate your own icon + # if necessary, move it to the + # ~/blog/static/icons/ directory, + # and finally rename it to + # safari-pinned-tab.svg. + # Otherwise, it will default to + # the icon provided by MemE. + + enableMsApplication = false msApplicationTileColor = "#fff" - + # ATTENTION: Since https://realfavicongenerator.net/ + # no longer supports generating + # mstile-150x150.png (150x150 px), + # please generate your own icon + # if necessary, move it to the + # ~/blog/static/icons/ directory, + # and finally rename it to + # mstile-150x150.png. + # Otherwise, it will default to + # the icon provided by MemE. ###################################### # HTML Head Meta, SEO & Social Discovery diff --git a/config-examples/zh-cn/config.toml b/config-examples/zh-cn/config.toml index d8c1bf7a..93de63d0 100644 --- a/config-examples/zh-cn/config.toml +++ b/config-examples/zh-cn/config.toml @@ -508,12 +508,7 @@ uglyURLs = false # 网页应用 # 说明:前往 https://realfavicongenerator.net/ - # 生成相关图标和文件,下载后解压,仅保留 - # android-chrome-512x512.png、 - # apple-touch-icon.png、 - # mstile-150x150.png、 - # safari-pinned-tab.svg、favicon.ico、 - # site.webmanifest 这些文件,删除其余。 + # 生成相关图标和文件,下载后解压。 # 然后将这些文件移动到 ~/blog/static/icons/ # 目录下,再将 favicon.ico、site.webmanifest # 移动到 ~/blog/static/ 目录下, @@ -521,11 +516,34 @@ uglyURLs = false # manifest.json,并检查和修改相关内容 # (图标的路径)。 + # 注意:要检查你的图标 + # 请前往 https://realfavicongenerator.net/favicon-checker。 + # 如果检测到任何问题,检查生成的文件和 + # ~/blog/themes/meme/static/ 目录下 + # 相关文件的文件名差异。如果有差异, + # 这意味着某些文件可能已经过时。 + # 如有需要,请提 Issue。 + themeColor = "#fff" themeColorDark = "#16171d" + + enableSafariMask = false safariMaskColor = "#2a6df4" + # 注意:由于 https://realfavicongenerator.net/ + # 不再支持生成 safari-pinned-tab.svg (600x600 px), + # 若启用功能, 请自行生成图标。 + # 然后将其移动到 ~/blog/static/icons/ 目录下, + # 并重命名为 safari-pinned-tab.svg。 + # 否则,将默认使用 MemE 提供的图标。 + + enableMsApplication = false msApplicationTileColor = "#fff" - + # 注意:由于 https://realfavicongenerator.net/ + # 不再支持生成 mstile-150x150.png (150x150 px), + # 若启用功能, 请自行生成图标。 + # 然后将其移动到 ~/blog/static/icons/ 目录下, + # 并重命名为 mstile-150x150.png。 + # 否则,将默认使用 MemE 提供的图标。 ###################################### # 网页头部元数据、搜索引擎优化(SEO)、社交网络发现 diff --git a/config-examples/zh-tw/config.toml b/config-examples/zh-tw/config.toml index 290db16b..4fba3056 100644 --- a/config-examples/zh-tw/config.toml +++ b/config-examples/zh-tw/config.toml @@ -508,12 +508,7 @@ uglyURLs = false # 網頁應用 # 說明:前往 https://realfavicongenerator.net/ - # 生成相關圖示和檔案,下載後解壓,僅保留 - # android-chrome-512x512.png、 - # apple-touch-icon.png、 - # mstile-150x150.png、 - # safari-pinned-tab.svg、favicon.ico、 - # site.webmanifest 這些檔案,刪除其餘。 + # 生成相關圖示和檔案,下載後解壓。 # 然後將這些檔案移動到 ~/blog/static/icons/ # 目錄下,再將 favicon.ico、site.webmanifest # 移動到 ~/blog/static/ 目錄下, @@ -521,11 +516,34 @@ uglyURLs = false # manifest.json,並檢查和修改相關內容 # (圖示的路徑)。 + # 注意:要檢查你的圖標 + # 請前往 https://realfavicongenerator.net/favicon-checker。 + # 如果偵測到任何問題,檢查生成的檔案和 + # ~/blog/themes/meme/static/ 目錄下 + # 相關檔案的檔案名稱差異。如果有差異, + # 這意味著某些文件可能已經過時。 + # 如有需要,請提 Issue。 + themeColor = "#fff" themeColorDark = "#16171d" + + enableSafariMask = false safariMaskColor = "#2a6df4" + # 注意:由於 https://realfavicongenerator.net/ + # 不再支援生成 safari-pinned-tab.svg (600x600 px), + # 若啟用功能, 請自行生成圖示。 + # 然後將其移到 ~/blog/static/icons/ 目錄下, + # 並重新命名為 safari-pinned-tab.svg。 + # 否則,將預設使用 MemE 提供的圖示。 + + enableMsApplication = false msApplicationTileColor = "#fff" - + # 注意:由於 https://realfavicongenerator.net/ + # 不再支援生成 mstile-150x150.png (150x150 px), + # 若啟用功能, 請自行生成圖示。 + # 然後將其移到 ~/blog/static/icons/ 目錄下, + # 並重新命名為 mstile-150x150.png。 + # 否則,將預設使用 MemE 提供的圖示。 ###################################### # 網頁頭部元資料、搜尋引擎最佳化(SEO)、社交網路發現 diff --git a/layouts/partials/head.html b/layouts/partials/head.html index fcf7ba95..a897df8e 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -50,27 +50,37 @@ - {{- $favicon := "favicon.ico" -}} - {{- $safariMaskIcon := "icons/safari-pinned-tab.svg" -}} - {{- $safariMaskColor := .Site.Params.safariMaskColor -}} + {{- $icoFavicon := "favicon.ico" -}} + {{- $svgFavicon := "icons/favicon.svg" -}} + {{- $pngFavicon := "icons/favicon-96x96.png" -}} {{- $appleTouchIcon := "icons/apple-touch-icon.png" -}} - {{- $msApplicationStartURL := partial "utils/relative-url.html" (dict "$" . "filename" "") -}} - {{- $msApplicationTileColor := .Site.Params.msApplicationTileColor -}} - {{- $msApplicationTileImage := partial "utils/relative-url.html" (dict "$" . "filename" "icons/mstile-150x150.png") -}} {{- $manifest := "manifest.json" -}} - - - + + + + - - - + {{ if .Site.Params.enableSafariMask }} + {{- $safariMaskIcon := "icons/safari-pinned-tab.svg" -}} + {{- $safariMaskColor := .Site.Params.safariMaskColor -}} + + {{ end }} + + {{ if .Site.Params.enableMsApplication }} + {{- $msApplicationStartURL := partial "utils/relative-url.html" (dict "$" . "filename" "") -}} + {{- $msApplicationTileColor := .Site.Params.msApplicationTileColor -}} + {{- $msApplicationTileImage := partial "utils/relative-url.html" (dict "$" . "filename" "icons/mstile-150x150.png") -}} + + + + {{ end }} + {{ with .OutputFormats.Get "SectionsAtom" -}} diff --git a/static/icons/favicon-96x96.png b/static/icons/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..ab5e95040f861e27e58d303146df6ea454f3320c GIT binary patch literal 4971 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 literal 0 HcmV?d00001 diff --git a/static/icons/favicon.svg b/static/icons/favicon.svg new file mode 100644 index 00000000..f16c9798 --- /dev/null +++ b/static/icons/favicon.svg @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/static/icons/web-app-manifest-192x192.png b/static/icons/web-app-manifest-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..b024e176fc353c964c16484dc869545e3ec92613 GIT binary patch literal 10953 zcmdUVRZ|>FwC><;!7aE;a2eb~@DSW>a0Wtf_u%gC?iPFq39iB2-CYMR`}~0We9l96 zKdtJnt|j$JxT>-o1}X_E006*{|1ACW{e=9tkP+YauPb&)?+1+YS2;;Q%{bX106+4`Km6$?WH*3@R?8ir+7{JqNArjsst5T0OiFlwki&XKBu`Q9||RG zK~({=cailxg5;CgN9|lKvHn5S~++svP?Z>HZu5f~`+~E5k_sVI$ zZ~hYu&zfBtx81WM2H;tBc(-2!WyWZ#2*+m?XS#qIxL;v;1#BBYaT#z=W#=*AjJV7S z?H8u%)bcs=Indt=k$DNW2JYL} z(dEyT&!d6Bi~I9j0Ud2r8tt(7y3!m|anq_jJYU~>4YjH(d%X zQ~&WJX%NX6si(phU0FdObvNWq%=STpKGkWu(aS^lNgX|Hosd9<*2lp>W%b_3;B#AV zo%x~=B#oFn+R(rQ5%M__Jqh;OBfO~SU{Ou0d_o^G|{Sb!g&4%Q>O*7xc@Xcb-eF=#l#~L}u=3`9dBUl37>;;xc>L{zFps!vVi!89KM7TBqyoH) zE0z3i50;p~&GWTv*{M#LyQculI)-0fPd3y~RDf8gTf~Aqb`bQzTyNER?y?G9x%Xhn zQ*xFC5W+f@R==<;mAIx~=4*^17Nj`51S6eR%_r7`0eM8cWd>#wwGJ%95)xz|C@=hm zRopH}SHRnlg;d<>-sH#*n~dn$t`noHr#8d=L{@E{c=qC;*8!6m7J9$5)7^qC9JwZz)AYDatIiNLEqivPVU4#Cew~Hmd_s0gZ|E5E0jl z*O^N^F}eG}QOc5I06W`NW3p3OSiBfDG3nKPZ=H^gkhs7<&K!9U90-R{loVteIHSH| zrRsDXlaupt^LjD};8*@&N5lP@p?`kc{s>OCtSUoq4ih`7B$jRi2Vhu6(jJn$kukF?Jv?FmZEH=M)p%bNi_!BD2;dIM;I4%cn3U~9n>+Uu&gomv z(ChfO=i>V1E;@dk6L_T(V3ie(+8Or~0kbv!ZG0b4SX#CIS8LykRJ>~}6h|kYkk&My z!_Lrh-^^(6aY(=6ko2S!P;sK}j~lLSEWF_z>af@i6F4=xkMe>F_$%6X?*w{PFxA*# zWThUvYj!O_@a&s>!S)ZbBk-~>(OZ3nh9ot6WS=giR=%%`)!Tw{3@;zvq<`C{Gm;r@oGf(0NwnNSN*IJUQD`6xT za`*BS%dTEtqs}P2C(bncs24jnSWe%MU^M;RCXC^KFp^WFD1b=XW~yeb#?P&_cZD-{#GQsPA^x*ad+Cb|_zor!k^kSLFO8c z+#a{&|C<(eogjABfL7)5F#R#TBnGi(%L8LW1WBTDUZ`RkS96tzdV6QdVju9Vyf40% z*%g#N;rI_bw@QYB^9IVoPBQcRi@W_32_n?W@gxS{lb535gx=E6HzgYm8BYLK1Rb)~ z>3nF9ug$w2J#Zv5<@PtKUWwc!cFO~HV=AbCXWOs6MoFK~@AJQ*+mUgYejb;YE9NBy zf-OLL{XSZ@;q9;9-xZuRj`BQgCm7Wuz7(VL+CewQvLuE|5#J@fbDmVVXF%4&H&7TbG($1t z1al#+Le{~)bHkh$eda-)+r}oEz;eGjK_3)O_~FcuNp4x*JalnFI@4FL=&vbUJtt(8 zcuHeP2U}m08iG?UzqO{k^$WG0G^~B_wHT%)+BLv8f9->O3}Q9K!ZG*&)>zI?Dnuuz zr1?t8>c7G=7B$-Wv4|`?s{D;TTAf%uw>RhF=Zy-{&I5*>nC4X4)#?Y+Zq#=gLFcYW2kT=vcXt6( zH)H_r5euncGIU|X*}R<2q7X7KHlch!j-^YVz^lgI=oh=v!x41RsUf|G1}A?>Ox4>5 z1{g(FPXG~mVA*;z8i%a{j;6$jlJY18Gd8m*zS$`H+G=I75mLOJ-zV~@k8!7N+$h5? z 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 literal 0 HcmV?d00001 diff --git a/static/icons/android-chrome-512x512.png b/static/icons/web-app-manifest-512x512.png similarity index 100% rename from static/icons/android-chrome-512x512.png rename to static/icons/web-app-manifest-512x512.png diff --git a/static/manifest.json b/static/manifest.json index 48e0607b..1eb0b815 100644 --- a/static/manifest.json +++ b/static/manifest.json @@ -3,13 +3,20 @@ "short_name": "MemE", "icons": [ { - "src": "./icons/android-chrome-512x512.png", + "src": "./icons/web-app-manifest-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "./icons/web-app-manifest-512x512.png", "sizes": "512x512", - "type": "image/png" + "type": "image/png", + "purpose": "maskable" } ], - "theme_color": "#fff", - "background_color": "#fff", + "theme_color": "#ffffff", + "background_color": "#ffffff", "display": "standalone", "orientation": "portrait-primary", "start_url": "/"