Chú ý: Sau khi lưu trang này, phải xóa bộ nhớ đệm (cache) của trình duyệt để những thay đổi hiện ra

  • Firefox / Safari: Nhấn giữ phím Shift trong khi nhấn Tải lại (Reload), hoặc nhấn tổ hợp Ctrl-F5 hay Ctrl-R (⌘R trên Mac)
  • Google Chrome: Nhấn tổ hợp Ctrl-Shift-R (⇧⌘R trên Mac)
  • Internet Explorer / Edge: Nhấn giữ phím Ctrl trong khi nhấn Làm tươi (Refresh), hoặc nhấn tổ hợp Ctrl-F5
  • Opera: Nhấn tổ hợp Ctrl-F5.
mw.loader.using( ['mediawiki.util', 'jquery.client'], function () {
/* Đầu hàm gọi lại mw.loader.using() */

/*  Rút gon danh sách ngôn ngữ trong Trang Chính  */
/* [[Wiktionary:Trang Chính]] */
mw.loader.using("mediawiki.util", function(){
	// Ẩn tiêu đề và "Đổi hướng từ" (maybe we should keep the redirected from so's people update their bookmarks ;)
	// Broken in IE!
	if (mw.config.get('wgIsMainPage') && !(mw.config.get('wgAction') === 'view' || mw.config.get('wgAction') === 'submit')) {
		mw.util.addCSS('.firstHeading { display: block !important; }');
		mw.util.addCSS('#contentSub { display: inline !important; }');
	}
	
	if (mw.config.get('wgIsMainPage')) {
		$(function(){
			mw.util.addPortletLink('p-lang', '//meta.wikimedia.org/wiki/Wiktionary#List_of_Wiktionaries',
				'Danh sách đầy đủ', 'interwiki-completelist', 'Danh sách đầy đủ các phiên bản Wiktionary');
		});
	}
});


/**
 * Đổi hướng User:Name/skin.js và skin.css đến các trang giao diện hiện tại
 * (trừ khi trang 'skin' thực sự tồn tại)
 * @source: http://www.mediawiki.org/wiki/Snippets/Redirect_skin.js
 * @rev: 2
 */
if ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgNamespaceNumber' ) === 2 ) {
	var titleParts = mw.config.get( 'wgPageName' ).split( '/' );
	/* Make sure there was a part before and after the slash
	   and that the latter is 'skin.js' or 'skin.css' */
	if ( titleParts.length == 2 ) {
		var userSkinPage = titleParts.shift() + '/' + mw.config.get( 'skin' );
		if ( titleParts.slice( -1 ) == 'skin.js' ) {
			window.location.href = mw.util.getUrl( userSkinPage + '.js' );
		} else if ( titleParts.slice( -1 ) == 'skin.css' ) {
			window.location.href = mw.util.getUrl( userSkinPage + '.css' );
		}
	}
}

/**
 * Map addPortletLink sang mw.util
 * @deprecated: Dùng mw.util.addPortletLink thay thế.
 */
mw.log.deprecate( window, 'addPortletLink', mw.util.addPortletLink, 'Dùng mw.util.addPortletLink thay thế' );

/**
 * Trích xuất một tham số URL từ URL hiện tại
 * @deprecated: Dùng mw.util.getParamValue với lối thoát thích hợp
 */
mw.log.deprecate( window, 'getURLParamValue', mw.util.getParamValue, 'Dùng mw.util.getParamValue thay thế' );

/**
 * Kiểm tra nếu một phần tử có một lớp nhất định
 * @deprecated:  Use $(element).hasClass() instead.
 */
mw.log.deprecate( window, 'hasClass', function ( element, className ) {
	return $( element ).hasClass( className );
}, 'Dùng jQuery.hasClass() thay thế' );

/**
 * @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL
 * @rev 6
 */
var extraCSS = mw.util.getParamValue( 'withCSS' ),
	extraJS = mw.util.getParamValue( 'withJS' );

if ( extraCSS ) {
	if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {
		mw.loader.load( '/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css' );
	} else {
		mw.notify( 'Chỉ cho phép các trang từ không gian tên MediaWiki', { title: 'Giá trị withCSS không hợp lệ' } );
	}
}

if ( extraJS ) {
	if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {
		mw.loader.load( '/w/index.php?title=' + extraJS + '&action=raw&ctype=text/javascript' );
	} else {
		mw.notify( 'Chỉ cho phép các trang từ không gian tên MediaWiki.', { title: 'Giá trị withJS không hợp lệ' } );
	}
}

/* Chuyển hướng liên kết "Tải lên tập tin" đến Wikimedia Commons.
 */
mw.hook("wikipage.content").add(function() {
	$("#t-upload a").attr("href", mw.util.getUrl("Commons:Special:UploadWizard"));
});

/**
 * ***** Mã cho Wiktionary *****
 * ***** Kiểm tra trước khi xóa *****
 */
 
/**
 * Chức năng: Chắc chắn lấy vị trí ký tự bao gồm các ký tự không phải BMP.
 * (c) 2012 Steven Levithan <http://slevithan.com/>
 * MIT license
 */
if (!String.prototype.codePointAt) {
    String.prototype.codePointAt = function (pos) {
        pos = isNaN(pos) ? 0 : pos;
        var str = String(this),
            code = str.charCodeAt(pos),
            next = str.charCodeAt(pos + 1);
        // If a surrogate pair
        if (0xD800 <= code && code <= 0xDBFF && 0xDC00 <= next && next <= 0xDFFF) {
            return ((code - 0xD800) * 0x400) + (next - 0xDC00) + 0x10000;
        }
        return code;
    };
}

/**
 * Áp dụng phông chữ và thẻ ngôn ngữ phù hợp vào các mục trong danh sách mục từ
 * trên trang thể loại, miễn là thể loại có gắn [[Bản mẫu:catfix]].
 */
mw.hook("wikipage.content").add(function () {
    if (mw.config.get("wgNamespaceNumber") != 14) return;
    
    var catfix = $("#catfix");
    if (!catfix.length) return;
    
    var scriptTag = catfix.children().first().text("");
    if (!scriptTag.length) scriptTag = $("<span></span>");
    
    var anchor = encodeURIComponent(catfix.data("catfix-anchor"))
        .replace(/%20/g, "_").replace(/%/g, ".");
    
    var ranges = catfix.data("catfix-script-ranges");
    if (ranges) {
        ranges = ranges.split(" ");
        for (var i = 0; i < ranges.length; i++) ranges[i] = parseInt(ranges[i]);
    }
    
    var isInScript = function (ch) {
        if (!ranges || !ranges.length) return true;
        for (var i = 0; i < ranges.length; i += 2) {
            if (ch >= ranges[i] && ch <= ranges[i + 1]) return true;
        }
        return false;
    };
    
    $("#mw-pages > .mw-content-ltr h3").each(function (idx) {
        var text = $(this).text();
        var firstCh = text.codePointAt(0);
        if (!isInScript(firstCh)) return;
        var firstChWidth = firstCh < 0xFFFF ? 1 : 2;
        $(this).text(text.substring(firstChWidth))
            .prepend(scriptTag.clone().text(text.substring(0, firstChWidth)));
    });
    $("#mw-pages > .mw-content-ltr li a").wrap(function (idx) {
        if (isInScript($(this).text().codePointAt(0))) return scriptTag;
    }).each(function (idx) {
        var href = $(this).attr("href");
        $(this).attr("href", href + "#" + anchor);
    });
});

// == Tiêu đề không được hỗ trợ == 
// [[Special:PrefixIndex/Tiêu đề không được hỗ trợ]]
// [[MediaWiki:UnsupportedTitles.js]]
if ((mw.config.get('wgAction') === 'view' && /^(?:Talk:)?Tiêu_đề_không_được_hỗ_trợ\//.test(mw.config.get('wgPageName')))
		|| mw.config.get('wgCanonicalSpecialPageName') == 'Badtitle')
	mw.loader.using('mediawiki.util', function(){importScript("MediaWiki:UnsupportedTitles.js");});


if (mw.config.get("wgTitle").indexOf("by language") != -1)
$("a.CategoryTreeLabelCategory").text(
	function(index, content) {
		return content.replace(
			/^Requests for (?:verification|deletion|cleanup) in (.+) entries$/,
			"$1"
		);
	}
);

/* == Make it easy to update language name-to-code and code-to-name data modules == */
// This regex will always match.
if (['Module:languages/code_to_canonical_name', 'Module:languages/canonical_names']
.indexOf(mw.config.get('wgPageName').match(/^[^\/]*(?:\/[^\/]+)?/)[0]) !== -1)
	importScript('MediaWiki:UpdateLanguageNameAndCode.js');

/**
 * ***** Hết mã cho Wiktionary *****
 * ***** Kiểm tra trước khi xóa *****
 */
/* Kết hàm gọi lại mw.loader.using() */
} );
/* ĐỪNG THÊM MÃ DƯỚI DÒNG NÀY */