feat: add document conversion support (Markdown, HTML, Plain Text)
- Add marked for Markdown to HTML conversion with GFM support - Add turndown for HTML to Markdown conversion - Add DOMPurify for HTML sanitization (security) - Support Markdown ↔ HTML ↔ Plain Text conversions - Add styled HTML output with responsive design - Use client-side only DOMPurify to fix SSR issues Supported conversions: - Markdown → HTML (with code syntax, tables, blockquotes) - HTML → Markdown (clean formatting preservation) - Markdown/HTML → Plain Text (strip formatting) - Plain Text → HTML/Markdown (basic formatting) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -76,16 +76,30 @@ export async function loadImageMagick(): Promise<any> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Load Pandoc WASM module (placeholder for future implementation)
|
||||
* Load Pandoc converter (uses pure JavaScript libraries, not WASM)
|
||||
* Note: We use marked + turndown instead of actual Pandoc WASM
|
||||
*/
|
||||
export async function loadPandoc(): Promise<any> {
|
||||
if (pandocInstance && moduleState.pandoc) {
|
||||
return pandocInstance;
|
||||
}
|
||||
|
||||
// TODO: Implement Pandoc WASM loading when available
|
||||
// For now, throw an error
|
||||
throw new Error('Pandoc WASM module is not yet implemented');
|
||||
try {
|
||||
// Import the converter libraries
|
||||
const [marked, turndown] = await Promise.all([
|
||||
import('marked'),
|
||||
import('turndown'),
|
||||
]);
|
||||
|
||||
pandocInstance = { marked, turndown };
|
||||
moduleState.pandoc = true;
|
||||
console.log('Document converter loaded successfully');
|
||||
|
||||
return pandocInstance;
|
||||
} catch (error) {
|
||||
console.error('Failed to load document converter:', error);
|
||||
throw new Error('Failed to load document converter');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user