มีเดียวิกิ:UnsupportedTitles.js

จาก วิกิพจนานุกรม พจนานุกรมเสรี

หมายเหตุ: หลังเผยแพร่ คุณอาจต้องล้างแคชเว็บเบราว์เซอร์ของคุณเพื่อดูการเปลี่ยนแปลง

  • ไฟร์ฟอกซ์ / ซาฟารี: กด Shift ค้างขณะคลิก Reload หรือกด Ctrl-F5 หรือ Ctrl-R (⌘-R บนแมค)
  • กูเกิล โครม: กด Ctrl-Shift-R (⌘-Shift-R บนแมค)
  • อินเทอร์เน็ตเอกซ์พลอเรอร์ และ Edge: กด Ctrl ค้างขณะคลิก Refresh หรือกด Ctrl-F5
  • โอเปร่า: กด Ctrl-F5
/*
 * On subpages of Unsupported titles and Talk:Unsupported titles, show the
 * correct title in the header at the top of the page. For instance, on the page
 * [[Unsupported titles/Left curly bracket]], show the title {.
 *
 * This is not enabled in the mobile version of the site.
 *
 * For all such pages, see [[Special:PrefixIndex/ชื่อไม่รองรับ]].
 */
if (mw.config.get('wgAction') === 'view'
		&& /^(?:พูดคุย:)?ชื่อไม่รองรับ\//.test(mw.config.get('wgPageName')))
	$(function() {
		var titleMap = {
			'วงเล็บปีกกาเปิด': '{',
			'วงเล็บปีกกาปิด': '}',
			'วงเล็บเหลี่ยมเปิด': '[',
			'วงเล็บเหลี่ยมปิด': ']',
			'น้อยกว่า': '<',
			'มากกว่า': '>',
			'เท่ากับมากกว่า': '=>',
			'เท่ากับน้อยกว่า': '=<',
			'มากกว่าเท่ากับ': '>=',
			'น้อยกว่าเท่ากับ': '<=',
			'ขีดกลางมากกว่า': '->',
			'น้อยกว่าขีดกลาง': '<-',
			'มากกว่าขีดล่างน้อยกว่า': '>_<',
			'จุดคู่จุดคู่': '::',
			'จุดคู่ปิดล้อม': ': :',
			'จุดคู่เท่ากับ': ':=',
			'จุดคู่ธอร์นใหญ่': ':Þ',
			'จุดคู่ธอร์นเล็ก': ':þ',
			'จุดคู่ทับ': ':/',
			'จุดคู่ทับทับ': '://',
			'จุดคู่วงเล็บเปิด': ':(',
			'จุดคู่วงเล็บปิด': ':)',
			'จุดคู่สาม': ':3',
			'จุดคู่พีใหญ่': ':P',
			'จุดคู่พีเล็ก': ':p',
			'น้อยกว่ามากกว่า': '<>',
			'น้อยกว่าสาม': '<3',
			'น้อยกว่ามากกว่าปิดล้อม': '< >',
			'Less_than_trailing_slash_greater_than': '< />',
			'HTML_start_tag_end_tag': '< > </ >',
			'HTML_comment': '<!-- -->',
			'g_tag': '<g>',
			'จุดคู่ขีดกลางวงเล็บเปิด': ':-(',
			'จุดคู่ขีดกลางวงเล็บปิด': ':-)',
			'ขีดตั้ง': '|',
			'ขีดตั้งขีดตั้ง': '||',
			'ขีดตั้งปิดล้อม': '| |',
			'ซีชาร์ป': 'C#',
			'นัมเบอร์': '#',
			'นัมเบอร์ปิดล้อม': '# #',
			'แอมป์': '&amp;',
			'จุดคู่': ':',
			'จุดจุด': '..',
			'จุด': '.',
			'ขีดล่าง': '_',
			'Low_line_interfix': '-_-',
			'อักขระแทน': '\uFFFD',
			'วงเล็บเหลี่ยม': '[ ]',
			'วงเล็บปีกกา': '{ }',
			'Square_bracketed_ellipsis': '[…]',
			'ขีดล่างปิดล้อม': '_ _',
			'C_through_N_to_K': 'C|N>K',
			'оทับจุด': 'о/.',
			'มีทู': '#MeToo',
			'eq_number_sign': 'eq #',
			'hr_number_sign': 'hr #',
			'น้อยกว่าทับสาม': '</3',
			'จุดทับจุด': './.',

			'Thai_name_of_Bangkok': 'กรุงเทพมหานคร อมรรัตนโกสินทร์ มหินทรายุธยา มหาดิลกภพ นพรัตนราชธานีบูรีรมย์ อุดมราชนิเวศน์มหาสถาน อมรพิมานอวตารสถิต สักกะทัตติยวิษณุกรรมประสิทธิ์',
			'Ancient_Greek_dish': 'λοπαδο\u00ADτεμαχο\u00ADσελαχο\u00ADγαλεο'
				+ '\u00ADκρανιο\u00ADλειψανο\u00ADδριμυ\u00ADποτριμματο\u00AD'
				+ 'σιλφιο\u00ADκαραβο\u00ADμελιτο\u00ADκατακεχυμενο\u00AD'
				+ 'κιχλε\u00ADπικοσσυφο\u00ADφαττο\u00ADπεριστερα\u00AD'
				+ 'λεκτρυο\u00ADνοπτο\u00ADκεφαλλιο\u00ADκιγκλο\u00AD'
				+ 'πελειο\u00ADλαγῳο\u00ADσιραιο\u00ADβαφητραγανοπτερύγων',

			'Ideographic_space': '[ideographic space]',
			'ช่องว่าง': '[space]',
			'Ogham_space': '[Ogham space]',
			'Cifrão': '[Cifrão]',
			'Old_Israeli_shekel': '[Old Israeli shekel]',

			'': '',
			
			'ขีดกลางขีดตั้งขีดตั้งขีดกลาง' : '-||-',
			
			'Australian_Aboriginal_Flag_emoticon' : '[-o-]',
			'Australian_Aboriginal_Flag_emoticon_alternative' : '[-0-]'
		};
		
		try {
			var subpage = /^(?:พูดคุย:)?ชื่อไม่รองรับ\/(.+)$/
				.exec(mw.config.get('wgPageName'))[1];
			var newTitle = titleMap[subpage] || subpage;
			if (mw.config.get('wgCanonicalNamespace') == 'พูดคุย')
				newTitle = 'พูดคุย:' + newTitle;
	
			var titleTag = document.getElementsByTagName('title')[0];
			titleTag.textContent = titleTag.textContent.replace(/^.*(?= -)/, newTitle);
			document.getElementById('firstHeading').textContent = newTitle;
		} catch (e) {
			console.log('Error while correcting title: ' + e.message + '.');
		}
	});

/*
 * This redirects a user to the correct Unsupported titles page if they attempt
 * to access an invalid title. For instance, if you attempt to access
 * en.wiktionary.org/wiki/<
 * you will be redirected to
 * en.wiktionary.org/wiki/Unsupported_titles/Less_than
 */
if (mw.config.get('wgCanonicalSpecialPageName') == 'Badtitle') {
	/*
	 * Get the name of the page that the user attempted to access using either
	 * the portion of the URL after "/wiki/" or the value of the "title"
	 * parameter in the query. That is, the user is accessing the page using
	 * either the path /wiki/<invalid title> or a path similar to
	 * /w/index.php?title=<invalid title>.
	 *
	 * The actual page displayed if a user attempts to access an invalid title
	 * is the special page with the canonical title [[Special:Badtitle]].
	 */
	var rxArticlePath = new RegExp('^' + mw.config.get('wgArticlePath').replace('$1', '(.*)') + '$');
	var m = rxArticlePath.exec(location.pathname);
	var title = m ? decodeURIComponent(m[1]) : mw.util.getParamValue('title');

	// Not all titles are listed, because not all actually trigger the "bad title" message.
	var revTitleMap = {
		'<': 'น้อยกว่า',
		'>': 'มากกว่า',
		'{': 'วงเล็บปีกกาเปิด',
		'}': 'วงเล็บปีกกาปิด',
		'[': 'วงเล็บเหลี่ยมเปิด',
		']': 'วงเล็บเหลี่ยมปิด',
		'_': 'ขีดล่าง',
		' ': 'ช่องว่าง',
		':': 'จุดคู่',
		'.': 'จุด',
		'|': 'ขีดตั้ง',
		'||': 'ขีดตั้งขีดตั้ง',
		'| |': 'ขีดตั้งปิดล้อม',

		'::': 'จุดคู่จุดคู่',
		': :': 'จุดคู่ปิดล้อม',
		'<>': 'น้อยกว่ามากกว่า',
		'< >': 'น้อยกว่ามากกว่าปิดล้อม',
		'<3': 'น้อยกว่าสาม',
		'<g>': 'g tag',
		'< > </ >': 'HTML start tag end tag',

		'[ ]': 'วงเล็บเหลี่ยม',
		'{ }': 'วงเล็บปีกกา',

		'C|N>K': 'C through N to K',

		'\uFFFD': 'อักขระแทน',
		
		'-||-' : 'ขีดกลางขีดตั้งขีดตั้งขีดกลาง'
	};
	if (revTitleMap[title]) {
		location.href = mw.util.getUrl('ชื่อไม่รองรับ/' + revTitleMap[title]);
	}
}