From b86cf6f687f267d6ce7a71006c0013084d75bf00 Mon Sep 17 00:00:00 2001 From: OFF0 Date: Sun, 11 Dec 2022 11:06:25 +0100 Subject: [PATCH] pwa: add manifest and related app icons That nostr.ch has a pretty app icon when adding to home screen. --- esbuildconf.js | 12 ++++++++---- src/about.html | 1 + src/assets/nostr-favicon.png | Bin 0 -> 4714 bytes src/assets/nostr-favicon.svg | 3 +++ src/index.html | 1 + src/manifest.json | 21 +++++++++++++++++++++ 6 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 src/assets/nostr-favicon.png create mode 100644 src/assets/nostr-favicon.svg create mode 100644 src/manifest.json diff --git a/esbuildconf.js b/esbuildconf.js index 7da29f3..8062f34 100644 --- a/esbuildconf.js +++ b/esbuildconf.js @@ -8,19 +8,22 @@ import { replaceOnCopyPlugin } from './tools/esbuild-helper.js' // see docs at https://esbuild.github.io/api/ export const options = { entryPoints: [ - 'src/main.js', - 'src/main.css', - 'src/index.html', 'src/about.html', 'src/assets/comment.svg', 'src/assets/heart-fill.svg', + 'src/assets/nostr-favicon.png', + 'src/assets/nostr-favicon.svg', 'src/assets/star.svg', 'src/assets/star-fill.svg', 'src/favicon.ico', + 'src/index.html', + 'src/main.css', + 'src/main.js', + 'src/manifest.json', ], outdir: 'dist', //entryNames: '[name]-[hash]', TODO: replace urls in index.html with hashed paths - loader: {'.html': 'copy', '.svg': 'copy', '.ico': 'copy'}, + loader: {'.html': 'copy', '.ico': 'copy', '.png': 'copy', '.svg': 'copy'}, bundle: true, platform: 'browser', minify: false, // TODO: true for release and enable sourcemap @@ -36,6 +39,7 @@ export const options = { }), NodeGlobalsPolyfillPlugin({buffer: true}), replaceOnCopyPlugin(/about\.html$/), + replaceOnCopyPlugin(/manifest\.json$/), ] }; diff --git a/src/about.html b/src/about.html index 64d4e9e..869f122 100644 --- a/src/about.html +++ b/src/about.html @@ -5,6 +5,7 @@ about / nostr +
diff --git a/src/assets/nostr-favicon.png b/src/assets/nostr-favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..54addae71dfdc84dcd9b722c17efed11a9d5acf3 GIT binary patch literal 4714 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 Ys#(Q@{_U*)USvQ;QA43t-XiRO03?idQ~&?~ literal 0 HcmV?d00001 diff --git a/src/assets/nostr-favicon.svg b/src/assets/nostr-favicon.svg new file mode 100644 index 0000000..0f406bf --- /dev/null +++ b/src/assets/nostr-favicon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/index.html b/src/index.html index 2781169..ca800a5 100644 --- a/src/index.html +++ b/src/index.html @@ -5,6 +5,7 @@ nostr +
diff --git a/src/manifest.json b/src/manifest.json new file mode 100644 index 0000000..d0a3d8a --- /dev/null +++ b/src/manifest.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json.schemastore.org/web-manifest-combined.json", + "background_color": "#191919", + "categories": ["news", "social"], + "description": "a nostr news client to connect with the world.", + "display": "fullscreen", + "name": "nostr", + "short_name": "nostr", + "start_url": "https://nostr.ch/", + "icons": [{ + "src": "assets/nostr-favicon.png", + "sizes": "256x256", + "type": "image/png" + }, { + "src": "favicon.ico", + "sizes": "32x32" + }, { + "src": "assets/nostr-favicon.svg", + "sizes": "any" + }] +}