add favicon
Some checks are pending
continuous-integration/laminar-eldarion Build failed with exit code 128 after 1 second

This commit is contained in:
Starbeamrainbowlabs 2023-02-18 02:53:38 +00:00
parent 3d777d0de1
commit 580545dd3d
Signed by: sbrl
GPG key ID: 1BE5172E637709C2
5 changed files with 147 additions and 2 deletions

BIN
favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

121
favicon.svg Normal file
View file

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="152.08279mm"
height="152.08279mm"
viewBox="0 0 152.0828 152.08279"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (1:1.2.2+202212051552+b0a8486541)"
sodipodi:docname="favicon.svg"
inkscape:export-filename="favicon.png"
inkscape:export-xdpi="171.02264"
inkscape:export-ydpi="171.02264"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.77147867"
inkscape:cx="372.01288"
inkscape:cy="307.20227"
inkscape:window-width="1839"
inkscape:window-height="1056"
inkscape:window-x="81"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-43.57888,-132.2594)">
<path
style="fill:none;fill-opacity:0.800554;stroke:#414f65;stroke-width:21.29999989;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 28.394409,257.97766 H 83.302658 L 141.48023,199.80009 V 124.72462"
id="path593" />
<g
id="g870"
transform="translate(-11.201123)">
<path
style="fill:none;fill-opacity:1;stroke:#414f65;stroke-width:13.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 150.54512,153.4599 H 121.80514"
id="path6498-5" />
<circle
style="fill:#fd7a05;fill-opacity:1;stroke:none;stroke-width:18.3649;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="path2707"
cx="106.59633"
cy="153.4599"
r="18.37009" />
</g>
<g
id="g866"
transform="translate(-13.351925,0.05290938)">
<path
style="fill:none;fill-opacity:1;stroke:#414f65;stroke-width:13.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 181.8927,175.46611 H 153.15272"
id="path6498" />
<circle
style="fill:#f19208;fill-opacity:1;stroke:none;stroke-width:18.3649;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="path2707-3"
cx="188.49271"
cy="175.46611"
r="18.37009" />
</g>
<g
id="g862"
transform="translate(-11.201123)">
<path
style="fill:none;fill-opacity:1;stroke:#414f65;stroke-width:13.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 135.77613,258.21735 115.45389,237.89511"
id="path6498-5-3-5" />
<circle
style="fill:#729307;fill-opacity:1;stroke:none;stroke-width:18.3649;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="path2707-6"
cx="140.18979"
cy="263.82999"
r="18.37009" />
</g>
<g
id="g858"
transform="translate(-11.201123)">
<path
style="fill:none;fill-opacity:1;stroke:#414f65;stroke-width:13.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 127.15682,220.81135 106.83458,200.48911"
id="path6498-5-3" />
<circle
style="fill:#ee4c2c;fill-opacity:1;stroke:none;stroke-width:18.3649;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="path2707-7"
cx="104.53458"
cy="195.67751"
r="18.37009" />
</g>
<g
id="g854"
transform="translate(-11.201123)">
<path
style="fill:none;fill-opacity:1;stroke:#414f65;stroke-width:13.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 77.226446,258.21735 V 229.47737"
id="path6498-5-1" />
<circle
style="fill:#351c60;fill-opacity:1;stroke:none;stroke-width:18.3649;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="path2707-7-6"
cx="77.226448"
cy="225.02669"
r="18.37009" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View file

@ -66,4 +66,10 @@ textarea, input, #output-graph {
footer { footer {
grid-area: footer; grid-area: footer;
margin: 1em 1em 0.5em 1em; margin: 1em 1em 0.5em 1em;
}
.icon {
max-width: 1.25em;
vertical-align: middle;
} }

View file

@ -9,6 +9,11 @@ import esbuild from 'esbuild';
const __dirname = import.meta.url.slice(7, import.meta.url.lastIndexOf("/")); const __dirname = import.meta.url.slice(7, import.meta.url.lastIndexOf("/"));
const outdir = path.resolve(__dirname, "../dist"); const outdir = path.resolve(__dirname, "../dist");
const copy = [
"../favicon.png",
"../favicon.svg",
]
/** /**
* Hashes the contents of a file. * Hashes the contents of a file.
* @ref https://stackoverflow.com/a/44643479/1460422 * @ref https://stackoverflow.com/a/44643479/1460422
@ -34,7 +39,7 @@ async function do_html() {
let algorithm = "sha256"; let algorithm = "sha256";
let css_hash = await hash_file(algorithm, path.join(outdir, "app.css")); 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 js_hash = await hash_file(algorithm, path.join(outdir, "app.js"));
let html = (await fs.promises.readFile(path.join(__dirname, "index.html"), "utf-8")) let html = (await fs.promises.readFile(path.join(__dirname, "index.html"), "utf-8"))
.replace(/\{JS_HASH\}/g, js_hash) .replace(/\{JS_HASH\}/g, js_hash)
.replace(/\{CSS_HASH\}/g, css_hash) .replace(/\{CSS_HASH\}/g, css_hash)
@ -43,6 +48,13 @@ async function do_html() {
.replace(/\{ALGO\}/g, algorithm); .replace(/\{ALGO\}/g, algorithm);
await fs.promises.writeFile(path.join(outdir, "index.html"), html); 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 () => { (async () => {

View file

@ -3,9 +3,15 @@
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>Tensorflow Summary Visualisation</title> <title>Tensorflow Summary Visualisation</title>
<link rel="icon" href="./favicon.png" type="image/png" />
<link rel="icon" href="./favicon.svg" type="image/svg+xml" />
</head> </head>
<body> <body>
<h1>Tensorflow Summary Visualisation</h1> <h1>
<img class="icon" src="./favicon.svg" alt="tfsummaryvis icon" aria-hidden="hidden" />
Tensorflow Summary Visualisation
</h1>
<textarea name="input-summary" id="input-summary" placeholder="Paste a tensorflow summary here"></textarea> <textarea name="input-summary" id="input-summary" placeholder="Paste a tensorflow summary here"></textarea>
<div id="output-graph"></div> <div id="output-graph"></div>