Skip to content

Commit eb8a98d

Browse files
committed
Add header images for blog posts
1 parent 1d5c758 commit eb8a98d

File tree

9 files changed

+69
-11
lines changed

9 files changed

+69
-11
lines changed

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
6.21 MB
Loading
1.41 MB
Loading

src/content/blog/level-up-your-serverless-game.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ excerpt:
77
"Avoid common serverless pitfalls and level up your game with this
88
comprehensive guide covering logging, tracing, cold starts, security, and
99
deployment strategies."
10+
image: ../../assets/blog/serverless-game.png
1011
---
1112

1213
Is your serverless project running into unexpected snags? You're not alone. From

src/content/blog/make-the-most-out-of-external-workforce.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ excerpt:
77
"Maximize the value of external consultants with effective onboarding, clear
88
communication, and well-defined expectations to ensure they contribute
99
meaningfully to your project."
10+
image: ../../assets/blog/external-engineers.png
1011
---
1112

1213
So, you hired external engineers to help with your project — but now you realize

src/content/config.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ import { defineCollection, z } from "astro:content";
22

33
const blog = defineCollection({
44
type: "content",
5-
schema: z.object({
6-
title: z.string(),
7-
author: z.string(),
8-
date: z.date(),
9-
tags: z.array(z.string()),
10-
excerpt: z.string(),
11-
image: z.string().optional(),
12-
}),
5+
schema: ({ image }) =>
6+
z.object({
7+
title: z.string(),
8+
author: z.string(),
9+
date: z.date(),
10+
tags: z.array(z.string()),
11+
excerpt: z.string(),
12+
image: image().optional(),
13+
}),
1314
});
1415

1516
const customers = defineCollection({

src/i18n/ch.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,21 @@ const ts = {
5050

5151
// Values Section
5252
"values.title": "Üsi Wärte",
53+
"values.empathy.title": "Empathie",
54+
"values.empathy.description":
55+
"Nur wenn mir üsi eigene u d Wärte, Perspektive u Gfühl vo üsem Gegenüber verstöh, chöi mir effizient mit ihne kommuniziere u zämeschaffe. Empathie tribt üs aa, aktiv zloses, enand z ungerstütze u Usefordrige mit Mitgfühl azgah – sei das mit Teammitgliedere, Chunde oder Partner.",
56+
"values.transparency.title": "Transparänz",
57+
"values.transparency.description":
58+
"Offeni Kommunikation schafft Vertroue. Mir pflege transparänti Prozäss u Entscheidigë u steue sicher, dass aui d Informatione hei, wo si bruche. Diräkti Kommunikation hilft üs, Konflikte schnäu z löse u Missverständnis z vermiide.",
59+
"values.ownership.title": "Eigeverantwortig",
60+
"values.ownership.description":
61+
"Eigeverantwortig bedütet, di volli Verantwortig für üsi Büetz u ihri Uswirkigë z übernäh. Mir befähige jedes Teammitglied, i sinere Rolle aus Leader z agiere u mit Verantwortigsbewusstsii u Stolz Ergebnis z erziele. Eigeverantwortig bedütet, d Initiative z ergriffe, proaktiv z handle, us Fähler z lerne u sech kontinuierlich z verbessere.",
62+
"values.passion.title": "Lideschaft",
63+
"values.passion.description":
64+
"Üsi Begeischterig für d Art u Wiis, wie mir schaffe, u für d Lüt u Technologie, mit dene mir zämeschaffe, tribt Innovation u Kreativität aa. Öb bim Ustuusch mit üsere Community, bim Erkunde vo neue Technologie, bim Iitrete für FOSS oder bim Nochgah vo üsere aageborene Nöigier – üsi Lideschaft haut üs inspiriert u motiviert. Mir fire Nerdtum u d Freud am läbeslange Lerne.",
65+
"values.simplicity.title": "Eifachheit",
66+
"values.simplicity.description":
67+
"Sei das i üsere Kommunikation, i Designs, Code oder Verträg – mir eliminiere unnötigi Komplexität i auem, wo mir mache. Indäm mir üs uf das konzentriere, wo würklech wichtig isch, u das i eifache Wörter kommuniziere, erliichtere mir üsem Team, üsne Chunde u Partner, effektiv u sinnvoll zäme z schaffe.",
5368

5469
// What We Do Section
5570
"whatwedo.title": "Was mir mache",

src/i18n/de.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,21 @@ const de = {
5151

5252
// Values Section
5353
"values.title": "Unsere Werte",
54+
"values.empathy.title": "Empathie",
55+
"values.empathy.description":
56+
"Nur durch das Verständnis unserer eigenen und der Werte, Perspektiven und Gefühle unseres Gegenübers können wir effizient mit ihnen kommunizieren und zusammenarbeiten. Empathie treibt uns an, aktiv zuzuhören, einander zu unterstützen und Herausforderungen mit Mitgefühl zu begegnen – sei es mit Teammitgliedern, Kunden oder Partnern.",
57+
"values.transparency.title": "Transparenz",
58+
"values.transparency.description":
59+
"Offene Kommunikation schafft Vertrauen. Wir pflegen transparente Prozesse und Entscheidungen und stellen sicher, dass alle die Informationen haben, die sie benötigen. Direkte Kommunikation hilft uns, Konflikte schnell zu lösen und Missverständnisse zu vermeiden.",
60+
"values.ownership.title": "Eigenverantwortung",
61+
"values.ownership.description":
62+
"Eigenverantwortung bedeutet, die volle Verantwortung für unsere Arbeit und ihre Auswirkungen zu übernehmen. Wir befähigen jedes Teammitglied, in seiner Rolle als Leader zu agieren und mit Verantwortungsbewusstsein und Stolz Ergebnisse zu erzielen. Eigenverantwortung bedeutet, die Initiative zu ergreifen, proaktiv zu handeln, aus Fehlern zu lernen und sich kontinuierlich zu verbessern.",
63+
"values.passion.title": "Leidenschaft",
64+
"values.passion.description":
65+
"Unsere Begeisterung für die Art und Weise, wie wir arbeiten, und für die Menschen und Technologien, mit denen wir zusammenarbeiten, treibt Innovation und Kreativität an. Ob beim Austausch mit unserer Community, beim Erkunden neuer Technologien, beim Eintreten für FOSS oder beim Nachgehen unserer angeborenen Neugier – unsere Leidenschaft hält uns inspiriert und motiviert. Wir feiern Nerdtum und die Freude am lebenslangen Lernen.",
66+
"values.simplicity.title": "Einfachheit",
67+
"values.simplicity.description":
68+
"Sei es in unserer Kommunikation, in Designs, Code oder Verträgen – wir eliminieren unnötige Komplexität in allem, was wir tun. Indem wir uns auf das konzentrieren, was wirklich wichtig ist, und es in einfachen Worten kommunizieren, erleichtern wir es unserem Team, unseren Kunden und Partnern, effektiv und sinnvoll zusammenzuarbeiten.",
5469

5570
// What We Do Section
5671
"whatwedo.title": "Was wir tun",

src/pages/[lang]/blog/[...slug].astro

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
---
2+
import { Image } from "astro:assets";
23
import ContentDetailPage from "../../../layouts/ContentDetailPage.astro";
34
import { getCollectionStaticPaths } from "../../../lib/paths";
45
import { useI18n } from "../../../i18n/utils";
@@ -36,6 +37,8 @@ const canonicalUrl = new URL(Astro.url.pathname, Astro.site).toString();
3637
publishedTime: post.data.date.toISOString(),
3738
author: post.data.author,
3839
tags: post.data.tags,
40+
image: post.data.image?.src,
41+
imageAlt: post.data.title,
3942
}}
4043
structuredData={{
4144
type: "BlogPosting",
@@ -45,8 +48,17 @@ const canonicalUrl = new URL(Astro.url.pathname, Astro.site).toString();
4548
author: post.data.author,
4649
tags: post.data.tags,
4750
url: canonicalUrl,
51+
image: post.data.image?.src,
4852
}}
4953
>
54+
{
55+
post.data.image && (
56+
<div slot="header-after" class="header-image">
57+
<Image src={post.data.image} alt={post.data.title} />
58+
</div>
59+
)
60+
}
61+
5062
<div slot="header-after" class="tags">
5163
{post.data.tags.map((tag: string) => <span class="tag">{tag}</span>)}
5264
</div>
@@ -55,6 +67,19 @@ const canonicalUrl = new URL(Astro.url.pathname, Astro.site).toString();
5567
</ContentDetailPage>
5668

5769
<style>
70+
.header-image {
71+
width: 100%;
72+
margin-bottom: 2rem;
73+
border-radius: 8px;
74+
overflow: hidden;
75+
}
76+
77+
.header-image img {
78+
width: 100%;
79+
height: auto;
80+
display: block;
81+
}
82+
5883
.tags {
5984
display: flex;
6085
flex-wrap: wrap;

0 commit comments

Comments
 (0)