您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
enabling RTL (Right-To-Left) text direction toggle
当前为
// ==UserScript== // @name chatgpt-rtl-toggle // @namespace Violentmonkey Scripts // @match https://chatgpt.com/*/* // @grant none // @version 1.0 // @author - // @description enabling RTL (Right-To-Left) text direction toggle // @run-at document-end // @license MIT // ==/UserScript== // // chrome extention: https://chromewebstore.google.com/detail/chatgpt-rtl/cnhikhicflgjbfnllpmbbdpjcfmfnkii if (!document.getElementById("RTL")) { const style = document.createElement("style"); style.id = "RTL"; style.innerHTML = ` #rtlButton { transition: .15s; cursor: pointer; } main.rtl #rtlButton { transform: rotateY(180deg); } code, pre { direction: ltr; text-align: left; } main form textarea#prompt-textarea { padding-right: 96px; } [class^="react-scroll-to-bottom--css-"] { height: 100%; overflow-y: auto; } main.rtl p, main.rtl textarea { direction: rtl; } main.rtl .overflow-x-auto { overflow-x: unset; direction: rtl; } main.rtl .markdown ul, main.rtl .markdown ol { padding-left: unset; padding-right: 0; direction: rtl; } main.rtl .prose :where(ul):not(:where([class~="not-prose"] *)), main.rtl .prose :where(ol):not(:where([class~="not-prose"] *)) { padding-left: unset; padding-right: 1.625em; } main.rtl .markdown ul>li::before, main.rtl .markdown ol>li::before { --tw-translate-x: 100%; padding-right: unset; padding-left: .5rem; } main.rtl .prose :where(ul > li):not(:where([class~="not-prose"] *)), main.rtl .prose :where(ol > li):not(:where([class~="not-prose"] *)) { padding-right: .375em; padding-left: unset; } `; document.head.appendChild(style); } function addRTLButton(textarea) { if (!document.getElementById("rtlButton")) { document.querySelector("main").classList.add("rtl"); const rtlButton = document.createElement("div"); rtlButton.id = "rtlButton"; rtlButton.className = "mb-1 me-1"; rtlButton.innerHTML = ` <div class="relative"> <div class="relative"> <div class="flex flex-col"> <span class="flex" data-state="closed"> <div aria-disabled="false" aria-label="Attach files" class="flex items-center justify-center h-8 w-8 rounded-lg rounded-bl-xl text-token-text-primary dark:text-white focus-visible:outline-black dark:focus-visible:outline-white hover:bg-black/10"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M7 6H17 M7 10H13 M7 14H17 M7 18H13" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </div> </span> </div> </div> </div> `; textarea.parentElement.parentElement.parentElement.parentElement.lastElementChild.firstElementChild.appendChild( rtlButton ); rtlButton.addEventListener("click", () => document.querySelector("main").classList.toggle("rtl") ); } } const observer = new MutationObserver(() => { const textarea = document.querySelector("main form textarea"); if (textarea) { addRTLButton(textarea); // observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true, }); //chrome extention: https://chromewebstore.google.com/detail/chatgpt-rtl/cnhikhicflgjbfnllpmbbdpjcfmfnkii