Compare commits

...

8 commits

Author SHA1 Message Date
638e78d89e add new blogpost 2023-05-27 10:57:32 +02:00
c65b3d61c7 base post 2023-05-27 10:57:15 +02:00
ba9c217156 redo the NoJS stuff 2023-05-27 10:57:07 +02:00
c652fd1575 add new font 2023-05-27 10:56:35 +02:00
aa999243e7 ow in bottles draft 2023-05-27 06:04:07 +02:00
b0c57f4cd8 add profile api endpoint for verification 2023-05-27 06:03:49 +02:00
a35a91b710 randomize greeting and remove api/hello 2023-05-27 06:03:32 +02:00
51916e10c8 add bluesky 2023-05-27 06:02:35 +02:00
15 changed files with 125 additions and 62 deletions

9
src/blog/base.md Normal file
View file

@ -0,0 +1,9 @@
---
title: Base post
date: [2023, 03, 11]
hidden: true
---
# Example Headline
Text Body

View file

@ -1,6 +1,7 @@
---
title: Mouse losing focus in Overwatch 2 on Linux
title: "Mouse losing focus in Overwatch 2 on Linux"
date: [2023, 03, 11]
hidden: true
---
# Mouse losing focus in Overwatch 2 on Linux

14
src/blog/social-media.md Normal file
View file

@ -0,0 +1,14 @@
---
title: "[Rant] Social Media is tiring"
date: [2023, 05, 27]
# hidden: true
---
# Social Media is tiring
In today's digital age, social media has become a huge part of our lives. Especially with their constant updates, notifications, and "important" Features. It's hard to keep up with all of them.
I myself have a lot of accounts on [different Sites and Apps](/api/profiles), and a few others not listed there.
The ones I'm currently active on are [Bluesky](https://staging.bsky.app/profile/did:plc:wherpiavw4rekzkmc6egfy4y), [Twitter](https://twitter.com/@himbolion), and [Mastodon](https://pounced-on.me/@lio), in that order. But I rarely post on any of them because I'm usually too tired to post something "funny" or relatable.
It's worsend by the fact that there's some new Drama within the Furry Community every other week, and I'm just tired of it. It's usually about really stupid puratanical stuff, or some other stupid thing that doesn't really matter either. It's really tiring to keep seeing stuff like this and the general infighting over stupid bullshit that outsiders/"normies" would think was weird regardless of what it was about.

View file

@ -12,6 +12,7 @@ const constants = {
github: "https://github.com/himbolion",
libera: "https://liberapay.com/himbolion/",
email: "mailto:twilight@lio.zone",
bluesky: "https://staging.bsky.app/profile/did:plc:wherpiavw4rekzkmc6egfy4y"
}
}
export default constants

View file

@ -2,10 +2,11 @@ import constants from "@/lib/constants"
const getProfiles = () => {
return [
{ site: "fediverse", link: constants.socials.fedi },
{ site: "bluesky", link: constants.socials.bluesky },
{ site: "twitter", link: constants.socials.twitter },
{ site: "fediverse", link: constants.socials.fedi },
{ site: "liberapay", link: constants.socials.libera },
{ site: "cohost", link: constants.socials.cohost },
// { site: "cohost", link: constants.socials.cohost },
{ site: "forgejo", link: constants.socials.git },
{ site: "github", link: constants.socials.github },
{ site: "email", link: constants.socials.email },

View file

@ -1,13 +0,0 @@
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
import type { NextApiRequest, NextApiResponse } from 'next'
type Data = {
name: string
}
export default function handler(
req: NextApiRequest,
res: NextApiResponse<Data>
) {
res.status(200).json({ name: 'John Doe' })
}

View file

@ -0,0 +1,7 @@
import type { NextApiRequest, NextApiResponse } from 'next'
import constants from "@/lib/constants"
export default function handler(req: NextApiRequest, res: NextApiResponse<Data>) {
res.status(200).json({...constants.socials})
}

View file

@ -13,31 +13,35 @@ import Head from "next/head";
import matter from "gray-matter";
const Post = (props: { post: string, slug: string, matter: any }) => {
let Index = (
<main id={index.layout}>
<Head>
<title>{props.matter.title}</title>
</Head>
<Sidebar />
<section id={index.main}>
<Markdown
children={props.post}
options={{
overrides: {
a: ({ ...props }) => <Link href={props.href} title={props.children} withArrow />,
img: ({ ...props }) => <Image src={props.src} alt={props.alt} />,
p: ({ children, ...props }) => {
const ParaComponent = children[0]?.type?.name === 'img' ? 'div' : 'p'
return <ParaComponent {...props}>{children}</ParaComponent>
},
}
}}
/>
</section>
<Lanyard />
</main>
// console.log(props.matter)
return (
<RenderWithoutJS>
<main id={index.layout}>
<Head>
<title>{props.matter.title} | lio's blog</title>
</Head>
<Sidebar />
<section id={index.main}>
<Markdown
children={props.post}
options={{
overrides: {
a: ({ ...props }) => <Link href={props.href} title={props.children} withArrow />,
img: ({ ...props }) => <Image src={props.src} alt={props.alt} />,
p: ({ children, ...props }) => {
const ParaComponent = children[0]?.type?.name === 'img' ? 'div' : 'p'
return <ParaComponent {...props}>{children}</ParaComponent>
},
}
}}
/>
</section>
<Lanyard />
</main>
</RenderWithoutJS>
);
return <RenderWithoutJS children={Index} />
};
export default Post
@ -48,7 +52,7 @@ export async function getStaticProps(context: any) {
.process(await read(`${listFiles('./src/blog').find(file => file.includes(context.params.slug))}`))
return {
props: {
post: (post.value as string).replace(/(---)\n*([a-zA-Z0-9\/\[\]_:,\-\s*]*)*/mi, ""),
post: (post.value as string).replace(/^(---)\n*([a-zA-Z0-9\/\#[\]\"_:,\-\s*]*)(---)$/mi, ""),
matter: matter(post.value).data,
slug: context.params.slug
}
@ -59,6 +63,7 @@ export async function getStaticProps(context: any) {
export async function getStaticPaths() {
let path = './src/blog'
let paths = listFiles(path).map(file => file.replace(path, "/blog").replace(/.mdx?/gmi, ''))
// console.log(paths)
return {
paths,
fallback: true

View file

@ -9,10 +9,10 @@ import PostList from "@/components/PostList";
import Head from "next/head"
const IndexPage = (props: { posts: [{ title: string, date: string, link: string }] }) => {
let Index = (
return (<RenderWithoutJS>
<main id={index.layout}>
<Head>
<title>blog</title>
<title>lio's blog</title>
</Head>
<Sidebar />
<section id={index.blogMain}>
@ -22,8 +22,7 @@ const IndexPage = (props: { posts: [{ title: string, date: string, link: string
<Lanyard />
{/* <Copyright /> */}
</main>
);
return <RenderWithoutJS children={Index} />
</RenderWithoutJS>)
};
export default IndexPage

View file

@ -6,27 +6,39 @@ import Lanyard from "@/components/Lanyard"
import Head from "next/head"
import Link from "@/components/Link";
const Hello = ["Ahoy!", "Ahoy there!", "Hey there!", "Howdy howdy!", "Howdy, friend!", "Howdy!", "Hey!", "Hey there!", "Hi!", "Hello!", "Hello there!", "Hi there!"];
function randomHello() {
return Hello[Math.floor(Math.random() * Hello.length)];
}
const IndexPage = () => {
let Index = (
<main id={index.layout}>
<Head>
<title>lio</title>
</Head>
<Sidebar />
<section id={index.main}>
<h1>hi there!</h1>
<p>
my name's lio. i'm a 21y/o software engineer and student from germany.
</p>
{/* <p>
return (
<RenderWithoutJS>
<main id={index.layout}>
<Head>
<title>lio</title>
</Head>
<Sidebar />
<section id={index.main}>
<h1>
<noscript>Hey there!</noscript>
{randomHello()}
</h1>
<p>
my name's lio. i'm a 21y/o software dev student and ui designer from germany.
</p>
{/* <p>
you might know me from Projects like <Link />
</p> */}
</section>
<Lanyard />
{/* <Copyright /> */}
</main>
</section>
<Lanyard />
{/* <Copyright /> */}
</main>
</RenderWithoutJS>
);
return <RenderWithoutJS children={Index} />
};
export default IndexPage

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -5,6 +5,8 @@
margin: 0
text-decoration: none
word-wrap: break-word
font-feature-settings: "kern" on, "liga" on
text-rendering: optimizeLegibility
html
font-family: "Flachbau"
@ -19,6 +21,31 @@ html
src: local("fonts/Flachbau.ttf") format("truetype")
src: url("fonts/Flachbau.ttf") format("truetype")
@font-face
font-family: "Times New Bastard"
src: local("fonts/tnb/TimesNewBastard-BoldItalicWeb.ttf") format("truetype")
src: url("fonts/tnb/TimesNewBastard-BoldItalicWeb.ttf") format("truetype")
font-weight: bold
font-style: italic
@font-face
font-family: "Times New Bastard"
src: local("fonts/tnb/TimesNewBastard-BoldWeb.ttf") format("truetype")
src: url("fonts/tnb/TimesNewBastard-BoldWeb.ttf") format("truetype")
font-weight: bold
font-style: normal
@font-face
font-family: "Times New Bastard"
src: local("fonts/tnb/TimesNewBastard-ItalicWeb.ttf") format("truetype")
src: url("fonts/tnb/TimesNewBastard-ItalicWeb.ttf") format("truetype")
font-weight: normal
font-style: italic
@font-face
font-family: "Times New Bastard"
src: local("fonts/tnb/TimesNewBastard-RegularWeb.ttf") format("truetype")
src: url("fonts/tnb/TimesNewBastard-RegularWeb.ttf") format("truetype")
font-weight: normal
font-style: normal
h1
font-size: $h1-size
p