refactor(vojtechmares.com): migrate homepage to app directory
This commit is contained in:
parent
0370e234ba
commit
b93b731c6b
3 changed files with 113 additions and 20 deletions
62
apps/vojtechmares.com/app/layout.tsx
Normal file
62
apps/vojtechmares.com/app/layout.tsx
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
import type { Metadata } from 'next'
|
||||||
|
import { Analytics } from '@vercel/analytics/react'
|
||||||
|
|
||||||
|
import { Footer } from '@/components/layout/Footer'
|
||||||
|
import { Navigation } from '@/components/layout/Navigation'
|
||||||
|
|
||||||
|
import '@/styles/tailwind.css'
|
||||||
|
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: 'Vojtěch Mareš - DevOps konzultant, lektor, engineer',
|
||||||
|
description: 'Vojtěch Mareš - DevOps konzultant, lektor, engineer',
|
||||||
|
themeColor: '#ffffff',
|
||||||
|
viewport: 'width=device-width, initial-scale=1.0',
|
||||||
|
icons: {
|
||||||
|
icon: [
|
||||||
|
{ url: '/favicon.ico' },
|
||||||
|
{ url: '/favicon-16x16.png', sizes: '16x16', type: 'image/png' },
|
||||||
|
{ url: '/favicon-32x32.png', sizes: '32x32', type: 'image/png' },
|
||||||
|
],
|
||||||
|
shortcut: '/shortcut-icon.png',
|
||||||
|
apple: '/apple-touch-icon.png',
|
||||||
|
other: {
|
||||||
|
rel: 'apple-touch-icon-precomposed',
|
||||||
|
url: '/apple-touch-icon-precomposed.png',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
manifest: '/site.webmanifest',
|
||||||
|
twitter: {
|
||||||
|
card: 'summary_large_image',
|
||||||
|
site: '@vojtechmares',
|
||||||
|
creator: '@vojtechmares',
|
||||||
|
title: 'Vojtěch Mareš - DevOps konzultant, lektor, engineer',
|
||||||
|
images: [
|
||||||
|
{ url: '/og.png' },
|
||||||
|
]
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
const RootLayout = ({ children }: { children: React.ReactNode }) => {
|
||||||
|
return (
|
||||||
|
<html
|
||||||
|
className="h-full scroll-smooth bg-white antialiased [font-feature-settings:'ss01']"
|
||||||
|
lang="cs"
|
||||||
|
>
|
||||||
|
<head>
|
||||||
|
<script
|
||||||
|
defer
|
||||||
|
data-domain="vojtechmares.com"
|
||||||
|
src="https://plausible.io/js/script.js"
|
||||||
|
></script>
|
||||||
|
</head>
|
||||||
|
<body className="flex h-full flex-col">
|
||||||
|
<Navigation />
|
||||||
|
{children}
|
||||||
|
<Footer />
|
||||||
|
<Analytics />
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default RootLayout
|
||||||
|
|
@ -1,29 +1,15 @@
|
||||||
import Head from "next/head";
|
|
||||||
|
|
||||||
import { Header } from "@/components/layout/Header";
|
|
||||||
import { Hero } from "@/components/homepage/Hero";
|
import { Hero } from "@/components/homepage/Hero";
|
||||||
import { CallToAction } from "@/components/homepage/CallToAction";
|
import { CallToAction } from "@/components/homepage/CallToAction";
|
||||||
import { Faqs } from "@/components/homepage/Faqs";
|
import { Faqs } from "@/components/homepage/Faqs";
|
||||||
import { Footer } from "@/components/layout/Footer";
|
|
||||||
import { Services } from "@/components/homepage/Services";
|
import { Services } from "@/components/homepage/Services";
|
||||||
import { WhatIDo } from "@/components/homepage/WhatIDo";
|
import { WhatIDo } from "@/components/homepage/WhatIDo";
|
||||||
import { Testimonials } from "@/components/homepage/Testimonials";
|
import { Testimonials } from "@/components/homepage/Testimonials";
|
||||||
import { KubernetesEverywhere } from "@/components/homepage/KubernetesEverywhere";
|
import { KubernetesEverywhere } from "@/components/homepage/KubernetesEverywhere";
|
||||||
import { TrainingList } from "@/components/homepage/Training";
|
import { TrainingList } from "@/components/homepage/Training";
|
||||||
|
|
||||||
export default function Home() {
|
const Page = () => {
|
||||||
return (
|
return (
|
||||||
<>
|
<main>
|
||||||
<Head>
|
|
||||||
<title>Vojtěch Mareš - DevOps konzultant, lektor, engineer</title>
|
|
||||||
|
|
||||||
<meta
|
|
||||||
name="description"
|
|
||||||
content="Vojtěch Mareš - DevOps konzultant, lektor, engineer"
|
|
||||||
/>
|
|
||||||
</Head>
|
|
||||||
<main>
|
|
||||||
<Header />
|
|
||||||
<Hero />
|
<Hero />
|
||||||
<WhatIDo />
|
<WhatIDo />
|
||||||
<TrainingList />
|
<TrainingList />
|
||||||
|
|
@ -32,8 +18,8 @@ export default function Home() {
|
||||||
<Testimonials />
|
<Testimonials />
|
||||||
<Services />
|
<Services />
|
||||||
{/* <Faqs /> */}
|
{/* <Faqs /> */}
|
||||||
</main>
|
</main>
|
||||||
<Footer />
|
)
|
||||||
</>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default Page
|
||||||
45
apps/vojtechmares.com/components/layout/Navigation.tsx
Normal file
45
apps/vojtechmares.com/components/layout/Navigation.tsx
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
import Link from "next/link";
|
||||||
|
|
||||||
|
import { Container } from "@/components/Container";
|
||||||
|
import { Button } from "@/components/Button";
|
||||||
|
|
||||||
|
export function Navigation() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<header className="py-10">
|
||||||
|
<Container>
|
||||||
|
<nav className="relative z-50 flex justify-between">
|
||||||
|
<div className="flex items-center md:gap-x-12">
|
||||||
|
<span className="text-2xl font-bold">
|
||||||
|
<Link href="/" className="py-2 px-4 rounded-full focus-visible:outline-black">Vojtěch Mareš</Link>
|
||||||
|
</span>
|
||||||
|
<div className="hidden md:flex md:gap-x-6">
|
||||||
|
<Link
|
||||||
|
href="/#skoleni"
|
||||||
|
className="inline-block rounded-full py-2 px-4 text-lg font-medium text-slate-700 hover:bg-slate-100 hover:text-black focus-visible:outline-black"
|
||||||
|
>
|
||||||
|
Školení
|
||||||
|
</Link>
|
||||||
|
{/* <Link href="/pripadove-studie" className="inline-block rounded-full py-2 px-4 text-lg font-medium text-slate-700 hover:bg-slate-100 hover:text-black focus-visible:outline-black">Případové studie</Link> */}
|
||||||
|
<Link
|
||||||
|
href="https://vojtechmares.blog/"
|
||||||
|
className="inline-block rounded-full py-2 px-4 text-lg font-medium text-slate-700 hover:bg-slate-100 hover:text-black focus-visible:outline-black"
|
||||||
|
>
|
||||||
|
Blog
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center gap-x-5 md:gap-x-8">
|
||||||
|
<Button href="mailto:iam@vojtechmares.com" color="amber">
|
||||||
|
<span className="text-lg">
|
||||||
|
Napište mi{" "}
|
||||||
|
<span className="hidden lg:inline">ještě dnes</span>
|
||||||
|
</span>
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</Container>
|
||||||
|
</header>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in a new issue