diff options
| author | Jieiku | 2024-08-09 22:54:33 -0700 |
|---|---|---|
| committer | Jieiku | 2024-08-09 22:54:33 -0700 |
| commit | 26078b92708f955cc5e074f040290c0fc1226804 (patch) | |
| tree | 73846a503751f7b5009973a85318c09f7b4c7641 | |
| parent | 4e062afdbf9f53e369965d12a58b53bc78dc3b08 (diff) | |
| download | abridge-2.5.0.tar.gz abridge-2.5.0.tar.bz2 abridge-2.5.0.zip | |
Pagefind PWA fixes2.5.0
| -rw-r--r-- | package_abridge.js | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/package_abridge.js b/package_abridge.js index 1c27215..39621ea 100644 --- a/package_abridge.js +++ b/package_abridge.js @@ -43,7 +43,7 @@ if (fs.existsSync('./themes')) { // cleanup pagefind files from old builds. _rmRegex(path.join(bpath, "static/js/"),/^wasm.*pagefind$/); _rmRegex(path.join(bpath, "static/js/"),/^pagefind.*pf_meta$/); -_rmRegex(path.join(bpath, "static/js/"),/^pagefind-entry\.json$/); +_rmRegex(path.join(bpath, "static/js/"),/^pagefind-entry.*json$/); _rmRecursive(path.join(bpath, "static/js/index")); _rmRecursive(path.join(bpath, "static/js/fragment")); @@ -97,7 +97,20 @@ async function abridge() { _rmRegex(path.join(bpath, "static/js/"),/^pagefind-.*\.js$/);//pagefind temporary intermediate files _rmRegex(path.join(bpath, "static/js/"),/^pagefind-.*\.css$/);//pagefind temporary intermediate files + // This line in pagefind is causing a problem for the PWA: + // var e = await (await fetch(this.basePath + "pagefind-entry.json?ts=" + Date.now())).json(); + // instead generate an epoch timestamp at build and add it to the filename. + var hash = Math.floor(new Date().getTime() / 1000); + fs.renameSync(path.join(bpath, "static/js/pagefind-entry.json"), path.join(bpath, "static/js/pagefind-entry-"+hash+".json")); + + // original: var e=await(await fetch(this.basePath+"pagefind-entry.json?ts="+Date.now())).json(); + // new: var e=await(await fetch(this.basePath+"pagefind-entry-1723268715.json")).json(); + // Tricky regex, so I split it into two replaceInFileSync() calls, pull requests welcome if you can improve this. + replaceInFileSync({files: path.join(bpath, "static/js/pagefind_search.js"), from: /pagefind-entry\.json\?ts=/g, to: "pagefind-entry-"+hash+"\.json"}); + replaceInFileSync({files: path.join(bpath, "static/js/pagefind_search.js"), from: /Date.now\(\)/g, to: "\"\""}); + //copy to public so the files are included in the PWA cache list if necessary. + fs.copyFileSync(path.join(bpath, "static/js/pagefind-entry-"+hash+".json"), path.join(bpath, "public/js/pagefind-entry-"+hash+".json")) _cpRegex(path.join(bpath, "static/js/"),path.join(bpath, "public/js/"),/^pagefind-entry\.json$/); _cpRegex(path.join(bpath, "static/js/"),path.join(bpath, "public/js/"),/^pagefind.*pf_meta$/); _cpRegex(path.join(bpath, "static/js/"),path.join(bpath, "public/js/"),/^wasm.*pagefind$/); @@ -262,7 +275,6 @@ function _rmRegex(path,regex) { function _cpRegex(source,dest,regex) { try { fs.readdirSync(source).filter(f => regex.test(f)).forEach(f => fs.copyFileSync(source + f, dest + f)); - //fs.copyFileSync(path.join(bpath, "static/js/pagefind-entry.json"), 'public/pagefind-entry.json'); } catch (error) { console.error("An error occurred:", error); } |
