/**
* Markdown & Branded HTML Formatting Utilities for PostFundManagement (PFM)
*/
export function isHtmlContent(content: string): boolean {
if (!content) return false;
const trimmed = content.trim();
return (
trimmed.startsWith('')) ||
/<(strong|b|em|i|u|h[1-6]|ul|ol|li|table|blockquote|div|p|img|hr|br)\b/i.test(trimmed)
);
}
export function stripMarkdown(text: string): string {
if (!text) return '';
return text
.replace(/<[^>]*>/g, ' ')
.replace(/!\[.*?\]\(.*?\)/g, '')
.replace(/\[(.*?)\]\(.*?\)/g, '$1')
.replace(/#{1,6}\s+/g, '')
.replace(/(\*\*|__)(.*?)\1/g, '$2')
.replace(/(\*|_)(.*?)\1/g, '$2')
.replace(/~~(.*?)~~/g, '$1')
.replace(/`{1,3}.*?`{1,3}/gs, '')
.replace(/^>\s+/gm, '')
.replace(/^[-*+]\s+/gm, '')
.replace(/^\d+\.\s+/gm, '')
.replace(/\|/g, ' ')
.replace(/\s+/g, ' ')
.trim();
}
export function parseMarkdownToHtml(markdown: string): string {
if (!markdown) return '';
let html = markdown
.replace(/