MediaWiki:Edit.js

Daripada Wiktionary

Catatan: Selepas menyiarkan perubahan, anda mungkin perlu memintas cache pelayar untuk melihatnya.

  • Firefox / Safari: Tahan Shift sambil mengklik Reload, atau tekan sama ada Ctrl-F5 atau Ctrl-R (⌘-R pada Mac)
  • Google Chrome: Tekan Ctrl-Shift-R (⌘-Shift-R pada Mac)
  • Internet Explorer / Edge: Tahan Ctrl sambil mengklik Refresh, atau tekan Ctrl-F5
  • Opera: Tekan Ctrl-F5.
//<pre> Javascript included on the edit page. 

/*</pre>
==[[MediaWiki:Edittools]]==
<pre>*/

/*</pre>
===applyCharinserts===
<pre>*/

/* handle <span class="charinsert"> like <charinsert> */
function applyCharinserts()
{
  function patchUpInsertTagsArg(arg)
  {
    return(
      arg.replace(/\x22/g,'&quot;').replace(/\x27/g,"\\'").replace(/\x26nbsp;/g,' '));
  }
 
  function charinsertify(s)
  {
    if(s.indexOf('<') > -1)
      return s.replace(/[^<>]+(?=<|$)/g, charinsertify);
    s = s.replace(/\xA0/g, '\x26nbsp;');
    var strings = s.split(/\s/);
    for(var i = 0; i < strings.length; ++i)
    {
      if(strings[i] == '')
        continue;
      var left, right, index;
      index = strings[i].indexOf('+');
      if(index == -1)
        index = strings[i].length;
      left = strings[i].substring(0, index);
      right = strings[i].substring(index + 1);
      strings[i] = left + right;
      left = patchUpInsertTagsArg(left).replace(/^ */, '');
      right = patchUpInsertTagsArg(right);
      strings[i] = "<a onclick=\"mw.toolbar.insertTags('" + left + "','" + right +
                   "','');return false\" href='#'>" + strings[i] + '</a>';
    }
    return strings.join(' ');
  }
 
  var edittools = document.getElementById('editpage-specialchars');
  if(! edittools)
    return;
  var spans = edittools.getElementsByTagName('span');
  if(! spans)
    return;
  for(var i = 0; i < spans.length; ++i)
  {
    if((' ' + spans[i].className + ' ').indexOf(' charinsert ') == -1)
      continue;
    spans[i].className = spans[i].className.replace(/\bcharinsert\b/, '');
    spans[i].innerHTML = charinsertify(spans[i].innerHTML);
  }
}

/*</pre>

===addCharSubsetMenu===
<pre>*/

/* add menu for selecting subsets of secial characters */
function addCharSubsetMenu() {
  var edittools = document.getElementById('editpage-specialchars');

  if(! edittools)
    return;

  var menu = newNode('select',
                     { id: 'charSubsetControl',
                       style: 'display:inline',
                       onchange: 'chooseCharSubset(selectedIndex)'
                     });

  var pp = edittools.getElementsByTagName('p');
  if(!pp)
    return;
  for(var i = 0; i < pp.length; ++i)
    menu.appendChild(
      newNode('option',
        decodeURIComponent(
          (''+pp[i].id).replace(/^edittools-/, '')
                       .replace(/\.([0-9A-F][0-9A-F])/g, '%$1')
                       .replace(/_/g, '%20')
        )
      )
    );

  edittools.insertBefore(menu, edittools.firstChild);

  /* default subset from cookie */
  var s = parseInt( getCookie('edittoolscharsubset') );
  if ( isNaN(s) ) s = 0;

  /* update dropdown control to value of cookie */
  document.getElementById('charSubsetControl').selectedIndex = s; 

  /* display the subset indicated by the cookie */
  chooseCharSubset( s );
}


/*</pre>

===chooseCharSubsetMenu===
<pre>*/

/* select subsection of special characters */
function chooseCharSubset(s) {
  var l = document.getElementById('editpage-specialchars').getElementsByTagName('p');
  for (var i = 0; i < l.length ; i++) {
    l[i].style.display = i == s ? 'inline' : 'none';
    l[i].style.visibility = i == s ? 'visible' : 'hidden';
  }
  setCookie('edittoolscharsubset', s);
}

jQuery(document).ready(function () {
  if(!window.doNotUseDefaultEditTools) { // [[:en:User:Conrad.Irwin/edittools.js]]
    addCharSubsetMenu();
  }
    applyCharinserts();
});

/*
</pre>
*/