Commit graph

13 commits

Author SHA1 Message Date
Arlo Breault
44580945ed Add OutputPipelineStages from extensions
Adds an experimental configuration to allow extensions to define
OutputPipelineStages to include in the DefaultOutputPipeline.

There are a lot of open questions about this api, like ordering of
execution, but adding it @experimental will help surface the
requirements.

Bug: T370541
Needed-By: I6dc92af0611c680b6e55605a7c9ff8a3fc1dfa26
Change-Id: I64baea40a1687c7a06fbcda9efe9f9a159b0ae8d
2024-07-25 11:44:17 -04:00
C. Scott Ananian
292709cc13 Use $stage::CONSTRUCTOR_OPTIONS in DefaultOutputPipelineFactory
Rather than have DefaultOutputPipelineFactory::CONSTRUCTOR_OPTIONS be a
union of all the options needed by all the stages, allow each stage to
define its own CONSTRUCTOR_OPTIONS and pass a Config object to the
DefaultOutputPipelineFactory service.

In the process, move the $options and $logger properties into the
abstract superclass, since they are passed to every stage.

Bug: T363764
Followup-To: I64aeb81b395ba84e1d839dfbd31decf16c337cd0
Change-Id: I7d386b22c7d8e99b6dfe4cf798069914ac9af373
2024-06-10 20:53:21 -04:00
Arlo Breault
6011792afa Refactor DI in OutputTransform stages
Bug: T363764
Change-Id: I64aeb81b395ba84e1d839dfbd31decf16c337cd0
2024-06-10 16:30:06 -04:00
Arlo Breault
276fc1608a Inject MobileContext in DefaultOutputPipelineFactory
Change-Id: I613893fa236be956a4850a52a03a40e620c7ce64
2024-06-10 15:11:01 -04:00
jenkins-bot
fb6ad0a08c Merge "Localization output transform" 2024-05-06 19:47:43 +00:00
Isabelle Hurbain-Palatin
8de2e66ca7 Localization output transform
This is an output transform to resolve the mw:I18n and mw:LocalizedAttrs
to their localized forms.

Bug: T358191
Change-Id: Id32bc05ff72eb2d9fba7f8c2f192c9f7812cbc70
2024-05-06 15:24:38 -04:00
Bartosz Dziewoński
f0c7fa9234 Move section edit links outside headings (new heading HTML)
Legacy parser can now output headings using a more accessible markup,
which is also identical to the markup used by the Parsoid parser.

Changes to client-side JS and CSS necessary to support the new markup
have already been merged in earlier commits.

includes/skins/Skin.php
includes/ServiceWiring.php
* Define a new skin option, 'supportsMwHeading', which can be used
  to toggle the new markup per-skin.
* Update the built-in fallback skin to enable it. This affects the
  output in parser tests.

docs/config-schema.yaml
includes/config-schema.php
includes/config-vars.php
includes/MainConfigNames.php
includes/MainConfigSchema.php
* Add a new configuration setting, 'ParserEnableLegacyHeadingDOM',
  which can be used to toggle the new markup per-site.

includes/OutputTransform/Stages/HandleSectionLinks.php
* Output new heading HTML for skins that enabled the option.

tests/*
* Duplicate parser tests that cover heading generation to cover both
  new and old markup. Update other parser tests to use new markup.
* Add some unit and integration tests for the behavior of the skin
  option and some parser tests for edge cases of the new markup.

Bug: T13555
Change-Id: I1180169a8e83af834c2984ba16089e6277f2a8dd
2024-05-06 12:25:33 -04:00
Subramanya Sastry
d47c70ddac ExtractBody: Use page title recorded in ParserOutput
* Followup to 9a466310
* I had previously added page title info to ParserOutput as part of
  6e5413b1, but while working on 9a466310, we didn't realize that.
* Removed urldecode(..) since output of Title::getPrefixedDBKey
  isn't urlencoded and urldecode converts "+" into " ". A new test
  ensures that edge case works properly.
* Simplify testing + add additional test to ensure title normalization
  doesn't trip up the transform.

Bug: T358242
Change-Id: I9a0cb00bdf9d104a4b327d72b1ec94cf509883a2
2024-04-19 18:31:08 +05:30
Bartosz Dziewoński
0d99a1c445 HandleSectionLinks: Remove old debug logging for resolved bug
This is just a cleanup change. The exception should never happen,
but if it does, this can be reverted.

Change-Id: I26a7c4105d39d83015c09b779a2de3fd1ddacec1
2024-03-07 23:09:25 +01:00
C. Scott Ananian
b01eb624c4 [OutputTransform] Add section edit links to Parsoid output
Bug: T269630
Change-Id: I9d5fb6348609642ad94743cc5dae81ce608be99d
2024-02-15 13:09:02 -05:00
Isabelle Hurbain-Palatin
ec9dc3d4c4 Rename PostCacheTransformHookRunner
Follow-up to I53551ec6d6471569709c71c1155729e550f64de8.

Bug: T348253
Change-Id: Ia08624a6770070313bf8bbaa11df29e4ed30b73b
2024-02-07 13:01:20 -05:00
Reedy
e28d15e8ce Fix capitalisation of MediaWiki\OutputTransform namespace
It was using Mediawiki not MediaWiki

Follows-Up: Ibc46c34072eadb3e84f69df49a3a424f3864c952
Follows-Up: I53551ec6d6471569709c71c1155729e550f64de8
Change-Id: Ia37a6330d64c3179d7abc12ec3f6fc7daca2e371
2024-01-02 03:03:14 +00:00
Isabelle Hurbain-Palatin
a3f51c732d Refactor DefaultOutputTransform into a pipeline of transforms
Bug: T348253
Change-Id: I53551ec6d6471569709c71c1155729e550f64de8
2023-12-08 18:06:19 -05:00