This commit is contained in:
Hunter 2024-12-15 17:33:44 -05:00
commit 5d81c423d8
23 changed files with 1899 additions and 0 deletions

23
.gitignore vendored Normal file
View file

@ -0,0 +1,23 @@
node_modules
# Output
.output
.vercel
.netlify
.wrangler
/.svelte-kit
/build
# OS
.DS_Store
Thumbs.db
# Env
.env
.env.*
!.env.example
!.env.test
# Vite
vite.config.js.timestamp-*
vite.config.ts.timestamp-*

1
.npmrc Normal file
View file

@ -0,0 +1 @@
engine-strict=true

4
.prettierignore Normal file
View file

@ -0,0 +1,4 @@
# Package Managers
package-lock.json
pnpm-lock.yaml
yarn.lock

15
.prettierrc Normal file
View file

@ -0,0 +1,15 @@
{
"useTabs": true,
"singleQuote": true,
"trailingComma": "none",
"printWidth": 100,
"plugins": ["prettier-plugin-svelte"],
"overrides": [
{
"files": "*.svelte",
"options": {
"parser": "svelte"
}
}
]
}

38
README.md Normal file
View file

@ -0,0 +1,38 @@
# sv
Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli).
## Creating a project
If you're seeing this, you've probably already done this step. Congrats!
```bash
# create a new project in the current directory
npx sv create
# create a new project in my-app
npx sv create my-app
```
## Developing
Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
```bash
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
```
## Building
To create a production version of your app:
```bash
npm run build
```
You can preview the production build with `npm run preview`.
> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.

1525
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

27
package.json Normal file
View file

@ -0,0 +1,27 @@
{
"name": "hunterstasonis.com",
"private": true,
"version": "0.0.1",
"type": "module",
"scripts": {
"dev": "vite dev",
"build": "vite build",
"preview": "vite preview",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"format": "prettier --write .",
"lint": "prettier --check ."
},
"devDependencies": {
"@sveltejs/adapter-auto": "^3.0.0",
"@sveltejs/adapter-static": "^3.0.6",
"@sveltejs/kit": "^2.9.0",
"@sveltejs/vite-plugin-svelte": "^5.0.0",
"prettier": "^3.3.2",
"prettier-plugin-svelte": "^3.2.6",
"svelte": "^5.0.0",
"svelte-check": "^4.0.0",
"typescript": "^5.0.0",
"vite": "^6.0.0"
}
}

13
src/app.d.ts vendored Normal file
View file

@ -0,0 +1,13 @@
// See https://svelte.dev/docs/kit/types#app.d.ts
// for information about these interfaces
declare global {
namespace App {
// interface Error {}
// interface Locals {}
// interface PageData {}
// interface PageState {}
// interface Platform {}
}
}
export {};

13
src/app.html Normal file
View file

@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/assets/css/styles.css">
%sveltekit.head%
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">%sveltekit.body%</div>
</body>
</html>

10
src/lib/Navbar.svelte Normal file
View file

@ -0,0 +1,10 @@
<div class="navbar">
<a href="/" class="no-link">Hunter Stasonis</a>
<b><a href="/projects">Projects</a></b>
<b><a href="/system">System Setup</a></b>
<b><a href="https://github.com/Interfiber">GitHub</a></b>
<b><a href="https://bsky.app/profile/interfiber.bsky.social">Bluesky</a></b>
<b><a href="mailto:hunter@stasonis.com">Email</a></b>
<b><a href="/about">About</a></b>
</div>

5
src/lib/PageRoot.svelte Normal file
View file

@ -0,0 +1,5 @@
<script>
import Navbar from "./Navbar.svelte";
</script>
<Navbar></Navbar>

View file

@ -0,0 +1,5 @@
<script lang="ts">
let props = $props();
</script>
<img src={props.url} alt="Profile" class="pfp" />

1
src/lib/index.ts Normal file
View file

@ -0,0 +1 @@
// place files you want to import through the `$lib` alias in this folder.

1
src/routes/+layout.ts Normal file
View file

@ -0,0 +1 @@
export const prerender = true;

24
src/routes/+page.svelte Normal file
View file

@ -0,0 +1,24 @@
<script>
import PageRoot from '$lib/PageRoot.svelte';
import ProfilePicture from '$lib/ProfilePicture.svelte';
</script>
<PageRoot></PageRoot>
<ProfilePicture url="https://github.com/Interfiber.png"></ProfilePicture>
<h1># Hunter S.</h1>
<p>👋 Hi! I'm Hunter. My profile picture is from Logan Airport</p>
<p>I've been programming for ~6 years, mainly with C++, Java, Rust, and Lua</p>
<br>
<h2>## Who you should donate to</h2>
<p>This is a semi-maintained list of people/orgs which I see great value in, and donate to on a monthly basis</p>
<p></p>
<ul>
<li><a href="https://signal.org/donate/">Signal</a> End-to-end encrypted messaging application. Basically the #1 secure, cross-platform messaging application</li>
<li><a href="https://kde.org/donate/">KDE</a> Open-source desktop environment for GNU/Linux. The DE I use every day for hours on end</li>
<li><a href="https://transitmatters.org/donate">Transitmatters</a> Transit-advocacy group based in Boston. I like it when trains work</li>
<li><a href="https://bandcamp.com">Bandcamp</a> Support independent artists. Spotify gives them basically nothing</li>
</ul>

View file

@ -0,0 +1,13 @@
<script>
import PageRoot from '$lib/PageRoot.svelte';
</script>
<PageRoot></PageRoot>
<h1># About me</h1>
<p>I'm Hunter, I'm 16 years old an have been programming for ~6 years</p>
<p>The first computer I ever had was a shared iMac running MacOS High Sierra, and ever since then I've been interested in computers/programming</p>
<p>Besides computers I like engineering, public transit, and radio communication stuff</p>
<h2>## Contact</h2>
<p>All my main contact methods are in the navigation menu below. My other accounts are listed below</p>

View file

@ -0,0 +1,34 @@
<script>
import PageRoot from '$lib/PageRoot.svelte';
</script>
<PageRoot></PageRoot>
<h1># Projects</h1>
<p>Here are some of the projects I am currently, or was working on</p>
<br>
<h2>## Blade3 <a href="https://blade3.xyz">[site]</a></h2>
<p>Blade3 is a tool to forward local services to remote servers over a secure tunnel</p>
<br>
<h2>## RobloxMidi <a href="https://github.com/Interfiber/rbxmidi">[github]</a></h2>
<p>RobloxMidi, or RBXMidi for short, is a tool for playing Roblox pianos using a physical midi keyboard</p>
<br>
<h2>## Wildcat <a href="https://www.interfiber.dev/Wildcat">[site]</a></h2>
<p>Wildcat is a Uniden BC125AT programmer for Linux</p>
<br>
<h2>## Fusion <i>[private]</i></h2>
<p>Fusion is a C++ game engine built on top of the Vulkan GPU API</p>
<p>Fusion has been a multi-year project for me, and I hope to ship a game with it in the future</p>
<br>
<h2>## Hotwire <a href="https://github.com/IBAtechSoftware/Hotwire">[github]</a></h2>
<p>Hotwire is a cross-platform wrapper over native dynamic library loading APIs</p>
<p>Since Hotwire has such a thin wrapper over native code, it offers a near drop-in replacement for the unix dlopen API, even on Win32!</p>

View file

@ -0,0 +1,26 @@
<script>
import PageRoot from '$lib/PageRoot.svelte';
</script>
<PageRoot></PageRoot>
<h1># System Setup</h1>
<p>Hardware, and software I use</p>
<br>
<h2>## Hardware</h2>
<ul>
<li>CPU: Ryzen 5 5600G</li>
<li>GPU: AMD RX 580</li>
<li>Hardware Security Key: YubiKey 5 NFC</li>
<li>Keyboard: 8BitDo retro keyboard (C64 edition)</li>
</ul>
<h2>## Software</h2>
<ul>
<li>Operating System: Fedora 41</li>
<li>Desktop Environment: KDE Plasma 6</li>
<li>Browser: Firefox + Geckium</li>
<li>Shell: bash, or tcsh</li>
<li>Editor: Visual Studio Code</li>
</ul>

View file

@ -0,0 +1,78 @@
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap');
:root {
font-family: "IBM Plex Mono", monospace;
font-style: normal;
font-variation-settings:
"wdth" 100;
--background-color: #111111;
--foreground-color: rgb(255, 255, 255);
--shadow-color: rgb(0, 0, 0);
--link-color: #0096a7;
}
body {
background-color: var(--background-color);
color: var(--foreground-color);
margin: 2rem;
padding-top: 2%;
}
.navbar {
position: fixed;
left: 0;
bottom: 0;
float: left;
background-color: var(--background-color);
border-radius: 5px;
border-style: solid;
border-width: 2px;
border-color: #4CAE4F;
margin: 2%;
filter: drop-shadow(0px 10px 30px var(--shadow-color));
}
.navbar a {
float: left;
display: block;
color: var(--link-color);
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
main {
padding: 40px;
color: var(--primary-color);
}
hr {
border-top: 8px solid var(--foreground-color);
width: 20%;
max-width: 100%;
margin: 0;
border-radius: 5px;
}
p {
font-size: 18px;
}
.pfp {
border-radius: 50%;
width: 10%;
}
a {
text-decoration: none;
color: var(--link-color);
}

BIN
static/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

18
svelte.config.js Normal file
View file

@ -0,0 +1,18 @@
import adapter from '@sveltejs/adapter-static';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
/** @type {import('@sveltejs/kit').Config} */
const config = {
// Consult https://svelte.dev/docs/kit/integrations
// for more information about preprocessors
preprocess: vitePreprocess(),
kit: {
// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
adapter: adapter()
}
};
export default config;

19
tsconfig.json Normal file
View file

@ -0,0 +1,19 @@
{
"extends": "./.svelte-kit/tsconfig.json",
"compilerOptions": {
"allowJs": true,
"checkJs": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"moduleResolution": "bundler"
}
// Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias
// except $lib which is handled by https://svelte.dev/docs/kit/configuration#files
//
// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
// from the referenced tsconfig.json - TypeScript does not merge them in
}

6
vite.config.ts Normal file
View file

@ -0,0 +1,6 @@
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [sveltekit()]
});