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_templa...
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]