From 7098489f152822ad06ffc55f891d2c3ebf566401 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?George=C2=B7Dong?= <98630204+GeorgeDong32@users.noreply.github.com> Date: Tue, 29 Jul 2025 17:14:38 +0800 Subject: [PATCH] fix/export-roletext-level (#8634) * fix(export): update titleSection from h3 to h2 for clarity * test(export): update export test for f46234 --- .../src/utils/__tests__/export.test.ts | 22 +++++++++---------- src/renderer/src/utils/export.ts | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/renderer/src/utils/__tests__/export.test.ts b/src/renderer/src/utils/__tests__/export.test.ts index e3c5c4d16e..da7cc66815 100644 --- a/src/renderer/src/utils/__tests__/export.test.ts +++ b/src/renderer/src/utils/__tests__/export.test.ts @@ -262,7 +262,7 @@ describe('export', () => { { type: MessageBlockType.MAIN_TEXT, content: '' } ]) const markdown = messageToMarkdown(msgWithEmptyContent) - expect(markdown).toContain('### 🧑‍💻 User') + expect(markdown).toContain('## 🧑‍💻 User') // Should handle empty content gracefully expect(markdown).toBeDefined() expect(markdown.split('\n\n').filter((s) => s.trim()).length).toBeGreaterThanOrEqual(1) @@ -272,11 +272,11 @@ describe('export', () => { const msg = mockedMessages.find((m) => m.id === 'u1') expect(msg).toBeDefined() const markdown = messageToMarkdown(msg!) - expect(markdown).toContain('### 🧑‍💻 User') + expect(markdown).toContain('## 🧑‍💻 User') expect(markdown).toContain('hello user') // The format is: [titleSection, '', contentSection, citation].join('\n') - // When citation is empty, we get: "### 🧑‍💻 User\n\nhello user\n" + // When citation is empty, we get: "## 🧑‍💻 User\n\nhello user\n" const sections = markdown.split('\n\n') expect(sections.length).toBeGreaterThanOrEqual(2) // title section and content section }) @@ -285,11 +285,11 @@ describe('export', () => { const msg = mockedMessages.find((m) => m.id === 'a1') expect(msg).toBeDefined() const markdown = messageToMarkdown(msg!) - expect(markdown).toContain('### 🤖 Assistant') + expect(markdown).toContain('## 🤖 Assistant') expect(markdown).toContain('hi assistant') // The format is: [titleSection, '', contentSection, citation].join('\n') - // When citation is empty, we get: "### 🤖 Assistant\n\nhi assistant\n" + // When citation is empty, we get: "## 🤖 Assistant\n\nhi assistant\n" const sections = markdown.split('\n\n') expect(sections.length).toBeGreaterThanOrEqual(2) // title section and content section }) @@ -298,7 +298,7 @@ describe('export', () => { const msg = createMessage({ role: 'user', id: 'u2' }, []) mockedMessages.push(msg) const markdown = messageToMarkdown(msg) - expect(markdown).toContain('### 🧑‍💻 User') + expect(markdown).toContain('## 🧑‍💻 User') // Check that it doesn't fail when no content exists expect(markdown).toBeDefined() }) @@ -309,7 +309,7 @@ describe('export', () => { { type: MessageBlockType.CITATION } ]) const markdown = messageToMarkdown(msgWithCitation) - expect(markdown).toContain('### 🤖 Assistant') + expect(markdown).toContain('## 🤖 Assistant') expect(markdown).toContain('Main content') expect(markdown).toContain('[1] [https://example1.com](Example Citation 1)') }) @@ -341,7 +341,7 @@ describe('export', () => { const msg = mockedMessages.find((m) => m.id === 'a2') expect(msg).toBeDefined() const markdown = messageToMarkdownWithReasoning(msg!) - expect(markdown).toContain('### 🤖 Assistant') + expect(markdown).toContain('## 🤖 Assistant') expect(markdown).toContain('Main Answer') expect(markdown).toContain('common.reasoning_content') @@ -366,7 +366,7 @@ describe('export', () => { const msg = mockedMessages.find((m) => m.id === 'a4') expect(msg).toBeDefined() const markdown = messageToMarkdownWithReasoning(msg!) - expect(markdown).toContain('### 🤖 Assistant') + expect(markdown).toContain('## 🤖 Assistant') expect(markdown).toContain('Simple Answer') expect(markdown).not.toContain(' { const msg = mockedMessages.find((m) => m.id === 'a5') expect(msg).toBeDefined() const markdown = messageToMarkdownWithReasoning(msg!) - expect(markdown).toContain('### 🤖 Assistant') + expect(markdown).toContain('## 🤖 Assistant') expect(markdown).toContain('Answer with citation') expect(markdown).toContain(' { const markdown = messageToMarkdown(msgWithCitations) // Should contain the title and content - expect(markdown).toContain('### 🤖 Assistant') + expect(markdown).toContain('## 🤖 Assistant') expect(markdown).toContain('Content with citations') // Should include citation content (mocked by getCitationContent) diff --git a/src/renderer/src/utils/export.ts b/src/renderer/src/utils/export.ts index 7f441ef1e3..bc7d9b20ad 100644 --- a/src/renderer/src/utils/export.ts +++ b/src/renderer/src/utils/export.ts @@ -169,7 +169,7 @@ const createBaseMarkdown = ( ) => { const { forceDollarMathInMarkdown } = store.getState().settings const roleText = getRoleText(message.role, message.model?.name, message.model?.provider) - const titleSection = `### ${roleText}` + const titleSection = `## ${roleText}` let reasoningSection = '' if (includeReasoning) {