Idk, tryin' to make i18n compatible. Doesn't rly work.
This commit is contained in:
		@@ -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>→</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>
 | 
			
		||||
@@ -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>
 | 
			
		||||
@@ -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>
 | 
			
		||||
@@ -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>
 | 
			
		||||
@@ -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
									
								
							
							
						
						
									
										2
									
								
								src/consts.js
									
									
									
									
									
										Normal 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
									
									
								
							
							
						
						
									
										1
									
								
								src/env.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1 +1,2 @@
 | 
			
		||||
/// <reference types="astro/client" />
 | 
			
		||||
/// <reference path="../.astro/types.d.ts" />
 | 
			
		||||
@@ -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>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								src/layouts/MainLayout.astro
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/layouts/MainLayout.astro
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										0
									
								
								src/pages/404.astro
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										19
									
								
								src/pages/[lang]/index.astro
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/pages/[lang]/index.astro
									
									
									
									
									
										Normal 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>
 | 
			
		||||
@@ -1,4 +0,0 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
<a href="/posts/post-1">Post 01</a>
 | 
			
		||||
@@ -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>
 | 
			
		||||
@@ -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
									
								
							
							
						
						
									
										16
									
								
								src/rss.xml.js
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										42
									
								
								src/style/index.css
									
									
									
									
									
										Normal 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%;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user