您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Dynamically set text direction for Deepseek chat elements based on content
当前为
- // ==UserScript==
- // @name Dynamic RTL/LTR Direction
- // @namespace http://tampermonkey.net/
- // @version V4
- // @description Dynamically set text direction for Deepseek chat elements based on content
- // @author Reda Elsayed
- // @match https://chat.deepseek.com/
- // @match https://chat.deepseek.com/*
- // @match https://chat.deepseek.com/*/chat/*/*
- // @icon https://www.deepseek.com/path/to/icon.png
- // @grant none
- // ==/UserScript==
- (function () {
- "use strict";
- const textareaClass = "c92459f0";
- const targetClass = "ds-markdown ds-markdown--block";
- const codeClass = "md-code-block";
- function isRTL(text) {
- const rtlPattern = /[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/;
- return rtlPattern.test(text);
- }
- function updateDirection() {
- const targetElements = document.getElementsByClassName(targetClass);
- const codeElements = document.getElementsByClassName(codeClass);
- Array.from(targetElements).forEach((element) => {
- const textContent = element.textContent.trim();
- const newDirection = isRTL(textContent) ? "rtl" : "ltr";
- if (textContent.length > 0 && element.style.direction !== newDirection) {
- element.style.direction = newDirection;
- element.style.textAlign = newDirection === "rtl" ? "right" : "left";
- }
- });
- Array.from(codeElements).forEach((element) => {
- element.style.direction = "ltr";
- element.style.textAlign = "left";
- });
- }
- function observeChanges() {
- const observer = new MutationObserver(() => {
- updateDirection();
- });
- observer.observe(document.body, { childList: true, subtree: true });
- }
- function observeTextArea() {
- const textAreaElements = document.getElementsByClassName(textareaClass);
- Array.from(textAreaElements).forEach((textArea) => {
- textArea.addEventListener("input", () => {
- const text = textArea.value.trim();
- const direction = isRTL(text) ? "rtl" : "ltr";
- textArea.style.direction = direction;
- textArea.style.textAlign = direction === "rtl" ? "right" : "left";
- });
- });
- }
- function applyToExistingMessages() {
- // Ensure all existing messages have the correct direction on load
- updateDirection();
- }
- // Initialize the script
- applyToExistingMessages();
- observeChanges();
- observeTextArea();
- })();