This is just a minor optimization. The keys should now all follow
the schema for Reference Previews in this extension.
I'm not touching the `popups-prefs-conflicting-gadgets-info` key.
That one was not copied over to this codebase and IMO we could
really remove it for the reasons in that comment.
Bug: T355194
Change-Id: I1948cf0aaca4d0ab3676bac806c7287568db8712
It's not making much sense to have the things merged in seprate
files IMO. I'll try to merge what's needed for the init to see
what could be delayed and lazy loaded.
Bug: T361670
Change-Id: Ia0bc9b68bbd9cfeed385520a868fe8726f7aa872
Just some random variables I renamed. Mostly writing out what's
shortened. In some minor cases moving declarations a bit so they
are closer to the usage.
More stuff to follow.
Bug: T382232
Change-Id: I2b372f65e548074366652caf477b897fea2eeb0a
This reverts commit 91316d49c2.
Reason for revert: Caused T380977 when Remex was given math
content to normalize.
Change-Id: I6d7585a990322b5c8e2a6886b9cd05a556c501ad
In I3b82aea975ed84c7410e57e19e83c508554e1b05, it was determined that
this edge case is not going to be supported.
Change-Id: Ia2ea80fc55af9f1e7e9a475afd730315ae6715cd
If the ref generated HTML contains attributes such as data-parsoid or
about, the string comparison fails, and two references that have the
same content end up being seen as different.
This patch filters out data-parsoid and about attributes from the
generated HTML.
Bug: T380152
Change-Id: I4c201c469d21ff9cb54f746386ce53b8d636361d
It can happen that an error is reported multiple times for a given
reference. In this case, we only display one.
We still display different errors if a reference contains multiple
different errors. This behaviour is differs from the legacy parser's
(so, in this case, we add the category
cite-tracking-category-cite-diffing-error), but not from the legacy
parser's desired behaviour, as hinted by the various comments and TODO
in this area.
Bug: T380153
Change-Id: I9b3d5cbd086fc72c66a2afbae8f92297681989ce
The type hints added in I3e0df790ff9db2fa630f82408a7254a359fe61ca
were sufficient to allow phan to detect that we were possibly passing
a null value in one instance. The other instance was a false positive.
Follows-Up: I3e0df790ff9db2fa630f82408a7254a359fe61ca
Change-Id: I3bacc2aff3d36719133554a8f70d50a3790b84e4
There is only one child, so first/last element child are the same, but
it's a little less confusing to use 'first' here.
Follows-Up: Ifeb3b216e898bec1c3eb5917262820c5809fda45
Depends-On: I753bbbfaf99fb486384b0fa97de71159abb504b3
Change-Id: I65873c117cbd3e1d6efd82797c7b49bf707f5c3a
This doesn't change behavior yet, it's pure wiring to make the
attribute available to Parsoid logic.
Bug: T378567
Change-Id: I6182b601f6fee66a9c32d5006d0a36150eb47e7f
After this patch, Parsoid-rendered pages will include the same
footnote markers as the legacy parser for custom group markers.
The divergent CSS implementation is left intact, for a soft migration.
Bug: T377454
Change-Id: I576dfff4155fb8c2f91ef0d28a65b319aa5bbb07
Behavior change: previously, an error would be rendered once the
custom markers run out. After this patch there is a graceful fallback
to default group rendering (eg. "lower-greek 1000").
This is a slight improvement, but is user-facing so should be
discussed before merging.
In future work we'll render custom marks programmatically so this edge
case would be unreachable, and since the error message only exists to
nudge editors to extend the custom group symbol sequence, this would
also become wasted effort.
This patch splits out a lower-level method which produces the bare
mark label, with no link or wikitext formatting. The patch narrows
and simplifies the interface so that the method can be made available
to Parsoid, and will be converted to a service in a separate patch.
Bug: T377454
Change-Id: I719b60b46cdef0be7463d76e9125d75ab4f333ae
Check the array part first and afterwards the property for null,
which does not need the isset() error suppression.
Found by a new phan plugin (2efea9f989)
This bypass a false positive from phan (T378284)
Change-Id: I08651c4b2cd03ecfb38d28ca1cbff599d922208a
isset() should only be used to suppress errors, not for null check.
When the variable is always defined, there is no need to use isset.
Found by a new phan plugin (2efea9f989)
https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP#isset
Change-Id: I2eee98fdcb21192108183c431b10e0072b951f72
Implicitly marking parameter $... as nullable is deprecated in PHP
8.4. The explicit nullable type must be used instead.
Bug: T376276
Change-Id: I73a4ce1ecd9b4fe040e5bfd22889e783071fab0d
This avoids the use of Parsoid's SiteConfig::getMWConfigValue() method,
which is unnecessary when the extension has direct access to MediaWiki
services itself.
This also fixes the omission of CiteResponsiveReferencesThreshold from
the extension.json.
Change-Id: I01b43136b0827f185523f1318253372b09750de4
This seems to play well with Popups with and without
Ie8fa1672b9fd . However, it's not clear to me why this still works
and even gives priority to the Popups implementation when present,
regardless of the order the extensions are loaded in. Happily, this
is the desired behavior.
Bug: T363162
Change-Id: Ic479c0a381ee16d1abcecfdd5ee48f0afccc1d3f
This has no user-facing consequences. The constant can be renamed any
time again, if needed. It's not used anywhere else:
https://codesearch.wmcloud.org/search/?q=BOOK_REF_ATTRIBUTE
Bug: T373307
Change-Id: Ia4d588e926bb6e75f96048f2d3782c0f23ece514
The Parsoid error messages are missing a couple of parameters, according
to the json i18n files; this patch fixes that issue.
Change-Id: I4232c0b71ecc6d6f1220db3988e67d9cd4eb3d58
This moves existing code around a little bit without changing
anything, as proven by the tests.
This is motivated by Iaca0e14.
Change-Id: I30366d32b07f87f238b045f0d7817686b5cc26bd
It's always a string anyway. Also improve the test coverage. The
localization was pretty much untested before.
Change-Id: Ie6f34c67ae7dd9559346eb45a2604e14c5633991