Page MenuHomePhabricator

Grunge, or "zoom"
Open, Needs TriagePublic


The problem

Wikitext as currently implemented is well-nigh unspecifiable. It is an untidy mix of organically-grown implementation (without clear divisions between functionality), obscure corner cases and workarounds, and bugs.

"Grunge" (or, Xtensible Wiki Markup, xwm, pronounced "zoom") is an attempt to find a clean specification for wikitext which looks as much as possible like current wikitext. Goals are:

  • A grammar that fits on a single sheet of paper, with
  • No backtracking,
  • Regular syntax for links and templates,
  • A way to represent any conforming HTML document, and
  • Appearance as similar to current wikitext as possible.

The implementation is based on the Parsoid Mediawiki DOM spec and round trips using selser. Existing wikitext can be converted to DOM using Parsoid and then converted from there to "grunge" in order to allow "power user" editing. Eventually the primary representation in the DB could be shifted to grunge.

Expected outcome

Grow mindshare for cleaning up wikitext; cover a variety of corners of the wikitext spec and determine consensus on which changes to wikitext are acceptable to editors.

Current status of the discussion

There are a number of alternative markup proposals, including:

  • subbu's "wikitext 2.0"
  • markdown, restructured text, etc
  • attempting to write a complete spec for wikitext

A prototype implementation of grunge has been developed, which has informed some of the design choices. The prototype can convert the "Barack Obama" article from Parsoid DOM to grunge, validating that the result definitively still "looks like wikitext".


Event Timeline

Qgil added a subscriber: Qgil.

Can you add projects/tags related to the topics discussed, please?

This comment was removed by Siznax.

This proposal seems to have enough interests, but there is no discussion so far. I am moving it to "on track" for now, but all pre-scheduled sessions are supposed to have ongoing discussions.

@cscott Hey! As developer summit is less than four weeks from now, we are working on a plan to incorporate the ‘unconference sessions’ that have been proposed so far and would be generated on the spot. Thus, could you confirm if you plan to facilitate this session at the summit? Also, if your answer is 'YES,' I would like to encourage you to update/ arrange the task description fields to appear in the following format:

Session title
Main topic
Type of activity
Description Move ‘The Problem,' ‘Expected Outcome,' ‘Current status of the discussion’ and ‘Links’ to this section
Proposed by Your name linked to your MediaWiki URL, or profile elsewhere on the internet
Preferred group size
Any supplies that you would need to run the session e.g. post-its
Interested attendees (sign up below)

  1. Add your name here

We will be reaching out to the summit participants next week asking them to express their interest in unconference sessions by signing up.

To maintain the consistency, please consider referring to the template of the following task description:

Re-opening, to stand for the idea of a cleaner wikitext 2.0 syntax, which keeps coming up from time to time. The desired properties in the task description are still valid.

This task has been assigned to the same task owner for more than two years. Resetting task assignee due to inactivity, to decrease task cookie-licking and to get a slightly more realistic overview of plans. Please feel free to assign this task to yourself again if you still realistically work or plan to work on this task - it would be welcome!

For tips how to manage individual work in Phabricator (noisy notifications, lists of task, etc.), see for available options.
(For the records, two emails were sent to assignee addresses before resetting assignees. See T228575 for more info and for potential feedback. Thanks!)