লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।

  • ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
  • এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন।
  • অপেরা: Ctrl-F5 টিপুন।
//<nowiki> //টুইংকল গ্যাজেটের মোবাইল সংস্করণ।  //ইন্সটলের পদ্ধতি জানার জন্য [[:bn:ব্যবহারকারী:Yahya/TwinkleMobile]] পাতা দেখুন।  // [[:en:User:Phac/TwinkleMobile.js]] থেকে নেয়া হয়েছে।   (function ($, mw, OO) {     function loadCSS(resources) {         resources.forEach(function (resource) {             mw.loader.load('/w/index.php?title=MediaWiki:Gadget-' + resource + '&action=raw&ctype=text/css', 'text/css');         });     }      function createBasketItems(resources) {         var basketItems = [];         resources.forEach(function (resource) {             basketItems.push({                 url: '/w/index.php?title=MediaWiki:Gadget-' + resource + '&action=raw&ctype=text/javascript',                 key: resource,                 expire: 168 // Cache for 7 days             });         });         return basketItems;     }      function utils() {         // Don't zoom-in when focusing input         $('head').append('<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>');         // CSS for better Twinkle dialog on mobile         mw.loader.load('//vi.wikipedia.org/w/index.php?title=User:Phac/TwinkleMobile.css&action=raw&ctype=text/css', 'text/css');     }      function main() {         var twinkleDependencies = ['morebitsV1.js', 'select2.min.js', 'TwinkleV1.js'],             twinkleModules = [                 'twinkleconfig.js',                 'twinklefluff.js',                 'twinkleimage.js',                 'twinklewarn.js',                 'twinkleblock.js',                 'twinklespeedy.js',                 'friendlyshared.js',                 'twinklediff.js',                 'twinkleunlink.js',                 'friendlytag.js',              //   'twinkledeprod.js',                 'friendlywelcome.js',                 'twinklexfd.js',                 'twinklebatchdelete.js',                 'twinklebatchundelete.js',                 'twinklebatchprotect.js',                 'twinkleprotect.js',              //   'twinklearv.js',                 'friendlytalkback.js'             ],             twinkleModulePortletLinks = [];          utils();         loadCSS(['morebitsV1.css', 'select2.min.css']);          basket.require.apply(basket, createBasketItems(twinkleDependencies)).then(function () {             // Override Twinkle.addPortletLink function             Twinkle.addPortletLink = function (task, text, id, tooltip) {                 twinkleModulePortletLinks.push({                     task: task,                     text: text,                     id: id,                     tooltip: tooltip                 });             };              // Fix bug on Minerva (it doesn't have this)             mw.config.set('wgCategories', []);              // Fix bug on Special:MobileDiff pages             if (mw.config.get('wgCanonicalSpecialPageName') === 'MobileDiff') {                 mw.config.set('wgNamespaceNumber', mw.Title.newFromText(mw.config.get('wgRelevantPageName')).getNamespaceId());                 mw.config.set('wgArticleId', mw.config.get('wgRelevantArticleId'));                 mw.config.set('wgPageName', mw.config.get('wgRelevantPageName'));                 mw.config.set('wgCurRevisionId', mw.config.get('wgDiffNewId'));                 Morebits.pageNameNorm = mw.config.get('wgRelevantPageName').replace(/_/g, ' ');                 window.history.replaceState(null, null, '?diff=' + mw.config.get('wgDiffNewId'));             }              return basket.require.apply(basket, createBasketItems(twinkleModules));         }).then(function () {             setTimeout(function () {                 // Create TwinkleMobile portlet link and dialog                 function TwinkleMobileDialog(config) {                     TwinkleMobileDialog.super.call(this, config);                 }                 OO.inheritClass(TwinkleMobileDialog, OO.ui.ProcessDialog);                  TwinkleMobileDialog.static.name = 'TwinkleMobileDialog';                 TwinkleMobileDialog.static.title = 'টুইংকল মোবাইল';                 TwinkleMobileDialog.static.actions = [                     {                         action: 'save',                         label: mw.message('ooui-popup-widget-close-button-aria-label').text(),                         flags: ['primary', 'progressive']                     }                 ];                  TwinkleMobileDialog.prototype.initialize = function () {                     var dialog = this;                      TwinkleMobileDialog.super.prototype.initialize.apply(this, arguments);                     this.panel = new OO.ui.PanelLayout({                         padded: true,                         expanded: false                     });                     this.content = new OO.ui.FieldsetLayout();                      var fields = [];                     twinkleModulePortletLinks.forEach(function (link) {                         var button;                          if (typeof link.task === 'string') {                             button = new OO.ui.ButtonWidget({                                 href: link.task,                                 label: link.text,                                 id: link.id,                                 title: link.tooltip                             });                         }                          if (typeof link.task === 'function') {                             button = new OO.ui.ButtonWidget({                                 label: link.text,                                 id: link.id,                                 title: link.tooltip                             });                             button.on('click', function (e) {                                 link.task();                                 // Only close TwinkleMobile dialog when Twinkle dialog is opened                                 if ($('.morebits-dialog').length !== 0) {                                     dialog.close();                                 }                             });                         }                          fields.push(new OO.ui.FieldLayout(button));                     });                      if (fields.length === 0) {                         fields.push(new OO.ui.LabelWidget({                             label: 'কিছু নেই'                         }));                     }                      this.content.addItems(fields);                     this.panel.$element.append(this.content.$element);                     this.$body.append(this.panel.$element);                 };                  TwinkleMobileDialog.prototype.getActionProcess = function (action) {                     var dialog = this;                     if (action) {                         return new OO.ui.Process(function () {                             dialog.close({                                 action: action                             });                         });                     }                     return TwinkleMobileDialog.super.prototype.getActionProcess.call(this, action);                 };                  TwinkleMobileDialog.prototype.getBodyHeight = function () {                     return this.panel.$element.outerHeight(true);                 };                  var windowManager = new OO.ui.WindowManager();                 $(document.body).append(windowManager.$element);                  windowManager.addWindows([new TwinkleMobileDialog({                     size: 'small'                 })]);                  var twmbLink = mw.util.addPortletLink('p-personal', '#', 'টুইংকল মোবাইল', 'twmb', 'TwinkleMobile');                 $(twmbLink).click(function (e) {                     windowManager.openWindow('TwinkleMobileDialog');                     e.preventDefault();                 });             }, 1000); // Execute this after all Twinkle modules is executed         }).catch(function (e) {             mw.log.error(e.message);         });     }      mw.loader.using([         'mediawiki.user', 'mediawiki.util', 'mediawiki.Title',         'mediawiki.api', 'mediawiki.language', 'jquery.ui',         'oojs-ui-core', 'oojs-ui-widgets', 'oojs-ui-windows'     ]).then(function () {         if (mw.config.get('wgUserGroups').includes('autoconfirmed')             && mw.config.get('skin') === 'minerva') {             return new mw.Api().loadMessagesIfMissing([                 'ooui-popup-widget-close-button-aria-label'             ]);         } else {             throw new Error('টুইংকল মোবাইল শুধুমাত্র মিনের্ভা স্কিনে কাজ করে এবং কমপক্ষে স্বয়ংনিশ্চিতকৃত ব্যবহারকারী অধিকার প্রয়োজন হয়');         }     }).then(function () {         return mw.loader.getScript('https://tools-static.wmflabs.org/cdnjs/ajax/libs/basket.js/0.5.2/basket.full.min.js');     }).then(main).catch(function (e) {         mw.log.error(e.message);     }); })(jQuery, mediaWiki, OO);