Top Banner
Brianna Laugher Linux Users of Victoria November 2008 meeting Hacking MediaWiki (For Users) http://www.mediawiki.org/
46

Hacking MediaWiki (For Users)

May 06, 2015

Download

Technology

Brianna Laugher

Slides from this video: http://blip.tv/file/1504861

Talk given at the Linux Users of Victoria November 2008 meeting, about MediaWiki.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hacking MediaWiki (For Users)

Brianna LaugherLinux Users of VictoriaNovember 2008 meeting

Hacking MediaWiki (For Users)

http://www.mediawiki.org/

Page 2: Hacking MediaWiki (For Users)

● Me: 2005—now Wikimedia editor,   Wikimedia Commons administrator  ~ 2 years, frustrated wannabe hacker

● You: Use MediaWiki outside of   Wikimedia, comfortable  with basic editing

Who are we?

Page 3: Hacking MediaWiki (For Users)

● MediaWiki/Wikimedia● Wiki structure● Magic words, access levels● User JS/CSS – Gadgets● “Uselang” hack

Outline

Page 4: Hacking MediaWiki (For Users)

Open­source (GPL) wiki engine software (uses LAMP)

MediaWiki

Wikimedia

MediaWiki

Name of a social movement; also US charity (Wikimedia Foundation)

Page 5: Hacking MediaWiki (For Users)

● Subpages

Wiki structure

Page 6: Hacking MediaWiki (For Users)

By default only in talk, user pages

Subpages

Help:Subpages

Page 7: Hacking MediaWiki (For Users)

● Subpages● Links

Wiki structure

Page 8: Hacking MediaWiki (For Users)

Special:MostLinkedSpecial:WhatLinksHereSpecial:RecentChangesLinkedSpecial:WantedPages

Links

Help:Links

Page 9: Hacking MediaWiki (For Users)

● Subpages● Links● Categories

Wiki structure

Page 10: Hacking MediaWiki (For Users)

Categories

Help:Categories

Nine special pages for categories

Page 11: Hacking MediaWiki (For Users)
Page 12: Hacking MediaWiki (For Users)

● Subpages● Links● Categories● Templates

Wiki structure

Page 13: Hacking MediaWiki (For Users)

Page transclusion: {{foo}}<noinclude>, <includeonly>,  {{subst:foo}}Parameters

Templates

Help:Templates

Page 14: Hacking MediaWiki (For Users)
Page 15: Hacking MediaWiki (For Users)
Page 16: Hacking MediaWiki (For Users)

Special:ExpandTemplates

Page 17: Hacking MediaWiki (For Users)

Special:ExpandTemplates

Page 18: Hacking MediaWiki (For Users)

● Subpages● Links● Categories● Templates● Namespaces

Wiki structure

Page 19: Hacking MediaWiki (For Users)

“Front” page + talk page● Main, Project, Help● Template● Category● Special*● Image, Media*● MediaWiki(* = psuedo namespace)

Namespaces

Help:Namespaces

Page 20: Hacking MediaWiki (For Users)

Special:RecentChangesSpecial:SpecialPages

Special pages

Help:Special pages

Page 21: Hacking MediaWiki (For Users)

Special:UploadImage namespace ­> File (soon!)[[Image:foo.jpg]] to embed[[:Image:foo.jpg]] to link to image page,                           not embed[[Media:foo.jpg]] to link to file directly

Images (uploaded files)

Page 22: Hacking MediaWiki (For Users)

“System [interface] messages”

Edit MediaWiki: pages to overrridedefaults (sysops only)Search on Special:Allmessages to find the right message/page

MediaWiki namespace

Manual:System message

Page 23: Hacking MediaWiki (For Users)
Page 24: Hacking MediaWiki (For Users)

MediaWiki:sidebar

MediaWiki:welcomecreationMediaWiki:copyrightwarning, 2MediaWiki:searchresulttextMediaWiki:uploadtext

Interesting pages

Page 25: Hacking MediaWiki (For Users)

About the sidebar...

Manual:Interface/Sidebar

Page 26: Hacking MediaWiki (For Users)

About the sidebar...Move search box

to top for usability

Page 27: Hacking MediaWiki (For Users)

About the sidebar...MediaWiki:Mainpage

Main Page

Move search box to top for usability

Page 28: Hacking MediaWiki (For Users)

About the sidebar...MediaWiki:Mainpage

Main Page

Move search box to top for usability

Delete defaults,Add yourown links

Page 29: Hacking MediaWiki (For Users)

MediaWiki:Common.cssMediaWiki:Common.js

Monobook skin: (same for others)MediaWiki:Monobook.cssMediaWiki:Monobook.js

Look & feel

Page 30: Hacking MediaWiki (For Users)

Modify an existing one:

User:Foo/monobook.css,js

Myskin – empty to start with

Skins – roll your own

Youruser page

Name of skin.Must start with

lowercase

Page 31: Hacking MediaWiki (For Users)

“Behaviour switches”:

__NOTOC__,__TOC__#REDIRECT [[Foo]]__HIDDENCAT__ (on category pages)

Magic words

Help:Magic words

Page 32: Hacking MediaWiki (For Users)

__HIDDENCAT__

Help:Magic words

Page 33: Hacking MediaWiki (For Users)

Look like {{CAPS TEMPLATES}}Especially used in templates ­ context.● Time, revision related● Stats!{{NUMBEROFARTICLES}}{{NUMBEROFEDITS}}{{NUMBEROFUSERS}}{{PAGESINCATEGORY:Foo}}

Variables

Help:Magic words

Page 34: Hacking MediaWiki (For Users)

Special:ListGroupRights

● “Anonymous”/IP editor● (registered) User● ­> Autoconfirmed!● Sysop (==”admin”)● Bureaucrat● Bot

User access levels

Manual:User rights

Page 35: Hacking MediaWiki (For Users)

Time ­ $wgAutoConfirmAgeEdit count ­ $wgAutoConfirmCount

After passing both, User automaticallygraduates to Autoconfirmed

(On Wikipedia thought to be ~ 4 days)

Autoconfirmed?

Page 36: Hacking MediaWiki (For Users)

Semi/protection

Manual:Administrators

Page 37: Hacking MediaWiki (For Users)

Semi/protection

Manual:Administrators

AND non-

autoconfirmedusers!

Page 38: Hacking MediaWiki (For Users)

Massively simplify user JS/CSS sharing:no more copying user subpages

MediaWiki:Gadgets­definition­> New Preferences tab

JS/CSS Gadgets

Extension:Gadgets

Page 39: Hacking MediaWiki (For Users)

MediaWiki:Gadgets­definitionMediaWiki:Gadget-section-browsing-gadgets

MediaWiki:Gadget-Navigation popups

List of file namesMediaWiki:Gadget-foo.js/css

Page 40: Hacking MediaWiki (For Users)

Special:Preferences ­> Gadgets

Page 41: Hacking MediaWiki (For Users)

Gadget rec: HotCatInstead of this:[[Category:Melbourne Cricket Ground]]

Try this:

http://commons.wikimedia.org/wiki/MediaWiki:Gadget­HotCat.js

Page 42: Hacking MediaWiki (For Users)

Make your edit box less scary:Gadget rec: wikEd

http://enwp.org/WP:WIKED

Page 43: Hacking MediaWiki (For Users)

(This is not really recommended...)

Use it to make different versions of special pages, eg upload form

Uselang parameter overrides user language prefsSpecial:Upload?uselang=fr – I can see the French version of the form without changing my prefs

“Uselang” hack

http://commons.wikimedia.org/wiki/Commons:Redesigning_the_upload_form

Page 44: Hacking MediaWiki (For Users)

What if I make a link to Special:Upload?uselang=blah ?For each message 'Foo', MW checks● MediaWiki:Foo/blah (localised message) ● MediaWiki:Foo (localised default wiki lang                               message)● MessagesBlah.php file (MW defaults)

“Uselang” hack

http://commons.wikimedia.org/wiki/Commons:Redesigning_the_upload_form

Page 45: Hacking MediaWiki (For Users)

● http://mediawiki.org is half­decent now● Still lots of info on http://meta.wikimedia.org/● IRC is popular: irc://irc.freenode.net/mediawiki● MLs: mediawiki-l● Forum: http://mwusers.com/ (unofficial)

Support

Page 46: Hacking MediaWiki (For Users)

Questions?

Brianna [email protected]

These slides are dual­licensed GFDL1.2+, CC­BY­SA­3.0. Screenshots are GFDL/GPL, WMF logo is all rights reserved, MediaWiki logo is public domain. 

Thankyou!

http://brianna.modernthings.org/