@docfy/ember-vite
Version:
Vite plugin for Docfy Ember integration with @embroider/vite
44 lines (43 loc) • 2.03 kB
JavaScript
import { processPageDemos } from './process-demos.js';
import { processPreviewTemplates } from './process-preview-templates.js';
import debugFactory from 'debug';
const debug = debugFactory('@docfy/ember-vite-plugin:enhance-page-metadata');
/**
* Enhanced page processing that extracts GJS metadata from markdown content
* This plugin processes the page and structures data for GJS template generation
*/
export function enhancePageMetadata(page) {
debug('Enhancing page metadata', { url: page.meta.url });
// Initialize empty GJS metadata - templateContent will be set only if modified
const gjsMetadata = {
imports: [],
inlineComponents: [],
additionalContent: '',
templateContent: '' // Only set if content is actually modified
};
// Create enhanced page
const enhancedPage = {
...page,
gjsMetadata
};
// Process demos and convert to inline components
const { inlineComponents: demoComponents, imports: demoImports } = processPageDemos(enhancedPage);
gjsMetadata.inlineComponents.push(...demoComponents);
gjsMetadata.imports.push(...demoImports);
// Process preview templates
const { inlineComponents: previewComponents, imports: previewImports, updatedContent } = processPreviewTemplates(enhancedPage);
gjsMetadata.inlineComponents.push(...previewComponents);
gjsMetadata.imports.push(...previewImports);
gjsMetadata.templateContent = updatedContent;
// Future: Process import extraction from markdown
// const { imports: extractedImports, updatedContent: finalContent } = extractImports(enhancedPage);
// gjsMetadata.imports.push(...extractedImports);
// gjsMetadata.templateContent = finalContent;
debug('Enhanced page metadata created', {
url: page.meta.url,
importsCount: gjsMetadata.imports.length,
inlineComponentsCount: gjsMetadata.inlineComponents.length,
hasAdditionalContent: gjsMetadata.additionalContent.length > 0
});
return enhancedPage;
}