MobileFrontend
Mobile optimised frontend for MediaWiki
|
The MobileFrontend extension adds a mobile view to your mediawiki instance.
See https://www.mediawiki.org/wiki/Extension:MobileFrontend#Installation
Please follow the coding conventions of MobileFrontend: https://www.mediawiki.org/wiki/MobileFrontend/Coding_conventions
Git hooks are provided by default to assist with adhering to JavaScript code standards, optimizing PNG files, etc. Running these hooks requires node.js, NPM, and grunt.
Install like so:
npm install
If you are not running Vagrant, be sure to set your MEDIAWIKI_URL
env variable to your local index path, e.g. MEDIAWIKI_URL=http://localhost/index.php/
Commits are important as they give the reviewer more information to successfully review your code and find errors or potential problems you might not have thought of.
Commits are also useful when troubleshooting issues and refactoring. If it's not clear why a line of code is in the repository important bug fixes could be lost.
Commits should be as minor as possible. Please avoid removing unrelated console.log statements, fixing unrelated whitespace etc. do that in a separate commit which mentions the word cleanup.
First line commit should summarise the commit with bug it fixes if applicable. e.g. Fix problem with toggling see bug x.
Second line should be blank. Third line should go into detail where necessary providing links to blog posts/other bugs to provide more background. Mention the platforms/browsers the change is for where necessary, e.g.:
http://<url></url>
which explains problem in detailhttp://<url></url>
To run the full test suite run:
npm run precommit
To run only PHP tests:
php ../../tests/phpunit/phpunit.php "tests/phpunit/"
To run only MobileFrontend JS tests:
npm run test:unit
A new version of MobileFrontend is released every two weeks following the Wikimedia release train if there are new changes.
MobileFrontend follows the version naming from MediaWiki.
The following configuration options will apply to all skins operating in useformat=mobile mode.
Whether or not to enable the use of the X-Analytics HTTP response header. This header is used for analytics purposes.
See: https://www.mediawiki.org/wiki/Analytics/Kraken/Data_Formats/X-Analytics
Boolean
false
Use the user's preferred editor (i.e. visual editor or source editor) on first load. Uses the visualeditor-editor
user option.
Boolean
false
Enable mobile preferences in Special:Preferences (currently only accessible in desktop). Currently this allows users to disable many of mobile's special page optimisations.
Boolean
false
Enables the desktop version of the history page if set to true
. If set to false
, the mobile version will be enabled but can still be overridden by the user's mobile preferences option.
Array
Enables the desktop version of the watchlist page if set to true
. If set to false
, the mobile version will be enabled but can still be overridden by the user's mobile preferences option.
Array
Controls whether a message should be logged to the console to attempt to recruit volunteers.
Boolean
false
Whether or not the banner experiment is enabled.
See: https://www.mediawiki.org/wiki/Reading/Features/Article_lead_image
Boolean
true
When set will override the default search script path e.g. https://en.wikipedia.org/w
will route queries (e.g. API) to English Wikipedia.
Note, this will make the wiki read only. Non-anonymous HTTP requests will throw CORS error. This may also cause compatibility problems with other extensions. This should not be used in production, it is strictly for development purposes.
string
This provides options for the MobileFormatter.
Object
If set to true, styles inside MediaWiki:Mobile.css will become render blocking.
This is intended for situations where the TemplateStyles extension cannot be used. When enabled, this may increase the time it takes for the mobile site to render, depending on how large MediaWiki:Mobile.css is for your wiki.
Boolean
false
If set to true, block notices will be tracked on display, along with some limited user interactions. Counts will be stored for later analysis. No personal data will be collected.
Boolean
false
Requests containing header with this name will be considered as coming from mobile devices.
String
Make the classes, tags and ids stripped from page content configurable. Each item will be stripped from the page.
Array
Do load images in pages lazily. Currently it doesn't affect HTML-only clients (only JS capable ones) and it lazy loads images when they come close to the viewport.
Array
The range in meters that should be searched to find nearby pages on Special:Nearby (defaults to 10km).
Integer
10000
Whether geodata related functionality should be enabled.
Boolean
false
Define a set of params that should be passed in every gateway query.
Array
Define a set of page props that should be associated with requests for pages via the API.
Array
Sets RSS feed <link>
being outputted or not while on mobile version.
Boolean
false
Define the generator that should be used for mobile search.
Array
Pages with smaller parsed HTML size are not cached. Set to 0 to cache everything or to some large value to disable caching completely.
Integer
64 * 1024
Set this to true to automatically show mobile view depending on people's user-agent.
WARNING: Make sure that your caching infrastructure is configured appropriately, to avoid people receiving cached versions of pages intended for someone else's devices.
Boolean
true
Set this to true
, if you want to send User-Agent
in the Vary
header. This could improve your SEO ranking.
WARNING: You should set this to true only, if you know what you're doing!
CAUTION: Setting this to true in combination with a (frontend)caching layer (such as Varnish) can have a huge impact on how your caching works, as it now caches every single page multiple times for any possible/different User Agent string!
Boolean
false
Controls whether tablets should be shown the mobile site. Works only if $wgMFAutodetectMobileView
is true
.
Boolean
true
Template for mobile URLs.
This will be used to transcode regular URLs into mobile URLs for the mobile view.
It's possible to specify the mobileness of the URL in the host portion of the URL.
You can either statically or dynamically create the host-portion of your mobile URL. To statically create it, just set $wgMobileUrlTemplate
to the static hostname. For example:
Alternatively, the host definition can include placeholders for different parts of the host section of a URL. The placeholders are denoted by h
and followed with a digit that maps to the position of a host-part of the original, non-mobile URL. Take the host en.wikipedia.org
for example. h0
maps to en
, h1
maps to wikipedia
, and h2
maps to org
. So, if you wanted a mobile URL scheme that turned en.wikipedia.org
into en.m.wikipedia.org
, your URL template would look like:
%h0.m.%h1.%h2
String
The number of seconds the useformat
cookie should be valid.
The useformat cookie gets set when a user manually elects to view either the mobile or desktop view of the site.
If this value is not set, it will default to $wgCookieExpiration
Integer|null
null
Set to false to allow search engines to index your mobile pages. So far, Google seems to mix mobile and non-mobile pages in its search results, creating confusion.
Boolean
true
Set the domain of the stopMobileRedirect
cookie.
If this value is not set, it will default to the top domain of the host name (e.g. en.wikipedia.org = .wikipedia.org
)
If you want to set this to a top domain (to cover all subdomains), be sure to include the preceding .
(e.g. yes: .wikipedia.org
, no: wikipedia.org
)
String|null
null
Whether beta mode is enabled.
Boolean
true
Whether Advanced mode is available for users.
Boolean
false
Whether the AMC Outreach feature is available for users.
Boolean
false
When Amc Outreach is enabled, this option sets the minimum number of edits a user must make before they are eligible to see the AMC Outreach feature.
Number
Link to feedback page for beta features. If false no feedback link will be shown.
String|false
false
The default skin for MobileFrontend.
String
In which namespaces sections shouldn't be collapsed.
Array
Controls whether to collapse sections by default.
Leave at default true
for "encyclopedia style", where the section 0 lead text will always be visible and subsequent sections may be collapsed by default.
In tablet sections will always be expanded by default regardless of this setting.
Set to false
for "dictionary style", sections are not collapsed.
Boolean
true
If set to true, the use Wikibase is enabled and associated features is enabled. See $wgMFDisplayWikibaseDescriptions
Boolean
false
If set to true, wikidata descriptions as defined in $wgMFDisplayWikibaseDescriptions will show up in the UI in the environment they have been told to target.
Array
Set which features will use Wikibase descriptions, e.g.
Array
Set taglines for special pages
Array
Whether to strip srcset
attributes from all images on mobile renderings. This is a sort of brute-force bandwidth optimization at the cost of making images fuzzier on most devices.
Boolean
true
Whitelist of source file mime types to retain srcset attributes on when using $wgMFStripResponsiveImages. Defaults to allow rasterized SVGs since they usually are diagrams that compress well and benefit from the higher resolution.
Array
A list of namespace codes that have lead paragraphs. Lead paragraphs will be shown before infoboxes if $wgMFShowFirstParagraphBeforeInfobox
is enabled.
Array
The default value of the 'secure' cookie parameter that controls MobileFrontend's mobile redirect behavior. This variable defaults to true to encourage the use of TLS on any servers hosting MediaWiki and to avoid the disclosure of minor user privacy issues regarding a user's mobile browsing preferences.
Boolean
true