site v3
/ build (push) Has been cancelled
Details
/ build (push) Has been cancelled
Details
This commit is contained in:
parent
c7729358d3
commit
6f269c18b7
|
@ -0,0 +1,14 @@
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: docker
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Install nodejs
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm i
|
||||||
|
- name: Build static bundle
|
||||||
|
run: npm run build
|
39
README.md
39
README.md
|
@ -1,38 +1,3 @@
|
||||||
# create-svelte
|
# coredoesdev
|
||||||
|
|
||||||
Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
|
core's personal site & portfolio
|
||||||
|
|
||||||
## 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
|
|
||||||
npm create svelte@latest
|
|
||||||
|
|
||||||
# create a new project in my-app
|
|
||||||
npm create svelte@latest 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://kit.svelte.dev/docs/adapters) for your target environment.
|
|
||||||
|
|
42
package.json
42
package.json
|
@ -12,25 +12,31 @@
|
||||||
"format": "prettier --plugin-search-dir . --write ."
|
"format": "prettier --plugin-search-dir . --write ."
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sveltejs/adapter-auto": "^2.0.0",
|
"@bitmachina/highlighter": "1.0.0-alpha.5",
|
||||||
"@sveltejs/adapter-cloudflare": "^2.3.0",
|
"@sveltejs/adapter-auto": "^3.1.1",
|
||||||
"@sveltejs/adapter-static": "^2.0.2",
|
"@sveltejs/adapter-cloudflare": "^4.1.0",
|
||||||
"@sveltejs/kit": "^1.5.0",
|
"@sveltejs/adapter-static": "^3.0.1",
|
||||||
"@types/prismjs": "^1.26.0",
|
"@sveltejs/kit": "^2.5.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.45.0",
|
"@sveltejs/vite-plugin-svelte": "^3.0.0",
|
||||||
"@typescript-eslint/parser": "^5.45.0",
|
"@types/prismjs": "^1.26.3",
|
||||||
"eslint": "^8.28.0",
|
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
||||||
"eslint-config-prettier": "^8.5.0",
|
"@typescript-eslint/parser": "^6.21.0",
|
||||||
"eslint-plugin-svelte": "^2.26.0",
|
"eslint": "^8.56.0",
|
||||||
|
"eslint-config-prettier": "^9.1.0",
|
||||||
|
"eslint-plugin-svelte": "^2.35.1",
|
||||||
"mdsvex": "^0.11.0",
|
"mdsvex": "^0.11.0",
|
||||||
"prettier": "^2.8.0",
|
"prettier": "^3.2.5",
|
||||||
"prettier-plugin-svelte": "^2.8.1",
|
"prettier-plugin-svelte": "^3.1.2",
|
||||||
"prismjs": "^1.29.0",
|
"prismjs": "^1.29.0",
|
||||||
"svelte": "^3.54.0",
|
"svelte": "^4.2.10",
|
||||||
"svelte-check": "^3.0.1",
|
"svelte-check": "^3.6.3",
|
||||||
"tslib": "^2.4.1",
|
"tslib": "^2.6.2",
|
||||||
"typescript": "^5.0.0",
|
"typescript": "^5.3.3",
|
||||||
"vite": "^4.3.0"
|
"vite": "^5.0.12"
|
||||||
},
|
},
|
||||||
"type": "module"
|
"type": "module",
|
||||||
|
"dependencies": {
|
||||||
|
"lucide-svelte": "^0.323.0",
|
||||||
|
"shiki": "1.0.0-rc.0"
|
||||||
|
}
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -7,6 +7,6 @@
|
||||||
%sveltekit.head%
|
%sveltekit.head%
|
||||||
</head>
|
</head>
|
||||||
<body data-sveltekit-preload-data="hover">
|
<body data-sveltekit-preload-data="hover">
|
||||||
<div style="display: contents">%sveltekit.body%</div>
|
<div style="display: contents; position: absolute;">%sveltekit.body%</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,99 +0,0 @@
|
||||||
<script lang="ts">
|
|
||||||
export let selected;
|
|
||||||
|
|
||||||
let pages = [
|
|
||||||
{id: "home", href: "/"},
|
|
||||||
{id: "projects", href: "/projects"},
|
|
||||||
{id: "about", href: "/about"},
|
|
||||||
{id: "contact", href: "/contact"},
|
|
||||||
{id: "blog", href: "/blog"}
|
|
||||||
]
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div class="bar">
|
|
||||||
<img alt="logo" src="/img/logo.png" class="logo" />
|
|
||||||
<div class="bar-right">
|
|
||||||
<nav class="nav">
|
|
||||||
<ul class="menu">
|
|
||||||
{#each pages as page}
|
|
||||||
{#if page.id === selected}
|
|
||||||
<li class="item"><a href="{page.href}" class="link selected">{page.id}();</a></li>
|
|
||||||
{:else}
|
|
||||||
<li class="item"><a href="{page.href}" class="link gradienthover">{page.id}();</a></li>
|
|
||||||
{/if}
|
|
||||||
{/each}
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.bar {
|
|
||||||
width: 100%;
|
|
||||||
height: 60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.checkbox {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bar-right {
|
|
||||||
float: right;
|
|
||||||
margin-top: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
text-decoration: none;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.selected {
|
|
||||||
color: #585b5f;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
list-style: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 500px) {
|
|
||||||
li {
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media only screen and (min-width: 500px) {
|
|
||||||
.item {
|
|
||||||
display: inline;
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
.hideonlarge {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.gradienthover:hover {
|
|
||||||
background-image: var(--core-gradient);
|
|
||||||
background-clip: text;
|
|
||||||
color: transparent;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-size: 100%;
|
|
||||||
background-repeat: repeat;
|
|
||||||
}
|
|
||||||
.item {
|
|
||||||
padding: 2px;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,19 +0,0 @@
|
||||||
<script lang="ts">
|
|
||||||
export let offset = "35";
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
<div style="--offset:{offset};" class="content-text">
|
|
||||||
<slot></slot>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
@media only screen and (min-width: 500px) {
|
|
||||||
.content-text {
|
|
||||||
position: absolute;
|
|
||||||
top: calc(var(--offset) * 1%);
|
|
||||||
margin-left: 3.5%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,37 +0,0 @@
|
||||||
<script lang="ts">
|
|
||||||
export let title;
|
|
||||||
export let published;
|
|
||||||
export let description;
|
|
||||||
export let url;
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<a class="blog-link" href="{url}">
|
|
||||||
<h2 class="blog-title">{title}</h2>
|
|
||||||
<time>{new Date(published).toLocaleDateString()}</time>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<p class="blog-description">{description}</p>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.blog-title {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blog-link {
|
|
||||||
text-decoration: none;
|
|
||||||
text-decoration-color: transparent;
|
|
||||||
color: white;
|
|
||||||
transition: 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blog-link:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
text-decoration-color: white;
|
|
||||||
transition: 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blog-description {
|
|
||||||
font-size: 11pt;
|
|
||||||
color: #ababab;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -4,7 +4,7 @@
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/fonts/firacode/woff2/firacode_cyrillic-ext.woff2) format('woff2');
|
src: url(/firacode/woff2/firacode_cyrillic-ext.woff2) format('woff2');
|
||||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||||
}
|
}
|
||||||
/* cyrillic */
|
/* cyrillic */
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/fonts/firacode/woff2/firacode_cyrillic.woff2) format('woff2');
|
src: url(/firacode/woff2/firacode_cyrillic.woff2) format('woff2');
|
||||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||||
}
|
}
|
||||||
/* greek-ext */
|
/* greek-ext */
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/fonts/firacode/woff2/firacode_greek-ext.woff2) format('woff2');
|
src: url(/firacode/woff2/firacode_greek-ext.woff2) format('woff2');
|
||||||
unicode-range: U+1F00-1FFF;
|
unicode-range: U+1F00-1FFF;
|
||||||
}
|
}
|
||||||
/* greek */
|
/* greek */
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/fonts/firacode/woff2/firacode_greek.woff2) format('woff2');
|
src: url(/firacode/woff2/firacode_greek.woff2) format('woff2');
|
||||||
unicode-range: U+0370-03FF;
|
unicode-range: U+0370-03FF;
|
||||||
}
|
}
|
||||||
/* latin-ext */
|
/* latin-ext */
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/fonts/firacode/woff2/firacode_latin-ext.woff2) format('woff2');
|
src: url(/firacode/woff2/firacode_latin-ext.woff2) format('woff2');
|
||||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||||
}
|
}
|
||||||
/* latin */
|
/* latin */
|
||||||
|
@ -49,6 +49,6 @@
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/fonts/firacode/woff2/firacode_latin.woff2) format('woff2');
|
src: url(/firacode/woff2/firacode_latin.woff2) format('woff2');
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
}
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
<script>
|
||||||
|
import Icon from './Icon.svelte';
|
||||||
|
</script>
|
||||||
|
<Icon alt="GitHub"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38C13.71 14.53 16 11.53 16 8c0-4.42-3.58-8-8-8Z" fill="#fff"/></svg></Icon>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<script lang="ts">
|
||||||
|
export const alt: string | undefined = undefined;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<span class="icon" aria-label={alt}><slot /></span>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.icon {
|
||||||
|
height: 1em;
|
||||||
|
width: 1em;
|
||||||
|
opacity: 0.5;
|
||||||
|
display: inline-block;
|
||||||
|
transition: 0.2s;
|
||||||
|
}
|
||||||
|
:global(a) .icon:hover {
|
||||||
|
opacity: 0.9;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<script>
|
||||||
|
import Icon from './Icon.svelte'
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Icon alt="JavaScript">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" cursor="default" viewBox="0 0 1052 1052"><path fill-rule="evenodd" fill="#fff" d="M0 526v526h1053V0H0v526m783-48c-37 3-69 17-92 40-24 24-36 53-36 91 0 41 12 73 39 98 20 20 43 34 93 56 55 23 70 33 78 49 6 12 6 27 0 39s-21 24-39 28c-12 2-38 2-50-1-26-6-47-21-65-48l-6-8-79 45c-1 1 0 3 4 10 9 15 16 24 29 37a212 212 0 0 0 147 55c27-1 45-4 69-11a134 134 0 0 0 90-94c2-11 2-13 2-33l-1-31c-5-26-17-48-35-67-21-21-48-37-103-61-42-18-55-25-64-35-9-9-13-21-12-34 1-10 4-18 11-25 9-10 20-14 37-14 12 0 20 1 30 6 8 4 21 17 27 27l7 8 75-49c0-2-16-25-25-34-26-27-56-41-99-44h-32M473 659l-2 184c-5 21-16 32-34 36-8 2-26 1-33-1-17-5-29-16-42-39l-6-9-40 24-40 24 4 9c19 35 48 60 85 72 41 14 94 12 131-4 39-17 63-49 73-98l2-191V483h-98v176"/></svg>
|
||||||
|
</Icon>
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
<script>
|
||||||
|
import Icon from './Icon.svelte'
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Icon alt="Ko-fi">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#fff" d="M23.88 8.95c-.77-4.09-4.86-4.6-4.86-4.6H.72c-.6 0-.68.8-.68.8L.02 16.97c.17 2.43 2.59 2.68 2.59 2.68l11.96-.05c2.44-.43 2.69-2.57 2.66-3.74 4.35.24 7.42-2.83 6.65-6.91zm-11.06 3.5c-1.25 1.46-4.01 3.99-4.01 3.99s-.12.11-.31.02l-.11-.1-4.03-3.95c-.71-.96-1.05-2.7-.1-3.7.96-1.02 3.01-1.1 4.37.4 0 0 1.56-1.78 3.47-.96 1.9.82 1.83 3 .72 4.3zm6.17.49c-.93.11-1.68.02-1.68.02V7.29h1.77s1.97.55 1.97 2.64c0 1.92-.98 2.67-2.06 3.02z"/></svg>
|
||||||
|
</Icon>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<script lang="ts">
|
||||||
|
import Icon from "$lib/Icon/Icon.svelte";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Icon alt="Laravel">
|
||||||
|
<svg viewBox="0 0 50 52" xmlns="http://www.w3.org/2000/svg"><path d="M49.626 11.564a.809.809 0 0 1 .028.209v10.972a.8.8 0 0 1-.402.694l-9.209 5.302V39.25c0 .286-.152.55-.4.694L20.42 51.01c-.044.025-.092.041-.14.058-.018.006-.035.017-.054.022a.805.805 0 0 1-.41 0c-.022-.006-.042-.018-.063-.026-.044-.016-.09-.03-.132-.054L.402 39.944A.801.801 0 0 1 0 39.25V6.334c0-.072.01-.142.028-.21.006-.023.02-.044.028-.067.015-.042.029-.085.051-.124.015-.026.037-.047.055-.071.023-.032.044-.065.071-.093.023-.023.053-.04.079-.06.029-.024.055-.05.088-.069h.001l9.61-5.533a.802.802 0 0 1 .8 0l9.61 5.533h.002c.032.02.059.045.088.068.026.02.055.038.078.06.028.029.048.062.072.094.017.024.04.045.054.071.023.04.036.082.052.124.008.023.022.044.028.068a.809.809 0 0 1 .028.209v20.559l8.008-4.611v-10.51c0-.07.01-.141.028-.208.007-.024.02-.045.028-.068.016-.042.03-.085.052-.124.015-.026.037-.047.054-.071.024-.032.044-.065.072-.093.023-.023.052-.04.078-.06.03-.024.056-.05.088-.069h.001l9.611-5.533a.801.801 0 0 1 .8 0l9.61 5.533c.034.02.06.045.09.068.025.02.054.038.077.06.028.029.048.062.072.094.018.024.04.045.054.071.023.039.036.082.052.124.009.023.022.044.028.068zm-1.574 10.718v-9.124l-3.363 1.936-4.646 2.675v9.124l8.01-4.611zm-9.61 16.505v-9.13l-4.57 2.61-13.05 7.448v9.216l17.62-10.144zM1.602 7.719v31.068L19.22 48.93v-9.214l-9.204-5.209-.003-.002-.004-.002c-.031-.018-.057-.044-.086-.066-.025-.02-.054-.036-.076-.058l-.002-.003c-.026-.025-.044-.056-.066-.084-.02-.027-.044-.05-.06-.078l-.001-.003c-.018-.03-.029-.066-.042-.1-.013-.03-.03-.058-.038-.09v-.001c-.01-.038-.012-.078-.016-.117-.004-.03-.012-.06-.012-.09v-.002-21.481L4.965 9.654 1.602 7.72zm8.81-5.994L2.405 6.334l8.005 4.609 8.006-4.61-8.006-4.608zm4.164 28.764l4.645-2.674V7.719l-3.363 1.936-4.646 2.675v20.096l3.364-1.937zM39.243 7.164l-8.006 4.609 8.006 4.609 8.005-4.61-8.005-4.608zm-.801 10.605l-4.646-2.675-3.363-1.936v9.124l4.645 2.674 3.364 1.937v-9.124zM20.02 38.33l11.743-6.704 5.87-3.35-8-4.606-9.211 5.303-8.395 4.833 7.993 4.524z" fill="#fff" fill-rule="evenodd"/></svg>
|
||||||
|
</Icon>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<script>
|
||||||
|
import Icon from './Icon.svelte'
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Icon alt="Matrix">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><text x="106" y="346" font-family="Arial" font-size="346"><tspan x="106" y="346" fill="#fff" font-weight="bold">m</tspan></text><path fill="#fff" d="M0 0h48v512H0zm48 0h64v48H48zm0 464h64v48H48zM512 0h-48v512h48zm-48 0h-64v48h64zm0 464h-64v48h64z"/></svg>
|
||||||
|
</Icon>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<script>
|
||||||
|
import Icon from './Icon.svelte'
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Icon alt="Python">
|
||||||
|
<svg fill="#fff" viewBox="0 0 110.4 109.8" xmlns="http://www.w3.org/2000/svg"><path d="M55 0C27 0 28.6 12.2 28.6 12.2v12.6h26.8v3.7H18s-18-2-18 26.3S15.8 82 15.8 82H25V69s-.5-15.6 15.4-15.6H67s15 .2 15-14.4V14.5S84.4-.2 55-.2zM40 8.5c2.7 0 4.8 2.2 4.8 4.8S42.7 18 40 18s-4.8-2.2-4.8-4.8 2-4.8 4.8-4.8zm15.6 101.3c28 0 26.3-12.2 26.3-12.2V85H55v-3.8h37.4s18 2 18-26.3-15.7-27.4-15.7-27.4h-9.3v13s.6 16-15.4 16H43.5s-15-.2-15 14.4v24s-2.3 14.7 27 14.7zm14.8-8.5c-2.7 0-4.8-2.2-4.8-4.8s2.2-4.8 4.8-4.8 4.8 2.2 4.8 4.8-2.2 4.8-4.8 4.8z"/></svg>
|
||||||
|
</Icon>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<script>
|
||||||
|
import Icon from './Icon.svelte'
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Icon alt="Rust">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="16.47 16.57 109.07 108.88"><path fill="#fff" d="M71 23.7C45 23.7 23.8 45 23.8 71S45 118.2 71 118.2 118.3 97 118.3 71 97 23.7 71 23.7zm0 4.3a3.1 3.1 0 0 1 3 3.1 3.1 3.1 0 1 1-3-3.1zm7 5a38.3 38.3 0 0 1 26.2 18.7l-3.7 8.3c-.6 1.4 0 3 1.4 3.8l7 3a38.3 38.3 0 0 1 .1 6.6h-4c-.4 0-.5.3-.5.6v2c0 4.2-2.4 5.2-4.5 5.4-2 .2-4.2-.8-4.5-2-1.2-6.6-3-8-6.2-10.5 3.8-2.4 7.8-6 7.8-11 0-5.2-3.6-8.5-6-10a17 17 0 0 0-8.2-2.7H42.5A38.3 38.3 0 0 1 64 33l4.8 5c1 1 3 1.2 4 .1zM34 56a3.1 3.1 0 1 1-3.2 3.1A3.1 3.1 0 0 1 34 56zm74.2.1a3.1 3.1 0 1 1-3.2 3.1 3.1 3.1 0 0 1 3.2-3.1zm-68.3.5h5.4V81h-11A38.3 38.3 0 0 1 33 66.5l6.7-3c1.4-.6 2-2.3 1.4-3.7zm22.6.3h13c.7 0 4.7.8 4.7 3.8 0 2.5-3 3.4-5.7 3.4h-12zm0 17.6h10c1 0 4.8.3 6 5.3.4 1.5 1.3 6.6 1.8 8.2.6 1.8 3 5.4 5.5 5.4h16a38.3 38.3 0 0 1-3.5 4.1L91.8 96c-1.5-.3-3 .7-3.4 2.2l-1.6 7.3a38.3 38.3 0 0 1-31.9-.2L53.4 98c-.3-1.5-1.8-2.5-3.4-2.2l-6.4 1.4a38.3 38.3 0 0 1-3.3-3.9h31.3c.3 0 .6-.1.6-.4V82c0-.3-.2-.4-.6-.4h-9zM48 99.8a3.1 3.1 0 1 1-3.2 3.1 3.1 3.1 0 0 1 3.2-3.1zm46 .1a3.1 3.1 0 1 1-3.2 3.1 3.1 3.1 0 0 1 3.2-3.1z"/><path fill-rule="evenodd" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="3" d="M115.7 71a44.6 44.6 0 0 1-89.3 0 44.6 44.6 0 0 1 89.3 0zm-.8-4.3 7 4.3-7 4.3 6 5.6-7.7 3 4.8 6.7-8 1.3 3.4 7.5-8.2-.3 2 8-8-2 .3 8.2-7.5-3.4-1.3 8-6.7-4.8-3 7.7-5.6-6-4.3 7-4.3-7-5.6 6-3-7.7-6.6 4.8-1.3-8-7.5 3.4V105l-8 2 2-8-8.2.3 3.4-7.5-8-1.3 4.8-6.7-7.7-3 6-5.6-7-4.3 7-4.3-6-5.6 7.7-3-4.8-6.6 8-1.3-3.4-7.5 8.2.3-2-8 8 2v-8.2l7.5 3.4 1.3-8 6.6 4.8 3-7.7 5.6 6 4.3-7 4.3 7 5.6-6 3 7.7 6.7-4.8 1.3 8 7.5-3.4L99 37l8-2-2 8 8.2-.3-3.4 7.5 8 1.3-4.8 6.6 7.7 3z"/></svg>
|
||||||
|
</Icon>
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,7 @@
|
||||||
|
<script>
|
||||||
|
import Icon from './Icon.svelte'
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Icon alt="TypeScript">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 512 512"><path fill="#fff" d="M1 477V38l2-1C8 20 19 8 36 3l1-2h439l1 2c17 5 29 16 34 33l2 1v439l-2 1c-5 17-16 29-33 34l-1 2H38l-1-2c-17-5-29-16-34-33l-2-1m386-46c-25 2-48-6-69-22v42c0 8 0 8 7 11 32 11 64 12 97 4 39-10 55-41 47-79-4-18-16-30-32-39l-40-19c-7-4-15-8-21-14-9-9-8-22 4-29 4-3 9-5 14-6 16-3 32-1 47 4l20 9v-43l-4-4c-30-9-61-10-91-2-19 6-35 16-44 35a62 62 0 0 0 27 81c12 7 25 12 38 18 9 4 18 9 25 17 9 10 7 24-5 30-5 3-12 4-20 6m-204-71v108h51V285h64v-41H119v41h64v75z"/></svg>
|
||||||
|
</Icon>
|
|
@ -0,0 +1,27 @@
|
||||||
|
<script lang="ts">
|
||||||
|
import GitHub from "$lib/Icon/GitHub.svelte";
|
||||||
|
import JavaScript from "$lib/Icon/JavaScript.svelte";
|
||||||
|
import Kofi from "$lib/Icon/Kofi.svelte";
|
||||||
|
import Matrix from "$lib/Icon/Matrix.svelte";
|
||||||
|
import Python from "$lib/Icon/Python.svelte";
|
||||||
|
import Rust from "$lib/Icon/Rust.svelte";
|
||||||
|
import Svelte from "$lib/Icon/Svelte.svelte";
|
||||||
|
import TypeScript from "$lib/Icon/TypeScript.svelte";
|
||||||
|
import Laravel from "$lib/Icon/Laravel.svelte";
|
||||||
|
|
||||||
|
export let id: string;
|
||||||
|
|
||||||
|
let options = new Map(Object.entries({
|
||||||
|
"github": GitHub,
|
||||||
|
"javascript": JavaScript,
|
||||||
|
"kofi": Kofi,
|
||||||
|
"matrix": Matrix,
|
||||||
|
"python": Python,
|
||||||
|
"rust": Rust,
|
||||||
|
"svelte": Svelte,
|
||||||
|
"typescript": TypeScript,
|
||||||
|
"laravel": Laravel,
|
||||||
|
}));
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<svelte:component this={options.get(id)} />
|
|
@ -1,27 +0,0 @@
|
||||||
<script>
|
|
||||||
export let title = 'Untitled';
|
|
||||||
export let published = '';
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<svelte:head>
|
|
||||||
<title>{title} - blog - coredoesdev</title>
|
|
||||||
</svelte:head>
|
|
||||||
|
|
||||||
<h1>{title}</h1>
|
|
||||||
<span><a class="blog-link" href="/blog/">← Back</a> - <time>{new Date(published).toLocaleDateString()}</time></span>
|
|
||||||
|
|
||||||
<slot />
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.blog-link {
|
|
||||||
text-decoration: none;
|
|
||||||
text-decoration-color: transparent;
|
|
||||||
color: white;
|
|
||||||
transition: 1s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blog-link:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
text-decoration-color: white;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
@import "FiraCode.css";
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--bg-color: #0e1313;
|
||||||
|
--core-green: rgba(0, 214, 143, 1);
|
||||||
|
--core-green-transparent: rgba(0, 214, 143, 0.5);
|
||||||
|
--core-blue: rgba(5, 40, 176, 1);
|
||||||
|
--core-light-blue: #007ec2;
|
||||||
|
--core-gradient: linear-gradient(90deg, rgba(0, 214, 143, 1) 0%, rgba(5, 40, 176, 1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
font-family: 'Fira Code', monospace;
|
||||||
|
padding-top: 10vh;
|
||||||
|
padding-bottom: 10vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 480px) {
|
||||||
|
html {
|
||||||
|
padding-top: 2vh;
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: var(--bg-color);
|
||||||
|
color: white;
|
||||||
|
background-size: 40px 40px;
|
||||||
|
background-image: radial-gradient(circle, var(--core-green-transparent) 1px, rgba(0, 0, 0, 0) 1px);
|
||||||
|
animation: linear 2s bg-scroll infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes bg-scroll {
|
||||||
|
0% {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
background-position: 40px 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: var(--core-green);
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shiki {
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"posts": [
|
||||||
|
{
|
||||||
|
"name": "Who is core?",
|
||||||
|
"slug": "who-is-core",
|
||||||
|
"about": "A *very* brief introduction to who I am and what I do",
|
||||||
|
"posted": "2024-02-06T18:19:25.205Z"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
import {codeToHtml} from 'shiki';
|
||||||
|
|
||||||
|
const THEME = 'vitesse-dark';
|
||||||
|
|
||||||
|
async function highlighter(code, lang, meta) {
|
||||||
|
return (await codeToHtml(code, {
|
||||||
|
theme: THEME,
|
||||||
|
lang,
|
||||||
|
decorations: JSON.parse(meta)
|
||||||
|
})).replace(
|
||||||
|
/[{}`]/g,
|
||||||
|
(character) => ({ '{': '{', '}': '}', '`': '`' }[character]),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default highlighter;
|
|
@ -0,0 +1,92 @@
|
||||||
|
{
|
||||||
|
"projects": [
|
||||||
|
{
|
||||||
|
"name": "StarKingdoms.TK",
|
||||||
|
"role": "Co-Developer",
|
||||||
|
"about": "A browser game about floating through space",
|
||||||
|
"source": "https://gitlab.com/starkingdoms.tk/starkingdoms.tk/-/tree/bevy_rewrite",
|
||||||
|
"link": "https://starkingdoms.io",
|
||||||
|
"tech": ["rust", "svelte", "typescript", "github"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Trifid",
|
||||||
|
"role": "Creator",
|
||||||
|
"about": "A free and open source reimplementation of the Defined Networking control server & clients",
|
||||||
|
"source": "https://git.e3t.cc/core/trifid",
|
||||||
|
"link": "https://next.trifid.e3t.cc",
|
||||||
|
"tech": ["rust", "github"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hayya",
|
||||||
|
"role": "Project Lead",
|
||||||
|
"about": "The next-generation division HQ for VATSIM Middle East & North Africa",
|
||||||
|
"source": "https://github.com/VATMENA/hayya",
|
||||||
|
"link": "httpa://hayya.vatsim.me",
|
||||||
|
"tech": ["svelte", "typescript", "github"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vZTL ARTCC Website",
|
||||||
|
"role": "Team Member",
|
||||||
|
"about": "The current vZTL ARTCC website",
|
||||||
|
"source": "https://github.com/ZTL-ARTCC/Current_Website",
|
||||||
|
"link": "https://ztlartcc.org",
|
||||||
|
"tech": ["laravel", "javascript", "github"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Personal Site",
|
||||||
|
"role": "Creator",
|
||||||
|
"about": "The site you're looking at right now!",
|
||||||
|
"source": "https://git.e3t.cc/core/coredoesdev",
|
||||||
|
"link": "https://coredoes.dev",
|
||||||
|
"tech": ["svelte", "github"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Personal Site",
|
||||||
|
"role": "Creator",
|
||||||
|
"about": "The site you're looking at right now!",
|
||||||
|
"source": "https://git.e3t.cc/core/coredoesdev",
|
||||||
|
"link": "https://coredoes.dev",
|
||||||
|
"tech": ["svelte", "github"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Personal Site",
|
||||||
|
"role": "Creator",
|
||||||
|
"about": "The site you're looking at right now!",
|
||||||
|
"source": "https://git.e3t.cc/core/coredoesdev",
|
||||||
|
"link": "https://coredoes.dev",
|
||||||
|
"tech": ["svelte", "github"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Personal Site",
|
||||||
|
"role": "Creator",
|
||||||
|
"about": "The site you're looking at right now!",
|
||||||
|
"source": "https://git.e3t.cc/core/coredoesdev",
|
||||||
|
"link": "https://coredoes.dev",
|
||||||
|
"tech": ["svelte", "github"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Personal Site",
|
||||||
|
"role": "Creator",
|
||||||
|
"about": "The site you're looking at right now!",
|
||||||
|
"source": "https://git.e3t.cc/core/coredoesdev",
|
||||||
|
"link": "https://coredoes.dev",
|
||||||
|
"tech": ["svelte", "github"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Personal Site",
|
||||||
|
"role": "Creator",
|
||||||
|
"about": "The site you're looking at right now!",
|
||||||
|
"source": "https://git.e3t.cc/core/coredoesdev",
|
||||||
|
"link": "https://coredoes.dev",
|
||||||
|
"tech": ["svelte", "github"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Personal Site",
|
||||||
|
"role": "Creator",
|
||||||
|
"about": "The site you're looking at right now!",
|
||||||
|
"source": "https://git.e3t.cc/core/coredoesdev",
|
||||||
|
"link": "https://coredoes.dev",
|
||||||
|
"tech": ["svelte", "github"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,53 +1,39 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
// Prism core
|
import "$lib/app.css";
|
||||||
import Prism from "prismjs";
|
|
||||||
|
|
||||||
// Prism theme
|
|
||||||
import "prismjs/themes/prism-twilight.css";
|
|
||||||
|
|
||||||
// Prism languages
|
|
||||||
import "prismjs/components/prism-rust.js";
|
|
||||||
import "prismjs/components/prism-diff.js";
|
|
||||||
|
|
||||||
// Prism plugins
|
|
||||||
import "prismjs/plugins/line-numbers/prism-line-numbers.js"; // Line numbers
|
|
||||||
import "prismjs/plugins/line-numbers/prism-line-numbers.css"; // Line numbers
|
|
||||||
|
|
||||||
import "prismjs/plugins/line-highlight/prism-line-highlight.js"; // Line highlight
|
|
||||||
import "prismjs/plugins/line-highlight/prism-line-highlight.css"; // Line highlight
|
|
||||||
|
|
||||||
import "prismjs/plugins/autolinker/prism-autolinker.js"; // Autolinker
|
|
||||||
import "prismjs/plugins/autolinker/prism-autolinker.css"; // Autolinker
|
|
||||||
|
|
||||||
import "prismjs/plugins/toolbar/prism-toolbar.css"; // Toolbar
|
|
||||||
import "prismjs/plugins/toolbar/prism-toolbar.js"; // Toolbar
|
|
||||||
|
|
||||||
import "prismjs/plugins/show-language/prism-show-language.js"; // Show Language (broken?)
|
|
||||||
|
|
||||||
import "prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js"; // Copy to Clipboard
|
|
||||||
|
|
||||||
import "prismjs/plugins/download-button/prism-download-button.js"; // Download Button
|
|
||||||
|
|
||||||
import "prismjs/plugins/match-braces/prism-match-braces.css"; // Match Braces
|
|
||||||
import "prismjs/plugins/match-braces/prism-match-braces.js"; // Match Braces
|
|
||||||
|
|
||||||
import "prismjs/plugins/diff-highlight/prism-diff-highlight.css"; // Diff Highlight
|
|
||||||
import "prismjs/plugins/diff-highlight/prism-diff-highlight.js"; // Diff Highlight
|
|
||||||
|
|
||||||
import "prismjs/plugins/treeview/prism-treeview.css"; // Treeview
|
|
||||||
import "prismjs/plugins/treeview/prism-treeview.js"; // Treeview
|
|
||||||
|
|
||||||
import {onMount} from "svelte";
|
|
||||||
|
|
||||||
onMount(() => {
|
|
||||||
window.Prism = window.Prism || {};
|
|
||||||
window.Prism.manual = true;
|
|
||||||
Prism.highlightAll();
|
|
||||||
})
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<div class="content-container">
|
||||||
<link rel="stylesheet" href="/css/common.css">
|
|
||||||
</svelte:head>
|
|
||||||
|
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span class="footer">made with <3 by core</span>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.footer {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 1vh;
|
||||||
|
left: 1vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-container {
|
||||||
|
border: 1px solid var(--core-blue);
|
||||||
|
border-radius: 10px;
|
||||||
|
height: min-content;
|
||||||
|
width: 30vw;
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
padding: 20px;
|
||||||
|
margin: auto;
|
||||||
|
background-color: var(--bg-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 480px) {
|
||||||
|
.content-container {
|
||||||
|
width: 90vw;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
export const prerender = true;
|
|
|
@ -1,58 +1,14 @@
|
||||||
<script>
|
|
||||||
import Bar from "$components/Bar.svelte";
|
|
||||||
import Content from "$components/Content.svelte";
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
<title>coredoesdev</title>
|
<title>coredoesdev</title>
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
<Bar selected="home"/>
|
<h1>hi, i'm core</h1>
|
||||||
|
|
||||||
<Content>
|
<p>i'm a software developer and sysadmin that likes to make cool things. i host things with my buddies in <a href="https://e3t.cc">e3team</a>.</p>
|
||||||
<p>Hi, I'm <span class="gradient">core</span>.</p>
|
<p>check out <a href="/projects">my projects</a> or <a href="/blog">my blog</a></p>
|
||||||
<p>I'm a freelance software developer and video editor.</p>
|
|
||||||
<span><span class="coregreen">[core ~]$</span> ls</span>
|
|
||||||
<ul class="lsres">
|
|
||||||
<li class="lsli"><a class="ls" href="/">.</a></li>
|
|
||||||
<li class="lsli"><a class="ls" href="/projects">projects/</a></li>
|
|
||||||
<li class="lsli"><a class="ls" href="/about">about.txt</a></li>
|
|
||||||
<li class="lsli"><a class="ls" href="/contact">contact.txt</a></li>
|
|
||||||
<li class="lsli"><a class="ls" href="/blog">blog/</a></li>
|
|
||||||
</ul>
|
|
||||||
<p>click to navigate</p>
|
|
||||||
</Content>
|
|
||||||
|
|
||||||
<style>
|
<h2>contact</h2>
|
||||||
.gradient {
|
<p>find me on <a href="https://github.com/c0repwn3r">github</a>, <a href="https://discord.com/users/476905356723748867">discord</a>, or <a href="mailto:core@coredoes.dev">email</a>.</p>
|
||||||
background-image: var(--core-gradient);
|
|
||||||
background-clip: text;
|
|
||||||
color: transparent;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
-moz-background-clip: text;
|
|
||||||
-moz-text-fill-color: transparent;
|
|
||||||
background-size: 100%;
|
|
||||||
background-repeat: repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.coregreen {
|
<h2>pgp</h2>
|
||||||
color: var(--core-green);
|
<p>my PGP keys are <a href="https://keyserver.ubuntu.com/pks/lookup?search=0993C4025628F30A47381A43FDBF740DADDCEECF&fingerprint=on&op=index">this one</a> <b>and</b> <a href="https://keyserver.ubuntu.com/pks/lookup?search=8581C1619952B409DC4C5DB79D0DAED5555DD0B4&fingerprint=on&op=index">this one too</a></p>
|
||||||
}
|
|
||||||
|
|
||||||
.ls {
|
|
||||||
color: var(--core-light-blue);
|
|
||||||
transition: 0.2s;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ls:hover:not(.nohover) {
|
|
||||||
color: var(--core-blue);
|
|
||||||
}
|
|
||||||
|
|
||||||
.lsres {
|
|
||||||
list-style: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
<script>
|
|
||||||
import Bar from "$components/Bar.svelte";
|
|
||||||
import Content from "$components/Content.svelte";
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<svelte:head>
|
|
||||||
<title>about - coredoesdev</title>
|
|
||||||
</svelte:head>
|
|
||||||
|
|
||||||
<Bar selected="about"/>
|
|
||||||
|
|
||||||
<Content offset="20">
|
|
||||||
<span><span class="coregreen">[core ~]$</span> cat about.txt</span>
|
|
||||||
<p><i>Q: Who are you?</i></p>
|
|
||||||
<p>A: I'm core, an independent freelance software developer and video editor.</p>
|
|
||||||
<p><i>Q: What do you make?</i></p>
|
|
||||||
<p>A: I make lots of different things. You can see all the projects I am involved in <a class="hover-click hovergradient link" href="/projects">here.</a> This list isn't complete though.</p>
|
|
||||||
<p><i>Q: What programming languages/technologies do you use?</i></p>
|
|
||||||
<p>A: All of them! In all seriousness, for each project (if it's not too important) I try to learn some new technique, technology or language. If I am making something important, I'll use something I am comfortable with, typically Svelte for web-anything and Rust for everything else. I also use Python quite a lot. You can scroll through the project page and each project has a listing of what language or technology was used to build it.</p>
|
|
||||||
<p><i>Q: Who do you work with?</i></p>
|
|
||||||
<p>A: Most of the time I'm working with my buddies in <a class="hover-click hovergradient link" href="https://e3t.cc">e3team.</a></p>
|
|
||||||
<p><a class="link hovergradient" href="/">← return home</a></p>
|
|
||||||
</Content>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.hover-click {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hovergradient:hover {
|
|
||||||
background-image: var(--core-gradient);
|
|
||||||
background-clip: text;
|
|
||||||
color: transparent;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
-moz-background-clip: text;
|
|
||||||
-moz-text-fill-color: transparent;
|
|
||||||
background-size: 100%;
|
|
||||||
background-repeat: repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.link {
|
|
||||||
text-decoration: none;
|
|
||||||
color: var(--core-light-blue);
|
|
||||||
}
|
|
||||||
|
|
||||||
.coregreen {
|
|
||||||
color: var(--core-green);
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,30 +1,20 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Bar from "$components/Bar.svelte";
|
import posts from "$lib/blog.json";
|
||||||
import Content from "$components/Content.svelte";
|
|
||||||
import PostPreview from "$components/PostPreview.svelte";
|
|
||||||
|
|
||||||
import blog_test from "./blog-test/data.json";
|
|
||||||
import hello from "./hello/data.json";
|
|
||||||
|
|
||||||
interface PostData {
|
|
||||||
title: string,
|
|
||||||
published: string,
|
|
||||||
short_description: string,
|
|
||||||
slug: string
|
|
||||||
}
|
|
||||||
|
|
||||||
let posts = [
|
|
||||||
blog_test,
|
|
||||||
hello
|
|
||||||
];
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Bar selected="blog"/>
|
<h1>blog</h1>
|
||||||
|
|
||||||
<Content offset="15">
|
{#each posts.posts as post}
|
||||||
{#each posts as post}
|
<h3><a href="/blog/{post.slug}">{post.name}</a></h3>
|
||||||
<PostPreview title={post.title} published={post.published} description={post.short_description} url="/blog/{post.slug}" />
|
<p class="darker">{post.about}</p>
|
||||||
<br>
|
<p class="darkest">Posted: {new Date(post.posted).toLocaleString()}</p>
|
||||||
{/each}
|
{/each}
|
||||||
</Content>
|
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.darker {
|
||||||
|
color: rgba(255, 255, 255, 0.8);
|
||||||
|
}
|
||||||
|
.darkest {
|
||||||
|
color: rgba(255, 255, 255, 0.6);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
<script lang="ts">
|
|
||||||
import PostContent from "./page.svx";
|
|
||||||
|
|
||||||
import Bar from "$components/Bar.svelte";
|
|
||||||
import Content from "$components/Content.svelte";
|
|
||||||
|
|
||||||
// Prism core
|
|
||||||
import Prism from "prismjs";
|
|
||||||
|
|
||||||
// Prism theme
|
|
||||||
import "prismjs/themes/prism-twilight.css";
|
|
||||||
|
|
||||||
// Prism languages
|
|
||||||
import "prismjs/components/prism-rust.js";
|
|
||||||
import "prismjs/components/prism-diff.js";
|
|
||||||
|
|
||||||
// Prism plugins
|
|
||||||
import "prismjs/plugins/line-numbers/prism-line-numbers.js"; // Line numbers
|
|
||||||
import "prismjs/plugins/line-numbers/prism-line-numbers.css"; // Line numbers
|
|
||||||
|
|
||||||
import "prismjs/plugins/line-highlight/prism-line-highlight.js"; // Line highlight
|
|
||||||
import "prismjs/plugins/line-highlight/prism-line-highlight.css"; // Line highlight
|
|
||||||
|
|
||||||
import "prismjs/plugins/autolinker/prism-autolinker.js"; // Autolinker
|
|
||||||
import "prismjs/plugins/autolinker/prism-autolinker.css"; // Autolinker
|
|
||||||
|
|
||||||
import "prismjs/plugins/toolbar/prism-toolbar.css"; // Toolbar
|
|
||||||
import "prismjs/plugins/toolbar/prism-toolbar.js"; // Toolbar
|
|
||||||
|
|
||||||
import "prismjs/plugins/show-language/prism-show-language.js"; // Show Language (broken?)
|
|
||||||
|
|
||||||
import "prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js"; // Copy to Clipboard
|
|
||||||
|
|
||||||
import "prismjs/plugins/download-button/prism-download-button.js"; // Download Button
|
|
||||||
|
|
||||||
import "prismjs/plugins/match-braces/prism-match-braces.css"; // Match Braces
|
|
||||||
import "prismjs/plugins/match-braces/prism-match-braces.js"; // Match Braces
|
|
||||||
|
|
||||||
import "prismjs/plugins/diff-highlight/prism-diff-highlight.css"; // Diff Highlight
|
|
||||||
import "prismjs/plugins/diff-highlight/prism-diff-highlight.js"; // Diff Highlight
|
|
||||||
|
|
||||||
import "prismjs/plugins/treeview/prism-treeview.css"; // Treeview
|
|
||||||
import "prismjs/plugins/treeview/prism-treeview.js"; // Treeview
|
|
||||||
|
|
||||||
import {onMount} from "svelte";
|
|
||||||
|
|
||||||
onMount(() => {
|
|
||||||
window.Prism = window.Prism || {};
|
|
||||||
window.Prism.manual = true;
|
|
||||||
Prism.highlightAll();
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<Bar selected="none"/>
|
|
||||||
|
|
||||||
<Content offset="10">
|
|
||||||
<PostContent />
|
|
||||||
</Content>
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"title": "Blog Test",
|
|
||||||
"published": "2023-06-30T22:22:19+0000",
|
|
||||||
"short_description": "Testing the new blog system",
|
|
||||||
"slug": "blog-test"
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
---
|
|
||||||
title: Blog Test
|
|
||||||
published: 2023-06-30T22:22:19+0000
|
|
||||||
---
|
|
||||||
|
|
||||||
# Testing out the blog system
|
|
||||||
|
|
||||||
i wanted to make a new blog lol
|
|
||||||
|
|
||||||
so, uh Ahere we are!
|
|
||||||
|
|
||||||
```rust?lines=2-3
|
|
||||||
pub fn code_highlighting() {
|
|
||||||
// lines can be highlighted
|
|
||||||
println!("works!");
|
|
||||||
// links are converted: https://example.com
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Diff's work too:
|
|
||||||
|
|
||||||
```diff-rust
|
|
||||||
pub fn code_highlighting() {
|
|
||||||
// lines can be highlighted
|
|
||||||
- println!("works!");
|
|
||||||
+ let foo = 1;
|
|
||||||
// links are converted: https://example.com
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -1,59 +0,0 @@
|
||||||
<script lang="ts">
|
|
||||||
import PostContent from "./page.svx";
|
|
||||||
|
|
||||||
import Bar from "$components/Bar.svelte";
|
|
||||||
import Content from "$components/Content.svelte";
|
|
||||||
|
|
||||||
// Prism core
|
|
||||||
import Prism from "prismjs";
|
|
||||||
|
|
||||||
// Prism theme
|
|
||||||
import "prismjs/themes/prism-twilight.css";
|
|
||||||
|
|
||||||
// Prism languages
|
|
||||||
import "prismjs/components/prism-rust.js";
|
|
||||||
import "prismjs/components/prism-diff.js";
|
|
||||||
|
|
||||||
// Prism plugins
|
|
||||||
import "prismjs/plugins/line-numbers/prism-line-numbers.js"; // Line numbers
|
|
||||||
import "prismjs/plugins/line-numbers/prism-line-numbers.css"; // Line numbers
|
|
||||||
|
|
||||||
import "prismjs/plugins/line-highlight/prism-line-highlight.js"; // Line highlight
|
|
||||||
import "prismjs/plugins/line-highlight/prism-line-highlight.css"; // Line highlight
|
|
||||||
|
|
||||||
import "prismjs/plugins/autolinker/prism-autolinker.js"; // Autolinker
|
|
||||||
import "prismjs/plugins/autolinker/prism-autolinker.css"; // Autolinker
|
|
||||||
|
|
||||||
import "prismjs/plugins/toolbar/prism-toolbar.css"; // Toolbar
|
|
||||||
import "prismjs/plugins/toolbar/prism-toolbar.js"; // Toolbar
|
|
||||||
|
|
||||||
import "prismjs/plugins/show-language/prism-show-language.js"; // Show Language (broken?)
|
|
||||||
|
|
||||||
import "prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js"; // Copy to Clipboard
|
|
||||||
|
|
||||||
import "prismjs/plugins/download-button/prism-download-button.js"; // Download Button
|
|
||||||
|
|
||||||
import "prismjs/plugins/match-braces/prism-match-braces.css"; // Match Braces
|
|
||||||
import "prismjs/plugins/match-braces/prism-match-braces.js"; // Match Braces
|
|
||||||
|
|
||||||
import "prismjs/plugins/diff-highlight/prism-diff-highlight.css"; // Diff Highlight
|
|
||||||
import "prismjs/plugins/diff-highlight/prism-diff-highlight.js"; // Diff Highlight
|
|
||||||
|
|
||||||
import "prismjs/plugins/treeview/prism-treeview.css"; // Treeview
|
|
||||||
import "prismjs/plugins/treeview/prism-treeview.js"; // Treeview
|
|
||||||
|
|
||||||
import {onMount} from "svelte";
|
|
||||||
|
|
||||||
onMount(() => {
|
|
||||||
window.Prism = window.Prism || {};
|
|
||||||
window.Prism.manual = true;
|
|
||||||
Prism.highlightAll();
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<Bar selected="none"/>
|
|
||||||
|
|
||||||
<Content offset="10">
|
|
||||||
<PostContent />
|
|
||||||
</Content>
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"title": "Welcome to my blog!",
|
|
||||||
"published": "2023-07-01T19:08:18+0000",
|
|
||||||
"short_description": "An introduction to me and what this blog is about",
|
|
||||||
"slug": "hello"
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
---
|
|
||||||
title: Welcome to my blog!
|
|
||||||
published: 2023-07-01T19:08:18+0000
|
|
||||||
---
|
|
||||||
|
|
||||||
Hello! I'm core, I make silly things and this is my blog.
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
# who is core?
|
||||||
|
|
||||||
|
hi, i'm core, a full-stack developer and systems administrator. i do silly things and this is my website/blog/portfolio!
|
||||||
|
|
||||||
|
## codeblock testing
|
||||||
|
|
||||||
|
```javascript []
|
||||||
|
fn main() {
|
||||||
|
test;
|
||||||
|
}
|
||||||
|
fn blah() {
|
||||||
|
well ello;
|
||||||
|
}
|
||||||
|
```
|
|
@ -1,55 +0,0 @@
|
||||||
<script>
|
|
||||||
import Bar from "$components/Bar.svelte";
|
|
||||||
import Content from "$components/Content.svelte";
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<svelte:head>
|
|
||||||
<title>contact - coredoesdev</title>
|
|
||||||
</svelte:head>
|
|
||||||
|
|
||||||
<Bar selected="contact"/>
|
|
||||||
|
|
||||||
<Content offset="30">
|
|
||||||
<span><span class="coregreen">[core ~]$</span> cat contact.txt</span>
|
|
||||||
<p>You can reach me in many places.</p>
|
|
||||||
<ul>
|
|
||||||
<li>Matrix: @core:e3t.cc</li>
|
|
||||||
<li>Mastodon: TBD</li>
|
|
||||||
<li>Discord: core#8531</li>
|
|
||||||
<li>Email: core (AT) coredoes (DOT) dev, or core (AT) e3t (DOT) cc</li>
|
|
||||||
</ul>
|
|
||||||
<p>I take security very seriously. Do <b>not</b> be afraid to ask for PGP. My two PGP keys are:</p>
|
|
||||||
<ul>
|
|
||||||
<li class="hover-click"><a href="https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xb630ee3b52b8ab02b29588b907956edecb6d8a16" class="link hovergradient">B630EE3B52B8AB02B29588B907956EDECB6D8A16</a></li>
|
|
||||||
<li class="hover-click"><a href="https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x8581c1619952b409dc4c5db79d0daed5555dd0b4" class="link hovergradient">8581C1619952B409DC4C5DB79D0DAED5555DD0B4</a></li>
|
|
||||||
<li class="hover-click"><a href="https://meta.e3t.cc/~core.pgp" class="link hovergradient">or, download both</a></li>
|
|
||||||
</ul>
|
|
||||||
<p><a class="link hovergradient" href="/">← return home</a></p>
|
|
||||||
</Content>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.hover-click {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hovergradient:hover {
|
|
||||||
background-image: var(--core-gradient);
|
|
||||||
background-clip: text;
|
|
||||||
color: transparent;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
-moz-background-clip: text;
|
|
||||||
-moz-text-fill-color: transparent;
|
|
||||||
background-size: 100%;
|
|
||||||
background-repeat: repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.link {
|
|
||||||
text-decoration: none;
|
|
||||||
color: var(--core-light-blue);
|
|
||||||
}
|
|
||||||
|
|
||||||
.coregreen {
|
|
||||||
color: var(--core-green);
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,163 +1,57 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Bar from "$components/Bar.svelte";
|
import projects from "$lib/projects.json";
|
||||||
import Content from "$components/Content.svelte";
|
import InlineIcon from "$lib/InlineIcon.svelte";
|
||||||
|
|
||||||
enum TechOrLang {
|
|
||||||
TypeScript = 'typescript',
|
|
||||||
Rust = 'rust',
|
|
||||||
Ansible = 'ansible',
|
|
||||||
Bash = 'bash',
|
|
||||||
InkScape = 'inkscape',
|
|
||||||
Jenkins = 'jenkins',
|
|
||||||
Python = 'python',
|
|
||||||
Squarespace = 'squarespace',
|
|
||||||
ActixWeb = 'actix-web',
|
|
||||||
Postgresql = 'postgres',
|
|
||||||
SeaORM = 'seaorm',
|
|
||||||
NebulaVPN = 'nebula-vpn',
|
|
||||||
Cryptography = 'cryptography',
|
|
||||||
PKI = 'pki',
|
|
||||||
JavaScript = 'javascript',
|
|
||||||
Electron = 'electron',
|
|
||||||
React = 'react',
|
|
||||||
Wordpress = 'wordpress',
|
|
||||||
PHP = 'php',
|
|
||||||
Ed25519 = 'ed25519',
|
|
||||||
Networking = 'networking',
|
|
||||||
Tarpaulin = 'tarpaulin',
|
|
||||||
Tokio = 'tokio',
|
|
||||||
AsyncStd = 'async-std'
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Project {
|
|
||||||
id: string,
|
|
||||||
name: string,
|
|
||||||
role: string,
|
|
||||||
tech: TechOrLang[],
|
|
||||||
link: string
|
|
||||||
}
|
|
||||||
|
|
||||||
let projects: Project[] = [
|
|
||||||
{
|
|
||||||
id: "starkingdoms.io",
|
|
||||||
name: "StarKingdoms.IO",
|
|
||||||
role: "Co-Developer",
|
|
||||||
tech: [TechOrLang.TypeScript, TechOrLang.Rust,
|
|
||||||
TechOrLang.Ansible, TechOrLang.Bash,
|
|
||||||
TechOrLang.InkScape, TechOrLang.Jenkins,
|
|
||||||
TechOrLang.Python, TechOrLang.AsyncStd],
|
|
||||||
link: "https://starkingdoms.io"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "4circlecoaching",
|
|
||||||
name: "4 Circle Coaching",
|
|
||||||
role: "Contributor",
|
|
||||||
tech: [TechOrLang.Squarespace],
|
|
||||||
link: "https://4circlecoaching.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "trifid",
|
|
||||||
name: "trifid",
|
|
||||||
role: "Project Lead",
|
|
||||||
tech: [TechOrLang.Rust, TechOrLang.Cryptography, TechOrLang.ActixWeb, TechOrLang.NebulaVPN, TechOrLang.Postgresql, TechOrLang.SeaORM, TechOrLang.PKI],
|
|
||||||
link: "https://hub.e3t.cc/~core/trifid"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "dnapi-rs",
|
|
||||||
name: "dnapi-rs",
|
|
||||||
role: "Project Lead",
|
|
||||||
tech: [TechOrLang.Rust, TechOrLang.Cryptography, TechOrLang.NebulaVPN, TechOrLang.PKI],
|
|
||||||
link: "https://crates.io/crates/dnapi-rs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "pyblocks",
|
|
||||||
name: "PyBlocks",
|
|
||||||
role: "Project Lead",
|
|
||||||
tech: [TechOrLang.JavaScript, TechOrLang.Python, TechOrLang.Electron, TechOrLang.React],
|
|
||||||
link: "https://git.e3t.cc/~core/pyblocks"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "smst",
|
|
||||||
name: "Stingrays Summer Swim Team",
|
|
||||||
role: "Freelance Developer",
|
|
||||||
tech: [TechOrLang.Wordpress, TechOrLang.PHP],
|
|
||||||
link: "https://gosmst.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "e3pf",
|
|
||||||
name: "e3team Protocol Framework",
|
|
||||||
role: "Project Lead",
|
|
||||||
tech: [TechOrLang.Rust, TechOrLang.Cryptography, TechOrLang.Networking, TechOrLang.Ed25519, TechOrLang.Tokio],
|
|
||||||
link: "https://git.e3t.cc/~core/e3pf"
|
|
||||||
}
|
|
||||||
];
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<h1>projects</h1>
|
||||||
<title>projects - coredoesdev</title>
|
|
||||||
</svelte:head>
|
|
||||||
|
|
||||||
<Bar selected="projects"/>
|
<div class="projects">
|
||||||
|
{#each projects.projects as project}
|
||||||
|
<div class="project-container">
|
||||||
|
<div class="project-header">
|
||||||
|
<a href={project.link}>{project.name}</a>
|
||||||
|
|
||||||
<Content offset="25">
|
{#each project.tech as techId}
|
||||||
<p>This is a <i>rough</i> listing of projects I am or have been involved with, along with my role and relavent concepts or technologies. This list is not complete as some projects do not warrant inclusion here.</p>
|
<div class="icon">
|
||||||
<span><span class="coregreen">[core ~]$</span> ls projects/</span>
|
{#if techId === "github"}
|
||||||
<ul class="lsres">
|
<a href={project.source} title="Source"><InlineIcon id={techId} /></a>
|
||||||
{#each projects as project}
|
{:else}
|
||||||
<li class="lsli"><a class="ls" href="{project.link}">{project.name}</a> - {project.role} - {project.tech.join(', ')}</li>
|
<InlineIcon id={techId}/>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
</ul>
|
</div>
|
||||||
<p>click to visit</p>
|
<p>{project.role} - {project.about}</p>
|
||||||
<p><a class="link hovergradient" href="/">← return home</a></p>
|
</div>
|
||||||
</Content>
|
{/each}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a href="/">go back</a>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.gradient {
|
.icon {
|
||||||
background-image: var(--core-gradient);
|
display: inline-block;
|
||||||
background-clip: text;
|
}
|
||||||
color: transparent;
|
.icon:not(:first-child) {
|
||||||
-webkit-background-clip: text;
|
margin-left: 0.5rem;
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
-moz-background-clip: text;
|
|
||||||
-moz-text-fill-color: transparent;
|
|
||||||
background-size: 100%;
|
|
||||||
background-repeat: repeat;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.hovergradient:hover {
|
.project-container {
|
||||||
background-image: var(--core-gradient);
|
display: block;
|
||||||
background-clip: text;
|
padding-bottom: 10px;
|
||||||
color: transparent;
|
border-bottom: 1px dashed var(--core-blue);
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
-moz-background-clip: text;
|
|
||||||
-moz-text-fill-color: transparent;
|
|
||||||
background-size: 100%;
|
|
||||||
background-repeat: repeat;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.link {
|
.project-container:not(:first-child) {
|
||||||
text-decoration: none;
|
margin-top: 10px;
|
||||||
color: var(--core-light-blue);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.coregreen {
|
.project-container:last-child {
|
||||||
color: var(--core-green);
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ls {
|
.project-container .project-header {
|
||||||
color: var(--core-light-blue);
|
font-size: large;
|
||||||
transition: 0.2s;
|
color: white;
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ls:hover:not(.nohover) {
|
|
||||||
color: var(--core-blue);
|
|
||||||
}
|
|
||||||
|
|
||||||
.lsres {
|
|
||||||
list-style: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
|
@ -1,19 +0,0 @@
|
||||||
@import url('/fonts/firacode/FiraCode.css');
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--bg-color: #0E1313;
|
|
||||||
--core-green: rgba(0, 214, 143, 1);
|
|
||||||
--core-blue: rgba(5, 40, 176, 1);
|
|
||||||
--core-light-blue: #007ec2;
|
|
||||||
--core-gradient: linear-gradient(90deg, rgba(0, 214, 143, 1) 0%, rgba(5, 40, 176, 1) 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
scroll-behavior: smooth; /* smooth scroll anchors */
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
background-color: var(--bg-color);
|
|
||||||
font-family: 'Fira Code', monospace;
|
|
||||||
color: white;
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 40 KiB |
Binary file not shown.
Before Width: | Height: | Size: 40 KiB |
|
@ -1,40 +1,7 @@
|
||||||
import adapter from '@sveltejs/adapter-static';
|
import adapter from '@sveltejs/adapter-static';
|
||||||
import { vitePreprocess } from '@sveltejs/kit/vite';
|
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
|
||||||
import {mdsvex} from "mdsvex";
|
import {mdsvex} from "mdsvex";
|
||||||
|
import highlighter from "./src/lib/highlighter.js";
|
||||||
function escapeBraces(unsafe)
|
|
||||||
{
|
|
||||||
return unsafe
|
|
||||||
.replace(/{/g, "{")
|
|
||||||
.replace(/}/g, "}");
|
|
||||||
}
|
|
||||||
|
|
||||||
function highlighter(code, lang) {
|
|
||||||
// Lang can be:
|
|
||||||
// just the lang ('rust')
|
|
||||||
// the lang, then in brackets lines to hightlight ('rust[1-5,9,21-23]')
|
|
||||||
|
|
||||||
let params = new URLSearchParams(lang.split('?')[1]);
|
|
||||||
let real_lang = lang.split('?')[0];
|
|
||||||
|
|
||||||
let classes = [`language-${real_lang}`];
|
|
||||||
let props = "";
|
|
||||||
|
|
||||||
if (params.has("lines")) {
|
|
||||||
props += `data-line="${params.get("lines")}" `;
|
|
||||||
}
|
|
||||||
if (params.has("src")) {
|
|
||||||
props += `data-src="${params.get("src")}" `;
|
|
||||||
}
|
|
||||||
if (params.has("enableDownload")) {
|
|
||||||
props += "data-download-link ";
|
|
||||||
}
|
|
||||||
if (params.has("downloadLabel")) {
|
|
||||||
props += `data-download-link-label="${params.get("downloadLabel")}" `;
|
|
||||||
}
|
|
||||||
|
|
||||||
return `<pre class="rainbow-braces diff-highlight line-numbers match-braces ${classes}" ${props}><code class="language-${real_lang}" ${props}>${escapeBraces(code)}</code></pre>`
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @type {import('@sveltejs/kit').Config} */
|
/** @type {import('@sveltejs/kit').Config} */
|
||||||
const config = {
|
const config = {
|
||||||
|
@ -43,8 +10,6 @@ const config = {
|
||||||
preprocess: [
|
preprocess: [
|
||||||
vitePreprocess(),
|
vitePreprocess(),
|
||||||
mdsvex({
|
mdsvex({
|
||||||
extensions: ['.svx'],
|
|
||||||
layout: './src/lib/PostLayout.svelte',
|
|
||||||
highlight: {
|
highlight: {
|
||||||
highlighter
|
highlighter
|
||||||
}
|
}
|
||||||
|
@ -58,9 +23,6 @@ const config = {
|
||||||
// If your environment is not supported or you settled on a specific environment, switch out the adapter.
|
// If your environment is not supported or you settled on a specific environment, switch out the adapter.
|
||||||
// See https://kit.svelte.dev/docs/adapters for more information about adapters.
|
// See https://kit.svelte.dev/docs/adapters for more information about adapters.
|
||||||
adapter: adapter(),
|
adapter: adapter(),
|
||||||
alias: {
|
|
||||||
"$components": "src/components"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue