From 8ae0b3db8aec693ab79b55d2e050db940ce67f37 Mon Sep 17 00:00:00 2001 From: ika-2-2 <219417869+ika-2-2@users.noreply.github.com> Date: Sun, 10 Aug 2025 12:40:47 +0900 Subject: [PATCH] =?UTF-8?q?Markdown=E3=83=AC=E3=83=B3=E3=83=80=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E3=82=B3=E3=83=B3=E3=83=9D=E3=83=BC=E3=83=8D=E3=83=B3?= =?UTF-8?q?=E3=83=88=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97=E3=80=81=E8=A6=81?= =?UTF-8?q?=E4=BB=B6=E5=AE=9A=E7=BE=A9=E6=9B=B8=E3=81=AE=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E3=82=92=E6=94=B9=E5=96=84=E3=80=82ModelResponse=E3=82=B3?= =?UTF-8?q?=E3=83=B3=E3=83=9D=E3=83=BC=E3=83=8D=E3=83=B3=E3=83=88=E3=81=A7?= =?UTF-8?q?MarkdownRenderer=E3=82=92=E4=BD=BF=E7=94=A8=E3=81=97=E3=81=A6?= =?UTF-8?q?=E3=80=81=E3=82=B3=E3=83=BC=E3=83=89=E3=83=96=E3=83=AD=E3=83=83?= =?UTF-8?q?=E3=82=AF=E3=82=92=E9=81=A9=E5=88=87=E3=81=AB=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/api/src/services/conversationsService.ts | 7 +- .../src/components/MarkdownRenderer.tsx | 137 ++++++++++++++++++ .../src/components/ModelResponse.tsx | 6 +- 3 files changed, 147 insertions(+), 3 deletions(-) create mode 100644 apps/extension/src/components/MarkdownRenderer.tsx diff --git a/apps/api/src/services/conversationsService.ts b/apps/api/src/services/conversationsService.ts index 48667d8..987934f 100644 --- a/apps/api/src/services/conversationsService.ts +++ b/apps/api/src/services/conversationsService.ts @@ -63,7 +63,9 @@ export class ConversationService { await this.generateRequirementsDocFromSession(sessionId); const response = "これまでの対話を基に、要件定義書を生成しました。\n\n" + - requirementsDoc; + "```md\n" + + requirementsDoc + + "\n```"; return this.saveMessage(sessionId, "ai", response); } catch (error) { console.error("要件定義書生成中にエラー:", error); @@ -394,8 +396,9 @@ export class ConversationService { const reqDoc = await this.generateRequirementsDocFromSession(sessionId); return ( "ここまでの対話を基に、要件定義書を作成しました。\n\n" + + "```md\n" + reqDoc + - "\n\nこの内容でよろしければ、Issue案を生成します。よろしいですか?" + "\n```\n\nこの内容でよろしければ、Issue案を生成します。よろしいですか?" ); } catch (error) { console.error("要件定義書生成中にエラーが発生しました:", error); diff --git a/apps/extension/src/components/MarkdownRenderer.tsx b/apps/extension/src/components/MarkdownRenderer.tsx new file mode 100644 index 0000000..c5bd541 --- /dev/null +++ b/apps/extension/src/components/MarkdownRenderer.tsx @@ -0,0 +1,137 @@ +import { memo, useState } from "react"; + +interface MarkdownRendererProps { + content: string; +} + +// 極力シンプルなMarkdownレンダラー +// - 見出し: #, ##, ### +// - 箇条書き: - で始まる行(連続行を
+
+ {code}
+
+
+
+ + {line} +
, + ); + i += 1; + } + + return