feat: initial commit
This commit is contained in:
commit
16dba10451
20 changed files with 3924 additions and 0 deletions
2
src/components/Header.astro
Normal file
2
src/components/Header.astro
Normal file
|
@ -0,0 +1,2 @@
|
|||
<a href="/">home</a>
|
||||
<a href="/blog/">blog</a>
|
27
src/layouts/BaseLayout.astro
Normal file
27
src/layouts/BaseLayout.astro
Normal 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>
|
16
src/layouts/PostLayout.astro
Normal file
16
src/layouts/PostLayout.astro
Normal 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
23
src/pages/blog.astro
Normal 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
151
src/pages/index.astro
Normal 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>
|
||||
|
12
src/pages/posts/first-post.md
Normal file
12
src/pages/posts/first-post.md
Normal 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']
|
||||
---
|
||||
|
||||
I’ll 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
11
src/pages/rss.xml.js
Normal 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
42
src/styles/global.css
Normal 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;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue