提交 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++) {
const line = lines[i]
let level = 0 let level = 0
let title = ''
const lines = inputStr.split('\n') let desc = ''
lines.forEach((line) => {
const headerMatch = line.match(regex) // Determine level and title
const descriptionMatch = line.match(descriptionRegex) if (line.startsWith('# ')) {
level = 1
if (headerMatch) { title = line.replace('# ', '')
const header = headerMatch[1] // Capture the number of `#` } else if (line.startsWith('## ')) {
const title = headerMatch[2].trim() // Capture the title level = 2
const newLevel = header.length title = line.replace('## ', '')
chapterCount++
// Adjust section numbering based on levels subChapterCount = 0
if (newLevel > level) { } else if (line.startsWith('### ')) {
sections.push(1) // Add new sub-level level = 3
} else if (newLevel === level) { title = line.replace('### ', '')
sections[sections.length - 1]++ // Increment current level subChapterCount++
} else { }
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 【描述】
level = newLevel // Update current level const nextLine = lines[i + 1]
if (nextLine && nextLine.includes('【描述】')) {
// Create chapter number and entry desc = nextLine.replace('【描述】', '')
const chapter = sections.join('.') 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}`
}
// Create content string
const content = desc ? `${'#'.repeat(level)} ${title}\n【描述】${desc}` : `${'#'.repeat(level)} ${title}`
// Add to result array
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论