diff --git a/static/pdf_generator.js b/static/pdf_generator.js index 65316c9..5fb0f33 100644 --- a/static/pdf_generator.js +++ b/static/pdf_generator.js @@ -6,22 +6,11 @@ function buildPdfDocument(results, summary, metadata, gradeReport) { const esc = (t) => t == null ? '' : String(t) .replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"'); - // Render Markdown to HTML if marked.js is available, otherwise plain-text escape + // Render as plain text with line breaks (no CDN dependencies) const parseMarkdown = (t) => { if (!t) return ''; - if (typeof marked !== 'undefined' && marked.parse) { - return marked.parse(String(t)); - } - // Fallback: minimal inline rendering without marked - let s = esc(t); - s = s.replace(/\*\*(.+?)\*\*/g, '$1'); - s = s.replace(/`([^`]+)`/g, '$1'); - s = s.replace(/^> (.+)$/gm, '
$1
'); - s = s.replace(/\[(.+?)\]\((.+?)\)/g, '$1'); - s = s.replace(/^- (.+)$/gm, '
  • $1
  • '); - s = s.replace(/(
  • .*<\/li>)/gs, ''); - s = s.replace(/\n\n/g, '
    '); - return s; + const s = esc(String(t)); + return s.replace(/\n/g, '
    '); }; // ── Meta ────────────────────────────────────────────────────────────────── @@ -178,7 +167,7 @@ function buildPdfDocument(results, summary, metadata, gradeReport) { return `
    ${esc(trunc(res,60))}
    `; }).join('') + (findings.length>4?`
    +${findings.length-4} more…
    `:''); return ` - ${esc(ruleId)} + ${esc(ruleId)}
    ${esc(f.rule_name)}
    ${esc(f.description || '')}
    ${sevBadge(f.severity)} ${findings.length} @@ -229,7 +218,7 @@ function buildPdfDocument(results, summary, metadata, gradeReport) { const cveRows = ordered.map(v => { const hasRichDesc = v.description && (v.description.includes('**') || v.description.includes('##') || v.description.includes('`')); return ` - ${esc(v.rule_id||'—')} + ${esc(v.rule_id||'—')}
    ${esc(v.package)}
    v${esc(v.package_version)}
    ${sevBadge(v.severity)} ${v.fix_version && v.fix_version!=='N/A' ? `→ ${esc(v.fix_version)}` : 'No fix yet'} @@ -256,12 +245,10 @@ function buildPdfDocument(results, summary, metadata, gradeReport) { InfraScan Report — ${repoName} - -