MediaWiki talk:Gadget-ProjectSpecificLogos.js

Latest comment: 3 years ago by MF-Warburg in topic Use CSS for not project-specific logos

Logo for Wy/eo edit

Please, add 7/77/Wikivoyage-Logo-v3-eo.svg/135px-Wikivoyage-Logo-v3-eo.svg.png for Wy/eo. It is proposed in meta:Requests for new languages/Wikivoyage Esperanto so "kind of official". Thanks. --KuboF (talk) 09:57, 6 March 2016 (UTC)Reply

Done.
Danny B. 20:33, 6 March 2016 (UTC)Reply
Vďaka ;) --KuboF (talk) 21:42, 9 March 2016 (UTC)Reply

Logo on Wp/jam edit

Please, add //Wikipedia-logo-v2-jam.svg/135px-Wikipedia-logo-v2-jam.svg for Wp/jam. It is proposed in meta:Requests_for_new_languages/Wikipedia_Jamaican so. — The preceding unsigned comment was added by 45.124.64.155 (discussioncontribs).

Done.
Danny B. 23:54, 22 November 2016 (UTC)Reply

Logo for Wy/bn edit

Please, add f/fd/Wikivoyage-Logo-v3-bn.svg/135px-Wikivoyage-Logo-v3-bn.svg.png for Wy/bn. It is proposed in meta:Requests for new languages/Wikivoyage Bengali. --Aftabuzzaman (talk) 16:31, 27 December 2017 (UTC)Reply

Be careful before you thank me. It doesn't seem to be working yet. I have no idea how long this takes. Ping me if it doesn't work in a day or so. StevenJ81 (talk) 16:53, 27 December 2017 (UTC)Reply
Ah. There it goes. Enjoy. StevenJ81 (talk) 16:56, 27 December 2017 (UTC)Reply
@Aftabuzzaman: How do you get the "f/fd" part of that address? There's a different project interested putting its logo here, but I don't know how to get that. StevenJ81 (talk) 18:10, 27 December 2017 (UTC) NM. Figured it out. StevenJ81 (talk) 18:19, 27 December 2017 (UTC)Reply
@StevenJ81: This file is uploaded on commons. so go there. On file page, you will find this text: This image rendered as PNG in other widths: 200px, 500px, 1000px, 2000px. Click on 200px which will give you this https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/Wikivoyage-Logo-v3-bn.svg/200px-Wikivoyage-Logo-v3-bn.svg.png, copy everything after https://upload.wikimedia.org/wikipedia/commons/thumb which is f/fd/Wikivoyage-Logo-v3-bn.svg/200px-Wikivoyage-Logo-v3-bn.svg.png & finally change 200px to 135px. --Aftabuzzaman (talk) 18:21, 27 December 2017 (UTC)Reply
OK --Aftabuzzaman (talk) 18:21, 27 December 2017 (UTC)Reply

Use CSS for not project-specific logos edit

The gadget in current version displays the right logo after a few seconds due to the usage of JavaScript, which is annoying. Fortunately the test project can be determined with plain CSS:

/* Wikibooks */
body.ns-0.rootpage-Wb #p-logo a,
body.ns-1.rootpage-Wb #p-logo a,
body.ns-10.rootpage-Wb #p-logo a,
body.ns-11.rootpage-Wb #p-logo a,
body.ns-14.rootpage-Wb #p-logo a,
body.ns-15.rootpage-Wb #p-logo a,
/* Wikinews */
body.ns-0.rootpage-Wn #p-logo a,
body.ns-1.rootpage-Wn #p-logo a,
body.ns-10.rootpage-Wn #p-logo a,
body.ns-11.rootpage-Wn #p-logo a,
body.ns-14.rootpage-Wn #p-logo a,
body.ns-15.rootpage-Wn #p-logo a,
/* Wikipedia */
body.ns-0.rootpage-Wp #p-logo a,
body.ns-1.rootpage-Wp #p-logo a,
body.ns-10.rootpage-Wp #p-logo a,
body.ns-11.rootpage-Wp #p-logo a,
body.ns-14.rootpage-Wp #p-logo a,
body.ns-15.rootpage-Wp #p-logo a,
/* Wikiquote */
body.ns-0.rootpage-Wq #p-logo a,
body.ns-1.rootpage-Wq #p-logo a,
body.ns-10.rootpage-Wq #p-logo a,
body.ns-11.rootpage-Wq #p-logo a,
body.ns-14.rootpage-Wq #p-logo a,
body.ns-15.rootpage-Wq #p-logo a,
/* Wiktionary */
body.ns-0.rootpage-Wt #p-logo a,
body.ns-1.rootpage-Wt #p-logo a,
body.ns-10.rootpage-Wt #p-logo a,
body.ns-11.rootpage-Wt #p-logo a,
body.ns-14.rootpage-Wt #p-logo a,
body.ns-15.rootpage-Wt #p-logo a,
/* Wikiversity */
body.ns-0.rootpage-Wv #p-logo a,
body.ns-1.rootpage-Wv #p-logo a,
body.ns-10.rootpage-Wv #p-logo a,
body.ns-11.rootpage-Wv #p-logo a,
body.ns-14.rootpage-Wv #p-logo a,
body.ns-15.rootpage-Wv #p-logo a,
/* Wikivoyage */
body.ns-0.rootpage-Wy #p-logo a,
body.ns-1.rootpage-Wy #p-logo a,
body.ns-10.rootpage-Wy #p-logo a,
body.ns-11.rootpage-Wy #p-logo a,
body.ns-14.rootpage-Wy #p-logo a,
body.ns-15.rootpage-Wy #p-logo a {
	background: url(//upload.wikimedia.org/wikipedia/commons/thumb/e/e3/Incubator-logo.svg/24px-Incubator-logo.svg.png) 0 10px no-repeat;
}

/* Wikibooks */
body.ns-0.rootpage-Wb #p-logo,
body.ns-1.rootpage-Wb #p-logo,
body.ns-10.rootpage-Wb #p-logo,
body.ns-11.rootpage-Wb #p-logo,
body.ns-14.rootpage-Wb #p-logo,
body.ns-15.rootpage-Wb #p-logo {
	background: url(//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikibooks-logo.svg/125px-Wikibooks-logo.svg.png) center no-repeat;
}

/* Wikinews */
body.ns-0.rootpage-Wn #p-logo,
body.ns-1.rootpage-Wn #p-logo,
body.ns-10.rootpage-Wn #p-logo,
body.ns-11.rootpage-Wn #p-logo,
body.ns-14.rootpage-Wn #p-logo,
body.ns-15.rootpage-Wn #p-logo {
	background: url(//upload.wikimedia.org/wikipedia/commons/thumb/2/24/Wikinews-logo.svg/135px-Wikinews-logo.svg.png) center no-repeat;
}

/* Wikipedia */
body.ns-0.rootpage-Wp #p-logo,
body.ns-1.rootpage-Wp #p-logo,
body.ns-10.rootpage-Wp #p-logo,
body.ns-11.rootpage-Wp #p-logo,
body.ns-14.rootpage-Wp #p-logo,
body.ns-15.rootpage-Wp #p-logo {
	background: url(//upload.wikimedia.org/wikipedia/commons/thumb/8/80/Wikipedia-logo-v2.svg/125px-Wikipedia-logo-v2.svg.png) center no-repeat;
}

/* Wikiquote */
body.ns-0.rootpage-Wq #p-logo,
body.ns-1.rootpage-Wq #p-logo,
body.ns-10.rootpage-Wq #p-logo,
body.ns-11.rootpage-Wq #p-logo,
body.ns-14.rootpage-Wq #p-logo,
body.ns-15.rootpage-Wq #p-logo {
	background: url(//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/110px-Wikiquote-logo.svg.png) center no-repeat;
}

/* Wiktionary */
body.ns-0.rootpage-Wt #p-logo,
body.ns-1.rootpage-Wt #p-logo,
body.ns-10.rootpage-Wt #p-logo,
body.ns-11.rootpage-Wt #p-logo,
body.ns-14.rootpage-Wt #p-logo,
body.ns-15.rootpage-Wt #p-logo {
	background: url(//upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Wiktionary-logo.svg/135px-Wiktionary-logo.svg.png) center no-repeat;
}

/* Wikiversity */
body.ns-0.rootpage-Wv #p-logo,
body.ns-1.rootpage-Wv #p-logo,
body.ns-10.rootpage-Wv #p-logo,
body.ns-11.rootpage-Wv #p-logo,
body.ns-14.rootpage-Wv #p-logo,
body.ns-15.rootpage-Wv #p-logo {
	background: url(//upload.wikimedia.org/wikipedia/commons/thumb/9/91/Wikiversity-logo.svg/135px-Wikiversity-logo.svg.png) center no-repeat;
}

/* Wikivoyage */
body.ns-0.rootpage-Wy #p-logo,
body.ns-1.rootpage-Wy #p-logo,
body.ns-10.rootpage-Wy #p-logo,
body.ns-11.rootpage-Wy #p-logo,
body.ns-14.rootpage-Wy #p-logo,
body.ns-15.rootpage-Wy #p-logo {
	background: url(//upload.wikimedia.org/wikipedia/commons/thumb/d/d1/Wikivoyage-Logo-v3-en.svg/135px-Wikivoyage-Logo-v3-en.svg.png) center no-repeat;
}

This should go to a peer gadget. It’s quite long, but it will load noticeably faster than the current JavaScript solution. The project-specific logos cannot be implemented with .rootpage-xx, so the JavaScript part needs to remain for them, but can get shorter:

/**
 * @brief Project specific logos
 * 
 * @details
 * Changes the site logo according to the project (if exists)
 * or family (if exists), otherwise keeps the default one.
 * 
 * @author [[meta:User:Danny B.]]
 */

/*global mediaWiki, jQuery */
/*jslint browser: true, plusplus: true, white: true */
/*jshint browser:true, laxbreak:false, plusplus:false, white:false, undef:true, unused:true */

( function ( mw, $ ) {
	'use strict';

	if ( $.inArray( mw.config.get( 'wgNamespaceNumber' ), [0, 1, 10, 11, 14, 15] ) === -1 ) {
		return;
	}

	var projectLogos = {
		// customizable list
		'Wp/cpx' : 'c/ca/Wikipedia-logo-v2-cpx(2).svg/135px-Wikipedia-logo-v2-cpx(2).svg.png',
		'Wp/jam' : 'd/d3/Wikipedia-logo-v2-jam.svg/135px-Wikipedia-logo-v2-jam.svg.png',
		'Wp/mnp' : '1/15/Wikipedia-logo-v2-mnp(4).svg/135px-Wikipedia-logo-v2-mnp(4).svg.png',
		'Wp/sdh' : 'b/be/Wikipedia-logo-v2-sdh.svg/135px-Wikipedia-logo-v2-sdh.svg.png',
		'Wy/ar' : '4/4c/Wikivoyage-Logo-v3-ar.svg/135px-Wikivoyage-Logo-v3-ar.svg.png',
		'Wy/bn' : 'f/fd/Wikivoyage-Logo-v3-bn.svg/135px-Wikivoyage-Logo-v3-bn.svg.png',
		'Wy/cs' : 'e/e3/Wikivoyage-Logo-v3-cs.svg/135px-Wikivoyage-Logo-v3-cs.svg.png',
		'Wy/eo' : '7/77/Wikivoyage-Logo-v3-eo.svg/135px-Wikivoyage-Logo-v3-eo.svg.png',
		'Wy/fa' : '0/0c/Wikivoyage-Logo-v3-fa.svg/135px-Wikivoyage-Logo-v3-fa.svg.png',
		'Wy/fi' : 'e/ed/Wikivoyage-Logo-fi.svg/135px-Wikivoyage-Logo-fi.svg.png',
		'Wy/ps' : '2/20/Wikivoyage-Logo-ps.svg/135px-Wikivoyage-Logo-ps.svg.png',
		'Wy/ko' : '3/36/Wikivoyage-Logo-v3-ko.svg/135px-Wikivoyage-Logo-v3-ko.svg.png',
		'Wy/sk' : 'e/e3/Wikivoyage-Logo-v3-cs.svg/135px-Wikivoyage-Logo-v3-cs.svg.png',
		'Wy/zh' : (function () {
			var variant = $( '[aria-labelledby=p-variants-label] .selected > a' ).attr( 'hreflang' ) || 'zh';
			if ( $.inArray( variant, ['zh-Hans', 'zh-CN', 'zh-MY', 'zh-SG'] ) >= 0 ) {
				return '8/8d/Wikivoyage-Logo-CHS-t2.svg/135px-Wikivoyage-Logo-CHS-t2.svg.png';
			} else {
				return '9/9d/Wikivoyage-Logo-CHT-t2-new.svg/135px-Wikivoyage-Logo-CHT-t2-new.svg.png';
			}
		}())
		// end of customizable list
	};

	var title = mw.config.get( 'wgTitle' ).split( '/' );
	var projectLogo = projectLogos[title[0] + '/' + title[1]];

	if ( projectLogo ) {
		$( function () {
			$( '#p-logo' ).css( 'background-image', 'url("//upload.wikimedia.org/wikipedia/commons/thumb/' + projectLogo + '")' );
		});
	}
}( mediaWiki, jQuery ) );

Can someone deploy this? Thanks in advance, —Tacsipacsi (talk) 16:22, 22 June 2020 (UTC)Reply

So, the content of the page needs to be replaced with the second piece of code that you gave. What needs to be done with the first one? --MF-W {a, b} 23:44, 22 June 2020 (UTC)Reply
@MF-Warburg: Put on an appropriately named new page, e.g. MediaWiki:Gadget-ProjectSpecificLogos.css. MediaWiki:Gadgets-definition also needs to be modified:
@@ -3,1 +3,2 @@
- * ProjectSpecificLogos [ ResourceLoader | default ] | ProjectSpecificLogos.js
+ * ProjectSpecificLogos [ ResourceLoader | default | peers=ProjectSpecificLogosStyles ] | ProjectSpecificLogos.js
+ * ProjectSpecificLogosStyles [ hidden ] | ProjectSpecificLogos.css
Tacsipacsi (talk) 23:43, 23 June 2020 (UTC)Reply
User:Tacsipacsi: done, I hope everything works. Thanks for suggesting this! --MF-W {a, b} 11:56, 25 June 2020 (UTC)Reply
Return to "Gadget-ProjectSpecificLogos.js" page.