import { Parser } from './src/parser'; import * as fs from 'fs'; import * as path from 'path'; /** * Script that parses both markdown and asciidoc test documents * and generates an HTML report showing the parsing results */ interface TestData { original: string; result: any; } interface ReportData { markdown: TestData; asciidoc: TestData; } async function main() { const parser = new Parser({ linkBaseURL: 'https://example.com', wikilinkUrl: '/events?d={dtag}', hashtagUrl: '/notes?t={topic}', }); console.log('Reading test documents...'); // Read test documents const markdownContent = fs.readFileSync( path.join(__dirname, 'markdown_testdoc.md'), 'utf-8' ); const asciidocContent = fs.readFileSync( path.join(__dirname, 'asciidoc_testdoc.adoc'), 'utf-8' ); console.log('Parsing markdown document...'); const markdownResult = await parser.process(markdownContent); console.log('Parsing asciidoc document...'); const asciidocResult = await parser.process(asciidocContent); console.log('Generating HTML report...'); // Generate HTML report const htmlReport = generateHTMLReport({ markdown: { original: markdownContent, result: markdownResult, }, asciidoc: { original: asciidocContent, result: asciidocResult, }, }); // Write HTML report to file (force fresh write) const reportPath = path.join(__dirname, 'test-report.html'); // Delete old report if it exists to ensure fresh generation if (fs.existsSync(reportPath)) { fs.unlinkSync(reportPath); } fs.writeFileSync(reportPath, htmlReport, 'utf-8'); const reportUrl = `file://${reportPath}`; console.log(`\n✅ Test report generated successfully!`); console.log(` File: ${reportPath}`); console.log(` Size: ${(htmlReport.length / 1024).toFixed(2)} KB`); console.log(` Timestamp: ${new Date().toISOString()}`); console.log(` Open this file in your browser to view the results.\n`); } function generateHTMLReport(data: ReportData): string { const { markdown, asciidoc } = data; return `
Generated: ${new Date().toLocaleString()}
No frontmatter found
'}${escapeHtml(markdown.original)}
${escapeHtml(markdown.result.content)}
${escapeHtml(link.bech32)}
${link.text ? ` - ${escapeHtml(link.text)}` : ''}
${escapeHtml(wl.original)} → dtag: ${escapeHtml(wl.dtag)}
${wl.display ? ` (display: ${escapeHtml(wl.display)})` : ''}
#${escapeHtml(tag)}
No frontmatter found
'}${escapeHtml(asciidoc.original)}
${escapeHtml(asciidoc.result.content)}
${escapeHtml(link.bech32)}
${link.text ? ` - ${escapeHtml(link.text)}` : ''}
${escapeHtml(wl.original)} → dtag: ${escapeHtml(wl.dtag)}
${wl.display ? ` (display: ${escapeHtml(wl.display)})` : ''}
#${escapeHtml(tag)}