46 Commits

Author SHA1 Message Date
史悦
d74fbce137 现在支持的格式
-  ```svg<svg... 
  -  ```svg <svg... 
  -  ```xml<svg... 
  -  ```xml <svg... 
  -  ``` xml<svg... 
  -  ``` svg<svg... 
  -  ```<svg... (无语言标识)

  这样无论 LLM 输出哪种格式,都能正确实时绘制和复制图片到剪贴板了。
2026-02-03 10:55:17 +08:00
史悦
0f68b6d7a2 注释 volumes 2026-02-03 10:37:16 +08:00
史悦
b82297efc3 增加了图片上传解析的功能 2026-02-03 10:09:44 +08:00
史悦
69a177b85a thinksvg 2026-01-27 17:19:43 +08:00
史悦
19afa19462 优化APIClient和conversation-service优先使用rawContent提升上下文完整性;调整app-shell.js中对话气泡流式内容渲染逻辑及HTML模块特殊处理;提升STREAM_DEFAULT_OPTIONS maxTokens至30000;重构onepage-prompt.txt交付描述;大幅美化产品画布页面UI,采用Apple和Google风格边框、按钮、气泡,优化配色、阴影、交互效果和模态窗样式,提升整体视觉和交互体验。 2025-11-19 11:28:44 +08:00
史悦
24adda3f14 修改了README 2025-11-06 14:18:44 +08:00
史悦
c1802352f5 新增“落地页全屏预览”模态窗及 iframe,配合 css的 98% 视窗自适应样式,实现接近全屏的预览 2025-11-06 13:50:40 +08:00
史悦
71cce80e2d 修改提示词 2025-11-06 13:26:22 +08:00
史悦
2a3d16fca2 html流式响应 2025-11-06 12:12:08 +08:00
史悦
f4014bd25d 增加onepage页面 2025-11-06 12:03:58 +08:00
史悦
21209ba1a8 onepage 2025-11-06 11:23:32 +08:00
史悦
5665715a99 - 在 js/core/app-shell.js:1153 为 initializeMermaidPanZoom 增加空值保护,避免找不到目标元素时直接
返回。
  - 新增 applyMermaidPanZoom 辅助方法(js/core/app-shell.js:1227),统一为最新渲染的 Mermaid SVG 设置稳
    定的 id 并重新初始化 svgPanZoom,保证缩放实例始终存在。
  - 在流式渲染完成的循环中追加 this.applyMermaidPanZoom(manifest)(js/core/app-shell.js:1329),生成最后
    一个代码片段后立即恢复缩放能力。
  - 在最终渲染回写与常规渲染入口分别调用新方法(js/core/app-shell.js:1397, js/core/app-shell.js:1451),
    确保无论是流式结束还是切换历史记录都能自动启用平移缩放。
2025-10-28 15:49:00 +08:00
史悦
6824a091ac 修改了mermaid的导出放大倍数 2025-10-28 15:40:12 +08:00
史悦
fd518aa25e 增加了图片 2025-10-28 15:24:57 +08:00
史悦
de56b304bc 开源地址改为_blank 2025-10-28 14:20:33 +08:00
史悦
a23e5f2a57 修改了标题 2025-10-28 14:04:22 +08:00
史悦
9c72a9e273 - 在 js/core/app-shell.js:72-89 动态创建“在Mermaid中编辑”按钮,挂载到工具栏末尾并默认隐藏,避免在非
Mermaid 模块占位。
  - 在 js/core/app-shell.js:201-204 为新按钮绑定点击事件,触发在线编辑入口。
  - 在 js/core/app-shell.js:2232-2235 根据当前模块与图形状态控制按钮显隐与可用性,仅在 Mermaid 且已有图
    形时启用。
  - 在 js/core/app-shell.js:1560-1592 新增 openMermaidLiveEditor,复用现有 Pako 编码生成 https://
    mermaid.live/edit#pako:... 链接并通过 window.open 打开,附带异常与弹窗拦截提示。
2025-10-28 14:03:10 +08:00
史悦
9436ccf83a 修改了提示 2025-10-28 13:39:08 +08:00
史悦
54f1dffab6 放了一个图标 2025-10-28 13:00:57 +08:00
史悦
2106119fb4 修改了提示词和图片 2025-10-28 10:51:54 +08:00
史悦
e1ffd14bc1 新增结尾补渲逻辑 ensureFinalMermaidRender 并在 finalizeAssistantMessage 中调用(js/core/app-
shell.js:916-1355),即便流式阶段已渲染过,也会在响应完成后使用最终完整代码再渲染一次,同时更新已保
    存的 artifact,解决末尾缺失的问题。
2025-10-28 10:12:31 +08:00
史悦
71cfa133a6 mermaid 改为流式 2025-10-28 09:53:37 +08:00
史悦
7bcfadde59 - 在 js/core/app-shell.js:1275 引入 window.mermaid.parse(code) 语法校验,若捕获异常则抛出带有“Mermaid
语法错误”描述的错误,阻断后续渲染流程并避免生成无效图表。
  - 在 js/core/app-shell.js:1244 的渲染异常分支中统一处理错误信息,既在查看区域展示,又在输入框末尾追加
    (避免重复追加),并自动调整输入框高度,方便用户基于错误提示修改 Mermaid 代码。
2025-10-28 09:19:07 +08:00
史悦
298e421f7d 修改样式和提示词 2025-10-28 09:14:19 +08:00
史悦
dd930805e0 修改了提示词 2025-10-27 17:59:17 +08:00
史悦
c03be8d65a 增加了几个快捷按钮 2025-10-27 17:14:49 +08:00
史悦
e7b1351384 修改删除按钮的样式 2025-10-27 16:53:20 +08:00
史悦
a210a6f92d 删除无用库 2025-10-27 16:47:22 +08:00
史悦
6d453b2519 修改样式 2025-10-27 16:20:46 +08:00
史悦
86b83dd39a 下载图片 2025-10-27 16:13:26 +08:00
史悦
ae46cedd37 1. 在浏览器中切换至 Mermaid 模块生成示例图,确认 SVG 容器占满可用空间且居中显示。
2. 若存在缓存,建议强制刷新(Ctrl+F5)以确保最新样式生效。
2025-10-27 15:10:06 +08:00
史悦
f7fd53c9a2 放大缩小 2025-10-27 15:05:35 +08:00
史悦
4dde0e31b1 放大缩小 2025-10-27 13:50:34 +08:00
史悦
01e1083e5e 资源改为本地引用 2025-10-27 12:25:23 +08:00
史悦
f37357096e • - 在 renderConversationHistory 末尾与 renderArtifact 内部新增 highlightActivePlaceholder(),每次渲染或
切换图形后都会重新标记当前选中的占位卡片。
  - 新方法会清除所有 .svg-placeholder-block 上的 svg-placeholder-active,再根据 ModuleRuntime 记录的
    currentArtifactId 为对应占位卡片添加该类(js/core/app-shell.js:321, 673, 729)。
  - 这样无论是点击左侧占位切换、完成流式渲染或模块切换,右侧当前图形都会同步点亮对应占位符,恢复过往的高
    亮效果。
2025-10-27 11:27:52 +08:00
史悦
533375e8ca 调整了整个框架,模块化解耦 2025-10-27 11:04:00 +08:00
史悦
c83c36baa6 - 在 js/app.js:728-766 新增 buildDeleteButtonHtml,并在 js/app.js:1000-1034 将浮动删除按钮植入用户、AI
与错误消息气泡,同时阻断事件冒泡以免干扰 SVG 点击;带 SVG 的消息亦在 js/app.js:1042-1054 注入同样的
    删除入口。
  - 通过 js/app.js:870-924 的 confirmDeleteMessage 与 deleteMessagePermanently,删除前弹出不可恢复提示,
    确认后同步清理当前模式的对话历史、关联 SVG 缓存以及本地存储,必要时自动回退至占位视图。
  - 在 css/style.css:235-266 定义 message-with-delete 与 message-delete-btn,实现右上角高亮悬浮按钮及
    hover 反馈,保证在深浅背景下均可清晰识别。
2025-10-27 09:51:28 +08:00
史悦
4b14bb26dd - 在 index.html:47-51 给 main 和左侧面板增加 min-h-0,允许网格子项在父级 flex 容器中释放高度,确保
#chat-history 的 overflow-y-auto 生效;右侧展示区同样设置 min-h-0,防止 SVG 区域被异常拉伸。
  - 调整后,长对话会保持面板固定高度,滚动条承载多余内容,不再把整个页面撑出视窗。
2025-10-27 09:42:16 +08:00
史悦
b0c487a4ef 6. 增加一个svg放大缩小功能;
7. 目前的svg下载,下载图片,显示代码实现有问题,好像没找到svg;再增加一个复制图片到剪切板功能;
8. 点重新生成按钮,应该再添加一个气泡啊,而且流式响应,现在点击重新生成,就时等待,没有实时显示;
9. 点击查看画布,没有区分现在显示的是哪个气泡或占位符,需要标记区分下;
2025-10-24 20:31:49 +08:00
史悦
cbf59e3450 - js/app.js:165-260, 310-420, 560-893:重构模式切换与流式渲染逻辑;引入 renderSvgViewerForMode 分离各
模式历史与SVG;通过 buildActionToolbar 和 renderConversationHistory 仅为最新 AI 气泡保留“重新生成”;
    新增 setSendButtonState、startStreamingMessage、cancelActiveStream 实现终止按钮与流式中断,回滚后同
    步复位查看面板。
  - js/utils.js:24-334:增强 parseSVGResponse 容错截断SVG/反引号;StreamProcessor 增加完成态管理;
    createStreamRequest 返回 {cancel, finished} 并支持 AbortController,保证中止时回调依然收尾。
  - js/apiclient.js:150-208:流式接口返回新的句柄对象而非简单等待,使前端可触发中止,同时保持异常转换。
  - css/style.css:220-224:去除悬浮显隐,操作按钮常显,并保留色彩过渡以提示交互。
  - js/app.js:900-970:regenerateMessage 改用“处理中”状态并重绘气泡(按最新可见状态),避免历史重复
    生成。
2025-10-24 19:56:40 +08:00
史悦
06e1d5ca19 修改了提示词 2025-10-24 19:18:03 +08:00
史悦
64e93d25b8 - 在 js/utils.js:24-79 强化 parseSVGResponse,兼容缺失结尾反引号和截断的 SVG,自动补齐 </svg> 并去除残
留的 ```,确保后续渲染能稳定提取图形。
2025-10-24 19:03:40 +08:00
史悦
bacafd66dc 修复气泡 2025-10-24 18:52:18 +08:00
史悦
6fe5f4175d 修复了SVG实时绘制问题:
使用更精确的正则表达式检测SVG代码块开始
正确处理Markdown格式的SVG代码块(svg或<svg)
实时更新SVG显示区域,自动补全结束标签确保正确显示
添加了完整的Markdown支持:

集成了marked.js库用于解析Markdown内容
配置了支持GitHub风格的Markdown选项
在所有消息渲染函数中添加了Markdown解析逻辑
添加了专门的Markdown样式:

为标题、段落、列表、代码块、引用等添加了样式
确保Markdown内容在对话气泡中正确显示
保持了原有的设计风格和颜色方案
优化了流式输出体验:

SVG绘制过程中显示加载动画和"正在绘制..."提示
绘制完成后自动切换为可点击的占位符
支持SVG前后的Markdown文本内容正确渲染
2025-10-24 18:20:43 +08:00
史悦
9032b634e6 对话框调试 2025-10-24 18:12:29 +08:00
史悦
18f1aba08e first commit 2025-10-24 17:44:25 +08:00