random word shortcode

This commit is contained in:
zoe 2022-04-16 22:01:53 +02:00
parent 26372fdcca
commit d267fc4356
10 changed files with 91 additions and 3 deletions

21
\ Normal file
View File

@ -0,0 +1,21 @@
const buttons = document.getElementsByClassName("randomword-button");
export function randomizeWords() {
registerButtons();
}
function registerButtons() {
for (let button of buttons) {
button.addEventListener("click", function () {
button.innerHTML = processWordlist(button.getAttribute("data-wordlist"));
});
button.click();
}
}
// takes all the words and returns only one
function processWordlist(wordlist) {
return wordlist;
}
function stripSpaces() {}

View File

@ -35,6 +35,25 @@ a {
color: $dark-ln; color: $dark-ln;
} }
.randomword-button{
&.light {
border-color: $light-fg;
background-color: $light-bg;
color: $light-fg;
&:hover {
color: $light-bg;
background-color: $light-fg;
}
}
border-color: $dark-fg;
background-color: $dark-bg;
color: $dark-fg;
&:hover{
color: $dark-bg;
background-color: $dark-fg;
}
}
a.footer-nav-item.active, a.footer-nav-item.active,
a.footer-nav-item:hover { a.footer-nav-item:hover {
&.light { &.light {

View File

@ -21,13 +21,19 @@ footer {
margin-bottom: 84pt; margin-bottom: 84pt;
} }
.randomword-button {
width: auto;
height: auto;
}
#content p, #content p,
#content ul, #content ul,
#content ol, #content ol,
#content table, #content table,
code, code,
.postdescription, .postdescription,
hr hr,
#content div .video-player
{ {
margin-right: 24%; margin-right: 24%;
margin-left: 24%; margin-left: 24%;

View File

@ -108,3 +108,12 @@ ul a{
padding: 0.12em; padding: 0.12em;
} }
} }
.randomword-button {
border-style: solid;
padding: 0.12em;
border-radius: 0;
&::before {
content: "";
}
}

View File

@ -5,6 +5,5 @@
{{- partial "header.html" . -}} {{- partial "header.html" . -}}
<div id="content">{{- block "main" . }}{{- end }}</div> <div id="content">{{- block "main" . }}{{- end }}</div>
{{- partial "footer.html" . -}} {{- partial "footer.html" . -}}
<script type="module" src="/js/main.js"></script>
</body> </body>
</html> </html>

View File

@ -2,6 +2,7 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ .Title }}@{{ .Site.Title }}</title> <title>{{ .Title }}@{{ .Site.Title }}</title>
<script type="module" src="/js/main.js"></script>
{{ $css := resources.Get "scss/main.scss" }} {{ $css := resources.Get "scss/main.scss" }}
{{ $css = $css | toCSS }} {{ $css = $css | toCSS }}
<link rel="stylesheet" href="{{ $css.RelPermalink }}"> <link rel="stylesheet" href="{{ $css.RelPermalink }}">

View File

@ -0,0 +1 @@
<button class="randomword-button colorswitch" data-wordlist="{{.Get 0}}"></button>

View File

@ -12,7 +12,6 @@ function switchToLight() {
function switchToDark() { function switchToDark() {
button.innerHTML = ""; button.innerHTML = "";
for (let item of colorswitchers) { for (let item of colorswitchers) {
console.log(item);
item.classList.remove("light"); item.classList.remove("light");
} }
} }

View File

@ -1,7 +1,9 @@
import { updateMode } from "./lightmode.js"; import { updateMode } from "./lightmode.js";
import { activateHamburger } from "./hamburger.js"; import { activateHamburger } from "./hamburger.js";
import { randomizeWords } from "./randomword.js";
document.addEventListener("DOMContentLoaded", () => { document.addEventListener("DOMContentLoaded", () => {
updateMode(); updateMode();
activateHamburger(); activateHamburger();
randomizeWords();
}); });

31
static/js/randomword.js Normal file
View File

@ -0,0 +1,31 @@
const buttons = document.getElementsByClassName("randomword-button");
export function randomizeWords() {
registerButtons();
}
function registerButtons() {
for (let button of buttons) {
button.addEventListener("click", function () {
let new_word = processWordlist(button.getAttribute("data-wordlist"));
// do this so people dont have to click twice
if (button.innerHTML == new_word) {
button.click();
console.log("oh no!!! this was already the value!");
} else {
button.innerHTML = new_word;
}
});
button.click();
}
}
// takes all the words and returns only one
function processWordlist(wordlist) {
let seperated = wordlist.split(",");
return seperated.random();
}
Array.prototype.random = function () {
return this[Math.floor(Math.random() * this.length)];
};