Du hast also beschlossen, dass du meine Hilfe brauchst. Cool!
+
Du hast also beschlossen, dass du meine Hilfe brauchst. Cool!
Manchmal brauchen wir alle einfach nur eine Kleinigkeit und wollen uns nicht lange binden. Das ist natürlich
- völlig in Ordnung und genau deshalb biete ich dir die Möglichkeit mich gezielt für kleinere Projekte zu buchen.
-
Hinter diesen Angeboten gibt es keinerlei Abos oder versteckte Kosten.
- Aus Transparenzgründen sei aber gesagt, dass sich alle Preise zzgl. 19 % Umsatzsteuer verstehen.
+ völlig in Ordnung und genau deshalb biete ich dir die Möglichkeit mich gezielt für kleinere Projekte zu buchen.
+
Hinter diesen Angeboten gibt es keinerlei Abos oder versteckte Kosten.
+ Aus Transparenzgründen sei aber gesagt, dass sich alle Preise zzgl. 19 % Umsatzsteuer verstehen.
Kannst ruhig in meine DMs sliden. Oder in's Postfach.
+
Kontakt & Social Media
+
Kannst ruhig in meine DMs sliden. Oder in's Postfach.
Du willst einfach nur 'ne Mail schreiben?
@@ -12,7 +12,7 @@
Ich auf Social Media
-
Falls du irgendwo einen anderen Social Media Account von mir findest, der nicht hier aufgelistet ist, aber aktiv postet, dann ist dieser höchstwahrscheinlich Fake.
+
Falls du irgendwo einen anderen Social Media Account von mir findest, der nicht hier aufgelistet ist, aber aktiv postet, dann ist dieser höchstwahrscheinlich Fake.
Meld' dich gerne bei mir, wenn du so einen findest.
- Component & API Entwicklerin
+ Component & API Entwicklerin
Ich unterstütze Unternehmen dabei, ihre Daten von verschiedenen Endpunkten sauber aufzubereiten
diff --git a/app/components/Section/Skills.vue b/app/components/Section/Skills.vue
index 53d8554..3d61b24 100755
--- a/app/components/Section/Skills.vue
+++ b/app/components/Section/Skills.vue
@@ -1,7 +1,7 @@
Meine Expertise.
-
Dies sind meine Spezialgebiete - aber ich bin flexibel!
+
Dies sind meine Spezialgebiete - aber ich bin flexibel!
+
+
\ No newline at end of file
diff --git a/app/pages/flatrate.vue b/app/pages/flatrate.vue
index c1c2191..1eb8f68 100755
--- a/app/pages/flatrate.vue
+++ b/app/pages/flatrate.vue
@@ -3,3 +3,10 @@
+
+
\ No newline at end of file
diff --git a/app/pages/index.vue b/app/pages/index.vue
index 206f51b..72ab00e 100755
--- a/app/pages/index.vue
+++ b/app/pages/index.vue
@@ -14,4 +14,9 @@ useHead({
{ rel: 'icon', href: '/favicon.ico', type: 'image/x-icon' },
],
})
+
+useSeoMeta({
+ title: 'Home',
+ description: 'Webprojekte und Retainer mit Fusselqualität. Du brauchst eine Website mit CMS? Bock auf Flatrate? webfussel by Fiona Urban',
+})
\ No newline at end of file
diff --git a/app/pages/references.vue b/app/pages/references.vue
index e586151..3b724af 100755
--- a/app/pages/references.vue
+++ b/app/pages/references.vue
@@ -2,4 +2,11 @@
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/composables/faq.ts b/app/utils/markdown.ts
similarity index 52%
rename from app/composables/faq.ts
rename to app/utils/markdown.ts
index c8ce67c..adeaec8 100644
--- a/app/composables/faq.ts
+++ b/app/utils/markdown.ts
@@ -1,5 +1,12 @@
import type { MinimalElement, MinimalNode } from '@nuxt/content'
+type TypedRecord = Record
+
+type PlainText = {
+ meta: TypedRecord
+ text: string
+}
+
const extractText = (element ?: MinimalNode) : string => {
if (!element) return ''
if (typeof element === 'string') return element
@@ -7,13 +14,13 @@ const extractText = (element ?: MinimalNode) : string => {
return nodes?.map((el : MinimalNode) => typeof el === 'string' ? el : extractText(el)).join(' ') ?? ''
}
-export const usePlainFaq = (body ?: MinimalNode[]) => {
+export const generatePlainText = (body ?: MinimalNode[]) : PlainText[] => {
if (!body) return []
- return body.map(part => {
+ return body.map>(part => {
const [, meta] = part as MinimalElement
return {
- question: meta.title,
- answer: extractText(part).replace(/\n/g, ' ')
+ meta : meta as TypedRecord,
+ text: extractText(part).replace(/\n/g, ' ')
}
})
}
diff --git a/content/snippets/faq/booking.md b/content/snippets/faq/booking.md
index 72baf1c..2af58b4 100644
--- a/content/snippets/faq/booking.md
+++ b/content/snippets/faq/booking.md
@@ -63,5 +63,5 @@ Tja.
Ne, awas. Meld dich einfach trotzdem über meine E-Mail-Adresse und vielleicht finden wir eine Lösung.
-Du findest weitere Kontaktmöglichkeiten auf meiner [Kontakt-Seite ](contact/){class="text inline-flex-row"}.
+Du findest weitere Kontaktmöglichkeiten auf meiner [Kontakt-Seite ](/contact/){class="text inline-flex-row"}.
::
\ No newline at end of file
From cffb719a056b85680b7b3a31764d80dafb87eae6 Mon Sep 17 00:00:00 2001
From: webfussel
Date: Thu, 10 Jul 2025 10:05:08 +0200
Subject: [PATCH 08/10] fix: caching of FAQ
Fix wrong caching of FAQs for correct generation
---
app/components/Section/Booking.vue | 57 +++++-----
app/components/Section/Flatrate.vue | 155 +++++++++++++++-------------
2 files changed, 117 insertions(+), 95 deletions(-)
diff --git a/app/components/Section/Booking.vue b/app/components/Section/Booking.vue
index b88eed5..ca9d9fa 100755
--- a/app/components/Section/Booking.vue
+++ b/app/components/Section/Booking.vue
@@ -1,33 +1,44 @@
Projekt buchen
-
Paketpreise für feste Ergebnisse.
+
Paketpreise für
+ feste Ergebnisse
+ .
+
Manchmal brauchen wir alle einfach nur eine Kleinigkeit und wollen uns nicht lange binden. Das ist natürlich
- völlig in Ordnung und genau deshalb biete ich dir die Möglichkeit mich gezielt für kleinere Projekte zu buchen.
-
Hinter diesen Angeboten gibt es keinerlei Abos oder versteckte Kosten.
- Aus Transparenzgründen sei aber gesagt, dass sich alle Preise zzgl. 19 % Umsatzsteuer verstehen.
+ völlig in Ordnung und genau deshalb biete ich dir die Möglichkeit mich gezielt für
+ kleinere Projekte
+ zu buchen.
+
+
Hinter diesen Angeboten gibt es
+ keinerlei Abos oder versteckte Kosten
+ .
+ Aus Transparenzgründen sei aber gesagt, dass sich
+ alle Preise zzgl. 19 % Umsatzsteuer
+ verstehen.
+
Genieße fusselige Qualität ohne groß herumzurechnen.
+
Genieße fusselige
+ Qualität
+ ohne groß herumzurechnen.
+
-
Bei dir fällt ständig was an oder du hast ein langlaufendes Projekt, bei dem du immer wieder mal Unterstützung brauchst? Kein Ding.
- Hier gibt's die Entwickler-Flat für planbare Kosten und On-Demand-Entwicklung.
-
Aus Transparenzgründen sei gesagt, dass sich alle Preise zzgl. 19 % Umsatzsteuer verstehen.
+
Bei dir fällt ständig was an oder du hast ein langlaufendes Projekt, bei dem du immer wieder mal Unterstützung brauchst?
+ Kein Ding.
+ Hier gibt's die
+ Entwickler-Flat
+ für planbare Kosten und On-Demand-Entwicklung.
+
+
Aus Transparenzgründen sei gesagt, dass sich
+ alle Preise zzgl. 19 % Umsatzsteuer
+ verstehen.
+
-
+
Beschd
- {{service.title}}
-
{{service.smallClaim}}
-
{{intl.format(service.price)}}/ Monat
+ {{ service.title }}
+
{{ service.smallClaim }}
+
{{ intl.format(service.price) }}/ Monat
-
+
-
+ {{ service.hours }} Stunden pro Woche zugesichert