Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
function makeMediaTool() { const mediaTemplate = [ { type: 'mwTransclusionBlock', attributes: { mw: { parts: [ { template: { target: { href: 'Template:Media', wt: 'Media' }, params: { 1: { wt: 'Filename.ext' } } } } ] } } }, { type: '/mwTransclusionBlock' } ]; function InsertAndOpenCommand( name, options ) { InsertAndOpenCommand.parent.call( this, name, null, null, options ); } OO.inheritClass( InsertAndOpenCommand, ve.ui.Command ); InsertAndOpenCommand.prototype.execute = function( surface, args ) { args = args || this.args; surface.getModel().getFragment().collapseToEnd().insertContent( args[0], args[1] ).select(); surface.execute( 'window', 'open', 'transclusion' ); return true; }; ve.ui.commandRegistry.register( new InsertAndOpenCommand( 'mediaCommand', { args: [ mediaTemplate, false ], supportedSelections: [ 'linear' ] } ) ); function MediaTool() { MediaTool.parent.apply( this, arguments ); } OO.inheritClass( MediaTool, ve.ui.MWTransclusionDialogTool ); MediaTool.static.name = 'media'; MediaTool.static.group = 'insert'; MediaTool.static.title = 'Media'; MediaTool.static.commandName = 'mediaCommand'; ve.ui.toolFactory.register( MediaTool ); } mw.hook( 've.loadModules' ).add( addPlugin => addPlugin( makeMediaTool ) );