From 180acd5571ec62fe3373f53fb599a7a099d69e97 Mon Sep 17 00:00:00 2001 From: Jaifroid Date: Sun, 30 Jan 2022 09:39:25 +0000 Subject: [PATCH] Add app favicon and deal correctly with zim favicon #229 (#230) * Deal correctly with ZIM favicon * Add app favicon Former-commit-id: abfa3290c8f633ebf540d2355d51fdb31fe79956 [formerly 5c13544df380b1915295a578c7d0323c6e0a6920] [formerly 18dcc8391eacef4dcb21389c080eaea734a11ffa] [formerly 52ea1ecb4cc7017ec8cd6724d33d0b34b64e0d7b [formerly 0d6d1062ec896d3eb5b4087cce27db36be9459ed [formerly 54119a638ebaec755b45f250b3b797f1d991e2ba]]] Former-commit-id: 24afc5d736d66148b29a9431e61bbe51254aa173 [formerly 770d3ed0e5a5c5a73e4f4b621be6cf3af8e46dd7 [formerly bc4e05f3395634a06cbc2db2fc1043cb5d8ec66c]] Former-commit-id: f027b934c27d95bc976e0596df099cc25a1d3296 [formerly cb02d0255a4064173be14e79cf2f98b7f0fdad12] Former-commit-id: 471c457d5c13d1af59ff99ee6d58c8ad9bcdf4bf --- service-worker.js | 1 + www/favicon.ico | Bin 1406 -> 5430 bytes www/img/icons/favicon-16x16.png | Bin 0 -> 632 bytes www/img/icons/favicon-192x192.png | Bin 0 -> 5062 bytes www/img/icons/favicon-270x270.png | Bin 0 -> 7472 bytes www/img/icons/favicon-32x32.png | Bin 0 -> 1019 bytes www/index.html | 4 ++++ www/js/app.js | 7 ++++--- www/js/lib/cache.js | 8 ++++---- 9 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 www/img/icons/favicon-16x16.png create mode 100644 www/img/icons/favicon-192x192.png create mode 100644 www/img/icons/favicon-270x270.png create mode 100644 www/img/icons/favicon-32x32.png diff --git a/service-worker.js b/service-worker.js index ee5347d0..75460f3c 100644 --- a/service-worker.js +++ b/service-worker.js @@ -102,6 +102,7 @@ let precacheFiles = [ ".", // This caches the redirect to www/index.html, in case a user launches the app from its root directory "manifest.json", "service-worker.js", + "www/favicon.ico", "www/-/mw/ext.cite.styles.css", "www/-/mw/ext.cite.ux-enhancements.css", "www/-/mw/ext.math.scripts.css", diff --git a/www/favicon.ico b/www/favicon.ico index 281a01dadbcafb843759d62d829401169a313d45..3a94fa8e36d9274de6f50f8a354a23dc448d68ad 100644 GIT binary patch literal 5430 zcmeH~Pe>I(9LGnE3K0_t5es{WL_~y0M2E=mAQ91_Lxe~~M2H8G2ni4Rs3-|B4;>^V zJVbc#5E0SA>Jc3}c#5!y4q{Le5>jDm<@WimJL|gc+xH$>6!?P=znR~k`R$w8nb~Jd zp2;^QB?g@^&FhTWZj4DJ7W+fkd$H}nMw5s|JL<2h zZs-ht3p#TLAySCd9iwfSvyi9zLuXbs41w;KmuSfh=$zNHWfK3+%Jw0sqji4?j~QHZ zT@O!T9y;I@zEkLN$SB0tWLsNt#BT?!Wt;jG(DS?n-DmE5<=H;b&vZZO`A%w_Y=tq; zXgzt9j!XgsW+;cq1Yq%GKs%tq1A)&OoYl8=J<|Gqgan z`p{|Ptj4D`=s~;U#kuPt1AXmL|9d8whrJj77~1~^pnVP^h1gn~AJhcv8Jf^qFRhVe z8v3!91!HX+`%(Pb+Xt+T_D;`+S|R%WjQ!@ouesBCR0;lXvg2EgZ$EtI8QKFj<&CzK%t1-~MaEG?u#Sze1rI>O%zBGQ-(C_{XH^6_F@ac}32h8re#qO!N80$l8 z4NiEq3u)^P)4k9~JN%v5q}qP~y$_m~3C7lXx1#;uZRZF3Mfj8QhPwM~y|Bi2C8{{~ zD05mH@n1n}>q;R1Sh!}ePh5*)SAlyJ);GvgxMs)0))1^0ZsXV9TMf~Dp8$Q6^m_wp z@5cV;#;?7hy|Wsk_e?ddWOeruTmv&UX%)2g`B_-;zK7@E_K9s|&D?Xqu3eT|zxR-r zue zL+^1dHFQ3<($;!5&@Rn&thM-mcLrF~_nb3$0y+2fN{Qy5#xLj2h7iR zoq2QPU6;P6x}0yx%1s}Vrr>(gm^yxC7dS~%0_BkBq)dS`Zn~Ulz9wf2mX}iR7qGAj ALjV8( literal 1406 zcmeH{yKmA_6vw}4t+W=wR}~-hr&b<{S_`$UR^f-0AHTb?Fp-cj5JOlP7)fMhfQ0ZL zFtfr;U?g;4AS^sbAUwkR=>_WA!Of)iA(2QRl}aI#$-poS2w;IOa>Ph7szI_$mMd#=kq8O3Mdwf zD3wYmm&>SBDyUYgsMTty*Xw9B8fZ3~Xti2sx7+A+I_P%0==FN&_xl(O1{e;97>!04 zkH?ryCYVmAn9XLG&*xYy7FS7l9lKWGzf^$d&UN@q?eKu(Xa~IMr{M_4>NEK+F|C;U zVK_b0Nb!L1D>iZG+#X&Wh}X;$vcL6IOSlg!CPck~yRQy)hR2t@mgVLS9S_TTa`aMi zn+_@9c*%s;6Y?C-?&0lUR&GE1M#!6YD<+?Wbh^F%N)*hRWy@M%bMwh%{t2@~2N-aF v9p~wbUsU^#ZroWi&(r_1dOd3-TdRI(!|cgN_4`xy`?BBd-@pbv|8@NVCXK6Y diff --git a/www/img/icons/favicon-16x16.png b/www/img/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..c38c6cd2fe6bce07291a9140fe57e09ba2767510 GIT binary patch literal 632 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 YANNbX0BGl5KZm2GrmxzlZ2Rti0Qx+|$^ZZW literal 0 HcmV?d00001 diff --git a/www/img/icons/favicon-270x270.png b/www/img/icons/favicon-270x270.png new file mode 100644 index 0000000000000000000000000000000000000000..9e29b8e0ee23359e2ec72732b9edefd5e5966ed3 GIT binary patch literal 7472 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 literal 0 HcmV?d00001 diff --git a/www/img/icons/favicon-32x32.png b/www/img/icons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..461aa5ef45dd5f7f1f73f19af65dc7a2233f24e0 GIT binary patch literal 1019 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-G$+Qd;gjJKpuOE zr>`sfGe#zEUg2d=lgohe3p`yMLp+Ypo$Bo|B~ave{rwbUy9pvo*e7-NUs3VxSXPk8 zy4UCSj0Mu%=0aOEIifgNT`#C9nL7qLwgk);Tf{0T#vyg_@Fz#D&ftp=GTNSH&-uB1 z#?NJv&u7cnmVdlk{jU7q_c{M9zsosrJblqsWxBc|#qaN~bxev3iq2E3^y6cWE&K5` z(sUDNOW*6`t9pDtt_WKYvp0J3PL;2#ZyeL~id-#nG3AA_>cl8{ZV8JGN0|+?UhtoM z=EZZ-&)nYdM2dX-$ym-~$M-j+l{nutaw(8FbuF|qY{9_^Oaa9vmz&COGMcT*NSUId zb)zrwX>(^uc;AJa4-Zd>HB;4c@7J|G;PX<>ySPQD#BqJdTAi;^3@nyX3+&bWC9gbQ zHYeX^`wd@?nmcEXvdnnGIM?UF@zzC^92S=Zn;DHc+5@_{N_~T`DL&cw(*9&zQX|v5 z%U!d(Yx-|+FDvX+dpA?7Y}0(3Ni&W&w@V6XE}B%6FtPnhLFbtlCi_CeE+n?kYuowa zYR4|qHAgSl=3TY?8#m9*bJyY&%MusYT{4$;md4$lvP#!#?ZXAPvHCAK&Rtr0OjzriL7~w( z2}zMltPb**1$X`sm?eKClXb$;w0jJGRx?vHS7l5(^eVqLMRitp(XJb(#gDCAJcaer zPtjYxOO?tr*;Ck>r%wrRv(vM=GTFV@fX6yrhtcUhW5aB{eV=-G_zD|%e|RjO>)x|* zqLkmHBu)cqF)0S&J!#szowM~nTWp99-+4bk-dg9&N86PTHeGC6^tEu7v$fWR<)-G- z6sIbNY<_e(TQ@k1 + + + + diff --git a/www/js/app.js b/www/js/app.js index 4c5b88f1..4065e9c7 100644 --- a/www/js/app.js +++ b/www/js/app.js @@ -3817,8 +3817,8 @@ define(['jquery', 'zimArchiveLoader', 'uiUtil', 'util', 'cache', 'images', 'sett // to support to this regex. The "zip" has been added here as an example of how to support further filetypes var regexpDownloadLinks = /^.*?\.epub($|\?)|^.*?\.pdf($|\?)|^.*?\.zip($|\?)/i; - // This matches the data-kiwixurl of all tags containing rel="stylesheet" in raw HTML unless commented out - var regexpSheetHref = /(]*rel\s*=\s*["']stylesheet)[^>]*(?:href|data-kiwixurl)\s*=\s*["'])([^"']+)(["'][^>]*>)(?!\s*--\s*>)/ig; + // This matches the data-kiwixurl of all tags containing rel="stylesheet" or "...icon" in raw HTML unless commented out + var regexpSheetHref = /(]*rel\s*=\s*["'](?:stylesheet|[^"']*icon))[^>]*(?:href|data-kiwixurl)\s*=\s*["'])([^"']+)(["'][^>]*>)(?!\s*--\s*>)/ig; // A string to hold any anchor parameter in clicked ZIM URLs (as we must strip these to find the article in the ZIM) var anchorParameter; @@ -4163,8 +4163,9 @@ define(['jquery', 'zimArchiveLoader', 'uiUtil', 'util', 'cache', 'images', 'sett cache.getItemFromCacheOrZIM(appstate.selectedArchive, cacheKey).then(function (content) { //DEV: Uncomment line below and break on next to capture cssContent for local filesystem cache //var cssContent = util.uintToString(content); + var mimetype = /\.ico$/i.test(title) ? 'image' : 'text/css'; var cssBlob = new Blob([content], { - type: 'text/css' + type: mimetype }); var newURL = [title, URL.createObjectURL(cssBlob)]; blobArray.push(newURL); diff --git a/www/js/lib/cache.js b/www/js/lib/cache.js index 7df223aa..0e0f3078 100644 --- a/www/js/lib/cache.js +++ b/www/js/lib/cache.js @@ -31,7 +31,7 @@ define(['settingsStore', 'uiUtil'], function(settingsStore, uiUtil) { // DEV: Regex below defines the permitted key types for the cache; add further types as needed // @TODO: Revise for use with no-namespace ZIMs (maybe this becomes useless?) // NB: The key type of '.zim', or '.zimaa' (etc.) is used to store a ZIM's last-accessed article - var regexpKeyTypes = /(?:(?:^|\/)[AC]\/.+|\.[Jj][Ss]|\.[Cc][Ss][Ss]|\.[Zz][Ii][Mm]\w{0,2})$/; + var regexpKeyTypes = /(?:(?:^|\/)[AC]\/.+|\.[Jj][Ss]|\.[Cc][Ss][Ss]|\.[Ii][Cc][Oo]|\.[Zz][Ii][Mm]\w{0,2})$/; /** * Tests the enviornment's caching capabilities and sets assetsCache.capability to the supported level @@ -455,9 +455,6 @@ define(['settingsStore', 'uiUtil'], function(settingsStore, uiUtil) { resolve(result); return; } - // Set the read function to use according to filetype - var readFile = regexpKeyTypes.test(title) ? - selectedArchive.readUtf8File : selectedArchive.readBinaryFile; // Bypass getting dirEntry if we already have it var getDirEntry = dirEntry ? Promise.resolve() : selectedArchive.getDirEntryByPath(title); @@ -476,6 +473,9 @@ define(['settingsStore', 'uiUtil'], function(settingsStore, uiUtil) { var shortTitle = key.replace(/[^/]+\//g, '').substring(0, 18); uiUtil.pollSpinner('Getting ' + shortTitle + '...'); } + // Set the read function to use according to filetype + var readFile = /^text\//i.test(mimetype) ? + selectedArchive.readUtf8File : selectedArchive.readBinaryFile; readFile(resolvedDirEntry, function (fileDirEntry, content) { if (regexpKeyTypes.test(title)) { console.log('Cache retrieved ' + title + ' from ZIM');