Initial support for webfonts in MobileFrontend

Written in pair-programming with Ryan Kaldari.

This adds a version of webfonts initialization that is stripped
of any smart features. It only loads the basic jquery.webfonts
library and the fonts repository in a way that is usable
with the MobileFronted extension.

It is completely disabled by default.

It can be enabled by setting
$wgULSMobileWebfontsEnabled = true;
and even then it will only be enabled for users
who opted in for the mobile beta mode.

Change-Id: I488e411232a1192bbf46ae5675c701366bda9a3e
This commit is contained in:
Amir E. Aharoni
2013-09-27 16:42:37 -07:00
parent 78152b95c0
commit fd885d9881
4 changed files with 84 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
/**
* MobileFrontend compatible ULS-Webfonts integration
*
* Copyright (C) 2013 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,
* Niklas Laxström, Pau Giner, Ryan Kaldari, Santhosh Thottingal, Siebrand Mazeland
* and other contributors. See CREDITS for a list.
*
* UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't
* have to do anything special to choose one license or the other and you don't
* have to notify anyone which license you are using. You are free to use
* UniversalLanguageSelector in commercial projects as long as the copyright
* header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.
*
* @file
* @ingroup Extensions
* @licence GNU General Public Licence 2.0 or later
* @licence MIT License
*/
( function ( $, mw ) {
'use strict';
var mediawikiFontRepository;
mw.webfonts = mw.webfonts || {};
mediawikiFontRepository = $.webfonts.repository;
mediawikiFontRepository.base = mw.config.get( 'wgExtensionAssetsPath' ) +
'/UniversalLanguageSelector/data/fontrepo/fonts/';
$( document ).ready( function () {
// MediaWiki specific overrides for jquery.webfonts
$.extend( $.fn.webfonts.defaults, {
repository: mediawikiFontRepository,
fontStack: $( 'body' ).css( 'font-family' ).split( /, /g ),
fontSelector: function ( repository, language ) {
var font = repository.defaultFont( language );
if ( font === 'system' ) {
// Avoid setting 'system' as a font in css
font = null;
}
return font;
}
} );
$( 'body' ).webfonts();
} );
}( jQuery, mediaWiki ) );