MediaWiki:Gadget-ArticleShare.js

来自维基导游

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
/* global jQuery:false, mediaWiki:false */
/* eslint one-var: 0, vars-on-top: 0, comma-dangle: 0 */ // extends: wikimedia

( function( $, mw ) {
	$( document ).ready( function() {
		if ( mw.config.get( 'wgAction' ) === 'view' &&
				mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
			// i18n
			var share;
			switch ( mw.config.get( 'wgUserLanguage' ) ) {
				case 'en':
					share = {
						main: 'Share',
						mail: 'E-Mail',
						sina: 'Sina Blog',
						renren: 'RenRen Website',
						douban: 'Douban',
					};
					break;
				case 'zh-cn':
				case 'zh-hans':
				case 'zh-my':
				case 'zh-sg':
					share = {
						main: '分享',
						mail: '电子邮件',
						sina: '新浪微博',
						renren: '人人网',
						douban: '豆瓣',
					};
					break;
				default:
					share = {
						main: '分享',
						mail: '電子郵件',
						sina: '新浪微博',
						renren: '人人網',
						douban: '豆瓣',
					};
			}

			// Setup portlet
			var $share = $( '#p-tb' ).clone()
				.attr( 'id', 'p-share' );
			$share.find( 'li' ).remove();

			$share.find( 'h3' ).text( share.main );
			if ( $share.attr( 'aria-labelledby' ) ) {
				var label = $share.attr( 'aria-labelledby' )
					.replace( 'tb', 'share' );
				$share.attr( 'aria-labelledby', label );
				$share.find( 'h3' ).attr( 'id', label );
			}

			$( '#p-join' ).after( $share );

			// Add the links
			var pgname = mw.config.get( 'wgPageName' ),
				pgurl = new mw.Uri( mw.config.get( 'wgServer' ) + mw.util.getUrl( pgname ) ).toString();

			mw.util.addPortletLink( 'p-share',
				'mailto:?' + $.param( {
					subject: pgname,
					body: pgname + '\n' + pgurl
				} ),
				share.mail
			);
			mw.util.addPortletLink( 'p-share',
				'http://v.t.sina.com.cn/share/share.php?' + $.param( {
					pic: pgname,
					url: pgurl
				} ),
				share.sina
			);
			mw.util.addPortletLink( 'p-share',
				'http://share.renren.com/share/buttonshare?' + $.param( {
					title: pgname,
					link: pgurl
				} ),
				share.renren
			);
			mw.util.addPortletLink( 'p-share',
				'//www.douban.com/recommend/?' + $.param( {
					title: pgname,
					url: pgurl
				} ),
				share.douban
			);
			mw.util.addPortletLink( 'p-share',
				'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?' + $.param( {
					title: pgname,
					url: pgurl
				} ),
				'Qzone'
			);
			mw.util.addPortletLink( 'p-share',
				'//facebook.com/sharer.php?' + $.param( {
					u: pgurl,
					t: pgname
				} ),
				'Facebook'
			);
			mw.util.addPortletLink( 'p-share',
				'//twitter.com/share?' + $.param( {
					url: pgurl,
					text: pgname,
					related: ''
				} ),
				'Twitter'
			);
			mw.util.addPortletLink( 'p-share',
				'//reddit.com/submit?' + $.param( {
					url: pgurl,
					title: pgname + ' - Wikivoyage',
				} ),
				'Reddit'
			);
		}
	} );
}( jQuery, mediaWiki ) );