20 lines
599 B
TypeScript
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, ' ')
|
|
}
|
|
})
|
|
}
|
|
|