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

chore: update

上级 be6fb6b6
......@@ -62,7 +62,7 @@ export default function AIModal() {
const paper = await generatePaper({ userQuery: msg.userQuery, queryID: msg.queryID, outline: msg.content })
setMessages((prevMessages) => {
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() {
return (
<div className="chapter-item" key={index}>
<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="dot"></div>
<div className="line"></div>
......
......@@ -68,51 +68,66 @@ export function useSearch() {
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 regex = /^(#+)\s*(.+?)\s*(?=\n|【描述】|$)/
const descriptionRegex = /【描述】(.*)/
const sections = []
let level = 0
const lines = inputStr.split('\n')
lines.forEach((line) => {
const headerMatch = line.match(regex)
const descriptionMatch = line.match(descriptionRegex)
if (headerMatch) {
const header = headerMatch[1] // Capture the number of `#`
const title = headerMatch[2].trim() // Capture the title
const newLevel = header.length
// Adjust section numbering based on levels
if (newLevel > level) {
sections.push(1) // Add new sub-level
} else if (newLevel === level) {
sections[sections.length - 1]++ // Increment current level
} else {
sections.splice(newLevel - 1) // Drop deeper levels
sections[sections.length - 1]++
let chapterCount = 0
let subChapterCount = 0
for (let i = 0; i < lines.length; i++) {
const line = lines[i]
let level = 0
let title = ''
let desc = ''
// Determine level and title
if (line.startsWith('# ')) {
level = 1
title = line.replace('# ', '')
} else if (line.startsWith('## ')) {
level = 2
title = line.replace('## ', '')
chapterCount++
subChapterCount = 0
} else if (line.startsWith('### ')) {
level = 3
title = line.replace('### ', '')
subChapterCount++
}
// 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
const chapter = sections.join('.')
// Add to result array
result.push({
title,
level,
desc: '', // Will be updated if a description follows
chapter: level === 1 ? '标题' : `第${chapter}章`,
tag,
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
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论