미디어위키:Gadget-XTools-ArticleInfo.js

위키백과, 우리 모두의 백과사전.

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다. 구글 크롬, 파이어폭스, 마이크로소프트 엣지, 사파리: ⇧ Shift 키를 누른 채 "새로 고침" 버튼을 클릭하십시오. 더 자세한 정보를 보려면 위키백과:캐시 무시하기 항목을 참고하십시오.

/**
 * XTools ArticleInfo gadget
 * Based on meta.wikimedia.org/wiki/User:Hedonil/XTools
 * Documentation: mediawiki.org/wiki/XTools/ArticleInfo_gadget
 * Released under GPL 3.0+ license
 * For updates, please copy and paste from https://xtools.wmcloud.org/articleinfo-gadget.js
 */
$(function () {
    if (mw.config.get('wgArticleId') === 0 || // no deleted articles, no special pages
            mw.config.get('wgCurRevisionId') !== mw.config.get('wgRevisionId') || // only current revision
            mw.config.get('wgAction') !== 'view') { // only when viewing a page, not editing
        return;
    }

    var $result,
        markup = "<div id='xtools' style='font-size:84%; line-height:1.2em;" +
        "width:auto;'><span id='xtools_result'>.</span></div>";
    $(markup).insertBefore('#contentSub');
    $result = $('#xtools_result');

    var loadinganimation = window.setInterval(function () {
        if ($result.html() === '.&nbsp;&nbsp;') {
            $result.html('&nbsp;.&nbsp;');
        } else if ($result.html() === '&nbsp;.&nbsp;') {
            $result.html('&nbsp;&nbsp;.');
        } else {
            $result.html('.&nbsp;&nbsp;');
        }
    }, 300);

    $.get(
        'https://xtools.wmcloud.org/api/page/articleinfo/' +
        mw.config.get('wgServerName') + '/' +
        mw.config.get('wgPageName').replace(/["?%&+\\]/g, escape) + '?format=html' +
        '&uselang=' + mw.config.get('wgUserLanguage')
    ).done(function (result) {
        $result.html(result);
        clearInterval(loadinganimation);
        
        $.get(
          '//xtools.wmcloud.org/api/page/prose/' +
          mw.config.get('wgServerName') + '/' +
          mw.config.get('wgPageName').replace(/["?%&+]/g, escape)
          ).done(function(t2){
          (new mw.Api()).get({
              action: 'query',
              titles: mw.config.get('wgPageName'),
              prop: 'revisions',
              rvprop: 'size'
          }).done(function(data) {
              $result.append(
             	 ' · 문자 수: '+  t2.characters + ', 단어 수: ' +
             	 t2.words + ', 바이트: ' +
             	 data.query.pages[mw.config.get('wgArticleId')].revisions[0].size
              );
          });
        });
    });
});