@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
67 lines • 3.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SeoIssueMarkdownReport = void 0;
const report_utils_1 = require("./report-utils");
class SeoIssueMarkdownReport {
static generate(issues) {
if (!Array.isArray(issues))
issues = [];
console.log('DEBUG seo-issue-markdown: issues', issues);
const lines = [];
lines.push('# 🔍 SEO Issue Report');
lines.push(`Generated: ${new Date().toISOString()}`);
lines.push(`Total Issues: ${issues.length}`);
lines.push('');
// Filter nur auf SEO-Issues
const seoIssues = issues.filter(issue => issue.reportType === 'seo');
if (seoIssues.length === 0) {
lines.push('✅ No SEO issues found!');
return lines.join('\n');
}
// Gruppiere nach Seite
const issuesByPage = (0, report_utils_1.groupByPage)(issues) || {};
console.log('DEBUG seo-issue-markdown: issuesByPage', issuesByPage);
for (const [pageUrl, pageIssues] of Object.entries(issuesByPage)) {
lines.push(`## Page: ${pageUrl}`);
if (pageIssues[0]?.pageTitle) {
lines.push(`**Title:** ${pageIssues[0].pageTitle}`);
}
lines.push('');
const sorted = (0, report_utils_1.sortByType)((0, report_utils_1.sortBySeverity)(pageIssues));
sorted.forEach((issue, idx) => {
lines.push(`### Issue ${idx + 1}`);
lines.push(`- **Type:** ${issue.type}`);
lines.push(`- **Severity:** ${issue.severity}`);
if (issue.score !== undefined)
lines.push(`- **Score:** ${issue.score}`);
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.htmlSnippet) {
lines.push('- **HTML Snippet:**');
lines.push('```html');
lines.push(issue.htmlSnippet);
lines.push('```');
}
if (issue.lineNumber)
lines.push(`- **Line:** ${issue.lineNumber}`);
if (issue.recommendation)
lines.push(`- **Recommendation:** ${issue.recommendation}`);
if (issue.resource)
lines.push(`- **Resource:** ${issue.resource}`);
if (issue.metric)
lines.push(`- **Metric:** ${issue.metric}`);
lines.push('');
});
}
return lines.join('\n');
}
}
exports.SeoIssueMarkdownReport = SeoIssueMarkdownReport;
//# sourceMappingURL=seo-issue-markdown.js.map