// ==UserScript== // @name DeepSeek Chat 页面 Mermaid 渲染增强 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 在Mermaid代码块旁添加渲染按钮,点击后打开新窗口(由 DeepSeek 深度思考编写) // @author DeepSeek-R1 & Conglinyizhi // @match https://chat.deepseek.com/* // @grant none // @require https://cdn.jsdelivr.net/npm/mermaid@9/dist/mermaid.min.js // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/525809/DeepSeek%20Chat%20%E9%A1%B5%E9%9D%A2%20Mermaid%20%E6%B8%B2%E6%9F%93%E5%A2%9E%E5%BC%BA.user.js // @updateURL https://update.greasyfork.icu/scripts/525809/DeepSeek%20Chat%20%E9%A1%B5%E9%9D%A2%20Mermaid%20%E6%B8%B2%E6%9F%93%E5%A2%9E%E5%BC%BA.meta.js // ==/UserScript== (function() { 'use strict'; // 配置mermaid mermaid.initialize({ startOnLoad: false, theme: 'default', securityLevel: 'loose' }); // 创建渲染窗口样式 const style = document.createElement('style'); style.textContent = ` .mermaid-render-window { padding: 20px; background: white; border-radius: 8px; box-shadow: 0 0 10px rgba(0,0,0,0.2); overflow: auto; } `; document.head.appendChild(style); // 添加渲染按钮的函数 function addRenderButton(codeBlock) { const copyBtn = codeBlock.querySelector('.ds-markdown-code-copy-button'); if (!copyBtn || copyBtn.nextElementSibling?.classList.contains('render-btn')) return; const renderBtn = document.createElement('div'); renderBtn.className = 'ds-markdown-code-copy-button render-btn'; renderBtn.textContent = '渲染'; renderBtn.style.marginLeft = '8px'; renderBtn.style.cursor = 'pointer'; renderBtn.addEventListener('click', async () => { const code = codeBlock.querySelector('pre').innerText; const cleanedCode = code.replace(/</g, '<').replace(/>/g, '>'); const renderWindow = window.open('', '_blank', 'width=800,height=600'); renderWindow.document.write(`
🔄 正在渲染图表...
${cleanedCode}