All,

TL;DR:
* References made using Cite will be configurable with a different system
* New approach being prototyped in Parsoid's native implementation of the
Cite extension

The Cite extension[0], which provides in-page footnotes is a crucial part
of how many of us use wikis, especially for Wikipedias. However, it was
written a very long time ago, even by MediaWiki standards, and in its
creation, we made some design choices which made sense at the time, but
don't work very well for us anymore.  As CSS has gotten more features, and
those features have become more reliably implemented in modern browsers, we
have more choices now.

One of the great things about the Cite extension is its flexibility, such
as each wiki being able to choose how the footnotes display to readers.
Unfortunately, the means by which this flexibility is provided is currently
done through a series of 14 different MediaWiki namespace wikitext messages
which are interpreted to create the HTML to display to the user.

This has a number of disadvantages. Most wikis use the default values (and
even very experienced users are probably unaware of how it works or even
that it can be changed).  Because they are implemented in wikitext,
per-user changes such as with a gadget or a user script aren't possible to
do neatly (and instead need JavaScript to re-write the content, which is
slower and more complex), and changes take up to 30 days to be visible to
anonymous users whilst they wait for the cache to change. Due to how
MediaWiki's messages system works, changes to the display styles need to be
copied into each of the ~300 display languages for users, else those users
with different languages will see different reference styles on the same
page. Any system that wishes to display MediaWiki references has to
implement most of MediaWiki just to format these references correctly.

To fix this, the Parsoid and editing teams are proposing to replace the
current way to configure the Cite extension with some CSS rules, which will
solve these issues. Experimenting will be much easier to do on a per-user
or gadget-basis in advance of making larger changes. Styles will be shared
by all users of the wiki, regardless of their preferred language, and
complicated user scripts or gadgets that slow down the system will not be
needed to change the style. Changes will be instant for all users, even
those logged out, and non-MediaWIki users can use styles to correctly and
consistently display references. A currently-under-review patch[1] for
Parsoid demonstrates use of CSS to do variations found on enwiki, eswiki,
and fawiki. We think that this approach will allow us to match each of the
current styles used on Wikimedia wikis. If there is any variation
(currently in use) that we should experiment with, please let us know.

We plan to continue to prototype this approach in Parsoid and work through
any rendering issues. Given that most Wikimedia wikis don't customize the
extension, for most Wikimedia wikis, we expect this will work with the
basic configuration (and for a few Wikipedias which need different
configuration, we will add styling). Once we port this solution over to the
master branch of the Cite extension, this will be a breaking configuration
change in the MediaWiki 1.25 release.  If you have a gadget or user script
which changes how references appear or relies on something local to your
wikis, you may need to tweak it.

Given that older browsers (IE6 and IE7 most notably) may not implement the
CSS features that we need for this, we don't plan to rely solely on a
CSS-based approach. Our current approach is to use a default bare HTML
style on browsers that don't support content generation (like ::after and
counters).

We invite your comments, feedback, and help with this.
Thanks,
Marc, Parsoid and Editing teams.

[0] – https://www.mediawiki.org/wiki/Extension:Cite
[1] – https://gerrit.wikimedia.org/r/#/c/170936/
_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to