wiki.techinc.nl/includes/OutputTransform
Isabelle Hurbain-Palatin 3935cd1b05 ParserOutput::getText(): do not clone ParserOutput when invoking pipeline
OutputPage::getParserOutputText/addParserOutputContent expects
ParserOutput to be mutated (e.g. by
PostCacheTransformHookRunner). Hence, cloning it before running the
pipeline is breaking DiscussionTools, probably among others.

Suppress the clone for the case where the output pipeline is invoked
from ParserOutput::getText() (which is a deprecated method anyway) and
additionally suppress the side-effects to ParserOutput::$mText on that
code path.

Bug: T353257
Co-Authored-By: C. Scott Ananian <cananian@wikimedia.org>
Co-Authored-By: Isabelle Hurbain-Palatin <ihurbainpalatin@wikimedia.org>
Change-Id: I85c690fd37b781cb27c21970467639e852113b2a
2023-12-12 11:39:32 -05:00
..
Stages Use namespaced classes 2023-12-11 16:07:18 +01:00
ContentDOMTransformStage.php
ContentTextTransformStage.php
DefaultOutputPipelineFactory.php
OutputTransformPipeline.php ParserOutput::getText(): do not clone ParserOutput when invoking pipeline 2023-12-12 11:39:32 -05:00
OutputTransformStage.php
README.md

Output transformations pipelines for wikitext

The classes in the Stages/ subdirectory contains HTML and DOM transforms for use in output processing pipelines, i.e. postprocessors for ParserOutput objects that either directly result from a parse or are fetched from ParserCache.

The default pipeline is created by DefaultOutputTransformFactory; it corresponds to what was previously contained in ParserOutput::getText. The shouldRun method in these stages uses defaults that indicates if the stage runs or not in the default OutputTransformPipeline.