Commit graph

4705 commits

Author SHA1 Message Date
Translation updater bot 5684c8823e Localisation updates from https://translatewiki.net.
Change-Id: I59d1cfeae8f911fab2b95af322aedec0d1d66b0d
2020-02-19 08:23:11 +01:00
libraryupgrader 81e6643baf build: Updating composer dependencies
* mediawiki/mediawiki-phan-config: 0.9.0 → 0.9.1
* mediawiki/minus-x: 0.3.2 → 1.0.0

Change-Id: Ica218e63fd747980b7acc39ac7403f19239fa861
2020-02-19 01:25:06 +00:00
Translation updater bot 247e80d781 Localisation updates from https://translatewiki.net.
Change-Id: I5c9efab6cce150f6c58f2dc8dc9fba39c2f0cf7e
2020-02-17 08:45:44 +01:00
Translation updater bot e1423ecaf4 Localisation updates from https://translatewiki.net.
Change-Id: I6e0628876b7b6bc397924d4e9b1b62d7c8516f03
2020-02-14 08:25:22 +01:00
Translation updater bot ac2edf5f57 Localisation updates from https://translatewiki.net.
Change-Id: I125e052175b48a2cb2a44865a682b6cb88a6d676
2020-02-13 08:54:21 +01:00
Subramanya Sastry d0a9c42c98 Cite: Remove more Parsoid internals knowledge
* Remove use of $env from ReferencesData and RefGroup by
  providing high-level helpers in ParsoidExtensionAPI.

  - Given a fragment id, provide helpers to fetch fragment DOM
    or fragment HTML
  - Fetch the URI for the current page (being parsed)

* There is still a lot of subtle knowledge Cite has about
  how data-parsoid and data-mw attributes are held off to the
  side in a bag and all the pp* and load/store manipulation
  of those attributes. It would be an interesting exercise
  to purge this implementation of those notions OR figure out
  high-level concepts that we document as being part of Parsoid
  reality that we'll forever support.

Bug: T242746
Change-Id: I29ff154f2f17123b9756dfd2f3b422f0b30222b1
2020-02-11 19:47:28 +00:00
Subramanya Sastry 1f87104378 Simplify TokenUtils::kvToHash
* Get rid of unused args and simplifyy method
* In preparation for more cleanup of extension code

Change-Id: I9bdce2e0c9254405d4c3ed61926b54a3997a0c22
2020-02-11 15:50:58 +00:00
jenkins-bot 7ee2e81ade Merge "Add two extreme follow edge cases back to parser tests" 2020-02-11 09:11:20 +00:00
Translation updater bot cb30637732 Localisation updates from https://translatewiki.net.
Change-Id: Ia93d4b3cf054b9c24a8b9eadd954c624354104dd
2020-02-11 08:18:57 +01:00
jenkins-bot 43cf5ac7bd Merge "Don't talk about follow being "broken" but "incomplete"" 2020-02-10 12:41:50 +00:00
Translation updater bot efaba3aef0 Localisation updates from https://translatewiki.net.
Change-Id: Ia7bafb7deb9353cdd95e598d924ef4e08e517116
2020-02-10 08:32:57 +01:00
Subramanya Sastry 70e38c1ae4 Use extension config option for html2wt formatting of extension tags
Bug: T242746
Change-Id: If96056d9bc75afa9390c2f8aab0da5eab60cc537
2020-02-07 18:03:56 +00:00
Translation updater bot 36285bb9f7 Localisation updates from https://translatewiki.net.
Change-Id: Ifaebba26a97fb0737d623da5834121a97c9a76dd
2020-02-07 09:57:04 +01:00
Subramanya Sastry 5e256b48aa Start untangling Parsoid internals from extensions
* In this patch, toDOM, fromDOM, and DOM postprocessor extension
  methods all get a ParsoidExtensionAPI object. These API objects
  are constructed at the appropriate times in the wt2html and html2wt
  pipelines.

* Got rid of direct references to SerializerState from fromDOM
  methods in extensions.

* Exposed generic serialization and wikitext escaping methods
  in ParsoidExtensionAPI for extensions to leverage. The implementation
  of these methods is partial and only supports current usage
  of extensions in Parsoid's repo. This will need to be fully
  fleshed out going forward.

* Stopped exposing wt2html options in toto and provided more specific
  convenience methods.

* Reduced direct access to the Env object in a few more places.

* Cite has code to inspect embedded HTML in data attributes of a node.
  Moved this code out of Cite into ParsoidExtensionAPI which reduces
  knowledge that extensions need. Unlike the other cleanups, this one
  is more of a convenience method since this code only requires
  knowledge of a publicly published spec. But, nevertheless an useful
  cleanup since it simplifies Cite's complexity just a bit.

* More followup work is needed.
  - before/after methods should be eliminated in favour of a config flag
    that implements the inline/block layout option. Once this is done,
    extensions will no longer need direct access to the SerializerState
    internal object.
  - Env exposure should be reduced.
  - Provide access to Sanitizer via ParsoidExtensionAPI instead of
    needing extensions to directly import it.
  - It should be possible to eliminate the need for extensions to know
    about DSR / DSR-shifting and do it automatically via some high-level
    conceptual flag.
  - It might also be possible to infer source offsets directly via args
    instead of passing that explicitly.
  - Should we provide a convenience helper class with access to all the
    src/Utils/* methods?

Bug: T242746
Change-Id: I7ffb5aa52a84854a9d363a0e8f1ce650241f1c41
2020-02-06 20:55:27 -05:00
Translation updater bot fe43bbbc8a Localisation updates from https://translatewiki.net.
Change-Id: Icb2ddad2fd37bffff96c13e5434016d0fa2913d3
2020-02-06 08:19:00 +01:00
Thiemo Kreuz 400ce89f30 Don't talk about follow being "broken" but "incomplete"
Bug: T240858
Change-Id: Iab6563fdf19d6e85795911e4140476fceabf7334
2020-02-05 16:38:49 +00:00
Thiemo Kreuz 48e2f02e20 Add two extreme follow edge cases back to parser tests
This reverts parts of the revert I3bee35f, which reverted a3d312c8.
I believe it's helpful to keep these test cases just to document how
the code currently behaves. I removed all TODO because we don't know
if and how we want to touch this again.

Bug: T240858
Change-Id: Ib91acfcb7292e5c03ce9cc4d7be782085e10aa27
2020-02-05 15:04:49 +01:00
Adam Wight f2bd6b6dcc Revert "Standardize "follow" validation"
This reverts commit a3d312c8f4.

Bug: T240858
Change-Id: I3bee35f27797a04c41c265f7e598d8383414b67a
2020-02-05 11:42:28 +01:00
Adam Wight b15f1b81a0 Revert "Remove "follow" special case from ReferencesFormatter"
This reverts commit 38122d91cd.

Bug: T240858
Change-Id: I7198d5534acded94bc83962262c4cdfed9782454
2020-02-05 11:42:27 +01:00
Adam Wight eb799af3df Revert "Remove broken "follow" special case from ReferenceStack"
This reverts commit d01cba60fb.

Bug: T240858
Change-Id: I5b528a285ed6a658ceb333b58f0f4a81a64c7f15
2020-02-05 11:42:26 +01:00
Translation updater bot f9dc478a46 Localisation updates from https://translatewiki.net.
Change-Id: I9131c0d08d28ae4ed040bb7709a5a0b87b7c2562
2020-02-05 08:18:41 +01:00
Translation updater bot 7defec4d7a Localisation updates from https://translatewiki.net.
Change-Id: Ibce9dfe736f8b3097b883103dd6a1caa1d752019
2020-02-04 08:33:03 +01:00
C. Scott Ananian 5d200e0bf0 Move all code from Parsoid to Wikimedia\Parsoid namespace
This matches core conventions.

Bug: T240054
Change-Id: I5feb8a6b41503accd01a740195256e9092609272
2020-02-03 21:34:49 +00:00
jenkins-bot ef65edf6e9 Merge "Update documentation of ReferenceStack::$refs data structure" 2020-02-03 15:11:12 +00:00
jenkins-bot 7c3ace4fef Merge "Rewrite ErrorReporter for performance and separation of concerns" 2020-02-03 14:58:55 +00:00
jenkins-bot 74fab9755f Merge "Remove one unnecessary LogicException from ReferenceStack" 2020-02-03 14:50:40 +00:00
Thiemo Kreuz d80bd3ef97 Rewrite ErrorReporter for performance and separation of concerns
This patch is mostly moving code around without changing the behavior.
Exceptions:

* The ErrorReporter creates a <span> container. This was previously
parsed. The only benefit might be error checking and escaping. Rather
pointless. The code just created this HTML. With this patch, it is not
parsed any more. The unit test reflects this change. The output in
production will not change, as the parser tests show.

* Parsing of the message key (to detect it's type and id) is simplified
a lot, using explode. With this the code can, in theory, support more
types.

Bug: T239572
Change-Id: If2fe5f55db46dfc7e0ce445348608bef00bec64e
2020-02-03 15:23:40 +01:00
Adam Wight d01cba60fb Remove broken "follow" special case from ReferenceStack
This is unreachable now that broken follow refs fail validation.

Bug: T240858
Change-Id: I22adaee9c4eaeb94bee953ae15c642e044b6a54b
2020-02-03 12:27:59 +01:00
Adam Wight 38122d91cd Remove "follow" special case from ReferencesFormatter
This is unreachable, now that broken follow refs fail validation.

Bug: T240858
Change-Id: I77faeaac4bc53632ab8b82bff7e335ee8c99dfa5
2020-02-03 12:27:57 +01:00
Thiemo Kreuz 563225d5f9 Update documentation of ReferenceStack::$refs data structure
Change-Id: Ie6e43b147c8eb7cfb67fecfa045b63f9011fcece
2020-02-03 12:25:03 +01:00
Translation updater bot 402eadfbec Localisation updates from https://translatewiki.net.
Change-Id: I6a0114644b710e58aaa5ddc5d1c4565d86fe728d
2020-02-03 08:26:22 +01:00
jenkins-bot a8d94a19a2 Merge "Standardize "follow" validation" 2020-01-31 12:36:34 +00:00
jenkins-bot 7ea4400d77 Merge "Fix two warnings about possibly unset text variables" 2020-01-31 09:34:25 +00:00
Translation updater bot ab6ee3f38d Localisation updates from https://translatewiki.net.
Change-Id: I2c51d0f775cf4f1fe0141caaf15eca08ed1c5239
2020-01-31 09:52:39 +01:00
Adam Wight a3d312c8f4 Standardize "follow" validation
Perform the validation in validateRef, and display a new error message for
broken "follow" refs.  This changes existing behavior, where broken folow
ref content is arbitrarily displayed at the top of the references list and
no error is rendered.

Thanks to weasely wording, the new error can later be reused for "extends"
errors.

Bug: T240858
Change-Id: I506e4dcd1151671f5302ecd99581145d979d8124
2020-01-30 17:25:42 +00:00
Thiemo Kreuz f6fb6024e3 Fix two warnings about possibly unset text variables
Change-Id: I4f79ea559697a671321f4bd276061a6956c9346b
2020-01-30 14:21:41 +01:00
Translation updater bot ac7ca48ba1 Localisation updates from https://translatewiki.net.
Change-Id: Ifc2f8be9798a7145bc59a50af15e460f4c0e7c12
2020-01-29 08:18:10 +01:00
Thiemo Kreuz 0fda08b25a Remove one unnecessary LogicException from ReferenceStack
This exception was introduced very late in the patch I38c9929. It
already caused trouble. This here is essentially a revert. It restores
the previous behavior where this edge-case was silently ignored. The
worst thing that can happen is that appendText() creates an incomplete
entry in the $this->refs array, which will be rendered at the end. The
user can see it then.

As of now we are not aware of a code path where this would even be
possible. Still this does make the code *more* robust by not making it
explode, but give the user something they can work with.

Bug: T243221
Change-Id: I2e2d29bbd557090981903fcc2ece8796fafa4aa4
2020-01-28 16:15:55 +01:00
jenkins-bot 8105f64740 Merge "Localisation updates from https://translatewiki.net." 2020-01-28 07:29:12 +00:00
Translation updater bot ebf2558f90 Localisation updates from https://translatewiki.net.
Change-Id: If803b51ecc244650221dfa0f1af2019d3d09356d
2020-01-28 08:24:50 +01:00
libraryupgrader 691746576b build: Updating jakub-onderka/php-console-highlighter to 0.4.0
Change-Id: I8bb60a80550a52117bfd5330422667fddf0b42d4
2020-01-28 06:56:20 +00:00
Raymond cb85569d1f Remove unneeded nowiki
[[MediaWiki:...]] are rendered as normal wikilinks. I see no need to
wrap them by <nowiki>.

Change-Id: I5688ad18bfeffad68de88e85947343c74c9150b3
2020-01-25 17:16:51 +01:00
jenkins-bot 3c8a225052 Merge "Fix incomplete rollback producing bad footnote numbers" 2020-01-24 15:11:31 +00:00
Thiemo Kreuz 2ddc6f133b Fix incomplete rollback producing bad footnote numbers
Bug: T48140
Change-Id: I53ce5d8488d4c24d6f23f6f0e70806d7db4064e1
2020-01-24 13:02:53 +01:00
Thiemo Kreuz 816b1b0add Remove newline characters from all error messages
These create bogus output, depending on the surrounding wikitext the
<ref> tag is used in. For example, this example wikitext:

* Example.<ref name="1">a</ref> More text.

… will be rendered with the "More text" sentence wrapped on the next
line, outside of the list. However, this does *not* happen in many of
the localizations, e.g. German, because many Tanslatewiki translators
did not copied the bogus \n. Why should they.

TL;DR: These newline characters either do nothing, or destroy the output.
In both cases the proper fix is to replace them with spaces.

Some of the test cases touched in this patch demonstrate the issue.

Change-Id: I395a40637a5293eda1f477963d252ce1a215f8b2
2020-01-24 12:29:14 +01:00
jenkins-bot 6ad54f0d63 Merge "Introduce dedicated error message for nested <ref extends=…>" 2020-01-24 10:58:01 +00:00
Adam Wight fe7356622e Extract backlink formatting into a function
No-op, prepare for reusing this code in subreferences.

Bug: T243278
Change-Id: I8ad9778b0fecd462ff18eccbe86885dd6fc21c76
2020-01-24 09:03:17 +00:00
Translation updater bot 647987b129 Localisation updates from https://translatewiki.net.
Change-Id: Ie5cf2c2784dec1dd255c894aa0c93245d9442fce
2020-01-24 08:14:57 +01:00
Thiemo Kreuz 51d55bb8de Introduce dedicated error message for nested <ref extends=…>
This resolves another TODO. Since this is an intentional limitation in
the design of the feature, I find it pretty signigicant to give it it's
own error message.

Note that the text does not need to be perfect, just good enough for now.
We will review all error messages later via T238188.

Bug: T242141
Change-Id: Id9c863061e855350320131e81f6702c8810736f4
2020-01-23 15:00:26 +01:00
Thiemo Kreuz 6cb84a1829 Remove TODOs and FIXMEs that we are not going to fix
Change-Id: I588d9e8f74247adcb26ecdc14b49cf8056291a2e
2020-01-23 07:27:27 +00:00