Update something

This commit is contained in:
tiff 2025-06-23 05:04:22 -04:00
parent 0ccf33c7f4
commit 65b6cca783
15 changed files with 644 additions and 328 deletions

View file

@ -3,6 +3,9 @@ import tailwindcss from "@tailwindcss/vite";
import sitemap from "@astrojs/sitemap";
import remarkToc from "remark-toc";
import remarkCollapse from "remark-collapse";
import umami from "@yeskunall/astro-umami";
import rehypeCallouts from "rehype-callouts";
import { SITE } from "./src/config";
import expressiveCode from "astro-expressive-code";
@ -15,9 +18,11 @@ export default defineConfig({
filter: (page) => SITE.showArchives || !page.endsWith("/archives"),
}),
expressiveCode(),
umami({ id: "a16cd27f-5d49-4a75-a710-3e541fe3bea0" }),
],
markdown: {
remarkPlugins: [remarkToc, [remarkCollapse, { test: "Table of contents" }]],
rehypePlugins: [rehypeCallouts],
shikiConfig: {
// For more themes, visit https://shiki.style/themes
themes: { light: "catppuccin-latte", dark: "catppuccin-frappe" },

View file

@ -21,10 +21,12 @@
"@resvg/resvg-js": "^2.6.2",
"@tailwindcss/vite": "^4.0.12",
"@types/sanitize-html": "^2.13.0",
"@yeskunall/astro-umami": "^0.0.6",
"astro": "^5.7.13",
"astro-expressive-code": "^0.40.2",
"lodash.kebabcase": "^4.1.1",
"markdown-it": "^14.1.0",
"rehype-callouts": "^2.1.1",
"remark-collapse": "^0.1.2",
"remark-toc": "^9.0.0",
"satori": "^0.12.1",

824
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-books"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 4m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z" /><path d="M9 4m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z" /><path d="M5 8h4" /><path d="M9 16h4" /><path d="M13.803 4.56l2.184 -.53c.562 -.135 1.133 .19 1.282 .732l3.695 13.418a1.02 1.02 0 0 1 -.634 1.219l-.133 .041l-2.184 .53c-.562 .135 -1.133 -.19 -1.282 -.732l-3.695 -13.418a1.02 1.02 0 0 1 .634 -1.219l.133 -.041z" /><path d="M14 9l4 -1" /><path d="M16 16l3.923 -.98" /></svg>

After

Width:  |  Height:  |  Size: 806 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-letterboxd"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /><path d="M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /><path d="M12 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /><path d="M16 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /></svg>

After

Width:  |  Height:  |  Size: 536 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-xbox"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /><path d="M6.5 5c7.72 2.266 10.037 7.597 12.5 12.5" /><path d="M17.5 5c-7.72 2.266 -10.037 7.597 -12.5 12.5" /></svg>

After

Width:  |  Height:  |  Size: 482 B

View file

@ -5,7 +5,9 @@ import IconHackerNews from "@/assets/icons/IconHackerNews.svg";
import IconMatrix from "@/assets/icons/IconMatrix.svg";
import IconGit from "@/assets/icons/IconGit.svg";
import IconLobsters from "@/assets/icons/IconsLobsters.svg";
// import Path from "@/assets/icons/Path.svg";
import IconLetterboxd from "@/assets/icons/IconLetterboxd.svg";
import IconXbox from "@/assets/icons/IconXbox.svg";
import IconBooks from "@/assets/icons/IconBooks.svg";
import { SITE } from "@/config";
@ -17,7 +19,7 @@ export const LOCALE = {
export const SOCIALS = [
{
name: "Git",
href: "https://git.tiff.run",
href: "https://forgejo.tiff.run",
linkTitle: `${SITE.title} Git`,
icon: IconGit,
},
@ -39,6 +41,24 @@ export const SOCIALS = [
linkTitle: `${SITE.title} on Hacker News`,
icon: IconHackerNews,
},
{
name: "Letterboxd",
href: "https://boxd.it/e0InP",
linkTitle: `${SITE.title} on Letterboxd`,
icon: IconLetterboxd,
},
{
name: "Backloggd",
href: "https://bckl.gg/mALo",
linkTitle: `${SITE.title} on Backlogged`,
icon: IconXbox,
},
{
name: "Bookcrastinating",
href: "https://bookrastinating.com/user/tiff",
linkTitle: `${SITE.title} on Bookcrastinating`,
icon: IconBooks,
},
{
name: "Lobsters",
href: "https://lobste.rs/~tiff",

View file

@ -14,7 +14,7 @@ const blog = defineCollection({
draft: z.boolean().optional(),
tags: z.array(z.string()).default(["others"]),
ogImage: image()
.refine(img => img.width >= 1200 && img.height >= 630, {
.refine((img) => img.width >= 1200 && img.height >= 630, {
message: "OpenGraph image must be at least 1200 X 630 pixels!",
})
.or(z.string())
@ -32,4 +32,22 @@ const blog = defineCollection({
}),
});
export const collections = { blog };
const snippets = defineCollection({
loader: glob({ pattern: "**/[^_]*.md", base: "./src/data/snippets" }),
schema: z.object({
title: z.string(),
pubDateime: z.date(),
modDatetime: z.date().nullable(),
tags: z.array(z.string()).nullable().default(["go"]),
description: z.string().optional(),
editPost: z
.object({
url: z.string().optional(),
text: z.string().optional(),
appendFilePath: z.boolean().optional(),
})
.optional(),
}),
});
export const collections = { blog, snippets };

View file

@ -0,0 +1,9 @@
---
pubDatetime: 2025-06-03
title: "Creating SOCKS5 proxy server with shadowsocks-rust and a cheap VPS"
description: Living in a motel room with dubious internet practices means one has to get creative.
tags:
- rust
- shadowsocks
- security
---

View file

@ -0,0 +1,49 @@
---
pubDatetime: 2025-06-23T04:34:01-04:00
title: "On Leisure"
description: Something happened on the way to suicide.
draft: false
featured: true
tags:
- personal
---
> [!DANGER] **Big time TW here**. The post is brief but contains _heavy_ topics. Skip this one if it'll trigger trauma for you.
Lately, I've not wanted to exist. And not just to _not_ exist, but to actively die. Not _commit_ suicide, but euthanize _myself_.
There are \*soooooooo many reasons& for this and I have a good team with me- a wonderful trauma therapist who is kind and an ally, a shrink who doesn't know me well but is working to get me back to pre-2012 me with more wisdom and a few more grey hairs, and a case manager who works as hard as any I've had in almost 20 years.
## Quick hitter
I am disabled. I suffer from some pretty debilitating mental illness and a life of traumas that started at my birth, with a teenage mom who was a drug addict and doing the _correct_ thing and giving me up for adoption. That's not the _whole_ origin story but it's part of it, and to keep things brief and civil for everyone I love who've been pivotal in my life that's where I'll end that.
Because my mom was on drugs, it is assumed she was also mentally ill; it's common to use drugs to self-medicate a chronic mental illness. This makes sense because I can recall being unwell from the age of 3 or 4 and really starting to become psychotic at 9 years old.
Depression would soon follow. Imagine being a nerd who just got a ton of popularity because she's manic and charismatic. Everyone _loves_ you. Your best friend watches from the outside as you ascend to _it girl_. But you miscalculate how bad you're suffering and you push the boundaries with your other friends. You're only in 8th grade, you're only 13, and so are all of the other people you know. You self harm, and to prevent that from continuing to happen, you give your friend all your knives.
That was a fatal mistake because the next day, the hammer comes down. That friend calls you insane, that she's not, and you need professional help, not hers.
The calls stop coming in. No one sits with you. You cry in _fucking class_ with your head down.
You've lost that clout. You've lost those friends[^1].
It is at this time you start to want to _end your life_.
Freshman year, you try it. It didn't work[^2].
And wanting to end your life is a struggle for the _rest_ of your life.
## Now you're caught up
Recently the urge to die has been so severe the people who work with my are actively campaigning to have my uncle remove all my knives from my room here. They know if I were to get my hands on a firearm, it's curtains.
Shit I am not even sure why I called this post On Leisure because I am fucking rambling.
I guess what I'm trying to say is that finding a way to stop pressuring myself to do things... ah fuck it. I'm tired.
I guess I just read more, play more video games, and watch more movies. There. Jesus Christ...
[^1]: Except my best friend from then, who I put through absolute hell as I was an insufferable, arrogant bastard of a kid who couldn't get out of her own way. She eventually bounced, too and lately the pain of that loss has returned and I ache heavy daily.
[^2]: I would have _certainly_ died if I'd have jumped off the overpass and onto the concrete bridge about 100 feet below. I felt like I would just break all my bones, so I stepped off that bridge.

11
src/data/blog/rtfm.md Normal file
View file

@ -0,0 +1,11 @@
---
pubDatetime: 2025-05-17
title: "RTFM"
description: Read the fucking manual, or how I learned to build my own dots.
featured: true
draft: true
tags:
- arch linux
- dotfiles
- hyprland
---

View file

@ -0,0 +1,9 @@
---
pubDatetime: 2025-06-04
title: "Using a systemd service to automate tasks on your server"
description: A couple of my servers don't need to be running 24/7 so I decided to automate the shutdown and restart of the servers at a certain interval.
tags:
- systemd
- servers
- services
---

View file

@ -0,0 +1,9 @@
---
pubDatetime: 2025-06-03
title: "Using Tailscale instead of Wireguard to tunnel into your VPS"
description: Tailscale makes ssh'ing into your servers remotely relatively easy, no Wireguard instance needed.
tags:
- tailscale
- wireguard
- security
---

4
src/pages/snippets.md Normal file
View file

@ -0,0 +1,4 @@
---
layout: ../layouts/Main.astro
title: "Snippets"
---

View file

@ -1,5 +1,6 @@
@import "tailwindcss";
@import "./typography.css";
@import "rehype-callouts/theme/obsidian";
@custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *));