From 8498fc1110ee3fbbbc733f6c1be4cbaa4e334674 Mon Sep 17 00:00:00 2001 From: Vijit Singh Date: Sun, 14 Jun 2026 02:41:04 -0500 Subject: [PATCH] Add favicon.ico + apple-touch-icon so the stack mark shows in every browser tab MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The favicon was SVG-only, and /favicon.ico + /apple-touch-icon.png both 404'd. Browsers that don't use SVG favicons — notably Safari — request /favicon.ico, get a 404, and fall back to a blank/default icon, so the orange stack mark wasn't showing in the tab even though favicon.svg was already correct. - Add static/favicon.ico (16/32/48, rendered from favicon.svg via librsvg) and static/apple-touch-icon.png (180×180, solid dark square for iOS). - head.html now links .ico + .svg + apple-touch — modern browsers use the crisp SVG, everything else gets the raster fallback. - Same orange layered stack mark as the header/footer brand; no new artwork. Verified: hugo --gc --minify --panicOnWarning clean; htmltest passes; all three icon files resolve in the build; .ico/32px and the apple icon render the mark correctly (checked the rasterized output). Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 4 +++- layouts/partials/head.html | 2 ++ static/apple-touch-icon.png | Bin 0 -> 2174 bytes static/favicon.ico | Bin 0 -> 15086 bytes 4 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 static/apple-touch-icon.png create mode 100644 static/favicon.ico diff --git a/README.md b/README.md index 487a6e8..07a6300 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,9 @@ assets/css/main.css ← the entire visual system assets/js/main.js ← reveal-on-scroll, header state, copy-to-clipboard scripts/refresh-releases.py ← refreshes data/releases.json from the GitHub API static/img/ ← marks + dashboard screenshot + og-card -static/favicon.svg ← P2Pool Starter Stack layered mark +static/favicon.svg ← P2Pool Starter Stack layered mark (modern browsers) +static/favicon.ico ← raster fallback (Safari/legacy tabs) — 16/32/48 +static/apple-touch-icon.png ← iOS / Safari home-screen icon (180×180) static/robots.txt ← crawl rules (search + AI assistants explicitly welcome) ``` diff --git a/layouts/partials/head.html b/layouts/partials/head.html index e2c62d3..cb49c54 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -9,7 +9,9 @@ + + diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a0ac38631353fedf7e015bbcda76fe7b99ea266e GIT binary patch literal 2174 zcmZ{mX*iS%8^<4�=({d1hnw43d$pEHR29`@T$Mo3S%E2Su_(SyJ8*St3g*T~17P z>J&93X}4t0R!JpmWqap*d9UmJa6a7s|8@Va`+wbE?hkjmt@SZU2^k3h03^*!S@uG& z|EKos6siPjRj2@kYie%=0H@^vAn_ak{1&3bPXG|53IKCn0HB)>0NC(rt#*0m7ZNxK6G9j$4g)3Npg3F_DUIN1;2t@VKKsyY70_=_ zkQW1JgB}!56)XdfseXOaOGl0_jG{AoV|XeA~D3L2D_0%y3?Prfuz8Z?nZ_pr&Y+{ji6XgU`8mlbgz z4uwJ>=6tEH`>_M=l!HW6vmFVK1YfvP%;nLnz0gw^G7&<;B@yFZlqn8XN(wwohT5G- zBnT;k1i$;!I-SXeG>C=)I~+-RWatnH)oM?Y$00xZP=`FIrgU`gamrUeDh34KoFKFJ zW0dizyH><{8{z?3xs;n@m6#8*+$nwTlzY}hO(M!d9zEer(WO8}G-%k9 zn#RQ6vLHlj;Z$W&sZ6}RBIXbYYI7iE8OjE#VV|+dMJBQj97s=`NHtc(Mq8q|Bq*Ij zfeUX!gky1x1*C}*O@)nEq?whm*xYU@F$J;-rlmuO=#j?kNFVP=UtR8>zCr`kRn-qM zR1Y!KG#yp7bTxEzHPrU2s_Lq$Cc3V9|6hO?<`d`_^Y4KlVm70~fa3o)L$xU*H(s@y6TCa=-GZk=tjw8=9lGAk+Woi1K8lb_Nin9DDi zdue!=|Kx+W>NP_i=!`WG#kV39s!$sqr(PMv+zS$LTZ>;E_Rq)toJu;C@F#N;onP)+ zCZIj)x+BU~&QmsCtCs0Jx+gT`9f_ON#Immtt^A_3+bAVdnVara5JaR|(r-r$E#qfq zG%9WO-flfNr^hn*<5&UyaZS;};=NW0+48lyE}f`Ql2f-$maL)?mYCifm2um; z*C_AO^9>oSSG!?ftKLuLmZzdsRs&W2ou$l`mYy5bv9v*GsJ7`RY#@hj!FM&RqhG!0 zu42{0_o*0(u1>3&4n8@`x`(W2=vMSU-4|q#tx@f9zD(xq!Qf5v7qurZMJ6xiKwq+* zN}CTnbbTnY!Ld7CFF| zxJ7;ZTT$52czauqn{V3yW_f7%*cye@C`(=8D&VL&+~ zV?J-3s<5{$H49r_U{sRTE_kl`&9?HDkCvs>aS2AjU__Z|S$a+)d~lzpHRq+M#`#W* zd4ZdR?uNJg>WOgsfcYmSurh{x*5J}*%d&K2tcp5#R)znOQ(E1XnUK~MuO=w%WhFX$2y{ZG+L-QL@=DQ(74NDy`#tSD46OR>rV4{@OpE24H4v&AMyo GmGoaq+IuYk literal 0 HcmV?d00001 diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..da3854ade5c6506de7a5863feeb9e54eeb04fd0a GIT binary patch literal 15086 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 literal 0 HcmV?d00001