您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Shrink, collapse, compact, and download pre/code blocks on Grok pages
当前为
// ==UserScript== // @name Grok Code Style with Collapse // @namespace http://tampermonkey.net/ // @version 1.5 // @description Shrink, collapse, compact, and download pre/code blocks on Grok pages // @author You // @match https://x.com/i/grok* // @match https://grok.com/* // @match https://grok.x.ai/* // @match https://x.ai/* // @exclude https://gf.zukizuki.org/* // @exclude https://*.org/* // @grant GM_addStyle // @license MIT // ==/UserScript== (function() { 'use strict'; // 添加樣式 GM_addStyle(` .grok-code-wrapper { position: relative; margin: 0; } .grok-code-wrapper pre, .grok-code-wrapper code { max-height: 100px; /* 緊湊 */ overflow-y: hidden; /* 預設隱藏 */ font-size: 10px; /* 小字體 */ line-height: 1.1; /* 緊湊行距 */ background-color: #f5f5f5; padding: 3px; border: 1px solid #ddd; display: block; transition: max-height 0.3s ease; } .grok-code-wrapper.expanded pre, .grok-code-wrapper.expanded code { max-height: 300px; /* 展開後 */ overflow-y: auto; } .grok-toggle-btn { position: absolute; top: 2px; right: 2px; font-size: 10px; padding: 1px 4px; cursor: pointer; background: #ddd; border: none; border-radius: 2px; } .grok-download-btn { position: absolute; top: 2px; right: 40px; /* 避免與展開按鈕重疊 */ font-size: 9px; padding: 1px 4px; cursor: pointer; background: #4CAF50; color: white; border: none; border-radius: 2px; } .grok-download-btn:hover { background: #45a049; } `); // 處理代碼塊 function wrapCodeBlocks() { const codeBlocks = document.querySelectorAll(':not([class*="highlight"]:not([id*="highlight"])) > pre, :not([class*="highlight"]:not([id*="highlight"])) > code'); codeBlocks.forEach((block, index) => { if (!block.parentElement.classList.contains('grok-code-wrapper')) { const wrapper = document.createElement('div'); wrapper.className = 'grok-code-wrapper'; block.parentElement.insertBefore(wrapper, block); wrapper.appendChild(block); const toggleBtn = document.createElement('button'); toggleBtn.className = 'grok-toggle-btn'; toggleBtn.textContent = '展開'; wrapper.appendChild(toggleBtn); const downloadBtn = document.createElement('button'); downloadBtn.className = 'grok-download-btn'; downloadBtn.textContent = '下載'; wrapper.appendChild(downloadBtn); toggleBtn.addEventListener('click', () => { wrapper.classList.toggle('expanded'); toggleBtn.textContent = wrapper.classList.contains('expanded') ? '收起' : '展開'; }); downloadBtn.addEventListener('click', () => { const blob = new Blob([block.textContent], { type: 'text/plain' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `code_block_${index + 1}.txt`; a.click(); URL.revokeObjectURL(url); }); } }); } // 定時檢查 wrapCodeBlocks(); // 初始執行 setInterval(wrapCodeBlocks, 2000); // 每 2 秒檢查 })();