Currently, to make a skin, the process is like any other extension: fork Example skin, rejig to do what you want (and write your own styles and stuff, since it is a skin).Skins are the MediaWiki extensions that output all the content, This is good ineverything that it allows forcore //and// all manner of flexibilityother extensions produce, but not so good in that a lot of that flexibility needs to be actively used even for trivial/common things due to a lack of existing functions in coreand yet they are one of the least well-supported areas of MediaWiki. There's just not much there for folks to simply reuse without having to reimplement the kitchen sink by hand because it's all centred around MonoBook and Vector and that's itWe need to fix this.
Jon Robson has been working on a thing to provide a markdown abstraction layer for skin developmentAs extensions, skins have a powerful flexibility built in, able to implement pretty much anything from the ground up, but this should not be necessary for common skin functions. We need a better basis to build from, we need proper abstraction in the backend that we can expect to remain consistent in the future, too. We need proper interfaces for other extensions to hook into. We need to be able to build on top of this. We need to rethink how MediaWiki skinning is handled, from every angle. What we have may work, but not well, and not reliably, especially not when the very ways we interact with the wikis themselves are being redefined (VE, which is a very interesting step forward that was largely lost on me because I don't understand markdownSMW, but we do need something like this so that people don't need to deal with the underlying framework if they don't want to just to make what should really be a very straight-forward type of extension.echo and flow, (That was Jon,etc).
Let's fix this. right?)Let's talk. Let's come up with something actionable.
But we also need a better underlying framework to begin with,=== Background ===
* Manual: https://www.mediawiki.org/wiki/Manual:Skinning
* Tech talk on making a skin: http://www.youtube.com/watch?v=5b-8-_UpcQc
* Current default skin: https://www.mediawiki.org/wiki/Skin:Vector
* https://www.mediawiki.org/wiki/Manual:QuickTemplate (Skins implement a SkinnameTemplate, which extends BaseTemplate, which extends QuickTemplate. not in the least so the stuff on top can work properly.They also use other classes.)
Let's talk about this. Let's come up with something actionable. Let's be the heroes MediaWiki deserves, even if it doesn't technically need us. (After all, people fork Vector all the time, and it sort of works! It doesn't work very// well//, but they still do it.)=== Abstractions ===
* https://github.com/jdlrobson/SimpleSkins - a frontend abstraction for creating a skin without touching the php backend
* https://www.mediawiki.org/wiki/Extension:Bootstrap - for making skins with Twitter Bootstrap