feat: initial commit
This commit is contained in:
commit
16dba10451
20 changed files with 3924 additions and 0 deletions
39
.github/workflows/deploy.yml
vendored
Normal file
39
.github/workflows/deploy.yml
vendored
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
name: Deploy to GitHub Pages
|
||||||
|
|
||||||
|
on:
|
||||||
|
# Trigger the workflow every time you push to the `main` branch
|
||||||
|
# Using a different branch name? Replace `main` with your branch’s name
|
||||||
|
push:
|
||||||
|
branches: [ main ]
|
||||||
|
# Allows you to run this workflow manually from the Actions tab on GitHub.
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
# Allow this job to clone the repo and create a page deployment
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout your repository using git
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install, build, and upload your site
|
||||||
|
uses: withastro/action@v3
|
||||||
|
# with:
|
||||||
|
# path: . # The root location of your Astro project inside the repository. (optional)
|
||||||
|
# node-version: 20 # The specific version of Node that should be used to build your site. Defaults to 20. (optional)
|
||||||
|
# package-manager: pnpm@latest # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional)
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
needs: build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
steps:
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v4
|
24
.gitignore
vendored
Normal file
24
.gitignore
vendored
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# build output
|
||||||
|
dist/
|
||||||
|
# generated types
|
||||||
|
.astro/
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# logs
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
|
||||||
|
|
||||||
|
# environment variables
|
||||||
|
.env
|
||||||
|
.env.production
|
||||||
|
|
||||||
|
# macOS-specific files
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# jetbrains setting folder
|
||||||
|
.idea/
|
4
.vscode/extensions.json
vendored
Normal file
4
.vscode/extensions.json
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"recommendations": ["astro-build.astro-vscode"],
|
||||||
|
"unwantedRecommendations": []
|
||||||
|
}
|
11
.vscode/launch.json
vendored
Normal file
11
.vscode/launch.json
vendored
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"command": "./node_modules/.bin/astro dev",
|
||||||
|
"name": "Development server",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "node-terminal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
121
LICENSE
Normal file
121
LICENSE
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
Creative Commons Legal Code
|
||||||
|
|
||||||
|
CC0 1.0 Universal
|
||||||
|
|
||||||
|
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
|
||||||
|
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
|
||||||
|
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
|
||||||
|
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
|
||||||
|
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
|
||||||
|
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
|
||||||
|
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
|
||||||
|
HEREUNDER.
|
||||||
|
|
||||||
|
Statement of Purpose
|
||||||
|
|
||||||
|
The laws of most jurisdictions throughout the world automatically confer
|
||||||
|
exclusive Copyright and Related Rights (defined below) upon the creator
|
||||||
|
and subsequent owner(s) (each and all, an "owner") of an original work of
|
||||||
|
authorship and/or a database (each, a "Work").
|
||||||
|
|
||||||
|
Certain owners wish to permanently relinquish those rights to a Work for
|
||||||
|
the purpose of contributing to a commons of creative, cultural and
|
||||||
|
scientific works ("Commons") that the public can reliably and without fear
|
||||||
|
of later claims of infringement build upon, modify, incorporate in other
|
||||||
|
works, reuse and redistribute as freely as possible in any form whatsoever
|
||||||
|
and for any purposes, including without limitation commercial purposes.
|
||||||
|
These owners may contribute to the Commons to promote the ideal of a free
|
||||||
|
culture and the further production of creative, cultural and scientific
|
||||||
|
works, or to gain reputation or greater distribution for their Work in
|
||||||
|
part through the use and efforts of others.
|
||||||
|
|
||||||
|
For these and/or other purposes and motivations, and without any
|
||||||
|
expectation of additional consideration or compensation, the person
|
||||||
|
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
|
||||||
|
is an owner of Copyright and Related Rights in the Work, voluntarily
|
||||||
|
elects to apply CC0 to the Work and publicly distribute the Work under its
|
||||||
|
terms, with knowledge of his or her Copyright and Related Rights in the
|
||||||
|
Work and the meaning and intended legal effect of CC0 on those rights.
|
||||||
|
|
||||||
|
1. Copyright and Related Rights. A Work made available under CC0 may be
|
||||||
|
protected by copyright and related or neighboring rights ("Copyright and
|
||||||
|
Related Rights"). Copyright and Related Rights include, but are not
|
||||||
|
limited to, the following:
|
||||||
|
|
||||||
|
i. the right to reproduce, adapt, distribute, perform, display,
|
||||||
|
communicate, and translate a Work;
|
||||||
|
ii. moral rights retained by the original author(s) and/or performer(s);
|
||||||
|
iii. publicity and privacy rights pertaining to a person's image or
|
||||||
|
likeness depicted in a Work;
|
||||||
|
iv. rights protecting against unfair competition in regards to a Work,
|
||||||
|
subject to the limitations in paragraph 4(a), below;
|
||||||
|
v. rights protecting the extraction, dissemination, use and reuse of data
|
||||||
|
in a Work;
|
||||||
|
vi. database rights (such as those arising under Directive 96/9/EC of the
|
||||||
|
European Parliament and of the Council of 11 March 1996 on the legal
|
||||||
|
protection of databases, and under any national implementation
|
||||||
|
thereof, including any amended or successor version of such
|
||||||
|
directive); and
|
||||||
|
vii. other similar, equivalent or corresponding rights throughout the
|
||||||
|
world based on applicable law or treaty, and any national
|
||||||
|
implementations thereof.
|
||||||
|
|
||||||
|
2. Waiver. To the greatest extent permitted by, but not in contravention
|
||||||
|
of, applicable law, Affirmer hereby overtly, fully, permanently,
|
||||||
|
irrevocably and unconditionally waives, abandons, and surrenders all of
|
||||||
|
Affirmer's Copyright and Related Rights and associated claims and causes
|
||||||
|
of action, whether now known or unknown (including existing as well as
|
||||||
|
future claims and causes of action), in the Work (i) in all territories
|
||||||
|
worldwide, (ii) for the maximum duration provided by applicable law or
|
||||||
|
treaty (including future time extensions), (iii) in any current or future
|
||||||
|
medium and for any number of copies, and (iv) for any purpose whatsoever,
|
||||||
|
including without limitation commercial, advertising or promotional
|
||||||
|
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
|
||||||
|
member of the public at large and to the detriment of Affirmer's heirs and
|
||||||
|
successors, fully intending that such Waiver shall not be subject to
|
||||||
|
revocation, rescission, cancellation, termination, or any other legal or
|
||||||
|
equitable action to disrupt the quiet enjoyment of the Work by the public
|
||||||
|
as contemplated by Affirmer's express Statement of Purpose.
|
||||||
|
|
||||||
|
3. Public License Fallback. Should any part of the Waiver for any reason
|
||||||
|
be judged legally invalid or ineffective under applicable law, then the
|
||||||
|
Waiver shall be preserved to the maximum extent permitted taking into
|
||||||
|
account Affirmer's express Statement of Purpose. In addition, to the
|
||||||
|
extent the Waiver is so judged Affirmer hereby grants to each affected
|
||||||
|
person a royalty-free, non transferable, non sublicensable, non exclusive,
|
||||||
|
irrevocable and unconditional license to exercise Affirmer's Copyright and
|
||||||
|
Related Rights in the Work (i) in all territories worldwide, (ii) for the
|
||||||
|
maximum duration provided by applicable law or treaty (including future
|
||||||
|
time extensions), (iii) in any current or future medium and for any number
|
||||||
|
of copies, and (iv) for any purpose whatsoever, including without
|
||||||
|
limitation commercial, advertising or promotional purposes (the
|
||||||
|
"License"). The License shall be deemed effective as of the date CC0 was
|
||||||
|
applied by Affirmer to the Work. Should any part of the License for any
|
||||||
|
reason be judged legally invalid or ineffective under applicable law, such
|
||||||
|
partial invalidity or ineffectiveness shall not invalidate the remainder
|
||||||
|
of the License, and in such case Affirmer hereby affirms that he or she
|
||||||
|
will not (i) exercise any of his or her remaining Copyright and Related
|
||||||
|
Rights in the Work or (ii) assert any associated claims and causes of
|
||||||
|
action with respect to the Work, in either case contrary to Affirmer's
|
||||||
|
express Statement of Purpose.
|
||||||
|
|
||||||
|
4. Limitations and Disclaimers.
|
||||||
|
|
||||||
|
a. No trademark or patent rights held by Affirmer are waived, abandoned,
|
||||||
|
surrendered, licensed or otherwise affected by this document.
|
||||||
|
b. Affirmer offers the Work as-is and makes no representations or
|
||||||
|
warranties of any kind concerning the Work, express, implied,
|
||||||
|
statutory or otherwise, including without limitation warranties of
|
||||||
|
title, merchantability, fitness for a particular purpose, non
|
||||||
|
infringement, or the absence of latent or other defects, accuracy, or
|
||||||
|
the present or absence of errors, whether or not discoverable, all to
|
||||||
|
the greatest extent permissible under applicable law.
|
||||||
|
c. Affirmer disclaims responsibility for clearing rights of other persons
|
||||||
|
that may apply to the Work or any use thereof, including without
|
||||||
|
limitation any person's Copyright and Related Rights in the Work.
|
||||||
|
Further, Affirmer disclaims responsibility for obtaining any necessary
|
||||||
|
consents, permissions or other rights required for any use of the
|
||||||
|
Work.
|
||||||
|
d. Affirmer understands and acknowledges that Creative Commons is not a
|
||||||
|
party to this document and has no duty or obligation with respect to
|
||||||
|
this CC0 or use of the Work.
|
47
README.md
Normal file
47
README.md
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
# Astro Starter Kit: Minimal
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm create astro@latest -- --template minimal
|
||||||
|
```
|
||||||
|
|
||||||
|
[](https://stackblitz.com/github/withastro/astro/tree/latest/examples/minimal)
|
||||||
|
[](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/minimal)
|
||||||
|
[](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/minimal/devcontainer.json)
|
||||||
|
|
||||||
|
> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun!
|
||||||
|
|
||||||
|
## 🚀 Project Structure
|
||||||
|
|
||||||
|
Inside of your Astro project, you'll see the following folders and files:
|
||||||
|
|
||||||
|
```text
|
||||||
|
/
|
||||||
|
├── public/
|
||||||
|
├── src/
|
||||||
|
│ └── pages/
|
||||||
|
│ └── index.astro
|
||||||
|
└── package.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
|
||||||
|
|
||||||
|
There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
|
||||||
|
|
||||||
|
Any static assets, like images, can be placed in the `public/` directory.
|
||||||
|
|
||||||
|
## 🧞 Commands
|
||||||
|
|
||||||
|
All commands are run from the root of the project, from a terminal:
|
||||||
|
|
||||||
|
| Command | Action |
|
||||||
|
| :------------------------ | :----------------------------------------------- |
|
||||||
|
| `npm install` | Installs dependencies |
|
||||||
|
| `npm run dev` | Starts local dev server at `localhost:4321` |
|
||||||
|
| `npm run build` | Build your production site to `./dist/` |
|
||||||
|
| `npm run preview` | Preview your build locally, before deploying |
|
||||||
|
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
|
||||||
|
| `npm run astro -- --help` | Get help using the Astro CLI |
|
||||||
|
|
||||||
|
## 👀 Want to learn more?
|
||||||
|
|
||||||
|
Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
|
7
astro.config.mjs
Normal file
7
astro.config.mjs
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
// @ts-check
|
||||||
|
import { defineConfig } from 'astro/config';
|
||||||
|
|
||||||
|
// https://astro.build/config
|
||||||
|
export default defineConfig({
|
||||||
|
site: 'https://ruds.io'
|
||||||
|
});
|
3366
package-lock.json
generated
Normal file
3366
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
16
package.json
Normal file
16
package.json
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"name": "ruds.io",
|
||||||
|
"type": "module",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "astro dev",
|
||||||
|
"build": "astro build",
|
||||||
|
"preview": "astro preview",
|
||||||
|
"astro": "astro"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@astrojs/rss": "^4.0.11",
|
||||||
|
"@fontsource/jetbrains-mono": "^5.2.5",
|
||||||
|
"astro": "^5.7.5"
|
||||||
|
}
|
||||||
|
}
|
BIN
public/favicon.png
Normal file
BIN
public/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.2 KiB |
BIN
public/me.jpg
Normal file
BIN
public/me.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 MiB |
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;
|
||||||
|
}
|
5
tsconfig.json
Normal file
5
tsconfig.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"extends": "astro/tsconfigs/strict",
|
||||||
|
"include": [".astro/types.d.ts", "**/*"],
|
||||||
|
"exclude": ["dist"]
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue