API Reference
defineConfig(config)
Section titled “defineConfig(config)”Type-safe configuration helper:
import { defineConfig } from 'aeo.js';
export default defineConfig({ title: 'My Site', url: 'https://mysite.com',});generateAll(config)
Section titled “generateAll(config)”Generate all AEO files programmatically:
import { generateAll } from 'aeo.js';
await generateAll({ title: 'My Site', url: 'https://mysite.com', outDir: 'dist',});resolveConfig(config)
Section titled “resolveConfig(config)”Resolve a partial config into a fully resolved config with defaults:
import { resolveConfig } from 'aeo.js';
const resolved = resolveConfig({ title: 'My Site' });// All fields now have defaultsThe examples below use resolvedConfig for a config object returned by resolveConfig.
validateConfig(config)
Section titled “validateConfig(config)”Validate a config object and return any errors:
import { validateConfig } from 'aeo.js';
const errors = validateConfig(config);detectFramework()
Section titled “detectFramework()”Auto-detect the framework used in the current project:
import { detectFramework } from 'aeo.js';
const info = detectFramework();// { framework: 'next', contentDir: 'pages', outDir: '.next' }HTML Extraction
Section titled “HTML Extraction”htmlToMarkdown(html, pagePath, config)
Section titled “htmlToMarkdown(html, pagePath, config)”Convert HTML to clean markdown:
import { htmlToMarkdown } from 'aeo.js';
const md = htmlToMarkdown( '<html><head><title>Hello</title></head><body><main><p>World</p></main></body></html>', '/', { url: 'https://mysite.com' });// Returns a markdown document with YAML frontmatterextractTextFromHtml(html)
Section titled “extractTextFromHtml(html)”Extract plain text from HTML:
import { extractTextFromHtml } from 'aeo.js';
const text = extractTextFromHtml('<p>Hello <strong>world</strong></p>');extractTitle(html) / extractDescription(html)
Section titled “extractTitle(html) / extractDescription(html)”Extract the title or meta description from an HTML document.
extractJsonLd(html)
Section titled “extractJsonLd(html)”Extract JSON-LD structured data from an HTML document.
Schema
Section titled “Schema”generateSchemaObjects(config)
Section titled “generateSchemaObjects(config)”Generate JSON-LD schema objects:
import { generateSchemaObjects } from 'aeo.js';
const schemas = generateSchemaObjects(resolvedConfig);generateJsonLdScript(schemas)
Section titled “generateJsonLdScript(schemas)”Generate a <script type="application/ld+json"> tag:
import { generateJsonLdScript, generateSiteSchemas } from 'aeo.js';
const schemas = generateSiteSchemas(resolvedConfig);const script = generateJsonLdScript(schemas);generateSiteSchemas(config) / generatePageSchemas(page, config)
Section titled “generateSiteSchemas(config) / generatePageSchemas(page, config)”Generate schemas for the site or individual pages.
Open Graph
Section titled “Open Graph”generateOGTags(page, config)
Section titled “generateOGTags(page, config)”Returns an array of MetaTag objects:
import { generateOGTags } from 'aeo.js';
const tags = generateOGTags( { pathname: '/', title: 'Home' }, resolvedConfig);// [{ property: 'og:title', content: 'Home' }, ...]generateOGTagsHtml(page, config)
Section titled “generateOGTagsHtml(page, config)”Returns OG tags as an HTML string.
auditSite(config)
Section titled “auditSite(config)”Audit a site for AEO best practices:
import { auditSite, formatAuditReport, getGrade, resolveConfig } from 'aeo.js';
const config = resolveConfig({ title: 'My Site', url: 'https://mysite.com', pages: [{ pathname: '/', title: 'Home', content: 'Welcome to my site.' }],});
const result = auditSite(config);console.log(formatAuditReport(result));console.log(getGrade(result.score)); // 'Excellent', 'Good', 'Fair', etc.Citability
Section titled “Citability”scorePageCitability(page)
Section titled “scorePageCitability(page)”Score how likely a page is to be cited by AI:
import { scorePageCitability, formatPageCitability } from 'aeo.js';
const score = scorePageCitability({ pathname: '/', title: 'Home', content: '# Home\n\nMy site publishes practical guides for AI-ready content.',});console.log(formatPageCitability(score));scoreSiteCitability(config)
Section titled “scoreSiteCitability(config)”Score citability across your entire site.
Reports
Section titled “Reports”generateReport(config)
Section titled “generateReport(config)”Generate a comprehensive AEO report:
import { generateReport, formatReportMarkdown } from 'aeo.js';
const report = generateReport(resolvedConfig);console.log(formatReportMarkdown(report));Platform Hints
Section titled “Platform Hints”generatePlatformHints(audit, citability)
Section titled “generatePlatformHints(audit, citability)”Generate platform-specific optimization hints from audit and citability results:
import { auditSite, generatePlatformHints, scoreSiteCitability } from 'aeo.js';
const audit = auditSite(resolvedConfig);const citability = scoreSiteCitability(resolvedConfig);const hints = generatePlatformHints(audit, citability);All types are exported from the main entry:
import type { AeoConfig, ResolvedAeoConfig, PageEntry, DocEntry, AeoManifest, MarkdownFile, ManifestEntry, AIIndexEntry, FrameworkType, FrameworkInfo, AuditResult, AuditCategory, AuditIssue, MetaTag, PageCitabilityResult, SiteCitabilityResult, CitabilityDimension, ContentHint, AeoReport, PlatformHint,} from 'aeo.js';