From 580545dd3d7d345441190b6f1335494b47a421a4 Mon Sep 17 00:00:00 2001 From: Starbeamrainbowlabs Date: Sat, 18 Feb 2023 02:53:38 +0000 Subject: [PATCH] add favicon --- favicon.png | Bin 0 -> 30219 bytes favicon.svg | 121 ++++++++++++++++++++++++++++++++++++++++++++++++ src/app.css | 6 +++ src/esbuild.mjs | 14 +++++- src/index.html | 8 +++- 5 files changed, 147 insertions(+), 2 deletions(-) create mode 100644 favicon.png create mode 100644 favicon.svg diff --git a/favicon.png b/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..a2c00c52f29e5fbe8d82b633e2400b84b18302c2 GIT binary patch literal 30219 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 K&H3Bp(f + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app.css b/src/app.css index 0f06bb4..aacfa9d 100644 --- a/src/app.css +++ b/src/app.css @@ -66,4 +66,10 @@ textarea, input, #output-graph { footer { grid-area: footer; margin: 1em 1em 0.5em 1em; +} + + +.icon { + max-width: 1.25em; + vertical-align: middle; } \ No newline at end of file diff --git a/src/esbuild.mjs b/src/esbuild.mjs index 65623d7..06c9130 100644 --- a/src/esbuild.mjs +++ b/src/esbuild.mjs @@ -9,6 +9,11 @@ import esbuild from 'esbuild'; const __dirname = import.meta.url.slice(7, import.meta.url.lastIndexOf("/")); const outdir = path.resolve(__dirname, "../dist"); +const copy = [ + "../favicon.png", + "../favicon.svg", +] + /** * Hashes the contents of a file. * @ref https://stackoverflow.com/a/44643479/1460422 @@ -34,7 +39,7 @@ async function do_html() { let algorithm = "sha256"; let css_hash = await hash_file(algorithm, path.join(outdir, "app.css")); let js_hash = await hash_file(algorithm, path.join(outdir, "app.js")); - + let html = (await fs.promises.readFile(path.join(__dirname, "index.html"), "utf-8")) .replace(/\{JS_HASH\}/g, js_hash) .replace(/\{CSS_HASH\}/g, css_hash) @@ -43,6 +48,13 @@ async function do_html() { .replace(/\{ALGO\}/g, algorithm); await fs.promises.writeFile(path.join(outdir, "index.html"), html); + + for (const filepath of copy) { + await fs.promises.copyFile( + path.join(__dirname, filepath), + path.join(outdir, path.basename(filepath)) + ) + } } (async () => { diff --git a/src/index.html b/src/index.html index 26d35f2..a6b2a7e 100644 --- a/src/index.html +++ b/src/index.html @@ -3,9 +3,15 @@ Tensorflow Summary Visualisation + + + -

Tensorflow Summary Visualisation

+

+ tfsummaryvis icon + Tensorflow Summary Visualisation +