Dynamically set text direction for Deepseek chat elements based on content
当前为
// ==UserScript==
// @name Dynamic RTL/LTR Direction
// @namespace http://tampermonkey.net/
// @version V2
// @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 targetClass = "dad65929";
function isRTL(text) {
// Check if the text contains RTL characters (Arabic, Hebrew, etc.)
const rtlPattern = /[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/;
return rtlPattern.test(text);
}
function updateDirection() {
const elements = document.getElementsByClassName(targetClass);
Array.from(elements).forEach(element => {
const textContent = element.textContent.trim();
const currentDirection = element.style.direction;
const newDirection = isRTL(textContent) ? "rtl" : "ltr";
// Only update if the direction has changed
if (textContent.length > 0 && currentDirection !== newDirection) {
element.style.direction = newDirection;
}
});
}
function startObserving() {
observer.observe(document.body, { childList: true, subtree: true, characterData: true });
}
const observer = new MutationObserver(() => {
updateDirection();
});
// Initial check on elements already present in the DOM
updateDirection();
// Start observing the DOM for changes
startObserving();
})();