User:Atmark-chan/custom/revert-to.js

From Meta, a Wikimedia project coordination wiki

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)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// 履歴表示時のみ
if (mw.config.get('wgAction') == 'history') {
	
	// 取り消しリンクを取得して
	var els = document.getElementsByClassName('mw-history-undo');
	
	// そのそれぞれについて
	for (var el in els) {
		// 親要素(ターゲット)を取得して
		target = $(el).parent();
		// そのさらに親の親を取得
		line = $(target).parent().parent();
		// 固定版リンクの要素を取得して
		revIdA = $(line).find('.mw-changeslist-date.userlink');
		// URLを取得、
		url = revIdA[0].getAttribute('href');
		// それをもとに版ID取得
		var rePattern = /(&\?)oldid=(\d+)(&.*)?$/;
		revId = url.match(rePattern)[1];
		
		// リンクを貼る
		$(parent).after(
			$('<span/>').append(
				$('<a/>').attr(
					'href', `/wiki/${
						encodeURI(mw.config.get('wgPageName'))
					}?oldid=${revId}&action=edit&summary=${
						encodeURIComponent(`[[Special:Permalink/${revId}|ID ${revId} 版]]まで差し戻し`)
					}`
				).append(
					'この版へ'
				)
			)
		);
	}
}