Commit graph

4824 commits

Author SHA1 Message Date
libraryupgrader ab2a68d8ec build: Updating grunt-banana-checker to 0.9.0
Change-Id: I4fac62c79bb08c5d09f16a1ad5fe003e2d357f21
2020-04-19 01:54:20 +00:00
Subramanya Sastry 5626d6ca62 ParsoidExtensionAPI: Add domToWikitext method + fix Cite to use it
* We only had a htmlToWikitext API method whereas we have been
  trying to stay in DOM land all along. With this change, extensions
  can use the intuitive domToWikitext method when they are dealing
  with DOM nodes.

* Renamed WTS's serializeHTML method to htmlToWikitext and added
  a domToWikitext method there as well which ParsoidExtensionAPI uses.

* Turns out that <ref>s were converting DOM to HTML and then using
  the htmlToWikitext method. I switched it use the domToWikitext
  method. However, turns out WTS requires a <body> element for its
  top-level method!

  For now, while we figure out if that can be changed to be more
  lenient, added an internal DOM -> HTML conversion in the
  domToWikitext method. When we fix WTS, this DOM -> HTML -> DOM
  roundtrip can be eliminated.

Bug: T242746
Change-Id: I340d5a363e0d1b8ed6d0ffb0234315e6d9523a76
2020-04-17 20:58:53 +00:00
Subramanya Sastry 18462e0458 Extension API: Adopt somethingToSomethingElse naming wherever possible
* Gergo's sensible recommendation to make the API more readable and
  easier to use.

Bug: T242746
Change-Id: I6ed1d4bb552a15b39552f24cd425dd4d63cce847
2020-04-17 20:58:50 +00:00
Translation updater bot 39772c09ba Localisation updates from https://translatewiki.net.
Change-Id: I49f7726f7f6fa3978577f3230d04241d02d9c98a
2020-04-15 08:23:17 +02:00
Translation updater bot 07f1833808 Localisation updates from https://translatewiki.net.
Change-Id: Ib798509e8a76d9cb4b814fddb9fe5db50c6785f4
2020-04-14 08:23:09 +02:00
Translation updater bot 53aefed04f Localisation updates from https://translatewiki.net.
Change-Id: If1003b56d6b13b67e91f29ffd173741761303c32
2020-04-13 08:59:45 +02:00
Translation updater bot 0bcf661e07 Localisation updates from https://translatewiki.net.
Change-Id: I580fe5cd8a2ac0ee393b27d47565cb159ae34ad5
2020-04-09 08:38:28 +02:00
Translation updater bot 013fff9c9b Localisation updates from https://translatewiki.net.
Change-Id: Ie3c50e679bb38cb16a6dc5601621f1597c0d7613
2020-04-07 08:37:41 +02:00
jenkins-bot 06190bbab7 Merge "Localisation updates from https://translatewiki.net." 2020-04-06 07:24:26 +00:00
Translation updater bot 344b9dc645 Localisation updates from https://translatewiki.net.
Change-Id: Idd6a9b410154378a17ef86f53cced7e7057aff48
2020-04-06 09:01:30 +02:00
Translation updater bot a09d25cde9 Localisation updates from https://translatewiki.net.
Change-Id: Ibb71914f9c1c5499318612013c3f08f427ea41f9
2020-04-06 08:19:01 +02:00
Subramanya Sastry d5c4583649 ParsoidExtensionAPI: Cleanup the toHTML / innerHTML mess
This is cleaner and less prone to subtle errors since it forces
extension developers to explicitly choose the more performant version.

Bug: T242746
Change-Id: Ia25bc3ae261b43dba97d369940065254faacdd80
2020-04-03 18:48:01 +00:00
Translation updater bot 96f95672a5 Localisation updates from https://translatewiki.net.
Change-Id: I3a0207a7b35bb31c439aeaa12e584d0c67028583
2020-04-02 08:24:00 +02:00
Subramanya Sastry 6db523d642 Extension Config Options: Reorg options for ease of use
Instead of 'fragmentOptions' and 'html2wt' for extension tags,
embed them as 'wt2html' and 'html2wt' components of an 'options'
property.

Bug: T242746
Change-Id: I4cf32a70ec76a415a98b68eef548206f8b917168
2020-04-01 23:54:18 +00:00
Subramanya Sastry c60c472366 Minor: Rename pipelineOpts to parseOpts in ParsoidExtensionAPI
Bug: T242746
Change-Id: I244e21b8222547aed9ba5bf902a46dfd114823f1
2020-04-01 23:54:16 +00:00
C. Scott Ananian 376c0418d3 Update parser tests to v2 (tidy by default)
The most common cleanup required by switching to tidy output was adding
missing <p>-wrappers to the last item before <references/>.

Bug: T246285
Change-Id: I7c8a08c4e6eff7caf4539a26fae475a4133f9a0c
2020-04-01 11:11:13 -04:00
Thiemo Kreuz a00b8d990d Add test cases for impossible follow vs. rollback edge case
While working on the patch I4303642 I was worried about the line

array_pop( $this->refCallStack )

in the rollback code. Since the patch changed the position of follow
elements in the stack, an array_pop() would pop different elements.

It turns out this is impossible. Rollbacks are only done for <ref>
elements inside a <references> tag, immediatelly after reaching the
closing </references>. It's impossible to use follow="…" inside
<references>. It will not be added to the stack, and therefore not
rolled back.

Even if the edge case would be possible, the *old* code that placed
follow elements on the *other* side of the stack would have been
wrong then.

The test cases in this patch try to hit this edge case, and are
expected to not be able to do so.

Change-Id: I4380bf443db17c6214dbfa2cbda62b46db04258a
2020-04-01 09:03:19 +00:00
jenkins-bot a27b4c82a6 Merge "Revert "Add a newline in wikitext before autogenerated reflist"" 2020-04-01 08:15:41 +00:00
Awight 8c933d03c5 Revert "Add a newline in wikitext before autogenerated reflist"
This reverts commit 90697ffe43.

Change-Id: I659ce1689603fd16e378fb8d3d5bd6d1089342b2
2020-04-01 08:03:55 +00:00
Translation updater bot d488194c0d Localisation updates from https://translatewiki.net.
Change-Id: I6244fc7ef59efe745952424e3fc8a7445fd1c64e
2020-04-01 08:24:32 +02:00
jenkins-bot 45f4990e34 Merge "Add a newline in wikitext before autogenerated reflist" 2020-03-31 19:37:34 +00:00
Bartosz Dziewoński 90697ffe43 Add a newline in wikitext before autogenerated reflist
Previously the reflist was added at the end of the last line of text,
which messes up paragraph wrapping (as seen in many test cases), and
generated invalid HTML when the last line was a list item (T148701).

Bug: T148701
Change-Id: Ifc873fc913e717026d80d54b570c594d1073fb42
2020-03-31 19:00:51 +00:00
jenkins-bot a00401fdfc Merge "Remove not needed code without changing anything" 2020-03-31 18:30:21 +00:00
Thiemo Kreuz 53b043f28f Remove not needed code without changing anything
This removes a few tiny pieces of code, and a large chunk related to
incomplete follow="…" attributes (see T240858). It turns out we don't
need to insert elements at the top of the ReferenceStack::$refs
array, because this array is reordered anyway in
ReferencesFormatter::formatRefsList()!

Incomplete follow refs don't have a number, and are ordered to the top
because of this, as before. This doesn't change with this patch.

Change-Id: I43036420be22feb8f0f287d9ccee2afd317df2a9
2020-03-31 18:15:14 +02:00
Translation updater bot 95168a2d9d Localisation updates from https://translatewiki.net.
Change-Id: I6cb5440acc405e47ae036d52054c3b55badc6d9a
2020-03-31 08:28:27 +02:00
libraryupgrader 6d9d6c3398 build: Updating gonzales-pe to 4.3.0
* https://npmjs.com/advisories/1179

Change-Id: I369aad2115d7f577b4cbabea2b9b2be4bd3e35fb
2020-03-31 00:54:54 +00:00
jenkins-bot ce919471e8 Merge "Localisation updates from https://translatewiki.net." 2020-03-30 07:24:31 +00:00
Translation updater bot 85b6cb3d73 Localisation updates from https://translatewiki.net.
Change-Id: Id1a1246dba33eb7fdb485832fe7a3f2303a7f7bc
2020-03-30 09:13:15 +02:00
Translation updater bot 653797fcbb Localisation updates from https://translatewiki.net.
Change-Id: Ic229386c7d1427e46f7631e820453db3f28e721b
2020-03-30 08:38:17 +02:00
Translation updater bot eb029f75d7 Localisation updates from https://translatewiki.net.
Change-Id: If485ce8bfded0af4bad5c5261f1d8c35dec9a584
2020-03-27 08:40:34 +01:00
Subramanya Sastry 04e9292576 Provide utility classes for extensions
* Added DOMDataUtils, WTUtils, and Util for use by extension
  developers. These classes might acquire more functionality in the
  future based on usage and need.

* Added PHPUtils for a single helper to work around a GC bug in PHP.
  Once we move on to a newer version of PHP where this is fixed, we
  can get rid of this class and helper.

* These classes proxy the various helpers used by currently ported
  extensions. For reasons of coherency, the set of helpers in these
  classes are a superset of what the extensions use.

* Updated references to the other helpers to use these classes

* Since DOMUtils or DOMCompat are not Parsoid-centric, it feels safe
  to provide extensions direct access to those utils classes. We could
  consider moving DOMUtils to the Core/Utils namespace if appropriate.

* In one case, I replaced the escapeNowikiTags helper that the Nowiki
  "extension" used with an inlined preg_replace.

* TODO: Add unit tests to ensure these utils don't break!

Bug: T242746
Change-Id: I9e733f4ddd6fca8ce13c2957a7d0065d80f7ae9a
2020-03-25 22:17:13 +00:00
Subramanya Sastry 98da9ba908 Extensions: Remove inPHPBlock wt2html pipeline option
* The functionality looks effectively identical to inlineContext
  and everywhere inPHPBlock was inspected, inlineContext was also
  being inspected.

* Cite's use of this flag is a hack to get desired bacward compatible
  behavior but that is a hack no matter what we call the flag.

Change-Id: I3c62590b9bfda224897bb85b18d96c072f3d74ef
2020-03-25 11:11:09 -05:00
Translation updater bot bb861b561e Localisation updates from https://translatewiki.net.
Change-Id: Ifff55208c75ac8a7dc415eba0f9f8cbb1468ce6c
2020-03-25 08:32:08 +01:00
Translation updater bot 349b60bad5 Localisation updates from https://translatewiki.net.
Change-Id: I5ac115192f325870dea17cdafac9643e70a90959
2020-03-24 08:48:36 +01:00
Translation updater bot 6a54e2e76a Localisation updates from https://translatewiki.net.
Change-Id: I6e4f8b4bf4be6e12d1eb8c3b3f74254be5ab72cc
2020-03-23 09:02:37 +01:00
libraryupgrader 942eaa9440 build: Updating npm dependencies
* mkdirp: 0.5.1 → 0.5.3
  * https://npmjs.com/advisories/1179
* eslint: 6.5.1 → 6.8.0
  * https://npmjs.com/advisories/1179
* svgo: 1.2.2 → 1.3.2
  * https://npmjs.com/advisories/1179

Change-Id: Idcd43a7658825b99759a5351c6a3545444e5dfda
2020-03-20 20:30:52 +00:00
Translation updater bot 121c92c597 Localisation updates from https://translatewiki.net.
Change-Id: I0ae46230230446862f0c18e9c3112ce9562f9298
2020-03-20 08:23:36 +01:00
Translation updater bot 6bd6568602 Localisation updates from https://translatewiki.net.
Change-Id: I0fc83c66b48f66591a400b20bae2a7fff9fd2a17
2020-03-19 08:32:47 +01:00
Volker E e5b6ae0323 Reduce reference code padding
Don't use inherited one, but set a small one instead.

Change-Id: Ib38102478ed53a6e4fd8cc25d118f346f81758bb
2020-03-18 07:16:13 +00:00
jenkins-bot 3dc212e730 Merge "Fix cite error ref code color contrast ratio" 2020-03-18 06:46:31 +00:00
libraryupgrader 3df0f16358 build: Updating minimist to 1.2.5
* https://npmjs.com/advisories/1179

Change-Id: Ide732616d562684edab9a71c1998976297b54629
2020-03-18 04:41:02 +00:00
Volker E 774fda06a9 Fix cite error ref code color contrast ratio
Using `background-color: transparent` here to step away from inheritance of whatever `code` would provide theme-independent.

Bug: T247903
Change-Id: Ibeb6b68556b6ad83dacaf1b8fed59a2b971c0221
2020-03-17 21:43:17 +00:00
Translation updater bot 60c5e728ea Localisation updates from https://translatewiki.net.
Change-Id: I55031c78575c34b6edc1123ec24810c497f29a85
2020-03-17 10:23:55 +01:00
Subramanya Sastry 0cc3ca1b98 Move DomSourceRange to Core; ParsoidExtensionApi to Ext
* At this point, DSR is a first-class Parsoid concept and
  extensions will need to use this as well. So, make it part
  of the Core/ namespace to capture high-level concepts that
  might be used outside Parsoid itself.

* Move ParsoidExtensionApi to the Ext directory since that is
  where it best belongs.

Change-Id: If824c4af9e2f8d658f1cb726cbd837222b60790d
2020-03-16 15:52:08 +00:00
Translation updater bot ed873e549b Localisation updates from https://translatewiki.net.
Change-Id: I57e7504a86e8f4b992d2ca3e4d9dace705605090
2020-03-16 14:29:37 +01:00
Translation updater bot a840790cdb Localisation updates from https://translatewiki.net.
Change-Id: Ia6e8512c204d5e0068437f55f30234f195e9a4f2
2020-03-13 08:53:57 +01:00
Translation updater bot c318b8d720 Localisation updates from https://translatewiki.net.
Change-Id: I5d5ff7a30904e75eec4797f48215c0ad64d7bc3d
2020-03-12 08:42:12 +01:00
Timo Tijhof ce27a400e1 CiteHooks: Remove wgResourceModules check (redundant with isModuleRegistered)
The isModuleRegistered() method was introduced a few years ago,
when the load order in ResourceLoader was undergoing a change.

It used to be that hooks like were run first to register modules, and then
wgResourceModules was registered afterwards. This was reversed to disallow
mutating the config at run-time from foreign modules and to allow better
caching and error detection.

It's been several years since then, so this redundant check is no longer
needed. ServiceWiring.php in MW core for ResourceLoader always processes
config and extension.json first before this hook is called.

Bug: T247265
Change-Id: I466f1fa70b8f0e9fe5e8e8df90bb0001b3329b87
2020-03-10 16:18:46 +00:00
libraryupgrader 5f51fec081 build: Updating acorn to 7.1.1
* https://npmjs.com/advisories/1488

Change-Id: Iacb4464bc9c81a45b45ad22fa98bbb05dbd31c6b
2020-03-07 23:06:54 +00:00
Subramanya Sastry 866bc09353 ParsoidExtensionAPI: Update docs
Change-Id: Id1bdf28254cda3ff32cd8ecab6eea8adfce31144
2020-03-06 19:07:23 -05:00