diff --git a/constants.json b/constants.json
index 4882a9d..96a914e 100644
--- a/constants.json
+++ b/constants.json
@@ -124,193 +124,231 @@
}
}
},
- "highlightedWords": {
- "birds": {
+ "highlightedWords": [
+ {
+ "words": [
+ "birds",
+ "Pissing",
+ "Starwalker",
+
+ "word highlighting",
+ "highlight",
+ "Highlight",
+
+ "Javascript",
+ "JSON",
+ "JQuery",
+ ".js"
+ ],
"color": "yellow"
},
- "Pissing": {
- "color": "yellow"
- },
- "Starwalker": {
- "color": "yellow"
- },
- "word highlighting": {
- "color": "yellow"
- },
- "Godot Engine": {
- "color": "#64B5F6"
- },
- "Javascript": {
- "color": "yellow"
- },
- "JSON": {
- "color": "yellow"
- },
- "JQuery": {
- "color": "yellow"
- },
- "NodeJS": {
- "color": "limegreen"
- },
- "Violet": {
- "color": "rgb(200, 150, 255)"
- },
- "Purgatory": {
- "color": "rgb(200, 150, 255)"
- },
- "Limbo": {
- "color": "rgb(200, 150, 255)"
- },
- "Asahi": {
- "color": "rgb(255, 175, 175)",
+ {
+ "words": [
+ "Teto Tuesday",
+ "Teto Territory",
+ "Teto",
+ "Kasane"
+ ],
+ "color": "#d5738d",
"caseInsensitive": true
},
- "Lunya": {
- "color": "rgb(255, 175, 175)"
- },
- "Sylvie": {
- "color": "#f768a4"
- },
- "bisexual": {
- "color": "rgb(214, 2, 112)"
- },
- "enby": {
- "color": "rgb(252, 244, 52)"
- },
- "YouTube": {
- "color": "rgb(255, 0, 0)",
- "caseInsensitive": true
- },
- "Fedi": {
- "color": "rgb(175, 125, 200)"
- },
- "Matrix": {
- "color": "limegreen"
- },
- "Element": {
- "color": "rgb(100, 255, 200)"
- },
- "Codeberg": {
- "color": "rgb(0, 255, 255)"
- },
- "Code": {
- "color": "rgb(150, 175, 255)"
- },
- "Codium": {
- "color": "rgb(150, 175, 255)"
- },
- "Docker": {
- "color": "blue"
- },
- "Github": {
- "color": "gray"
- },
- "Steam": {
- "color": "lightgray"
- },
- "Univerter": {
- "link": "https://univerter.dev/",
- "color": "rgb(200, 175, 255)"
- },
- "Ko-fi": {
- "color": "rgb(255, 150, 150)"
- },
- "Revolt": {
- "color": "rgb(255, 50, 50)"
- },
- "Discord": {
- "color": "rgb(150, 150, 255)"
- },
- "SearXNG": {
- "color": "rgb(100, 100, 255)"
- },
- "highlight": {
- "color": "yellow",
- "caseInsensitive": true
- },
- "Forgejo": {
- "color": "orange"
- },
- "HTML": {
- "color": "orange"
- },
- "CSS": {
- "color": "rgb(50, 200, 255)"
- },
- "Thumbor": {
- "color": "rgb(225, 225, 255)"
- },
- "Spotify": {
- "color": "limegreen"
- },
- "ULTRAKILL": {
+ {
+ "words": [
+ "YouTube",
+ "ULTRAKILL",
+ "Lethal Company"
+ ],
"color": "red",
"caseInsensitive": true
},
- "Risk of Rain 2": {
+ {
+ "words": [
+ "Spooky's Jump Scare Mansion"
+ ],
+ "color": "rgb(150, 175, 255)"
+ },
+ {
+ "words": [
+ "Forgejo",
+ "HTML",
+ "Shortcat",
+ "Valve",
+ "Spooky"
+ ],
+ "color": "orange"
+ },
+ {
+ "words": [
+ "NodeJS",
+ "Spotify",
+ "Wambu"
+ ],
+ "color": "limegreen"
+ },
+ {
+ "words": [
+ "Godot Engine"
+ ],
+ "color": "#64B5F6"
+ },
+ {
+ "words": [
+ "Violet",
+ "Purgatory",
+ "Limbo"
+ ],
+ "color": "rgb(200, 150, 255)"
+ },
+ {
+ "words": [
+ "bisexual"
+ ],
+ "color": "rgb(214, 2, 112)"
+ },
+ {
+ "words": [
+ "Fedi"
+ ],
+ "color": "rgb(175, 125, 200)"
+ },
+ {
+ "words": [
+ "Matrix"
+ ],
+ "color": "limegreen"
+ },
+ {
+ "words": [
+ "Element"
+ ],
+ "color": "rgb(100, 255, 200)"
+ },
+ {
+ "words": [
+ "Codeberg"
+ ],
+ "color": "rgb(0, 255, 255)"
+ },
+ {
+ "words": [
+ "Code"
+ ],
+ "color": "rgb(150, 175, 255)"
+ },
+ {
+ "words": [
+ "Codium"
+ ],
+ "color": "rgb(150, 175, 255)"
+ },
+ {
+ "words": [
+ "Docker"
+ ],
+ "color": "blue"
+ },
+ {
+ "words": [
+ "Github"
+ ],
+ "color": "gray"
+ },
+ {
+ "words": [
+ "Steam"
+ ],
+ "color": "lightgray"
+ },
+ {
+ "words": [
+ "Univerter"
+ ],
+ "link": "https://univerter.dev/",
+ "color": "rgb(200, 175, 255)"
+ },
+ {
+ "words": [
+ "Ko-fi"
+ ],
+ "color": "rgb(255, 150, 150)"
+ },
+ {
+ "words": [
+ "Revolt"
+ ],
+ "color": "rgb(255, 50, 50)"
+ },
+ {
+ "words": [
+ "Discord"
+ ],
+ "color": "rgb(150, 150, 255)"
+ },
+ {
+ "words": [
+ "SearXNG"
+ ],
+ "color": "rgb(100, 100, 255)"
+ },
+ {
+ "words": [
+ "CSS"
+ ],
+ "color": "rgb(50, 200, 255)"
+ },
+ {
+ "words": [
+ "Thumbor"
+ ],
+ "color": "rgb(225, 225, 255)"
+ },
+ {
+ "words": [
+ "Risk of Rain 2"
+ ],
"color": "rgb(150, 220, 255)",
"caseInsensitive": true
},
- "Liberapay": {
+ {
+ "words": [
+ "Liberapay"
+ ],
"color": "yellow"
},
- "Roblox": {
+ {
+ "words": [
+ "Roblox"
+ ],
"color": "rgb(225, 225, 225)"
},
- "Teto Tuesday": {
- "color": "#d5738d",
- "caseInsensitive": true
- },
- "Teto Territory": {
- "color": "#d5738d",
- "caseInsensitive": true
- },
- "Teto": {
- "color": "#d5738d",
- "caseInsensitive": true
- },
- "Kasane": {
- "color": "#d5738d",
- "caseInsensitive": true
- },
- "Ryouiki Tenkai": {
+ {
+ "words": [
+ "Ryouiki Tenkai"
+ ],
"bold": true,
"italicized": true,
"caseInsensitive": true
},
- "Pokerogue": {
+ {
+ "words": [
+ "Pokerogue"
+ ],
"caseInsensitive": true,
"color": "#366383",
"outline": "#d43131",
"bold": true
},
- "page embed": {
+ {
+ "words": [
+ "page embed"
+ ],
"link": "/faq#embeds"
},
- "YIP": {
+ {
+ "words": [
+ "YIP"
+ ],
"italicized": true
- },
- "Lethal Company": {
- "color": "red"
- },
- "Wambu": {
- "color": "limegreen"
- },
- "Spooky's Jump Scare Mansion": {
- "color": "rgb(150, 175, 255)"
- },
- "Spooky": {
- "color": "orange"
- },
- ".js": {
- "color": "yellow"
- },
- "Shortcat": {
- "color": "orange"
- },
- "Valve": {
- "color": "orange",
- "caseInsensitive": true
}
- }
+ ]
}
\ No newline at end of file
diff --git a/pageUpdater.js b/pageUpdater.js
index 5207af1..1aae9f6 100644
--- a/pageUpdater.js
+++ b/pageUpdater.js
@@ -90,95 +90,103 @@ function highlighter(json, full = true) {
element.children = highlighter(element.children, full)
}
} else if (element.type == "text") {
- var highTable = Object.keys(highlightedWords)
+ var index = 0
+ for (let i = 0; i < highlightedWords.length; i++) {
+ var dict = highlightedWords[i]
+ for (let x = 0; x < dict.words.length; x++) {
+ index += 1
+ var term = dict.words[x];
+ var termProps = dict
- for (let index = 0; index < highTable.length; index++) {
- var term = highTable[index];
- var termProps = highlightedWords[term]
+ var reg = term
+ if (termProps.caseInsensitive) {
+ reg = new RegExp(`(${term})`, "gi")
+ }
- var reg = term
- if (termProps.caseInsensitive) {
- reg = new RegExp(`(${term})`, "gi")
+ element.content = element.content.replaceAll(`{${term}}`, "TEMPORARY_REPLACE")
+ element.content = element.content.replaceAll(reg, "{TERM" + index + "}")
+ element.content = element.content.replaceAll("TEMPORARY_REPLACE", `${term}`)
}
-
- element.content = element.content.replaceAll(`{${term}}`, "TEMPORARY_REPLACE")
- element.content = element.content.replaceAll(reg, "{TERM" + index + "}")
- element.content = element.content.replaceAll("TEMPORARY_REPLACE", `${term}`)
}
if (full) {
- for (let index = 0; index < highTable.length; index++) {
- var termKey = "{TERM" + index + "}"
- var termProps = highlightedWords[highTable[index]]
- while (element.content.includes(termKey)) {
- var termIndex = element.content.indexOf(termKey)
+ var index = 0
+ for (let i = 0; i < highlightedWords.length; i++) {
+ var dict = highlightedWords[i]
+ for (let x = 0; x < dict.words.length; x++) {
+ index += 1
+ var termKey = "{TERM" + index + "}"
+ var termProps = dict
+ while (element.content.includes(termKey)) {
+ var termIndex = element.content.indexOf(termKey)
- var spanEnd = element.content.indexOf(" ", termIndex)
+ var spanEnd = element.content.indexOf(" ", termIndex)
- if (spanEnd == -1) {
- spanEnd = element.content.length
- }
-
- var spanStart = element.content.substring(0, termIndex).lastIndexOf(" ") + 1
-
- // if (highTable[index] == "ULTRAKILL") {
- // console.log(startContent, " ---- ", endContent)
- // }
-
- var startContent = element.content.substring(spanStart - 1, termIndex)
- var endContent = element.content.substring(termIndex + termKey.length, spanEnd)
-
- if (startContent.includes("(") && !endContent.includes(")")) {
- spanEnd = element.content.indexOf(")", spanStart) + 1
- endContent = element.content.substring(termIndex + termKey.length, spanEnd)
- }
- else if (endContent.includes(")") && !startContent.includes("(")) {
- spanStart = element.content.substring(0, spanStart).lastIndexOf("(")
- startContent = element.content.substring(spanStart - 1, termIndex)
- }
-
- var style = termProps.style || ""
- var classes = termProps.classes || ""
- var link = termProps.link || ""
-
- if (termProps.color) {
- style += `color: ${termProps.color};`
- }
-
- if (termProps.italicized) {
- style += "font-style: italic;"
- }
-
- if (termProps.outline) {
- var width = 2
- // style += `text-shadow: -1px -1px 0 ${termProps.outline}, 1px -1px 0 ${termProps.outline}, -1px 1px 0 ${termProps.outline}, 1px 1px 0 ${termProps.outline};`
- style += `-webkit-text-stroke: 1px ${termProps.outline};`
- // ^ Not in use because it looks bad :30
- }
-
- if (termProps.bold) {
- classes += "bold"
- }
-
- if (style.length > 2) {
- style = `style="${style}"`
- }
-
- if (classes.length > 2) {
- classes = `class="${classes}"`
- }
-
- var stuff = (startContent + highTable[index] + endContent).trim()
-
- if (!stuff.includes("span")) {
- var replacement = `${stuff} `
-
- if (link) {
- replacement = `${replacement} `
+ if (spanEnd == -1) {
+ spanEnd = element.content.length
+ }
+
+ var spanStart = element.content.substring(0, termIndex).lastIndexOf(" ") + 1
+
+ // if (highTable[index] == "ULTRAKILL") {
+ // console.log(startContent, " ---- ", endContent)
+ // }
+
+ var startContent = element.content.substring(spanStart - 1, termIndex)
+ var endContent = element.content.substring(termIndex + termKey.length, spanEnd)
+
+ if (startContent.includes("(") && !endContent.includes(")")) {
+ spanEnd = element.content.indexOf(")", spanStart) + 1
+ endContent = element.content.substring(termIndex + termKey.length, spanEnd)
+ }
+ else if (endContent.includes(")") && !startContent.includes("(")) {
+ spanStart = element.content.substring(0, spanStart).lastIndexOf("(")
+ startContent = element.content.substring(spanStart - 1, termIndex)
+ }
+
+ var style = termProps.style || ""
+ var classes = termProps.classes || ""
+ var link = termProps.link || ""
+
+ if (termProps.color) {
+ style += `color: ${termProps.color};`
+ }
+
+ if (termProps.italicized) {
+ style += "font-style: italic;"
+ }
+
+ if (termProps.outline) {
+ var width = 2
+ // style += `text-shadow: -1px -1px 0 ${termProps.outline}, 1px -1px 0 ${termProps.outline}, -1px 1px 0 ${termProps.outline}, 1px 1px 0 ${termProps.outline};`
+ style += `-webkit-text-stroke: 1px ${termProps.outline};`
+ // ^ Not in use because it looks bad :30
+ }
+
+ if (termProps.bold) {
+ classes += "bold"
+ }
+
+ if (style.length > 2) {
+ style = `style="${style}"`
+ }
+
+ if (classes.length > 2) {
+ classes = `class="${classes}"`
+ }
+
+ var stuff = (startContent + dict.words[x] + endContent).trim()
+
+ if (!stuff.includes("span")) {
+ var replacement = `${stuff} `
+
+ if (link) {
+ replacement = `${replacement} `
+ }
+ element.content = element.content.substring(0, spanStart) + replacement + element.content.substring(spanEnd)
+ } else {
+ element.content = element.content.replace(termKey, dict.words[x])
}
- element.content = element.content.substring(0, spanStart) + replacement + element.content.substring(spanEnd)
- } else {
- element.content = element.content.replace(termKey, highTable[index])
}
}
}
@@ -194,9 +202,16 @@ function highlighter(json, full = true) {
function converter(html, dynamic = true) {
var startTime = Date.now()
var config = JSON.parse(fs.readFileSync(path.join(__dirname, 'config/config.json')))
-
+
var staticReplacers = {
- "ALL_HIGHLIGHTS": Object.keys(highlightedWords).join(", "),
+ "ALL_HIGHLIGHTS": () => {
+ var addedHTML = ""
+ for (var i = 0; i < highlightedWords.length; i++) {
+ addedHTML += highlightedWords[i].words.join(", ")
+ addedHTML += ", "
+ }
+ return addedHTML.substring(0, addedHTML.length - 2)
+ },
"BRANCH_NAME": () => {
if (process.env.BRANCH == "dev") {
return "Stable"
diff --git a/static/asahi/index.html b/static/asahi/index.html
deleted file mode 100644
index 69debc8..0000000
--- a/static/asahi/index.html
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- Violet's Purgatory
-
-
-
-
-
-
-
-
-
-
- {WEATHER_MODIFIER}
- {TOPBAR}
- Welcome to myHumble Abode
-
-
- nice seeing you here! while you're at it, why not check out my socials or about me?
-
-
-
Asahi
-
-
-
-
-
-
-
They/Them
-
Marcy & Violet <3
-
-
-
-
-
-
-
- hi! my name is Asahi Lunya :3 i'm a bisexual enby who's a very queer mess
-
- i have interests in tech, aerospace, trains, art, and music! i'm also a privacy/security
- enthusiast
-
- i'm currently learning many new things in my life, expanding my knowledge
-
- i hope you got to know me a little ^^
-
-
-
-
-
-
- Disclaimer!
-
- This is NOT Asahi's real site! Please find it here instead!
-
-
- Quotes:
-
-
- “literally anything from the 1995 movie 'Hackers' will absolutely fit here” -tyberry
-"ooooo you like boys, ur a boykisser" -Elodie
-"asahi is twink-esk in spirit. aspirational." -Juniper
-"cute huggable nice huggable cute cute" -marcy
-"Petting Asahi makes the world better” -yassie
-"meow meow meow mrrrp nya~" -gettie
-"cute and queer catenby that functions as fedi's algorithm on the side" -7331
-"sometimes this one still forgets how friendly some people are here… like Asahi, for instance!” -Ariadne
-"Asahi wa sugoi desu ne?" -Bard
-"this is a quote :3c" -Ukko
-"best Asahi I've ever met (awww!)" -Kristina
-"asahi is friend shaped and they have a good heart" -Drew
-"10/10 will give loving headpats and will protect them!" -Natsura
-
-
-
-
-
-
\ No newline at end of file