Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
ImgBotApp | 1afb773aa2 | 2 years ago |
@ -1,10 +1,3 @@
|
|||||||
.git
|
|
||||||
node_modules
|
node_modules
|
||||||
.eslint*
|
.git
|
||||||
.prettier*
|
|
||||||
.git*
|
|
||||||
.vscode
|
|
||||||
Containerfile*
|
|
||||||
public
|
|
||||||
.svelte-kit
|
|
||||||
build
|
build
|
@ -0,0 +1,13 @@
|
|||||||
|
.DS_Store
|
||||||
|
node_modules
|
||||||
|
/build
|
||||||
|
/.svelte-kit
|
||||||
|
/package
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
||||||
|
|
||||||
|
# Ignore files for PNPM, NPM and YARN
|
||||||
|
pnpm-lock.yaml
|
||||||
|
package-lock.json
|
||||||
|
yarn.lock
|
@ -0,0 +1,20 @@
|
|||||||
|
module.exports = {
|
||||||
|
root: true,
|
||||||
|
parser: '@typescript-eslint/parser',
|
||||||
|
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
|
||||||
|
plugins: ['svelte3', '@typescript-eslint'],
|
||||||
|
ignorePatterns: ['*.cjs'],
|
||||||
|
overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }],
|
||||||
|
settings: {
|
||||||
|
'svelte3/typescript': () => require('typescript')
|
||||||
|
},
|
||||||
|
parserOptions: {
|
||||||
|
sourceType: 'module',
|
||||||
|
ecmaVersion: 2020
|
||||||
|
},
|
||||||
|
env: {
|
||||||
|
browser: true,
|
||||||
|
es2017: true,
|
||||||
|
node: true
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,13 @@
|
|||||||
|
.DS_Store
|
||||||
|
node_modules
|
||||||
|
/build
|
||||||
|
/.svelte-kit
|
||||||
|
/package
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
||||||
|
|
||||||
|
# Ignore files for PNPM, NPM and YARN
|
||||||
|
pnpm-lock.yaml
|
||||||
|
package-lock.json
|
||||||
|
yarn.lock
|
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"useTabs": true,
|
||||||
|
"singleQuote": true,
|
||||||
|
"trailingComma": "none",
|
||||||
|
"printWidth": 100,
|
||||||
|
"plugins": ["prettier-plugin-svelte"],
|
||||||
|
"pluginSearchDirs": ["."],
|
||||||
|
"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
|
||||||
|
}
|
@ -1,20 +1,23 @@
|
|||||||
FROM docker.io/node:20.5.0-alpine AS builder
|
FROM docker.io/node:16.19.0-alpine AS builder
|
||||||
|
|
||||||
|
# install dependencies
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY package.json package-lock.json ./
|
COPY package.json package-lock.json ./
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
|
|
||||||
|
# Copy all local files into the image.
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
|
###
|
||||||
FROM docker.io/node:20.5.0-alpine
|
# Only copy over the Node pieces we need
|
||||||
|
# ~> Saves 35MB
|
||||||
|
###
|
||||||
|
FROM docker.io/nginx:alpine
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY package.json package-lock.json .
|
COPY --from=builder /app/build /usr/share/nginx/html
|
||||||
RUN npm ci --omit dev
|
COPY nginx.conf /etc/nginx/nginx.conf
|
||||||
COPY --from=builder /app/build /app
|
|
||||||
EXPOSE 3000
|
|
||||||
|
|
||||||
CMD ["node", "."]
|
CMD ["nginx", "-g", "daemon off;"]
|
@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://biomejs.dev/schemas/1.3.3/schema.json",
|
|
||||||
"organizeImports": {
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
"linter": {
|
|
||||||
"enabled": true,
|
|
||||||
"rules": {
|
|
||||||
"recommended": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,37 @@
|
|||||||
|
user nginx;
|
||||||
|
worker_processes auto;
|
||||||
|
|
||||||
|
error_log /var/log/nginx/error.log notice;
|
||||||
|
pid /var/run/nginx.pid;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
|
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||||
|
access_log /var/log/nginx/access.log main;
|
||||||
|
sendfile on;
|
||||||
|
keepalive_timeout 65;
|
||||||
|
gzip on;
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name localhost;
|
||||||
|
index index.html index.htm;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
try_files $uri$args $uri$args/ /index.html;
|
||||||
|
}
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,80 +0,0 @@
|
|||||||
@use "./colors.scss";
|
|
||||||
@import "https://cdn.jsdelivr.net/npm/remixicon@3.2.0/fonts/remixicon.css";
|
|
||||||
|
|
||||||
html {
|
|
||||||
background-color: rgba(14, 1, 20, 1);
|
|
||||||
background-image:
|
|
||||||
radial-gradient(white, rgba(255,153,255,.2) 2px, transparent 40px),
|
|
||||||
radial-gradient(white, rgba(255,153,255,.15) 1px, transparent 30px),
|
|
||||||
radial-gradient(white, rgba(255,153,255,.1) 2px, transparent 50px),
|
|
||||||
radial-gradient(rgba(255,153,255,.4), rgba(255,153,255,.1) 2px, transparent 30px);
|
|
||||||
background-size: 550px 550px, 350px 350px, 250px 250px, 150px 150px;
|
|
||||||
background-position: 0 0, 40px 60px, 130px 270px, 70px 100px;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
font-family: "Lexend","Noto Sans", "Verdana", sans-serif;
|
|
||||||
color: colors.$text;
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
image-orientation: from-image;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
text-decoration-line: underline;
|
|
||||||
text-decoration-color: colors.$secondary;
|
|
||||||
text-decoration-thickness: .125em;
|
|
||||||
color: colors.$text;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
border: 1px solid colors.$highlight;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
background-color: colors.$highlight;
|
|
||||||
color: colors.$highlight-text;
|
|
||||||
border: none;
|
|
||||||
height: 2.5em;
|
|
||||||
padding: 0.5em;
|
|
||||||
border-radius: 0.5em;
|
|
||||||
transition-duration: 0.25s;
|
|
||||||
font-size: 1em;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
cursor: pointer;
|
|
||||||
background-color: lighten(colors.$highlight, 5%);
|
|
||||||
}
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
background-color: darken(colors.$highlight, 5%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.float-left {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.float-right {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.card {
|
|
||||||
width: 60%;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 500px) {
|
|
||||||
.card {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 500px) and (max-width: 1000px) {
|
|
||||||
.card {
|
|
||||||
width: 75%;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
$background: rgba(14, 1, 20, 1);
|
|
||||||
|
|
||||||
$highlight: white;
|
|
||||||
$secondary: white;
|
|
||||||
|
|
||||||
$highlight-text: black;
|
|
||||||
$text: white;
|
|
||||||
$inactive-text: lighten($text, 20%);
|
|
||||||
$highlight-inactive-text: darken($highlight-text, 20%);
|
|
||||||
|
|
||||||
$blue: #848fab;
|
|
||||||
$yellow: #a7ad86;
|
|
||||||
$red: #a88b83;
|
|
After Width: | Height: | Size: 351 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 285 KiB After Width: | Height: | Size: 273 KiB |
Before Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 7.7 KiB |
@ -1,21 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import "../app.scss";
|
|
||||||
|
|
||||||
import { onNavigate } from "$app/navigation";
|
|
||||||
|
|
||||||
|
|
||||||
onNavigate((navigation) => {
|
|
||||||
// @ts-expect-error
|
|
||||||
if (!document.startViewTransition) return;
|
|
||||||
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
// @ts-expect-error
|
|
||||||
document.startViewTransition(async () => {
|
|
||||||
resolve();
|
|
||||||
await navigation.complete;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<slot />
|
|
@ -1 +1,2 @@
|
|||||||
|
export const csr = false;
|
||||||
export const prerender = true;
|
export const prerender = true;
|
@ -1,28 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
export let name: string;
|
|
||||||
export let href: string;
|
|
||||||
export let description: string;
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div class="project">
|
|
||||||
<div>
|
|
||||||
<a {href}><h2>{name}</h2></a>
|
|
||||||
</div>
|
|
||||||
<p>{description}</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.project {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
margin-top: 1em;
|
|
||||||
width: 100%;
|
|
||||||
a {
|
|
||||||
display: inline;
|
|
||||||
color: white;
|
|
||||||
h2 {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"subject":"acct:trivernis@social.funkyfish.cool",
|
|
||||||
"aliases":
|
|
||||||
[
|
|
||||||
"https://social.funkyfish.cool/@trivernis"
|
|
||||||
],
|
|
||||||
"links":
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"rel":"self",
|
|
||||||
"type":"application/activity+json",
|
|
||||||
"href":"https://social.funkyfish.cool/@trivernis"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"rel":"http://webfinger.net/rel/profile-page",
|
|
||||||
"type":"text/html",
|
|
||||||
"href":"https://social.funkyfish.cool/@trivernis"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
After Width: | Height: | Size: 351 KiB |
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 285 KiB After Width: | Height: | Size: 273 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 4.1 KiB |