/** * Simple Markdown Renderer * * Converts basic markdown to HTML for article bodies. * For more complex needs, consider using a library like marked or remark. */ export function renderMarkdown(md: string): string { if (!md) return ''; return md // Escape HTML entities .replace(/&/g, '&') .replace(//g, '>') // Headers .replace(/^### (.+)$/gm, '

$1

') .replace(/^## (.+)$/gm, '

$1

') .replace(/^# (.+)$/gm, '

$1

') // Bold and italic .replace(/\*\*(.+?)\*\*/g, '$1') .replace(/\*(.+?)\*/g, '$1') // Lists .replace(/^- (.+)$/gm, '
  • $1
  • ') .replace(/(
  • .*<\/li>\n?)+/g, '') // Paragraphs .replace(/\n\n/g, '

    ') .replace(/\n/g, '
    ') .replace(/^/, '

    ') .replace(/$/, '

    ') // Clean up .replace(/

    <\/p>/g, '') .replace(/

    (<[hu])/g, '$1') .replace(/(<\/[hu]l>)<\/p>/g, '$1'); }