Handleiding:Vormgeving (skin)
Het maken van een skin is een goede manier om vertrouwd te raken met de interne werking van MediaWiki en om uw bijdragen aan de Wikimedia-beweging te starten! Als u bekend bent met de front-end technologieën van CSS, JavaScript en JSON, kunt u een MediaWiki skin maken! Het is niet nodig om PHP te kennen, maar het kan helpen als u iets geavanceerd wilt doen.
Hoewel het niet essentieel is, zal het helpen als u bekend bent met LESS CSS. Deze tutorial gaat ervan uit dat u een werkende versie van MediaWiki heeft geïnstalleerd en de huidige ontwikkelingsrelease gebruikt, zo niet, dan is het aan te raden om dat eerst te doen.
Als u een bestaande skin heeft die de PHP BaseTemplate gebruikt, is deze handleiding niet voor u geschikt. Bekijk dan deze Handleiding Omzetten van op SkinTemplate gebaseerde skins naar SkinMustache.
Voorbereiding
De ontwikkeling van een skin zal een stuk eenvoudiger zijn met kennis van Mustache-sjablonen.
U moet ten minste bekend zijn met de volgende Mustache-basiskennis beschreven in het onderstaande voorbeeld:
{{ str }} <!-- renders escaped string -->
{{{ html-str }}} <!-- renders RAW HTML -->
<!-- accesses data inside an associative array of the form { 'key' => 'hello' } -->
{{#array-data}}
{{ key }} <!-- renders hello -->
{{/array-data}}
<!-- for boolean values -->
{{#is-talk-page}}
<!-- conditional rendering if is-talk-page is true -->
{{/is-talk-page}}
Een skin is verantwoordelijk voor het weergeven van de inhoud aan de gebruiker - de HTML binnen de tag BODY. Het kan niet iets in de HEAD bewerken. De code wordt automatisch gegenereerd voor de skin, zodat de skin zich kan concentreren op presentatie. Als u de HEAD moet wijzigen, dit wordt beschouwd als buiten het bereik van de skin, gebruik dan hooks, extensies of configuratie om dat te doen lees de veelgestelde vragen voor aanpakken hoe zoiets te doen.
Om te beginnen
Om uw eerste skin te maken, raden we de volgende opties aan.
Optie 1 - Fork maken van skin Example
De skin Example https://github.com/wikimedia/mediawiki-skins-Example biedt een kale implementatie van een skin. Kloon de repository in uw map met skins, zorg ervoor dat de map "Example" heet en voeg het volgende toe aan uw LocalSettings.php:
wfLoadSkin( 'Example' );
Als alles volgens plan is gegaan, moet de skin beschikbaar zijn op de Special:Preferences pagina van uw wiki.
Optie 2 - Gebruik het skins lab
Met het hulpmiddel skins lab kunt u een skin instellen met basis CSS en sjablonen. Als u eenmaal tevreden bent met de opzet, klikt u op "Download as ZIP" die de nodige boiler-plate voor uw skin samenstelt. Hopelijk is het in de resulterende repository gemakkelijk om te navigeren. Als u de ZIP heeft gedownload, plaatst u deze in uw MediaWiki skins map en wijzig LocalSettings.php met het volgende:
wfLoadSkin( 'FolderName' );
Als alles volgens plan is gegaan, moet de skin beschikbaar zijn op de Special:Preferences pagina van uw wiki.
Optie 3 - Met de commando-regel
cd mediawiki/skins
npm install mediawiki-skins-cli
npx create-mw-skin SkinName
cd SkinName
Als u de ZIP heeft gedownload, plaats het in uw MediaWiki skins map en wijzig bestand LocalSettings.php met het volgende:
wfLoadSkin( 'SkinName' );
After installing navigate to MediaWiki with ?useskin=skinname on the URL to see your skin.
To explore the data available to the Mustache template add ?useskin=json (example).
Bekend maken aan de gebruikers!
Een skin met andere mensen maken zal leuker zijn en ook veel gemakkelijker! Als u eenmaal iets nuttigs heeft, overweeg het dan te publiceren op GitHub of Gerrit . Zodra de code openbaar beschikbaar is, moet u een skin-pagina aanmaken (zorg ervoor dat u de titel verandert!) om mensen te laten weten dat u openstaat voor samenwerking!
Het aanmaken van een wiki-pagina heeft vele andere voordelen. U zult in staat zijn om bug-rapporten in Phabricator of GitHub problemen af te handelen en patches te ontvangen van andere vrijwilligers in de MediaWiki gemeenschap. Iemand zou u ook kunnen helpen met het maken van de vertaling.
Mustache
In versie 1.35 hebben we ondersteuning voor Mustache in skins toegevoegd. We vonden dat het gebruik van Mustache zeer nuttig was bij de ontwikkeling van de Skin:Minerva en Skin:Vector skins omdat het u toestaat om gegevens te scheiden van presentatie. Delen van Mustache kunnen worden gebruikt om sjablonen opnieuw te gebruiken. Om een gedeeltelijke Partial.mustache in MediaWiki te gebruiken, voeg deze gewoon toe aan de map waarin u werkt en verwijs naar ze met de {{>Partial}} in het hoofdsjabloon skin.mustache.
De gegevens die worden verzonden naar Mustache-schablonen zijn relatief flexibel. Als er iets ontbreekt, kunt u PHP gebruiken om gegevens toe te voegen door de functie SkinMustache ::getTemplateData uit te breiden.
De skin SkinJson kan worden toegevoegd aan een MediaWiki-ontwikkelingsinstantie, om de gegevens te inspecteren die beschikbaar zijn voor skins. Merk op dat arrays een prefix hebben van "array-", booleans hebben er een van "is-" en objecten een van "data-" om u te helpen de gegevens waarmee u werkt te conceptualiseren.
De beschikbare gegevens, en in welke MediaWiki-versies deze beschikbaar zijn, is gedocumenteerd op SkinMustache.php.
Skin vertaalbaar maken (i18n)
In skin.json onder ValidSkinNames kunt u de optie 'messages' gebruiken om vertaalbare berichtsleutels te definiëren.
Deze sleutels moeten overeenkomen met de gegevens in de map i18n/en.json .
Eenmaal geregistreerd voor de skin, zijn deze beschikbaar in uw sjabloon met een voorvoegsel msg-
.
"example": {
"class": "SkinMustache",
"args": [ {
"name": "example",
"messages": [
"sitetitle",
"search",
"tagline",
"navigation-heading"
]
} ]
}
Bijvoorbeeld, het bericht "sitetitle" kan worden weergegeven in een sjabloon Mustache met behulp van:
<p>{{msg-sitetitle}}</p>
Zie Lokalisatie waarom dit belangrijk is.
Opbouwen van delen van sjabloon
Voor het opbouwen van verschillende delen van de skin en om het probleem van het hebben van een groot, niet onderhoudbaar skin.mustache bestand te vermijden, kunnen de sjabloondelen worden gebruikt. In het volgende voorbeeld wordt de inhoud van de sjablonen in de 3 bestanden met de bestandsnamen Logo.mustache, Content.mustache en Footer.mustache door de skin opgebouwd. Deze bestanden moeten in dezelfde map staan als het skin.mustache bestand of een submap van de map met skin.mustache.
{{>subfolder/Logo}}
{{>Content}}
{{>Footer}}
Sjabloondelen zijn een geweldige manier om uw skin beter leesbaar te maken. Er zijn vooraf geen sjabloongedeeltes gedefinieerd of standaard beschikbaar, maar u kunt wel kijken naar bestaande skins met SkinMustache voor inspiratie.
Lees meer over Mustache-sjabloondelen.
Logo.mustache
De volgende code wordt gebruikt om het logo van de site weer te geven in de skin van Example en u zult hetzelfde zien als u de skin maakt van SkinLabs.
<!-- Logo.mustache -->
<div id="p-logo" class="mw-portlet" role="banner">
<a href="{{link-mainpage}}">
{{#data-logos}}
{{#icon}}<img src="{{.}}" width="40" height="40">{{/icon}}
{{#wordmark}}<img src="{{src}}" width="{{width}}" height="{{height}}">{{/wordmark}}
{{^wordmark}}<h1>{{msg-sitetitle}}</h1>{{/wordmark}}
{{/data-logos}}
</a>
</div>
Uit deze code is de volgende regel verantwoordelijk voor het tonen van het logo `icon`:
{{#icon}}<img src="{{.}}" width="40" height="40">{{/icon}}
Deze regel gaat ervan uit dat er een key icon
in het array $wgLogos is.
Dus in uw bestand LocalSettings.php, als er een regel is die vergelijkbaar is met $wgLogos = [ 'icon' => "$wgResourceBasePath/resources/assets/wiki.png" ];
, dan wordt het logo (icoon) weergegeven.
De standaard MediaWiki LocalSettings.php
exporteert een 1x
key het array $wgLogos
.
Om het logo te laten zien moet u de LocalSettings.php bijwerken en een key icon
toevoegen.
resources/assets/wiki.png
. Omdat het weer wordt veranderd in de standaard, wanneer u de MediaWiki gaat updaten bij een nieuwe versie. De aanbevolen manier om het logo te veranderen is om een nieuw bestand toe te voegen en dat pad toe te voegden aan de LocalSettings.php.
Menu's opbouwen met Mustache
Alle menu's zijn gestructureerd in hetzelfde formaat (PortletData). Een sjabloon Menu.mustache toegevoegd aan dezelfde map als skin.mustache kan daarom worden gebruikt om een menu te genereren.
<nav id="{{id}}" class="{{class}}" title="{{html-tooltip}}"
aria-labelledby="{{id}}-label">
<input type="checkbox" aria-labelledby="{{id}}-label" />
<h3 id="{{id}}-label" {{{html-user-language-attributes}}}>{{label}}</h3>
<div class="mw-portlet-body">
<ul {{{html-user-language-attributes}}}>
{{{html-items}}}
</ul>
{{{html-after-portal}}}
</div>
</nav>
Als u dit deel gebruikt, moet u echter vertellen welk menu HTML moet worden gegenereerd.
Binnen skin.mustache zou het volgende het menu opbouwen van talen en weergaven.
{{! Switch template context to data for all menus }}
{{#data-portlets}}
{{! Access the menu called "languages" }}
{{#data-languages}}
{{>Menu}}
{{/data-languages}}
{{! Access the menu called "views" }}
{{#data-views}}
{{>Menu}}
{{/data-views}}
{{/data-portlets}}
Dropdown-velden en submenu's opbouwen
Ontwerpers van skins kunnen ook de Mustache-syntaxis gebruiken om dropdownmenu's te maken van de elementen die eerder in de zijbalk van de skins Vector en MonoBook stonden. Dat is echter wat lastiger, maar het begrijpen van de manier waarop de elementen worden opgeslagen kan helpen.
Het eerste zijbalk-element - meestal met de link naar de hoofdpagina en andere MediaWiki-links - wordt via de aanroep {{#data-portlets-sidebar.data-portlets-first}}
weergegeven.
De volgende menu's worden echter opgeslagen in het array {{#data-portlets-sidebar.array-portlets-rest}}
en kunnen worden weergegeven door dit aan te roepen.
Zo kan men bijvoorbeeld de volgende syntaxis gebruiken:
{{#data-portlets-sidebar.array-portlets-rest}}
<div class="mw-dropdown-title"><span>{{label}}</span>
<div class="dropdown-content">{{>Portlet}}</div></div>
{{/data-portlets-sidebar.array-portlets-rest}}
Als CSS wordt toegepast om "dropdown-content" te verbergen tot "mw-dropdown-title" erover wordt gesleept, wordt er dan dus een dropdown-menu gecreëerd.
De inhoudsopgave uitschakelen
In MediaWiki 1.38, kunt u de inhoudsopgave uit het artikel verwijderen en buiten het inhoudsgebied plaatsen. Om de generatie van de inhoudsopgave uit te schakelen, voeg het volgende toe aan skin.json:
{
"ValidSkinNames": {
"notocskin": {
"class": "SkinMustache",
"args": [
{
"name": "notocskin",
"toc": false
}
]
}
}
}
De sjabloon-sleutel array-sections kan worden gebruikt voor het opbouwen van de inhoudsopgave.
Meer voorbeelden
Om voorbeelden te zien van sjabloondelen die in uw project kunnen worden gebruikt, kunt u de voorbeelden bekijken in de Wikimedia skins labs.
Scripts en styles
Standaardwaarden
Een skin vereist minimaal een single style ResourceLoader module die is gedefinieerd in het bestand skin.json van uw skin. Het zal er ongeveer zo uitzien:
"ResourceModules": {
"skins.example": {
"class": "ResourceLoaderSkinModule",
"features": { "normalize": true },
"styles": [ "resources/skins.example.less" ]
}
},
De functies-key waarmee u een boilerplate kunt gebruiken met een verscheidenheid van dingen, waaronder i18n en normaliseren, is gedocumenteerd in de MediaWiki core php documentatie. De functies-key kan een array keys zijn (opt-in-beleid) of in MediaWiki 1.36 een associatieve reeks (opt-outbeleid, aanbevolen). Als u niet zeker bent, laat dan de functies-key weg om de aanbevolen standaardwaarden te gebruiken.
CSS / LESS
De skin.json is een manifest van alle assets die uw skin gebruikt.
Onder de 'ResourceModules'-toets zou u de stijlmodule voor uw skin moeten vinden in de lijst die onder 'skins.example' staat.
Hier kunt u onder de "styles"-toets LESS- of CSS-bestanden toevoegen.
Ze zullen worden geladen in de volgorde van de lijst.
Met LESS kunt u @import
statements gebruiken in dezelfde map.
Meer informatie over wat er mogelijk is, is te vinden in Ontwikkelen met ResourceLoader.
Wanneer u afbeeldingen gebruikt, moet u relatieve URI's kunnen gebruiken om toegang te krijgen tot de afbeeldingsitems.
MediaWiki Skin Variabelen
MediaWiki skin variabelen oorspronkelijk geïntroduceerd in MediaWiki 1.35, waren ingeschakeld voor breed gebruik sinds MediaWiki 1.41.
De lijst met beschikbare waarden is in overeenstemming met de nieuwste Codex ontwerptokens (demosite).
- Snel te implementeren ontwerp – Voor skinontwerpers bieden deze variabelen een manier om snel ontwerpkeuzes te implementeren door waarden in een platte lijst in te stellen. Via hen kunnen ontwerpers fundamentele eigenschappen wijzigen, zoals typografie (lettertypefamilie, lettergrootte, enz.), kleuren, breakpoints, borders, grootte, spacing of z-indexes. Deze eenvoudig te gebruiken lijst is gegroepeerd op CSS-eigenschappen. Het moet in de map staan met het bestand 'resources/mediawiki.less/mediawiki.skin.variables.less' zodat ResourceLoader het kan ophalen. Het naamgevingsschema volgt de MediaWiki variabelen naamgeving conventie .
- Neutrale standaardwaarden – Als een skin bepaalde waarden niet specificeert, zal het systeem terugvallen op het gebruik van de standaardwaarden van MediaWiki's eigen 'mediawiki.skin.defaults.less'. Deze waarden vertegenwoordigen een eenvoudige HTML-uiterlijk.
- Aanpassen – Hoewel u de namen van de variabelen niet kunt wijzigen, kunt u wel extra namen definiëren in afzonderlijke skin-specifieke bestanden. In elk Less-bestand kunt u de waarden van de skin importeren met
@import 'mediawiki.skin.variables.less';
- Voordelen van centralisatie – Alle definities van variabelen voor het standaardthema van Wikimedia en alle benamingen zijn gecentraliseerd voor
- het opstellen van een consistente naamgevingsconventie voor duidelijkheid en gelijkheid
- het verzekeren van de compatibiliteit tussen verschillende skins en extensies
- inzicht te geven in mogelijke gaten of verbeteringsgebieden op basis van gemeenschappelijke gebruikspatronen
Makers van skins worden aangemoedigd zich te vertrouwd te maken met deze updates om het potentieel van hun skin te maximaliseren.
Gebruik in core, skins en extensies Less bestanden
Om mediawiki.skin.variables.less variabelen of design tokens te gebruiken moet u een import statement voor uw Less-bestand toevoegen.
Voorbeeld gebruik:
@import 'mediawiki.skin.variables.less';
/* Links */
a {
color: @color-link;
}
a:visited {
color: @color-link--visited;
}
a:active {
color: @color-link--active;
}
Een belangrijk detail is dat alleen variabelen gespecificeerd in mediawiki.skin.defaults.less
opnieuw kunnen worden toegewezen met skin-specifieke waarden in het mediawiki.skin.variables.less
-bestand van de skin.
Merk op dat Vector 2022, Vector legacy en MinervaNeue-skins de twee standaard Codex-thema's gebruiken voor Wikimedia-gebruikersinterfaces, die ook worden weergegeven op de Codex-documentatiesite.
Al meer dan 45 verschillende skins en extensies gebruiken de skinvariabelen in MediaWiki 1.41.
Using CSS variables for supporting different themes e.g. dark mode
MediaWiki skin variables support both fixed and CSS variable based output. You can opt into CSS variables by adding the following line to your mediawiki.skin.variables.less
file.
@import 'mediawiki.skin.codex-design-tokens/theme-wikimedia-ui.less';
Using the default Wikimedia dark mode palette
When using CSS variables, you can make use of the mixin-night-mode-palette mixin to define a night mode palette as in this example:
@import 'mediawiki.skin.variables.less';
@import 'mediawiki.skin.codex-design-tokens/theme-wikimedia-ui-mixin-dark.less';
@import 'mediawiki.skin.codex-design-tokens/theme-wikimedia-ui-reset.less';
@media screen and ( prefers-color-scheme: dark ) {
html {
color-scheme: light dark;
.mixin-night-mode-palette();
}
}
Responsieve skins / een meta viewport toevoegen
Als u een responsieve skin maakt, moet u de optie responsive gebruiken wanneer u uw skin in skin.json definieert.
{
"ValidSkinNames": {
"my-responsive-skin": {
"class": "SkinMustache",
"args": [
{
"name": "my-responsive-skin",
"responsive": true
}
]
}
}
}
Skins compatibel maken met talen die van rechts naar links (RTL) zijn
De scripts van bepaalde talen, bijvoorbeeld het Hebreeuws, zijn rechts naar links in plaats van links naar rechts. Dit vormt een probleem voor de ontwikkelaars van skins, waarbij de interfaces worden omgedraaid, bijvoorbeeld in Vector, is de zijbalk links in plaats van rechts.
In MediaWiki is het ook mogelijk om een andere taal te gebruiken voor de skin en de inhoud. Bijvoorbeeld, in Special:Preferences kunt u uw taal in het Hebreeuws instellen terwijl de inhoud in het Engels blijft.
Het schrijven van skins die goed werken in RTL is een groot onderwerp dat buiten het bereik van dit document ligt, maar als u uw skin in RTL moet testen, moet u LocalSettings.php bijwerken om uw taal van de inhoud te veranderen:
$wgLanguageCode = "he";
Als ontwikkelaar van skins moet u twee dingen in gedachten houden:
- Elke CSS die voor uw skin is geschreven, wordt automatisch omgedraaid via het hulpmiddel CSSJanus zonder dat u er iets voor hoeft te doen, maar het kan zijn dat u sommige van die transformaties moet uitschakelen (zie Flipping (Omdraaien)).
- Alle HTML die u opbouwt die kan worden vertaald, moet worden gemarkeerd met het HTML-attribuut dir. Voor uw gemak biedt SkinMustache de sjabloonvariabele html-user-language-attributes die als volgt kan worden gebruikt:
<div
{{{html-user-language-attributes}}}
>
</div>
voor een gebruiker die zijn taal in voorkeuren als Hebreeuws heeft ingesteld, geeft het de volgende HTML-code:
<div
dir="rtl" lang="he"
>
</div>
Afbeeldingen
U kunt Manual:$wgLogos uitbreiden met welke gegevens u ook kiest. Hierdoor kunnen websitebeheerders afbeeldingen naar hun keuze configureren, maar u moet ze altijd voorwaardelijk opbouwen.
In gevallen waarin afbeeldingen om de een of andere reden hardcoded moeten zijn en geen CSS-achtergrondafbeelding of wgLogos kunnen gebruiken, moet u de gegevens uitbreiden die voor het sjabloon nodig zijn
JavaScript
JavaScript code in skins, loopt in een omgeving waar u kunt vertrouwen op de `mw` en `jQuery` objecten die zijn geladen. We raden aan ResourceLoader/Package_files te gebruiken, waardoor u bestandsactiviteiten kunt gebruiken.
Voor informatie over de beschikbare API en bibliotheken zie core JavaScript documentatie.
Meer geavanceerd
Meer geavanceerde informatie zal op verzoek worden verstrekt. Stel een vraag op de overlegpagina om de toevoeging van documentatie te versnellen!
i18n
Boodschappen die in i18n/en.json zijn gedefinieerd, kunnen rechtstreeks worden doorgegeven aan uw sjabloon Mustache door het opnemen in skin.json. Let op, dat u elk bericht dat is gedefinieerd binnen de MediaWiki core kunt gebruiken.
skin.json | i18n/en.json | skin.mustache |
---|---|---|
{
"ValidSkinNames": {
"mymustacheskin": {
"class": "SkinMustache",
"args": [
{
"name": "mymustacheskin",
"messages": [
"createaccount"
]
}
]
}
}
}
|
{
"@metadata": {
"authors": []
},
"skinname-mymustacheskin": "My Mustache Skin",
"mymustacheskin-hello": "Hello"
}
|
<div>
{{msg-mymustacheskin-hello}} <!-- prints hello in the current language -->
</div>
|
Gegevens uitbreiden
De beschikbare gegevens zijn gedocumenteerd op SkinMustache.php .
Als u extra gegevens moet toevoegen voor weergave in de sjabloon van uw skin die niet door berichten kunnen worden geleverd (zoals in de i18n-sectie), b.v. onbewerkte HTML of complexe datastructuren moet u een speciale PHP-class gebruiken en de methode SkinMustache::getTemplateData uitbreiden.
<?php
class MySkin extends SkinMustache {
/**
* Breidt de getTemplateData-functie uit om een sjabloonsleutel 'html-myskin-hello-world' toe te voegen
* die kan worden weergegeven in skin.mustache met behulp van {{{html-myskin-hello-world}}}
*/
public function getTemplateData() {
$data = parent::getTemplateData();
$data['html-myskin-hello-world'] = '<strong>Hello world!</strong>'; // of $this->msg('msg-key')->parse();
return $data;
}
}
Standaardstijl via de class SkinModule
Alle skins moeten één enkele stijlmodule definiëren met de class SkinModule . De module definieert verschillende standaardstijlen om te zorgen voor de interne werking van MediaWiki. Als u wilt, kunt u deze functies uitschakelen en uw eigen stijlen aanbieden. Definieer functies als een leeg object om uzelf te binden aan de aanbevolen MediaWiki standaarden. Een lijst met ondersteunde functies staat in onze documentatie.
Voorbeeld MediaWiki\\ResourceLoader\\SkinModule dat de functie logo uitschakelt, maar meerdere andere mogelijk maakt:
{
"skins.vector.styles": {
"class": "MediaWiki\\ResourceLoader\\SkinModule",
"features": {
"normalize": true,
"elements": true,
"content": true,
"logo": false,
"interface": true,
"legacy": true
},
"targets": [
"desktop",
"mobile"
],
"styles": [ "resources/skins.vector.styles/skin.less" ]
}
}
Integratie met andere extensies
Extensies moeten met u integreren, niet andersom! Probeer de extensies te vergeten bij het schrijven van uw skin. Skins voor extensieontwikkelaars is bedoeld voor deze ontwikkelaars om ervoor te zorgen dat ze de beste compatibiliteit krijgen. De 'starter' sjablonen hier zullen alle mogelijke UI-elementen opbouwen. Als u bepaalde gegevens weglaat, kunt u de ondersteuning door extensies verbreken.
Voor bepaalde extensies kunt u de stijlen van de standaard UI-elementen aanpassen, met name Extension:Echo/nl . Om dit te doen, lees Manual:$wgResourceModuleSkinStyles .
De inhoud van het menu aanpassen
De samenstelling van de menu's kan worden gewijzigd met behulp van 'hooks'. Bijvoorbeeld in Vector, wordt de hook SkinTemplateNavigation gebruikt om het icoon 'watch star' te verplaatsen. Wanneer u dit doet, moet u de skin waarop u werkt, niet vergeten om bijwerkingen bij andere skins te voorkomen.
Elementen in de kop van de HTML-pagina veranderen
De ontwikkelaars van skins moeten zich niet druk maken om iets in de HEAD van een document te wijzigen. Wijzigingen van de HEAD worden beter gedaan via extensies en configuratie binnen LocalSettings.php.
De volgende links kunnen nuttig zijn:
- Manual:$wgAppleTouchIcon
- Manual:$wgFavicon
- Manual:Hooks/OutputPageBodyAttributes
- Manual:$wgSkinMetaTags
Het schrijven van een extensie die zichzelf anders moet stylen, afhankelijk van de skin
Extensies kunnen gebruik maken van skin styles om skin-specifieke stijlen te verzenden met behulp van de toets skinStyles. Zie Manual:$wgResourceModuleSkinStyles .
VisualEditor compatibiliteit
Om compatibiliteit met VisualEditor te garanderen, zie deze richtlijnen.
Skins voor versie 1.35 maken
In 1.35 was de ondersteuning voor het bouwen van skins niet zo eenvoudig als in 1.36. Als u een skin voor 1.35 wilt bouwen, met behulp van de sjabloongegevens in 1.36, moet u de PHP-class SkinMustache uitbreiden. Er wordt een polyfill voor de skin Example meegeleverd.
Uw feedback is belangrijk
Als iets niet gemakkelijk is, willen we het graag gemakkelijker maken, dus uw feedback is belangrijk. Als u problemen ondervindt, dan kunt u een bugrapport indienen in de MediaWiki core skin architectuur project in Phabricator, en we zullen proberen een elegante oplossing te vinden.
Als u een vraag heeft, stel die dan op de overlegpagina. Alle vragen zijn welkom.