מדיה ויקי:סקריפטים/112.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
/* Adds a "My links" section at the sidebar menu for personal links. The links are defined at [[Special:MyPage/הקישורים שלי]]. Idea based on [[MediaWiki:Gadget-CustomSideBarLinks.js]]. Rewritten by [[User:Guycn2]] to adapt to vector-2022 and minerva, among other layout adjustments. __________________________________________________ הוספת תיבה "הקישורים שלי" בתפריט הצד, ליצירת קישורים אישיים. הקישורים מוגדרים בדף [[מיחד:הדף שלי/הקישורים שלי]]. הרעיון מבוסס על [[מדיה ויקי:Gadget-CustomSideBarLinks.js]]. נכתב מחדש ע"י [[משתמש:Guycn2]], לצורך התאמה לעיצוב וקטור 2022 ולתצוגת ניידים, בנוסף לתיקוני תצוגה אחרים. */ $( async () => { 'use strict'; const skin = mw.config.get( 'skin' ); const menuHeadingText = mw.config.get( 'wgUserLanguage' ) === 'he' ? 'הקישורים שלי' : 'My links'; let $communityMenu, $myLinksMenu, $menuHeading, $menuContent, $menuList; switch ( skin ) { case 'vector-2022': $communityMenu = $( '#p-community' ); $myLinksMenu = $communityMenu.clone(); $myLinksMenu.removeClass( 'mw-portlet-community' ); $menuHeading = $myLinksMenu.children( '.vector-menu-heading' ); $menuHeading.text( menuHeadingText ); $menuContent = $myLinksMenu.children( '.vector-menu-content' ); $menuList = $menuContent.children( 'ul' ).empty(); break; case 'vector': $communityMenu = $( '#p-community' ); $myLinksMenu = $communityMenu.clone(); $myLinksMenu.removeClass( 'mw-portlet-community' ); $myLinksMenu.attr( 'aria-labelledby', 'p-personal-links-label' ); $menuHeading = $myLinksMenu.children( '.vector-menu-heading' ); $menuHeading.attr( 'id', 'p-personal-links-label' ); $menuHeading.children( '.vector-menu-heading-label' ).text( menuHeadingText ); $menuContent = $myLinksMenu.children( '.vector-menu-content' ); $menuList = $menuContent.children( 'ul' ).empty(); break; case 'monobook': $communityMenu = $( '#p-community' ); $myLinksMenu = $communityMenu.clone(); $myLinksMenu.removeClass( 'mw-portlet-community' ); $myLinksMenu.attr( 'aria-labelledby', 'p-personal-links-label' ); $menuHeading = $myLinksMenu.children( '#p-community-label' ); $menuHeading.attr( 'id', 'p-personal-links-label' ).text( menuHeadingText ); $menuContent = $myLinksMenu.children( '.pBody' ); $menuList = $menuContent.children( 'ul' ).empty(); break; case 'timeless': $communityMenu = $( '#p-community' ); $myLinksMenu = $communityMenu.clone(); $myLinksMenu.attr( 'aria-labelledby', 'p-personal-links-label' ); $menuHeading = $myLinksMenu.children( '#p-community-label' ); $menuHeading.attr( 'id', 'p-personal-links-label' ).text( menuHeadingText ); $menuContent = $myLinksMenu.children( '.mw-portlet-body' ); $menuList = $menuContent.children( 'ul' ).empty(); break; case 'minerva': $communityMenu = $( '#p-interaction' ); $myLinksMenu = $communityMenu.clone(); $menuList = $myLinksMenu.empty(); break; default: return; } $myLinksMenu.attr( 'id', 'p-personal-links' ).insertBefore( $communityMenu ); const params = { action: 'parse', page: `User:${ mw.config.get( 'wgUserName' ) }/הקישורים שלי`, prop: 'text', disablelimitreport: true, useskin: skin, mobileformat: skin === 'minerva' }; await mw.loader.using( 'mediawiki.api' ); let data, $outputElem; try { data = await new mw.Api().get( params ); $outputElem = $( data.parse.text[ '*' ] ); } catch ( e ) { return; } const $listItems = $outputElem.find( 'ul' ).children( 'li' ); $listItems.each( function () { const $listItem = $( this ); if ( skin === 'minerva' ) { $listItem.addClass( 'toggle-list-item' ); const $links = $listItem.find( 'a' ); $links.each( function () { const $link = $( this ), linkText = $link.text(); $link .removeClass( 'external' ) .addClass( 'toggle-list-item__anchor' ) .attr( 'data-mw', 'interface' ) .empty() .append( $( '<span>' ) .addClass( 'toggle-list-item__label' ) .text( linkText ) .css( 'margin-right', '1.07rem' ) ); } ); } else { $listItem.addClass( 'mw-list-item' ); } $listItem.appendTo( $menuList ); } ); } );