@casoon/auditmysite
Version:
Professional website analysis suite with robust accessibility testing, Core Web Vitals performance monitoring, SEO analysis, and content optimization insights. Features isolated browser contexts, retry mechanisms, and comprehensive API endpoints for profe
79 lines • 3.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DetailedIssueMarkdownReport = void 0;
const report_utils_1 = require("./report-utils");
class DetailedIssueMarkdownReport {
static generate(issues, options) {
if (!Array.isArray(issues))
issues = [];
if (options?.verbose) {
console.log('DEBUG detailed-issue-markdown: processing', issues.length, 'issues');
}
const lines = [];
lines.push('# Detailed Accessibility Error Report');
lines.push(`Generated: ${new Date().toISOString()}`);
lines.push(`Total Issues: ${issues.length}`);
lines.push('');
// Gruppiere nach Seite
const issuesByPage = (0, report_utils_1.groupByPage)(issues) || {};
if (options?.verbose) {
console.log('DEBUG detailed-issue-markdown: grouped by page', Object.keys(issuesByPage).length, 'pages');
}
for (const [pageUrl, pageIssues] of Object.entries(issuesByPage)) {
lines.push(`## Page: ${pageUrl}`);
if (pageIssues[0]?.pageTitle) {
lines.push(`**Title:** ${pageIssues[0].pageTitle}`);
}
lines.push('');
// Sortiere innerhalb der Seite
const sortedIssues = (0, report_utils_1.sortByType)((0, report_utils_1.sortBySeverity)(pageIssues));
sortedIssues.forEach((issue, idx) => {
lines.push(`### Issue ${idx + 1}`);
lines.push(`- **Category:** ${issue.type}`);
lines.push(`- **Severity:** ${issue.severity}`);
if (issue.source)
lines.push(`- **Source:** ${issue.source}`);
lines.push(`- **Message:** ${issue.message}`);
if (issue.code)
lines.push(`- **Code:** ${issue.code}`);
if (issue.selector)
lines.push(`- **Selector:** \`${issue.selector}\``);
if (issue.context)
lines.push(`- **Context:** \`${issue.context}\``);
if (issue.lineNumber)
lines.push(`- **Line:** ${issue.lineNumber}`);
if (issue.htmlSnippet) {
lines.push('- **HTML Snippet:**');
lines.push('```html');
lines.push(issue.htmlSnippet);
lines.push('```');
}
if (issue.recommendation)
lines.push(`- **Recommendation:** ${issue.recommendation}`);
if (issue.resource)
lines.push(`- **Resource:** ${issue.resource}`);
if (issue.score !== undefined)
lines.push(`- **Score:** ${issue.score}`);
if (issue.metric)
lines.push(`- **Metric:** ${issue.metric}`);
lines.push('');
});
}
// Append skipped redirects section if provided
if (options?.skippedPages && options.skippedPages.length > 0) {
lines.push('');
lines.push('---');
lines.push('');
lines.push('## Skipped (Redirects)');
options.skippedPages.forEach(sp => {
const reason = sp.reason || 'HTTP Redirect';
const title = sp.title ? ` (${sp.title})` : '';
lines.push(`- ${sp.url}${title} — ${reason}`);
});
lines.push('');
}
return lines.join('\n');
}
}
exports.DetailedIssueMarkdownReport = DetailedIssueMarkdownReport;
//# sourceMappingURL=detailed-issue-markdown.js.map