UNPKG

@entro314labs/starlight-document-converter

Version:

A comprehensive document converter for Astro Starlight that transforms various document formats into Starlight-compatible Markdown with proper frontmatter

50 lines (49 loc) 1.88 kB
// src/plugins/built-in/markdown-enhancer.ts var markdownEnhancer = { metadata: { name: "markdown-enhancer", version: "2.0.0", description: "Enhances metadata extraction for markdown files using ContentAnalyzer", author: "Starlight Document Converter" }, priority: 50, enhance: async (metadata, context) => { if (context.extension !== ".md" && context.extension !== ".mdx") { return metadata; } try { const { ContentAnalyzer } = await import("./content-analyzer-JWBXBJXV.js"); const analyzer = new ContentAnalyzer(); const { readFile } = await import("fs/promises"); const content = await readFile(context.inputPath, "utf-8"); const { metadata: analyzedMetadata, analysis } = analyzer.analyzeContent( content, context.inputPath ); const enhancedMetadata = { title: metadata.title || analyzedMetadata.title, description: metadata.description || analyzedMetadata.description, category: metadata.category || analyzedMetadata.category, tags: [...metadata.tags || [], ...analyzedMetadata.tags || []].filter( (tag, index, arr) => arr.indexOf(tag) === index ), // Remove duplicates // Add analysis-derived metadata ...analysis.readingTime && { readingTime: analysis.readingTime }, ...analysis.wordCount && { wordCount: analysis.wordCount }, ...analysis.contentType && { contentType: analysis.contentType }, ...analysis.complexity && { complexity: analysis.complexity }, // Preserve existing metadata ...metadata }; return enhancedMetadata; } catch (error) { console.warn(`Failed to enhance markdown metadata for ${context.inputPath}:`, error); return metadata; } } }; export { markdownEnhancer }; //# sourceMappingURL=chunk-7A3BG2QE.js.map