Compare commits

..

No commits in common. "a035ea3201193b579b67871281d922ffc475108d" and "a2e7559f5d34aec44da208b541c4e2b6352559e3" have entirely different histories.

6 changed files with 15 additions and 84 deletions

3
.gitmodules vendored
View File

@ -1,3 +0,0 @@
[submodule "heonian-ime"]
path = heonian-ime
url = https://git.succubi.services/heonian.org/heonian-ime

@ -1 +0,0 @@
Subproject commit 76bc6baf11f2b21f365e6f2ef36c05b00ea04c84

View File

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>heonian web dictionary</title> <title>heonian web dictionary</title>
@ -37,7 +37,6 @@
</main> </main>
<script src="./heonian-ime/ime.js"></script>
<script src="./main.js"></script> <script src="./main.js"></script>
</body> </body>
</html> </html>

View File

@ -32,33 +32,19 @@
:root { :root {
--font: "Helvetica Neue", Helvetica, Arial, sans-serif; --font: "Helvetica Neue", Helvetica, Arial, sans-serif;
--font-h: "heonian", "Helvatica Neue", Helvetica, Arial, sans-serif; --font-h: "heonian", "Helvatica Neue", Helvetica, Arial, sans-serif;
--fg: rgb(0,0,0); --nice-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
--bg: rgb(255,255,255); --grey: rgb(226, 226, 226);
--grey: rgb(152, 152, 152); --darkgrey: rgb(150, 150, 150);
--darkgrey: rgb(100, 100, 100);
--link: rgb(27 120 151);
}
@media (prefers-color-scheme: dark) {
:root {
--fg: rgb(255,255,255);
--bg: rgb(0,0,0);
--grey: rgb(226, 226, 226);
--darkgrey: rgb(215, 215, 215);
--link: rgb(27 120 151);
}
} }
body { body {
margin: 0; margin: 0;
padding: 0; padding: 0;
font-family: var(--font); font-family: var(--font);
color: var(--fg);
background-color: var(--bg);
} }
a { a {
color: var(--link); color: rgb(119, 205, 233);
text-decoration: none; text-decoration: none;
} }
@ -101,9 +87,6 @@ header #search button {
text-align: center; text-align: center;
height: 2rem; height: 2rem;
border-left: 1px solid var(--grey); border-left: 1px solid var(--grey);
color: var(--grey);
transition: 0.3s color ease;
cursor: pointer;
} }
header input { header input {
@ -117,8 +100,6 @@ header input {
font-weight: 100; font-weight: 100;
transition: border-color 0.3s; transition: border-color 0.3s;
width: calc(100% - 52px - 24px); width: calc(100% - 52px - 24px);
background-color: var(--bg);
color: var(--fg);
} }
header input:focus { header input:focus {
@ -164,9 +145,7 @@ main {
opacity: 0; opacity: 0;
max-width: 600px; max-width: 600px;
margin: auto; margin: auto;
margin-top: calc(1rem + 24px); margin-top: 1rem;
padding-left: 1rem;
padding-right: 1rem;
} }
.main-animation { .main-animation {
@ -187,10 +166,6 @@ main {
border-bottom: 1px solid var(--darkgrey); border-bottom: 1px solid var(--darkgrey);
} }
.result:first-child {
padding-top: 0;
}
.result-meaning { .result-meaning {
padding-bottom: 8px; padding-bottom: 8px;
} }
@ -217,22 +192,13 @@ main {
content: ". "; content: ". ";
} }
.result-notes {
font-size: 0.85rem;
color: var(--darkgrey);
margin-top: 6px;
margin-bottom: 6px;
}
.result summary { .result summary {
margin-top: 4px;
color: grey; color: grey;
} }
.result details p { .result details p {
margin-top: 4px; margin-top: 4px;
margin-bottom: 4px; margin-bottom: 4px;
font-size: 1.25rem;
} }
/* todo. organize this file better. this is a fucking mess */ /* todo. organize this file better. this is a fucking mess */

40
main.js
View File

@ -5,19 +5,6 @@ let searchDictionary = {};
let header = null; let header = null;
let main = null; let main = null;
let ime = null;
function toggleIME() {
if (ime == null) {
ime = new HeonianIME(header.querySelector("input"));
header.querySelector("#search button").style.color = "var(--fg)";
} else {
ime.imeDetach();
ime = null;
header.querySelector("#search button").style.color = "var(--grey)";
}
}
function animateHeader(inout = false) { function animateHeader(inout = false) {
//todo: debounce this //todo: debounce this
if (inout) { if (inout) {
@ -60,14 +47,10 @@ document.addEventListener("keydown", (e) => {
if (!header.querySelector("input").matches(":focus") && !header.classList.contains("fullscreen")) { if (!header.querySelector("input").matches(":focus") && !header.classList.contains("fullscreen")) {
e.preventDefault(); e.preventDefault();
animateHeader(true); animateHeader(true);
} else if (header.querySelector("input").matches(":focus") && ime != null) {
toggleIME();
} else if (header.querySelector("input").matches(":focus")) {
header.querySelector("input").value = "";
} }
} }
if (e.keyCode === 13) { if (e.keyCode === 13) {
if (header.querySelector("input").matches(":focus") && ime == null) { if (header.querySelector("input").matches(":focus")) {
//search //search
e.preventDefault(); e.preventDefault();
if (header.classList.contains("fullscreen")) { if (header.classList.contains("fullscreen")) {
@ -79,7 +62,7 @@ document.addEventListener("keydown", (e) => {
}); });
function stripWord(word) { function stripWord(word) {
return word.replace(/[^a-zA-Z-]/gu, "").toLowerCase(); return word.replace(/[^a-zA-Z-]/gu, "");
} }
heonianVowels = { heonianVowels = {
@ -248,26 +231,14 @@ function doSearch() {
meaning.innerHTML += "<br><details><summary>Translation</summary><p>"+json[results[i]][o]["translation"]+"</p></details>"; meaning.innerHTML += "<br><details><summary>Translation</summary><p>"+json[results[i]][o]["translation"]+"</p></details>";
} }
//example //example
if (json[results[i]][o]["examples"] != undefined) { if (json[results[i]][o]["example"] != undefined) {
let temp = "" //todo
temp += "<details><summary>Examples</summary><p>";
for (let e in json[results[i]][o]["examples"]) {
temp += "<span class='heonian'>"+e+"</span> - "+json[results[i]][o]["examples"][e];
}
temp += "</p></details>";
meaning.innerHTML += temp;
} }
//notes //notes
if (json[results[i]][o]["notes"] != undefined) { if (json[results[i]][o]["notes"] != undefined) {
meaning.innerHTML += "<p class='result-notes'>"+json[results[i]][o]["notes"]+"</p>"; meaning.innerHTML += "<br><p class='result-notes'>"+json[results[i]][o]["notes"]+"</p>";
} }
//(source, etc) //(source, etc)
if (json[results[i]][o]["canon-etymology"] != undefined) {
meaning.innerHTML += "<details><summary>Canon Etymology</summary><p>"+json[results[i]][o]["canon-etymology"]+"</p></details>";
}
if (json[results[i]][o]["meta-etymology"] != undefined) {
meaning.innerHTML += "<details><summary>Meta Etymology</summary><p>"+json[results[i]][o]["meta-etymology"]+"</p></details>";
}
//todo //todo
result.appendChild(meaning); //y, yeah. result.appendChild(meaning); //y, yeah.
} }
@ -279,6 +250,5 @@ function doSearch() {
window.onload = () => { window.onload = () => {
header = document.querySelector("header"); header = document.querySelector("header");
main = document.querySelector("main"); main = document.querySelector("main");
header.querySelector("#search button").onclick = () => {toggleIME();};
loadDictionary(); loadDictionary();
} }

View File

@ -227,7 +227,7 @@
{ {
"type": "modifier", "type": "modifier",
"meaning": "Existing in plentiful supply.", "meaning": "Existing in plentiful supply.",
"translation": "Abundant" "translation": "Abundant",
}, },
{ {
"type": "pronoun", "type": "pronoun",
@ -262,12 +262,12 @@
{ {
"type": "verb", "type": "verb",
"meaning": "To deprive of life.", "meaning": "To deprive of life.",
"translation": "To kill" "translation": "To kill",
}, },
{ {
"type": "verb", "type": "verb",
"meaning": "To destroy a vitally essential quality in.", "meaning": "To destroy a vitally essential quality in.",
"translation": "To kill" "translation": "To kill",
} }
], ],
"" : [ "" : [
@ -295,7 +295,7 @@
{ {
"type": "modifier", "type": "modifier",
"meaning": "Being such that every part of the surface or the circumference is equidistant from the center.", "meaning": "Being such that every part of the surface or the circumference is equidistant from the center.",
"translation": "Round" "translation": "Round",
} }
], ],
"" : [ "" : [