diff options
| author | Magdalena Szweda <hi@roughlynamed.net> | 2026-10-04 10:45:22 +0200 |
|---|---|---|
| committer | Magdalena Szweda <hi@roughlynamed.net> | 2026-10-06 14:09:45 +0200 |
| commit | 44f4bb35b0057eca28ea7d7d93d765b9608d607d (patch) | |
| tree | 41fffdec2e895d22e609f371ac9d171cba3f17c5 | |
| parent | 9a0b9ef98d47951b00b84da7ed62820c0d00de89 (diff) | |
lotta fucking stuff
| -rw-r--r-- | .htmlhintrc | 46 | ||||
| -rw-r--r-- | .oxlintrc.json | 8 | ||||
| -rw-r--r-- | 404.html | 55 | ||||
| -rw-r--r-- | about.html | 471 | ||||
| -rw-r--r-- | ai.html | 84 | ||||
| -rw-r--r-- | assets/gentoo.gif | bin | 0 -> 2337 bytes | |||
| -rw-r--r-- | atproto/index.html | 2 | ||||
| -rw-r--r-- | blank.html | 1 | ||||
| -rw-r--r-- | contact.html | 16 | ||||
| -rw-r--r-- | fakeindex.html | 22 | ||||
| -rw-r--r-- | fonts/aachen-bold/Aachen Bold/readme.html | 277 | ||||
| -rw-r--r-- | girl.html | 85 | ||||
| -rw-r--r-- | height.js | 10 | ||||
| -rw-r--r-- | hello.html | 76 | ||||
| -rw-r--r-- | humans.txt | 8 | ||||
| -rw-r--r-- | index.html | 53 | ||||
| -rw-r--r-- | now.html | 65 | ||||
| -rw-r--r-- | publications.js | 28 | ||||
| -rw-r--r-- | scrobbles.js | 26 | ||||
| -rw-r--r-- | slashes.html | 307 | ||||
| -rw-r--r-- | style.css | 40 | ||||
| -rw-r--r-- | style.css-pre-sansserif-everything | 404 | ||||
| -rw-r--r-- | tarantino/index.html | 46 | ||||
| -rw-r--r-- | tarantino/tarantino-style.css | 11 | ||||
| -rw-r--r-- | uses.html | 11 | ||||
| -rw-r--r-- | webring.js | 212 | ||||
| -rw-r--r-- | webrings.html | 182 |
27 files changed, 1335 insertions, 1211 deletions
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 +} @@ -18,35 +18,30 @@ You should have received a copy of the GNU Affero General Public License along with roughlynamed.net. If not, see <https://www.gnu.org/licenses/>. --> -<!DOCTYPE html> +<!doctype html> <html lang="en"> - <head> - <meta name="theme-color" content="#f8efdf" /> - <meta charset="UTF-8" /> - <meta name="description" content="404 :(" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title> - 404 :: roughlynamed - </title> - <link rel="icon" type="image/png" href="/assets/_.ico" /> - <link rel="preconnect" href="https://libre.fm" /> - <link rel="stylesheet" href="/style.css" /> - </head> - <body> - <br /> - <main> - <h1> - 404 - </h1> - <p> - uh-oh! looks like you tried to open a file that isn't there! - </p> - <p> - what can you do? uhh, i dont know DIPSHIT maybe dont try to open files that dont exist?! - </p> - <p> - this might be my fault though so heres a link to the <a href="/fakeindex.html">home page</a>, WHICH WILL ALWAYS WORK!! - </p> - </main> - </body> + <head> + <meta name="theme-color" content="#f8efdf" /> + <meta charset="UTF-8" /> + <meta name="description" content="404 :(" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>404 :: roughlynamed</title> + <link rel="icon" type="image/png" href="/assets/_.ico" /> + <link rel="preconnect" href="https://libre.fm" /> + <link rel="stylesheet" href="/style.css" /> + </head> + <body> + <br /> + <main> + <h1>404</h1> + <p>uh-oh! looks like you tried to open a file that isn't there!</p> + <p> + what can you do? uhh, i dont know DIPSHIT maybe dont try to open files that dont exist?! + </p> + <p> + this might be my fault though so heres a link to the + <a href="/fakeindex.html">home page</a>, WHICH WILL ALWAYS WORK!! + </p> + </main> + </body> </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 <https://www.gnu.org/licenses/>. --> -<!DOCTYPE html> +<!doctype html> <html lang="en"> - <head> - <meta charset="UTF-8" /> - <meta name="description" content="about me!" /> - <meta name="theme-color" content="#f8efdf" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title> - /about :: roughlynamed - </title> - <link rel="icon" type="image/png" href="/assets/_.ico" /> - <link rel="stylesheet" href="/style.css" /> - </head> - <body> - <nav> - <a href="/">index</a> <a href="/about.html">/about</a> <a href="/contact.html">/contact</a> <a href="/slashes.html">/slashes</a> <a href="/uses.html">/uses</a> <a href="/webrings.html">/webrings</a> <a href="https://git.roughlynamed.net">/blog</a> <a href="https://1kb.roughlynamed.net">/1kb</a> <a href="/tarantino/">/tarantino</a> - </nav> - <h1> - - /about - </h1> - <main> - <p> - Hi, I'm Madeline (<a href="/assets/madeline.wav" onclick="event.preventDefault(); new Audio(this.href).play();">/ˈmæd.ə.lɪn/</a>) , I am a transfemme furry programmer - </p> - <p> - I somehow ended up running this website on my Raspberry Pi Zero W. A tiny Pi. - </p> - <p> - Fursona: Cottonball (deer) - </p> - <section class="terminology"> - <h2> - Terminology - </h2> - <p class="terminology-intro"> - These aren't requirements, just the terms and pronouns I generally prefer. Don't worry if you get something wrong! - </p> - <div class="terminology-grid"> - <div> - <h3> - Names - </h3> - <ul> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />Madeline - </li> - <li class="rating-like">Madilyn - </li> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />puss puss - </li> - <li class="rating-like">Cottonball - </li> - <li class="rating-like">Sophie - </li> - <li class="rating-never"> - <img class="icon" src="/assets/images/icons/cross.png" />(Deadname) - </li> - </ul> - </div> - <div> - <h3> - Pronouns - </h3> - <ul> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />she/her - </li> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />they/them - </li> - <li class="rating-never"> - <img class="icon" src="/assets/images/icons/cross.png" />he/him - </li> - <li class="rating-maybe">neopronouns - </li> - <li class="rating-maybe">it/its - </li> - </ul> - </div> - <div> - <h3> - Honorifics - </h3> - <ul> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />(None) - </li> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />Ms - </li> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />Ma'am - </li> - <li class="rating-like">Mrs - </li> - <li class="rating-like">Madam - </li> - <li class="rating-okay">Mx - </li> - <li class="rating-okay">Master - </li> - <li class="rating-never"> - <img class="icon" src="/assets/images/icons/cross.png" />Mr - </li> - <li class="rating-never"> - <img class="icon" src="/assets/images/icons/cross.png" />Sir - </li> - </ul> - </div> - <div> - <h3> - Terms - </h3> - <ul> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />Girl - </li> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />Girlie - </li> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />Cutie - </li> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />Deer - </li> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />Deergirl - </li> - <li class="rating-like">Person - </li> - <li class="rating-like">Sister - </li> - <li class="rating-okay">Daughter - </li> - <li class="rating-okay">Sibling - </li> - <li class="rating-maybe">Bro - </li> - <li class="rating-never"> - <img class="icon" src="/assets/images/icons/cross.png" />Boy - </li> - <li class="rating-never"> - <img class="icon" src="/assets/images/icons/cross.png" />Man - </li> - </ul> - </div> - <div> - <h3> - Compliments - </h3> - <ul> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />Pretty - </li> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />Cute - </li> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />Good girl - </li> - <li class="rating-love"> - <img class="icon" src="/assets/images/icons/heart.png" />X11 Slut - </li> - <li class="rating-okay">Handsome - </li> - <li class="rating-okay">Fine - </li> - <li class="rating-never"> - <img class="icon" src="/assets/images/icons/cross.png" />Wayland Enjoyer - </li> - </ul> - </div> - </div> - </section> - <h2> - My interests - </h2> + <head> + <meta charset="UTF-8" /> + <meta name="description" content="about me!" /> + <meta name="theme-color" content="#f8efdf" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>/about :: roughlynamed</title> + <link rel="icon" type="image/png" href="/assets/_.ico" /> + <link rel="stylesheet" href="/style.css" /> + </head> + <body> + <nav> + <a href="/">index</a> <a href="/about.html">/about</a> <a href="/contact.html">/contact</a> + <a href="/slashes.html">/slashes</a> <a href="/uses.html">/uses</a> d + <a href="https://git.roughlynamed.net">/blog</a> + <a href="https://1kb.roughlynamed.net">/1kb</a> <a href="/tarantino/">/tarantino</a> + </nav> + <h1>/about</h1> + <main> + <p> + Hi, I'm Madeline (<a + href="/assets/madeline.wav" + onclick=" + event.preventDefault(); + new Audio(this.href).play(); + " + >/ˈmæd.ə.lɪn/</a + >) , I am a transfemme furry programmer + </p> + <p>I somehow ended up running this website on my Raspberry Pi Zero W. A tiny Pi.</p> + <p>Fursona: Cottonball (deer)</p> + <section class="terminology"> + <h2>Terminology</h2> + <p class="terminology-intro"> + These aren't requirements, just the terms and pronouns I generally prefer. Don't worry if + you get something wrong! + </p> + <div class="terminology-grid"> + <div> + <h3>Names</h3> <ul> - <li>NixOS - </li> - <li>Computers - </li> - <li>Space - </li> - <li>Coding - </li> - <li>Reading - </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />Madeline + </li> + <li class="rating-like">Madilyn</li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />puss puss + </li> + <li class="rating-like">Cottonball</li> + <li class="rating-like">Sophie</li> + <li class="rating-never"> + <img class="icon" src="/assets/images/icons/cross.png" />(Deadname) + </li> </ul> - <h2> - Likes: - </h2> + </div> + <div> + <h3>Pronouns</h3> <ul> - <li>space - </li> - <li>furries - </li> - <li>learning new things. - </li> - <li>Books! Books! Books! - </li> - <li>*nix - </li> - <li>*BSD - </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />she/her + </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />they/them + </li> + <li class="rating-never"> + <img class="icon" src="/assets/images/icons/cross.png" />he/him + </li> + <li class="rating-maybe">neopronouns</li> + <li class="rating-maybe">it/its</li> </ul> - <h2> - Dislikes/DNI: - </h2> + </div> + <div> + <h3>Honorifics</h3> <ul> - <li>lolicons - </li> - <li>noncons (non consensual :/ ) - </li> - <li>proshippers - </li> - <li>people that use AI for basic tasks (coding, looking things up, etc.) - </li> - <li>Russians - </li> - <li>Norwegians(except Emy) - </li> - <li>MAGA - </li> - <li>t-phobes - </li> - <li>femboys - </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />(None) + </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />Ms + </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />Ma'am + </li> + <li class="rating-like">Mrs</li> + <li class="rating-like">Madam</li> + <li class="rating-okay">Mx</li> + <li class="rating-okay">Master</li> + <li class="rating-never"> + <img class="icon" src="/assets/images/icons/cross.png" />Mr + </li> + <li class="rating-never"> + <img class="icon" src="/assets/images/icons/cross.png" />Sir + </li> </ul> - <p> - I also like music, don't ask me what genre i like, - </p> - <p> - it ranges from indie to pop to death metal to incelcore - </p> - <h2> - as an example: - </h2> + </div> + <div> + <h3>Terms</h3> <ul> - <li>Tally Hall (by far my fav) - </li> - <li>Jack Stauber - </li> - <li>Elio Mei - </li> - <li>Queen - </li> - <li>Fried By Fluoride - </li> - <li>TV Girl - </li> - <li>many more... - </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />Girl + </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />Girlie + </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />Cutie + </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />Deer + </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />Deergirl + </li> + <li class="rating-like">Person</li> + <li class="rating-like">Sister</li> + <li class="rating-okay">Daughter</li> + <li class="rating-okay">Sibling</li> + <li class="rating-maybe">Bro</li> + <li class="rating-never"> + <img class="icon" src="/assets/images/icons/cross.png" />Boy + </li> + <li class="rating-never"> + <img class="icon" src="/assets/images/icons/cross.png" />Man + </li> </ul> - <p> - I am currently learning Haskell, but i have a background of languages, e.g: - </p> + </div> + <div> + <h3>Compliments</h3> <ul> - <li>Golang - </li> - <li>Guile Scheme - </li> - <li>Nix - </li> - <li>Python - </li> - <li>Bash - </li> - <li>C - </li> - <li>Java - </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />Pretty + </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />Cute + </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />Good girl + </li> + <li class="rating-love"> + <img class="icon" src="/assets/images/icons/heart.png" />X11 Slut + </li> + <li class="rating-okay">Handsome</li> + <li class="rating-okay">Fine</li> + <li class="rating-never"> + <img class="icon" src="/assets/images/icons/cross.png" />Wayland Enjoyer + </li> </ul> - <p> - all of these gave up on except nixos. - </p> - <p class="license"> - <a href="https://git.roughlynamed.net/website.git/">Source code</a> — <a href="COPYING">GNU AGPLv3</a> - </p> - </main> - </body> + </div> + </div> + </section> + <h2>My interests</h2> + <ul> + <li>NixOS</li> + <li>Computers</li> + <li>Space</li> + <li>Coding</li> + <li>Reading</li> + </ul> + <h2>Likes:</h2> + <ul> + <li>space</li> + <li>furries</li> + <li>learning new things.</li> + <li>Books! Books! Books!</li> + <li>*nix</li> + <li>*BSD</li> + </ul> + <h2>Dislikes/DNI:</h2> + <ul> + <li>lolicons</li> + <li>noncons (non consensual :/ )</li> + <li>proshippers</li> + <li>people that use AI for basic tasks (coding, looking things up, etc.)</li> + <li>Russians</li> + <li>Norwegians(except Emy)</li> + <li>MAGA</li> + <li>t-phobes</li> + <li>femboys</li> + </ul> + <p>I also like music, don't ask me what genre i like,</p> + <p>it ranges from indie to pop to death metal to incelcore</p> + <h2>as an example:</h2> + <ul> + <li>Tally Hall (by far my fav)</li> + <li>Jack Stauber</li> + <li>Elio Mei</li> + <li>Queen</li> + <li>Fried By Fluoride</li> + <li>TV Girl</li> + <li>many more...</li> + </ul> + <p>I am currently learning Haskell, but i have a background of languages, e.g:</p> + <ul> + <li>Golang</li> + <li>Guile Scheme</li> + <li>Nix</li> + <li>Python</li> + <li>Bash</li> + <li>C</li> + <li>Java</li> + </ul> + <p>all of these gave up on except nixos.</p> + <p class="license"> + <a href="https://git.roughlynamed.net/website.git/">Source code</a> — + <a href="COPYING">GNU AGPLv3</a> + </p> + </main> + </body> </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 <https://www.gnu.org/licenses/>. --> -<!DOCTYPE html> +<!doctype html> <html lang="en"> - <head> - <meta name="theme-color" content="#f8efdf" /> - <meta charset="UTF-8" /> - <meta name="description" content="a page describing what my take on AI is" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title> - /ai :: roughlynamed - </title> - <link rel="icon" type="image/png" href="/assets/_.ico" /> - <link rel="preconnect" href="https://libre.fm" /> - <link rel="stylesheet" href="/style.css" /> - </head> - <body> - <p> - under construction - </p><br /> - <nav> - <a href="/">index</a> <a href="/about.html">/about</a> <a href="/contact.html">/contact</a> <a href="/slashes.html">/slashes</a> <a href="/uses.html">/uses</a> <a href="/webrings.html">/webrings</a> <a href="https://git.roughlynamed.net">/blog</a> <a href="https://1kb.roughlynamed.net">/1kb</a> <a href="/tarantino/">/tarantino</a> - </nav> - <h1> - /ai - </h1> - <p> - this is a page dedicated to what i think about Artificial Inteligence and Large Language Models - </p> - <p> - TLDR; I don't like AI and i think LLM's should be gone - </p> - <p> - LLM's are ruining the planet. - </p> - <p> - 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. - </p> - <p> - AI is making us stupider, a prime example of this is the main feed of Bluesky after Claude goes down. - </p> - <p> - 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 - </p> - </body> + <head> + <meta name="theme-color" content="#f8efdf" /> + <meta charset="UTF-8" /> + <meta name="description" content="a page describing what my take on AI is" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>/ai :: roughlynamed</title> + <link rel="icon" type="image/png" href="/assets/_.ico" /> + <link rel="preconnect" href="https://libre.fm" /> + <link rel="stylesheet" href="/style.css" /> + </head> + <body> + <p>under construction</p> + <br /> + <nav> + <a href="/">index</a> <a href="/about.html">/about</a> <a href="/contact.html">/contact</a> + <a href="/slashes.html">/slashes</a> <a href="/uses.html">/uses</a> d + <a href="https://git.roughlynamed.net">/blog</a> + <a href="https://1kb.roughlynamed.net">/1kb</a> <a href="/tarantino/">/tarantino</a> + </nav> + <h1>/ai</h1> + <p> + this is a page dedicated to what i think about Artificial Inteligence and Large Language + Models + </p> + <p>TLDR; I don't like AI and i think LLM's should be gone</p> + <p>LLM's are ruining the planet.</p> + <p> + 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. + </p> + <p> + AI is making us stupider, a prime example of this is the main feed of Bluesky after Claude + goes down. + </p> + <p> + 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 + </p> + </body> </html> diff --git a/assets/gentoo.gif b/assets/gentoo.gif Binary files differnew file mode 100644 index 0000000..4967c40 --- /dev/null +++ b/assets/gentoo.gif 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 <https://www.gnu.org/licenses/>. --> -<!DOCTYPE html> +<!doctype html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="theme-color" content="#f8efdf" /> @@ -18,4 +18,3 @@ You should have received a copy of the GNU Affero General Public License along with roughlynamed.net. If not, see <https://www.gnu.org/licenses/>. --> - diff --git a/contact.html b/contact.html index bd17c0f..75c0437 100644 --- a/contact.html +++ b/contact.html @@ -33,7 +33,7 @@ <nav> <a href="/">index</a> <a href="/about.html">/about</a> <a href="/contact.html">/contact</a> <a href="/slashes.html">/slashes</a> <a href="/uses.html">/uses</a> - <a href="/webrings.html">/webrings</a> <a href="https://git.roughlynamed.net">/blog</a> +<a href="https://git.roughlynamed.net">/blog</a> <a href="https://1kb.roughlynamed.net">/1kb</a> <a href="/tarantino/">/tarantino</a> </nav> <h1>/contact</h1> @@ -41,15 +41,11 @@ <p>Where can you find me?</p> <p>my handle in the ATmosphere is roughlynamed.net, but heres a full list of links.</p> <ul> + <li>Bluesky: <a href="https://bsky.app/profile/roughlynamed.net">@roughlynamed.net</a></li> + <li>XMPP: <a href="xmpp:wildebeest@yax.im">wildebeest@yax.im</a></li> + <li>Lobsters: <a href="https://lobste.rs/~zelda">~zelda</a></li> <li> - <a href="https://bsky.app/profile/roughlynamed.net">bluesky</a> - </li> - <li><a href="xmpp:wildebeest@yax.im">wildebeest@yax.im</a> (xmpp)</li> - <li> - <a href="https://lobste.rs/~zelda">lobste.rs</a> - </li> - <li> - <a href="https://savannah.nongnu.org/users/wildebeest">savannah.nongnu.org</a> + savannah(nongnu)<a href="https://savannah.nongnu.org/users/wildebeest">wildebeest</a> </li> <li>Twitch: sophiesdotrocks</li> </ul> @@ -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 <https://www.gnu.org/licenses/>. --> -<!DOCTYPE html> +<!doctype html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> - <meta name="theme-color" content="#f8efdf" /> + <meta name="theme-color" content="#f8efdf" /> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>sophies website or something</title> @@ -39,22 +39,20 @@ <div id="page"> <h1>404, again</h1> <p> - 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? </p> <p> - 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? </p> <p> - 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? </p> <p> - 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 </p> <p>fuck you fag</p> </div> @@ -62,7 +60,7 @@ <script> //<![CDATA[ setTimeout(() => { - document.getElementById("page").style.visibility = "visible"; +ocument.getElementById("page").style.visibility = "visible"; }, 2000); //]]> </script> 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 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> - <meta name="theme-color" content="#f8efdf" /> + <meta name="theme-color" content="#f8efdf" /> <meta name="viewport" content="width=device-width" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> - - <meta http-equiv="refresh" content="5;url=?ref=readme"> + + <meta http-equiv="refresh" content="5;url=?ref=readme" /> <title></title> <style> -/* ------------------------------------- + /* ------------------------------------- GLOBAL ------------------------------------- */ - * { - margin:0; - padding:0; - font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; - font-size: 100%; - line-height: 1.6; - } - - img { - max-width: 100%; - } - - body { - -webkit-font-smoothing:antialiased; - -webkit-text-size-adjust:none; - width: 100%!important; - height: 100%; - background:#DDD; - } - - - /* ------------------------------------- + * { + margin: 0; + padding: 0; + font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; + font-size: 100%; + line-height: 1.6; + } + + img { + max-width: 100%; + } + + body { + -webkit-font-smoothing: antialiased; + -webkit-text-size-adjust: none; + width: 100% !important; + height: 100%; + background: #ddd; + } + + /* ------------------------------------- ELEMENTS ------------------------------------- */ - a { - color: #348eda; - } - - .btn-primary, .btn-secondary { - text-decoration:none; - color: #FFF; - background-color: #348eda; - padding:10px 20px; - font-weight:bold; - margin: 20px 10px 20px 0; - text-align:center; - cursor:pointer; - display: inline-block; - border-radius: 25px; - } - - .btn-secondary{ - background: #aaa; - } - - .last { - margin-bottom: 0; - } - - .first{ - margin-top: 0; - } - - - /* ------------------------------------- + a { + color: #348eda; + } + + .btn-primary, + .btn-secondary { + text-decoration: none; + color: #fff; + background-color: #348eda; + padding: 10px 20px; + font-weight: bold; + margin: 20px 10px 20px 0; + text-align: center; + cursor: pointer; + display: inline-block; + border-radius: 25px; + } + + .btn-secondary { + background: #aaa; + } + + .last { + margin-bottom: 0; + } + + .first { + margin-top: 0; + } + + /* ------------------------------------- BODY ------------------------------------- */ - table.body-wrap { - width: 100%; - padding: 20px; - } - - table.body-wrap .container{ - border: 1px solid #f0f0f0; - } + table.body-wrap { + width: 100%; + padding: 20px; + } + table.body-wrap .container { + border: 1px solid #f0f0f0; + } - /* ------------------------------------- + /* ------------------------------------- FOOTER ------------------------------------- */ - table.footer-wrap { - width: 100%; - clear:both!important; - } - - .footer-wrap .container p { - font-size:12px; - color:#666; + table.footer-wrap { + width: 100%; + clear: both !important; + } - } + .footer-wrap .container p { + font-size: 12px; + color: #666; + } - table.footer-wrap a{ - color: #999; - } + table.footer-wrap a { + color: #999; + } - - /* ------------------------------------- + /* ------------------------------------- TYPOGRAPHY ------------------------------------- */ - h1,h2,h3{ - font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; line-height: 1.1; margin-bottom:15px; color:#000; - margin: 40px 0 10px; - line-height: 1.2; - font-weight:200; - } - - h1 { - font-size: 36px; - } - h2 { - font-size: 28px; - } - h3 { - font-size: 22px; - } - - p, ul { - margin-bottom: 10px; - font-weight: normal; - font-size:14px; - } - - ul li { - margin-left:5px; - list-style-position: inside; - } - - /* --------------------------------------------------- + h1, + h2, + h3 { + font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; + line-height: 1.1; + margin-bottom: 15px; + color: #000; + margin: 40px 0 10px; + line-height: 1.2; + font-weight: 200; + } + + h1 { + font-size: 36px; + } + h2 { + font-size: 28px; + } + h3 { + font-size: 22px; + } + + p, + ul { + margin-bottom: 10px; + font-weight: normal; + font-size: 14px; + } + + ul li { + margin-left: 5px; + list-style-position: inside; + } + + /* --------------------------------------------------- RESPONSIVENESS Nuke it from orbit. It's the only way to be sure. ------------------------------------------------------ */ - /* Set a max-width, and make it display as block so it will automatically stretch to that width, but will also shrink down on a phone or something */ - .container { - display:block!important; - max-width:600px!important; - margin:0 auto!important; /* makes it centered */ - clear:both!important; - } - - /* This should also be a block element, so that it will fill 100% of the .container */ - .content { - padding:20px; - max-width:600px; - margin:0 auto; - display:block; - } - - /* Let's make sure tables in the content area are 100% wide */ - .content table { - width: 100%; - } - + /* Set a max-width, and make it display as block so it will automatically stretch to that width, but will also shrink down on a phone or something */ + .container { + display: block !important; + max-width: 600px !important; + margin: 0 auto !important; /* makes it centered */ + clear: both !important; + } + + /* This should also be a block element, so that it will fill 100% of the .container */ + .content { + padding: 20px; + max-width: 600px; + margin: 0 auto; + display: block; + } + + /* Let's make sure tables in the content area are 100% wide */ + .content table { + width: 100%; + } </style> </head> <body bgcolor="#f6f6f6"> - <!-- body --> <table class="body-wrap"> <tr> <td></td> <td class="container" bgcolor="#FFFFFF"> - <!-- content --> <div class="content"> <table> <tr> <td> <h1></h1> - <p>This font was downloaded from <a href="?ref=readme"></a> . You can visit <a href="?ref=readme"></a> for hundreds of free fonts.</p> - <p><a href="?ref=readme" class="btn-primary">View Charmap and other information</a> <a href="?ref=readme" class="btn-primary">Browse other free fonts</a></p> - <p>You will be shortly redirected to </p> + <p> + This font was downloaded from <a href="?ref=readme"></a> . You can visit + <a href="?ref=readme"></a> for hundreds of free fonts. + </p> + <p> + <a href="?ref=readme" class="btn-primary">View Charmap and other information</a> + <a href="?ref=readme" class="btn-primary">Browse other free fonts</a> + </p> + <p>You will be shortly redirected to</p> </td> </tr> </table> </div> <!-- /content --> - </td> <td></td> </tr> </table> <!-- /body --> - </body> </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 <https://www.gnu.org/licenses/>. --> -<!DOCTYPE html> +<!doctype html> <html lang="en"> - <head> - <meta name="theme-color" content="#f8efdf" /> - <meta charset="UTF-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta name="description" content="im a _ girl" /> - <title> - /girl :: roughlynamed - </title> - <link rel="icon" type="image/png" href="/assets/_.ico" /> - <link rel="stylesheet" href="/style.css" /> - </head> - <body> - <nav> - <a href="/">index</a> <a href="/about.html">/about</a> <a href="/contact.html">/contact</a> <a href="/slashes.html">/slashes</a> <a href="/uses.html">/uses</a> <a href="/webrings.html">/webrings</a> <a href="https://git.roughlynamed.net">/blog</a> <a href="https://1kb.roughlynamed.net">/1kb</a> <a href="/tarantino/">/tarantino</a> - </nav> - <main> - <h1> - /girl - </h1> - <p> - I am a... - </p> - <ul> - <li>trans girl - </li> - <li>book girl - </li> - <li>deer girl - </li> - <li>coding girl - </li> - <li>ATmospheric girl - </li> - <li>space girl - </li> - <li>cute girl - </li> - <li>haskell girl - </li> - <li>lispy girl (like the language!) - </li> - </ul> - <p class="license"> - <a href="https://git.roughlynamed.net/website.git/">Source code</a> — <a href="COPYING">GNU AGPLv3</a> - </p> - </main> - </body> + <head> + <meta name="theme-color" content="#f8efdf" /> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta name="description" content="im a _ girl" /> + <title>/girl :: roughlynamed</title> + <link rel="icon" type="image/png" href="/assets/_.ico" /> + <link rel="stylesheet" href="/style.css" /> + </head> + <body> + <nav> + <a href="/">index</a> <a href="/about.html">/about</a> <a href="/contact.html">/contact</a> + <a href="/slashes.html">/slashes</a> <a href="/uses.html">/uses</a> +<a href="https://git.roughlynamed.net">/blog</a> + <a href="https://1kb.roughlynamed.net">/1kb</a> <a href="/tarantino/">/tarantino</a> + </nav> + <main> + <h1>/girl</h1> + <p>I am a...</p> + <ul> + <li>trans girl</li> + <li>book girl</li> + <li>deer girl</li> + <li>coding girl</li> + <li>ATmospheric girl</li> + <li>space girl</li> + <li>cute girl</li> + <li>haskell girl</li> + <li>lispy girl (like the language!)</li> + </ul> + <p class="license"> + <a href="https://git.roughlynamed.net/website.git/">Source code</a> — + <a href="COPYING">GNU AGPLv3</a> + </p> + </main> + </body> </html> @@ -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); @@ -19,41 +19,45 @@ along with roughlynamed.net. If not, see <https://www.gnu.org/licenses/>. --> -<!DOCTYPE html> +<!doctype html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> - -<head> - <meta name="theme-color" content="#f8efdf" /> - <meta charset="UTF-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>/hello</title> - <link rel="icon" type="image/png" href="/assets/_.ico" /> -<link rel="stylesheet" href="/style.css" /> -</head> - -<body> - <nav> - <a href="/">index</a> - <a href="/about.html">/about</a> - <a href="/contact.html">/contact</a> - <a href="/slashes.html">/slashes</a> - <a href="/uses.html">/uses</a> - <a href="/webrings.html">/webrings</a> - <a href="https://git.roughlynamed.net">/blog</a> - <a href="https://1kb.roughlynamed.net">/1kb</a> - <a href="/tarantino/">/tarantino</a> -</nav> - <h1>/hello</h1> - <p>(how i prefer to keep in touch)</p> - <br></br> - <p>If you would like to contact me, please email <a href="mailto:hi@roughlynamed.net">hi@roughlynamed.net</a></p> - <p>If you cannot access your email or prefer something else, please message me on <a href="xmpp:wildebeest@yax.im">wildebeest@yax.im</a> via XMPP</p> - <br/> - <p class="license"> - <a href="https://git.roughlynamed.net/website.git/">Source code</a> - — - <a href="COPYING">GNU AGPLv3</a> -</p> -</body> - + <head> + <meta name="theme-color" content="#f8efdf" /> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>/hello</title> + <link rel="icon" type="image/png" href="/assets/_.ico" /> + <link rel="stylesheet" href="/style.css" /> + </head> + + <body> + <nav> + <a href="/">index</a> + <a href="/about.html">/about</a> + <a href="/contact.html">/contact</a> + <a href="/slashes.html">/slashes</a> + <a href="/uses.html">/uses</a> + + <a href="https://git.roughlynamed.net">/blog</a> + <a href="https://1kb.roughlynamed.net">/1kb</a> + <a href="/tarantino/">/tarantino</a> + </nav> + <h1>/hello</h1> + <p>(how i prefer to keep in touch)</p> + <br /> + <p> + If you would like to contact me, please email + <a href="mailto:hi@roughlynamed.net">hi@roughlynamed.net</a> + </p> + <p> + If you cannot access your email or prefer something else, please message me on + <a href="xmpp:wildebeest@yax.im">wildebeest@yax.im</a> via XMPP + </p> + <br /> + <p class="license"> + <a href="https://git.roughlynamed.net/website.git/">Source code</a> + — + <a href="COPYING">GNU AGPLv3</a> + </p> + </body> </html> @@ -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 @@ -37,7 +37,7 @@ <nav> <a href="/">index</a> <a href="/about.html">/about</a> <a href="/contact.html">/contact</a> <a href="/slashes.html">/slashes</a> <a href="/uses.html">/uses</a> - <a href="/webrings.html">/webrings</a> <a href="https://git.roughlynamed.net">/git</a> + <a href="https://git.roughlynamed.net">/git</a> <a href="https://1kb.roughlynamed.net">/1kb</a> <a href="/tarantino/">/tarantino</a> </nav> <h1>roughlynamed.net</h1> @@ -56,16 +56,20 @@ <div id="recent-now" class="recent-box"> <h3>Changelog</h3> <ul> - <li> - <time datetime="2026-10-1">2026-10-1</time> - <p> - Switch to gentoo - </p> - <p> - Update LibrePGP fingerprint & key - </p> - </p> - </li> + <li> + <time datetime="2026-10-5">2026-10-5</time> + <p> + Change the theme to something similar to + <a href="https://git.roughlynamed.net">git.roughlynamed.net</a> & + <a href="https://savannah.nongnu.org">savannah.nongnu.org</a> + </p> + <p>Change every font to sans-serif</p> + </li> + <li> + <time datetime="2026-10-1">2026-10-1</time> + <p>Switch to gentoo</p> + <p>Update LibrePGP fingerprint & key</p> + </li> <li> <time datetime="2026-09-26">2026-09-26</time> <p>Switch to Devuan and change the XMPP JID</p> @@ -136,14 +140,14 @@ <hr /> </main> <footer class="buttons"> - <a href="https://roughlynamed.net" - ><img src="/assets/eightyeight.png" alt="my 88x31 button!" title="hey its me!" - /></a> <a href="https://swimming.cat" ><img src="/assets/site-button.webp" alt="swimming.cat" title="ashley website!!" /></a> <a href="https://oli.xenia.gay"><img src="/assets/oli.gif" alt="oli.xenia.gay" /></a> <a href="http://lunaisafox.xyz"><img src="/assets/stuff.gif" alt="lunaisafox.xyz" /></a> + <a href="https://www.gentoo.org" + ><img src="/assets/gentoo.gif" title="Made on Gentoo GNU/Linux" alt="Gentoo, now!" + /></a> <a href="https://8bitosc.net" ><img src="https://8bitosc.net/img/88x31/jay.gif" @@ -165,15 +169,7 @@ alt="made on gnu/linux" title="this is fact-checked by true sophies." /> - <a href="https://debian.org" - ><img - src="/assets/debian.gif" - alt="debian.org" - title="Debian GNU/Linux" - width="88" - height="31" - /></a> - <a href="https://gnu.org" + <a href="https://www.gnu.org" ><img src="/assets/gnu.webp" alt="gnu.org" @@ -181,7 +177,7 @@ width="88" height="31" /></a> - <a href="https://gnu.org" + <a href="https://www.gnu.org" ><img src="/assets/agpl.png" alt="agpl free software, made with freedom" @@ -265,15 +261,7 @@ /></a> </footer> <!--END OF BUTTONS--> - <p class="button-code-label"> - if you want to link back, PLEASE DONT HOTLINK! it hurts my little pi, instead save the image - and do: - </p> - <pre><code><a href="https://roughlynamed.net"><img src="/path/to/badge.png" width="88" height="31" - alt="roughlynamed.net"></a></code></pre> - <p>the theme on this website changes every now and then, be warned!</p> <script> - //<![CDATA[ fetch("/counter.php") .then((r) => r.text()) .then((n) => { @@ -282,7 +270,6 @@ .catch(() => { document.getElementById("visitor-count").textContent = "you are visitor: ???"; }); - //]]> </script> <script src="/scrobbles.js" defer="defer"></script> <script src="/publications.js" defer="defer"></script> @@ -18,36 +18,39 @@ You should have received a copy of the GNU Affero General Public License along with roughlynamed.net. If not, see <https://www.gnu.org/licenses/>. --> -<!DOCTYPE html> +<!doctype html> <html lang="en"> - <head> - <meta name="theme-color" content="#f8efdf" /> - <meta charset="UTF-8" /> - <meta name="description" content="what im working on currently" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title> - /now :: roughlynamed - </title> - <link rel="icon" type="image/png" href="/assets/_.ico" /> - <link rel="stylesheet" href="/style.css" /> - </head> - <body> - <nav> - <a href="/">index</a> <a href="/about.html">/about</a> <a href="/contact.html">/contact</a> <a href="/slashes.html">/slashes</a> <a href="/uses.html">/uses</a> <a href="/webrings.html">/webrings</a> <a href="https://git.roughlynamed.net">/blog</a> <a href="https://1kb.roughlynamed.net">/1kb</a> <a href="/tarantino/">/tarantino</a> - </nav> - <main> - <h1> - /now - </h1> - <p> - I am currently trying to learn Haskell, a purely functional, lazy evaluated programming language! - </p> - <p> - I'm also developing this website, trying to finish all the slashpages. - </p> - <p class="license"> - <a href="https://git.roughlynamed.net/website.git/">Source code</a> — <a href="COPYING">GNU AGPLv3</a> - </p> - </main> - </body> + <head> + <meta name="theme-color" content="#f8efdf" /> + <meta charset="UTF-8" /> + <meta name="description" content="what im working on currently" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>/now :: roughlynamed</title> + <link rel="icon" type="image/png" href="/assets/_.ico" /> + <link rel="stylesheet" href="/style.css" /> + </head> + <body> + <nav> + <a href="/">index</a> <a href="/about.html">/about</a> <a href="/contact.html">/contact</a> + <a href="/slashes.html">/slashes</a> <a href="/uses.html">/uses</a> +<a href="https://git.roughlynamed.net">/blog</a> + <a href="https://1kb.roughlynamed.net">/1kb</a> <a href="/tarantino/">/tarantino</a> + </nav> + <main> + <h1>/now</h1> + <p> + I am currently trying to learn Haskell, a purely functional, lazy evaluated programming + language! + </p> + <p> + 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 + </p> + + <p class="license"> + <a href="https://git.roughlynamed.net/website.git/">Source code</a> — + <a href="COPYING">GNU AGPLv3</a> + </p> + </main> + </body> </html> 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, ">") + .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 = '<li>No publications yet.</li>'; + list.innerHTML = "<li>No publications yet.</li>"; return; } - list.innerHTML = posts.map(p => ` + list.innerHTML = posts + .map( + (p) => ` <li> <a href="${escapeXml(p.url)}">${escapeXml(p.title.trim())}</a> - ${p.date ? `<div>${escapeXml(new Date(p.date).toLocaleDateString('en-US', { month: 'long', day: 'numeric', year: 'numeric' }))}</div>` : ''} + ${p.date ? `<div>${escapeXml(new Date(p.date).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }))}</div>` : ""} </li> - `).join(''); + `, + ) + .join(""); } catch (err) { - console.error('Failed to load publications:', err); + console.error("Failed to load publications:", err); list.innerHTML = "<li>Couldn't load publications right now.</li>"; } } 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 <https://www.gnu.org/licenses/>. */ -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 = '<li>No scrobbles yet.</li>'; + list.innerHTML = "<li>No scrobbles yet.</li>"; 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 = ` <a href="${track.url}">${track.name}</a> - <div>${artist}${nowPlaying ? ' - listening now' : ''}</div> + <div>${artist}${nowPlaying ? " - listening now" : ""}</div> `; 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 = "<li>Couldn't load scrobbles right now.</li>"; } } 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 <https://www.gnu.org/licenses/>. --> -<!DOCTYPE html> +<!doctype html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="theme-color" content="#f8efdf" /> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>/slashes</title> + <link rel="icon" type="image/png" href="/assets/_.ico" /> + <link rel="stylesheet" href="/style.css" /> + </head> -<head> - <meta name="theme-color" content="#f8efdf" /> - <meta charset="UTF-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>/slashes</title> - <link rel="icon" type="image/png" href="/assets/_.ico" /> -<link rel="stylesheet" href="/style.css" /> -</head> + <body> + <nav> + <a href="/">index</a> + <a href="/about.html">/about</a> + <a href="/contact.html">/contact</a> + <a href="/slashes.html">/slashes</a> + <a href="/uses.html">/uses</a> -<body> - <nav> - <a href="/">index</a> - <a href="/about.html">/about</a> - <a href="/contact.html">/contact</a> - <a href="/slashes.html">/slashes</a> - <a href="/uses.html">/uses</a> - <a href="/webrings.html">/webrings</a> - <a href="https://git.roughlynamed.net">/blog</a> - <a href="https://1kb.roughlynamed.net">/1kb</a> - <a href="/tarantino/">/tarantino</a> -</nav> - <h1>/slashes</h1> - <p>All the slashpages on the website</p> - <p>(this isn't yet accurate, i am migrating it over from my gopherhole, most of the links dont work)</p> - <p>Goal: add every page from <a href="https://slashpages.net">slashpages.net</a> to this website</p> + <a href="https://git.roughlynamed.net">/blog</a> + <a href="https://1kb.roughlynamed.net">/1kb</a> + <a href="/tarantino/">/tarantino</a> + </nav> + <h1>/slashes</h1> + <p>All the slashpages on the website</p> + <p> + (this isn't yet accurate, i am migrating it over from my gopherhole, most of the links dont + work) + </p> + <p> + Goal: add every page from <a href="https://slashpages.net">slashpages.net</a> to this website + </p> - <h2>status</h2> - <p><strong>total pages:</strong> 55   <strong>done:</strong> 13</p> + <h2>status</h2> + <p><strong>total pages:</strong> 55   <strong>done:</strong> 13</p> - <h2>list</h2> - <dl class="slashlist"> + <h2>list</h2> + <dl class="slashlist"> + <dt><a href="/about.html">/about</a> <span class="tag done">done</span></dt> + <dd>/about.html</dd> - <dt><a href="/about.html">/about</a> <span class="tag done">done</span></dt> - <dd>/about.html</dd> + <dt><a href="/ai.html">/ai</a> <span class="tag done">done</span></dt> + <dd>/ai.html</dd> - <dt><a href="/ai.html">/ai</a> <span class="tag done">done</span></dt> - <dd>/ai.html</dd> + <dt><a href="/blank.html">/blank</a> <span class="tag done">done</span></dt> + <dd>/blank.html</dd> - <dt><a href="/blank.html">/blank</a> <span class="tag done">done</span></dt> - <dd>/blank.html</dd> + <dt>/gitroll <span class="tag todo">todo</span></dt> + <dd>a list of other sites i read and reccomend</dd> - <dt>/gitroll <span class="tag todo">todo</span></dt> - <dd>a list of other sites i read and reccomend</dd> + <dt>/calendar <span class="tag todo">todo</span></dt> + <dd>a list of dates from movies, tv shows, etc.</dd> - <dt>/calendar <span class="tag todo">todo</span></dt> - <dd>a list of dates from movies, tv shows, etc.</dd> + <dt>/canon <span class="tag todo">todo</span></dt> + <dd>annotated bibliography of references, the things that shaped me</dd> - <dt>/canon <span class="tag todo">todo</span></dt> - <dd>annotated bibliography of references, the things that shaped me</dd> + <dt>/carry <span class="tag todo">todo</span></dt> + <dd>items i carry daily</dd> - <dt>/carry <span class="tag todo">todo</span></dt> - <dd>items i carry daily</dd> + <dt>/caw <span class="tag todo">todo</span></dt> + <dd>crows.</dd> - <dt>/caw <span class="tag todo">todo</span></dt> - <dd>crows.</dd> + <dt><a href="/index.html">/log</a> <span class="tag done">done</span></dt> + <dd>(its the changelog in index.html)</dd> - <dt><a href="/index.html">/log</a> <span class="tag done">done</span></dt> - <dd>(its the changelog in index.html)</dd> + <dt><a href="/maccas.html">/mcdonalds</a> <span class="tag todo">todo</span></dt> + <dd>/maccas.html</dd> - <dt><a href="/maccas.html">/mcdonalds</a> <span class="tag todo">todo</span></dt> - <dd>/maccas.html</dd> + <dt>/colophon <span class="tag todo">todo</span></dt> + <dd>a page that describes how the site is made, tools n stuff</dd> - <dt>/colophon <span class="tag todo">todo</span></dt> - <dd>a page that describes how the site is made, tools n stuff</dd> + <dt>/community <span class="tag todo">todo</span></dt> + <dd>a page outlining what a community is about and its values</dd> - <dt>/community <span class="tag todo">todo</span></dt> - <dd>a page outlining what a community is about and its values</dd> + <dt>/concerts <span class="tag todo">todo</span></dt> + <dd>a list of the concerts i've been to</dd> - <dt>/concerts <span class="tag todo">todo</span></dt> - <dd>a list of the concerts i've been to</dd> + <dt><a href="/contact.html">/contact</a> <span class="tag done">done</span></dt> + <dd>/contact.html</dd> - <dt><a href="/contact.html">/contact</a> <span class="tag done">done</span></dt> - <dd>/contact.html</dd> + <dt>/daylists <span class="tag kill">kill</span></dt> + <dd>i dont use spotify</dd> - <dt>/daylists <span class="tag kill">kill</span></dt> - <dd>i dont use spotify</dd> + <dt><a href="/death.html">/death</a> <span class="tag done">done</span></dt> + <dd>/death.html</dd> - <dt><a href="/death.html">/death</a> <span class="tag done">done</span></dt> - <dd>/death.html</dd> + <dt>/disability <span class="tag todo">todo</span></dt> + <dd>have to get diagnosed first</dd> - <dt>/disability <span class="tag todo">todo</span></dt> - <dd>have to get diagnosed first</dd> + <dt>/elsewhere <span class="tag todo">todo</span></dt> + <dd>a list of output or writings on sites other than this</dd> - <dt>/elsewhere <span class="tag todo">todo</span></dt> - <dd>a list of output or writings on sites other than this</dd> + <dt>/feeds <span class="tag todo">todo</span></dt> + <dd>page listing RSS/Atom/JSON and other feeds.</dd> - <dt>/feeds <span class="tag todo">todo</span></dt> - <dd>page listing RSS/Atom/JSON and other feeds.</dd> + <dt>/for <span class="tag todo">todo</span></dt> + <dd>a page where i honor my loved ones or thank others</dd> - <dt>/for <span class="tag todo">todo</span></dt> - <dd>a page where i honor my loved ones or thank others</dd> + <dt>/glossary <span class="tag todo">todo</span></dt> + <dd>a list of words i often use and their meanings</dd> - <dt>/glossary <span class="tag todo">todo</span></dt> - <dd>a list of words i often use and their meanings</dd> + <dt>/green <span class="tag todo">todo</span></dt> + <dd>a page that describes how i contribute to the environment</dd> - <dt>/green <span class="tag todo">todo</span></dt> - <dd>a page that describes how i contribute to the environment</dd> + <dt><a href="/girl.html">/girl</a> <span class="tag done">done</span></dt> + <dd>/girl.html</dd> - <dt><a href="/girl.html">/girl</a> <span class="tag done">done</span></dt> - <dd>/girl.html</dd> + <dt>/hats <span class="tag todo">todo</span></dt> + <dd>my hats</dd> - <dt>/hats <span class="tag todo">todo</span></dt> - <dd>my hats</dd> + <dt><a href="/hello.html">/hello</a> <span class="tag done">done</span></dt> + <dd>a list of the ways i prefer to keep in touch</dd> - <dt><a href="/hello.html">/hello</a> <span class="tag done">done</span></dt> - <dd>a list of the ways i prefer to keep in touch</dd> + <dt>/hills <span class="tag todo">todo</span></dt> + <dd>a list of the hills im willing to die on</dd> - <dt>/hills <span class="tag todo">todo</span></dt> - <dd>a list of the hills im willing to die on</dd> + <dt>/ideas <span class="tag todo">todo</span></dt> + <dd>things i want to make</dd> - <dt>/ideas <span class="tag todo">todo</span></dt> - <dd>things i want to make</dd> + <dt>/interests <span class="tag todo">todo</span></dt> + <dd>a list of things im passionate about</dd> - <dt>/interests <span class="tag todo">todo</span></dt> - <dd>a list of things im passionate about</dd> + <dt>/sale <span class="tag todo">todo</span></dt> + <dd>yard sale!!</dd> - <dt>/sale <span class="tag todo">todo</span></dt> - <dd>yard sale!!</dd> + <dt>/links <span class="tag todo">todo</span></dt> + <dd>a list of links to sites i like or want to bookmark</dd> - <dt>/links <span class="tag todo">todo</span></dt> - <dd>a list of links to sites i like or want to bookmark</dd> + <dt>/next <span class="tag todo">todo</span></dt> + <dd>what i'm gonna do next</dd> - <dt>/next <span class="tag todo">todo</span></dt> - <dd>what i'm gonna do next</dd> + <dt>/nope <span class="tag todo">todo</span></dt> + <dd>a list of things i dont like/dont wanna do</dd> - <dt>/nope <span class="tag todo">todo</span></dt> - <dd>a list of things i dont like/dont wanna do</dd> + <dt><a href="/now.html">/now</a> <span class="tag done">done</span></dt> + <dd>/now.html</dd> - <dt><a href="/now.html">/now</a> <span class="tag done">done</span></dt> - <dd>/now.html</dd> + <dt>/pfp <span class="tag todo">todo</span></dt> + <dd>a timeline of all my pfp pictures</dd> - <dt>/pfp <span class="tag todo">todo</span></dt> - <dd>a timeline of all my pfp pictures</dd> + <dt>/podroll <span class="tag maybe">todo?</span></dt> + <dd>a list of podcasts i reccomend, if i get into podcasts</dd> - <dt>/podroll <span class="tag maybe">todo?</span></dt> - <dd>a list of podcasts i reccomend, if i get into podcasts</dd> + <dt>/posse <span class="tag todo">todo</span></dt> + <dd>a page outlining my strategy for POSSE/cross-posting</dd> - <dt>/posse <span class="tag todo">todo</span></dt> - <dd>a page outlining my strategy for POSSE/cross-posting</dd> + <dt>/postroll <span class="tag todo">todo</span></dt> + <dd>a list of interesting blog posts i read</dd> - <dt>/postroll <span class="tag todo">todo</span></dt> - <dd>a list of interesting blog posts i read</dd> + <dt>/pricing <span class="tag maybe">todo?</span></dt> + <dd>a page for those that want to buy my products</dd> - <dt>/pricing <span class="tag maybe">todo?</span></dt> - <dd>a page for those that want to buy my products</dd> + <dt>/questions <span class="tag todo">todo</span></dt> + <dd>questions i wanna ask or im thinking about</dd> - <dt>/questions <span class="tag todo">todo</span></dt> - <dd>questions i wanna ask or im thinking about</dd> + <dt>/save <span class="tag todo">todo</span></dt> + <dd>a list of referral links and discount codes for things i like</dd> - <dt>/save <span class="tag todo">todo</span></dt> - <dd>a list of referral links and discount codes for things i like</dd> + <dt>/hosted <span class="tag todo">todo</span></dt> + <dd>a page listing the services im hosting or managing myself</dd> - <dt>/hosted <span class="tag todo">todo</span></dt> - <dd>a page listing the services im hosting or managing myself</dd> + <dt>/shoebox <span class="tag todo">todo</span></dt> + <dd>a bit of website where for the odds-and-ends</dd> - <dt>/shoebox <span class="tag todo">todo</span></dt> - <dd>a bit of website where for the odds-and-ends</dd> + <dt>/since <span class="tag todo">todo</span></dt> + <dd>habit tracker showing time since i started/stopped doing x</dd> - <dt>/since <span class="tag todo">todo</span></dt> - <dd>habit tracker showing time since i started/stopped doing x</dd> + <dt>/sitemap <span class="tag todo">todo</span></dt> + <dd>a list of pages on here</dd> - <dt>/sitemap <span class="tag todo">todo</span></dt> - <dd>a list of pages on here</dd> + <dt><a href="/slashes.html">/slashes</a> <span class="tag done">done</span></dt> + <dd>this!</dd> - <dt><a href="/slashes.html">/slashes</a> <span class="tag done">done</span></dt> - <dd>this!</dd> + <dt>/someday <span class="tag todo">todo</span></dt> + <dd>things i someday want to achieve/accomplish/learn/etc.</dd> - <dt>/someday <span class="tag todo">todo</span></dt> - <dd>things i someday want to achieve/accomplish/learn/etc.</dd> + <dt>/style <span class="tag todo">todo</span></dt> + <dd>personal style/design style guide</dd> - <dt>/style <span class="tag todo">todo</span></dt> - <dd>personal style/design style guide</dd> + <dt><a href="/ways.html">/ways</a> <span class="tag done">done</span></dt> + <dd>/ways.html</dd> - <dt><a href="/ways.html">/ways</a> <span class="tag done">done</span></dt> - <dd>/ways.html</dd> + <dt>/coffee <span class="tag todo">todo</span></dt> + <dd>donations</dd> - <dt>/coffee <span class="tag todo">todo</span></dt> - <dd>donations</dd> + <dt>/top4 <span class="tag todo">todo</span></dt> + <dd>top 4 of any topic! (top 3 + honor mention)</dd> - <dt>/top4 <span class="tag todo">todo</span></dt> - <dd>top 4 of any topic! (top 3 + honor mention)</dd> + <dt><a href="/uses.html">/uses</a> <span class="tag done">done</span></dt> + <dd>/uses.html</dd> - <dt><a href="/uses.html">/uses</a> <span class="tag done">done</span></dt> - <dd>/uses.html</dd> + <dt>/verify <span class="tag todo">todo</span></dt> + <dd>a page to list and prove online identities</dd> - <dt>/verify <span class="tag todo">todo</span></dt> - <dd>a page to list and prove online identities</dd> + <dt>/where <span class="tag todo">todo</span></dt> + <dd>let others know my current location!</dd> - <dt>/where <span class="tag todo">todo</span></dt> - <dd>let others know my current location!</dd> + <dt>/why <span class="tag todo">todo</span></dt> + <dd>what i care about, where im heading and how i hope to exist</dd> - <dt>/why <span class="tag todo">todo</span></dt> - <dd>what i care about, where im heading and how i hope to exist</dd> + <dt><a href="/wish.html">/wish</a> <span class="tag done">done</span></dt> + <dd>/wish.html</dd> - <dt><a href="/wish.html">/wish</a> <span class="tag done">done</span></dt> - <dd>/wish.html</dd> + <dt>/yep <span class="tag todo">todo</span></dt> + <dd>list of things i agree with or will do</dd> + </dl> - <dt>/yep <span class="tag todo">todo</span></dt> - <dd>list of things i agree with or will do</dd> - - </dl> - - <p>I took time out of my day to write this out by hand.</p> - <p>from Russia with Love, <br />Maddie</p> - -<p class="license"> - <a href="https://git.roughlynamed.net/website.git/">Source code</a> - — - <a href="COPYING">GNU AGPLv3</a> -</p> -</body> + <p>I took time out of my day to write this out by hand.</p> + <p>from Russia with Love, <br />Maddie</p> + <p class="license"> + <a href="https://git.roughlynamed.net/website.git/">Source code</a> + — + <a href="COPYING">GNU AGPLv3</a> + </p> + </body> </html> @@ -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 <https://www.gnu.org/licenses/>. + */ +/* 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 <https://www.gnu.org/licenses/>. --> -<!DOCTYPE html> +<!doctype html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="theme-color" content="#000000" /> @@ -51,41 +51,39 @@ <ul> <li>No bigotry allowed on your website</li> <li> - 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. </li> <li> - 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. </li> <li> - 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. </li> <li> - 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 </li> <li> - 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) </li> <li> - 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. </li> <li>i reserve the right to reject any applications under my own terms</li> </ul> <h2>Join</h2> <p> If you would like to join this webring, please - <a href="mailto:hi@roughlynamed.net">email me</a> (hi@roughlynamed.net) - with the subject: "Webring application" + <a href="mailto:hi@roughlynamed.net">email me</a> (hi@roughlynamed.net) with the subject: + "Webring application" </p> <p> - 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) </p> <h2>Widget</h2> <p>Paste this snippet anywhere on your site:</p> @@ -100,15 +98,11 @@ <a id="ring-next" href="#">next</a> </nav> <script src="https://roughlynamed.net/webring.js" defer></script> - </pre - > + </pre> </code> <p>keep in mind that widget-less sites will be removed.</p> <p>Below is an example of a correctly added widget (colors may vary):</p> - <nav - id="ring-nav" - style="display: flex; align-items: center; justify-content: center" - > + <nav id="ring-nav" style="display: flex; align-items: center; justify-content: center"> <a id="ring-prev" href="#">prev</a> <span>|</span> <a href="/tarantino/">TARANTINO</a> @@ -118,8 +112,6 @@ </nav> <script src="/webring.js" defer></script> <h2>Bugs</h2> - <p> - If there are any issues with the webring, please email me about them. - </p> + <p>If there are any issues with the webring, please email me about them.</p> </body> </html> diff --git a/tarantino/tarantino-style.css b/tarantino/tarantino-style.css index 4b084b0..66b85ab 100644 --- a/tarantino/tarantino-style.css +++ b/tarantino/tarantino-style.css @@ -1,6 +1,6 @@ @font-face { - font-family: 'Pulp Fiction'; - src: url('/fonts/PF.woff2') format('woff2'); + font-family: "Pulp Fiction"; + src: url("/fonts/PF.woff2") format("woff2"); } body { @@ -10,11 +10,10 @@ body { h1, h2 { - font-family: 'Pulp Fiction', 'Impact', sans-serif; - color: #f5da1e + font-family: "Pulp Fiction", "Impact", sans-serif; + color: #f5da1e; } - a { color: #f5da1e; text-decoration-color: rgba(245, 218, 30, 0.4); @@ -27,4 +26,4 @@ a:hover { code { background: #1a1a1a; color: #f5f0e6; -}
\ No newline at end of file +} @@ -33,7 +33,7 @@ <nav> <a href="/">index</a> <a href="/about.html">/about</a> <a href="/contact.html">/contact</a> <a href="/slashes.html">/slashes</a> <a href="/uses.html">/uses</a> - <a href="/webrings.html">/webrings</a> <a href="https://git.roughlynamed.net">/blog</a> + <a href="https://git.roughlynamed.net">/blog</a> <a href="https://1kb.roughlynamed.net">/1kb</a> <a href="/tarantino/">/tarantino</a> </nav> <main> @@ -85,12 +85,13 @@ <p>Forge: <a href="https://git.roughlynamed.net">git.roughlynamed.net</a> - selfhosted</p> <h2>Music</h2> <p>Download: <a href="https://nicotine-plus.org">Nicotine+</a></p> - <p>Daemon: <a href="https://musicpd.org">mpd</a></p> + <p>Daemon: <a href="https://github.com/xmms2">xmms2</a></p> <p> - Scrobbler: <a href="https://github.com/MusicPlayerDaemon/mpdscribble">mpdscribble</a> to + Scrobbler: <a href="https://github.com/mariusor/mpris-scrobbler">mpris-scrobbler</a>(via a + xmms2 -> mpris shim) to <a href="https://libre.fm">libre.fm</a> </p> - <p>RPC: <a href="https://github.com/JakeStanger/mpd-discord-rpc">mpd-discord-rpc</a></p> + <p>RPC: <a href="https://github.com/lazykern/mprisence">mprisence</a></p> <p> Player: <a href="https://wiki.archlinux.org/title/Ncmpcpp">emms</a> (emacs multimedia system) @@ -100,7 +101,7 @@ <h2>Chat</h2> <h3>XMPP</h3> <p>Client: <a href="https://xmpp.org/software/jabber-el">jabber</a></p> - <p>JID: <a href="xmpp:roughlynamed@yax.im">roughlynamed@yax.im</a></p> + <p>JID: <a href="xmpp:wildebeest@yax.im">wildebeest@yax.im</a></p> <h2>Web & Friends</h2> <p>Browser: <a href="https://vivaldi.com">Vivaldi</a></p> <p>Extensions:</p> @@ -1,48 +1,48 @@ -const RING_CACHE_KEY = 'tarantino-ring-cache'; +const RING_CACHE_KEY = "tarantino-ring-cache"; const RING_CACHE_TTL_MS = 5 * 60_000; async function fetchRingMembers() { - const cached = localStorage.getItem(RING_CACHE_KEY); - if (cached) { - const { data, ts } = JSON.parse(cached); - if (Date.now() - ts < RING_CACHE_TTL_MS) return data; - } - - const res = await fetch('https://roughlynamed.net/tarantino/ring.json'); - if (!res.ok) throw new Error(`tarantino webring fetch failed: ${res.status}`); - const { members } = await res.json(); - - localStorage.setItem(RING_CACHE_KEY, JSON.stringify({ data: members, ts: Date.now() })); - return members; + const cached = localStorage.getItem(RING_CACHE_KEY); + if (cached) { + const { data, ts } = JSON.parse(cached); + if (Date.now() - ts < RING_CACHE_TTL_MS) return data; + } + + const res = await fetch("https://roughlynamed.net/tarantino/ring.json"); + if (!res.ok) throw new Error(`tarantino webring fetch failed: ${res.status}`); + const { members } = await res.json(); + + localStorage.setItem(RING_CACHE_KEY, JSON.stringify({ data: members, ts: Date.now() })); + return members; } function originOf(member) { - try { - return new URL(member.url).origin; - } catch (err) { - console.error('tarantino webring: bad url on member', member, err); - return null; - } + try { + return new URL(member.url).origin; + } catch (err) { + console.error("tarantino webring: bad url on member", member, err); + return null; + } } function warningLabel(m) { - return m.content_warnings?.length ? ` (cw: ${m.content_warnings.join(', ')})` : ''; + return m.content_warnings?.length ? ` (cw: ${m.content_warnings.join(", ")})` : ""; } function ensureWarningDialog() { - let dialog = document.getElementById('ring-warning-dialog'); - if (dialog) return dialog; + let dialog = document.getElementById("ring-warning-dialog"); + if (dialog) return dialog; - dialog = document.createElement('dialog'); - dialog.id = 'ring-warning-dialog'; - dialog.innerHTML = ` + dialog = document.createElement("dialog"); + dialog.id = "ring-warning-dialog"; + dialog.innerHTML = ` <p id="ring-warning-text"></p> <menu style="display: flex; gap: 0.5rem; justify-content: flex-end; padding: 0; margin: 0.75rem 0 0;"> <button type="button" value="cancel">cancel</button> <button type="button" value="continue" autofocus>continue</button> </menu> `; - dialog.style.cssText = ` + dialog.style.cssText = ` background: var(--bg, #fff); color: var(--text, #000); border: 1px solid var(--border, #ccc); @@ -50,101 +50,105 @@ function ensureWarningDialog() { max-width: 28rem; padding: 1rem; `; - document.body.appendChild(dialog); + document.body.appendChild(dialog); - dialog.querySelector('button[value="cancel"]').addEventListener('click', () => dialog.close('cancel')); - dialog.querySelector('button[value="continue"]').addEventListener('click', () => dialog.close('continue')); + dialog + .querySelector('button[value="cancel"]') + .addEventListener("click", () => dialog.close("cancel")); + dialog + .querySelector('button[value="continue"]') + .addEventListener("click", () => dialog.close("continue")); - return dialog; + return dialog; } function confirmIfFlagged(e, member) { - if (!member.content_warnings?.length) return; - e.preventDefault(); - - const dialog = ensureWarningDialog(); - dialog.querySelector('#ring-warning-text').textContent = - `Heads up: this site is flagged for ${member.content_warnings.join(', ')}. Continue?`; - - dialog.addEventListener( - 'close', - () => { - if (dialog.returnValue === 'continue') location.href = member.url; - }, - { once: true } - ); - - dialog.showModal(); + if (!member.content_warnings?.length) return; + e.preventDefault(); + + const dialog = ensureWarningDialog(); + dialog.querySelector("#ring-warning-text").textContent = + `Heads up: this site is flagged for ${member.content_warnings.join(", ")}. Continue?`; + + dialog.addEventListener( + "close", + () => { + if (dialog.returnValue === "continue") location.href = member.url; + }, + { once: true }, + ); + + dialog.showModal(); } function wireNavLink(id, member) { - const el = document.getElementById(id); - if (!el || !member) return; - el.href = member.url; - el.addEventListener('click', e => confirmIfFlagged(e, member)); + const el = document.getElementById(id); + if (!el || !member) return; + el.href = member.url; + el.addEventListener("click", (e) => confirmIfFlagged(e, member)); } function disableNavLink(id) { - const el = document.getElementById(id); - if (!el) return; - el.removeAttribute('href'); - el.setAttribute('aria-disabled', 'true'); + const el = document.getElementById(id); + if (!el) return; + el.removeAttribute("href"); + el.setAttribute("aria-disabled", "true"); } function renderMembersTable(members) { - const tbody = document.getElementById('members-tbody'); - if (!tbody) return; - - const frag = document.createDocumentFragment(); - for (const m of members) { - const tr = document.createElement('tr'); - - const nameTd = document.createElement('td'); - nameTd.textContent = m.name; - - const linkTd = document.createElement('td'); - const a = document.createElement('a'); - a.href = m.url; - a.textContent = m.url + warningLabel(m); - a.addEventListener('click', e => confirmIfFlagged(e, m)); - linkTd.appendChild(a); - - tr.append(nameTd, linkTd); - frag.appendChild(tr); - } - tbody.appendChild(frag); + const tbody = document.getElementById("members-tbody"); + if (!tbody) return; + + const frag = document.createDocumentFragment(); + for (const m of members) { + const tr = document.createElement("tr"); + + const nameTd = document.createElement("td"); + nameTd.textContent = m.name; + + const linkTd = document.createElement("td"); + const a = document.createElement("a"); + a.href = m.url; + a.textContent = m.url + warningLabel(m); + a.addEventListener("click", (e) => confirmIfFlagged(e, m)); + linkTd.appendChild(a); + + tr.append(nameTd, linkTd); + frag.appendChild(tr); + } + tbody.appendChild(frag); } async function initRing() { - try { - const members = await fetchRingMembers(); - const me = members.findIndex(m => originOf(m) === location.origin); - - if (me === -1) { - console.error('this site is not in the tarantino webring'); - } else if (members.length <= 1) { - disableNavLink('ring-prev'); - disableNavLink('ring-next'); - disableNavLink('ring-random'); - } else { - const next = members[(me + 1) % members.length]; - const prev = members[(me - 1 + members.length) % members.length]; - const others = members.filter((_, i) => i !== me); - - wireNavLink('ring-prev', prev); - wireNavLink('ring-next', next); - - if (others.length > 0) { - const random = others[Math.floor(Math.random() * others.length)]; - wireNavLink('ring-random', random); - } else { - disableNavLink('ring-random'); - } - } - - renderMembersTable(members); - } catch (err) { - console.error('tarantino webring failed:', err); + try { + const members = await fetchRingMembers(); + const me = members.findIndex((m) => originOf(m) === location.origin); + + if (me === -1) { + console.error("this site is not in the tarantino webring"); + } else if (members.length <= 1) { + disableNavLink("ring-prev"); + disableNavLink("ring-next"); + disableNavLink("ring-random"); + } else { + const next = members[(me + 1) % members.length]; + const prev = members[(me - 1 + members.length) % members.length]; + const others = members.filter((_, i) => i !== me); + + wireNavLink("ring-prev", prev); + wireNavLink("ring-next", next); + + if (others.length > 0) { + const random = others[Math.floor(Math.random() * others.length)]; + wireNavLink("ring-random", random); + } else { + disableNavLink("ring-random"); + } } + + renderMembersTable(members); + } catch (err) { + console.error("tarantino webring failed:", err); + } } initRing(); diff --git a/webrings.html b/webrings.html deleted file mode 100644 index b554884..0000000 --- a/webrings.html +++ /dev/null @@ -1,182 +0,0 @@ -<!-- - roughlynamed.net - - Copyright (C) 2026 Magdalena Szweda - - This file is part of roughlynamed.net. - - roughlynamed.net 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. - - roughlynamed.net 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 roughlynamed.net. If not, see <https://www.gnu.org/licenses/>. ---> - -<!DOCTYPE html> -<html lang="en"> - -<head> - <meta name="theme-color" content="#f8efdf" /> - <meta charset="UTF-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>/webrings</title> - <link rel="icon" type="image/png" href="/assets/_.ico" /> - <link rel="stylesheet" href="https://jack-dawlia.neocities.org/page/shrines/ultrakill/ULTRARING/onionring.css"> - <link rel="stylesheet" href="/style.css" /> -</head> - -<body> - <nav> - <a href="/">index</a> - <a href="/about.html">/about</a> - <a href="/contact.html">/contact</a> - <a href="/slashes.html">/slashes</a> - <a href="/uses.html">/uses</a> - <a href="/webrings.html">/webrings</a> - <a href="https://git.roughlynamed.net">/blog</a> - <a href="https://1kb.roughlynamed.net">/1kb</a> - <a href="/tarantino/">/tarantino</a> -</nav> - <h1>Webrings</h1> - <!-- no ai webring --> - <div style="text-align:center"> - <a href="https://baccyflap.com/noai/?prv&s=ale" target="_top">« prev</a> | - <a href="https://baccyflap.com/noai" target="_blank">no ai webring</a> - <a style="font-size:60%" href="https://baccyflap.com/noai/?rnd" target="_top">(random)</a> | - <a href="https://baccyflap.com/noai/?nxt&s=ale" target="_top">next »</a> - </div> - <hr> - </hr> - <!-- yuri webring --> - <div style="text-align-last: center;"> - <a href="https://lunamilk.neocities.org/webring/yuriwebring"> - <img src="https://file.garden/Zuy95U5nUSPb-gio/website/webring/yuriwebring1.png" height="26px"></a><br /> - <a href="https://lunamilk.neocities.org/webring/yuriwebring/webring?action=previous"> - <img src="https://file.garden/Zuy95U5nUSPb-gio/website/webring/arrow%20left.png"></a> - <a href="https://lunamilk.neocities.org/webring/yuriwebring/webring?action=random"> - random</a> - <a href="https://lunamilk.neocities.org/webring/yuriwebring/webring?action=next"> - <img src="https://file.garden/Zuy95U5nUSPb-gio/website/webring/arrow%20right.png"></a> - </div> - <hr> - </hr> - <!-- hollowknight webring --> - <center> - <div id='Hallownest-bugs'> - <script type="text/javascript" - src="https://samsolarsystem.neocities.org/onionring-variables-Hallownest-bugs.js"></script> - <script type="text/javascript" - src="https://samsolarsystem.neocities.org/onionring-widget-Hallownest-bugs-knight.js"></script> - </div> - </center> - <hr> - </hr> - <!-- *nix (unix webring) --> - <center> - <div id="nixring" style="display: inline-flex; gap: 8px; align-items: center; justify-content: center;"> - <style type="text/css" scoped> - #nixring { - text-align: center; - color: black; - } - - #nixring a { - color: black; - text-decoration: none; - } - </style> - <a href="https://softmachine.dev/webring/linuxring/redirect?url=https%3A%2F{roughlynamed.net}%2F&go=prev">←</a> - <a href="https://softmachine.dev/webring/linuxring"> - <div>*nixRing<br><img style="height: 25px;" src="https://softmachine.dev/webring/linuxring/icon/tux.png"></div> - </a> - <a href="https://softmachine.dev/webring/linuxring/redirect?url=https%3A%2F{roughlynamed.net}%2F&go=next">→</a> - </div> - </center> - <hr> - </hr> - <!-- transfem webring --> - <center> - <script defer src="https://fem.nz/ring/transfemring.js" data-widget="transgender"></script> - <hr> - </hr> - <!-- pony webring --> - - <div> - <center> - <a href="https://silversneasel.neocities.org/ponyring/main"><b>PonyRing!<br><img - src="https://silversneasel.neocities.org/pictures/ponyring/widget/g4-1.png" height="90"></b></a><br /> - <a href="https://silversneasel.neocities.org/ponyring/main?action=previous"><- - </a> - <a href="https://silversneasel.neocities.org/ponyring/main?action=random">random</a> - <a href="https://silversneasel.neocities.org/ponyring/main?action=next">-></a><br> - </center> - </div> - <hr> - </hr> - <!-- nix/os ring --> - <div style="text-align:center"> - <a href="https://nixwebr.ing/prev/sophie" target="_top"> prev</a> - <a href="https://nixwebr.ing" target="_blank">nix webring</a> - <a style="font-size:60%" href="https://nixwebr.ing/rand" target="_top">(random)</a> - <a href="https://nixwebr.ing/next/sophie" target="_top">next</a> - </div> - <hr> - </hr> - <!-- the ULTRARing --> - <div id='ultraring'> - <script type="text/javascript" - src="https://jack-dawlia.neocities.org/page/shrines/ultrakill/ULTRARING/onionring-variables.js"></script> - <script type="text/javascript" - src="https://jack-dawlia.neocities.org/page/shrines/ultrakill/ULTRARING/onionring-widget-4.js"></script> - <noscript> - This site is part of <a href="https://jack-dawlia.neocities.org/page/shrines/ultrakill/ULTRARING">ULTRARING</a>! - </noscript> - </div> - <hr></hr> - <!-- astronomy ring --> - <div style="text-align:center"> - <script type="text/javascript" src="https://astroring.auroradynia.com/ring.js"></script> - </div> - <hr></hr> -<!-- roboring --> -<div style="text-align:center"> - <a href="https://stellophiliac.github.io/roboring/xmlisbetter/previous">←</a> - <a href="https://stellophiliac.github.io/roboring">roboring</a> - <a href="https://stellophiliac.github.io/roboring/xmlisbetter/next">→</a> -</div> -<hr></hr> -<div style="text-align:center"> - <a href="https://webring.bucketfish.me/redirect.html?to=prev&name=sophie">prev</a> | - <a href="https://webring.bucketfish.me/"> bucketfish webring</a> - <a style="font-size:60%" href="https://webring.bucketfish.me/redirect.html?to=random&name=sophie" target="_top">(random)</a> | - <a href="https://webring.bucketfish.me/redirect.html?to=next&name=sophie"> next</a> -</div> -<hr></hr> - <nav - id="ring-nav" - style="display: flex; align-items: center; justify-content: center" - > - <a id="ring-prev" href="#">prev</a> - <span>|</span> - <a href="/tarantino/">TARANTINO</a> - <a id="ring-random" href="#" style="font-size: 60%">(random)</a> - <span>|</span> - <a id="ring-next" href="#">next</a> -</nav> - <script src="/webring.js" defer></script> -<hr></hr> - <p class="license"> - <a href="https://git.roughlynamed.net/website.git/">Source code</a> - — - <a href="COPYING">GNU AGPLv3</a> - </p> -</body> - -</html> |
