import MarkdownIt from '@/lib/markdown-it.min.js'; import hljs from "@/lib/highlight/highlight-uni.min.js"; import parseHtml from '@/lib/html-parser.js'; // import DOMPurify from '@/lib/dompurify@3.2.4es.js'; export let codeDataList = [] const md = new MarkdownIt({ html: true, // 允许 HTML 标签 linkify: true, // 自动解析 URL typographer: true, // 美化标点符号 tables: true, breaks: true, // 让 \n 自动换行 langPrefix: 'language-', // 代码高亮前缀 // 如果结果以
                
${result.jobTitle}
${result.salary}
${result.location}·${result.companyName}
${result.education}
${result.experience}
查看详情
` } //
${result.location}
//
${result.salary}
// 代码块 let preCode = "" try { preCode = hljs.highlightAuto(str).value } catch (err) { preCode = markdownIt.utils.escapeHtml(str); } // 以换行进行分割 , 按行拆分代码 const lines = preCode.split(/\n/).slice(0, -1); const html = lines .map((line, index) => line ? `
  • ${line}
  • ` : '' ) .join(''); // 代码复制功能 const cacheIndex = codeDataList.length; codeDataList.push(str); return `
    ${lang || 'plaintext'} 复制代码
      ${html}
    `; } }) function safeExtractJson(text) { try { const match = text.match(/\{[\s\S]*?\}/); // 提取第一个完整的 JSON 块 if (match) { return JSON.parse(match[0]); } } catch (e) { console.error('JSON 解析失败:', e); } return null; } export function parseMarkdown(content) { if (!content) { return //处理特殊情况,比如网络异常导致的响应的 content 的值为空 } codeDataList = [] const unsafeHtml = md.render(content || '') return unsafeHtml }