This commit is contained in:
aggie 2025-11-19 23:47:10 -05:00
parent 3a91ee6264
commit c061347b0a
41 changed files with 180 additions and 69 deletions

View file

@ -2,8 +2,8 @@ body {
max-width: 940px; max-width: 940px;
margin: 0 auto; margin: 0 auto;
padding: 1em; padding: 1em;
font-family: Verdana; font-family: Arial;
background-color: azure; background-image: url('https://file.garden/aJzQmzrHVB4BLKwu/pencils-5682457_640.jpg');
color: midnightblue; color: midnightblue;
} }
@ -24,7 +24,8 @@ body {
.cols { .cols {
display: grid; display: grid;
} background-color: #fff;
color: #000;}
a { a {
font-weight: bold; font-weight: bold;
@ -45,6 +46,8 @@ a {
.status { .status {
margin-bottom: 1em; margin-bottom: 1em;
background-color: #fff;
color: #000;
} }
dt { dt {

View file

@ -0,0 +1,83 @@
body {
max-width: 940px;
margin: 0 auto;
padding: 1em;
font-family: Arial;
background-image: url('https://file.garden/aJzQmzrHVB4BLKwu/pencils-5682457_640.jpg');
color: midnightblue;
}
.faces {
margin-bottom: 1em;
max-width: 500px;
}
.profile-picture {
max-width: 100px;
}
.flash {
background-color: lightgreen;
padding: 0.5em 1em;
color: darkgreen;
}
.cols {
display: grid;
}
a {
font-weight: bold;
}
.status-username {
margin-bottom: .5em;
}
.status-content {
margin: 0 1em 0.5em 1em;
}
.status nav {
font-size: 0.8em;
margin-left: 1em;
}
.status {
margin-bottom: 1em;
background-color: #fff;
color: #000;
}
dt {
font-weight: bold;
}
dd {
margin-bottom: 1em;
}
.edit-status {
width: 100%; box-sizing: border-box; height: 100px;
}
.tools {
list-style-position: inside;
padding-left: 0;
}
@media (min-width: 650px) {
.cols {
grid-template-columns: 1fr 2fr;
grid-gap: 2em;
}
}
.radio { display: inline-block }
.field { margin-bottom: 1rem; max-width: 500px; }
.field > label { margin-bottom: .25rem; }
.field > * { display: block; width: 100%; box-sizing: border-box; }
.info {
margin-bottom: 1em;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,6 +1,6 @@
1 1
/var/lib/postgresql/data /var/lib/postgresql/data
1763592637 1763613416
5432 5432
/var/run/postgresql /var/run/postgresql
* *

View file

@ -14,9 +14,9 @@ var TplCommonMap = map[string]string{
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ template "title" . }}Status Cafe</title> <title>{{ template "title" . }}Sillywordz!!!</title>
<meta name="description" content="your friends' updates"> <meta name="description" content="your friends' updates">
<link rel="stylesheet" href="/assets/style.css"/> <link rel="stylesheet" href="/assets/style.css?v=2"/>
{{ if .face }} {{ if .face }}
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>{{ .face }}</text></svg>"> <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>{{ .face }}</text></svg>">
{{ else }} {{ else }}
@ -26,8 +26,7 @@ var TplCommonMap = map[string]string{
</head> </head>
<body> <body>
<header> <header>
<nav> <nav><a href="/">home</a>
<a href="/">status.cafe</a> <a href="https://forum.status.cafe">forum</a>
{{ if .logged }} {{ if .logged }}
<a href="/settings">settings</a> <a href="/users/{{ .logged }}">{{ .logged }}</a> (<a href="/logout">logout</a>) <a href="/settings">settings</a> <a href="/users/{{ .logged }}">{{ .logged }}</a> (<a href="/logout">logout</a>)
{{ else }} {{ else }}
@ -45,11 +44,15 @@ var TplCommonMap = map[string]string{
</html> </html>
{{ end }} {{ end }}
{{ define "head" }}{{ end }} {{ define "head" }}{{ end }}
{{ define "title" }}{{ end }}`, {{ define "title" }}{{ end }}
`,
"status": `{{ define "status" }} "status": `{{ define "status" }}
<div class="status-username"><a href="/users/{{ .User }}">{{ .User }}</a> {{ .Face }} {{ .TimeAgo }}</div> <div class="status-username"><a href="/users/{{ .User }}">{{ .User }}</a> {{ .Face }} {{ .TimeAgo }}</div>
<p class="status-content">{{ .ContentHtml }}</p> <div class="status-number">
{{ end }}`, I wrote {{ .Number }} words!</div> {{ if .Content}}
<p class="status-content">And I had this to say about it: {{ .ContentHtml }}</p> {{ end }}
{{ end }}
`,
"status_form": `{{ define "status_form" }} "status_form": `{{ define "status_form" }}
<div class="faces"> <div class="faces">
{{ range $i, $v := faces }} {{ range $i, $v := faces }}

View file

@ -112,14 +112,18 @@ var TplMap = map[string]string{
</tr> </tr>
</table> </table>
</form> </form>
<p>Past this code into your HTML file:</p> <p>Paste this code into your HTML file:</p>
<textarea style="width: 100%; max-width: 500px; height: 75px;"><div id="sillywordz"><div id="sillywordz-username"></div><div id="sillywordz-content"></div></div><script src="https://sillywordz.kissing.computer/current-status.js?name={{ .name }}" defer></script></textarea> <textarea style="width: 100%; max-width: 500px; height: 75px;"><div id="sillywordz"><div id="sillywordz-username"></div><div id="sillywordz-number"><div id="sillywordz-content"></div></div><script src="https://sillywordz.kissing.computer/current-status.js?name={{ .name }}"></script></textarea>
<p>Past this code into your CSS file:</p> <p>Paste this code into your CSS file:</p>
<textarea style="width: 100%; max-width: 500px; height: 175px;">#sillywordz { <textarea style="width: 100%; max-width: 500px; height: 175px;">#sillywordz {
padding: .5em; padding: .5em;
background-color: azure; background-color: azure;
border: 1px solid midnightblue; border: 1px solid midnightblue;
} }
#sillywordz-number {
margin-bottom: 1.2em;
}
#sillywordz-username { #sillywordz-username {
margin-bottom: .5em; margin-bottom: .5em;
} }
@ -164,7 +168,7 @@ var TplMap = map[string]string{
<div class="cols"> <div class="cols">
<section> <section>
{{ if .logged }} {{ if .logged }}
<h2>Set your status</h2> <h2>Update your word count!</h2>
{{ if .form.Error }} {{ if .form.Error }}
<p>{{ .form.Error }}</p> <p>{{ .form.Error }}</p>
{{ end }} {{ end }}
@ -182,8 +186,7 @@ var TplMap = map[string]string{
<p>sillywordz is a place to share progress on your current writing projects.</p> <p>sillywordz is a place to share progress on your current writing projects.</p>
<p><a href="/register">Register now!</a></p> <p><a href="/register">Register now!</a></p>
{{ end }} {{ end }}
<p><img src="/assets/button.png"/><br><textarea style="width: 100%; max-width: 500px; box-sizing: border-box;"><a href="https://sillywordz.kissing.computer/"><img src="https://status.cafe/assets/button.png" alt="Sillywordz"/></a></textarea></p></p> <p><img src="https://file.garden/aJzQmzrHVB4BLKwu/button(2).png"/><br><textarea style="width: 100%; max-width: 500px; box-sizing: border-box;"><a href="https://sillywordz.kissing.computer/"><img src="https://file.garden/aJzQmzrHVB4BLKwu/button(2).png" alt="Sillywordz"/></a></textarea></p></p>
<p><a href="/feed.atom">Subscribe via Atom</a></p>
</section> </section>
<section> <section>
<h2>Stream of updates!</h2> <h2>Stream of updates!</h2>
@ -217,7 +220,7 @@ var TplMap = map[string]string{
</section> </section>
{{ end }}`, {{ end }}`,
"manage": `{{ define "content" }} "manage": `{{ define "content" }}
<h1>Manage statuses</h1> <h1>Manage updates</h1>
{{ template "flash" .flash }} {{ template "flash" .flash }}
{{ range .statuses }} {{ range .statuses }}
<article class="status"> <article class="status">
@ -241,7 +244,8 @@ var TplMap = map[string]string{
{{- end }} {{- end }}
</p> </p>
{{ end }} {{ end }}
{{ end }}`, {{ end }}
`,
"register": `{{ define "content" }} "register": `{{ define "content" }}
<section> <section>
<h1>Register</h1> <h1>Register</h1>
@ -271,14 +275,15 @@ var TplMap = map[string]string{
<input type="password" id="password-confirm" name="password-confirm" required/> <input type="password" id="password-confirm" name="password-confirm" required/>
</div> </div>
<div class="field"> <div class="field">
<label for="answer">How did you discover status.cafe?</label> <label for="answer">How did you discover sillywordz?</label>
<textarea id="answer" name="answer" required></textarea> <textarea id="answer" name="answer" required></textarea>
</div> </div>
<p>By clicking the following button you agree to our <a href="/tos" target="_blank">Terms of Service</a>.</p> <p>By clicking the following button you agree to our <a href="/tos" target="_blank">Terms of Service</a>.</p>
<input type="submit" value="Submit"> <input type="submit" value="Submit">
</form> </form>
</section> </section>
{{ end }}`, {{ end }}
`,
"register-success": `{{ define "content" }} "register-success": `{{ define "content" }}
<section> <section>
<h1>Thank you!</h1> <h1>Thank you!</h1>
@ -348,15 +353,15 @@ var TplMap = map[string]string{
"tos": `{{ define "content" }} "tos": `{{ define "content" }}
<section> <section>
<h1>Terms of service</h1> <h1>Terms of service</h1>
<p>In order to use Status Cafe, you must agree to the following rules. A user not respecting these rules will have their account removed and will be banned from the service. The general rule is to be nice, friendly and respectful to anyone and their status.</p> <p>In order to use Sillywordz, you must agree to the following rules. A user not respecting these rules will have their account removed and will be banned from the service. The general rule is to be nice, friendly and respectful to anyone and their status.</p>
<p><b>Racist, bigoted or otherwise hate speech</b> is not permitted. Status Cafe is an inclusive place that will not tolerate anyone promoting hateful ideas and language.</p> <p><b>Racist, transphobic, ableist, homophobic etc bigoted or otherwise hate speech</b> is not permitted. SILLYWORDZ is an inclusive place that will not tolerate anyone promoting hateful ideas and language.</p>
<p><b>Illegal activities</b> such as promoting malware, phishing or publishing something that promotes content that infringes copyright, patent or trademark you do not own is not permitted.</p> <p><b>Illegal activities</b> such as promoting malware, phishing or publishing something that promotes content that infringes copyright, patent or trademark you do not own is not permitted.</p>
<p><b>Pornographic content</b> is not allowed.</p> <p><b>Spamming</b> is not allowed.</p>
<p><b>Spamming</b>, including unsolicited advertising isn't allowed. While it's perfectly fine to talk about your projects and link them, using Status Cafe only as a way to drive traffic to an external site isn't allowed.</p>
<p><b>Harassing</b>, bullying, picking on a user isn't permitted.</p> <p><b>Harassing</b>, bullying, picking on a user isn't permitted.</p>
<p><b>Revealing information (doxing)</b> from a user isn't allowed.</p> <p><b>Revealing information (doxing)</b> from a user isn't allowed.</p>
</section> </section>
{{ end }}`, {{ end }}
`,
"user": `{{ define "head" }} "user": `{{ define "head" }}
<link rel="alternate" type="application/atom+xml" title="Atom feed" href="/users/{{ .user }}.atom" /> <link rel="alternate" type="application/atom+xml" title="Atom feed" href="/users/{{ .user }}.atom" />
{{ end }} {{ end }}
@ -370,7 +375,6 @@ var TplMap = map[string]string{
{{ if .picture }} {{ if .picture }}
<img src="{{ .picture }}" class="profile-picture"/> <img src="{{ .picture }}" class="profile-picture"/>
{{ end }} {{ end }}
<p><a href="/users/{{ .user }}.atom">Subscribe via Atom</a></p>
<dl> <dl>
<dt class="homepage">Homepage</dt> <dt class="homepage">Homepage</dt>
<dd class="homepage"> <dd class="homepage">
@ -397,7 +401,7 @@ var TplMap = map[string]string{
</dl> </dl>
</section> </section>
<section> <section>
<h2>Statuses</h2> <h2>Updates</h2>
{{ range .statuses }} {{ range .statuses }}
<article class="status"> <article class="status">
{{ template "status" . }} {{ template "status" . }}
@ -419,5 +423,6 @@ var TplMap = map[string]string{
{{ end }} {{ end }}
</section> </section>
</div> </div>
{{ end }}`, {{ end }}
`,
} }

View file

@ -4,9 +4,9 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ template "title" . }}Status Cafe</title> <title>{{ template "title" . }}Sillywordz!!!</title>
<meta name="description" content="your friends' updates"> <meta name="description" content="your friends' updates">
<link rel="stylesheet" href="/assets/style.css"/> <link rel="stylesheet" href="/assets/style.css?v=2"/>
{{ if .face }} {{ if .face }}
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>{{ .face }}</text></svg>"> <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>{{ .face }}</text></svg>">
{{ else }} {{ else }}
@ -16,8 +16,7 @@
</head> </head>
<body> <body>
<header> <header>
<nav> <nav><a href="/">home</a>
<a href="/">status.cafe</a> <a href="https://forum.status.cafe">forum</a>
{{ if .logged }} {{ if .logged }}
<a href="/settings">settings</a> <a href="/users/{{ .logged }}">{{ .logged }}</a> (<a href="/logout">logout</a>) <a href="/settings">settings</a> <a href="/users/{{ .logged }}">{{ .logged }}</a> (<a href="/logout">logout</a>)
{{ else }} {{ else }}

View file

@ -1,4 +1,6 @@
{{ define "status" }} {{ define "status" }}
<div class="status-username"><a href="/users/{{ .User }}">{{ .User }}</a> {{ .Face }} {{ .TimeAgo }}</div> <div class="status-username"><a href="/users/{{ .User }}">{{ .User }}</a> {{ .Face }} {{ .TimeAgo }}</div>
<p class="status-content">{{ .ContentHtml }}</p> <div class="status-number">
I wrote {{ .Number }} words!</div> {{ if .Content}}
<p class="status-content">And I had this to say about it: {{ .ContentHtml }}</p> {{ end }}
{{ end }} {{ end }}

View file

@ -37,14 +37,18 @@
</tr> </tr>
</table> </table>
</form> </form>
<p>Past this code into your HTML file:</p> <p>Paste this code into your HTML file:</p>
<textarea style="width: 100%; max-width: 500px; height: 75px;"><div id="sillywordz"><div id="sillywordz-username"></div><div id="sillywordz-content"></div></div><script src="https://sillywordz.kissing.computer/current-status.js?name={{ .name }}" defer></script></textarea> <textarea style="width: 100%; max-width: 500px; height: 75px;"><div id="sillywordz"><div id="sillywordz-username"></div><div id="sillywordz-number"><div id="sillywordz-content"></div></div><script src="https://sillywordz.kissing.computer/current-status.js?name={{ .name }}"></script></textarea>
<p>Past this code into your CSS file:</p> <p>Paste this code into your CSS file:</p>
<textarea style="width: 100%; max-width: 500px; height: 175px;">#sillywordz { <textarea style="width: 100%; max-width: 500px; height: 175px;">#sillywordz {
padding: .5em; padding: .5em;
background-color: azure; background-color: azure;
border: 1px solid midnightblue; border: 1px solid midnightblue;
} }
#sillywordz-number {
margin-bottom: 1.2em;
}
#sillywordz-username { #sillywordz-username {
margin-bottom: .5em; margin-bottom: .5em;
} }

View file

@ -6,7 +6,7 @@
<div class="cols"> <div class="cols">
<section> <section>
{{ if .logged }} {{ if .logged }}
<h2>Set your status</h2> <h2>Update your word count!</h2>
{{ if .form.Error }} {{ if .form.Error }}
<p>{{ .form.Error }}</p> <p>{{ .form.Error }}</p>
{{ end }} {{ end }}
@ -24,8 +24,7 @@
<p>sillywordz is a place to share progress on your current writing projects.</p> <p>sillywordz is a place to share progress on your current writing projects.</p>
<p><a href="/register">Register now!</a></p> <p><a href="/register">Register now!</a></p>
{{ end }} {{ end }}
<p><img src="/assets/button.png"/><br><textarea style="width: 100%; max-width: 500px; box-sizing: border-box;"><a href="https://sillywordz.kissing.computer/"><img src="https://status.cafe/assets/button.png" alt="Sillywordz"/></a></textarea></p></p> <p><img src="https://file.garden/aJzQmzrHVB4BLKwu/button(2).png"/><br><textarea style="width: 100%; max-width: 500px; box-sizing: border-box;"><a href="https://sillywordz.kissing.computer/"><img src="https://file.garden/aJzQmzrHVB4BLKwu/button(2).png" alt="Sillywordz"/></a></textarea></p></p>
<p><a href="/feed.atom">Subscribe via Atom</a></p>
</section> </section>
<section> <section>
<h2>Stream of updates!</h2> <h2>Stream of updates!</h2>

View file

@ -1,5 +1,5 @@
{{ define "content" }} {{ define "content" }}
<h1>Manage statuses</h1> <h1>Manage updates</h1>
{{ template "flash" .flash }} {{ template "flash" .flash }}
{{ range .statuses }} {{ range .statuses }}
<article class="status"> <article class="status">

View file

@ -27,7 +27,7 @@
<input type="password" id="password-confirm" name="password-confirm" required/> <input type="password" id="password-confirm" name="password-confirm" required/>
</div> </div>
<div class="field"> <div class="field">
<label for="answer">How did you discover status.cafe?</label> <label for="answer">How did you discover sillywordz?</label>
<textarea id="answer" name="answer" required></textarea> <textarea id="answer" name="answer" required></textarea>
</div> </div>
<p>By clicking the following button you agree to our <a href="/tos" target="_blank">Terms of Service</a>.</p> <p>By clicking the following button you agree to our <a href="/tos" target="_blank">Terms of Service</a>.</p>

View file

@ -1,11 +1,10 @@
{{ define "content" }} {{ define "content" }}
<section> <section>
<h1>Terms of service</h1> <h1>Terms of service</h1>
<p>In order to use Status Cafe, you must agree to the following rules. A user not respecting these rules will have their account removed and will be banned from the service. The general rule is to be nice, friendly and respectful to anyone and their status.</p> <p>In order to use Sillywordz, you must agree to the following rules. A user not respecting these rules will have their account removed and will be banned from the service. The general rule is to be nice, friendly and respectful to anyone and their status.</p>
<p><b>Racist, bigoted or otherwise hate speech</b> is not permitted. Status Cafe is an inclusive place that will not tolerate anyone promoting hateful ideas and language.</p> <p><b>Racist, transphobic, ableist, homophobic etc bigoted or otherwise hate speech</b> is not permitted. SILLYWORDZ is an inclusive place that will not tolerate anyone promoting hateful ideas and language.</p>
<p><b>Illegal activities</b> such as promoting malware, phishing or publishing something that promotes content that infringes copyright, patent or trademark you do not own is not permitted.</p> <p><b>Illegal activities</b> such as promoting malware, phishing or publishing something that promotes content that infringes copyright, patent or trademark you do not own is not permitted.</p>
<p><b>Pornographic content</b> is not allowed.</p> <p><b>Spamming</b> is not allowed.</p>
<p><b>Spamming</b>, including unsolicited advertising isn't allowed. While it's perfectly fine to talk about your projects and link them, using Status Cafe only as a way to drive traffic to an external site isn't allowed.</p>
<p><b>Harassing</b>, bullying, picking on a user isn't permitted.</p> <p><b>Harassing</b>, bullying, picking on a user isn't permitted.</p>
<p><b>Revealing information (doxing)</b> from a user isn't allowed.</p> <p><b>Revealing information (doxing)</b> from a user isn't allowed.</p>
</section> </section>

View file

@ -11,7 +11,6 @@
{{ if .picture }} {{ if .picture }}
<img src="{{ .picture }}" class="profile-picture"/> <img src="{{ .picture }}" class="profile-picture"/>
{{ end }} {{ end }}
<p><a href="/users/{{ .user }}.atom">Subscribe via Atom</a></p>
<dl> <dl>
<dt class="homepage">Homepage</dt> <dt class="homepage">Homepage</dt>
<dd class="homepage"> <dd class="homepage">
@ -38,7 +37,7 @@
</dl> </dl>
</section> </section>
<section> <section>
<h2>Statuses</h2> <h2>Updates</h2>
{{ range .statuses }} {{ range .statuses }}
<article class="status"> <article class="status">
{{ template "status" . }} {{ template "status" . }}

View file

@ -8,23 +8,38 @@ import (
func (h *Handler) showCurrentStatusJSView(w http.ResponseWriter, r *http.Request) { func (h *Handler) showCurrentStatusJSView(w http.ResponseWriter, r *http.Request) {
name := r.URL.Query().Get("name") name := r.URL.Query().Get("name")
escName := url.PathEscape(name) escName := url.PathEscape(name)
w.Header().Set("Content-Type", "application/javascript") w.Header().Set("Content-Type", "application/javascript")
w.Write([]byte(` w.Write([]byte(`
document.write('<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.6/dist/purify.min.js"><\/script>'); document.write('<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.6/dist/purify.min.js"><\/script>');
document.writeln('<div id="sillywordz"><div id="sillywordz-username"></div><div id="sillywordz-number"></div><div id="sillywordz-content"></div></div>'); document.writeln('<div id="sillywordz"><div id="sillywordz-username"></div><div id="sillywordz-number"></div><div id="sillywordz-content"></div></div>');
fetch("https://sillywordz.kissing.computer/users/` + escName + `/status.json") fetch("https://sillywordz.kissing.computer/users/` + escName + `/status.json")
.then(r => r.json()) .then(r => r.json())
.then(r => { .then(r => {
if (!r.number || r.number < 1) { if (!r.number || r.number < 1) {
document.getElementById("sillywordz-number").innerHTML = "No updates yet."; document.getElementById("sillywordz-number").innerHTML = "No updates yet.";
return; return;
} }
let safeContent = DOMPurify.sanitize(r.content); let safeContent = DOMPurify.sanitize(r.content);
document.getElementById("sillywordz-username").innerHTML= '<a href="https://sillywordz.kissing.computer/users/' + escName + '"target="_blank">' + r.Author + '</a> ' + r.face + ' ' + r.timeAgo
document.getElementById("sillywordz-number").innerHTML = "I wrote " + r.number + " words on my project! " document.getElementById("sillywordz-username").innerHTML =
'<a href="https://sillywordz.kissing.computer/users/` + escName + `" target="_blank">' +
r.author +
'</a> ' + r.face + ' ' + r.timeAgo;
document.getElementById("sillywordz-number").innerHTML =
"I wrote " + r.number + " words on my project!";
if (r.content && r.content.trim().length > 0) { if (r.content && r.content.trim().length > 0) {
document.getElementById("sillywordz-content").innerHTML = "And I had this to say about it: " + safeContent document.getElementById("sillywordz-content").innerHTML =
} }) "And I had this to say about it: " + safeContent;
}
});
`)) `))
} }