Idk, tryin' to make i18n compatible. Doesn't rly work.

This commit is contained in:
2024-03-24 21:19:56 +01:00
parent ec72e14237
commit 0a6ccd4339
20 changed files with 693 additions and 157 deletions

View File

@ -1,61 +0,0 @@
---
interface Props {
title: string;
body: string;
href: string;
}
const { href, title, body } = Astro.props;
---
<li class="link-card">
<a href={href}>
<h2>
{title}
<span>&rarr;</span>
</h2>
<p>
{body}
</p>
</a>
</li>
<style>
.link-card {
list-style: none;
display: flex;
padding: 1px;
background-color: #23262d;
background-image: none;
background-size: 400%;
border-radius: 7px;
background-position: 100%;
transition: background-position 0.6s cubic-bezier(0.22, 1, 0.36, 1);
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}
.link-card > a {
width: 100%;
text-decoration: none;
line-height: 1.4;
padding: calc(1.5rem - 1px);
border-radius: 8px;
color: white;
background-color: #23262d;
opacity: 0.8;
}
h2 {
margin: 0;
font-size: 1.25rem;
transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
p {
margin-top: 0.5rem;
margin-bottom: 0;
}
.link-card:is(:hover, :focus-within) {
background-position: 0;
background-image: var(--accent-gradient);
}
.link-card:is(:hover, :focus-within) h2 {
color: rgb(var(--accent-light));
}
</style>

View File

@ -1,8 +0,0 @@
---
import Social from './Social.astro';
---
<footer class="flex mt-4 gap-4">
<Social platform="github" tld="com" username="blboun3"/>
<Social platform="git.cyrilsebek" tld="cz" username="blboun3" />
</footer>

View File

@ -1,7 +0,0 @@
---
---
<div class="hamburger pr-[20px] cursor-pointer" >
<span class="line block w-[40px] h-[5px] mb-10 bg-[#ff9776]"></span>
<span class="line block w-[40px] h-[5px] mb-10 bg-[#ff9776]"></span>
<span class="line block w-[40px] h-[5px] mb-10 bg-[#ff9776]"></span>
</div>

View File

@ -1,10 +0,0 @@
---
---
<div id="navigation" class="w-full bg-[#ff9776] hidden m-0 left-12 top-20">
<a href="/" class="block text-center no-underline text-[1.2rem] font-[bold] uppercase px-0 py-2.5">Home</a>
<a href="/blog/" class="block text-center no-underline text-[1.2rem] font-[bold] uppercase px-0 py-2.5">Blog</a>
</div>
<style>
</style>

View File

@ -1,4 +0,0 @@
---
const { platform, tld, username } = Astro.props;
---
<a href={`https://${platform}.${tld}/${username}`} class="py-2 px-4 text-white bg-[#4c1d95]">{platform}</a>

2
src/consts.js Normal file
View File

@ -0,0 +1,2 @@
export const SITE_TITLE = 'Astro Blog';
export const SITE_DESCRIPTION = 'Welcome to my website!';

1
src/env.d.ts vendored
View File

@ -1 +1,2 @@
/// <reference types="astro/client" />
/// <reference path="../.astro/types.d.ts" />

View File

@ -1,31 +0,0 @@
---
import Navigation from '../components/Navigation.astro';
import Footer from '../components/Footer.astro';
import Hamburger from '../components/Hamburger.astro';
interface Props {
title: string;
lang: string;
}
const { title, lang } = Astro.props;
---
<!doctype html>
<html lang={lang}>
<head>
<meta charset="UTF-8" />
<meta name="description" content="Astro description" />
<meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="generator" content={Astro.generator} />
<title>{title}</title>
</head>
<body>
<Hamburger />
<Navigation />
<slot />
<Footer />
</body>
</html>

View File

@ -0,0 +1,15 @@
---
const { title, description, lang } = Astro.props;
---
<!DOCTYPE html>
<html lang={lang}>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content={description}>
<title>{title}</title>
</head>
<body>
<slot/>
</body>
</html>

0
src/pages/404.astro Normal file
View File

View File

@ -0,0 +1,19 @@
---
import { getLocaleByPath } from "astro:i18n";
import MainLayout from "../../layouts/MainLayout.astro";
export async function getStaticPaths() {
return ["en", "fr", "cs", "de"].map((lang) => {
return { params: { lang } };
});
}
---
<MainLayout title="sitetitle" description="sitedescription" lang={Astro.currentLocale}>
<h1>Welcome</h1>
<p>
"homeP1"
{Astro.url.toString()}
{getLocaleByPath(Astro.currentLocale)}
</p>
</MainLayout>

View File

@ -1,4 +0,0 @@
---
---
<a href="/posts/post-1">Post 01</a>

View File

@ -1,5 +1,13 @@
---
import Layout from "../layouts/Layout.astro"
import { getLocaleByPath } from "astro:i18n";
import MainLayout from "../layouts/MainLayout.astro";
---
<Layout title='Welcome!' lang='en'>
</Layout>
<MainLayout title="sitetitle" description="sitedescription" lang="en">
<h1>Welcome</h1>
<p>
"homeP1"
{Astro.url.toString()}
{getLocaleByPath("en")}
</p>
</MainLayout>

View File

@ -1,27 +0,0 @@
---
title: 'My First Blog Post'
pubDate: 2022-07-01
description: 'This is the first post of my new Astro blog.'
author: 'Astro Learner'
image:
url: 'https://docs.astro.build/assets/full-logo-light.png'
alt: 'The full Astro logo.'
tags: ["astro", "blogging", "learning in public"]
---
# My First Blog Post
Published on: 2022-07-01
Welcome to my _new blog_ about learning Astro! Here, I will share my learning journey as I build a new website.
## What I've accomplished
1. **Installing Astro**: First, I created a new Astro project and set up my online accounts.
2. **Making Pages**: I then learned how to make pages by creating new `.astro` files and placing them in the `src/pages/` folder.
3. **Making Blog Posts**: This is my first blog post! I now have Astro pages and Markdown posts!
## What's next
I will finish the Astro tutorial, and then keep adding more posts. Watch this space for more to come.

16
src/rss.xml.js Normal file
View File

@ -0,0 +1,16 @@
import rss from '@astrojs/rss';
import { getCollection } from 'astro:content';
import { SITE_TITLE, SITE_DESCRIPTION } from '../consts';
export async function GET(context) {
const posts = await getCollection('blog');
return rss({
title: SITE_TITLE,
description: SITE_DESCRIPTION,
site: context.site,
items: posts.map((post) => ({
...post.data,
link: `/blog/${post.slug}/`,
})),
});
}

42
src/style/index.css Normal file
View File

@ -0,0 +1,42 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
/*
Light Mode: https://www.realtimecolors.com/dashboard?colors=161618-f0f0f0-FFE500-dbddff-6120cf&fonts=Poppins-Poppins
Dark Mode: https://www.realtimecolors.com/dashboard?colors=e7e7e9-0f0f0f-5819c5-000224-ffe500&fonts=Poppins-Poppins
*/
@layer base {
:root {
--color-bkg: 0deg, 0%, 94%;
--color-content: 240deg, 4%, 9%;
--color-primary: 54deg, 100%, 50%;
--color-secondary: 237deg, 100%, 93%;
--color-accent: 262deg, 73%, 47%;
}
@media (prefers-color-scheme: dark) {
:root {
--color-bkg: 0deg, 0%, 6%;
--color-content: 240deg, 4%, 91%;
--color-primary: 262deg, 77%, 44%;
--color-secondary: 237deg, 100%, 7ˇ;
--color-accent: 54deg, 100%, 50%;
}
}
:root[data-theme="dark"] {
--color-bkg: 0deg, 0%, 6%;
--color-content: 240deg, 4%, 91%;
--color-primary: 262deg, 77%, 44%;
--color-secondary: 237deg, 100%, 7ˇ;
--color-accent: 54deg, 100%, 50%;
}
:root[data-theme="light"] {
--color-bkg: 0deg, 0%, 94%;
--color-content: 240deg, 4%, 9%;
--color-primary: 54deg, 100%, 50%;
--color-secondary: 237deg, 100%, 93%;
--color-accent: 262deg, 73%, 47%;
}
}