|This extension is maintained by the Reading Web team.|
Release status: stable
|Description||Displays popups when users hover over article links and footnote markers|
|License||GNU General Public License 2.0 or later|
|Translate the Popups extension if it is available at translatewiki.net|
|Issues||Open tasks · Report a bug|
The Popups extension displays page and reference previews when hovering over a link to an article or respectively to a reference. The former consists of summaries of an article's content, the latter shows the full content of the reference.
The extension is an initiative of the Design team, inspired by the popular Navigation popups gadget. Currently this feature is available on all Wikipedias by default for logged-out users. A description of how the extension functions and more information on its use on Wikimedia projects is available at Page Previews.
The Reference Previews feature was added eventually and aims to fulfill a wish from the German-speaking community's Technical Wishlist. A more detailed description and more information on its use is available at Reference Previews.
This extension has a hard dependency on Extension:TextExtracts and Extension:PageImages. There are also optional dependencies on Beta Features (if you want to enable the Reference Previews as beta feature), and Extension:EventLogging and Extension:WikimediaEvents (for instrumentation).
- Install the dependencies.
- Download and place the file(s) in a directory called
- Add the following code at the bottom of your LocalSettings.php:
wfLoadExtension( 'Popups' );
- Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
To users running MediaWiki 1.25 or earlier:
The instructions above describe the new way of installing this extension using
If you need to install this extension on these earlier versions (MediaWiki 1.25 and earlier), instead of
wfLoadExtension( 'Popups' );, you need to use:
Example of final LocalSettings configuration for a non-testing site (regular wiki)Edit
wfLoadExtensions( [ 'TextExtracts', 'PageImages', 'Popups' ] ); $wgPopupsHideOptInOnPreferencesPage = true; $wgPopupsReferencePreviewsBetaFeature = false;
Page previews APIEdit
Every project is different, and what displays in your previews is highly dependent on the content inside your wiki.
Extension:Popups has been optimised to work with Wikipedia-like content (e.g. wikitext). If your wiki is using a different kind of content handler (for example as is the case for Wikibase) it will need to provide its own API.
The API can be written in any language, but the response of the API must match the spec defined here:
Defining new APIs is out of scope for the Popups extension.
Once defined, you can configure page previews to point to your API using
$wgPopupsRestGatewayEndpoint configuration option.
||Whether the extension should log virtual pageviews.|
||Whether the option to enable/disable Page Previews should be hidden on Preferences page. False by default.|
||Default Page Previews visibility for old accounts. Has to be a string as a compatibility with beta feature settings. For more information see T191888 This value is internally converted to the Bool type. Therefore, a value greater than or equal to 2 has the same meaning as 1.|
||Default Page Previews visibility for newly created accounts (from Q2 2018). For more information see T191888|
||The local Navigation popups gadget name used as its identifier in MediaWiki:Gadgets-definition. This gadget is incompatible with page previews. The extension will disable itself for users with the gadget enabled.|
||The local Reference Tooltips gadget name used as its identifier in MediaWiki:Gadgets-definition. This gadget is incompatible with reference previews. Reference previews will disable itself for users with the gadget enabled.|
||Which gateway to use for fetching Popups data. Available options: [mwApiPlain|restbasePlain|restbaseHTML]. Full and always up to date list is available in |
||Specify a REST endpoint where summaries should be sourced from. Endpoint must meet the spec at Specs/Summary/1.2.0.|
||Temporary feature flag to disable reference previews during developement.|
||Whether Reference Previews should be available as a Beta feature. If false, Reference Previews are enabled for all users by default.|
||Whether we should log events. Note if this is enabled without using that variable events will be logged for all users without any sampling! Be careful!|
||Sampling rate for logging performance data to statsv.|
[ "Special:CreateAccount", "Special:GlobalRenameRequest", "Special:Userlogin", "Special:MergeAccount", "Special:ChangeCredentials", "Special:OAuthListConsumers", "Special:GlobalUserRights", "Special:Notifications", "Special:UserRights", "Special:Upload", "Special:VipsTest", "Special:ApiFeatureUsage", "Special:ExpandTemplates", "Special:GadgetUsage", "Special:GraphSandbox", "Special:TemplateSandbox", "Special:MostLinkedFiles", "Special:Book" ]
|List of pages that should not show Popups. Includes subpages. These pages are subject to the HTML cache policy of the wiki. A purge on these pages maybe needed to see the effect of this configuration variable. Every excluded page should be defined by a canonical name, eg: |
Page previews contentEdit
The page preview popups show an image (if one is available) and a small text excerpt.
The image comes from the Extension:PageImages which returns the single most appropriate thumbnail associated with an article. It ignores maintenance templates, stubs, flag icons etc.
The page previews can be configured with any compatible API that is compatible with the Page content service summary endpoint using
$wgPopupsRestGatewayEndpoint. For third parties we encourage using the Page Content Service to enjoy using Popups with your local wiki.
Reference previews contentEdit
The content in the reference preview popups is taken directly from the reference section on the page itself. No external services are involved here. If the content exceeds the popup size scrollbars are shown so everything can be looked at.
The reference types displayed are set by using specific CSS-classes on the
<cite>-tag that can be used to encapsulate the content of a reference e.g.
Currently the following types are supported:
Apart from that there is always a generic fallback if neither the cite tag was found nor an appropriate class was used.
Please note, that it's not recommended to use the CSS-classes directly in wikitext, but rather by creating templates.
This extensions currently has only one renderer, that is for ordinary pages.
New renderers for different kind of pages, or things like references can be easily added.
One needs to create a new object with the following methods:
- Users of the Translate extension should note that Page Previews requests previews in the content language of the page. If the preview contains a complete translatable block, then it will be translated. If, however, the preview contains an incomplete translateable block – because a sentence is cut off, say – then it isn't translated and will be displayed in the content language of the page. If you are observing this behavior, then you should consider marking up individual sentences in your lead section.
- T167852 is for a technical audience but has more information on the underlying problem.
- Longer math formulas cutting off in preview - long math or chemical formulas (formulas wider than the preview width) display as truncated in previews. We were not able to add a gradient in order to indicate that the formula is continued on the article itself.
Why can't I copy and paste text from a preview?Edit
At time of writing, the cons of doing so outweigh the pros. Essentially it boils down to decreasing the touch area to read the article in full. Once Page Previews is deployed on English and German Wikipedia, feel free to reopen this task and reignite the discussion, but right now we have no plans.
How can I change the image that I see on preview?Edit
How can I remove content from a page preview?Edit
Any element marked with the
noexcerpt class will be stripped from the summary.
Where do summaries come from?Edit
These are provided by the Summary REST API.
Why are parenthetical stripped?Edit
There's a good discussion going on in T91344 in Phabricator. If you have any views on this or see any problems relating to this, please let us know there.
Why don't I see Popups outside of content namespaces?Edit
Popups appear on links to pages in content namespaces only. This is a limitation of Popups; TextExtracts are available from other namespaces. You may work around this by appending more namespaces into $wgContentNamespaces.
- Page Previews help page and central feedback page on MediaWiki.org
- Reference Previews help page and central feedback page on MediaWiki.org
- Reference Previews main project page on Meta
- Related research: Wikimedia Performance Team/Authoring Popups: Best Practices
|This extension is being used on one or more Wikimedia projects. This probably means that the extension is stable and works well enough to be used by such high-traffic websites. Look for this extension's name in Wikimedia's CommonSettings.php and InitialiseSettings.php configuration files to see where it's installed. A full list of the extensions installed on a particular wiki can be seen on the wiki's Special:Version page.|