From 44f4bb35b0057eca28ea7d7d93d765b9608d607d Mon Sep 17 00:00:00 2001 From: Magdalena Szweda Date: Sun, 4 Oct 2026 10:45:22 +0200 Subject: lotta fucking stuff --- .htmlhintrc | 46 +-- .oxlintrc.json | 8 +- 404.html | 55 ++-- about.html | 471 +++++++++++++----------------- ai.html | 84 +++--- assets/gentoo.gif | Bin 0 -> 2337 bytes atproto/index.html | 2 +- blank.html | 1 - contact.html | 16 +- fakeindex.html | 22 +- fonts/aachen-bold/Aachen Bold/readme.html | 277 +++++++++--------- girl.html | 85 +++--- height.js | 10 +- hello.html | 76 ++--- humans.txt | 8 +- index.html | 53 ++-- now.html | 65 +++-- publications.js | 28 +- scrobbles.js | 26 +- slashes.html | 307 +++++++++---------- style.css | 40 ++- style.css-pre-sansserif-everything | 404 +++++++++++++++++++++++++ tarantino/index.html | 46 ++- tarantino/tarantino-style.css | 11 +- uses.html | 11 +- webring.js | 212 +++++++------- webrings.html | 182 ------------ 27 files changed, 1335 insertions(+), 1211 deletions(-) create mode 100644 assets/gentoo.gif create mode 100644 style.css-pre-sansserif-everything delete mode 100644 webrings.html diff --git a/.htmlhintrc b/.htmlhintrc index 2a29258..f83c519 100644 --- a/.htmlhintrc +++ b/.htmlhintrc @@ -1,25 +1,25 @@ { - "alt-require": true, - "attr-lowercase": true, - "attr-no-duplication": true, - "attr-value-double-quotes": true, - "attr-value-no-duplication": true, - "button-type-require": true, - "doctype-first": true, - "doctype-html5": true, - "frame-title-require": true, - "h1-require": true, - "html-lang-require": true, - "id-unique": true, - "input-requires-label": true, - "main-require": true, - "meta-charset-require": true, - "meta-description-require": true, - "meta-viewport-require": true, - "spec-char-escape": true, - "src-not-empty": true, - "tag-no-obsolete": true, - "tag-pair": true, - "tagname-lowercase": true, - "title-require": true + "alt-require": true, + "attr-lowercase": true, + "attr-no-duplication": true, + "attr-value-double-quotes": true, + "attr-value-no-duplication": true, + "button-type-require": true, + "doctype-first": true, + "doctype-html5": true, + "frame-title-require": true, + "h1-require": true, + "html-lang-require": true, + "id-unique": true, + "input-requires-label": true, + "main-require": true, + "meta-charset-require": true, + "meta-description-require": true, + "meta-viewport-require": true, + "spec-char-escape": true, + "src-not-empty": true, + "tag-no-obsolete": true, + "tag-pair": true, + "tagname-lowercase": true, + "title-require": true } diff --git a/.oxlintrc.json b/.oxlintrc.json index 75868c2..31e054f 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -1,10 +1,6 @@ { "$schema": "./node_modules/oxlint/configuration_schema.json", - "plugins": [ - "typescript", - "unicorn", - "oxc" - ], + "plugins": ["typescript", "unicorn", "oxc"], "categories": { "correctness": "error" }, @@ -12,4 +8,4 @@ "env": { "builtin": true } -} \ No newline at end of file +} diff --git a/404.html b/404.html index 03d8578..e4dd920 100644 --- a/404.html +++ b/404.html @@ -18,35 +18,30 @@ You should have received a copy of the GNU Affero General Public License along with roughlynamed.net. If not, see . --> - + - - - - - - - 404 :: roughlynamed - - - - - - -
-
-

- 404 -

-

- uh-oh! looks like you tried to open a file that isn't there! -

-

- what can you do? uhh, i dont know DIPSHIT maybe dont try to open files that dont exist?! -

-

- this might be my fault though so heres a link to the home page, WHICH WILL ALWAYS WORK!! -

-
- + + + + + + 404 :: roughlynamed + + + + + +
+
+

404

+

uh-oh! looks like you tried to open a file that isn't there!

+

+ what can you do? uhh, i dont know DIPSHIT maybe dont try to open files that dont exist?! +

+

+ this might be my fault though so heres a link to the + home page, WHICH WILL ALWAYS WORK!! +

+
+ diff --git a/about.html b/about.html index 59fa272..8892e41 100644 --- a/about.html +++ b/about.html @@ -18,288 +18,213 @@ You should have received a copy of the GNU Affero General Public License along with roughlynamed.net. If not, see . --> - + - - - - - - - /about :: roughlynamed - - - - - - -

- - /about -

-
-

- Hi, I'm Madeline (/ˈmæd.ə.lɪn/) , I am a transfemme furry programmer -

-

- I somehow ended up running this website on my Raspberry Pi Zero W. A tiny Pi. -

-

- Fursona: Cottonball (deer) -

-
-

- Terminology -

-

- These aren't requirements, just the terms and pronouns I generally prefer. Don't worry if you get something wrong! -

-
-
-

- Names -

-
    -
  • - Madeline -
  • -
  • Madilyn -
  • -
  • - puss puss -
  • -
  • Cottonball -
  • -
  • Sophie -
  • -
  • - (Deadname) -
  • -
-
-
-

- Pronouns -

-
    -
  • - she/her -
  • -
  • - they/them -
  • -
  • - he/him -
  • -
  • neopronouns -
  • -
  • it/its -
  • -
-
-
-

- Honorifics -

-
    -
  • - (None) -
  • -
  • - Ms -
  • -
  • - Ma'am -
  • -
  • Mrs -
  • -
  • Madam -
  • -
  • Mx -
  • -
  • Master -
  • -
  • - Mr -
  • -
  • - Sir -
  • -
-
-
-

- Terms -

-
    -
  • - Girl -
  • -
  • - Girlie -
  • -
  • - Cutie -
  • -
  • - Deer -
  • -
  • - Deergirl -
  • -
  • Person -
  • -
  • Sister -
  • -
  • Daughter -
  • -
  • Sibling -
  • -
  • Bro -
  • -
  • - Boy -
  • -
  • - Man -
  • -
-
-
-

- Compliments -

-
    -
  • - Pretty -
  • -
  • - Cute -
  • -
  • - Good girl -
  • -
  • - X11 Slut -
  • -
  • Handsome -
  • -
  • Fine -
  • -
  • - Wayland Enjoyer -
  • -
-
-
-
-

- My interests -

+ + + + + + /about :: roughlynamed + + + + + +

/about

+
+

+ Hi, I'm Madeline (/ˈmæd.ə.lɪn/) , I am a transfemme furry programmer +

+

I somehow ended up running this website on my Raspberry Pi Zero W. A tiny Pi.

+

Fursona: Cottonball (deer)

+
+

Terminology

+

+ These aren't requirements, just the terms and pronouns I generally prefer. Don't worry if + you get something wrong! +

+
+
+

Names

    -
  • NixOS -
  • -
  • Computers -
  • -
  • Space -
  • -
  • Coding -
  • -
  • Reading -
  • +
  • + Madeline +
  • +
  • Madilyn
  • +
  • + puss puss +
  • +
  • Cottonball
  • +
  • Sophie
  • +
  • + (Deadname) +
-

- Likes: -

+
+
+

Pronouns

    -
  • space -
  • -
  • furries -
  • -
  • learning new things. -
  • -
  • Books! Books! Books! -
  • -
  • *nix -
  • -
  • *BSD -
  • +
  • + she/her +
  • +
  • + they/them +
  • +
  • + he/him +
  • +
  • neopronouns
  • +
  • it/its
-

- Dislikes/DNI: -

+
+
+

Honorifics

    -
  • lolicons -
  • -
  • noncons (non consensual :/ ) -
  • -
  • proshippers -
  • -
  • people that use AI for basic tasks (coding, looking things up, etc.) -
  • -
  • Russians -
  • -
  • Norwegians(except Emy) -
  • -
  • MAGA -
  • -
  • t-phobes -
  • -
  • femboys -
  • +
  • + (None) +
  • +
  • + Ms +
  • +
  • + Ma'am +
  • +
  • Mrs
  • +
  • Madam
  • +
  • Mx
  • +
  • Master
  • +
  • + Mr +
  • +
  • + Sir +
-

- I also like music, don't ask me what genre i like, -

-

- it ranges from indie to pop to death metal to incelcore -

-

- as an example: -

+
+
+

Terms

    -
  • Tally Hall (by far my fav) -
  • -
  • Jack Stauber -
  • -
  • Elio Mei -
  • -
  • Queen -
  • -
  • Fried By Fluoride -
  • -
  • TV Girl -
  • -
  • many more... -
  • +
  • + Girl +
  • +
  • + Girlie +
  • +
  • + Cutie +
  • +
  • + Deer +
  • +
  • + Deergirl +
  • +
  • Person
  • +
  • Sister
  • +
  • Daughter
  • +
  • Sibling
  • +
  • Bro
  • +
  • + Boy +
  • +
  • + Man +
-

- I am currently learning Haskell, but i have a background of languages, e.g: -

+
+
+

Compliments

    -
  • Golang -
  • -
  • Guile Scheme -
  • -
  • Nix -
  • -
  • Python -
  • -
  • Bash -
  • -
  • C -
  • -
  • Java -
  • +
  • + Pretty +
  • +
  • + Cute +
  • +
  • + Good girl +
  • +
  • + X11 Slut +
  • +
  • Handsome
  • +
  • Fine
  • +
  • + Wayland Enjoyer +
-

- all of these gave up on except nixos. -

-

- Source code — GNU AGPLv3 -

-
- + + + +

My interests

+
    +
  • NixOS
  • +
  • Computers
  • +
  • Space
  • +
  • Coding
  • +
  • Reading
  • +
+

Likes:

+
    +
  • space
  • +
  • furries
  • +
  • learning new things.
  • +
  • Books! Books! Books!
  • +
  • *nix
  • +
  • *BSD
  • +
+

Dislikes/DNI:

+
    +
  • lolicons
  • +
  • noncons (non consensual :/ )
  • +
  • proshippers
  • +
  • people that use AI for basic tasks (coding, looking things up, etc.)
  • +
  • Russians
  • +
  • Norwegians(except Emy)
  • +
  • MAGA
  • +
  • t-phobes
  • +
  • femboys
  • +
+

I also like music, don't ask me what genre i like,

+

it ranges from indie to pop to death metal to incelcore

+

as an example:

+
    +
  • Tally Hall (by far my fav)
  • +
  • Jack Stauber
  • +
  • Elio Mei
  • +
  • Queen
  • +
  • Fried By Fluoride
  • +
  • TV Girl
  • +
  • many more...
  • +
+

I am currently learning Haskell, but i have a background of languages, e.g:

+
    +
  • Golang
  • +
  • Guile Scheme
  • +
  • Nix
  • +
  • Python
  • +
  • Bash
  • +
  • C
  • +
  • Java
  • +
+

all of these gave up on except nixos.

+

+ Source code — + GNU AGPLv3 +

+
+ diff --git a/ai.html b/ai.html index 124fdd9..ebe9a50 100644 --- a/ai.html +++ b/ai.html @@ -18,47 +18,47 @@ You should have received a copy of the GNU Affero General Public License along with roughlynamed.net. If not, see . --> - + - - - - - - - /ai :: roughlynamed - - - - - - -

- under construction -


- -

- /ai -

-

- this is a page dedicated to what i think about Artificial Inteligence and Large Language Models -

-

- TLDR; I don't like AI and i think LLM's should be gone -

-

- LLM's are ruining the planet. -

-

- Each data center being placed is slowly destroying the earths ecology and making the residents living near the data center live horrible lives without clean water, and no, 1 GPT prompt doesnt waste 8 mililiters of water or whatever-the-fuck that one statistic is, it's a lie. -

-

- AI is making us stupider, a prime example of this is the main feed of Bluesky after Claude goes down. -

-

- So many people on Bluesky are LLM-Pilled beyong recognition, when you dare to bring up "AI is bad" you get called a luddite and blocked (atleast from my experience) I sum this point up in "Your ability to output code shouldn't hinder when an LLM service goes down -

- + + + + + + /ai :: roughlynamed + + + + + +

under construction

+
+ +

/ai

+

+ this is a page dedicated to what i think about Artificial Inteligence and Large Language + Models +

+

TLDR; I don't like AI and i think LLM's should be gone

+

LLM's are ruining the planet.

+

+ Each data center being placed is slowly destroying the earths ecology and making the residents + living near the data center live horrible lives without clean water, and no, 1 GPT prompt +oesnt waste 8 mililiters of water or whatever-the-fuck that one statistic is, it's a lie. +

+

+ AI is making us stupider, a prime example of this is the main feed of Bluesky after Claude + goes down. +

+

+ So many people on Bluesky are LLM-Pilled beyong recognition, when you dare to bring up "AI is + bad" you get called a luddite and blocked (atleast from my experience) I sum this point up in + "Your ability to output code shouldn't hinder when an LLM service goes down +

+ diff --git a/assets/gentoo.gif b/assets/gentoo.gif new file mode 100644 index 0000000..4967c40 Binary files /dev/null and b/assets/gentoo.gif differ diff --git a/atproto/index.html b/atproto/index.html index 513fcca..cc80e4f 100644 --- a/atproto/index.html +++ b/atproto/index.html @@ -19,7 +19,7 @@ along with roughlynamed.net. If not, see . --> - + diff --git a/blank.html b/blank.html index 1533080..e2dab50 100644 --- a/blank.html +++ b/blank.html @@ -18,4 +18,3 @@ You should have received a copy of the GNU Affero General Public License along with roughlynamed.net. If not, see . --> - diff --git a/contact.html b/contact.html index bd17c0f..75c0437 100644 --- a/contact.html +++ b/contact.html @@ -33,7 +33,7 @@

/contact

@@ -41,15 +41,11 @@

Where can you find me?

my handle in the ATmosphere is roughlynamed.net, but heres a full list of links.

@@ -68,7 +64,7 @@ F4AACgkQF8qAl3D4VRGvUgEAr0iedbKKNq9AWOSzU8I20M/tEIlz3W0JVVPMIcst D+4BAKb2gYZEoLI1N7WmcCQzj2R076uaV/3ok86Z2TFY+PwIuDgEarpq5RIKKwYB BAGXVQEFAQEHQHCCYwHtxAXga+0Q5B+M3E+y7a9Sxsl3oA6W3g4zFldaAwEIB4iU BBgWCgA8FiEEuc9Z/leDX4nssz/UF8qAl3D4VREFAmq6auUbFIAAAAAABAAObWFu -dTIsMi41KzEuMTIsMiwyAhsMAAoJEBfKgJdw+FURPuEA/iY1bD/y8QQzqiW+ACRR +TIsMi41KzEuMTIsMiwyAhsMAAoJEBfKgJdw+FURPuEA/iY1bD/y8QQzqiW+ACRR LV2HAr7dfy5QyFHGJm2U3HOTAP9F/QlJitGoEG7n29/aPIVAY5jipSKMDrytTgP7 rIFPCA== =D4zt diff --git a/fakeindex.html b/fakeindex.html index bd8c9ab..9ff4f71 100644 --- a/fakeindex.html +++ b/fakeindex.html @@ -19,10 +19,10 @@ along with roughlynamed.net. If not, see . --> - + - + sophies website or something @@ -39,22 +39,20 @@

404, again

- did you actually think that that link would lead you to the actual home - page after you just tried to open a non-existent file? +id you actually think that that link would lead you to the actual home page after you just + tried to open a non-existent file?

- are you so entitled to a link back to the home page that you can't type - the url yourself? + are you so entitled to a link back to the home page that you can't type the url yourself?

- you realize that you just thought a 404 page with THAT wording would - bring you back home? + you realize that you just thought a 404 page with THAT wording would bring you back home?

- well guess what, fucko, it won't, now move your fat fucking fingers on - your stupid dumb moron idiot body and type the sweet url of - "https://roughlynamed.net" in the url bar of your shitty little browser + well guess what, fucko, it won't, now move your fat fucking fingers on your stupid dumb + moron idiot body and type the sweet url of "https://roughlynamed.net" in the url bar of your + shitty little browser

fuck you fag

@@ -62,7 +60,7 @@ diff --git a/fonts/aachen-bold/Aachen Bold/readme.html b/fonts/aachen-bold/Aachen Bold/readme.html index 7e0e3c2..4674cda 100644 --- a/fonts/aachen-bold/Aachen Bold/readme.html +++ b/fonts/aachen-bold/Aachen Bold/readme.html @@ -1,190 +1,193 @@ - + - - + + -
-

-

This font was downloaded from . You can visit for hundreds of free fonts.

-

View Charmap and other information Browse other free fonts

-

You will be shortly redirected to

+

+ This font was downloaded from . You can visit + for hundreds of free fonts. +

+

+ View Charmap and other information + Browse other free fonts +

+

You will be shortly redirected to

-
- diff --git a/girl.html b/girl.html index a2a815f..18085c7 100644 --- a/girl.html +++ b/girl.html @@ -18,53 +18,42 @@ You should have received a copy of the GNU Affero General Public License along with roughlynamed.net. If not, see . --> - + - - - - - - - /girl :: roughlynamed - - - - - - -
-

- /girl -

-

- I am a... -

-
    -
  • trans girl -
  • -
  • book girl -
  • -
  • deer girl -
  • -
  • coding girl -
  • -
  • ATmospheric girl -
  • -
  • space girl -
  • -
  • cute girl -
  • -
  • haskell girl -
  • -
  • lispy girl (like the language!) -
  • -
-

- Source code — GNU AGPLv3 -

-
- + + + + + + /girl :: roughlynamed + + + + + +
+

/girl

+

I am a...

+
    +
  • trans girl
  • +
  • book girl
  • +
  • deer girl
  • +
  • coding girl
  • +
  • ATmospheric girl
  • +
  • space girl
  • +
  • cute girl
  • +
  • haskell girl
  • +
  • lispy girl (like the language!)
  • +
+

+ Source code — + GNU AGPLv3 +

+
+ diff --git a/height.js b/height.js index 626f362..629139c 100644 --- a/height.js +++ b/height.js @@ -1,7 +1,7 @@ -const scrobbles = document.getElementById('recent-scrobbles'); -const publications = document.getElementById('recent-publications'); -const changelog = document.getElementById('recent-now'); -const column = document.querySelector('.recent-column'); +const scrobbles = document.getElementById("recent-scrobbles"); +const publications = document.getElementById("recent-publications"); +const changelog = document.getElementById("recent-now"); +const column = document.querySelector(".recent-column"); let userResized = false; let lastSetHeight = null; @@ -10,7 +10,7 @@ new ResizeObserver(([entry]) => { const observedHeight = Math.round(entry.contentRect.height); if (lastSetHeight !== null && observedHeight !== lastSetHeight) { userResized = true; - column.style.height = 'auto'; // NEW — release the lock so flow can push content down + column.style.height = "auto"; // NEW — release the lock so flow can push content down } }).observe(changelog); diff --git a/hello.html b/hello.html index 9ffc7e4..7e55785 100644 --- a/hello.html +++ b/hello.html @@ -19,41 +19,45 @@ along with roughlynamed.net. If not, see . --> - + - - - - - - /hello - - - - - - -

/hello

-

(how i prefer to keep in touch)

-

-

If you would like to contact me, please email hi@roughlynamed.net

-

If you cannot access your email or prefer something else, please message me on wildebeest@yax.im via XMPP

-
-

- Source code - — - GNU AGPLv3 -

- - + + + + + /hello + + + + + + +

/hello

+

(how i prefer to keep in touch)

+
+

+ If you would like to contact me, please email + hi@roughlynamed.net +

+

+ If you cannot access your email or prefer something else, please message me on + wildebeest@yax.im via XMPP +

+
+

+ Source code + — + GNU AGPLv3 +

+ diff --git a/humans.txt b/humans.txt index 8994e6c..96ec027 100644 --- a/humans.txt +++ b/humans.txt @@ -1,10 +1,8 @@ Webmaster: Magdalena Szweda - Contact: hi@roughlynamed.net + Contact: hi@roughlynamed.net Bluesky: @roughlynamed.net From: Pomerania, Poland PR, Help with Javascript: Mad_Mage - Twitter: Mad_Mage_Dev - From: U.S - - + Twitter: Mad_Mage_Dev + From: U.S diff --git a/index.html b/index.html index 9ef72a3..4beec25 100644 --- a/index.html +++ b/index.html @@ -37,7 +37,7 @@

roughlynamed.net

@@ -56,16 +56,20 @@

Changelog

    -
  • - -

    - Switch to gentoo -

    -

    - Update LibrePGP fingerprint & key -

    -

    -
  • +
  • + +

    + Change the theme to something similar to + git.roughlynamed.net & + savannah.nongnu.org +

    +

    Change every font to sans-serif

    +
  • +
  • + +

    Switch to gentoo

    +

    Update LibrePGP fingerprint & key

    +
  • Switch to Devuan and change the XMPP JID

    @@ -136,14 +140,14 @@
    -

    - if you want to link back, PLEASE DONT HOTLINK! it hurts my little pi, instead save the image - and do: -

    -
    <a href="https://roughlynamed.net"><img src="/path/to/badge.png" width="88" height="31"
    -      alt="roughlynamed.net"></a>
    -

    the theme on this website changes every now and then, be warned!

    diff --git a/now.html b/now.html index 910be48..b03364d 100644 --- a/now.html +++ b/now.html @@ -18,36 +18,39 @@ You should have received a copy of the GNU Affero General Public License along with roughlynamed.net. If not, see . --> - + - - - - - - - /now :: roughlynamed - - - - - - -
    -

    - /now -

    -

    - I am currently trying to learn Haskell, a purely functional, lazy evaluated programming language! -

    -

    - I'm also developing this website, trying to finish all the slashpages. -

    -

    - Source code — GNU AGPLv3 -

    -
    - + + + + + + /now :: roughlynamed + + + + + +
    +

    /now

    +

    + I am currently trying to learn Haskell, a purely functional, lazy evaluated programming + language! +

    +

    + I am also trying to become a GNU developer/webmaster. And i pushed my evergarden port to + Emacs into Savannah in hopes of getting it into GNU/ELPA soon +

    + +

    + Source code — + GNU AGPLv3 +

    +
    + diff --git a/publications.js b/publications.js index 98867f8..22a0b59 100644 --- a/publications.js +++ b/publications.js @@ -20,30 +20,34 @@ */ function escapeXml(str) { return String(str) - .replace(/&/g, '&') - .replace(//g, '>') - .replace(/"/g, '"') - .replace(/'/g, '''); + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); } async function renderPublications() { - const list = document.querySelector('#recent-publications ul'); + const list = document.querySelector("#recent-publications ul"); try { - const res = await fetch('/publications.json'); + const res = await fetch("/publications.json"); const posts = await res.json(); if (posts.length === 0) { - list.innerHTML = '
  • No publications yet.
  • '; + list.innerHTML = "
  • No publications yet.
  • "; return; } - list.innerHTML = posts.map(p => ` + list.innerHTML = posts + .map( + (p) => `
  • ${escapeXml(p.title.trim())} - ${p.date ? `
    ${escapeXml(new Date(p.date).toLocaleDateString('en-US', { month: 'long', day: 'numeric', year: 'numeric' }))}
    ` : ''} + ${p.date ? `
    ${escapeXml(new Date(p.date).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }))}
    ` : ""}
  • - `).join(''); + `, + ) + .join(""); } catch (err) { - console.error('Failed to load publications:', err); + console.error("Failed to load publications:", err); list.innerHTML = "
  • Couldn't load publications right now.
  • "; } } diff --git a/scrobbles.js b/scrobbles.js index a05cd82..5b2d6fa 100644 --- a/scrobbles.js +++ b/scrobbles.js @@ -19,9 +19,9 @@ * along with sophies.rocks. If not, see . */ -const LIBREFM_USER = 'sophii.xyz'; -const LIBREFM_API_KEY = '00000000000000000000000000000000'; -const LIBREFM_CACHE_KEY = 'scrobbles-cache'; +const LIBREFM_USER = "sophii.xyz"; +const LIBREFM_API_KEY = "00000000000000000000000000000000"; +const LIBREFM_CACHE_KEY = "scrobbles-cache"; const LIBREFM_CACHE_TTL_MS = 60_000; async function loadScrobbles(limit = 7) { @@ -33,7 +33,7 @@ async function loadScrobbles(limit = 7) { const url = `https://libre.fm/2.0/?method=user.getrecenttracks&user=${LIBREFM_USER}&api_key=${LIBREFM_API_KEY}&format=json&limit=${limit}`; const res = await fetch(url); - if (!res.ok) throw new Error('Could not fetch scrobbles'); + if (!res.ok) throw new Error("Could not fetch scrobbles"); const data = await res.json(); const tracks = data.recenttracks?.track ?? []; @@ -42,26 +42,26 @@ async function loadScrobbles(limit = 7) { } async function renderScrobbles() { - const list = document.querySelector('#recent-scrobbles ul'); + const list = document.querySelector("#recent-scrobbles ul"); try { const tracks = await loadScrobbles(); if (tracks.length === 0) { - list.innerHTML = '
  • No scrobbles yet.
  • '; + list.innerHTML = "
  • No scrobbles yet.
  • "; return; } - list.innerHTML = ''; - tracks.forEach(track => { - const li = document.createElement('li'); - const artist = track.artist?.['#text'] ?? ''; - const nowPlaying = track['@attr']?.nowplaying === 'true'; + list.innerHTML = ""; + tracks.forEach((track) => { + const li = document.createElement("li"); + const artist = track.artist?.["#text"] ?? ""; + const nowPlaying = track["@attr"]?.nowplaying === "true"; li.innerHTML = ` ${track.name} -
    ${artist}${nowPlaying ? ' - listening now' : ''}
    +
    ${artist}${nowPlaying ? " - listening now" : ""}
    `; list.appendChild(li); }); } catch (err) { - console.error('Failed to load libre.fm scrobbles:', err); + console.error("Failed to load libre.fm scrobbles:", err); list.innerHTML = "
  • Couldn't load scrobbles right now.
  • "; } } diff --git a/slashes.html b/slashes.html index f7cd77a..cae7dbd 100644 --- a/slashes.html +++ b/slashes.html @@ -19,219 +19,220 @@ along with roughlynamed.net. If not, see . --> - + + + + + + /slashes + + + - - - - - /slashes - - - + + +

    /slashes

    +

    All the slashpages on the website

    +

    + (this isn't yet accurate, i am migrating it over from my gopherhole, most of the links dont + work) +

    +

    + Goal: add every page from slashpages.net to this website +

    -

    status

    -

    total pages: 55   done: 13

    +

    status

    +

    total pages: 55   done: 13

    -

    list

    -
    +

    list

    +
    +
    /about done
    +
    /about.html
    -
    /about done
    -
    /about.html
    +
    /ai done
    +
    /ai.html
    -
    /ai done
    -
    /ai.html
    +
    /blank done
    +
    /blank.html
    -
    /blank done
    -
    /blank.html
    +
    /gitroll todo
    +
    a list of other sites i read and reccomend
    -
    /gitroll todo
    -
    a list of other sites i read and reccomend
    +
    /calendar todo
    +
    a list of dates from movies, tv shows, etc.
    -
    /calendar todo
    -
    a list of dates from movies, tv shows, etc.
    +
    /canon todo
    +
    annotated bibliography of references, the things that shaped me
    -
    /canon todo
    -
    annotated bibliography of references, the things that shaped me
    +
    /carry todo
    +
    items i carry daily
    -
    /carry todo
    -
    items i carry daily
    +
    /caw todo
    +
    crows.
    -
    /caw todo
    -
    crows.
    +
    /log done
    +
    (its the changelog in index.html)
    -
    /log done
    -
    (its the changelog in index.html)
    +
    /mcdonalds todo
    +
    /maccas.html
    -
    /mcdonalds todo
    -
    /maccas.html
    +
    /colophon todo
    +
    a page that describes how the site is made, tools n stuff
    -
    /colophon todo
    -
    a page that describes how the site is made, tools n stuff
    +
    /community todo
    +
    a page outlining what a community is about and its values
    -
    /community todo
    -
    a page outlining what a community is about and its values
    +
    /concerts todo
    +
    a list of the concerts i've been to
    -
    /concerts todo
    -
    a list of the concerts i've been to
    +
    /contact done
    +
    /contact.html
    -
    /contact done
    -
    /contact.html
    +
    /daylists kill
    +
    i dont use spotify
    -
    /daylists kill
    -
    i dont use spotify
    +
    /death done
    +
    /death.html
    -
    /death done
    -
    /death.html
    +
    /disability todo
    +
    have to get diagnosed first
    -
    /disability todo
    -
    have to get diagnosed first
    +
    /elsewhere todo
    +
    a list of output or writings on sites other than this
    -
    /elsewhere todo
    -
    a list of output or writings on sites other than this
    +
    /feeds todo
    +
    page listing RSS/Atom/JSON and other feeds.
    -
    /feeds todo
    -
    page listing RSS/Atom/JSON and other feeds.
    +
    /for todo
    +
    a page where i honor my loved ones or thank others
    -
    /for todo
    -
    a page where i honor my loved ones or thank others
    +
    /glossary todo
    +
    a list of words i often use and their meanings
    -
    /glossary todo
    -
    a list of words i often use and their meanings
    +
    /green todo
    +
    a page that describes how i contribute to the environment
    -
    /green todo
    -
    a page that describes how i contribute to the environment
    +
    /girl done
    +
    /girl.html
    -
    /girl done
    -
    /girl.html
    +
    /hats todo
    +
    my hats
    -
    /hats todo
    -
    my hats
    +
    /hello done
    +
    a list of the ways i prefer to keep in touch
    -
    /hello done
    -
    a list of the ways i prefer to keep in touch
    +
    /hills todo
    +
    a list of the hills im willing to die on
    -
    /hills todo
    -
    a list of the hills im willing to die on
    +
    /ideas todo
    +
    things i want to make
    -
    /ideas todo
    -
    things i want to make
    +
    /interests todo
    +
    a list of things im passionate about
    -
    /interests todo
    -
    a list of things im passionate about
    +
    /sale todo
    +
    yard sale!!
    -
    /sale todo
    -
    yard sale!!
    +
    /links todo
    +
    a list of links to sites i like or want to bookmark
    -
    /links todo
    -
    a list of links to sites i like or want to bookmark
    +
    /next todo
    +
    what i'm gonna do next
    -
    /next todo
    -
    what i'm gonna do next
    +
    /nope todo
    +
    a list of things i dont like/dont wanna do
    -
    /nope todo
    -
    a list of things i dont like/dont wanna do
    +
    /now done
    +
    /now.html
    -
    /now done
    -
    /now.html
    +
    /pfp todo
    +
    a timeline of all my pfp pictures
    -
    /pfp todo
    -
    a timeline of all my pfp pictures
    +
    /podroll todo?
    +
    a list of podcasts i reccomend, if i get into podcasts
    -
    /podroll todo?
    -
    a list of podcasts i reccomend, if i get into podcasts
    +
    /posse todo
    +
    a page outlining my strategy for POSSE/cross-posting
    -
    /posse todo
    -
    a page outlining my strategy for POSSE/cross-posting
    +
    /postroll todo
    +
    a list of interesting blog posts i read
    -
    /postroll todo
    -
    a list of interesting blog posts i read
    +
    /pricing todo?
    +
    a page for those that want to buy my products
    -
    /pricing todo?
    -
    a page for those that want to buy my products
    +
    /questions todo
    +
    questions i wanna ask or im thinking about
    -
    /questions todo
    -
    questions i wanna ask or im thinking about
    +
    /save todo
    +
    a list of referral links and discount codes for things i like
    -
    /save todo
    -
    a list of referral links and discount codes for things i like
    +
    /hosted todo
    +
    a page listing the services im hosting or managing myself
    -
    /hosted todo
    -
    a page listing the services im hosting or managing myself
    +
    /shoebox todo
    +
    a bit of website where for the odds-and-ends
    -
    /shoebox todo
    -
    a bit of website where for the odds-and-ends
    +
    /since todo
    +
    habit tracker showing time since i started/stopped doing x
    -
    /since todo
    -
    habit tracker showing time since i started/stopped doing x
    +
    /sitemap todo
    +
    a list of pages on here
    -
    /sitemap todo
    -
    a list of pages on here
    +
    /slashes done
    +
    this!
    -
    /slashes done
    -
    this!
    +
    /someday todo
    +
    things i someday want to achieve/accomplish/learn/etc.
    -
    /someday todo
    -
    things i someday want to achieve/accomplish/learn/etc.
    +
    /style todo
    +
    personal style/design style guide
    -
    /style todo
    -
    personal style/design style guide
    +
    /ways done
    +
    /ways.html
    -
    /ways done
    -
    /ways.html
    +
    /coffee todo
    +
    donations
    -
    /coffee todo
    -
    donations
    +
    /top4 todo
    +
    top 4 of any topic! (top 3 + honor mention)
    -
    /top4 todo
    -
    top 4 of any topic! (top 3 + honor mention)
    +
    /uses done
    +
    /uses.html
    -
    /uses done
    -
    /uses.html
    +
    /verify todo
    +
    a page to list and prove online identities
    -
    /verify todo
    -
    a page to list and prove online identities
    +
    /where todo
    +
    let others know my current location!
    -
    /where todo
    -
    let others know my current location!
    +
    /why todo
    +
    what i care about, where im heading and how i hope to exist
    -
    /why todo
    -
    what i care about, where im heading and how i hope to exist
    +
    /wish done
    +
    /wish.html
    -
    /wish done
    -
    /wish.html
    +
    /yep todo
    +
    list of things i agree with or will do
    +
    -
    /yep todo
    -
    list of things i agree with or will do
    - -
    - -

    I took time out of my day to write this out by hand.

    -

    from Russia with Love,
    Maddie

    - -

    - Source code - — - GNU AGPLv3 -

    - +

    I took time out of my day to write this out by hand.

    +

    from Russia with Love,
    Maddie

    +

    + Source code + — + GNU AGPLv3 +

    + diff --git a/style.css b/style.css index 4eb1cba..abfcd21 100644 --- a/style.css +++ b/style.css @@ -28,15 +28,27 @@ /* --border: #93836c; */ /* --muted: hsl(30, 8%, 55%); */ /* } */ - :root { - /* eink */ - --bg: #f2efe9; - --text: #2b2926; - --accent: #7a5c3e; - --border: #d8d2c4; - --muted: #8a8578; + --bg: #ffffff; + --text: #000000; + --accent: #641212; /* links */ + --accent-hover: #c40f0f; + --border: #e0c080; + --muted: #333333; + --tint: #ffe4b7; + --row-a: #fffbed; + --row-b: #ffeecc; + --sans: sans-serif; + --serif: sans-serif; } +/* :root { */ +/* /\* eink *\/ */ +/* --bg: #f2efe9; */ +/* --text: #2b2926; */ +/* --accent: #7a5c3e; */ +/* --border: #d8d2c4; */ +/* --muted: #8a8578; */ +/* } */ /* :root { */ /* /1* classic *1/ */ @@ -56,11 +68,7 @@ p { } body { - font-family: - "Atkinson Hyperlegible Next", - -apple-system, - "Segoe UI", - sans-serif; + font-family: sans-serif; background: var(--bg); color: var(--text); max-width: 680px; @@ -73,7 +81,7 @@ body { h1, h2, h3 { - font-family: "IBM Plex Serif", Georgia, serif; + font-family: sans-serif; font-weight: 600; line-height: 1.25; margin-top: 3rem; @@ -110,7 +118,7 @@ nav { code, pre { - font-family: "IBM Plex Mono", "Courier New", monospace; + font-family: monospace; margin: 0.4rem 0; } @@ -229,7 +237,7 @@ code { display: block; font-size: 0.8em; color: var(--muted); - font-family: "IBM Plex Mono", monospace; + font-family: monospace; } @media (max-width: 550px) { @@ -276,7 +284,7 @@ code { .pgp-key { all: revert; white-space: pre-wrap; - font-family: "Atkinson Hyperlegible Next"; + font-family: sans-serif; margin: 0; } diff --git a/style.css-pre-sansserif-everything b/style.css-pre-sansserif-everything new file mode 100644 index 0000000..97b80ce --- /dev/null +++ b/style.css-pre-sansserif-everything @@ -0,0 +1,404 @@ +/* + * roughlynamed.net + * + * Copyright (C) 2026 Magdalena Szweda + * + * This file is part of roughlynamed.net. + * + * sophies.rocks is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. + * + * sophies.rocks is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with sophies.rocks. If not, see . + */ +/* ROOT COLORSCHEME CHANGES WHENEVER I FEEL LIKE IT */ + +/* :root { */ +/* /1* flatwhite *1/ */ +/* --bg: #f1ece4; */ +/* --text: #605a52; */ +/* --accent: #4c5361; */ +/* --border: #93836c; */ +/* --muted: hsl(30, 8%, 55%); */ +/* } */ +:root { + --bg: #ffffff; + --text: #000000; + --accent: #641212; /* links */ + --accent-hover: #c40f0f; + --border: #e0c080; + --muted: #333333; + --tint: #ffe4b7; + --row-a: #fffbed; + --row-b: #ffeecc; + --sans: sans-serif; + --serif: sans-serif; + +} +/* :root { */ +/* /\* eink *\/ */ +/* --bg: #f2efe9; */ +/* --text: #2b2926; */ +/* --accent: #7a5c3e; */ +/* --border: #d8d2c4; */ +/* --muted: #8a8578; */ +/* } */ + +/* :root { */ +/* /1* classic *1/ */ +/* --bg: #f8efdf; */ +/* --text: #33281c; */ +/* --accent: #b8783e; */ +/* --border: #e4e0d8; */ +/* --muted: #7a6a54 */ +/* } */ + +* { + box-sizing: border-box; +} + +p { + margin: 0.4rem 0; +} + +body { + font-family: + "Atkinson Hyperlegible Next", + -apple-system, + "Segoe UI", + sans-serif; + background: var(--bg); + color: var(--text); + max-width: 680px; + margin: 0 auto; + padding: 4rem 1.5rem; + line-height: 1.65; + font-size: 1.05rem; +} + +h1, +h2, +h3 { + font-family: "IBM Plex Serif", Georgia, serif; + font-weight: 600; + line-height: 1.25; + margin-top: 3rem; +} + +h1 { + font-size: 2.1rem; + margin-top: 0; + letter-spacing: -0.02em; +} + +h2 { + font-size: 1.4rem; +} + +a { + color: var(--accent); + text-decoration: underline; + text-decoration-color: rgba(181, 83, 60, 0.3); + text-underline-offset: 3px; +} + +nav { + display: flex; + flex-wrap: nowrap; + justify-content: flex-end; + gap: 1.5rem; + margin-bottom: 3rem; + padding-bottom: 1rem; + border-bottom: 1px solid var(--border); + font-size: 1rem; + color: var(--muted); +} + +code, +pre { + font-family: "IBM Plex Mono", "Courier New", monospace; + margin: 0.4rem 0; +} + +code { + background: #f0ede6; + padding: 0.15em 0.4em; + border-radius: 4px; + font-size: 0.9em; +} + +.buttons { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + margin-top: 3rem; +} +.buttons div { + display: inline-block; +} +#recent { + margin-top: 3rem; +} + +#recent h2 { + margin-top: 0; +} + +#recent-now p { + margin: 0; +} + +.recent-grid { + display: grid; + grid-template-columns: 2fr 1fr; + gap: 1.5rem; + margin-top: 1.5rem; + align-items: start; +} + +.recent-column { + display: flex; + flex-direction: column; + gap: 1.5rem; + min-height: 0; +} + +.recent-box { + border: 1px solid #ddd; + padding: 1.25rem 1.5rem; +} + +.recent-box h3 { + margin-top: 0; + font-size: 1.1rem; +} + +.recent-box ul { + list-style: none; + padding-left: 0; + margin: 1rem 0 0; +} + +.recent-box li + li { + margin-top: 1.2rem; +} + +.recent-box li a { + font-weight: 600; +} + +#recent-publications { + flex-shrink: 0; +} +#recent-now { + flex: 0 1 auto; + min-height: 150px; + max-height: 500px; + overflow-y: auto; + resize: vertical; + scrollbar-width: thin; + scrollbar-color: var(--accent) var(--bg); +} + +#recent-now::-webkit-scrollbar { + width: 8px; +} + +#recent-now::-webkit-scrollbar-track { + background: var(--bg); +} + +#recent-now::-webkit-scrollbar-thumb { + background: var(--accent); + border-radius: 4px; +} + +#recent-now::-webkit-scrollbar-thumb:hover { + background: var(--text); +} + +#recent-now ul { + list-style: none; + padding-left: 0; + margin: 1rem 0 0; +} + +#recent-now li { + margin: 0 0 1rem; +} + +#recent-now li:last-child { + margin-bottom: 0; +} + +#recent-now time { + display: block; + font-size: 0.8em; + color: var(--muted); + font-family: "IBM Plex Mono", monospace; +} + +@media (max-width: 550px) { + .recent-grid, + .terminology-grid { + grid-template-columns: 1fr; + } +} + +@font-face { + font-family: "IBM Plex Serif"; + src: url("fonts/IBMPlexSerif-Regular.woff2") format("woff2"); + font-weight: 400; + font-display: swap; +} + +@font-face { + font-family: "IBM Plex Serif"; + src: url("fonts/IBMPlexSerif-Bold.woff2") format("woff2"); + font-weight: 700; + font-display: swap; +} + +@font-face { + font-family: "IBM Plex Mono"; + src: url("fonts/IBMPlexMono-Regular.woff2") format("woff2"); + font-weight: 400; + font-display: swap; +} + +@font-face { + font-family: "Atkinson Hyperlegible Next"; + src: url("fonts/Atkinson_Hyperlegible_Next/AtkinsonHyperlegibleNext-VariableFont_wght.ttf") + format("truetype-variations"); + font-weight: 400 700; + font-display: swap; +} + +.pgp-label { + margin: 0; + margin-bottom: 0; +} + +.pgp-key { + all: revert; + white-space: pre-wrap; + font-family: "Atkinson Hyperlegible Next"; + margin: 0; +} + +.tag { + font-size: 0.7em; + padding: 0.1em 0.5em; + border-radius: 4px; + font-family: "IBM Plex Mono", monospace; + text-transform: uppercase; + margin-left: 0.4em; +} + +.tag.done { + background: #dcead9; + color: #2e5c31; +} + +.tag.todo { + background: #f0ede6; + color: var(--muted); +} + +.tag.kill { + background: #f2dcd8; + color: #8a3b32; +} + +.tag.maybe { + background: #f3e6c8; + color: #7a5a1c; +} + +dl.slashlist dt { + font-weight: 600; + margin-top: 1.2em; +} + +dl.slashlist dd { + margin-left: 0; + color: var(--muted); + font-size: 0.95em; +} + +.terminology { + margin-top: 3rem; +} + +.terminology-intro { + color: var(--muted); +} + +.terminology-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 1.5rem; + margin-top: 2rem; +} + +.terminology-grid > div { + border: 1px solid var(--border); + padding: 1rem 1.25rem; + border-radius: 6px; +} + +.terminology-grid h3 { + margin-top: 0; + margin-bottom: 0.75rem; +} + +.terminology-grid ul { + list-style: none; + padding-left: 0; + margin: 0; +} + +.terminology-grid li { + margin: 0.35rem 0; +} + +.terminology-grid .icon { + width: 16px; + height: 16px; + object-fit: contain; + vertical-align: -3px; + margin-right: 0.35rem; +} + +.rating-love { + color: var(--accent); + font-weight: 700; +} + +.rating-like { + color: var(--text); +} + +.rating-okay { + color: #628c58; +} + +.rating-maybe { + color: #a66b3d; +} + +.rating-no { + color: #a34f45; +} + +.rating-never { + color: #a34f45; + font-weight: 700; +} diff --git a/tarantino/index.html b/tarantino/index.html index 809122b..57ed350 100644 --- a/tarantino/index.html +++ b/tarantino/index.html @@ -18,7 +18,7 @@ You should have received a copy of the GNU Affero General Public License along with roughlynamed.net. If not, see . --> - + @@ -51,41 +51,39 @@
    • No bigotry allowed on your website
    • - Your website has to be made with your own 2 hands, this means that it - cannot be something like your leaflet, strawpage, etc. + Your website has to be made with your own 2 hands, this means that it cannot be something + like your leaflet, strawpage, etc.
    • - your application must contain the word "zucchini" in it, because you're - a good person and read these rules. + your application must contain the word "zucchini" in it, because you're a good person and + read these rules.
    • - If your website contains NSFW content, it must be properly marked, same - goes with flashing lights and gore. + If your website contains NSFW content, it must be properly marked, same goes with flashing + lights and gore.
    • - Your website has to already have the webring's widget visible somewhere - on it before application + Your website has to already have the webring's widget visible somewhere on it before + application
    • - your site does NOT have to be oriented around Quentin Tarantino (any - website will do, aslong as you are a fan of his) + your site does NOT have to be oriented around Quentin Tarantino (any website will do, aslong + as you are a fan of his)
    • - your website has to be something on it, it cannot be just a blank page - or 3 lines of text. + your website has to be something on it, it cannot be just a blank page or 3 lines of text.
    • i reserve the right to reject any applications under my own terms

    Join

    If you would like to join this webring, please - email me (hi@roughlynamed.net) - with the subject: "Webring application" + email me (hi@roughlynamed.net) with the subject: + "Webring application"

    - Please put your name and the URL of the homepage of your website in the - body text, as well as listing if there are any content warnings (gore, - nsfw, flashing) + Please put your name and the URL of the homepage of your website in the body text, as well as + listing if there are any content warnings (gore, nsfw, flashing)

    Widget

    Paste this snippet anywhere on your site:

    @@ -100,15 +98,11 @@ <a id="ring-next" href="#">next</a> </nav> <script src="https://roughlynamed.net/webring.js" defer></script> - +

    keep in mind that widget-less sites will be removed.

    Below is an example of a correctly added widget (colors may vary):

    -