שיחת תבנית:קידוד ניקוד

תוכן הדף אינו נתמך בשפות אחרות.
הוספת נושא
מתוך ויקיפדיה, האנציקלופדיה החופשית
תגובה אחרונה: לפני שנתיים מאת דוד שי בנושא בעיה עם URL

בעיה עם URL[עריכת קוד מקור]

מצב טיפול: טופל

יצרתי את תבנית:מילון ההווה, שמקשרת לדף באתר האקדמיה ללשון העברית, שה-URL שלו כולל מילה מנוקדת בעברית. בדוגמאות שבדף התבנית ניתן לראות שהתבנית פועלת היטב כאשר ה-URL כולל מילה אחת (למשל "חָתוּל", אבל אינה פועלת כאשר ה-URL כולל צירוף של שתי מילים (למשל "חָתוּל-בַּשַּׂק"). מה הפתרון? דוד שי - שיחה 06:59, 30 בינואר 2022 (IST)תגובה

בבניית הקישור, השתמשת ב-keyword. נראה שאתר האקדמיה מעדיף צורה שונה כשמדובר בביטוי: [1]. קיפודנחש 16:44, 30 בינואר 2022 (IST)תגובה

קיפודנחש, מדובר בדפים שונים. דוד שי, על פניו נראה שהבעיה ברמת המפענח. אעקוב אחר הדיון ובמקביל אחפש פתרון. עלי - שיחה 20:23, 30 בינואר 2022 (IST)תגובה
עלי, בעקבות הערתך מתברר שהבעיה היא באות שיש בה שני סימני ניקוד, למשל סגול ודגש, כמו באות הראשונה של המילה "כֶּלֶב". אצלנו הקידוד הוא %D7%9B%D6%B6%D6%BC, כלומר האות כ, הניקוד סגול והניקוד דגש, ואילו באתר האקדמיה הוא %D7%9B%D6%BC%D6%B6, כלומר האות כ, הניקוד דגש והניקוד סגול. בעיה דומה במילה "שִׁיר", שבה שני סימנים: חיריק והנקודה שמציינת שזו שין ימנית. איך מתאימים בין הקידודים? נראה לי שנדרש טיפול במילת הקסם urlencode, או במקום בסיסי יותר במדיה-ויקי. דוד שי - שיחה 23:31, 30 בינואר 2022 (IST)תגובה
תודה על החידוד. ממה שהצלחתי לראות, ובהחלט לא חקרתי את העניין עד תום, המתודה String.prototype.normalize()‎ של JavaScript‎, למשל, צפויה ליצור בעיה מסוג זה. לצערי הנושא לא מוכר לי, ואם ערן הספיק לערוך עמו הכרות – כולנו נרוויח; אם לא, אשתדל להעמיק חקר בהמשך. עלי - שיחה 01:08, 31 בינואר 2022 (IST)תגובה
מש:ערן טיפל בזמנו בבעיה דומה באתר הזה עבור כלי קידוד הקישורים. כשיהיה לי זמן אנבור איפה בדיוק זה היה, אבל אני מאמין שהוא יֵדע לעזור גם בלי למצוא את הדיון... דגש - שיחה 23:43, 30 בינואר 2022 (IST)תגובה
אם יורשה לי, הכוונה כנראה לשינוי זה, שלגמרי במקרה ביצעתי אנוכי ולא ערן. הסבר טכני קצר: כפי שדוד ציין, סטנדרט יוניקוד מאפשר במקרים מסוימים מספר קידודים שונים לאותה תיבה, כשזו כוללת ניקוד. התקן גם מגדיד אופן קנוני לניקוד במקרים כאלו, כלומר את הסדר "הנכון" לסימני הקידוד. מסיבה עלומה, אתר האקדמיה מצפה בחלק מהמקרים דווקא לקידוד שאינו הקידוד הקנוני.
הבעיה היא שתשתית מדיה ויקי מנרמלת את המחרוזות בשמירה, ולכן יש קישורים שלא צריך "לקדד" (למעשה מה שצ'קטי קורא "קידוד קישורים" זה מה שרוב העולם קורא decode, או "פענוח"), כי פעולת השמירה בוויקיפדיה שוברת את הקישור (כלומר אחרי שצ'קטי מפענח והדף נשמר, מתקבלת מחרוזת אקוויוולנטית למקורית, אך לא זהה לה).
עד כאן הסבר הדיאגנוזה שביצע דוד, לגבי "פתרון" - אין לי, חוץ מאשר להשתמש בצורה המקודדת כפרמטר לתבנית, במקום שהיא תעשה זאת בעצמה. אולי עלי יכול לכתוב קוד לואה שיאפשר את שני האופנים, למשל על ידי הגבלת הקידוד למחרוזות שכוללות תווים בעברית, או הימנעות מקידוד מחרוזות שנראות מקודדות. באופן כזה יהיה ניתן להעביר לתבנית את ה-%91%D6%B7%D7%A8... כאשר מעבירים פרמטר מקודד. שינוי כזה ידרוש גם הוספת פרמטר אופציונלי שני, להצגת המחרוזת בצורתה הלא מקודדת, או העברת קוד התבנית כולה ליחידה בלואה.
טכנית, הפתרון הנכון אינו כאן אלא באתר האקדמיה: אתר שמקבל מחרוזת יוניקוד כחלק מהכתובת, צריך לטפל בכתובת על ידי נירמול. לא לקבל מחרוזת בצורה לא קנונית זו עבירה קלה (אתר בנוי היטב צריך לקבל את כל הווריאציות, ולנרמל אותן מאחרי הקלעים כך שכולן יקשרו לדף הנכון), ולהתעקש על מחרוזת בצורה לא קנונית ולדחות את הצורה הקנונית זו עבירה קשה יותר. מן הראוי שהאתר של האקדמיה ללשון, שמקבל מילים מנוקדות בשורת הכתובת (ואף דורש זאת), יתנהג כשורה דווקא בנקודה הזו. לקריאה נוספת: en:Unicode equivalence#Canonical ordering. קיפודנחש 02:07, 31 בינואר 2022 (IST)תגובה
תודה על ההסבר המפורט, קיפודנחש. לאחר שניתן נזכרתי שהספקתי לשכוח. ברצוני להביע תמיכה נלהבת בסיפה של תגובתך, ונקווה ששמו הטוב של הבירוקרט המיתולוגי שלנו, דוד שי, ימריץ את האקדמיה לטפל בתחלואיה. עלי - שיחה 02:26, 31 בינואר 2022 (IST)תגובה

אכן, גם אני כבר שכחתי, והדיאגנוזה המדויקת של דוד היא שהזכירה לי. בב"ח - קיפודנחש 03:34, 31 בינואר 2022 (IST)תגובה

בזמנו חיפשתי פתרון לקישור שמכיל גרש או גרשיים ובגללם הקישורים היו משתשבשים. {{#titleparts:}}. מצאתי את זה במדיה ויקי. מובלט כהערת אזהרה באדום (השני). אולי זה יכול לעזור במשהו. Geagea - שיחה 11:45, 31 בינואר 2022 (IST)תגובה

הסיבה היא כנראה שכשטקסט בעברית מאוחסן במסד הנתונים של מדיה־ויקי, נעשית שם פעולת נרמול, שמעבירה את הדגש אחרי סימן הניקוד, גם אם מקלידים אותו לפניו. זה כנראה אותו העניין שגרם לבעיות תצוגה בחלונות XP ובדפדפנים ישנים בעשור הראשון של ויקיפדיה העברית – הדגש „ברח” מהאות. הרבה פעמים ביקשנו מהמתכנתים לתקן את זה, וזה לא תוקן מסיבות כלשהן – אולי עדיפות נמוכה ואולי זה היה גורם לבעיות טכניות אחרות. בגרסאות מאוחרות יותר של חלונות ודפדפנים מודרניים, בעיית התצוגה הזאת נעלמה, ולכן הפסקנו לדאוג בקשר לזה.

ועכשיו נראה שזה מרים את הראש שוב. אפשר לנסות להעלות שוב לדיון את הבעיה ההיא ולבקש להפסיק לעשות את הנרמול הזה. מכיוון שאני ממש לא בטוח שזה יתוקן במדיה־ויקי, ושגם אם יתוקן, זה בטוח לא יקרה מהר, הפתרון שאני יכול לחשוב עליו הוא לחזור להשתמש בתבניות הניקוד, שהיינו משתמשים בהן כדי להתגבר על בעיית הדגש ב־XP. לכבוד זה, רעננתי את התבניות האלו ואת התיעוד שלהן, יצרתי תבניות לכל הסימנים שהיו חסרים ושיכולים להיות נחוצים לזה. (לא יצרתי תבניות לחטפים, כי נדמה לי שהם אף פעם לא מופיעים על אותיות דגושות, אבל אם צריך, אפשר ליצור גם אותם.)

ניסיתי, ונדמה לי שזה עובד:

לא הכי נוח בעולם, אבל עובד. אם יש למישהו הצעה טובה יותר, אשמח לשמוע.

יש עוד הערות?.. --אמיר א׳ אהרוני - שיחה 10:49, 1 בפברואר 2022 (IST)תגובה

זה פתרון מסורבל לשימוש אנושי, אבל הוא יכול להיות בסיס ליחידה בלואה שתקבל טקסט מנוקד ותייצר ממנו את קוד הוויקי הזה. אם כבר הגענו לפתרון תכנותי אצלנו, אולי פשוט יותר לעבוד על הקישור המקודד (זה שיש בו סימני %), ובכל מקרה של רצף אות-ניקוד-דגש תשנה את הסדר לאות-דגש-ניקוד, ובאופו דומה תטפל בשין מנוקדת. דוד שי - שיחה 11:19, 1 בפברואר 2022 (IST)תגובה
דוד שי, סימנתי כ"טופל" משום שאסגור לך את הפינה באמצעות יחידת לואה, אך אני מפציר בך לבקש מהאקדמיה לנרמל את הכתובות שלה בהתאם לתקן, לטובת המרשתת כולה. עלי - שיחה 13:33, 1 בפברואר 2022 (IST)תגובה
התכנות היה ממש מהיר, כל הכבוד! הוספתי לתבנית את הדוגמה "מְנַשֵּׁק", שבה מצטרפים אל האות שין שלושה סימנים, וגם בה הפתרון עובד. דוד שי - שיחה 14:29, 1 בפברואר 2022 (IST)תגובה

סוף העברה
דוד שי - שיחה 19:31, 1 בפברואר 2022 (IST)תגובה