feat: initial commit
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled

This commit is contained in:
Rudra Saraswat 2025-05-30 00:12:32 +01:00
commit 16dba10451
20 changed files with 3924 additions and 0 deletions

View file

@ -0,0 +1,2 @@
<a href="/">home</a>
<a href="/blog/">blog</a>

View file

@ -0,0 +1,27 @@
---
import { ClientRouter } from "astro:transitions";
import '@fontsource/jetbrains-mono';
import Header from '../components/Header.astro';
import '../styles/global.css';
const { pageTitle, pageCustomTitle = pageTitle } = Astro.props;
---
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" type="image/png" href="/favicon.png" />
<meta name="viewport" content="width=device-width" />
<meta name="generator" content={Astro.generator} />
<title>{pageCustomTitle} | ruds</title>
<ClientRouter />
</head>
<body>
<Header />
<h2>{pageTitle}</h2>
<slot />
</body>
</html>

View file

@ -0,0 +1,16 @@
---
import BaseLayout from './BaseLayout.astro';
const pageTitle = 'blog';
const { frontmatter } = Astro.props;
---
<BaseLayout pageTitle='blog' pageCustomTitle={frontmatter.title}>
<div style="text-align: left">
<h3>{frontmatter.title}</h3>
<p>Published on {frontmatter.pubDate.toString().slice(0,10)}.</p>
<p><em>{frontmatter.description}</em></p>
<hr>
<slot />
</div>
</BaseLayout>

23
src/pages/blog.astro Normal file
View file

@ -0,0 +1,23 @@
---
import BaseLayout from '../layouts/BaseLayout.astro';
import { getCollection, getEntry } from 'astro:content';
const pageTitle = 'blog';
const posts = await getCollection('posts');
console.log(posts)
const allPosts = Object.values(import.meta.glob('./posts/*.md', { eager: true }));
allPosts.sort((a, b) => new Date(b.frontmatter.pubDate) - new Date(a.frontmatter.pubDate));
---
<BaseLayout pageTitle={pageTitle}>
<p>ITT: the incoherent ramblings of an emo madman with a technological inclination.</p>
<hr>
<div style="text-align: left;">
<h2>posts</h2>
<ul>
{allPosts.map((post: any) => <li><a href={post.url}>{post.frontmatter.title}</a> — <em>published on {post.frontmatter.pubDate.toString().slice(0, 10)}</em></li>)}
</ul>
</div>
</BaseLayout>

151
src/pages/index.astro Normal file
View file

@ -0,0 +1,151 @@
---
import BaseLayout from '../layouts/BaseLayout.astro';
const pageTitle = 'home';
---
<BaseLayout pageTitle={pageTitle}>
<style>
.container {
display: flex;
gap: 2em;
font-size: 0.8em;
}
.col {
display: flex;
flex-direction: column;
gap: 2em;
}
.col-left {
flex: 1;
min-width: 250px;
max-width: 350px;
}
.col-right {
flex: 2;
}
.row {
padding: 1.5em;
}
.col-left > .row {
background-color: rgba(0, 0, 0, 0.5);
}
.col-right > .row {
background-color: rgba(0, 0, 0, 0.3);
}
/* Mobile: Stack the columns */
@media screen and (max-width: 900px) {
.container {
flex-direction: column;
font-size: 0.9em;
}
.col-left {
max-width: 100%;
}
}
h3 {
margin-top: 0;
}
p {
margin-bottom: 0;
}
td {
vertical-align: top;
}
td:first-child {
font-weight: bold;
}
</style>
<div class="container">
<div class="col col-left">
<div class="row">
<div style="display: flex; flex-direction: horizontal; gap: 2em;">
<img src="/me.jpg" height="150px" width="120px">
<div>
<h3>˙⋆✮ ruds ✮⋆˙</h3>
<p>"rm -rf /"</p>
<p>15 y/o</p>
<p>linux nerd</p>
<p>emo/alt</p>
</div>
</div>
</div>
<div class="row">
<h3>interests</h3>
<table class="details-table" cellspacing="3" cellpadding="3">
<tbody>
<tr>
<td><p>General</p></td>
<td><p>technology, Linux, minecraft, servers/homelabs, emo/pop-punk/scene music</p></td>
</tr>
<tr>
<td><p>Music</p></td>
<td><p>MCR, Green Day, The Offspring, American Football, Taking Back Sunday, Jimmy Eat World, underscores, deadmau5, Billie Eilish and the list goes on...</p></td>
</tr>
<tr>
<td><p>Hobbies</p></td>
<td><p>lawn tennis, politics, tinkering, writing, playing the tabla, and politics once again :P</p></td>
</tr>
</tbody>
</table>
</div>
<div class="row">
<h3>socials</h3>
<p><a href="https://github.com/RudraSwat">GitHub</a>: RudraSwat</p>
<p><a href="https://x.com/@RudraSaraswat1">X(itter)</a>: @RudraSaraswat1 (not active)</p>
<p><a href="https://fosstodon.org/@rs2009">Mastodon</a>: @rs2009@fosstodon.org</p>
<p><a href="mailto:rs2009@ruds.io">Email</a>: rs2009@ruds.io or rs2009@ubuntu.com</p>
<p>IRC (Libera): rs2009</p>
</div>
<div class="row">
<h3>RSS</h3>
<a href="https://ruds.io/rss.xml">https://ruds.io/rss.xml</a>
</div>
</div>
<div class="col col-right">
<div class="row">
<h3>info</h3>
<p>this website was designed to replicate the appearance of the MySpace pages of yesteryear. however, I do also have a <a href="https://spacehey.com/ruds">SpaceHey</a> page; that might be worth a look too!</p>
<p>more information about my professional endeavours can be found on <a href="https://about.ruds.io">my other page</a>.</p>
</div>
<div class="row">
<h3>about me</h3>
<p>hi! I'm just your local 15-year-old with some nerdy tendencies — these include a love for anything and everything technology (GNU/Linux in particular) and a liking for pop-punk and emo music (and emo/scene culture)!</p>
</div>
<div class="row">
<h3>projects (& past projects)</h3>
<p><a href="https://blendos.co">blendOS</a>: an atomic and immutable Linux distribution</p>
<p><a href="https://ubuntuunity.org">Ubuntu Unity</a>: a flavour of Ubuntu that uses the Unity desktop environment</p>
<p><a href="https://x.com/ubunweb">Ubuntu Web</a>: a privacy-respecting ChromeOS alternative</p>
<p><a href="https://github.com/AFK-OS/una">una</a>: a client for the makedeb Package Repository</p>
<p><a href="https://www.forbes.com/sites/jasonevangelho/2022/01/31/linux-gaming-gets-a-big-boost-from-a-12-year-old-ubuntu-developer/">Gamebuntu</a>: a utility to set up a gaming environment on Ubuntu</p>
<p><a href="https://github.com/RudraSwat/modren">Modren</a>: a modern Linux store</p>
<p><a href="https://x.com/ed_ubuntu">UbuntuEd</a>: an educational Ubuntu remix (superseded by Edubuntu)</p>
</div>
</div>
</div>
</BaseLayout>

View file

@ -0,0 +1,12 @@
---
layout: '../../layouts/PostLayout.astro'
title: First post!
pubDate: 2025-05-30
description: 'A fresh start — once again.'
author: 'ruds'
tags: ['general']
---
Ill let you in on a little secret: I have no clue what I ought to write here.
Is a new blog a cause for celebration? I think not, but hey, one might as well celebrate it nonetheless :p

11
src/pages/rss.xml.js Normal file
View file

@ -0,0 +1,11 @@
import rss, { pagesGlobToRssItems } from '@astrojs/rss';
export async function GET(context) {
return rss({
title: 'ruds | blog',
description: 'The incoherent ramblings of an emo madman with a technological inclination.',
site: context.site,
items: await pagesGlobToRssItems(import.meta.glob('./posts/*.md')),
customData: `<language>en-us</language>`,
});
}

42
src/styles/global.css Normal file
View file

@ -0,0 +1,42 @@
html {
background-color: #4a0317;
background-image: url("https://www.transparenttextures.com/patterns/dark-wood.png");
background-repeat: repeat;
background-attachment: fixed;
background-position: center center;
color: white;
min-width: 350px;
}
body {
margin: 0 auto;
width: 100%;
max-width: 900px;
padding: 1rem;
line-height: 1.25;
font-size: 0.9em;
font-family: 'JetBrains Mono', monospace;
}
* {
box-sizing: border-box;
}
h1 {
margin: 1rem 0;
font-size: 2.5rem;
}
.astro-code {
padding: 0.5rem;
border-radius: 0.25rem;
}
a,a:visited {
color: lightgray;
}
a:hover {
color: gray;
}