コンテンツにスキップ

利用者:Frozen-mikan/曖昧さ回避.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • Cmd Shift を押しながら R を押す。

詳細についてはWikipedia:キャッシュを消すをご覧ください。

// 曖昧さ回避の括弧が付いたページから括弧が付いていないページへのリンクを追加
jQuery(function($) {
	var m = /^(.+?)_\(.+\)$/.exec(mw.config.get("wgPageName"));
	if (m != null) {
		var output = mw.html.element( 'div', {}, new mw.html.Raw(
			mw.html.escape('< ') + 
			mw.html.element( 'a', { href: mw.util.getUrl( m[1] )}, m[1])
		));
		$("#contentSub").append(output);
	}
});

// 「項目名 (曖昧さ回避)」を新規作成する際、テキストボックスを「#転送 [[項目名]]」とする。
jQuery(function($) {
	var $textbox = $('#wpTextbox1');
	if ($textbox.length == 0) return;

	var m = /^(.+?)_\((.+)\)$/.exec(mw.config.get("wgPageName"));
	if (m == null || m[2] != "曖昧さ回避") return;

	if ($textbox[0].value == "") {
		$textbox[0].value = "#転送 [[" + m[1] + "]]";
	}
});

// 「項目名 (曖昧さ回避)」以外の「すべての曖昧さ回避」カテゴリを含んでいるページに「項目名 (曖昧さ回避)」へのリンクを追加する
jQuery(function($) {
	function isAimai() {
		var cats = mw.config.get("wgCategories") || [];
		for (var i = 0; i < cats.length; ++i) {
			if (cats[i] == "すべての曖昧さ回避") return true;
		}
		return false;
	}
	if (isAimai() == false) return;

	var m = /^(.+?)(?:_\((.+)\))?$/.exec(mw.config.get("wgPageName"));
	if (m == null || m[2] == "曖昧さ回避") return;
	
	var output = mw.html.element( 'div', {}, new mw.html.Raw(
		mw.html.escape('< ') + 
		mw.html.element( 'a', {
			href: mw.util.getUrl( m[1] + '_(曖昧さ回避)', {redirect: "no"})
		}, m[1] + ' (曖昧さ回避)')
	));
	$("#contentSub").append(output);
});

// 曖昧さ回避ページへのリンクであることを明示する方法を「項目名 (曖昧さ回避)」へのリンクに統一する
jQuery(function($) {
	if (mw.config.get("wgNamespaceNumber") != 0) return;
	
	var $textbox = $('#wpTextbox1');
	if ($textbox.length == 0) return;

	var oldText = $textbox[0].value;
	var newText = oldText
		// [[項目名]] (曖昧さ回避)
		.replace(/\[\[(.+?)\]\][_  ]?[\((]曖昧さ回避[)\)]/g, "[[$1 (曖昧さ回避)]]")
		// [[項目名|項目名 (曖昧さ回避)]]
		.replace(/\[\[(.+?)\|\1[_  ]?[\((]曖昧さ回避[)\)]\]\]/g, "[[$1 (曖昧さ回避)]]");

	if (oldText != newText) {
		if (window.confirm('曖昧さ回避ページヘのリンクを変更しますか?') == false) return;

		$textbox[0].value = newText;

		// 要約欄に追加
		var $summary = $('#wpSummary');
		if ($summary.length == 0) return;

		$summary[0].value = $summary[0].value + "[[Wikipedia:曖昧さ回避#曖昧さ回避ページへのリンク]]";

		// 細部の編集
		var $minor = $('#wpMinoredit');
		if ($minor.length == 0) return;

		$minor[0].checked = true;

		// 投稿ボタンの無効化
		var $save = $('#wpSave');
		if ($save.length == 0) return;

		$save[0].disabled = true;
	}
});