ci: migrate GitHub actions to Gitea actions
Deploy CV Site (andreknie.de) / deploy (push) Canceled after 0s

This commit is contained in:
2026-07-22 15:42:06 +02:00
parent e1cf49b0a2
commit b46de6dc7d
649 changed files with 127224 additions and 2786 deletions
@@ -8,7 +8,8 @@ export default function BottomDock() {
const items = [
{ label: 'Home', path: '/', icon: <Home size={20} /> },
{ label: 'Kniepunkt', path: '/kniepunkt', icon: <Newspaper size={20} /> },
{ label: 'Artikel', path: '/artikel', icon: <Newspaper size={20} /> },
{ label: 'Kniepunkt', path: '/kniepunkt', icon: <span style={{ fontWeight: 800, fontSize: '1.2rem', fontFamily: 'serif' }}>K</span> },
{ label: 'Podcast', path: '/podcast', icon: <Mic size={20} /> },
{ label: 'Speaking', path: '/speaking', icon: <MessageSquare size={20} /> },
{ label: 'Beratung', path: '/consulting', icon: <Briefcase size={20} /> },
@@ -19,6 +19,7 @@ export default function Navigation() {
}
const navLinks = [
{ to: '/artikel', label: 'Artikel' },
{ to: '/kniepunkt', label: 'Kniepunkt' },
{ to: '/podcast', label: 'Podcast' },
{ to: '/speaking', label: 'Speaking' },
@@ -0,0 +1,33 @@
import React from 'react'
import { Helmet } from 'react-helmet-async'
export default function SEOHead({ title, description, url, image, type = 'website' }) {
const defaultTitle = "Dr. André Knie - Experte für Digitale Souveränität"
const defaultDescription = "Dr. André Knie unterstützt Organisationen dabei, digitale Souveränität zu erlangen und sicher von KI zu profitieren."
const siteTitle = title ? `${title} | Dr. André Knie` : defaultTitle
const siteDesc = description || defaultDescription
const siteUrl = url ? `https://andreknie.de${url}` : "https://andreknie.de"
const siteImage = image || "https://andreknie.de/images/og-image.jpg"
return (
<Helmet>
<title>{siteTitle}</title>
<meta name="description" content={siteDesc} />
{/* Open Graph / Facebook */}
<meta property="og:type" content={type} />
<meta property="og:url" content={siteUrl} />
<meta property="og:title" content={siteTitle} />
<meta property="og:description" content={siteDesc} />
<meta property="og:image" content={siteImage} />
{/* Twitter */}
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:url" content={siteUrl} />
<meta property="twitter:title" content={siteTitle} />
<meta property="twitter:description" content={siteDesc} />
<meta property="twitter:image" content={siteImage} />
</Helmet>
)
}
@@ -55,6 +55,7 @@
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 2px;
text-align: center;
}
@media (max-width: 600px) {