İçeriğe atla

MediaWiki:Gadget-ReferenceDrawer.js

Deltarune Wiki sitesinden

Not: Yayımladıktan sonra değişiklikleri görmeniz için tarayıcınızın önbelleğini temizlemeniz gerekebilir.

  • Firefox / Safari: Shift tuşuna basılıyken Yeniden Yükle'ye tıklayın ya da Ctrl-F5 ya da Ctrl-R tıklayın (Mac için ⌘-R)
  • Google Chrome: Ctrl-Shift-R'ye basın. (Mac için ⌘-Shift-R)
  • Edge: Ctrl basılıyken Yenile'ye tıklayın ya da Ctrl-F5'e basın.
const $drawer = $('<div>')
	.addClass('reference-drawer')
	.append($('<div>')
	.addClass('reference-drawer__title')
		.append($('<span>')
			.addClass('reference-drawer__title__text')
			.text(mw.msg('cite-reference-previews-reference')))
		.append($('<button>')
			.addClass([
				'cdx-button',
				'cdx-button--size-large',
				'cdx-button--weight-quiet',
				'cdx-button--icon-only',
			])
			.append($('<span>')
				.addClass([
					'vector-icon',
					'mw-ui-icon-wikimedia-close',
				]))
			.append($('<span>')
				.text('close'))))
	.append($('<div>')
		.addClass('reference-drawer__content'))
	.appendTo(document.body);

const $drawerOverlay = $('<div>')
	.addClass('reference-drawer-overlay')
	.appendTo(document.body);

const $drawerContent = $drawer.find('.reference-drawer__content');

function closeDrawer() {
	$drawer.removeClass('shown');
	$drawerOverlay.removeClass('shown');
}
$drawer.find('button').click(closeDrawer);
$drawerOverlay.click(closeDrawer);

$('sup.reference a').click(event => {
	// (hover: hover) matches on Chrome Mobile
	if (matchMedia('(pointer: fine)').matches) {
		return;
	}
	event.preventDefault();
	const $reference = $(event.currentTarget);
	const refId = $reference.attr('href');
	if (!refId.startsWith('#')) {
		return;
	}
	const escapedRefId = $.escapeSelector(refId.slice(1));
	$drawerContent
		.empty()
		.append($('<sup>')
			.text($reference.text()))
		.append(' ')
		.append($(`#${escapedRefId} .reference-text`).clone());
	$drawer.addClass('shown');
	$drawerOverlay.addClass('shown');
});
Konu ekle