about summary refs log tree commit diff
path: root/served
diff options
context:
space:
mode:
Diffstat (limited to 'served')
-rw-r--r--served/auth.html21
-rw-r--r--served/colophon.html21
-rwxr-xr-xserved/home.html6
-rw-r--r--served/now/now.html60
-rw-r--r--served/quark/create.html38
-rw-r--r--served/quark/delete.html8
-rw-r--r--served/quark/edit-section.html19
-rw-r--r--served/quark/edit.html36
-rw-r--r--served/quark/move.html19
-rw-r--r--served/starlight.html1
-rw-r--r--served/styles/quark-forms.css93
-rw-r--r--served/styles/quark.css53
-rw-r--r--served/words/weeknotes/2026/a1.html53
13 files changed, 284 insertions, 144 deletions
diff --git a/served/auth.html b/served/auth.html
new file mode 100644
index 0000000..3a04c65
--- /dev/null
+++ b/served/auth.html
@@ -0,0 +1,21 @@
+---
+title=Auth!
+---
+<h2>Login</h2>
+<form action="/api/auth/login" method="post">
+	<input type="text" placeholder="name" name="name">
+	<input type="password" placeholder="password" name="password">
+	<input type="submit" value="login~">
+</form>
+
+<h2>Register</h2>
+<form action="/api/auth/register" method="post">
+	<input type="text" placeholder="name" name="name">
+	<input type="password" placeholder="password" name="password">
+	<input type="submit" value="register+">
+</form>
+
+<h2>Logout</h2>
+<form action="/api/auth/logout" method="post">
+	<input type="submit" value="logout;">
+</form>
diff --git a/served/colophon.html b/served/colophon.html
new file mode 100644
index 0000000..93e7c33
--- /dev/null
+++ b/served/colophon.html
@@ -0,0 +1,21 @@
+---
+title=colophon
+description=or, about this website
+---
+this website has both a lot going on, and not a lot going on. all at once!
+
+it's hosted on a colocation, hostnamed coriander, inside of a virtual machine
+running on cloud hypervisor. the vm's hostname is starshine, which pays
+homage to the vps it was running on before, starlight.
+
+splorm, a webserver i wrote in rust using the axum framework, is what runs the
+site itself. it's reverse proxied through nginx, which runs on coriander.
+
+the code and html was first written in vscode, but i've since started using
+the editor gram, which is what splorm was written with.
+
+[@paragraphs off]
+<!--
+cloud hypervisor: https://github.com/cloud-hypervisor/cloud-hypervisor
+gram: https://gram-editor.com/
+-->
diff --git a/served/home.html b/served/home.html
index 3b2f826..3e39241 100755
--- a/served/home.html
+++ b/served/home.html
@@ -20,6 +20,7 @@ style=/styles/home.css
 			it in <a href="bits/">bits/</a> if it feels like it wants to be there.
 		</p>
 		<p>Take a look at what I'm doing <a href="now/">now/</a>.</p>
+		<p id="quark-blurb">Also! Also! Definitely go to<br>my digital-garden-thing <a href="quark/">quark/</a></p>
 		<p>
 			There are living pages, updated when needed, for some <a href="things/">things/</a>.
 		</p>
@@ -55,8 +56,9 @@ style=/styles/home.css
 		<template id="logintemplate">
 			<h2>Login~,.</h2>
 			<p>hi genny~</p>
-			<form>
-				<input type="password" placeholder="password">
+			<form action="/api/auth/login" method="post">
+				<input type="hidden" name="name" value="gen">
+				<input type="password" name="password" placeholder="password">
 				<input type="submit" value="login~">
 			</form>
 		</template>
diff --git a/served/now/now.html b/served/now/now.html
index 4f16064..fd075b3 100644
--- a/served/now/now.html
+++ b/served/now/now.html
@@ -22,70 +22,30 @@ You can read more about it at
 [@paragraphs off]
 <section id="doingnow">
 	<div>
-		<h2>Looking for a job</h2>
+		<h2>Still job-lookin'</h2>
 		<p>
-			I got laid off! I have been unemployed for three (3) months. Drat!
-			So I am going through the terrible, no good process of job-search
-			and trying to survive.
-		</p>
-	</div>
-
-	<div>
-		<h2>coriander</h2>
-		<p>
-			This is a relatively new-to-me server. It's a colocation I have
-			in a datacenter where an old coworker works. He has yet to charge
-			me for it, which is lovely~
-		</p>
-		<p>
-			I am working on moving dreamy.place to coriander, as well as
-			the little services and things that support it/run with it. Which
-			means git.dreamy.place will move over, too.
-		</p>
-		<p>
-			I've taken the opportunity to learn some about Docker. I moved
-			amble.quest to coriander a few weeks ago. It was not without it's
-			problems, but it's table now and in Docker :)
-		</p>
-		<p>
-			I'm also playing with virtual machines. I'm learning about
-			Cloud Hypervisor, which I really like so far. I configured
-			the networking with <code>nftables</code> for the first time,
-			which was fun! I'm writing a little program called
-			<code>september</code> that is meant to manage instances of
-			Cloud Hypervisor. I'm excited :)
+			It's bad out there, folks. I'm working on it! I have a few solid leads~
 		</p>
 	</div>
 
 	<div>
 		<h2>dreamy.place; ∞</h2>
 		<p>
-			∞ is the directory/git repository that contains this website
-			and the text on it <i>(but not the images/assets)</i>.
-			I want to change the design and feeling of this here website,
-			so I've put it here. It's an intention, and I'm starting on it
-			by creating this page &lt;3
+			Still working on changing things up for ∞.
+			I got distracted by splorm and quark, though :-)
 		</p>
 	</div>
 
 	<div>
-		<h2>Heartbeat</h2>
-		<p>
-			I want to "finish" Heartbeat, whatever <i>finish</i> means :)
-		</p>
+		<h2>splorm &amp; quark</h2>
 		<p>
-			For now, finish means creating all the clients I set out
-			to write, the most important of which are macOS/iOS, web,
-			and Linux. Android and Windows are lower priority because
-			I do not use that platforms much.
+			I rewrote my webserver, awake, and the new rendition, splorm, is
+			much more maintanable <i>and</i> even has documentation!
 		</p>
 		<p>
-			I've had a good time learning Swift and SwiftUI while
-			working on the darwin apps <i>(macOS/iOS)</i>. They are
-			almost to a point where I would feel comfortable switching
-			to working on the Linux and CLI clients. I am scared of
-			GTK4, but it's what I plan to use on Linux, so we'll see
-			how I do~
+			With that, I was able to get <a href="/quark">quark/</a> working!
+			It's a little digital garden that I can edit from my website, so I can
+			write from my phone now, too!
 		</p>
 	</div>
 </section>
diff --git a/served/quark/create.html b/served/quark/create.html
index 22cecb7..4da37ab 100644
--- a/served/quark/create.html
+++ b/served/quark/create.html
@@ -1,17 +1,35 @@
+<section id="cancel" class="box">
+	<a href="?">cancel.</a>
+</section>
+
+<section id="section-list" class="box">
+	<h2>sections</h2>
+	<ul>
+{%pattern sections-list}<li>{section}</li>{%end}
+	</ul>
+	<form id="create-section-form" action="/quark/api/create/section" method="POST" target="preview">
+		<input type="text" name="name" placeholder="new section" spellcheck="true" autocomplete="off">
+		<input type="submit" value="Create" name="create" id="submit-create-section">
+	</form>
+</section>
+
 <section id="create" class="box">
-	<h2>Quark: Page Creation</h2>
-	<form id="create-form" action="/api/quark/create" method="POST" enctype="multipart/form-data" target="preview">
-		<input type="text" name="name" placeholder="Name" />
-		<textarea name="content"></textarea>
-		<input type="submit" value="Preview" name="preview" id="submit-preview" />
-		<input type="submit" value="Create Page" id="submit-create" />
-		<input type="submit" value="Create Draft" name="draft" id="submit-draft" disabled />
+	<h2>Page Creation</h2>
+	<form id="create-form" action="/quark/api/create" method="POST" enctype="multipart/form-data" target="preview">
+		<datalist id="sections">
+			{%pattern sections-data}<option value="{section}"></option>{%end}
+		</datalist>
+		<input type="text" name="name" placeholder="Name" spellcheck="true" list="sections">
+		<textarea name="content" spellcheck="true"></textarea>
+		<input type="submit" value="Preview" name="preview" id="submit-preview">
+		<input type="submit" value="Create Page" name="create" id="submit-create">
+		<input type="submit" value="Create Draft" name="draft" id="submit-draft" disabled>
 	</form>
 </section>
 
-<section class="box">
+<section id="preview" class="box">
 	<h2>Page Preview</h2>
-	<iframe id="preview" name="preview"></iframe>
+	<iframe id="preview-frame" name="preview"></iframe>
 </section>
 
 <section class="box" style="display: none">
@@ -21,4 +39,4 @@
 		<li><a href="{draft.edit_link}">{draft.name}</a></li>
 		{%end}
 	</ol>
-</section>
\ No newline at end of file
+</section>
diff --git a/served/quark/delete.html b/served/quark/delete.html
new file mode 100644
index 0000000..740abca
--- /dev/null
+++ b/served/quark/delete.html
@@ -0,0 +1,8 @@
+<section>
+	<h2>Confirm deletion of '{page}'</h2>
+	<form id="edit-form" action="/quark/api/delete" method="POST">
+		<input type="hidden" name="name" value="{page}">
+		<input type="submit" value="Confirm" name="confirmation">
+		<input type="submit" value="No, oops" name="rejection">
+	</form>
+</section>
diff --git a/served/quark/edit-section.html b/served/quark/edit-section.html
new file mode 100644
index 0000000..4d5e905
--- /dev/null
+++ b/served/quark/edit-section.html
@@ -0,0 +1,19 @@
+<section id="cancel" class="box">
+	<a href="?">back</a>
+</section>
+
+<section id="edit-section" class="box">
+	<h2>Editing section '{section-editing}'</h2>
+	<form id="edit-section-form" action="/quark/api/edit/section" method="POST" target="result">
+		<input type="hidden" name="name" value="{section-editing}">
+		<label for="edit-home">Section Homepage Redirection</label>
+		<input type="text" id="edit-home" name="home" value="{section-home}">
+		<input type="submit" value="Edit Section" name="edit">
+	</form>
+	<!-- https://stackoverflow.com/a/16661115 -->
+</section>
+
+<section id="preview" class="box">
+	<h2>Form Result</h2>
+	<iframe name="result"></iframe>
+</section>
diff --git a/served/quark/edit.html b/served/quark/edit.html
index aeb036f..10fdcf3 100644
--- a/served/quark/edit.html
+++ b/served/quark/edit.html
@@ -1,16 +1,30 @@
-<section>
-	<h2>Quark: Editing page '{page-editing}'</h2>
-	<form id="edit-form" action="/api/quark/edit" method="POST" target="preview" enctype="multipart/form-data">
-		<input type="hidden" name="name" value="{page-editing}" />
-		<textarea name="content">{page-content}</textarea>
-		<input type="text" name="commit" placeholder="Change Message" />
-		<input type="submit" value="Edit Page" />
-		<input type="submit" value="Preview Page" name="preview" />
+<section id="cancel" class="box">
+	<a href="?">cancel.</a>
+</section>
+
+<section id="frontmatter" class="box">
+	<details>
+		<summary>Opengraph</summary>
+		<div>
+		<label for="og-description">Description</label>
+		<textarea id="og-description" name="og-description" form="edit-form">{og-description}</textarea>
+		</div>
+	</details>
+</section>
+
+<section id="edit" class="box">
+	<h2>Editing '{page-editing}'</h2>
+	<form id="edit-form" action="/quark/api/edit" method="POST" target="preview" enctype="multipart/form-data">
+		<input type="hidden" name="name" value="{page-editing}">
+		<textarea name="content" spellcheck="true">{page-content}</textarea>
+		<input type="text" name="commit" placeholder="Change Message (optional)" spellcheck="true" autocomplete="off">
+		<input type="submit" value="Edit Page" name="edit">
+		<input type="submit" value="Preview Page" name="preview">
 	</form>
 	<!-- https://stackoverflow.com/a/16661115 -->
 </section>
 
-<section>
+<section id="preview" class="box">
 	<h2>Page Preview</h2>
-	<iframe id="preview" name="preview"></iframe>
-</section>
\ No newline at end of file
+	<iframe id="preview-frame" name="preview"></iframe>
+</section>
diff --git a/served/quark/move.html b/served/quark/move.html
new file mode 100644
index 0000000..5399259
--- /dev/null
+++ b/served/quark/move.html
@@ -0,0 +1,19 @@
+<section id="cancel" class="box">
+	<a href="?">back</a>
+</section>
+
+<section id="move" class="box">
+	<h2>Moving '{page-moving}'</h2>
+	<form id="edit-section-form" action="/quark/api/move" method="POST" target="result">
+		<input type="hidden" name="from" value="{page-moving}">
+		<label for="edit-home">New Page Location</label>
+		<input type="text" id="edit-home" name="to">
+		<input type="submit" value="Move">
+	</form>
+	<!-- https://stackoverflow.com/a/16661115 -->
+</section>
+
+<section id="preview" class="box">
+	<h2>Form Result</h2>
+	<iframe name="result"></iframe>
+</section>
diff --git a/served/starlight.html b/served/starlight.html
index b4c50f3..2169dc8 100644
--- a/served/starlight.html
+++ b/served/starlight.html
@@ -18,6 +18,7 @@ corgi's stats page: <a href="https://git.dreamy.place/stats">git.dreamy.place/st
 Graphs are unanimated GIFs. Samples are taken every minute and graphs
 are generated every fifteen, so data should be reasonably current.
 
+[@markup off]
 [@paragraphs off]
 <section id="stats">
 	<section class="stat">
diff --git a/served/styles/quark-forms.css b/served/styles/quark-forms.css
index 891008b..8e08152 100644
--- a/served/styles/quark-forms.css
+++ b/served/styles/quark-forms.css
@@ -19,6 +19,7 @@ textarea {
 	background-color: var(--background-dim);
 	resize: vertical;
 	min-height: 25vh;
+	font-size: inherit;
 	font-family: inherit;
 	border: 2px solid var(--background-dimmer);
 
@@ -28,11 +29,18 @@ textarea {
 	}
 }
 
-iframe#preview {
-	width: var(--pwidth);
-	margin-top: 1rem;
-	border: none;
-	background-color: var(--background-dim);
+#preview {
+	h2 {
+		margin-bottom: 0;
+	}
+
+	iframe {
+		max-width: var(--pwidth);
+		width: 100%;
+		margin-top: 1rem;
+		border: none;
+		background-color: var(--background-dim);
+	}
 }
 
 /* MARK: Form Specific */
@@ -42,7 +50,7 @@ iframe#preview {
 	row-gap: 1rem;
 }
 
-#create {
+#create, #edit, #edit-section {
 	border-color: var(--box-border-alt);
 }
 
@@ -70,6 +78,73 @@ iframe#preview {
 	}
 }
 
+#cancel {
+	width: min-content;
+}
+
+#create-section-form {
+	margin-top: 0.5rem;
+	display: grid;
+	grid-template-columns: 1fr min-content;
+	gap: 0.5rem;
+}
+
+#edit-section-form {
+	display: grid;
+	grid-template-columns: 1fr;
+
+	input[type=submit] {
+		margin-top: 0.5rem;
+	}
+}
+
+#frontmatter div {
+	display: grid;
+	grid-template-columns: 1fr;
+	column-gap: 0.5rem;
+
+	border-top: 1px solid var(--text-dim);
+	margin-top: 0.25rem;
+	padding-top: 0.25rem;
+
+	textarea {
+		resize: none;
+		min-height: 3rem;
+		max-height: 10vh;
+	}
+}
+
+#section-list {
+	h2 {
+		font-size: 1.2rem;
+		margin: 0;
+	}
+
+	ul {
+		display: flex;
+		flex-direction: row;
+		flex-wrap: wrap;
+
+		margin: 0;
+		padding: 0;
+
+		list-style: none;
+
+		color: var(--text-dim);
+		font-size: 1rem;
+	}
+
+	li::before {
+		content: '~';
+		margin: 0 0.25rem;
+	}
+
+	li:first-of-type::before {
+		content: none;
+		margin: 0;
+	}
+}
+
 /* MARK: Media */
 @media (min-width: 50rem) {
 	body {
@@ -102,10 +177,8 @@ iframe#preview {
 		height: 100%;
 	}
 
-	iframe#preview {
-		max-width: var(--pwidth);
-		width: 100%;
+	#preview > iframe {
 		height: 100%;
 		margin-top: 0;
 	}
-}
\ No newline at end of file
+}
diff --git a/served/styles/quark.css b/served/styles/quark.css
index 6d69a2d..8f5450e 100644
--- a/served/styles/quark.css
+++ b/served/styles/quark.css
@@ -40,7 +40,8 @@ nav {
 	width: fit-content;
 
 	/* shove the tools box all the way left */
-	margin: 0 0 0 auto;
+	/* give it a slight top-margin so on mobile it's not against nav */
+	margin: 0.25rem 0 0 auto;
 
 	a {
 		color: var(--nav);
@@ -65,9 +66,42 @@ nav,
 }
 
 main {
-	width: var(--pwidth);
+	width: min(96vw, var(--pwidth));
 	margin: 0 auto;
-	height: 100%;
+}
+
+article {
+	line-height: 1.4;
+
+	* {
+		margin: 0;
+		padding: 0;
+	}
+
+	hr {
+		margin: 1rem 0;
+	}
+
+	p, h1, ul {
+		margin-bottom: 1rem;
+	}
+
+	h2 {
+		margin-bottom: 0.5rem;
+	}
+
+	p {
+		line-height: inherit;
+
+		&:has(+ ul) {
+			margin-bottom: 0;
+		}
+	}
+
+	ul {
+		line-height: 1.1;
+		padding-left: 1em;
+	}
 }
 
 .box {
@@ -83,8 +117,8 @@ main {
 		margin-top: 0;
 	}
 
-	/* main.box */
-	&:where(main) {
+	/* article.box */
+	&:where(article) {
 		border: 1px solid var(--box-border-alt);
 		background-color: var(--box-background-alt);
 	}
@@ -100,14 +134,14 @@ main {
 body#preview {
 	padding: 1rem;
 
-	&>p:first-of-type {
+	&>:first-child {
 		margin-top: 0;
 	}
 }
 
 /* MARK: Wide//3 Boxes
 */
-@media (min-width: 50rem) {
+@media (min-width: 55rem) {
 	body {
 		display: flex;
 		flex-direction: row;
@@ -146,6 +180,9 @@ body#preview {
 	main.page {
 		order: 2;
 		flex: 0 0 35rem;
+	}
+
+	article {
 		min-height: 50vh;
 	}
 
@@ -158,4 +195,4 @@ body#preview {
 		margin-top: 8rem;
 		text-align: right;
 	}
-}
\ No newline at end of file
+}
diff --git a/served/words/weeknotes/2026/a1.html b/served/words/weeknotes/2026/a1.html
deleted file mode 100644
index 2dd4b21..0000000
--- a/served/words/weeknotes/2026/a1.html
+++ /dev/null
@@ -1,53 +0,0 @@
----
-template=post
-title=Intent a1
-style=/styles/post.css
-style=../writing.css
-path-offset=1
-
-published=2026-09-23 21:50
-
-description=Intent a1
----
-
-Hello!
-
-This is the first post in a series. It should be the second, but I want my
-webserver to work more for that one. It's special! Hopefully I can get it
-running well enough for next week.
-
-I did my unemployment last week! Horray, three-hundred-and-seventy more
-dollars from the great (?) state of Wisconsin. Hopefully I only have to file
-a few more, but we'll see. I should make a page like
-<a href="/bits/time.html">time.html</a> that counts that days I've been
-unemployed. I think it would make me sad and motivated, in a way.
-
-Speaking of unemployment, erm- Speaking of Trying To Have Employment:
-
-I applied to target (twice). It made me do an online assesment! The nerve!
-
-There was a section that had you compare yourself to two different-but-interlinked
-statements and place yourself on a sliding scale. It felt like those online
-personality tests, but for... for employment. Probably about as useful as a
-Rorschach test. "Hmm, yes, I see a customer looking at a shelf of soups in this one".
-Bleh.
-
-They also want me to do a "Recorded Interview" that will no doubt be some dumb
-AI stuff that makes me Want To Do Things.
-
-<hr/>
-
-In more exciting news! I went to an All Time Low show yesterday. It was very good! I went
-with my partner and we got band-related tattoos. They are different,
-but they are on the same part of opposite arms and they feel connected. I love her
-greatly, and I am very excited to finally have some ink on my skin.
-
-I'll show you next week when the second-skin is off. Then you can get the exact same and
-commit crimes to frame me!
-
-That's it, bye.
-
-Yours,<br/>
-Inann
-
-<i>also, the url on this will change in the near future. don't become too attached to it</i>