提交 e0539045 authored 作者: 王鹏飞's avatar 王鹏飞

chore: update

上级 be6fb6b6
...@@ -62,7 +62,7 @@ export default function AIModal() { ...@@ -62,7 +62,7 @@ export default function AIModal() {
const paper = await generatePaper({ userQuery: msg.userQuery, queryID: msg.queryID, outline: msg.content }) const paper = await generatePaper({ userQuery: msg.userQuery, queryID: msg.queryID, outline: msg.content })
setMessages((prevMessages) => { setMessages((prevMessages) => {
prevMessages.pop() prevMessages.pop()
return [...prevMessages, { content: '已为您生成初稿,请点击查看', role: 'ai', queryID: msg.queryID, paper }] return [...prevMessages, { content: '已为您生成初稿,请点击下载', role: 'ai', queryID: msg.queryID, paper }]
}) })
} }
...@@ -77,7 +77,7 @@ export default function AIModal() { ...@@ -77,7 +77,7 @@ export default function AIModal() {
return ( return (
<div className="chapter-item" key={index}> <div className="chapter-item" key={index}>
<div className="chapter-left"> <div className="chapter-left">
<div className="chapter-left-title">{item.chapter}</div> <div className="chapter-left-title">{item.tag}</div>
<div className="line-dot"> <div className="line-dot">
<div className="dot"></div> <div className="dot"></div>
<div className="line"></div> <div className="line"></div>
......
...@@ -68,51 +68,66 @@ export function useSearch() { ...@@ -68,51 +68,66 @@ export function useSearch() {
return { messages, setMessages, isLoading, query: execute } return { messages, setMessages, isLoading, query: execute }
} }
function parseInput(inputStr) { function parseInput(markdown) {
// Split content into lines
const lines = markdown.split('\n').filter((line) => line.trim())
const result = [] const result = []
const regex = /^(#+)\s*(.+?)\s*(?=\n|【描述】|$)/ let chapterCount = 0
const descriptionRegex = /【描述】(.*)/ let subChapterCount = 0
const sections = [] for (let i = 0; i < lines.length; i++) {
let level = 0 const line = lines[i]
let level = 0
const lines = inputStr.split('\n') let title = ''
lines.forEach((line) => { let desc = ''
const headerMatch = line.match(regex)
const descriptionMatch = line.match(descriptionRegex) // Determine level and title
if (line.startsWith('# ')) {
if (headerMatch) { level = 1
const header = headerMatch[1] // Capture the number of `#` title = line.replace('# ', '')
const title = headerMatch[2].trim() // Capture the title } else if (line.startsWith('## ')) {
const newLevel = header.length level = 2
title = line.replace('## ', '')
// Adjust section numbering based on levels chapterCount++
if (newLevel > level) { subChapterCount = 0
sections.push(1) // Add new sub-level } else if (line.startsWith('### ')) {
} else if (newLevel === level) { level = 3
sections[sections.length - 1]++ // Increment current level title = line.replace('### ', '')
} else { subChapterCount++
sections.splice(newLevel - 1) // Drop deeper levels }
sections[sections.length - 1]++
// If this is a header line
if (level > 0) {
// Get description from next line if it exists and contains 【描述】
const nextLine = lines[i + 1]
if (nextLine && nextLine.includes('【描述】')) {
desc = nextLine.replace('【描述】', '')
i++ // Skip the description line in next iteration
}
// Determine tag based on level
let tag
if (level === 1) {
tag = '标题'
} else if (level === 2) {
tag = `第${chapterCount}章`
} else if (level === 3) {
tag = `${chapterCount}.${subChapterCount}`
} }
level = newLevel // Update current level // Create content string
const content = desc ? `${'#'.repeat(level)} ${title}\n【描述】${desc}` : `${'#'.repeat(level)} ${title}`
// Create chapter number and entry // Add to result array
const chapter = sections.join('.')
result.push({ result.push({
title, title,
level, level,
desc: '', // Will be updated if a description follows tag,
chapter: level === 1 ? '标题' : `第${chapter}章`, desc: desc || '',
content,
}) })
} else if (descriptionMatch) {
const desc = descriptionMatch[1].trim()
if (result.length > 0) {
result[result.length - 1].desc = desc // Attach description to the last entry
}
} }
}) }
return result return result
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论