Commit graph

4761 commits

Author SHA1 Message Date
Adam Wight c021c201c0 Rename internal variable
Updates the name to reflect the purpose and the new name for a cite
tag, now "ref".

Change-Id: I778641ad58048dd2c33b6487171c338555b0789b
2023-12-12 08:11:18 +01:00
thiemowmde 44ba7a89e2 Parse error messages as late as possible
This moves the actual parsing down to be done much later in the
process. This won't make any difference in production but makes it
easier to refactor the code further.

Note I tried to use a StatusValue object but couldn't because it
merges seemingly identical messages, while the plain array is fine
with containing duplicates. There is one parser test that covers
this. While we could change this it needs discussion and most
probably a PM decision.

Change-Id: I7390b688a33dace95753470a927bbe4de43ea03a
2023-12-11 18:28:35 +00:00
thiemowmde 6a18eac513 Fix regular expressions not being case-insensitive
The "parser marker" placeholders are case-sensitive, e.g. for a tag
that's written like <rEf> the placeholder will also say …-rEf-…. This
was really just a mistake.

The error is as old as this code is. Added in commit 75004e33 in
2009.

Note we shouldn't use /i at the end because the marker itself should
not be case-insensitive. Only the tag name.

Instead of adding more (slow) test cases I update two that are
exactly about this part of Cite (nested tags) anyway.

Bug: T64335
Change-Id: I44c7a42a0da682a1082952fd1af817bf7d45378c
2023-12-11 19:21:12 +01:00
thiemowmde 696c35f496 Change all tests to use overrideConfigValue
Two problems:

1. Manipulating globals directly affects all following tests. They
are not independent from each other. This problem can be seen in
CiteTest.

2. Some test cases in testValidateRef don't test what you think.
For example, the test for a conflicting "extends" + "follow" was not
failing because of the conflict but because "extends" was disabled
and disallowed.

Change-Id: Iaa4e1f3f3222155d59984e577cba3f0b8dec40c3
2023-12-11 12:17:15 +01:00
Translation updater bot ae88f14aae Localisation updates from https://translatewiki.net.
Change-Id: Ic6742ff26dd37de8e16900f9dc9b5062ab817e29
2023-12-11 10:42:48 +01:00
Umherirrender c9773965ca Use namespaced classes
Done automatically via script

Change-Id: I40d64a194ad420c75dfa85711c53e35586895929
2023-12-10 23:18:51 +01:00
Subramanya Sastry b163add15b Revert "Temporarily disable a Parsoid test to let us change code in Parsoid"
This reverts commit 650d6a9f13.

Depends-On: I7249bd03a7942ff7725a20178a051300b777e3a8
Change-Id: Ica414002604f2dffde866dfac6a85db400ea714e
2023-12-08 11:35:13 -06:00
Subramanya Sastry 650d6a9f13 Temporarily disable a Parsoid test to let us change code in Parsoid
Change-Id: I401656265253a429691cc76adc5db5b129cff2cc
2023-12-08 11:33:38 -06:00
jenkins-bot 068c9299cf Merge "Drop unused …_suffix and …_key_with_num messages" 2023-12-08 14:30:26 +00:00
Translation updater bot e4444aa37d Localisation updates from https://translatewiki.net.
Change-Id: I0582bbe85d6980835929ae493c76bf5f0b855fe8
2023-12-08 14:44:57 +01:00
thiemowmde 202c0d3636 Drop unused …_suffix and …_key_with_num messages
The three messages cite_reference_link_key_with_num,
cite_reference_link_suffix, and cite_references_link_suffix are not
used for anything.

According to CodeSearch:
https://codesearch.wmcloud.org/search/?i=1&q=cite_references?_link_(key|suffix)

According to GlobalSearch:
https://global-search.toolforge.org/?q=.&regex=1&namespaces=8&title=Cite.references?.link.(key|suffix).*
For comparison:
https://global-search.toolforge.org/?q=.&regex=1&namespaces=8&title=Cite.references?.link.prefix.*

They are not meant to be localized, as noted in qqq.json. As many
messages in Cite the idea is that individual wikis can customize the
generated HTML (!) via such messages. These particular ones apparently
have been introduced just because it's technically possible, but never
been used for anything. They exist since the very first commit from
2005: https://phabricator.wikimedia.org/rECITb714bf09

Note how these messages aren't even visible anywhere, except in the
browser's address bar as part of a #… fragment.

This obviously doesn't solve T321217 but helps minimizing the
surface.

Bug: T321217
Change-Id: Icfa82155e3b02df39bb6e924bc472f6edc565d5f
2023-12-08 09:26:05 +01:00
Subramanya Sastry 69529bdcf6 Sync up Cite repo with Parsoid
This now aligns with Parsoid commit 2f962cd9a66c9fd69664e3e8a2d79820cd6f1453

Change-Id: Ia93f8ced5c79e2ba49d40aafe6ea14d1691609b0
2023-12-07 18:46:23 +00:00
thiemowmde 0bae6eb224 Fix confusing wording of "invalid parameter in <ref>" message
This error message really always meant nothing but "there is an
unknown parameter in your <ref> tag". It's unnecessarily confusing
only for historical reasons. See T299280#9384546 for a long
explanation.

Bug: T299280
Change-Id: Ic224d5828f7b7ac0928c44f526c61654ccf3425e
2023-12-07 10:54:46 +01:00
jenkins-bot e73c7d61ca Merge "Correctly encode non-breaking spaces in reference names" 2023-12-06 18:00:43 +00:00
jenkins-bot e66c22beeb Merge "Update tests to match update to <gallery> output in core" 2023-12-06 16:39:06 +00:00
jenkins-bot cb3791b00f Merge "Temporarily disable test to allow us to make changes in core" 2023-12-06 16:17:50 +00:00
Translation updater bot 53c7386789 Localisation updates from https://translatewiki.net.
Change-Id: I1e2020b7d70a3b9a8a04385e98c82b8a0676370c
2023-12-06 09:58:46 +01:00
jenkins-bot f455dd3f79 Merge "Re-arrange code in preparation for T298278" 2023-12-05 14:53:42 +00:00
Translation updater bot d368264120 Localisation updates from https://translatewiki.net.
Change-Id: Icdbb6a0468db59a04887413a83afe7a90e02ea64
2023-12-05 09:14:17 +01:00
thiemowmde f9bb125e4c Correctly encode non-breaking spaces in reference names
Note how this currently behaves. The user input is
<ref name="…&nbsp;…">
But what we get in the end is
<li id="…&#160;…">
This implies that the &nbsp; is decoded and re-encoded with a
slightly different entity encoding. (Note that &nbsp; and &#160;
and &#xa0; are all the same character.)

Also note how there is only an underscore in the href="…", but the
non-breaking space is gone. This is identical to what happens in
links and headlines. Try for example [[a&nbsp;_a]]. Multiple
underscores, non-breaking spaces, and normal spaces will be
normalized. We just do the same in the id="…" attributes.

Note this fixes only one of the issues listed in T298278.

Bug: T298278
Change-Id: Ia01f2fdd3b3e9ee6aaa9da60ca3386dcd5d6b1a0
2023-12-05 07:58:38 +01:00
jenkins-bot 1e5cd295e0 Merge "Split off separate key normalization function" 2023-12-04 12:15:21 +00:00
Translation updater bot c784c47de5 Localisation updates from https://translatewiki.net.
Change-Id: Ie8a88219eb6691d249af60195724a3ef428c5ef2
2023-12-04 09:03:37 +01:00
thiemowmde 5f5e9ec9f0 Re-arrange code in preparation for T298278
This patch makes only sense together with I5a64ac4 where it is split
from. See I5a64ac4 for details.

The idea is that this patch just re-arranges the code without making
any changes to how the code behaves. This leaves a minimal change
behind that's much easier to revert, if needed.

Bug: T298278
Change-Id: Ie78313b7f3ac1ec7bce5ac7512e60a3bb011480a
2023-12-04 08:29:53 +01:00
Translation updater bot 30607b4cf0 Localisation updates from https://translatewiki.net.
Change-Id: I840e39ba3d0fa4cc0687e148d865da0262373f12
2023-12-01 09:38:44 +01:00
thiemowmde 858fdcefd9 Split off separate key normalization function
This patch does two things:

1. The "normalization" function was never only doing normalization,
but also all the necessary HTML encoding. This is now more visible
and split into two separate functions.

2. To make this easier we change the order slightly. Because of this
the normalization step must now consider spaces. Before spaces have
been converted to underscores by escapeIdForLink.

The results are all the exact same as before.

This is split from I5a64ac4 to make that easier to review.

Bug: T298278
Change-Id: I9435a2ddaa21559e29587c58b7523103141467f7
2023-11-30 09:43:35 +01:00
gerritbot 3d34307f87 Update StaticUserOptionsLookup's FQN
User-options related classes are being moved to
the MediaWiki\User\Options namespace in MediaWiki Core;
reflect that change here.

Bug: T352284
Depends-On: I42653491c19dde5de99e0661770e2c81df5d7e84
Change-Id: I22ff2effcf9b7f2162f5d57608d8ec3651b48dd7
2023-11-29 17:55:07 +00:00
gerritbot c26cc4fa44 Update UserOptionsLookup's FQN
User-options related classes are being moved to the MediaWiki\User\Options namespace in MediaWiki Core; reflect that change here.

Bug: T352284
Depends-On: I9822eb1553870b876d0b8a927e4e86c27d83bd52
Change-Id: I04337d15d32c1e8bdfdcfa272f1750ffecc8e47e
2023-11-29 12:38:22 +00:00
Translation updater bot f8967415a8 Localisation updates from https://translatewiki.net.
Change-Id: I191f8a688ccf3b2085d9d993265f304da45d5085
2023-11-29 08:30:38 +01:00
Subramanya Sastry f267635b48 Update tests to match update to <gallery> output in core
Depends-On: I5039c7ef9e07199c256fd568b4f94714e5831d17
Change-Id: I69776da432eeca134785329d424d310fb506bce6
2023-11-27 18:09:03 -06:00
Subramanya Sastry 4929e015d1 Temporarily disable test to allow us to make changes in core
* Needed by change I5039c7ef9e07199c256fd568b4f94714e5831d17

Change-Id: Ieeb6b98afc74595a928bd141889486acfc9eb346
2023-11-27 18:07:35 -06:00
Translation updater bot f8010df944 Localisation updates from https://translatewiki.net.
Change-Id: I981c304635cffc265ae0aed53db3829bc569471d
2023-11-27 08:31:55 +01:00
Translation updater bot c60d8d1f2f Localisation updates from https://translatewiki.net.
Change-Id: Ia43cb04dbac14774f8bad377c23f25b76fa93009
2023-11-23 11:55:51 +01:00
C. Scott Ananian d07d6affd9 Use DOMCompat::getAttribute() instead of Element::getAttribute()
This uses semantics consistent with the DOM spec (and any future
spec-compliant PHP DOM library, like Dodo or a native one bundled
with PHP).  It also helps avoid certain classes of errors caused
by conflating empty-string values and missing attributes.

A number of minor bugs have been fixed in the process, mostly
involving the string value "0" (and similar) which are falsey
and thus were sometimes treated the same as a missing attribute.

The API for MediaStructure was slightly tweaked to conform to
this "return null for missing attribute" convention.
No one outside Parsoid appears to use MediaStructure yet:

  https://codesearch.wmcloud.org/search/?q=MediaStructure

And Parsoid itself doesn't usethe MediaStructure::get* methods
which were tweaked here.

This patch squashes (and replaces):
 Ib272bd2a9a2da06efc4a4d962cd191107a70f84c
 Iae47c9f3c80f1642426ef985f1af6b44a9c807fb
 Ic3a43516e2a0c9bbd62f9519e5663b545fd975e7
 I7c45552a21ba49c76b1fc56f023d7937d9f41340
 Ic231a53dba9527c6b811cba990ae35f7fc7bf153
 I5209338d221ebf738a505d85fe1a019ea621fcc5
 Icb6b13c2b49edb3cd725999f09f8cb7e3a4c0f99
 I7eca3e616a66cac5b2a792435889cced2e2c9cd9

Change-Id: I11e7efb546c8cf1aac6b49c3361aacbd4eb5cef1
2023-11-22 14:04:11 -05:00
jenkins-bot 3462165a56 Merge "Update tests for PHPUnit 9.6" 2023-11-22 15:00:02 +00:00
Translation updater bot eb2bd5ff15 Localisation updates from https://translatewiki.net.
Change-Id: I64d02118866e006a197e094f827696f3dc014573
2023-11-22 08:19:39 +01:00
Daimona Eaytoy c71109b97b Update tests for PHPUnit 9.6
- Avoid withConsecutive()

Bug: T342110
Change-Id: Icb951b461c5e6ea1ced2ab8a183c53265d4a2b4f
2023-11-22 00:15:20 +01:00
Translation updater bot a56fc64d18 Localisation updates from https://translatewiki.net.
Change-Id: I9250b0f75e11df2b8ff685a8cb0a6fe22f2a2261
2023-11-20 08:50:57 +01:00
Translation updater bot 463e002854 Localisation updates from https://translatewiki.net.
Change-Id: Icb4e8c538d29fa667786df48b99ed3fa56fa0245
2023-11-17 08:52:12 +01:00
Translation updater bot f649124a7f Localisation updates from https://translatewiki.net.
Change-Id: I86b6ea8d3c0d85f4510dc71139c229b4fde5bf20
2023-11-16 09:08:57 +01:00
Translation updater bot 7ce0bb218c Localisation updates from https://translatewiki.net.
Change-Id: Idb7a47793b233425ecc0885910c9c2acdfd8a561
2023-11-15 15:43:23 +01:00
Translation updater bot 5e61c88f7c Localisation updates from https://translatewiki.net.
Change-Id: Ia465e62e7bcd69f908e4b10449cb3249574987dd
2023-11-13 08:40:32 +01:00
thiemowmde 67bbfe58ad Drop obsolete PHP 7.2 "arrayToObject" workaround
According to T228346 and T254519 this is a workaround for a PHP 7.2
bug. We require PHP 7.4 by now.

Not used anywhere outside of this codebase:
https://codesearch.wmcloud.org/search/?q=PHPU%5Cw*%3A%3AarrayToObject&files=%5C.php%24

Bug: T254519
Change-Id: I4150900e59c5bd865ce102417ac354a54552e623
2023-11-11 21:26:22 +00:00
jenkins-bot 8ef6751c55 Merge "VE: Update group ordering when node is converted from placeholder" 2023-11-10 21:54:42 +00:00
Translation updater bot 483d5ad545 Localisation updates from https://translatewiki.net.
Change-Id: Ib733e398de88a624f11420d94bc1fbec444c83a1
2023-11-09 10:40:29 +01:00
Ed Sanders e7d3dec076 Document some generated messages
Change-Id: Id9c961f322c2f3730f29345da9ba61196243df5a
2023-11-08 12:07:50 +00:00
Ed Sanders ada0820622 ve-cite: Remove unused messages for fake refernce headings
These were removed upstream in Iedc17c8ac9c.

Change-Id: Ic1240329de348a687db0373a9d247d3cd0780b46
2023-11-08 12:07:47 +00:00
Translation updater bot 2e006087fb Localisation updates from https://translatewiki.net.
Change-Id: I5520d02cb371d264d307fcf1e791b95d3123e131
2023-11-06 08:55:50 +01:00
thiemowmde 4584c6d2b5 Add fast helper method DOMUtils::hasClass
While this is not really a bottleneck (usually the list of classes
is short) I was still curious. Why create an object, explode a
string into an array (even using a regex) and search the array if
we can do the same with a single regex?

This will be beneficial for other codebases, notably
DiscussionTools.

Change-Id: If9252a97562542e7a4bec29edcc6e8dee0fb8221
2023-11-03 21:27:01 +00:00
Translation updater bot a4f9e88fc0 Localisation updates from https://translatewiki.net.
Change-Id: Ie76c448fff0963a1493e315335b1e3b3258844f7
2023-11-02 09:58:09 +01:00
Translation updater bot d4a54c4bc9 Localisation updates from https://translatewiki.net.
Change-Id: I3288c028e79553da2e120526a8e054ae9373c7c5
2023-11-01 09:07:54 +01:00