export function createSidebarPageAiMarkdownRuntime(context) { const { escapeHtml } = context; function textFromUnknown(value) { if (value == null) return ''; if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') return String(value); if (Array.isArray(value)) return value.map(textFromUnknown).filter(Boolean).join(' '); if (typeof value !== 'object') return ''; var parts = []; ['text', 'title', 'content', 'children', 'blocks', 'body'].forEach(function(key) { if (Object.prototype.hasOwnProperty.call(value, key)) { var text = textFromUnknown(value[key]); if (text) parts.push(text); } }); return parts.join(' '); } function renderPageAiMarkdownInline(text) { var html = escapeHtml(String(text || '')); var codeSpans = []; html = html.replace(/`([^`\n]+)`/g, function(_, code) { var key = '\u0000CODE' + codeSpans.length + '\u0000'; codeSpans.push('' + code + ''); return key; }); html = html.replace(/\*\*([^*\n]+)\*\*/g, '$1'); html = html.replace(/(^|[^*])\*([^*\n]+)\*/g, '$1$2'); codeSpans.forEach(function(value, index) { html = html.replace('\u0000CODE' + index + '\u0000', value); }); return html; } function renderPageAiMarkdown(content) { var lines = String(content || '').replace(/\r\n?/g, '\n').split('\n'); var blocks = []; var index = 0; function isBlockBoundary(line) { return !line.trim() || /^```/.test(line.trim()) || /^#{1,6}\s+/.test(line) || /^\s*[-*]\s+/.test(line) || /^\s*\d+[.)]\s+/.test(line); } while (index < lines.length) { var line = lines[index]; if (!line.trim()) { index += 1; continue; } if (/^```/.test(line.trim())) { index += 1; var codeLines = []; while (index < lines.length && !/^```/.test(lines[index].trim())) { codeLines.push(lines[index]); index += 1; } if (index < lines.length) index += 1; blocks.push('
' + escapeHtml(codeLines.join('\n')) + '
'); continue; } var heading = line.match(/^(#{1,6})\s+(.+)$/); if (heading) { var level = Math.min(6, heading[1].length); blocks.push('' + renderPageAiMarkdownInline(heading[2]) + ''); index += 1; continue; } if (/^\s*[-*]\s+/.test(line)) { var unordered = []; while (index < lines.length && /^\s*[-*]\s+/.test(lines[index])) { unordered.push('
  • ' + renderPageAiMarkdownInline(lines[index].replace(/^\s*[-*]\s+/, '')) + '
  • '); index += 1; } blocks.push(''); continue; } if (/^\s*\d+[.)]\s+/.test(line)) { var ordered = []; while (index < lines.length && /^\s*\d+[.)]\s+/.test(lines[index])) { ordered.push('
  • ' + renderPageAiMarkdownInline(lines[index].replace(/^\s*\d+[.)]\s+/, '')) + '
  • '); index += 1; } blocks.push('
      ' + ordered.join('') + '
    '); continue; } var paragraph = []; while (index < lines.length && !isBlockBoundary(lines[index])) { paragraph.push(renderPageAiMarkdownInline(lines[index])); index += 1; } if (paragraph.length) { blocks.push('

    ' + paragraph.join('
    ') + '

    '); } else { index += 1; } } return blocks.join('') || escapeHtml(String(content || '')); } return { textFromUnknown, renderPageAiMarkdown, renderPageAiMarkdownInline }; }