34 lines
1016 B
TypeScript
34 lines
1016 B
TypeScript
type FaqItem = {
|
|
answer: string;
|
|
question: string;
|
|
};
|
|
/**
|
|
* Builds FAQPage JSON-LD (schema.org) from Q&A pairs. Google can show these as
|
|
* expandable FAQ rich results under the page, taking more SERP space and helping
|
|
* with voice/AI answers. Strong for service landing pages.
|
|
*
|
|
* Feed it the SAME questions/answers rendered on the page (from an FAQ block in
|
|
* the panel) — the structured data must match visible content, or Google may
|
|
* flag it. Never invent Q&A that isn't on the page.
|
|
*
|
|
* import { buildFaqJsonLd } from '@intecion/ipal-kit'
|
|
* const jsonLd = buildFaqJsonLd(
|
|
* faqBlock.items.map(i => ({ question: i.question, answer: i.answer }))
|
|
* )
|
|
*
|
|
* Returns null for empty list.
|
|
*/
|
|
export declare function buildFaqJsonLd(items: FaqItem[]): {
|
|
'@context': string;
|
|
'@type': string;
|
|
mainEntity: {
|
|
name: string;
|
|
'@type': string;
|
|
acceptedAnswer: {
|
|
'@type': string;
|
|
text: string;
|
|
};
|
|
}[];
|
|
} | null;
|
|
export {};
|