להורדה | סימניה לRTL (תצוגה מימין לשמאל) בAI STUDIO וגלילה קלה בצ'אט. גירסה חדשה ומתקדמת
-
הכנתי סימניה נוחה לשינוי הכיוון של הטקסט, מותאמת במיוחד לAI STUDIO.
כל הסימניות והתוספים שקיימים בפורום לשינוי RTL, לדעתי בדרך כלל הורסים את התצוגה של הדף, בגלל שהוא לא נבנה לתצוגה כזו מימין לשמאל, אבל בAI STUDIO זה באמת מפריע שהטקסט של הצ'אט שכתוב בעברית מוצג משמאל לימין, לכן יצרתי את הסימניה הזו שמשנה רק את האלמנטים האלו של הצ'אט עצמו ולא כל המסביב.
עדכון: עדכנתי שהאלמנטים של הקוד לא ישתנו, זה כמובן עובד רק כשיש זיהוי שמדובר בבלוק קוד, ולא כאשר זה לא מזוהה כמו שקורה הרבה פעמים.
כמו כן היתה תקלה שאת הפרומפט של המשתמש הוא לא החליף ותוקן עכשיו.עריכה נוספת: למדריך שימוש בסימניות חכמות שכתב @I-believe עיינו כאן.
עדכון כ"ו אב תשפ"ה:
הקוד עודכן עקב שינויים בעיצוב שנעשו ע"י גוגל, ונכתב מחדש בצורה מתקדמת הרבה יותר (האמת שעל חלק מהשיפורים לא יודע איך לא חשבתי מראש).- מספיק להריץ את הסימניה פעם אחת וזה מסדר גם את המשך השיחה.
- הקוד מזהה אוטומטית האם תרגום גוגל פעיל, ולפי זה הוא מחליט אם לשנות את המחשבות של המודל לRTL (אם היה תרגום ועכשיו לא או להיפך אפשר להריץ את הסימניה שוב)
- גם התיבת טקסט להקלדה משתנה לRTL.
תהנו.
עדכון ב' אלול תשפ"ה:
עקב שינויים שנעשו בעיצוב והורידו את החיצים לגלילה נוחה לתחילת הודעה ולסופה, הוספתי לסימניה קוד שמחזיר את החיצים הללו, הסימניה עכשיו מבצעת את שני הפעולות יחד.מי שרוצה לשים אייקון בשם הסימנייה לחסוך במקום אז הנה
↔️
javascript:(function(){const oldContainer=document.getElementById('ai-studio-nav-container');if(oldContainer){oldContainer.remove();}if(window.aiStudioNavReposition){window.removeEventListener('resize',window.aiStudioNavReposition);}const scrollableContainer=document.querySelector('ms-autoscroll-container');if(!scrollableContainer){alert('שגיאה: לא נמצא אזור הגלילה הראשי (`ms-autoscroll-container`).');return;}const navContainer=document.createElement('div');navContainer.id='ai-studio-nav-container';Object.assign(navContainer.style,{position:'fixed',zIndex:'9999',display:'flex',gap:'8px',opacity:'0',pointerEvents:'none',transition:'opacity 0.3s ease-in-out'});const upArrow=document.createElement('div');upArrow.textContent='↑';const downArrow=document.createElement('div');downArrow.textContent='↓';[upArrow,downArrow].forEach(arrow=>{Object.assign(arrow.style,{cursor:'pointer',backgroundColor:'rgba(255, 255, 255, 0.5)',color:'#000',border:'1px solid #000',borderRadius:'50%',width:'32px',height:'32px',display:'flex',alignItems:'center',justifyContent:'center',fontSize:'20px',fontWeight:'normal',userSelect:'none',backdropFilter:'blur(4px)',webkitBackdropFilter:'blur(4px)'});});navContainer.appendChild(upArrow);navContainer.appendChild(downArrow);document.body.appendChild(navContainer);function repositionButtons(){const footer=document.querySelector('footer.not-zero-state');const bottomOffset=footer?footer.offsetHeight+25:95;const scrollRect=scrollableContainer.getBoundingClientRect();const centerX=scrollRect.left+(scrollRect.width/2);navContainer.style.bottom=`${bottomOffset}px`;navContainer.style.left=`${centerX}px`;navContainer.style.transform='translateX(-50%)';}repositionButtons();window.aiStudioNavReposition=repositionButtons;window.addEventListener('resize',window.aiStudioNavReposition);let hideTimeout;const setHideTimeout=()=>{clearTimeout(hideTimeout);hideTimeout=setTimeout(()=>{navContainer.style.opacity='0';navContainer.style.pointerEvents='none';},1500);};scrollableContainer.addEventListener('scroll',()=>{navContainer.style.opacity='0.8';navContainer.style.pointerEvents='auto';setHideTimeout();});navContainer.addEventListener('mouseenter',()=>clearTimeout(hideTimeout));navContainer.addEventListener('mouseleave',setHideTimeout);function findCurrentElementIndex(elements){const containerRect=scrollableContainer.getBoundingClientRect();let maxVisibleHeight=0;let bestIndex=-1;elements.forEach((el,index)=>{const elRect=el.getBoundingClientRect();const visibleTop=Math.max(elRect.top,containerRect.top);const visibleBottom=Math.min(elRect.bottom,containerRect.bottom);const visibleHeight=Math.max(0,visibleBottom-visibleTop);if(visibleHeight>maxVisibleHeight){maxVisibleHeight=visibleHeight;bestIndex=index;}});return bestIndex===-1?0:bestIndex;}function handleScroll(direction){const elements=Array.from(scrollableContainer.querySelectorAll('ms-chat-turn'));if(elements.length===0)return;const currentIndex=findCurrentElementIndex(elements);const currentElement=elements[currentIndex];const containerRect=scrollableContainer.getBoundingClientRect();const elRect=currentElement.getBoundingClientRect();const isFullyVisible=elRect.top>=containerRect.top&&elRect.bottom<=containerRect.bottom;const isAtTop=Math.abs(elRect.top-containerRect.top)<5;const isAtBottom=Math.abs(elRect.bottom-containerRect.bottom)<5;if(direction==='up'){if(isFullyVisible&¤tIndex>0){const prevElement=elements[currentIndex-1];scrollableContainer.scrollBy({top:prevElement.getBoundingClientRect().bottom-containerRect.bottom,behavior:'smooth'});}else if(!isAtTop){scrollableContainer.scrollBy({top:elRect.top-containerRect.top,behavior:'smooth'});}else if(currentIndex>0){const prevElement=elements[currentIndex-1];scrollableContainer.scrollBy({top:prevElement.getBoundingClientRect().bottom-containerRect.bottom,behavior:'smooth'});}}else{if(isFullyVisible&¤tIndex<elements.length-1){const nextElement=elements[currentIndex+1];scrollableContainer.scrollBy({top:nextElement.getBoundingClientRect().top-containerRect.top,behavior:'smooth'});}else if(!isAtBottom){scrollableContainer.scrollBy({top:elRect.bottom-containerRect.bottom,behavior:'smooth'});}else if(currentIndex<elements.length-1){const nextElement=elements[currentIndex+1];scrollableContainer.scrollBy({top:nextElement.getBoundingClientRect().top-containerRect.top,behavior:'smooth'});}}}upArrow.addEventListener('click',()=>handleScroll('up'));downArrow.addEventListener('click',()=>handleScroll('down'));const staticStyleId='custom-rtl-styles-injector';const existingStaticStyle=document.getElementById(staticStyleId);if(existingStaticStyle){existingStaticStyle.remove();}const staticCssRules=`ms-chat-turn:not(:has(ms-thought-chunk)) .chat-turn-container,div.user-prompt-container,div.text-wrapper {direction: rtl !important;text-align: right !important;}ms-code-block, ms-code-block pre, ms-code-block code {direction: ltr !important;text-align: left !important;}ms-cmark-node ol, ms-cmark-node ul {padding-right: 20px !important;padding-left: 0 !important;}`;const staticStyleElement=document.createElement('style');staticStyleElement.id=staticStyleId;staticStyleElement.appendChild(document.createTextNode(staticCssRules));document.head.appendChild(staticStyleElement);const conditionalStyleId='conditional-rtl-style-injector';const selectorForTranslation='ms-chat-turn:has(ms-thought-chunk) .chat-turn-container';const existingConditionalStyle=document.getElementById(conditionalStyleId);if(existingConditionalStyle){existingConditionalStyle.remove();}const isGoogleTranslateActive=document.documentElement.classList.contains('translated-rtl');if(isGoogleTranslateActive){const conditionalCssRule=`${selectorForTranslation} {direction: rtl !important;text-align: right !important;}`;const conditionalStyleElement=document.createElement('style');conditionalStyleElement.id=conditionalStyleId;conditionalStyleElement.appendChild(document.createTextNode(conditionalCssRule));document.head.appendChild(conditionalStyleElement);}})();
@I-believe בבקשה
@ע-ה-דכו-ע
למה הקוד מתיישר ימינה? -
@ע-ה-דכו-ע
למה הקוד מתיישר ימינה? -
עדכנתי את הקוד כעת בפוסט הראשון.
הקוד עודכן עקב השינויים בעיצוב שנעשו ע"י גוגל כמו שכתבו פה, אבל על הדרך הוא גם נכתב מחדש בצורה מתקדמת הרבה יותר (האמת שעל חלק מהשיפורים לא יודע איך לא חשבתי מראש).
רשימת השיפורים:
- מספיק להריץ את הסימניה פעם אחת וזה מסדר גם את המשך השיחה.
- הקוד מזהה אוטומטית האם תרגום גוגל פעיל, ולפי זה הוא מחליט אם לשנות את המחשבות של המודל לRTL (אם היה תרגום ועכשיו לא או להיפך אפשר להריץ את הסימניה שוב)
- גם התיבת טקסט להקלדה משתנה לRTL.
דווחו על באגים אם יש.
האמת שרציתי לנסות להפעיל את הסקריפט מתוך גיטס וכדו' כדי לאפשר עדכון אוטומטי מכאן ואילך, אבל המדיניות אבטחה של AI STUDIO לא מאפשרת את זה, אז תאלצו כל עדכון להחליף ידנית את הסימניה
-
עדכנתי את הקוד כעת בפוסט הראשון.
הקוד עודכן עקב השינויים בעיצוב שנעשו ע"י גוגל כמו שכתבו פה, אבל על הדרך הוא גם נכתב מחדש בצורה מתקדמת הרבה יותר (האמת שעל חלק מהשיפורים לא יודע איך לא חשבתי מראש).
רשימת השיפורים:
- מספיק להריץ את הסימניה פעם אחת וזה מסדר גם את המשך השיחה.
- הקוד מזהה אוטומטית האם תרגום גוגל פעיל, ולפי זה הוא מחליט אם לשנות את המחשבות של המודל לRTL (אם היה תרגום ועכשיו לא או להיפך אפשר להריץ את הסימניה שוב)
- גם התיבת טקסט להקלדה משתנה לRTL.
דווחו על באגים אם יש.
האמת שרציתי לנסות להפעיל את הסקריפט מתוך גיטס וכדו' כדי לאפשר עדכון אוטומטי מכאן ואילך, אבל המדיניות אבטחה של AI STUDIO לא מאפשרת את זה, אז תאלצו כל עדכון להחליף ידנית את הסימניה
@ע-ה-דכו-ע כתב בלהורדה | סימניה לRTL (תצוגה מימין לשמאל) בAI STUDIO. גירסה חדשה ומתקדמת:
גם התיבת טקסט להקלדה משתנה לRTL.
מטורף
אין מילים
חוויה מטורפת
סו"ס כשאני כותב טקסטים ארוכים אני לא צריך לכתוב אותם בפנקס רשימות ואז להדביק שם -
עדכנתי את הקוד כעת בפוסט הראשון.
הקוד עודכן עקב השינויים בעיצוב שנעשו ע"י גוגל כמו שכתבו פה, אבל על הדרך הוא גם נכתב מחדש בצורה מתקדמת הרבה יותר (האמת שעל חלק מהשיפורים לא יודע איך לא חשבתי מראש).
רשימת השיפורים:
- מספיק להריץ את הסימניה פעם אחת וזה מסדר גם את המשך השיחה.
- הקוד מזהה אוטומטית האם תרגום גוגל פעיל, ולפי זה הוא מחליט אם לשנות את המחשבות של המודל לRTL (אם היה תרגום ועכשיו לא או להיפך אפשר להריץ את הסימניה שוב)
- גם התיבת טקסט להקלדה משתנה לRTL.
דווחו על באגים אם יש.
האמת שרציתי לנסות להפעיל את הסקריפט מתוך גיטס וכדו' כדי לאפשר עדכון אוטומטי מכאן ואילך, אבל המדיניות אבטחה של AI STUDIO לא מאפשרת את זה, אז תאלצו כל עדכון להחליף ידנית את הסימניה
-
@ע-ה-דכו-ע תוסיף להגדרה שתהיה התאמה של התוכן כ-LTR אם הטקסט הוא באנגלית. זה שימושי לפעמים
כרגע, גם טקסט באנגלית מיושר לימין בצורה לא תקינה
@NH.LOCAL כתב בלהורדה | סימניה לRTL (תצוגה מימין לשמאל) בAI STUDIO. גירסה חדשה ומתקדמת:
@ע-ה-דכו-ע תוסיף להגדרה שתהיה התאמה של התוכן כ-LTR אם הטקסט הוא באנגלית. זה שימושי לפעמים
כרגע, גם טקסט באנגלית מיושר לימין בצורה לא תקינה
למה אתה מתכוון? בתוך קטע של טקסט? או אם נניח המשתמש כתב קטע שלם באנגלית?
בתוך קטע זה מסובך נורא, צריך להתחיל לחלק את הקטע לאלמנטים נפרדים של HTML.
-
@NH.LOCAL כתב בלהורדה | סימניה לRTL (תצוגה מימין לשמאל) בAI STUDIO. גירסה חדשה ומתקדמת:
@ע-ה-דכו-ע תוסיף להגדרה שתהיה התאמה של התוכן כ-LTR אם הטקסט הוא באנגלית. זה שימושי לפעמים
כרגע, גם טקסט באנגלית מיושר לימין בצורה לא תקינה
למה אתה מתכוון? בתוך קטע של טקסט? או אם נניח המשתמש כתב קטע שלם באנגלית?
בתוך קטע זה מסובך נורא, צריך להתחיל לחלק את הקטע לאלמנטים נפרדים של HTML.
-
עדכון ב' אלול תשפ"ה:
עקב שינויים שנעשו בעיצוב והורידו את החיצים לגלילה נוחה לתחילת הודעה ולסופה, הוספתי לסימניה קוד שמחזיר את החיצים הללו, הסימניה עכשיו מבצעת את שני הפעולות יחד. -
עדכון ב' אלול תשפ"ה:
עקב שינויים שנעשו בעיצוב והורידו את החיצים לגלילה נוחה לתחילת הודעה ולסופה, הוספתי לסימניה קוד שמחזיר את החיצים הללו, הסימניה עכשיו מבצעת את שני הפעולות יחד.@ע-ה-דכו-ע האם יש דרך להוסיף ייצוא של כל השיחה לmd?
-
@ע-ה-דכו-ע תוכל להוסיף לסימניה בלוק מסודר לקוד במקרה שAI STUDIO מתקמצן על זה?
אני ניסיתי בעבר לעשות את זה על בסיס זיהוי הסימנים שלפני ואחרי הקוד לא זוכר למה לא הצלחתי
ניסיתי גם משהו מתוחכם פחות פשוט אמרתי לו שלפני ואחרי קוד יעשו סימון מסוים ותיאמתי את זה עם התוסף שיזהה את זה כקוד -
@ע-ה-דכו-ע תוכל להוסיף לסימניה בלוק מסודר לקוד במקרה שAI STUDIO מתקמצן על זה?
אני ניסיתי בעבר לעשות את זה על בסיס זיהוי הסימנים שלפני ואחרי הקוד לא זוכר למה לא הצלחתי
ניסיתי גם משהו מתוחכם פחות פשוט אמרתי לו שלפני ואחרי קוד יעשו סימון מסוים ותיאמתי את זה עם התוסף שיזהה את זה כקוד@כהן-צדק כתב בלהורדה | סימניה לRTL (תצוגה מימין לשמאל) בAI STUDIO וגלילה קלה בצ'אט. גירסה חדשה ומתקדמת:
@ע-ה-דכו-ע תוכל להוסיף לסימניה בלוק מסודר לקוד במקרה שAI STUDIO מתקמצן על זה?
אני ניסיתי בעבר לעשות את זה על בסיס זיהוי הסימנים שלפני ואחרי הקוד לא זוכר למה לא הצלחתי
ניסיתי גם משהו מתוחכם פחות פשוט אמרתי לו שלפני ואחרי קוד יעשו סימון מסוים ותיאמתי את זה עם התוסף שיזהה את זה כקודיש לדעתי שתי סיבות למה לפעמים הMD לא מעוצב כמו שצריך.
לפעמים זה כנראה בגלל שהשיחה מידי ארוכה, או משהו כזה, ואם כן לא יודע אם הקוד שאני אוסיף יהיה יותר עמיד מהקוד המקורי של האתר.
ולפעמים זה פשוט בגלל שהמודל שם את הסימן של הסיום של הקוד נניח באותה שורה של הסיום שלו, במקום בשורה הבאה, וזה מפריע לזיהוי, כמו זה (לפעמים יכול להיות בעיה גם בתחילת הקוד):
}```
ובכזה מקרה הפתרון הוא לערוך את התשובה, ולהוסיף אנטר איפה שצריך בין הסוף של הקוד לסימנים, והכל מסתדר על מקומו.
יכול להיות שאפשר גם להוסיף בהנחיות מערכת להגיד למודל שייזהר יותר לשים את הסימנים כמו שצריך להיות ולא לפספס את המעברי שורה האלו.
-
@כהן-צדק כתב בלהורדה | סימניה לRTL (תצוגה מימין לשמאל) בAI STUDIO וגלילה קלה בצ'אט. גירסה חדשה ומתקדמת:
@ע-ה-דכו-ע תוכל להוסיף לסימניה בלוק מסודר לקוד במקרה שAI STUDIO מתקמצן על זה?
אני ניסיתי בעבר לעשות את זה על בסיס זיהוי הסימנים שלפני ואחרי הקוד לא זוכר למה לא הצלחתי
ניסיתי גם משהו מתוחכם פחות פשוט אמרתי לו שלפני ואחרי קוד יעשו סימון מסוים ותיאמתי את זה עם התוסף שיזהה את זה כקודיש לדעתי שתי סיבות למה לפעמים הMD לא מעוצב כמו שצריך.
לפעמים זה כנראה בגלל שהשיחה מידי ארוכה, או משהו כזה, ואם כן לא יודע אם הקוד שאני אוסיף יהיה יותר עמיד מהקוד המקורי של האתר.
ולפעמים זה פשוט בגלל שהמודל שם את הסימן של הסיום של הקוד נניח באותה שורה של הסיום שלו, במקום בשורה הבאה, וזה מפריע לזיהוי, כמו זה (לפעמים יכול להיות בעיה גם בתחילת הקוד):
}```
ובכזה מקרה הפתרון הוא לערוך את התשובה, ולהוסיף אנטר איפה שצריך בין הסוף של הקוד לסימנים, והכל מסתדר על מקומו.
יכול להיות שאפשר גם להוסיף בהנחיות מערכת להגיד למודל שייזהר יותר לשים את הסימנים כמו שצריך להיות ולא לפספס את המעברי שורה האלו.
@ע-ה-דכו-ע כתב בלהורדה | סימניה לRTL (תצוגה מימין לשמאל) בAI STUDIO וגלילה קלה בצ'אט. גירסה חדשה ומתקדמת:
ולפעמים זה פשוט בגלל שהמודל שם את הסימן של הסיום של הקוד נניח באותה שורה של הסיום שלו, במקום בשורה הבאה, וזה מפריע לזיהוי, כמו זה (לפעמים יכול להיות בעיה גם בתחילת הקוד):
זה בעיה בהתחלה, לא בסוף. אין שום בעיה מבחינת פורמט מארקדוון שסימני הסיום מופיעים צמוד לתוכן במקום בשורה חדשה
-
@ע-ה-דכו-ע כתב בלהורדה | סימניה לRTL (תצוגה מימין לשמאל) בAI STUDIO וגלילה קלה בצ'אט. גירסה חדשה ומתקדמת:
ולפעמים זה פשוט בגלל שהמודל שם את הסימן של הסיום של הקוד נניח באותה שורה של הסיום שלו, במקום בשורה הבאה, וזה מפריע לזיהוי, כמו זה (לפעמים יכול להיות בעיה גם בתחילת הקוד):
זה בעיה בהתחלה, לא בסוף. אין שום בעיה מבחינת פורמט מארקדוון שסימני הסיום מופיעים צמוד לתוכן במקום בשורה חדשה
@NH.LOCAL כתב בלהורדה | סימניה לRTL (תצוגה מימין לשמאל) בAI STUDIO וגלילה קלה בצ'אט. גירסה חדשה ומתקדמת:
@ע-ה-דכו-ע כתב בלהורדה | סימניה לRTL (תצוגה מימין לשמאל) בAI STUDIO וגלילה קלה בצ'אט. גירסה חדשה ומתקדמת:
ולפעמים זה פשוט בגלל שהמודל שם את הסימן של הסיום של הקוד נניח באותה שורה של הסיום שלו, במקום בשורה הבאה, וזה מפריע לזיהוי, כמו זה (לפעמים יכול להיות בעיה גם בתחילת הקוד):
זה בעיה בהתחלה, לא בסוף. אין שום בעיה מבחינת פורמט מארקדוון שסימני הסיום מופיעים צמוד לתוכן במקום בשורה חדשה
מציאות, כשאני עורך את זה זה מסתדר.
-
@כהן-צדק כתב בלהורדה | סימניה לRTL (תצוגה מימין לשמאל) בAI STUDIO וגלילה קלה בצ'אט. גירסה חדשה ומתקדמת:
@ע-ה-דכו-ע תוכל להוסיף לסימניה בלוק מסודר לקוד במקרה שAI STUDIO מתקמצן על זה?
אני ניסיתי בעבר לעשות את זה על בסיס זיהוי הסימנים שלפני ואחרי הקוד לא זוכר למה לא הצלחתי
ניסיתי גם משהו מתוחכם פחות פשוט אמרתי לו שלפני ואחרי קוד יעשו סימון מסוים ותיאמתי את זה עם התוסף שיזהה את זה כקודיש לדעתי שתי סיבות למה לפעמים הMD לא מעוצב כמו שצריך.
לפעמים זה כנראה בגלל שהשיחה מידי ארוכה, או משהו כזה, ואם כן לא יודע אם הקוד שאני אוסיף יהיה יותר עמיד מהקוד המקורי של האתר.
ולפעמים זה פשוט בגלל שהמודל שם את הסימן של הסיום של הקוד נניח באותה שורה של הסיום שלו, במקום בשורה הבאה, וזה מפריע לזיהוי, כמו זה (לפעמים יכול להיות בעיה גם בתחילת הקוד):
}```
ובכזה מקרה הפתרון הוא לערוך את התשובה, ולהוסיף אנטר איפה שצריך בין הסוף של הקוד לסימנים, והכל מסתדר על מקומו.
יכול להיות שאפשר גם להוסיף בהנחיות מערכת להגיד למודל שייזהר יותר לשים את הסימנים כמו שצריך להיות ולא לפספס את המעברי שורה האלו.
@ע-ה-דכו-ע אני התחלתי איתו מקודם שיחה חדשה
זה היה לא מסודר מההתחלה
והסימון בתחילת וסוף קוד תמיד אצלי בשורה נפרדת -
@ע-ה-דכו-ע אני התחלתי איתו מקודם שיחה חדשה
זה היה לא מסודר מההתחלה
והסימון בתחילת וסוף קוד תמיד אצלי בשורה נפרדת@כהן-צדק כתב בלהורדה | סימניה לRTL (תצוגה מימין לשמאל) בAI STUDIO וגלילה קלה בצ'אט. גירסה חדשה ומתקדמת:
@ע-ה-דכו-ע אני התחלתי איתו מקודם שיחה חדשה
זה היה לא מסודר מההתחלה
והסימון בתחילת וסוף קוד תמיד אצלי בשורה נפרדתיכול להיות שגם לי זה היה ככה פעם, לא יודע לפי מה זה, אני אולי אנסה לעשות משהו בהמשך, אבל בעיקרון זה מאוד מסובך.
אגב, בממשק החדש צריך לשים לב שזה לא פשוט בגלל שהכפתור הזה מופעל: