wf4/app/composables/faq.ts
webfussel a86b89dc98 add: extract plain faq
Add Schema Org for FAQ
2025-06-11 08:54:32 +02:00

20 lines
599 B
TypeScript

import type { MinimalElement, MinimalNode } from '@nuxt/content'
const extractText = (element ?: MinimalNode) : string => {
if (!element) return ''
if (typeof element === 'string') return element
const [,, ...nodes] = element
return nodes?.map((el : MinimalNode) => typeof el === 'string' ? el : extractText(el)).join(' ') ?? ''
}
export const usePlainFaq = (body ?: MinimalNode[]) => {
if (!body) return []
return body.map(part => {
const [, meta] = part as MinimalElement
return {
question: meta.title,
answer: extractText(part).replace(/\n/g, ' ')
}
})
}