(md: string)
| 1949 | insights: InsightResults, |
| 1950 | ): string { |
| 1951 | const markdownToHtml = (md: string): string => { |
| 1952 | if (!md) return '' |
| 1953 | return md |
| 1954 | .split('\n\n') |
| 1955 | .map(p => { |
| 1956 | let html = escapeHtml(p) |
| 1957 | html = html.replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>') |
| 1958 | html = html.replace(/^- /gm, '• ') |
| 1959 | html = html.replace(/\n/g, '<br>') |
| 1960 | return `<p>${html}</p>` |
| 1961 | }) |
| 1962 | .join('\n') |
| 1963 | } |
| 1964 | |
| 1965 | // Build At a Glance section (new 4-part format with links to sections) |
| 1966 | const atAGlance = insights.at_a_glance |
no test coverage detected