미디어위키:Gadget-twinklediff.js
참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다. 구글 크롬, 파이어폭스, 마이크로소프트 엣지, 사파리: ⇧ Shift 키를 누른 채 "새로 고침" 버튼을 클릭하십시오. 더 자세한 정보를 보려면 위키백과:캐시 무시하기 항목을 참고하십시오.
// <nowiki> (function($) { /* **************************************** *** twinklediff.js: Diff module **************************************** * Mode of invocation: Tab on non-diff pages ("Last"); tabs on diff pages ("Since", "Since mine", "Current") * Active on: Existing non-special pages */ Twinkle.diff = function twinklediff() { if (mw.config.get('wgNamespaceNumber') < 0 || !mw.config.get('wgArticleId')) { return; } Twinkle.addPortletLink(mw.util.getUrl(mw.config.get('wgPageName'), {diff: 'cur', oldid: 'prev'}), '최근 변경 차이', 'tw-lastdiff', '가장 최근의 차이를 보여줍니다'); // Show additional tabs only on diff pages if (mw.util.getParamValue('diff')) { Twinkle.addPortletLink(function() { Twinkle.diff.evaluate(false); }, '이전 사용자와의 차이', 'tw-since', '이전 사용자가 기여한 판과 마지막 판 사이의 차이를 보여줍니다'); Twinkle.addPortletLink(function() { Twinkle.diff.evaluate(true); }, '내 기여와의 차이', 'tw-sincemine', '마지막 판과 자신의 마지막 판 사이의 차이를 보여줍니다'); var oldid = /oldid=(.+)/.exec($('#mw-diff-ntitle1').find('strong a').first().attr('href'))[1]; Twinkle.addPortletLink(mw.util.getUrl(mw.config.get('wgPageName'), {diff: 'cur', oldid: oldid}), '현재 판과의 차이', 'tw-curdiff', '현재 판과의 차이를 보여줍니다'); } }; Twinkle.diff.evaluate = function twinklediffEvaluate(me) { var user; if (me) { user = mw.config.get('wgUserName'); } else { var node = document.getElementById('mw-diff-ntitle2'); if (!node) { // nothing to do? return; } user = $(node).find('a').first().text(); } var query = { 'prop': 'revisions', 'action': 'query', 'titles': mw.config.get('wgPageName'), 'rvlimit': 1, 'rvprop': [ 'ids', 'user' ], 'rvstartid': mw.config.get('wgCurRevisionId') - 1, // i.e. not the current one 'rvuser': user }; Morebits.status.init(document.getElementById('mw-content-text')); var wikipedia_api = new Morebits.wiki.api('최초 기여자의 데이터를 가져오고 있습니다', query, Twinkle.diff.callbacks.main); wikipedia_api.params = { user: user }; wikipedia_api.post(); }; Twinkle.diff.callbacks = { main: function(self) { var xmlDoc = self.responseXML; var revid = $(xmlDoc).find('rev').attr('revid'); if (!revid) { self.statelem.error('적절한 이전 판이 없거나 ' + self.params.user + '님이 유일한 기여자입니다. 중단합니다.'); return; } window.location = mw.util.getUrl(mw.config.get('wgPageName'), { diff: mw.config.get('wgCurRevisionId'), oldid: revid }); } }; Twinkle.addInitCallback(Twinkle.diff, 'diff'); })(jQuery); // </nowiki>