diff --git a/constants.json b/constants.json
index 48d60ad..1197c3a 100644
--- a/constants.json
+++ b/constants.json
@@ -91,8 +91,7 @@
"words": [
"brain"
],
- "color": "pink",
- "caseInsensitive": true
+ "color": "#f5abb9"
},
{
"words": [
@@ -184,7 +183,8 @@
},
{
"words": [
- "Fedi"
+ "Fedi",
+ "Sharkey"
],
"color": "rgb(175, 125, 200)"
},
@@ -194,6 +194,12 @@
],
"color": "rgb(100, 255, 200)"
},
+ {
+ "words": [
+ "Signal"
+ ],
+ "color": "#3b45fd"
+ },
{
"words": [
"Codeberg",
diff --git a/pageUpdater.js b/pageUpdater.js
index 67ddf71..db51641 100644
--- a/pageUpdater.js
+++ b/pageUpdater.js
@@ -146,15 +146,17 @@ function highlighter(json, full = true, linkParent = false) {
var termKey = "{TERM" + index + "}"
var termProps = dict
while (element.content.includes(termKey)) {
+ var endRegex = " "
+
var termIndex = element.content.indexOf(termKey)
- var spanEnd = element.content.indexOf(" ", termIndex)
+ var spanEnd = element.content.indexOf(endRegex, termIndex)
if (spanEnd == -1) {
spanEnd = element.content.length
}
- var spanStart = element.content.substring(0, termIndex).lastIndexOf(" ") + 1
+ var spanStart = element.content.substring(0, termIndex).lastIndexOf(endRegex) + 1
// if (highTable[index] == "ULTRAKILL") {
// console.log(startContent, " ---- ", endContent)
@@ -164,12 +166,26 @@ function highlighter(json, full = true, linkParent = false) {
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)
+ var newSpanEnd = element.content.indexOf(")", spanStart) + 1
+ var newEndContent = element.content.substring(termIndex + termKey.length, newSpanEnd)
+ if (newEndContent.includes("<") || newEndContent.includes("TERM")) {
+ spanStart += 1
+ startContent = startContent.substring(2)
+ } else {
+ spanEnd = newSpanEnd
+ endContent = newEndContent
+ }
}
else if (endContent.includes(")") && !startContent.includes("(")) {
- spanStart = element.content.substring(0, spanStart).lastIndexOf("(")
- startContent = element.content.substring(spanStart - 1, termIndex)
+ var newSpanStart = element.content.substring(0, spanStart).lastIndexOf("(")
+ var newStartContent = element.content.substring(newSpanStart - 1, termIndex)
+ if (newStartContent.includes("<") || newStartContent.includes("TERM")) {
+ spanEnd -= 1
+ endContent = endContent.substring(0, endContent.length - 1)
+ } else {
+ spanStart = newSpanStart
+ startContent = newStartContent
+ }
}
var style = termProps.style || ""
@@ -300,7 +316,7 @@ function converter(html, dynamic = true) {
"WEATHER_MODIFIER": randomThemer.returnTheme(),
"WEATHER_TEXT": "",
"ANNOUNCEMENT": fs.readFileSync(path.join(__dirname, "config/announcement.html")),
- "SOCIALS": () => {
+ "SOCIALS": (full) => {
if (api.lanyard && api.lanyard.socials) {
var socials = api.lanyard.socials
var html = `
`
@@ -313,8 +329,9 @@ function converter(html, dynamic = true) {
for (var x = 0; x < sitesTable.length; x++) {
var siteName = sitesTable[x]
var siteData = sites[siteName]
- html += `
${siteName}: ${siteData.name}`
-
+ if (siteData.main || full) {
+ html += `
${siteName}: ${siteData.name}`
+ }
}
html += "
"
}
@@ -354,6 +371,9 @@ function converter(html, dynamic = true) {
`
+ },
+ "TEST_KEYWORD": (arg1, arg2, arg3) => {
+ return `The arguements you inputted are "${arg1}" and "${arg2}". Wow!
`
}
}
@@ -380,10 +400,34 @@ function converter(html, dynamic = true) {
for (let index = 0; index < rpTable.length; index++) {
const text = rpTable[index];
- if (dynamic) {
- replacers[text] = himalaya.stringify(highlighter(himalaya.parse(replacers[text])))
+ const braceText = `{${text}}`
+
+ if (typeof replacers[text] == "function" && replacers[text].length == 0) {
+ replacers[text] = replacers[text]()
+ }
+
+ while (html.includes(braceText)) {
+ var posOfKeyword = html.indexOf(braceText)
+ var keywordLength = braceText.length
+ var args = undefined
+ if (html.charAt(posOfKeyword + keywordLength) == "(") {
+ args = html.substring(posOfKeyword + keywordLength + 1)
+ keywordLength = args.substring(0, args.indexOf(")")).length + keywordLength + 2
+ args = args.substring(0, args.indexOf(")"))
+ args = args.split(",").map(item => item.trim())
+ }
+ var fnString = replacers[text]
+ if (typeof fnString == "function") {
+ fnString = fnString.apply(null, args)
+ }
+
+ if (dynamic) {
+ fnString = himalaya.stringify(highlighter(himalaya.parse(fnString)))
+ }
+
+ html = html.substring(0, posOfKeyword) + fnString + html.substring(posOfKeyword + keywordLength)
+ // break
}
- html = html.replaceAll(`{${text}}`, replacers[text])
}
if (!dynamic) {
diff --git a/static/index.html b/static/index.html
index 5822a69..5734961 100644
--- a/static/index.html
+++ b/static/index.html
@@ -77,17 +77,26 @@
{ANNOUNCEMENT}
-
Services
+
Services
List of services for public use hosted on Violet's Purgatory.
+
Public:
SearXNG: sxng.violets-purgatory.dev
- Forgejo: git.viois.gay
Univerter: univerter.dev
Thumbor: thumbor.violets-purgatory.dev
+
Invite only:
+ Forgejo: git.viois.gay
+ Bluesky: pds.violets-purgatory.dev
+ Fedi (Sharkey): sharkey.violets-purgatory.dev
+
+ Feel free to DM me anywhere (Discord & Fedi are best) for an invite! Do understand though, my instances are not stable!
+ By using my services, you are confirming you understand that there are risks of data loss, downtime, and bugs!!!
+
Socials
- {PATH_SOCIALS}
+ Here's some of the sites you can find me on! Check the full socials page for more details & links.
+ {SOCIALS}
{SELECTED_VIDEO}
diff --git a/static/socials/index.html b/static/socials/index.html
index 69722c3..4262a7d 100644
--- a/static/socials/index.html
+++ b/static/socials/index.html
@@ -29,8 +29,10 @@
- Here's most of the sites you can find me on-
if you needed that for some reason?
- {SOCIALS}
+ Here's most of the sites you can find me on!
+ {SOCIALS}(Full)
+ Gray border = preferred, Yellow = neutral, Red = not preferred.
+ Interacting via any site is perfectly fine! E.G. if you use both Fedi and Bluesky, Bluesky is yellow, so you should contact me through Fedi instead! But if you don't have Fedi, then just contact me through Bluesky!
diff --git a/static/style.css b/static/style.css
index 58afb91..178066c 100644
--- a/static/style.css
+++ b/static/style.css
@@ -335,6 +335,10 @@ b, b > *, .activityTitle, .activityTitle > *, .bold {
font-family: "RubikBold", Verdana, Geneva, Tahoma, sans-serif;
}
+underline {
+ text-decoration: underline;
+}
+
.activityTitle {
text-decoration: underline;
}
diff --git a/static/subpage.css b/static/subpage.css
index cd84030..4041708 100644
--- a/static/subpage.css
+++ b/static/subpage.css
@@ -15,4 +15,20 @@ h1:nth-of-type(1) {
.mainDiv {
margin: auto;
+}
+
+.notpref {
+ border-color: rgb(150, 25, 25);
+}
+
+.notpref:hover {
+ border-color: red;
+}
+
+.neutralpref {
+ border-color: rgb(150, 150, 75);
+}
+
+.neutralpref:hover {
+ border-color: yellow;
}
\ No newline at end of file