MediaWiki:Chorke/Common.js

From Chorke Wiki
Revision as of 23:55, 16 December 2025 by Shahed (talk | contribs) (Created page with "Syntaxhighlight Copy Button: mw.loader.using('jquery').done(function () { $('.mw-highlight pre').each(function () { const pre = $(this); const btn = $('<button>') .text('Copy') .addClass('copy-button') .css({ position: 'absolute', 'font-size': '12px', 'z-index': 1, right: '6px', top: '6px' }); const wrapper = $('<div>') .css({ position: 'relative' }); pre.wrap(wra...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Syntaxhighlight Copy Button */
mw.loader.using('jquery').done(function () {
  $('.mw-highlight pre').each(function () {
    const pre = $(this);
    const btn = $('<button>')
      .text('Copy')
      .addClass('copy-button')
      .css({
        position: 'absolute',
        'font-size': '12px',
        'z-index': 1,
        right: '6px',
        top: '6px'
      });

    const wrapper = $('<div>')
      .css({
        position: 'relative'
      });

    pre.wrap(wrapper).before(btn);
    btn.on('click', function () {
      const code = pre.text().replace(/\u00a0/g, ' ');
      navigator.clipboard.writeText(code).then(function () {
        btn.text('Copied!');
        setTimeout(() => btn.text('Copy'), 1000);
      });
    });
  });
});


/* MediaWiki Collapsible Table */
mw.loader.using('jquery.makeCollapsible', function () {
  $('.mw-collapsible').each(function () {
    var $toggle        = $(this).find('.mw-collapsible-toggle'),
        collapsedClass = 'mw-collapsible-toggle-collapsed',
        expandedClass  = 'mw-collapsible-toggle-expanded';

    if ($toggle.length) {
      if (!$toggle.hasClass(expandedClass) && !$toggle.hasClass(collapsedClass)) {
        $toggle.addClass(expandedClass);
      }

      $toggle.on('click', function () {
        var $this = $(this);
        if ($this.hasClass(expandedClass)) {
          $this.removeClass(expandedClass).addClass(collapsedClass);
        } else {
          $this.removeClass(collapsedClass).addClass(expandedClass);
        }
      });
    }
  });
});