Page MenuHomePhabricator

cscott (C. Scott Ananian)
Parser whisperer

Projects (24)

Today

  • No visible events.

Tomorrow

  • No visible events.

Tuesday

  • No visible events.

User Details

User Since
Oct 21 2014, 6:47 PM (581 w, 4 d)
Availability
Available
IRC Nick
cscott
LDAP User
C. Scott Ananian
MediaWiki User
Cscott [ Global Accounts ]

Editor since 2005; WMF developer since 2013. I work on Parsoid and OCG, and dabble with VE, real-time collaboration, and OOjs.

On github: https://github.com/cscott

See https://en.wikipedia.org/wiki/User:cscott for more.

Recent Activity

Wed, Dec 10

cscott added a comment to T236810: Make private methods of Parser.php actually private.

Hi folks, I see mLinkHolders is now private, and that Parser::replaceLinkHolders has a deprecation tag in its comment. Is there at this stage a recommended alternative for parsing linkHolders in a string that an extension has? If not, is there any other way to go about doing so, without having to re-parse the entire content within which the links are held?

Wed, Dec 10, 12:33 PM · Patch-For-Review, Technical-Debt, Parsoid, MW-1.34-notes, MW-1.35-notes (1.35.0-wmf.5; 2019-11-05), Platform Team Workboards (Clinic Duty Team), MediaWiki-Parser

Tue, Dec 9

cscott added a comment to T411459: WAN Cache of preprocess-hash is not respecting $wgCacheEpoch or changes to availability of extension tags.

Just bumping the cache version would be sufficient for the 1.39 to 1.43 upgrade, wouldn't it?

Tue, Dec 9, 10:43 AM · MW-1.43-notes, MW-1.44-notes, MW-1.46-notes (1.46.0-wmf.7; 2025-12-16), MediaWiki-Parser

Wed, Dec 3

cscott added a comment to T375981: Preferences settings for small image size are not being respected for Parsoid Read Views.

I think having two thumbnail preferences ("normal" and "large/accessible") might solve most issues, although we'd still have the complexity in core of serving HTML with two different sizes. I haven't seen a discussion of responsive images yet: in many cases even though the screen px is fixed, our HTML mentions thumbnails in 3 or so different resolutions based on the screen magnification factor.

Wed, Dec 3, 9:53 PM · Readers Essential Work 2025 (Parsoid roll out to Wikipedias), OKR-Work, Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Small Size Wikipedias), Parsoid
cscott added a comment to T404461: Enable Extension:MultiTitle on tok.wikipedia.org.

https://www.mediawiki.org/wiki/Writing_an_extension_for_deployment#Preparing_for_deployment says:

  1. Create a production deployment tracking task within Phabricator (in the Wikimedia-Extension-setup and Wikimedia-extension-review-queue projects) to get an extension into the review queue. This task should only concern deployment itself. Any issues which block deployment should be separate subtasks (listed under "Task Graph") that block this parent task.
  2. Your deployment tracking bug should point to on-wiki community consensus (and/or community support/desire) for having the extension installed on a particular wiki, if applicable.
  3. Request and incorporate feedback from the following reviews. These can be included as a "checklist" within the production deployment tracking task's description, (e.g. phab:T190716) or as substasks of the production deployment tracking task. Also note that not every review listed below is a hard requirement for production deployment and that there is no specific order of reviews which need be followed.
Wed, Dec 3, 3:42 PM · MediaWiki-extensions-MultiTitle, Language and Product Localization, Content-Transform-Team, Wikimedia-extension-review-queue, Wikimedia-Extension-setup

Tue, Dec 2

cscott moved T36514: The language and the direction of the title in first heading should depend on page content language instead of user interface language from Backlog to To Deploy on the Content-Transform-Team (Work In Progress) board.
Tue, Dec 2, 10:48 PM · Content-Transform-Team (Work In Progress), Essential-Work, MW-1.46-notes (1.46.0-wmf.5; 2025-12-02), Patch-For-Review, RTL, I18n, MediaWiki-Internationalization
cscott added a project to T36514: The language and the direction of the title in first heading should depend on page content language instead of user interface language: Content-Transform-Team (Work In Progress).
Tue, Dec 2, 10:47 PM · Content-Transform-Team (Work In Progress), Essential-Work, MW-1.46-notes (1.46.0-wmf.5; 2025-12-02), Patch-For-Review, RTL, I18n, MediaWiki-Internationalization
cscott updated the task description for T404241: MediaWiki DOM Spec version 3.0.0.
Tue, Dec 2, 10:42 PM · Content-Transform-Team, Parsoid
cscott added a comment to T411548: Missing legend colon on mlwiki:നിലമ്പൂർ_തേക്ക്_മ്യൂസിയം.

I believe this edit fixes the problem: https://ml.wikipedia.org/w/index.php?title=%E0%B4%AB%E0%B4%B2%E0%B4%95%E0%B4%82%3AInfobox_Indian_Jurisdiction&diff=4587335&oldid=1826809

Tue, Dec 2, 8:42 PM · Parsoid-Read-Views (Small Size Wikipedias), Content-Transform-Team (Work In Progress)
cscott created T411548: Missing legend colon on mlwiki:നിലമ്പൂർ_തേക്ക്_മ്യൂസിയം.
Tue, Dec 2, 8:32 PM · Parsoid-Read-Views (Small Size Wikipedias), Content-Transform-Team (Work In Progress)
cscott added a comment to T392775: Add link color for temporary usernames in content and discussion pages.
  • adding mw-tempuserlink to content area links that look like user links <--- this didn't cause problems as far as we know
  • adding mw-tempuserlink to content area links that look like user links <--- this violated a long-held assumption and caused disruption
Tue, Dec 2, 4:49 PM · MW-1.46-notes (1.46.0-wmf.7; 2025-12-16), Product Safety and Integrity (Sprint Mince Pie Dec 1 - Dec 12), OKR-Work, Temporary accounts, MW-1.45-notes (1.45.0-wmf.9; 2025-07-08), Patch-For-Review, MediaWiki-General, Content-Transform-Team (Work In Progress)
cscott added a comment to T405626: The `mobile-html` endpoint is sometimes returning outdated content when given the title of a redirect page (rather than an article's canonical title).

I'll just note that it shouldn't be considered unusual for there to be *some* lag between PCS and the action API. Up to 15 minutes or so? So it would be helpful if this bug seems to reoccur in the future to add some measure of 'time lag' (ie, how long ago the revision reported by the action API was created) so we know if the difference is within normal expectations.

Tue, Dec 2, 3:40 PM · Essential-Work, Content-Transform-Team (Work In Progress), Wikipedia-Android-App-Backlog, Wikipedia-iOS-App-Backlog, Page Content Service
cscott added a comment to T411442: '"`UNIQ--maplink-00000002-QINU`"' on various English Wikivoyage dynamic maps due to parsoid change.

Seems to be a dup of T383004: Parsoid read views: map with citation in caption results in raw UNIQ QINU marker.

Tue, Dec 2, 3:32 PM · Maps (Kartographer), MediaWiki-Parser, Content-Transform-Team, Parsoid
cscott added a comment to T404461: Enable Extension:MultiTitle on tok.wikipedia.org.
Tue, Dec 2, 3:24 PM · MediaWiki-extensions-MultiTitle, Language and Product Localization, Content-Transform-Team, Wikimedia-extension-review-queue, Wikimedia-Extension-setup
cscott claimed T411212: Dirty diff: &ndash; to &x2013;.
Tue, Dec 2, 3:55 AM · Essential-Work, Content-Transform-Team (Work In Progress), Patch-For-Review, Parsoid, VisualEditor
cscott moved T411228: PHP Warning: DOMNode::appendChild(): Document Fragment is empty from Backlog to To Deploy on the Content-Transform-Team (Work In Progress) board.
Tue, Dec 2, 3:54 AM · MW-1.46-notes (1.46.0-wmf.7; 2025-12-16), ProofreadPage, Content-Transform-Team (Work In Progress), Wikimedia-production-error
cscott moved T408741: The functionality for "days left until" is not working correctly with parsoid from In Progress to To Verify on the Content-Transform-Team (Work In Progress) board.
Tue, Dec 2, 3:54 AM · MW-1.46-notes (1.46.0-wmf.3; 2025-11-19), OKR-Work, Parsoid-Read-Views (Large Wikipedias), Content-Transform-Team (Work In Progress), Parsoid
cscott assigned T411238: Unexpected wikitext changes & whitespace removals by VisualEditor edits to Arlolra.
Tue, Dec 2, 3:52 AM · Essential-Work, Content-Transform-Team (Work In Progress), User-notice, Cite, WMDE-TechWish-Sprint-2025-11-25-Spekulatius, Parsoid, Regression
cscott moved T410919: Allow ParserOutputAccess to generate (and cache) postprocessed output for use in Article read views from Code Review to To Deploy on the Content-Transform-Team (Work In Progress) board.
Tue, Dec 2, 3:51 AM · MW-1.46-notes (1.46.0-wmf.7; 2025-12-16), Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Performance), OKR-Work
cscott moved T408391: Parsoid tokenizer doesn't recognize dash-prefixed Parsoid fragment markers from Code Review to To Deploy on the Content-Transform-Team (Work In Progress) board.
Tue, Dec 2, 3:51 AM · OKR-Work, Parsoid-Read-Views (Small Size Wikipedias), Content-Transform-Team (Work In Progress), Parsoid
cscott closed T407289: Parsoid doesn't handle Japanese behavior switches with U+FF3F (full width underscore), a subtask of T373384: Parsoid doesn't properly handle double-underscore magic words, as Resolved.
Tue, Dec 2, 3:51 AM · OKR-Work, Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Small Size Wikipedias), Parsoid
cscott closed T407289: Parsoid doesn't handle Japanese behavior switches with U+FF3F (full width underscore) as Resolved.
Tue, Dec 2, 3:51 AM · MW-1.46-notes (1.46.0-wmf.3; 2025-11-19), MW-1.39-notes, MW-1.43-notes, MW-1.44-notes, MW-1.45-notes, OKR-Work, MediaWiki-Internationalization, MediaWiki-Parser, Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Small Size Wikipedias), Parsoid
cscott closed T407290: Parsoid doesn't use the list of double-underscore magic words from MagicWordFactory::getDoubleUnderscoreArray(), a subtask of T373384: Parsoid doesn't properly handle double-underscore magic words, as Resolved.
Tue, Dec 2, 3:50 AM · OKR-Work, Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Small Size Wikipedias), Parsoid
cscott closed T407290: Parsoid doesn't use the list of double-underscore magic words from MagicWordFactory::getDoubleUnderscoreArray() as Resolved.
Tue, Dec 2, 3:50 AM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), MW-1.46-notes (1.46.0-wmf.1; 2025-11-05), OKR-Work, Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Small Size Wikipedias), Parsoid
cscott closed T410826: UnexpectedValueException: Unable to decode data-mw [{"parts":[{"template":{"target":{"wt":"#ifexpr: {{#expr:{{CURRENTMONTH}} = 4}} and {{#expr:{{CURRENTDAY}} = 1}}","function":"ifexpr"},"params":{"1":{"wt":"<div class=\"usermes as Resolved.
Tue, Dec 2, 3:49 AM · Content-Transform-Team (Work In Progress), Essential-Work, Parsoid, Wikimedia-production-error
cscott updated the task description for T411283: Parsoid Read Views to deploy ~2025-12-01.
Tue, Dec 2, 3:48 AM · OKR-Work, Content-Transform-Team (Work In Progress)
cscott added a comment to T408275: 1.46.0-wmf.5 deployment blockers.

The above patch Add post-processing cache, disabled by default (1205194) used inconsistent labels for the parseroutputaccess_render_total metric, which caused VisualEditor CI to fail (eg https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php83/20345/console).

Tue, Dec 2, 3:08 AM · Release-Engineering-Team (Priority Backlog 📥), Essential-Work, Release, Train Deployments

Mon, Dec 1

cscott added a comment to T292302: CommonsMetadata extension causes every page on commons to be always parsed twice.

See T411401: Eliminate double-parse and double-postprocess in CommonsMetadata as well.

Mon, Dec 1, 8:37 PM · MW-1.38-notes (1.38.0-wmf.9; 2021-11-16), Performance-Team (Radar), CommonsMetadata, Platform Team Workboards (MW Expedition), MediaWiki-Parser
cscott created T411401: Eliminate double-parse and double-postprocess in CommonsMetadata.
Mon, Dec 1, 6:05 PM · Wikimedia-Performance-recommendation, Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Performance), OKR-Work
cscott added a comment to T301310: CommonsMetadata extension is triggering a duplicate parse in commons.

For future archeology, I'm going to copy the commit message from 206f6cbd50ee9fd8005dfb1a41e61ecac61ad4ed:

ParserOutputAccess: Add process cache within the service class
Mon, Dec 1, 5:26 PM · Wikimedia-Performance-recommendation, DBA, MW-1.38-notes (1.38.0-wmf.21; 2022-02-07), User-Ladsgroup, Regression, CommonsMetadata, Performance-Team (Radar), Platform Team Workboards (MW Expedition)
cscott moved T411212: Dirty diff: &ndash; to &x2013; from Backlog to In Progress on the Content-Transform-Team (Work In Progress) board.
Mon, Dec 1, 4:33 PM · Essential-Work, Content-Transform-Team (Work In Progress), Patch-For-Review, Parsoid, VisualEditor
cscott moved T411212: Dirty diff: &ndash; to &x2013; from Needs Triage to Bugs & Crashers on the Parsoid board.
Mon, Dec 1, 4:33 PM · Essential-Work, Content-Transform-Team (Work In Progress), Patch-For-Review, Parsoid, VisualEditor
cscott added projects to T411212: Dirty diff: &ndash; to &x2013;: Content-Transform-Team (Work In Progress), Essential-Work.
Mon, Dec 1, 4:32 PM · Essential-Work, Content-Transform-Team (Work In Progress), Patch-For-Review, Parsoid, VisualEditor
cscott moved T365317: Messages with substituted URL params break when param contains quotation mark from Code Review to To Deploy on the Content-Transform-Team (Work In Progress) board.
Mon, Dec 1, 4:30 PM · MW-1.46-notes (1.46.0-wmf.5; 2025-12-02), Essential-Work, Content-Transform-Team (Work In Progress), MediaWiki-Parser, I18n
cscott moved T409187: The `data-mw` attribute should be reserved for Parsoid use; rename data-mw="interface" to data-mw-interface from Blocked to Code Review on the Content-Transform-Team (Work In Progress) board.
Mon, Dec 1, 4:30 PM · MW-1.46-notes (1.46.0-wmf.7; 2025-12-16), Content-Transform-Team (Work In Progress), Patch-For-Review, Essential-Work, MediaWiki-Page-diffs, MediaWiki-General
cscott edited projects for T371617: Wikimedia\Assert\InvariantException: Invariant failed: Bad UTF-8 at end of string (2 byte sequence), added: Content-Transform-Team (Work In Progress); removed Content-Transform-Team.
Mon, Dec 1, 4:29 PM · Content-Transform-Team (Work In Progress), Patch-For-Review, Essential-Work, User-brennen, Parsoid, Wikimedia-production-error
cscott moved T409345: Wikimedia\Assert\InvariantException: Invariant failed: Bad source in ::convertOffsets from To Verify to Needs Investigation on the Content-Transform-Team (Work In Progress) board.
Mon, Dec 1, 4:28 PM · Essential-Work, Content-Transform-Team (Work In Progress), Parsoid, Wikimedia-production-error
cscott moved T410919: Allow ParserOutputAccess to generate (and cache) postprocessed output for use in Article read views from To Deploy to Code Review on the Content-Transform-Team (Work In Progress) board.
Mon, Dec 1, 4:08 PM · MW-1.46-notes (1.46.0-wmf.7; 2025-12-16), Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Performance), OKR-Work
cscott moved T410919: Allow ParserOutputAccess to generate (and cache) postprocessed output for use in Article read views from In Progress to To Deploy on the Content-Transform-Team (Work In Progress) board.
Mon, Dec 1, 4:08 PM · MW-1.46-notes (1.46.0-wmf.7; 2025-12-16), Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Performance), OKR-Work
cscott moved T410923: Clone ParserOutput in Article before post-processing from Backlog to To Verify on the Content-Transform-Team (Work In Progress) board.
Mon, Dec 1, 4:07 PM · Parsoid-Read-Views (Performance), Content-Transform-Team (Work In Progress)
cscott moved T348255: Parser cache infrastructure for OutputTransform from In Progress to Backlog on the Content-Transform-Team (Work In Progress) board.
Mon, Dec 1, 4:07 PM · MW-1.46-notes (1.46.0-wmf.4; 2025-11-25), Content-Transform-Team (Work In Progress), Patch-For-Review, Parsoid-Read-Views (Performance), OKR-Work
cscott moved T410919: Allow ParserOutputAccess to generate (and cache) postprocessed output for use in Article read views from Backlog to In Progress on the Content-Transform-Team (Work In Progress) board.
Mon, Dec 1, 4:07 PM · MW-1.46-notes (1.46.0-wmf.7; 2025-12-16), Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Performance), OKR-Work

Fri, Nov 28

cscott added a comment to T411238: Unexpected wikitext changes & whitespace removals by VisualEditor edits.

The original change in this set was DataMwAttrib: Use live DocumentFragment for html values, which uncovered various issues with serialization of attribute-embedded data-parsoid requiring follow ups. Mentioning this in case it is relevant to the investigation.

Fri, Nov 28, 3:42 PM · Essential-Work, Content-Transform-Team (Work In Progress), User-notice, Cite, WMDE-TechWish-Sprint-2025-11-25-Spekulatius, Parsoid, Regression

Wed, Nov 26

cscott added a comment to T392775: Add link color for temporary usernames in content and discussion pages.

I think a "include user link classes" might be a reasonable option. It seems like "default caption" could also work, if we carefully define the "default caption" -- for example, as matching the link title either completely, excluding the namespace, or in a special page subpath. Or maybe even just a trailing substring match, as long as the character before the substring is [:/] or start-of-string.

Wed, Nov 26, 8:00 PM · MW-1.46-notes (1.46.0-wmf.7; 2025-12-16), Product Safety and Integrity (Sprint Mince Pie Dec 1 - Dec 12), OKR-Work, Temporary accounts, MW-1.45-notes (1.45.0-wmf.9; 2025-07-08), Patch-For-Review, MediaWiki-General, Content-Transform-Team (Work In Progress)
cscott created T411128: schedule-deployment tool doesn't recognize mediawiki-vendor as a "MediaWiki repo".
Wed, Nov 26, 7:37 PM · Tool-schedule-deployment
cscott added a comment to T410960: CTT tasks week of 2025-11-21.

Doing a midweek patch release at the request of editing to bring in the fix for T410826: UnexpectedValueException: Unable to decode data-mw [{"parts":[{"template":{"target":{"wt":"#ifexpr: {{#expr:{{CURRENTMONTH}} = 4}} and {{#expr:{{CURRENTDAY}} = 1}}","function":"ifexpr"},"params":{"1":{"wt":"<div class=\"usermes which is blocking Flow deprecation work.

Wed, Nov 26, 4:47 PM · MW-1.46-notes (1.46.0-wmf.4; 2025-11-25), Essential-Work, Content-Transform-Team (Work In Progress)
cscott added a comment to T151958: Annotations at Wikidev'17.

Latest discussion is at https://en.wikipedia.org/wiki/User:Cscott/Ideas/A_Dozen_Visions_for_Wikitext/Annotations

Wed, Nov 26, 4:43 PM · Wikimedia-Developer-Summit (2017)
cscott claimed T36514: The language and the direction of the title in first heading should depend on page content language instead of user interface language.
Wed, Nov 26, 2:41 PM · Content-Transform-Team (Work In Progress), Essential-Work, MW-1.46-notes (1.46.0-wmf.5; 2025-12-02), Patch-For-Review, RTL, I18n, MediaWiki-Internationalization

Tue, Nov 25

cscott added a comment to T410880: Update ApiQueryInfo to accept link text for linkclasses.

As discussed in T392775#11406328 the Content-Transform-Team believes the correct solution is passing a boolean for 'has default link text', which would be a boolean option, for example indefaultlinktext so that the following would return appropriate link classes for [[User:cscott]]:

Tue, Nov 25, 10:20 PM · Product Safety and Integrity (Sprint Mince Pie Dec 1 - Dec 12), Temporary accounts, Patch-For-Review, MW-Interfaces-Team, MediaWiki-Action-API
cscott added a comment to T408741: The functionality for "days left until" is not working correctly with parsoid.

Test cases were https://test.wikipedia.org/wiki/User:Cscott/T408741 for group 0 and https://en.wikipedia.org/wiki/User:Cscott/T408741 for group 1/2 -- both of which had the maximum expiry time before the deploy, and then after deploy and action=purge fell down to the expected expiry times. For example:

<!-- 
NewPP limit report
Parsed by mw‐debug.codfw.pinkunicorn‐5bb9764dc8‐9h96c
Cached time: 20251125215220
Cache expiry: 1806
Reduced expiry: true
Complications: [use‐parsoid]
CPU time usage: 0.179 seconds
Real time usage: 0.185 seconds
Preprocessor visited node count: 12/1000000
Revision size: 253/2097152 bytes
Post‐expand include size: 84/2097152 bytes
Template argument size: 0/2097152 bytes
Highest expansion depth: 3/100
Expensive parser function count: 0/500
Unstrip recursion depth: 0/20
Unstrip post‐expand size: 0/5000000 bytes
Number of Wikibase entities loaded: 0/500
-->

expiry time now 1806 seconds, which is the 15-minute minimum plus the expected random stagger.

Tue, Nov 25, 9:56 PM · MW-1.46-notes (1.46.0-wmf.3; 2025-11-19), OKR-Work, Parsoid-Read-Views (Large Wikipedias), Content-Transform-Team (Work In Progress), Parsoid
cscott added a comment to T365317: Messages with substituted URL params break when param contains quotation mark.

We reviewed this today in CTT tech forum, and although it would be nice to figure out some way to make this less obviously a foot gun, the fixes look good to us.

Tue, Nov 25, 9:19 PM · MW-1.46-notes (1.46.0-wmf.5; 2025-12-02), Essential-Work, Content-Transform-Team (Work In Progress), MediaWiki-Parser, I18n
cscott moved T410693: Icons for maplink use in indicators are missing in Parsoid output from Q2 FY25-26 to To Deploy on the Content-Transform-Team (Work In Progress) board.
Tue, Nov 25, 9:18 PM · MW-1.46-notes (1.46.0-wmf.5; 2025-12-02), OKR-Work, Parsoid-Read-Views (Large Wikipedias), Content-Transform-Team (Work In Progress)
cscott added a comment to T392775: Add link color for temporary usernames in content and discussion pages.

We reviewd this in CTT Tech Forum today. We're pretty uncomfortable with link color depending on the full link text. There are a number of subtle issues there with respect to HTML and URL encodings and language variants (language conversion can alter the digits in the temp account name, have you tested this?), and this approach seems pretty fundamentally incompatible with ApiQueryInfo T410880. Link colors need to be queryable in bulk, because they are typically used in postprocessing to update link colors for an entire page at once.

Tue, Nov 25, 4:31 PM · MW-1.46-notes (1.46.0-wmf.7; 2025-12-16), Product Safety and Integrity (Sprint Mince Pie Dec 1 - Dec 12), OKR-Work, Temporary accounts, MW-1.45-notes (1.45.0-wmf.9; 2025-07-08), Patch-For-Review, MediaWiki-General, Content-Transform-Team (Work In Progress)
cscott added a comment to T410923: Clone ParserOutput in Article before post-processing.

Take 2 controls the cloning with a configuration variable, to make it easier to tweak as the train rolls out, if needed.

Tue, Nov 25, 4:05 AM · Parsoid-Read-Views (Performance), Content-Transform-Team (Work In Progress)
cscott closed T328605: Export TOCData in the action API, a subtask of T319141: Deprecate prop=sections in action=parse, as Resolved.
Tue, Nov 25, 4:04 AM · MW-1.46-notes (1.46.0-wmf.2; 2025-11-12), Patch-For-Review, Content-Transform-Team, MW-1.40-notes (1.40.0-wmf.25; 2023-02-27), MediaWiki-Action-API
cscott closed T328605: Export TOCData in the action API as Resolved.

resolving this bug; follow ups in T410979: Document (and/or tweak) TOCData API representation.

Tue, Nov 25, 4:03 AM · MW-1.43-notes, MW-1.44-notes, MW-1.45-notes, MW-1.46-notes (1.46.0-wmf.2; 2025-11-12), MediaWiki-Action-API, Essential-Work, Content-Transform-Team (Work In Progress)
cscott added a comment to T328605: Export TOCData in the action API.

Each field in the TOCData representation has a default value if it is not present; the default value for 'line' and 'anchor' is the empty string. The default value for 'linkAnchor' is 'anchor'. https://github.com/wikimedia/mediawiki-services-parsoid/blob/08d22d0c01e135ddc850fcbeb50def29904cfe4d/src/Core/SectionMetadata.php#L340

Tue, Nov 25, 4:03 AM · MW-1.43-notes, MW-1.44-notes, MW-1.45-notes, MW-1.46-notes (1.46.0-wmf.2; 2025-11-12), MediaWiki-Action-API, Essential-Work, Content-Transform-Team (Work In Progress)
cscott updated subscribers of T410979: Document (and/or tweak) TOCData API representation.

You have a bug. In this API query, parsing a page with a whitespace-only section heading, the output from prop=sections correctly has line and anchor set to the empty string while the output from prop=tocdata incorrectly omits these properties entirely.

"sections": [
    {
        "toclevel": 1,
        "level": "2",
        "line": "",
        "number": "1",
        "index": "1",
        "fromtitle": "API",
        "byteoffset": 0,
        "anchor": "",
        "linkAnchor": ""
    }
],
"tocdata": {
    "sections": [
        {
            "tocLevel": 1,
            "hLevel": 2,
            "number": "1",
            "index": "1",
            "fromTitle": "API",
            "codepointOffset": 0
        }
    ],
    "extensionData": []
}

The linkAnchor also seems to be omitted in general, but that's defensible as a removal of redundancy in the new format since it's generally the same as anchor (unless % characters are involved).

Tue, Nov 25, 4:02 AM · Essential-Work, Content-Transform-Team (Work In Progress), MediaWiki-Action-API
cscott created T410979: Document (and/or tweak) TOCData API representation.
Tue, Nov 25, 3:59 AM · Essential-Work, Content-Transform-Team (Work In Progress), MediaWiki-Action-API
cscott moved T410826: UnexpectedValueException: Unable to decode data-mw [{"parts":[{"template":{"target":{"wt":"#ifexpr: {{#expr:{{CURRENTMONTH}} = 4}} and {{#expr:{{CURRENTDAY}} = 1}}","function":"ifexpr"},"params":{"1":{"wt":"<div class=\"usermes from Backlog to Code Review on the Content-Transform-Team (Work In Progress) board.
Tue, Nov 25, 3:54 AM · Content-Transform-Team (Work In Progress), Essential-Work, Parsoid, Wikimedia-production-error
cscott claimed T410826: UnexpectedValueException: Unable to decode data-mw [{"parts":[{"template":{"target":{"wt":"#ifexpr: {{#expr:{{CURRENTMONTH}} = 4}} and {{#expr:{{CURRENTDAY}} = 1}}","function":"ifexpr"},"params":{"1":{"wt":"<div class=\"usermes.
Tue, Nov 25, 3:54 AM · Content-Transform-Team (Work In Progress), Essential-Work, Parsoid, Wikimedia-production-error
cscott updated subscribers of T410826: UnexpectedValueException: Unable to decode data-mw [{"parts":[{"template":{"target":{"wt":"#ifexpr: {{#expr:{{CURRENTMONTH}} = 4}} and {{#expr:{{CURRENTDAY}} = 1}}","function":"ifexpr"},"params":{"1":{"wt":"<div class=\"usermes.

A similar issue was found by @Esanders when converting Flow boards. The old HTML in the flow board was something like:

<p data-parsoid='{"dsr":[0,52,0,0]}'><span about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"},{"k":"2"}]],"dsr":[0,52,null,null]}' data-mw='{"parts":[{"template":{"target":{"wt":"fullurl:User talk:cscott","function":"fullurl"},"params":{"action":{"wt":"action=edit&amp;section=new"}},"i":0}}]}'>//en.wikipedia.org/w/index.php?title=User_talk:Cscott&amp;action=edit&amp;section=new</span></p>

aka it was generated before Consider all pf arguments as positional made all parser function arguments positional, and so still has named arguments in the data-mw.

Tue, Nov 25, 3:38 AM · Content-Transform-Team (Work In Progress), Essential-Work, Parsoid, Wikimedia-production-error
cscott added a comment to T410826: UnexpectedValueException: Unable to decode data-mw [{"parts":[{"template":{"target":{"wt":"#ifexpr: {{#expr:{{CURRENTMONTH}} = 4}} and {{#expr:{{CURRENTDAY}} = 1}}","function":"ifexpr"},"params":{"1":{"wt":"<div class=\"usermes.

Can reproduce this by going to [[en:User:Cyberpower678]], launching VisualEditor, clicking on the {{#ifexpr}} at the top of the page, and clicking 'add new undocumented parameter' to make a new named parameter to this parser function, eg named=test. As per https://www.mediawiki.org/wiki/VisualEditor/Debugging the HTML that would be sent back in this case is:

<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;#ifexpr: {{#expr:{{CURRENTMONTH}} = 4}} and {{#expr:{{CURRENTDAY}} = 1}}&quot;,&quot;function&quot;:&quot;ifexpr&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;&lt;div class=\&quot;usermessage plainlinks\&quot;&gt;You have &lt;span style=\&quot;color:#002CC8\&quot;&gt;[[User:Cyberpower678/April Fools|a new message]]&lt;/span&gt; from another user (&lt;span style=\&quot;color:#002CC8\&quot;&gt;[[User:Cyberpower678/April Fools|last change]]&lt;/span&gt;).&lt;/div&gt;&quot;},&quot;named&quot;:{&quot;wt&quot;:&quot;test&quot;}},&quot;i&quot;:0}}]}" id="mwAg"></span>

decoded, the data-mw from this span is:

{"parts":[{"template":{"target":{"wt":"#ifexpr: {{#expr:{{CURRENTMONTH}} = 4}} and {{#expr:{{CURRENTDAY}} = 1}}","function":"ifexpr"},"params":{"1":{"wt":"<div class=\\"usermessage plainlinks\\">You have <span style=\\"color:#002CC8\\">[[User:Cyberpower678/April Fools|a new message]]</span> from another user (<span style=\\"color:#002CC8\\">[[User:Cyberpower678/April Fools|last change]]</span>).</div>"},"named":{"wt":"test"}},"i":0}}]}
`

and the presence of the named argument here is sufficient to cause the exception, since all "old style" parser functions should only have numbered arguments.

Tue, Nov 25, 3:16 AM · Content-Transform-Team (Work In Progress), Essential-Work, Parsoid, Wikimedia-production-error

Mon, Nov 24

cscott closed T407531: Add wikimedia as co-maintainer of wikimedia/json-codec at Packagist as Resolved.

Done! Thanks for the nudge.

Mon, Nov 24, 5:32 PM · JsonCodec, Composer
cscott closed T407568: Add wikimedia as co-maintainer of wikimedia/alea at Packagist as Resolved.

Done! Thanks for the nudge.

Mon, Nov 24, 5:31 PM · MediaWiki-General, Composer
cscott closed T407569: Add wikimedia as co-maintainer of wikimedia/bcp-47-code at Packagist as Resolved.

Done! Thanks for the nudge.

Mon, Nov 24, 5:31 PM · Bcp47Code, Composer
cscott closed T407571: Add wikimedia as co-maintainer of wikimedia/dodo at Packagist as Resolved.

Done! Thanks for the nudge.

Mon, Nov 24, 5:31 PM · Parsoid (Dodo), Composer
cscott closed T407572: Add wikimedia as co-maintainer of wikimedia/idle-dom at Packagist as Resolved.

Done! Thanks for the nudge.

Mon, Nov 24, 5:31 PM · MediaWiki-General, Composer
cscott closed T407573: Add wikimedia as co-maintainer of wikimedia/langconv at Packagist as Resolved.

Done! Thanks for the nudge.

Mon, Nov 24, 5:31 PM · MediaWiki-Language-converter, Composer
cscott closed T407575: Add wikimedia as co-maintainer of wikimedia/update-history at Packagist as Resolved.

Done! Thanks for the nudge.

Mon, Nov 24, 5:30 PM · MediaWiki-General, Composer
cscott closed T407576: Add wikimedia as co-maintainer of wikimedia/webidl at Packagist as Resolved.

Done! Thanks for the nudge.

Mon, Nov 24, 5:30 PM · Essential-Work, Content-Transform-Team (Work In Progress), Composer
cscott closed T407577: Add wikimedia as co-maintainer of wikimedia/zest-css at Packagist as Resolved.

Done! Thanks for the nudge.

Mon, Nov 24, 5:29 PM · Essential-Work, Content-Transform-Team (Work In Progress), Composer
cscott closed T409767: Bad token gluing with class={{tablabonita}} on Quecha wiki (quwiki) as Resolved.
Mon, Nov 24, 5:22 PM · OKR-Work, Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Small Size Wikipedias)
cscott added a comment to T348853: Deprecate null skin on DefaultOutputTransform.

The Skin was added to the parser options as part of https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1204727 (T380516: Introduce ParserOptions type for "propagated to ParserOutput but not otherwise affecting the parse").

Mon, Nov 24, 5:21 PM · Essential-Work, Parsoid-Read-Views, MediaWiki-Parser
cscott added a comment to T380516: Introduce ParserOptions type for "propagated to ParserOutput but not otherwise affecting the parse".

My current thinking is that long-term we shouldn't actually need a separate type for this, these will just be options that are not read at all during a normal parse (and thus don't appear in usedOptions) but are read/used during postprocessing, causing the usedOptions for the postprocessed output to include more options than the usedOptions for the canonical output.

Mon, Nov 24, 5:18 PM · OKR-Work, Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Performance)
cscott added a comment to T410693: Icons for maplink use in indicators are missing in Parsoid output.

Oh, then not actually related to T348722: Lint indicators and couple other extensions for using {{{..}}} in extension body when using <tag>..</tag> syntax?

Mon, Nov 24, 5:03 PM · MW-1.46-notes (1.46.0-wmf.5; 2025-12-02), OKR-Work, Parsoid-Read-Views (Large Wikipedias), Content-Transform-Team (Work In Progress)
cscott created T410919: Allow ParserOutputAccess to generate (and cache) postprocessed output for use in Article read views.
Mon, Nov 24, 5:01 PM · MW-1.46-notes (1.46.0-wmf.7; 2025-12-16), Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Performance), OKR-Work
cscott created T410916: Allow requesting postprocessed output for some/many/most/all APIs which accept a ParserOption (in some form) and emit a ParserOutput (in some form).
Mon, Nov 24, 4:58 PM · Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Performance), OKR-Work
cscott added a comment to T409767: Bad token gluing with class={{tablabonita}} on Quecha wiki (quwiki).

I've resolved this broken markup on all pages on qu.wikipedia.org.

Mon, Nov 24, 4:45 PM · OKR-Work, Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Small Size Wikipedias)
cscott closed T408631: Parsoid renders {{legislationuk}} incorrectly as Resolved.
Mon, Nov 24, 4:43 PM · OKR-Work, Content-Transform-Team (Work In Progress), Parsoid, Parsoid-Read-Views (Small Size Wikipedias)
cscott moved T408631: Parsoid renders {{legislationuk}} incorrectly from Backlog to Code Review on the Content-Transform-Team (Work In Progress) board.
Mon, Nov 24, 4:42 PM · OKR-Work, Content-Transform-Team (Work In Progress), Parsoid, Parsoid-Read-Views (Small Size Wikipedias)
cscott moved T409767: Bad token gluing with class={{tablabonita}} on Quecha wiki (quwiki) from Backlog to In Progress on the Content-Transform-Team (Work In Progress) board.
Mon, Nov 24, 4:41 PM · OKR-Work, Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Small Size Wikipedias)
cscott moved T350626: Remove 'options' arguments to ParserOutput::getText() from In Progress to Backlog on the Content-Transform-Team (Work In Progress) board.
Mon, Nov 24, 4:22 PM · Parsoid-Read-Views (Performance), OKR-Work, Content-Transform-Team (Work In Progress), MW-1.44-notes (1.44.0-wmf.24; 2025-04-08), MW-1.42-notes (1.42.0-wmf.18; 2024-02-13), MediaWiki-Parser
cscott moved T409751: Lazy loading of data-mw and data-parsoid from In Progress to Code Review on the Content-Transform-Team (Work In Progress) board.
Mon, Nov 24, 4:20 PM · OKR-Work, Patch-For-Review, Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Performance)

Sat, Nov 22

cscott added a comment to T381655: FOUC when loading talk pages on mobile using Parsoid read views.

Possibly reported by a user as a dark-mode bug at https://www.mediawiki.org/wiki/Parsoid/Feedback#c-Cscott-20251122034700-Coolguyyo-20251116035900 ?

Sat, Nov 22, 3:48 AM · Editing QA, MW-1.45-notes (1.45.0-wmf.15; 2025-08-19), Editing-team (Kanban Board), DiscussionTools

Fri, Nov 21

cscott added a comment to T410675: PHPUnit test LoadBalancerTest::testNonZeroMasterLoad is flaky.

I've seen this twice today: https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1202377 and twice on https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1204727

Fri, Nov 21, 8:36 PM · MW-1.46-notes (1.46.0-wmf.4; 2025-11-25), DBA, ci-test-error (WMF-deployed Build Failure), MediaWiki-Core-Tests, MediaWiki-libs-Rdbms

Thu, Nov 20

cscott moved T410513: Parsoid behaves strangely on pages violating the Expensive Budget "expensive-parserfunction-category" from Needs Triage to Missing Functionality on the Parsoid board.
Thu, Nov 20, 3:52 PM · Parsoid-Read-Views (Phase 4 - Parsoid generates metadata needed by core), Parsoid
cscott added a project to T410513: Parsoid behaves strangely on pages violating the Expensive Budget "expensive-parserfunction-category": Parsoid-Read-Views (Phase 4 - Parsoid generates metadata needed by core).
Thu, Nov 20, 3:51 PM · Parsoid-Read-Views (Phase 4 - Parsoid generates metadata needed by core), Parsoid
cscott added a comment to T410513: Parsoid behaves strangely on pages violating the Expensive Budget "expensive-parserfunction-category".

In your example, Kategori:Halaman dengan galat skrip / https://www.wikidata.org/wiki/Q7192108 / Category:Pages with script errors is never added by Parsoid unless the legacy parser also adds that category, so that seems to be a red herring. Parsoid is doing the exact same thing as the legacy parser.

Thu, Nov 20, 3:51 PM · Parsoid-Read-Views (Phase 4 - Parsoid generates metadata needed by core), Parsoid
cscott renamed T393716: [EPIC] RefreshLinksJob should use Parsoid-generated metadata from RefreshLinksJob should use Parsoid-generated metadata to [EPIC] RefreshLinksJob should use Parsoid-generated metadata.
Thu, Nov 20, 3:50 PM · Epic, Content-Transform-Team
cscott updated the task description for T410513: Parsoid behaves strangely on pages violating the Expensive Budget "expensive-parserfunction-category".
Thu, Nov 20, 3:42 PM · Parsoid-Read-Views (Phase 4 - Parsoid generates metadata needed by core), Parsoid
cscott moved T410625: Mobile section loading transition broken by Parsoid from Uncategorized to Non-blockers (any wiki) on the Parsoid-Read-Views board.
Thu, Nov 20, 3:37 PM · Editing QA, MW-1.46-notes (1.46.0-wmf.7; 2025-12-16), Readers Essential Work 2025 (Parsoid roll out to Wikipedias), Reader Growth Team, Parsoid (Tracking), Editing-team (Kanban Board), VisualEditor-MediaWiki-Mobile, VisualEditor, Regression, Parsoid-Read-Views
cscott added a subtask for T380517: Make Parsoid language conversion into an OutputTransform pass: T400140: Existed links render as redlinks in Template.
Thu, Nov 20, 3:32 PM · Content-Transform-Team (Work In Progress), Parsoid-Read-Views (Language Converter Support), OKR-Work
cscott added a parent task for T400140: Existed links render as redlinks in Template: T380517: Make Parsoid language conversion into an OutputTransform pass.
Thu, Nov 20, 3:32 PM · OKR-Work, Parsoid-Read-Views (Language Converter Support), Content-Transform-Team (Work In Progress), Parsoid
cscott added a project to T405698: Add an additional class to the body tag showing Parsoid usage: Essential-Work.
Thu, Nov 20, 3:29 PM · Essential-Work, Content-Transform-Team (Work In Progress), MW-1.45-notes (1.45.0-wmf.23; 2025-10-14), Parsoid, Parsoid-Read-Views
cscott closed T405698: Add an additional class to the body tag showing Parsoid usage as Resolved.
Thu, Nov 20, 3:29 PM · Essential-Work, Content-Transform-Team (Work In Progress), MW-1.45-notes (1.45.0-wmf.23; 2025-10-14), Parsoid, Parsoid-Read-Views
cscott renamed T394662: Parsoid's AttributeExpander doesn't stringify \n# correctly (which can appear in CSS styles) from Parsoid's AttributeExpander doesn't stringify \n# correctly (which appears in CSS rules) to Parsoid's AttributeExpander doesn't stringify \n# correctly (which can appear in CSS styles).
Thu, Nov 20, 3:27 PM · Parsoid, Parsoid-Read-Views
cscott renamed T394662: Parsoid's AttributeExpander doesn't stringify \n# correctly (which can appear in CSS styles) from Parsoid eliminate # in CSS rules to Parsoid's AttributeExpander doesn't stringify \n# correctly (which appears in CSS rules).
Thu, Nov 20, 3:27 PM · Parsoid, Parsoid-Read-Views
cscott added a comment to T408322: Request to add crh-RO to language selector of crhwiki.

That drop down lists the language converter variants. If you want this to be only an interface language, that's the drop down in user preferences that selects the user language (including variant).

Thu, Nov 20, 3:22 PM · Language and Product Localization, MediaWiki-Language-converter, Content-Transform-Team, Wikimedia-Site-requests
cscott added a comment to T410346: Android app doesn't honour DISPLAYTITLE.

See T324431: Parsoid: displaytitle HTML now appearing in <title> element rather than page title: Parsoid puts the display title in the <title> element, the app just needs to read it from there. (It's also in the ParserOutput and in a <meta> tag I believe.)

Thu, Nov 20, 3:16 PM · Essential-Work, Content-Transform-Team, Wikipedia-Android-App-Backlog
cscott added a comment to T410346: Android app doesn't honour DISPLAYTITLE.

The information is present in Parsoid output, the issue is that the Android app doesn't consult the displaytitle when creating the heading on the page.

Thu, Nov 20, 3:13 PM · Essential-Work, Content-Transform-Team, Wikipedia-Android-App-Backlog