Upgrade template to v3

This commit is contained in:
Florine W. Dekker 2022-11-21 22:17:55 +01:00
parent fe6617b626
commit 312dbb9141
Signed by: FWDekker
GPG Key ID: D3DCFAA8A4560BE0
5 changed files with 55 additions and 54 deletions

BIN
package-lock.json generated

Binary file not shown.

View File

@ -1,6 +1,6 @@
{ {
"name": "codsworth-namegen", "name": "codsworth-namegen",
"version": "1.1.8", "version": "1.1.9",
"description": "Choose a fitting name for your Fallout 4 character that Codsworth can pronounce", "description": "Choose a fitting name for your Fallout 4 character that Codsworth can pronounce",
"author": "Florine W. Dekker", "author": "Florine W. Dekker",
"browser": "dist/bundle.js", "browser": "dist/bundle.js",
@ -16,15 +16,15 @@
"deploy": "grunt deploy" "deploy": "grunt deploy"
}, },
"devDependencies": { "devDependencies": {
"grunt": "^1.4.1", "grunt": "^1.5.3",
"grunt-cli": "^1.4.3", "grunt-cli": "^1.4.3",
"grunt-contrib-clean": "^2.0.0", "grunt-contrib-clean": "^2.0.1",
"grunt-contrib-copy": "^1.0.0", "grunt-contrib-copy": "^1.0.0",
"grunt-contrib-watch": "^1.1.0", "grunt-contrib-watch": "^1.1.0",
"grunt-focus": "^1.0.0", "grunt-focus": "^1.0.0",
"grunt-text-replace": "^0.4.0", "grunt-text-replace": "^0.4.0",
"grunt-webpack": "^5.0.0", "grunt-webpack": "^5.0.0",
"webpack": "^5.69.1", "webpack": "^5.75.0",
"webpack-cli": "^4.9.2" "webpack-cli": "^5.0.0"
} }
} }

View File

@ -1,14 +1,14 @@
textarea.nameArea { textarea.name-area {
height: 10em; height: 15em;
} }
@media (min-width: 600px) { @media (min-width: 992px) {
.spacer { .spacer {
visibility: hidden; visibility: hidden;
} }
} }
@media (max-width: 600px) { @media (max-width: 992px) {
.spacer { .spacer {
display: none; display: none;
} }

View File

@ -9,17 +9,22 @@
content="Choose a fitting name for your Fallout 4 character that Codsworth can pronounce." /> content="Choose a fitting name for your Fallout 4 character that Codsworth can pronounce." />
<meta name="theme-color" content="#0033cc" /> <meta name="theme-color" content="#0033cc" />
<meta name="fwd:nav:target" content="#nav" />
<meta name="fwd:nav:highlight-path" content="/Tools/Codsworth Name Generator/" />
<meta name="fwd:footer:target" content="#footer" />
<meta name="fwd:footer:vcs-url" content="https://git.fwdekker.com/tools/codsworth-namegen/" />
<meta name="fwd:footer:version" content="v%%VERSION_NUMBER%%" />
<title>Codsworth name generator | FWDekker</title> <title>Codsworth name generator | FWDekker</title>
<link rel="stylesheet" href="https://static.fwdekker.com/fonts/roboto/roboto.css" /> <link rel="stylesheet" href="https://static.fwdekker.com/lib/template/3.x.x/template.css?v=%%VERSION_NUMBER%%" />
<link rel="stylesheet" href="https://static.fwdekker.com/lib/template/2.x.x/template.css" />
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<link rel="stylesheet" href="main.css?v=%%VERSION_NUMBER%%" /> <link rel="stylesheet" href="main.css?v=%%VERSION_NUMBER%%" />
<script async src="https://stats.fwdekker.com/count.js" <script async src="https://stats.fwdekker.com/count.js"
data-goatcounter="https://stats.fwdekker.com/count"></script> data-goatcounter="https://stats.fwdekker.com/count"></script>
</head> </head>
<body> <body>
<noscript> <noscript class="fwd-js-notice">
<img src="https://stats.fwdekker.com/count?p=/tools/codsworth-namegen/" alt="Counting pixel" /> <img src="https://stats.fwdekker.com/count?p=/tools/codsworth-namegen/" alt="Counting pixel" />
<p> <p>
@ -28,41 +33,46 @@
instructions on how to enable JavaScript in your web browser</a>. instructions on how to enable JavaScript in your web browser</a>.
</p> </p>
</noscript> </noscript>
<main class="hidden"> <nav id="nav"></nav>
<div id="nav"></div> <main class="container hidden">
<div id="contents"> <div role="document">
<div id="header"></div> <section>
<header class="fwd-header">
<hgroup>
<h1><a href=".">Codsworth Name Generator</a></h1>
<h2>Choose a fitting name for your Fallout 4 character that Codsworth can pronounce.</h2>
</hgroup>
</header>
<section class="container"> <div class="grid">
<div class="row"> <div>
<div class="column">
<h2>Similar names</h2> <h2>Similar names</h2>
<label for="similarInput">Your name</label> <label for="similar-input">Your name</label>
<input id="similarInput" type="text" autofocus /> <input id="similar-input" type="text" autofocus />
<button id="generateSimilar" type="button">Generate similar names</button> <button id="generate-similar" type="button">Generate similar names</button>
<label for="similarNames">Similar names are...</label> <label for="similar-names">Similar names are...</label>
<textarea id="similarNames" class="nameArea" readonly></textarea> <textarea id="similar-names" class="name-area" readonly></textarea>
</div> </div>
<div class="column"> <div>
<h2>Random names</h2> <h2>Random names</h2>
<!-- Spacer to put textareas at same height --> <!-- Spacer to put textareas at same height -->
<label for="spacerInput" class="spacer">Spacer</label> <label for="spacer-input" class="spacer">Spacer</label>
<input id="spacerInput" class="spacer" type="text" /> <input id="spacer-input" class="spacer" type="text" />
<button id="generateRandom" type="button">Generate random name</button> <button id="generate-random" type="button">Generate random name</button>
<label for="randomNames">Your name is...</label> <label for="random-names">Your random name is...</label>
<textarea id="randomNames" class="nameArea" readonly></textarea> <textarea id="random-names" class="name-area" readonly></textarea>
</div> </div>
</div> </div>
</section> </section>
<footer id="footer"></footer>
</div> </div>
<div id="footer"></div>
</main> </main>
<script src="https://static.fwdekker.com/lib/template/2.x.x/template.js"></script> <script src="https://static.fwdekker.com/lib/template/3.x.x/template.js?v=%%VERSION_NUMBER%%"></script>
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<script src="bundle.js?v=%%VERSION_NUMBER%%"></script> <script src="bundle.js?v=%%VERSION_NUMBER%%"></script>
</body> </body>

View File

@ -1,4 +1,5 @@
const {$, doAfterLoad, footer, header, nav} = window.fwdekker; // noinspection JSUnresolvedVariable
const {$, doAfterLoad} = window.fwdekker;
import {jaroWinkler} from "./jaroWinkler"; import {jaroWinkler} from "./jaroWinkler";
@ -87,33 +88,18 @@ class CircularBuffer {
} }
// Load template
doAfterLoad(() => {
$("#nav").appendChild(nav("/Tools/Codsworth Name Generator/"));
$("#header").appendChild(header({
title: "Codsworth Name Generator",
description: `Choose a fitting name for your Fallout 4 character that Codsworth can pronounce`
}));
$("#footer").appendChild(footer({
vcsURL: "https://git.fwdekker.com/tools/codsworth-namegen/",
version: "v%%VERSION_NUMBER%%"
}));
$("main").classList.remove("hidden");
$("[autofocus]").focus();
});
// Event handlers // Event handlers
doAfterLoad(() => { doAfterLoad(() => {
const generateSimilar = () => { const generateSimilar = () => {
const name = $("#similarInput").value; const name = $("#similar-input").value;
if (name === undefined || name === "") if (name === undefined || name === "")
return; return;
$("#similarNames").value = jaroWinklerFinder(name, names, similarCount).join("\n"); $("#similar-names").value = jaroWinklerFinder(name, names, similarCount).join("\n");
}; };
$("#generateSimilar").addEventListener("click", generateSimilar); $("#generate-similar").addEventListener("click", generateSimilar);
$("#similarInput").addEventListener("keypress", event => { $("#similar-input").addEventListener("keypress", event => {
if (event.key === "Enter") { if (event.key === "Enter") {
generateSimilar(); generateSimilar();
event.preventDefault(); event.preventDefault();
@ -122,11 +108,16 @@ doAfterLoad(() => {
const randomBuffer = new CircularBuffer(randomCount); const randomBuffer = new CircularBuffer(randomCount);
$("#generateRandom").onclick = () => { $("#generate-random").onclick = () => {
randomBuffer.add(getRandomFromArray(names)); randomBuffer.add(getRandomFromArray(names));
const randomOutput = $("#randomNames"); const randomOutput = $("#random-names");
randomOutput.value = randomBuffer.getEntriesInOrder().join("\n"); randomOutput.value = randomBuffer.getEntriesInOrder().join("\n");
randomOutput.scrollTop = randomOutput.scrollHeight; randomOutput.scrollTop = randomOutput.scrollHeight;
}; };
$("main").classList.remove("hidden");
$("[autofocus]").focus();
}); });