resourceloader 2 - wikimedia · • focus on front-end performance. berlin hackathon 2012...

61
BERLIN HACKATHON 2012 Roan Kattouw - Timo Tijhof - [[User:Catrope]] [[User:Krinkle]] ResourceLoader 2 The Future of Gadgets

Upload: others

Post on 16-Jul-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Roan Kattouw - Timo Tijhof -

[[User:Catrope]][[User:Krinkle]]

ResourceLoader 2The Future of Gadgets

Page 2: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

What are Gadgets ?

Page 3: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

What are Gadgets ?

• Extra functionality created by users (javascript / css)

Page 4: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

What are Gadgets ?

• Extra functionality created by users (javascript / css)

• Wiki pages

Page 5: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

What are Gadgets ?

• Extra functionality created by users (javascript / css)

• Wiki pages

• Overview on [[Special:Gadgets]]

Page 6: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

What are Gadgets ?

• Extra functionality created by users (javascript / css)

• Wiki pages

• Overview on [[Special:Gadgets]]

Page 7: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Workflow & Issues

Page 8: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Script creation and editing

Page 9: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Script creation and editing

• MediaWiki-namespace

[[MediaWiki:Gadget-Example.js]]

Page 10: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Script creation and editing

• MediaWiki-namespace

[[MediaWiki:Gadget-Example.js]]

• Requires 'editinterface' (administrators-only by default)

Page 11: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Management

Page 12: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Management

• Properties are stored at [[MediaWiki:Gadgets-definition]]

Page 13: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Management

• Properties are stored at [[MediaWiki:Gadgets-definition]]

• Create/remove by editing the list syntax

Page 14: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Management

• Properties are stored at [[MediaWiki:Gadgets-definition]]

• Create/remove by editing the list syntax

• Worse than wikitext

Page 15: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Management

• Properties are stored at [[MediaWiki:Gadgets-definition]]

• Create/remove by editing the list syntax

• Worse than wikitext

Page 16: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Management

Page 17: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Management

Page 18: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Translation

Page 19: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Translation

• Some solutions exist,invented by the community

Page 20: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Translation

• Some solutions exist,invented by the community

Page 21: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Translation

• Some solutions exist,invented by the community

• No native handling for localization

Page 22: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Sharing

Page 23: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Sharing

• No native way to load gadgets from another wiki

Page 24: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Sharing

• No native way to load gadgets from another wiki

• Community workarounds

Page 25: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Sharing

• No native way to load gadgets from another wiki

• Community workarounds

• Export/import feature incomplete(requires post-import manual fix-ups)

Page 26: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Sharing

Page 27: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Sharing

Page 28: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Sharing

Page 29: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

FutureGadgets 2.0

Page 30: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

ResourceLoader

Page 31: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

ResourceLoader

• Focus on front-end performance

Page 32: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

ResourceLoader

• Focus on front-end performance

• Access to interface messages

Page 33: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

ResourceLoader

• Focus on front-end performance

• Access to interface messages

• JavaScript libraries (jQuery & MediaWiki.js)

Page 34: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

ResourceLoader

• Focus on front-end performance

• Access to interface messages

• JavaScript libraries (jQuery & MediaWiki.js)

• Cross-wiki modules (foreign module source)

Page 35: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

ResourceLoader

• Focus on front-end performance

• Access to interface messages

• JavaScript libraries (jQuery & MediaWiki.js)

• Cross-wiki modules (foreign module source)

var $button = jQuery( ‘<div>’, {id: ‘mw-example-button’,text: mw.msg( ‘gadget-example-button’ )

} );

$button.on( ‘click’, function ( e ) {jQuery( ‘#mw-panel’ ).fadeOut();

} );

Page 36: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Editing

Page 37: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Editing

• [[MediaWiki:Gadget-Example.js]] → [[Gadget:Example.js]]

Page 38: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Editing

• [[MediaWiki:Gadget-Example.js]] → [[Gadget:Example.js]]

• Permissions separate from MediaWiki namespace

Page 39: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Management

Page 40: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Management

• [[MediaWiki:Gadgets-definition]] → [[Special:Gadgets]]

Page 41: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Management

• [[MediaWiki:Gadgets-definition]] → [[Special:Gadgets]]

• [[Gadget definition:Example.js]]

Page 42: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Management

• [[MediaWiki:Gadgets-definition]] → [[Special:Gadgets]]

• [[Gadget definition:Example.js]]

• Permissions separate from MediaWiki namespace

Page 43: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Page 44: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Page 45: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Localization

Page 46: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Localization

• Uses MediaWiki core localization framework

Page 47: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Localization

• Uses MediaWiki core localization framework

• Easy access through mw.message

Page 48: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Localization

• Uses MediaWiki core localization framework

• Easy access through mw.message

• Basic parsing ($1, {{SITENAME}}, {{PLURAL:}}, ..)

Page 49: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Localization

• Uses MediaWiki core localization framework

• Easy access through mw.message

• Basic parsing ($1, {{SITENAME}}, {{PLURAL:}}, ..)

--- [[MediaWiki:Gadget-example-welcome]]Hello $1, welcome back!

--- [[Gadget:Example.js]]mw.msg( ‘gadget-example-welcome’, mw.user.name() );

// “Hello Krinkle, welcome back!”

Page 50: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Using other modules

Page 51: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Using other modules

• Gadgets can “use” other modules

Page 52: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Using other modules

• Gadgets can “use” other modules

• Re-use commonly needed utilities

Page 53: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Using other modules

• Gadgets can “use” other modules

• Re-use commonly needed utilities

• Dependencies

Page 54: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Using other modules

• Gadgets can “use” other modules

• Re-use commonly needed utilities

• Dependencies

var t = new mw.Title( ‘image: an_example.jpg’ );

t.getNamespacePrefix(); // “File:”t.getMainText(); // “An example.jpg”t.getUrl(); // “/wiki/File:An_example.jpg”

Page 55: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Duplication Sharing

Page 56: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Duplication Sharingmediawiki.org

Page 57: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Duplication Sharingmediawiki.org

Page 58: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Duplication Sharingnl.wikipedia.org

Page 59: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Duplication Sharingnl.wikipedia.org

Page 60: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Demo

Page 61: ResourceLoader 2 - Wikimedia · • Focus on front-end performance. BERLIN HACKATHON 2012 ResourceLoader ... • Uses MediaWiki core localization framework

BERLIN HACKATHON 2012

Roan Kattouw - Timo Tijhof -

[[User:Catrope]][[User:Krinkle]]

ResourceLoader 2The Future of Gadgets

mediawiki.org/wiki/RL2TEST