مدیاویکی:TofawikiRecommend.js

نکته: برای دیدن تغییرات، ممکن است نیاز باشد که حافظهٔ نهانی مرورگر خود را پس از انتشار پاک‌سازی کنید. گوگل کروم، فایرفاکس، مایکروسافت اج و سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload در نوار ابزار مرورگر کلیک کنید. برای آگاهی از جزئیات و نحوهٔ پاک‌سازی حافظهٔ نهانی سایر مرورگرها، صفحهٔ ویکی‌پدیا:میانگیر مرورگرتان را خالی کنید را ببینید.

$(function () {
	var enLink = $('.interwiki-en > a[lang="en"]');
	if (!enLink.length) {
		return;
	}
	$.get('https://api.wikimedia.org/service/lw/recommendation/v1/api', {
		s: 'en',
		t: 'fa',
		n: 4,
		article: enLink.attr('title').replace('–انگلیسی', '')
	}).then(function (data) {
		return new mw.Api({ ajax: { url: '//en.wikipedia.org/w/api.php' } }).get({
			action: 'query',
			formatversion: 2,
			format: 'json',
			prop: 'pageimages|pageterms',
			piprop: 'thumbnail',
			pithumbsize: 70,
			wbptterms: 'description',
			pilimit: 3,
			titles: data.map(function (x) { return x.title; }).join('|'),
			uselang: 'en',
			smaxage: 86400,
			origin: location.protocol + '//' + location.hostname
		});
	}).then(function (data) {
		$('#bodyContent').prepend($('<aside>', {
			'class': 'ra-read-more noprint'
		}).append(
			$('<h3>').append($('<b>', { text: 'مقاله‌های مرتبط برای ایجاد:' })),
			$('<table>', {
				class: 'wikitable',
				style: 'width:80%; border: 2px solid #2a4b8d; background-color:#eaf3ff;',
				dir: 'ltr'
			}).append($('<tbody>').append($('<tr>').append(
				data.query.pages.map(function (article) {
					return $('<td>', { style: 'width:25%;' }).append($('<a>', {
						href: 'https://en.wikipedia.org' + mw.util.getUrl(article.title),
					}).append(
						$('<img>', {
							style: 'float: left; padding: .2em;',
							src: article.thumbnail !== undefined
								? article.thumbnail.source
								: 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c4/OOjs_UI_icon_article-ltr.svg/70px-OOjs_UI_icon_article-ltr.svg.png'
						}),
						$('<span>', {
							style: "color: #000; font-size: .8em;",
							text: article.title
						}),
						$('<br>'),
						$('<span>', {
							style: 'color: #888888; font-size: .6em;',
							text: article.terms !== undefined
								? article.terms.description
								: ''
						})
					));
				})
			)))
		));
	});
});