http://www.mediawiki.org/wiki/User:Dantman/Skinning_system/New_skin_layout
I have some plans for a new way of laying out skins in a new skin system.
The key changes being; The creation of new region block handling in the
system (default skins typically just including a standard body region
and messages region) to replace newtalk, sitenotice, the jsmessage div,
bodytext, catlinks, and dataAfterContent (used by flaggedrevs, smw, and
other extensions). And changes to what types of navigation we support
and how dominant the location of the toolbox is.
This new layout and system will likely be done using a planned xml/html
based template syntax.
http://www.mediawiki.org/wiki/User:Dantman/Skinning_system/Monobook_template
http://www.mediawiki.org/wiki/User:Dantman/Skinning_system#xml.2Fhtml_templ…
I've thought a lot about various template languages and template
language vs. no template and ended up with the result that a xml/html
based syntax is the best. The advantage it has over all other syntaxes
is context sensitivity. As a simple advantage the fact we can
differentiate between html context, attributes, and even css url
contexts makes skins much cleaner. There are also various other parts of
the syntax that cut down on excessive php blocks. Additionally the
backwards compatibility, intelligent lang support, and autodetection of
regions are not possible without the template syntax.
Additionally the template system being built is designed differently
than our QuickTemplate, it doesn't run keys of code which it does not
need. This in particular means that things like the addition of support
for alternative types of navigation can be added without the
inefficiently of parsing navigation messages for navigation pieces which
are not used, it also starts to cut out our limitation to pre-defined
skin pieces.
----
http://www.mediawiki.org/wiki/User:Dantman/Skinning_system/Skin_examination
I would also like to eventually eliminate our three skins using the
legacy system (Nostalgia, Standard/Classic, Cologne Blue). They don't
"properly" use our SkinTemplate system and require another 930+ lines of
code dedicated to their support, full of code duplication which
repeatedly gets in the way of new features because we insist that any
change we make to the ui should be backported to also work with legacy code.
The only arguments I've seen so far for their inclusion are:
- There are people from en.wp using these skins, they'll riot if we get
rid of any old skins
- The quickbar is meant to collapse and nostalgia has no sidebar, these
are good for users with small screens.
Simple still fulfills the requirement of a functional skin without
excess css and js and Simple is not using Legacy code so it's not part
of the list trying to be killed off.
On the first one I think we need some real stats from en.wp on what skin
preferences active users have.
On the second one, I've been thinking the best way to deal with users on
small screens would be to build an alternative 'thin' version of Vector
which is laid out somewhat like nostalgia with no sidebar and a top
navigation. The opposing issue of increasingly wide monitors with less
vertical space was brought up, so I also thought about making another
fat/wide version of vector that tries to skim the content area as close
as possible to the top of the screen.
----
If you're wondering what my ideal timeline was:
- Minor improvement of footericons and footerlinks (1.18, done).
- Improvements to SkinTemplate making it much easier to use (1.18, done)
- Moving the whole legacy skin system out of the normal tree and
dropping support for use of it outside MW (1.18, done).
- Initial introduction of the new template based skin system, not quite
making it the dominant system yet (ideally 1.18).
- Dropping all legacy skins from the system (1.19)
- Migration to the use of the new skin system throughout core and
depreciation of SkinTemplate (1.19)--
~Daniel Friesen (Dantman, Nadir-Seen-Fire) [
http://daniel.friesen.name]