@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
JavaScript
// 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