Page MenuHomePhabricator

[EPIC] Modernize code for derived content vars, stop parsing arbitrary text
Open, Needs TriagePublic

Description

tl;dr: Stop doing parseWikitext( getVar( 'old_wikitext' ) ).

Why: The "wikitext" variables may hold textual representation for every content model, but the native parsing makes sense only for actual wikitext. Furthermore, extensions can use the AbuseFilter-contentToString hook to transform the content from the native format. This is used in MediaWiki-extensions-Wikibase-Repo to strip boilerplate from JSON.

What:

  • Construct derived content vars from a revision, not (pseudo)wikitext.
  • Generalize the logic from 68ff66854377fb428aa65dff34ed95bb1a918296.
  • Replace (and deprecate) code in LazyVariableComputer structured like parseWikitext( getVar( 'old_wikitext' ) ) with something more like someExtractor( getRevision( $params ) ).

Bugs:

Feature requests:

Related:

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Change #1107052 had a related patch set uploaded (by Matěj Suchánek; author: Matěj Suchánek):

[mediawiki/extensions/AbuseFilter@master] Centralize logic for revision retrieval for lazy variables

https://gerrit.wikimedia.org/r/1107052

Change #946600 had a related patch set uploaded (by Matěj Suchánek; author: Matěj Suchánek):

[mediawiki/extensions/AbuseFilter@master] Factor out code for past changes from VariableGenerator::addEditVars

https://gerrit.wikimedia.org/r/946600

Change #1024463 had a related patch set uploaded (by Matěj Suchánek; author: Matěj Suchánek):

[mediawiki/extensions/AbuseFilter@master] Do not request PST on live content

https://gerrit.wikimedia.org/r/1024463

Change #1024842 had a related patch set uploaded (by Matěj Suchánek; author: Matěj Suchánek):

[mediawiki/extensions/AbuseFilter@master] Separate PreparedUpdate interactions from legacy code

https://gerrit.wikimedia.org/r/1024842

Change #1107052 merged by jenkins-bot:

[mediawiki/extensions/AbuseFilter@master] Centralize logic for revision retrieval for lazy variables

https://gerrit.wikimedia.org/r/1107052

Change #774496 had a related patch set uploaded (by Matěj Suchánek; author: Matěj Suchánek):

[mediawiki/extensions/AbuseFilter@master] Retrieve external links of past changes from ParserOutput

https://gerrit.wikimedia.org/r/774496

Change #1024842 merged by jenkins-bot:

[mediawiki/extensions/AbuseFilter@master] Separate PreparedUpdate interactions from legacy code

https://gerrit.wikimedia.org/r/1024842

Change #946600 merged by jenkins-bot:

[mediawiki/extensions/AbuseFilter@master] Reimplement VariableGenerator::addEditVars in RCVariableGenerator

https://gerrit.wikimedia.org/r/946600