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