DeepSeek Markdown Raw Viewer

针对大语言模型对话时markdown渲染错误或希望能够自己复制大语言模型原始输出的结果自行渲染的情况,提供了在网页上不渲染markdown的能力;仅支持chat.deepseek.com

目前为 2025-03-28 提交的版本。查看 最新版本

// ==UserScript==
// @name         DeepSeek Markdown Raw Viewer
// @namespace    徐智昊(weibo:智昊今天玩什么)
// @version      1.0
// @description  针对大语言模型对话时markdown渲染错误或希望能够自己复制大语言模型原始输出的结果自行渲染的情况,提供了在网页上不渲染markdown的能力;仅支持chat.deepseek.com
// @match        https://chat.deepseek.com/*
// @grant        none
// @run-at       document-idle
// @license      MIT
// ==/UserScript==

(function() {
    const observer = new MutationObserver(() => {
        // 找到所有 DeepSeek 的 Markdown 容器
        document.querySelectorAll('.ds-markdown').forEach(container => {
            if (container.dataset.rawProcessed) return;

            // 提取原始文本(从代码块或直接子元素)
            let rawText = '';
            const codeBlocks = container.querySelectorAll('pre code');
            if (codeBlocks.length > 0) {
                // 优先从代码块获取(可能是系统自动生成的原始内容)
                rawText = codeBlocks[codeBlocks.length - 1].textContent;
            } else {
                // 降级方案:从渲染后的 HTML 反向提取文本
                rawText = container.innerText
                    .replace(/\n{3,}/g, '\n\n') // 压缩多余空行
                    .replace(/^#\s+/gm, '');    // 移除标题标记(可选)
            }

            // 替换为原始文本
            if (rawText) {
                container.innerHTML = `<pre style="white-space: pre-wrap;">${rawText}</pre>`;
                container.dataset.rawProcessed = "true";
            }
        });
    });

    observer.observe(document.body, { subtree: true, childList: true });
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址