update base, css, and add js (currently unused outside of base file)
This commit is contained in:
parent
bb863c6786
commit
9c950c626b
186
base.html
186
base.html
@ -4,8 +4,164 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>avg convo</title>
|
<title>avg convo</title>
|
||||||
<link href="text_analysis.css" rel="stylesheet">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
--notes-color: rgb(255, 235, 181);
|
||||||
|
--spacer-color: rgba(0,0,0,0.4);
|
||||||
|
--spacer-color-2: rgba(0,0,0,0.2);
|
||||||
|
--left-color: rgb(167, 179, 167);
|
||||||
|
--right-color: rgb(97, 206, 97);
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "heonian";
|
||||||
|
src: url('https://cronut.cafe/~lustlion/myrheon/HeonianAlone.otf');
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
max-width: 600px;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.convo-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
flex-direction: row-reverse;
|
||||||
|
}
|
||||||
|
|
||||||
|
.convo {
|
||||||
|
width: 400px;
|
||||||
|
border: 1px solid var(--left-color);
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right .convo {
|
||||||
|
border: 1px solid var(--right-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.convo p {
|
||||||
|
margin: 0;
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.convo-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.convo-header img {
|
||||||
|
border-radius: 42069px;
|
||||||
|
width: 48px;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.convo-date {
|
||||||
|
font-size: 0.75rem;
|
||||||
|
color: var(--spacer-color);
|
||||||
|
flex-grow: 1;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notes {
|
||||||
|
width: 300px;
|
||||||
|
margin: 8px;
|
||||||
|
border-top: 1px solid var(--notes-color);
|
||||||
|
border-bottom: 1px solid var(--notes-color);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spacer {
|
||||||
|
width: calc(100% - 16px);
|
||||||
|
height: 1px;
|
||||||
|
margin-top: 8px; margin-bottom: 8px;
|
||||||
|
margin: auto;
|
||||||
|
background-color: var(--spacer-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.words {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.words table {
|
||||||
|
margin: auto;
|
||||||
|
border-collapse: collapse;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.words table td, .words table th {
|
||||||
|
padding: 8px;
|
||||||
|
border-right: 1px solid var(--spacer-color-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.words table td:last-child, .words table th:last-child {
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.words table th {
|
||||||
|
border-top: 1px solid var(--spacer-color);
|
||||||
|
border-bottom: 1px solid var(--spacer-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.words table td:first-of-type {
|
||||||
|
font-family: "heonian";
|
||||||
|
}
|
||||||
|
|
||||||
|
.clickable {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#popup-container {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: rgba(0,0,0,0.5);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
/* backdrop-filter: blur(20px); */
|
||||||
|
/* -webkit-backdrop-filter: blur(20px); */
|
||||||
|
/* above is completely unnecessary, but looks pretty */
|
||||||
|
transition: opacity 0.3s;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#popup {
|
||||||
|
width: 300px;
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 8px;
|
||||||
|
box-shadow: 0 0 8px rgba(0,0,0,0.2);
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
#popup h1 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#popup-heo {
|
||||||
|
font-family: "heonian";
|
||||||
|
}
|
||||||
|
|
||||||
|
data-swap {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@ -18,7 +174,7 @@
|
|||||||
<span>ariri</span>
|
<span>ariri</span>
|
||||||
<span class="convo-date">2022/05/04</span>
|
<span class="convo-date">2022/05/04</span>
|
||||||
</div>
|
</div>
|
||||||
<p>this is some text
|
<p>nyan'pash, re chu yesh :3
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="notes">
|
<div class="notes">
|
||||||
@ -34,13 +190,16 @@
|
|||||||
<span class="convo-date">2022/05/04</span>
|
<span class="convo-date">2022/05/04</span>
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
ariri is really cute actually
|
ee ee n_n
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer"></div>
|
<div class="spacer"></div>
|
||||||
<div class="words">
|
<div class="words">
|
||||||
<p>words used:</p>
|
<p>words used:</p>
|
||||||
|
<noscript>
|
||||||
|
(psst, turn on javascript, and you can click words for explanations!)<br><br>
|
||||||
|
</noscript>
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
@ -61,10 +220,31 @@
|
|||||||
<td>verb</td>
|
<td>verb</td>
|
||||||
<td>to like (but twice, for emphasis)</td>
|
<td>to like (but twice, for emphasis)</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>swag</td>
|
||||||
|
<td>really</td>
|
||||||
|
<td>this is a test</td>
|
||||||
|
<td>yolo swag</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="popup-container" style="opacity: 0; pointer-events: none;">
|
||||||
|
<div id="popup">
|
||||||
|
<h1>um</h1>
|
||||||
|
<div>
|
||||||
|
heonian: <span id="popup-heo"></span><br>
|
||||||
|
type: <span id="popup-type"></span>
|
||||||
|
</div>
|
||||||
|
<p id="popup-meaning"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
<data-swap>
|
||||||
|
<p></p>
|
||||||
|
<p></p>
|
||||||
|
</data-swap>
|
||||||
|
<script src="main.js"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
73
main.js
Normal file
73
main.js
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
//since this _entire thing_ will be generated,
|
||||||
|
//you could "theoretically" (you definitive can)
|
||||||
|
//just sorta. skip the whole "scan all words" bit,
|
||||||
|
//which is why that's in a separate function
|
||||||
|
|
||||||
|
let words = {}
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
createWordList();
|
||||||
|
injectWords();
|
||||||
|
document.querySelector("#popup-container").addEventListener("click", () => {
|
||||||
|
document.querySelector("#popup-container").style.opacity = 0;
|
||||||
|
document.querySelector("#popup-container").style.pointerEvents = "none";
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function showPopup(word) {
|
||||||
|
let p = document.querySelector("#popup");
|
||||||
|
let c = document.querySelector("#popup-container")
|
||||||
|
p.querySelector("h1").innerText = word;
|
||||||
|
p.querySelector("#popup-heo").innerText = words[word]["heonian"];
|
||||||
|
p.querySelector("#popup-type").innerText = words[word]["type"];
|
||||||
|
p.querySelector("#popup-meaning").innerText = words[word]["meaning"];
|
||||||
|
c.style.opacity = 1;
|
||||||
|
c.style.pointerEvents = "all";
|
||||||
|
}
|
||||||
|
|
||||||
|
function createWordList() { //sometimes i really dislike javascript..
|
||||||
|
let t = document.querySelector("tbody");
|
||||||
|
t.querySelectorAll("tr").forEach(element => {
|
||||||
|
if (element.querySelector("td")) {
|
||||||
|
let e = element.querySelectorAll("td");
|
||||||
|
let n = e[1].innerText;
|
||||||
|
words[n] = {};
|
||||||
|
words[n]["heonian"] = e[0].innerText;
|
||||||
|
words[n]["romanization"] = e[1].innerText;
|
||||||
|
words[n]["type"] = e[2].innerText;
|
||||||
|
words[n]["meaning"] = e[3].innerText;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function injectWords() {
|
||||||
|
Object.values(words).forEach(word => {
|
||||||
|
document.querySelectorAll(".convo p").forEach(convo => {
|
||||||
|
if (convo.innerText.includes(word["romanization"])) {
|
||||||
|
let m = convo.innerHTML.split(word["romanization"]);
|
||||||
|
let newhtml = document.createElement("p");
|
||||||
|
let c = m.length*2-1;
|
||||||
|
for (let x = 0; x < c; x++) {
|
||||||
|
if (x % 2 == 0) {
|
||||||
|
newhtml.innerHTML += m[x/2];
|
||||||
|
} else {
|
||||||
|
var e = document.createElement("span");
|
||||||
|
e.innerText = word["romanization"];
|
||||||
|
e.classList.add("clickable");
|
||||||
|
newhtml.appendChild(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
convo.innerHTML = newhtml.innerHTML;
|
||||||
|
convo.querySelectorAll(".clickable").forEach(element => {
|
||||||
|
element.addEventListener('click', function(e) {
|
||||||
|
showPopup(element.innerText);
|
||||||
|
}, false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onload = () => {
|
||||||
|
init();
|
||||||
|
}
|
@ -1,113 +1,158 @@
|
|||||||
:root {
|
:root {
|
||||||
--notes-color: rgb(255, 235, 181);
|
--notes-color: rgb(255, 235, 181);
|
||||||
--spacer-color: rgba(0,0,0,0.4);
|
--spacer-color: rgba(0, 0, 0, 0.4);
|
||||||
--spacer-color-2: rgba(0,0,0,0.2);
|
--spacer-color-2: rgba(0, 0, 0, 0.2);
|
||||||
--left-color: rgb(167, 179, 167);
|
--left-color: rgb(167, 179, 167);
|
||||||
--right-color: rgb(97, 206, 97);
|
--right-color: rgb(97, 206, 97);
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "heonian";
|
font-family: "heonian";
|
||||||
src: url('https://cronut.cafe/~lustlion/myrheon/HeonianAlone.otf');
|
src: url('https://cronut.cafe/~lustlion/myrheon/HeonianAlone.otf');
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif
|
||||||
}
|
}
|
||||||
|
|
||||||
main {
|
main {
|
||||||
max-width: 600px;
|
max-width: 600px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.convo-container {
|
.convo-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin: 8px;
|
margin: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right {
|
.right {
|
||||||
flex-direction: row-reverse;
|
flex-direction: row-reverse;
|
||||||
}
|
}
|
||||||
|
|
||||||
.convo {
|
.convo {
|
||||||
width: 400px;
|
width: 400px;
|
||||||
border: 1px solid var(--left-color);
|
border: 1px solid var(--left-color);
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right .convo {
|
.right .convo {
|
||||||
border: 1px solid var(--right-color);
|
border: 1px solid var(--right-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.convo p {
|
.convo p {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.convo-header {
|
.convo-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.convo-header img {
|
.convo-header img {
|
||||||
border-radius: 42069px;
|
border-radius: 42069px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.convo-date {
|
.convo-date {
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
color: var(--spacer-color);
|
color: var(--spacer-color);
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.notes {
|
.notes {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
margin: 8px;
|
margin: 8px;
|
||||||
border-top: 1px solid var(--notes-color);
|
border-top: 1px solid var(--notes-color);
|
||||||
border-bottom: 1px solid var(--notes-color);
|
border-bottom: 1px solid var(--notes-color);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spacer {
|
.spacer {
|
||||||
width: calc(100% - 16px);
|
width: calc(100% - 16px);
|
||||||
height: 1px;
|
height: 1px;
|
||||||
margin-top: 8px; margin-bottom: 8px;
|
margin-top: 8px;
|
||||||
|
margin-bottom: 8px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
background-color: var(--spacer-color);
|
background-color: var(--spacer-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.words {
|
.words {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.words table {
|
.words table {
|
||||||
margin: auto;
|
margin: auto;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.words table td, .words table th {
|
.words table td,
|
||||||
|
.words table th {
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
border-right: 1px solid var(--spacer-color-2);
|
border-right: 1px solid var(--spacer-color-2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.words table td:last-child, .words table th:last-child {
|
.words table td:last-child,
|
||||||
|
.words table th:last-child {
|
||||||
border-right: none;
|
border-right: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.words table th {
|
.words table th {
|
||||||
border-top: 1px solid var(--spacer-color);
|
border-top: 1px solid var(--spacer-color);
|
||||||
border-bottom: 1px solid var(--spacer-color);
|
border-bottom: 1px solid var(--spacer-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.words table td:first-of-type {
|
.words table td:first-of-type {
|
||||||
font-family: "heonian";
|
font-family: "heonian";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.clickable {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#popup-container {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
/* backdrop-filter: blur(20px); */
|
||||||
|
/* -webkit-backdrop-filter: blur(20px); */
|
||||||
|
/* above is completely unnecessary, but looks pretty */
|
||||||
|
transition: opacity 0.3s;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#popup {
|
||||||
|
width: 300px;
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 8px;
|
||||||
|
box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
#popup h1 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#popup-heo {
|
||||||
|
font-family: "heonian";
|
||||||
|
}
|
||||||
|
|
||||||
|
data-swap {
|
||||||
|
display: none;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user