This simplifies the codebase by avoiding some unnecesary custom hooks,
and also improves Parsoid compatibility.
We look for old extensiondata coming from cached pages for
compatibility, but that code can be removed once the ParserCache expires
(T371421) for further simplification.
Bug: T263772
Change-Id: I843a920a0476290a8b0efd5eba4d8d44777d27d0
Current breakpoint tokens have been put in place in core and major
skins and have been merged and used in Codex and other places for a
while now.
Bug: T349793
Depends-On: I3afba8c51f60de9271054499bfa3ffbcc1a9d779
Change-Id: Ied58a3746fb164c1a4fe5819e56da6aca60fe7b1
We would like to know how many users are using this related articles
endpoint. To accomplish define a new wprov parameter (on wikitech)
and use it here. wprov is specifically defined to avoid caching
issues, this should be safe to attach to any page view to track
that page views provenance.
Bug: T358351
Change-Id: I58b450eb632a721a39b627cc34f30eb26e67be59
IntersectionObserver is provided by polyfill in core, and
CSS.escape was a proxy for ES6 support, which is also now
assumed by core.
Change-Id: I739287182b7debbd2c538b79175b3cdc2a1da5ea
Changes:
- Removes redundant styles now inside Codex
- With the new component, it's not possible to display 3 cards in a
single line at a tablet resolution, so the media query responsible
is bumped to apply only at the desktop threshold
- Decisions are documented in ADR
Bug: T286835
Change-Id: I493e8e601ccc31b3cf1f16c0b5a8975f12ef336c
Replacing legacy tablet breakpoint width variable with new Codex
design system `@min-width-breakpoint-mobile` token. The values have
slightly changed. Tablet breakpoint is decreased by 80px, pushing lesser
devices into a mobile phone only experience but should in these three
contexts make barely a difference to vast majority of our users.
Bug: T331403
Change-Id: Ifc46dc0a9c531fefd1cd641eb6b86c6bc225cb7b
Replacing 'mediawiki.ui/variables.less' `@import`
with new skin-aware 'mediawiki.skin.variables.less' standard.
Also
- replacing several static values with skin variables featuring new
Codex design tokens for following properties:
- background-color
- color
- border-width, border-style, border-color and border shorthand
Bump required MediaWiki core version to >= v1.41.0.
Bug: T319381
Bug: T332541
Depends-On: I04f9e48a1cf9dee915cf51e1e12b17ff0a595a06
Change-Id: I32c2996dedc9b3a54e1f916623dbe1c4da910083
Replacing deprecated mediawiki.ui `@borderRadius` variable with successor
@border-radius-base.
Former got deprecated in MW 1.35 about 2 years ago. Latter is in alignment
with mediawiki.skin.variables.less standardization. It's also in
accordance to Codex design tokens.
Bug: T322478
Change-Id: I6f9fe0a7d98713a66e1b7e78f105817f428c636f
For now it is limited to a single file RelatedPagesGateway.js
For now @types/jquery is requirement due to use of
wikimedia/mw-node-qunit and usage of MediaWiki core methods
and OOUI that use jQuery.
Change-Id: I370826bb3f521dcb5a68491990571ee1c87117ae
We currently require support for IntersectionObserver.
which is supported on Edge >= 15 (15 has partial support),
Firefox >55, Chrome >58, Safari 12.1, Opera >=38,
iOS Safari >=12.2, Android 100
Full ES6 is supported in Edge >=15, Firefox >=54, Chrome >=51,
Safari >=10, Opera >=38, iOS Safari >=10, so such a change
would only drop support for Edge 15 and Firefox 54.
CSS.escape is guaranteed in all these browsers according to
caniuse, with the only discrepancy being the Edge browser (versions
16-18) so it is also suggested we remove support for those browsers.
Firefox 54 accounts for 0.0026% of page views
Edge 15-18 accounts for 0.069% of page views
Bug: T306355
Change-Id: Id2987e3456607b610c38da9ee157a026d1d00ada
useful for testing real world data
Suggested test config:
```
$wgRelatedArticlesUseCirrusSearchApiUrl = "https://en.wikipedia.org/w/api.php";
$wgRelatedArticlesUseCirrusSearch = true;
$wgRelatedArticlesDescriptionSource = 'wikidata';
```
This will allow us to enable on patchdemo with production content.
Change-Id: I73c0d73d3369f27ed2fd74b37ae71bfc12b6ee57
The RelatedPagesGateway is an OO class.
There is no reason for it to be, we don't use any
of it's features e.g. the event emitter
Change-Id: I8f807d35b0ce36ea5764508a66f88d74577e3653
1) Merge ext.relatedArticles.readMore and ext.relatedArticles.cards modules
These are always loaded together. No need to have them in separate modules.
In process switch to packagefiles
2) Merge ext.relatedArticles.readMore.bootstrap and ext.relatedArticles.readMore.gateway
Always loaded together.
Bug: T306228
Change-Id: I9442b0336e22ca795cc06f76068215266fe81271
Previously RelatedArticles required the Cards extension
This code refers to that old state and is cleaned up.
ext.relatedArticles.cards is added a dependency of
ext.relatedArticles.readMore since it now belongs to the same
extension
Change-Id: I4a89ed4256a4ae9fd22b0191748bd47ac3ffc593
For IntersectionObserver to work the element we listen on needs to
have a non-zero height.
Bug: T223844
Change-Id: I308f646670b112e42b0aaa11c438dbc5cdc5edd8
Use normal `background-image` properties with SVGs now
that IE 8 and Android 2.1 are removed from Grade C.
Also removing PNG fallback image.
Bug: T248062
Change-Id: Ia2a102dfe8865aa0bca93453d01f11ab3ab57149
Currently, the extension queries the prop=description api to fetch the
description, but this api is only available if Wikibaseclient is installed.
Let's support other sources to fetch the page description from, too, or
disable it (by default) to sabe 85 bytes from each response by avoiding the
warning returned from the api when prop=description is not recognized.
A new configuration setting has been added: RelatedArticlesDescriptionSource.
It defaults to false (no description is fetched), but can be set to one of
those string values:
- wikidata: What's being used right now on WMF wikis
- textextracts: Extension:TextExtracts provides the prop=extracts api.
- pagedescription: Extension:Description2 provides a description page property, that can be queried by prop=pageprops&ppprop=description
Bug: T230947
Change-Id: I34410334ba9d6db1f686c7efb5722e2a51957145
This allows skins to determine where the cards appear in a consistent
fashion with other extensions, and require minimal special handling from
the extension itself.
Also change default settings as to when RelatedArticle cards will appear
- keep the whitelist to allow projects to configure their usage such as
in the case of only wanting it on mobile, etc, but now that it should
just work in any given skin, default it to on for all so that it's easier
for the average third party to install for whatever use.
Note that this default setting change will not affect WMF wikis, as
wmgRelatedArticlesFooterWhitelistedSkins is explicitly set in the
wmf-config regardless.
Bug: T181242
Depends-On: I5b0ad889e633fde88c392577ce5373c81fc5486a
Change-Id: Iebd759c0d1a536768d18953f372664df762d9e04
Equivalent to latest 'article' icon in Design Style Guide and OOUI.
Also updating `.list-thumb-none` class to align icon and simplify
maintenance.
Bug: T222717
Change-Id: I49a89afa3d370abc4cf282a0bf8d44ee2751aa78
* The extension already uses 'null' as placeholder in RelatedArticles
instead of empty array. Update the doc comment in RelatedPagesGateway
to reflect this (its code was already using the default operator
to fallback to empty array, given empty arrays are not falsey in JS,
but null is).
* Omit the key from the mw.config output in <head> on page views,
when the value is null, given this is redundant information and consumes
additional space.
Bug: T219342
Change-Id: I367f9d9423d66611d73d56f8a769d86d14d3de8b
Bundle these with the module that needs it instead, this means
1. It is naturally only downloaded on pages where it is needed.
2. It doesn't block download/parse/render of the article HTML.
3. It doesn't delay time to mw.loader.load() for interactive
functionality.
Bug: T219342
Change-Id: I5c6809392b0621bd0d58049597f6c0306e572607
pass a collection of jQuery objects to `.append` instead of
and array.
Use `.css` instead of `.attr` to set thumbnail background image.
Change a unit to reflect the escaping pattern of the `.css` method
Bug: T219846
Change-Id: I6359be2db6c7c7a8e4b52296e0801d4ded921b46
Removing obsolete vendor property specifically for old subversion
of Opera < 12.1, desktop and mobile.
Change-Id: Id9a8a9fffb594f3973486f7be243329abdc9a5fa
Removes the muhogan module along with the templates and replacing
them with jQuery DOM construction.
Bug: T219846
Change-Id: I246f9c46ea2cc5721ddd57efcf58fae9fd947c58
With RelatedArticlesEnabledBucketSize now removed, installation of this
extension will turn it on for 100% users without any mechanism to turn
it off.
Additional changes:
* Bump version
* Add Readers team to contributors
Bug: T202306
Change-Id: I7dc270a06dd3afd4e894c8298165d6d6d4fda8d6