Restructure and extra stuff

This commit is contained in:
Firq 2024-10-26 22:41:24 +02:00
parent b0fc3a05c5
commit 540dfafdd0
Signed by: Firq
GPG key ID: 3ACC61C8CEC83C20
36 changed files with 250 additions and 68 deletions

8
.gitignore vendored
View file

@ -1,7 +1,6 @@
# build output # build output
dist/ dist/
.output/ .output/
public/
maintenance/ maintenance/
# astro stuff # astro stuff
@ -29,10 +28,3 @@ pnpm-debug.log*
# macOS-specific files # macOS-specific files
.DS_Store .DS_Store
# exclude default png images
static/**/*.png
!static/assets/embed.png
!static/assets/lurker.png
!static/assets/padoru.png
!static/assets/fedora.png

View file

@ -9,7 +9,7 @@ FROM forgejo.neshweb.net/ci-docker-images/website-serve:2 AS runtime
COPY --from=build /app/dist /public COPY --from=build /app/dist /public
COPY --from=build /app/serve.json /public/serve.json COPY --from=build /app/serve.json /public/serve.json
RUN rm -r /public/data/ RUN rm /public/.original.favicon.ico
EXPOSE 8081 EXPOSE 8081
CMD serve public/ -p 8081 CMD serve public/ -p 8081

View file

@ -8,7 +8,7 @@ export default defineConfig({
sitemap: true, sitemap: true,
base: '/', base: '/',
outDir: 'dist', outDir: 'dist',
publicDir: 'static', publicDir: 'public',
site: 'https://firq.dev/', site: 'https://firq.dev/',
integrations: [sitemap(), mdx()] integrations: [sitemap(), mdx()]
}); });

36
package-lock.json generated
View file

@ -1,12 +1,12 @@
{ {
"name": "@firq/fgosite", "name": "@firq/fgosite",
"version": "0.2.0-pre.32", "version": "0.2.0-pre.40",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@firq/fgosite", "name": "@firq/fgosite",
"version": "0.2.0-pre.32", "version": "0.2.0-pre.40",
"dependencies": { "dependencies": {
"@astro-community/astro-embed-youtube": "^0.5.2", "@astro-community/astro-embed-youtube": "^0.5.2",
"@astrojs/check": "^0.9.4", "@astrojs/check": "^0.9.4",
@ -3183,9 +3183,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001669", "version": "1.0.30001671",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001671.tgz",
"integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", "integrity": "sha512-jocyVaSSfXg2faluE6hrWkMgDOiULBMca4QLtDT39hw1YxaIPHWc1CcTCKkPmHgGH6tKji6ZNbMSmUAvENf2/A==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@ -6832,15 +6832,16 @@
} }
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "2.8.7", "version": "3.3.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
"integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
"optional": true, "optional": true,
"peer": true,
"bin": { "bin": {
"prettier": "bin-prettier.js" "prettier": "bin/prettier.cjs"
}, },
"engines": { "engines": {
"node": ">=10.13.0" "node": ">=14"
}, },
"funding": { "funding": {
"url": "https://github.com/prettier/prettier?sponsor=1" "url": "https://github.com/prettier/prettier?sponsor=1"
@ -8281,6 +8282,21 @@
"prettier": "2.8.7" "prettier": "2.8.7"
} }
}, },
"node_modules/yaml-language-server/node_modules/prettier": {
"version": "2.8.7",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz",
"integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==",
"optional": true,
"bin": {
"prettier": "bin-prettier.js"
},
"engines": {
"node": ">=10.13.0"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
"node_modules/yaml-language-server/node_modules/request-light": { "node_modules/yaml-language-server/node_modules/request-light": {
"version": "0.5.8", "version": "0.5.8",
"resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz", "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz",

View file

@ -1,7 +1,7 @@
{ {
"name": "@firq/fgosite", "name": "@firq/fgosite",
"type": "module", "type": "module",
"version": "0.2.0-pre.40", "version": "0.2.0-pre.41",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "astro dev", "dev": "astro dev",

View file

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

View file

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -0,0 +1,37 @@
<svg viewBox="0 0 212 212" xmlns="http://www.w3.org/2000/svg">
<metadata
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<rdf:RDF>
<cc:Work rdf:about="https://codeberg.org/forgejo/governance/src/branch/main/branding#logo">
<dc:title>Forgejo logo</dc:title>
<cc:creator rdf:resource="https://caesarschinas.com/"><cc:attributionName>Caesar Schinas</cc:attributionName></cc:creator>
<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
</rdf:RDF>
</metadata>
<style type="text/css">
:root, svg {
color-scheme: dark light;
}
circle {
fill: none;
stroke: currentColor;
stroke-width: 15;
}
path {
fill: none;
stroke: currentColor;
stroke-width: 25;
}
</style>
<g transform="translate(6,6)">
<path d="M58 168 v-98 a50 50 0 0 1 50-50 h20" />
<path d="M58 168 v-30 a50 50 0 0 1 50-50 h20" />
<circle cx="142" cy="20" r="18" />
<circle cx="142" cy="88" r="18" />
<circle cx="58" cy="180" r="18" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="124.48" height="203.92" version="1.1" viewBox="0 0 124.48 203.92" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x=".0051316" y="-.0039062" width="124.49" height="204" fill="none"/>
<path transform="translate(-58.01 -18.484)" d="m119.56 18.484-61.354 74.137 23.795 27.727-23.992 27.334 62.535 74.725 61.943-75.119-24.582-27.332 17.699-19.666-20.451-24.58-1.377-1.7695-0.01-2.3594 1.1894-4.3262 3.3438-4.3262-2.9512-2.5566-23.006 28.709-12.389-15.141-28.908 35.199-15.141-16.715 43.457-52.111 15.732 19.271 2.7539-3.5391-5.1133-5.5078-3.5391-5.7012-2.5566-5.3105 0.19532-4.5215 3.1465-4.918zm22.811 67.646 2.3613 0.19727 13.223 13.273-8.1113 9.7344-14.748-17.699zm-22.416 9.2422 21.236 24.975-20.844 24.385-21.041-24.777zm-29.105 35.789 29.105 35.594 29.889-35.396 14.158 16.322-43.852 52.896-43.852-52.109z" stroke="#000" stroke-width=".40441"/>
</svg>

After

Width:  |  Height:  |  Size: 1,002 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2.149 0l-1.612 4.119v16.836h5.731v3.045h3.224l3.045-3.045h4.657l6.269-6.269v-14.686h-21.314zm19.164 13.612l-3.582 3.582h-5.731l-3.045 3.045v-3.045h-4.836v-15.045h17.194v11.463zm-3.582-7.343v6.262h-2.149v-6.262h2.149zm-5.731 0v6.262h-2.149v-6.262h2.149z" fill-rule="evenodd" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 394 B

View file

@ -1,6 +1,6 @@
--- ---
import { Image } from 'astro:assets' import { Image } from 'astro:assets'
import mlb_ce from '../../assets/ce/mlb.webp' import mlb_ce from '@assets/ce/mlb.webp'
import type { GlobImage } from '../../types/generic' import type { GlobImage } from '../../types/generic'
import { plsLoadImage } from '../../utils/tools' import { plsLoadImage } from '../../utils/tools'

View file

@ -54,6 +54,10 @@ const display = fadeout ? "": "display: none"
width: 100%; width: 100%;
} }
span {
margin: 0 .5rem;
}
.fancy { .fancy {
color: var(--c-accent-1); color: var(--c-accent-1);
} }

View file

@ -0,0 +1,47 @@
---
import type { ImageMetadata } from 'astro'
export interface Props {
text: string
icon: ImageMetadata
link: string
}
const { text, icon, link } = Astro.props
const icon_src_url = `url("${icon.src}")`
---
<a href={link} target="_blank" rel="noopener noreferrer">
<div class="icon"></div>
<span class="visually-hidden">{text}</span>
</a>
<style define:vars={{ icon_src_url }}>
a {
display: flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
background-color: var(--c-primary-background);
border-radius: .35rem;
border: 2px solid var(--c-primary-text);
}
a:hover {
border-color: var(--c-accent-1);
& .icon {
background: var(--c-accent-1);
}
}
.icon {
mask: var(--icon_src_url) no-repeat center;
mask-size: contain;
background-color: var(--c-primary-text);
height: 65%;
width: 65%;
}
</style>

View file

@ -0,0 +1,58 @@
---
import LinkCard from "./linkCard.astro"
import mastodon from 'iconoir/icons/mastodon.svg'
import youtube from 'iconoir/icons/youtube.svg'
import forgejo from '@assets/custom-svg/forgejo.svg'
import rayshift from '@assets/custom-svg/rayshift.svg'
import twitch from '@assets/custom-svg/twitch.svg'
const links = [
{
link: "https://www.youtube.com/@Firq_",
icon: youtube,
text: "Youtube",
},
{
link: "https://mastodon.neshweb.net/@Firq",
icon: mastodon,
text: "Mastodon",
},
{
link: "https://twitch.tv/Firq",
icon: twitch,
text: "Twitch",
},
{
link: "https://forgejo.neshweb.net/Firq",
icon: forgejo,
text: "Forgejo",
},
{
link: "https://rayshift.io/na/firq",
icon: rayshift,
text: "Rayshift",
}
]
---
<div>
{
links.map(
(item) => <LinkCard {...item} />
)
}
</div>
<style>
div {
margin-top: .75rem;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
width: 100%;
height: auto;
column-gap: 0.5rem;
}
</style>

View file

@ -1,6 +1,6 @@
--- ---
import { Image } from 'astro:assets' import { Image } from 'astro:assets'
import logo from '../../assets/logo.svg' import logo from '@assets/logo.svg'
import hamburger from 'iconoir/icons/menu.svg' import hamburger from 'iconoir/icons/menu.svg'
const hamburger_src_url = `url("${hamburger.src}")` const hamburger_src_url = `url("${hamburger.src}")`
--- ---

View file

@ -58,6 +58,7 @@ const displayBackButton = returnbutton ? "": "display: none"
} }
.head { .head {
margin: 0 .5rem;
hyphens: auto; hyphens: auto;
padding-top: 2rem; padding-top: 2rem;
font-size: 3.25rem; font-size: 3.25rem;
@ -66,6 +67,7 @@ const displayBackButton = returnbutton ? "": "display: none"
} }
.sub { .sub {
margin: 0 .5rem;
font-size: 0.9rem; font-size: 0.9rem;
font-weight: 500; font-weight: 500;
font-family: 'Work Sans Variable', sans-serif; font-family: 'Work Sans Variable', sans-serif;

View file

@ -1,9 +1,12 @@
--- ---
import LinkContainer from "../links/linkContainer.astro";
--- ---
<div class="wrap"> <div class="wrap">
<div class="head">Hi, I'm <span class="fancy">Firq</span></div> <div class="head">Hi, I'm <span class="fancy">Firq</span></div>
<div class="sub">&lt;/ Software dev / Scathach enthusiast / Germany /&gt;</div> <div class="sub">&lt;/ Software dev / Scathach enthusiast / Germany /&gt;</div>
<LinkContainer />
<div class="fade"></div> <div class="fade"></div>
</div> </div>

View file

@ -2,10 +2,10 @@
import "@fontsource-variable/work-sans"; import "@fontsource-variable/work-sans";
import workSans from "@fontsource-variable/work-sans/files/work-sans-latin-wght-normal.woff2" import workSans from "@fontsource-variable/work-sans/files/work-sans-latin-wght-normal.woff2"
import Navbar from '../components/navbar/navbar.astro' import Navbar from '@components/navbar/navbar.astro'
import NavbarEntry from '../components/navbar/navbarEntry.astro' import NavbarEntry from '@components/navbar/navbarEntry.astro'
import navdata from '../../static/data/_navdata.json' import navdata from '@content/data/navdata.json'
import embed from '../assets/embed.png' import embed from '@assets/embed.png'
import home from 'iconoir/icons/home.svg' import home from 'iconoir/icons/home.svg'
import servants from 'iconoir/icons/task-list.svg' import servants from 'iconoir/icons/task-list.svg'
@ -126,6 +126,13 @@ const mapped_navdata = navdata.map((item) => ({
--c-accent-1: #b86cff; --c-accent-1: #b86cff;
--c-accent-1-alt: #c105ff; --c-accent-1-alt: #c105ff;
--c-accent-2: #ff0077; --c-accent-2: #ff0077;
--c-rgb-primary-background: 27, 27, 27;
--c-rgb-secondary-background: 51, 51, 51;
--c-rgb-primary-text: 238, 238, 238;
--c-rgb-accent-1: 184, 108, 255;
--c-rgb-accent-1-alt: 193, 5, 255;
--c-rgb-accent-2: 255, 0, 119;
} }
body { body {
background: var(--c-secondary-background); background: var(--c-secondary-background);

View file

@ -1,5 +1,5 @@
--- ---
import SmallTitle from '../components/titles/smallTitle.astro' import SmallTitle from '@components/titles/smallTitle.astro'
import Layout from './Layout.astro' import Layout from './Layout.astro'
const { frontmatter } = Astro.props const { frontmatter } = Astro.props

View file

@ -1,8 +1,8 @@
--- ---
import okita from '../assets/okita.png' import okita from '@assets/okita.png'
import atlas from '../assets/atlas.png' import atlas from '@assets/atlas.png'
import foxcat from '../assets/lurker.png' import foxcat from '@assets/lurker.png'
import padoru from '../assets/padoru.png' import padoru from '@assets/padoru.png'
import { Image } from 'astro:assets' import { Image } from 'astro:assets'
import packagejson from '../../package.json' import packagejson from '../../package.json'

View file

@ -1,8 +1,8 @@
--- ---
import { Image } from 'astro:assets' import { Image } from 'astro:assets'
import Layout from '../layouts/Layout.astro' import Layout from '@layouts/Layout.astro'
import sadshishou from '../assets/shishousad.webp' import sadshishou from '@assets/shishousad.webp'
import SmallTitle from '../components/titles/smallTitle.astro' import SmallTitle from '@components/titles/smallTitle.astro'
const description = "Error. This shouldn't happen :/" const description = "Error. This shouldn't happen :/"
--- ---

View file

@ -1,14 +1,14 @@
--- ---
import Layout from '../layouts/Layout.astro' import Layout from '@layouts/Layout.astro'
import ContactSection from '../layouts/contactSection.astro' import ContactSection from '@layouts/contactSection.astro'
import ContactCard from '../components/cards/contactCard.astro' import ContactCard from '@components/cards/contactCard.astro'
import contactdata from '../../static/data/_contactdata.json' import contactdata from '@content/data/contactdata.json'
import CustomFooter from '../layouts/customFooter.astro' import CustomFooter from '@layouts/customFooter.astro'
import TechnologyCard from '../components/cards/technologyCard.astro' import TechnologyCard from '@components/cards/technologyCard.astro'
import technologydata from '../../static/data/_technologydata.json' import technologydata from '@content/data/technologydata.json'
import SmallTitle from '../components/titles/smallTitle.astro' import SmallTitle from '@components/titles/smallTitle.astro'
const description = const description =
"A summary of the technologies used as well as my contact information. You'll also find disclaimers and thank you notes for the people that helped me." "A summary of the technologies used as well as my contact information. You'll also find disclaimers and thank you notes for the people that helped me."

View file

@ -1,8 +1,8 @@
--- ---
import Layout from '../../layouts/Layout.astro' import Layout from '@layouts/Layout.astro'
import BlogCard from '../../components/cards/blogCard.astro' import BlogCard from '@components/cards/blogCard.astro'
import BlogSection from '../../layouts/blogSection.astro' import BlogSection from '@layouts/blogSection.astro'
import SmallTitle from '../../components/titles/smallTitle.astro' import SmallTitle from '@components/titles/smallTitle.astro'
import { getCollection } from 'astro:content' import { getCollection } from 'astro:content'
const description = const description =

View file

@ -1,10 +1,10 @@
--- ---
import Layout from '../layouts/Layout.astro' import Layout from '@layouts/Layout.astro'
import BaseSection from '../layouts/baseSection.astro' import BaseSection from '@layouts/baseSection.astro'
import FavouriteCard from '../components/cards/favouriteCard.astro' import FavouriteCard from '@components/cards/favouriteCard.astro'
import favouritesdata from '../../static/data/_favouritesdata.json' import favouritesdata from '@content/data/favouritesdata.json'
import Hi from '../components/titles/title.astro' import Hi from '@components/titles/title.astro'
import AboutText from '../components/aboutText.astro' import AboutText from '@components/aboutText.astro'
const description = const description =
'The very own page of Firq for providing informating about TA servants, listing past TA achievements and hosting a blog for talking about FGO, Programming and other stuff' 'The very own page of Firq for providing informating about TA servants, listing past TA achievements and hosting a blog for talking about FGO, Programming and other stuff'

View file

@ -1,13 +1,13 @@
--- ---
import Layout from '../layouts/Layout.astro' import Layout from '@layouts/Layout.astro'
import ServantSection from '../layouts/servantSection.astro' import ServantSection from '@layouts/servantSection.astro'
import ServantCard from '../components/cards/servantCard.astro' import ServantCard from '@components/cards/servantCard.astro'
import servantdata from '../../static/data/_servantdata.json' import servantdata from '@content/data/servantdata.json'
import CeCard from '../components/cards/ceCard.astro' import CeCard from '@components/cards/ceCard.astro'
import cedata from '../../static/data/_cedata.json' import cedata from '@content/data/cedata.json'
import SmallTitle from '../components/titles/smallTitle.astro' import SmallTitle from '@components/titles/smallTitle.astro'
const description = const description =
'A list of all the servants and ces that Firq can offer up on support for TA.' 'A list of all the servants and ces that Firq can offer up on support for TA.'

View file

@ -5,14 +5,14 @@
// > You could have the notable ones like you do now, but at the bottom, there could be a drop-down or "expand" or "more" or // > You could have the notable ones like you do now, but at the bottom, there could be a drop-down or "expand" or "more" or
// > some other section like that which you could click and show the rest // > some other section like that which you could click and show the rest
import Layout from '../layouts/Layout.astro' import Layout from '@layouts/Layout.astro'
import TaSection from '../layouts/taSection.astro' import TaSection from '@layouts/taSection.astro'
import TaCard from '../components/cards/taCard.astro' import TaCard from '@components/cards/taCard.astro'
import tadata from '../../static/data/_tadata.json' import tadata from '@content/data/tadata.json'
import featured_data from '../../static/data/_featureddata.json' import featured_data from '@content/data/featureddata.json'
import FgotaHero from '../components/fgotaHero.astro' import FgotaHero from '@components/fgotaHero.astro'
import SmallTitle from '../components/titles/smallTitle.astro' import SmallTitle from '@components/titles/smallTitle.astro'
const important_data = tadata.filter(function (el) { const important_data = tadata.filter(function (el) {
return [ return [

View file

@ -1,3 +1,12 @@
{ {
"extends": "astro/tsconfigs/strict" "extends": "astro/tsconfigs/strict",
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@assets/*": [ "src/assets/*" ],
"@components/*": [ "src/components/*" ],
"@content/*": [ "src/content/*" ],
"@layouts/*": [ "src/layouts/*" ]
}
}
} }