'use client' import { escapeHtml } from '@admin/utils/editor/escape-html' import { renderSimpleMarkdownBody } from '@admin/utils/editor/render-simple-markdown-body' import { sanitizeHtmlPreview } from '@admin/utils/editor/sanitize-html-preview' import { stripHtml } from '@admin/utils/editor/strip-html' export function renderDetailsPreview(raw: string) { const match = /^]*>\s*]*>([\s\S]*?)<\/summary>([\s\S]*?)<\/details>$/i.exec( raw.trim() ) if (!match) { return sanitizeHtmlPreview(raw) } const summary = escapeHtml(stripHtml(match[1]).trim()) const body = renderSimpleMarkdownBody(match[2]) return sanitizeHtmlPreview(`
${summary}${body}
`) }