MediaWiki:Editor.js

Aus Joachim Camerarius (1500-1574)
Wechseln zu: Navigation, Suche

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
// Check if we're in edit mode
if ( [ 'edit', 'submit' ].indexOf( mw.config.get( 'wgAction' ) ) !== -1 ) {
    // Add a hook handler for WikiEditor toolbar
    mw.hook( 'wikiEditor.toolbarReady' ).add( function ( $textarea ) {
        $textarea.wikiEditor( 'addToToolbar', {
            sections: {
                camerarius: {
                    type: 'section',
                    label: 'Camerarius-Attribute',
                    groups: {
                        attributes: {
                            tools: {
                                // Attribute Dropdown
                                attributeSelect: {
                                    type: 'element',
                                    element: function ( context ) {
                                        // Prepare attribute options
                                        var attributes = [
                                            { value: 'Auftraggeber', label: 'Auftraggeber' },
                                            { value: 'Beeinflusser', label: 'Beeinflusser' },
                                            { value: 'Briefpartner', label: 'Briefpartner' },
                                            { value: 'Erwähnte Körperschaft', label: 'Erwähnte Körperschaft' },
                                            { value: 'Erwähnte Person', label: 'Erwähnte Person' },
                                            { value: 'Erwähnter Ort', label: 'Erwähnter Ort' },
                                            { value: 'Erwähntes Werk', label: 'Erwähntes Werk' },
                                            { value: 'Forschungsliteratur', label: 'Forschungsliteratur' },
                                            { value: 'Gesprächspartner', label: 'Gesprächspartner' },
                                            { value: 'Initiator', label: 'Initiator' },
                                            { value: 'Lehrer', label: 'Lehrer' },
                                            { value: 'Schüler', label: 'Schüler' },
                                            { value: 'Student', label: 'Student' },
                                            { value: 'Unterstützer', label: 'Unterstützer' },
                                            { value: 'Werkadressat', label: 'Werkadressat' },
                                            { value: 'Widmender', label: 'Widmender' },
                                            { value: 'Widmungsempfänger', label: 'Widmungsempfänger' },
                                            { value: 'Nachrufempfänger', label: 'Nachrufempfänger' }
                                        ];

                                        // Create menu items
                                        var menuItems = attributes.map( function( attr ) {
                                            return new OO.ui.MenuOptionWidget({
                                                data: attr.value,
                                                label: attr.label
                                            });
                                        });

                                        // Create dropdown
                                        var dropdown = new OO.ui.DropdownWidget({
                                            label: 'Attribute-Allgemein',
                                            menu: {
                                                items: menuItems
                                            }
                                        });

                                        // Add event handler for selection
                                        dropdown.getMenu().on( 'choose', function( menuOption ) {
                                            var selectedAttr = menuOption.getData();
                                            var insertText = '[[' + selectedAttr + '::]]';
                                            context.fn.insertText( insertText );
                                        });

                                        return dropdown.$element;
                                    }
                                }
                            }
                        },
                        specialButtons: {
                            tools: {
                                // Beschreibungen Button
                                beschreibungenButton: {
                                    type: 'button',
                                    label: 'Beschreibungen',
                                    icon: 'bold',
                                    action: {
                                        type: 'encapsulate',
                                        options: {
                                            pre: '{{Beschreibungen|',
                                            post: '}}'
                                        }
                                    }
                                },
                                // MBW Button
                                mbwButton: {
                                    type: 'button',
                                    label: 'MBW',
                                    icon: 'link',
                                    action: {
                                        type: 'encapsulate',
                                        options: {
                                            pre: '[https://melanchthon.hadw-bw.de/regesten.html MBW - Regesten online], Nr. ',
                                            post: ''
                                        }
                                    }
                                },
                                // Link Button
                                linkButton: {
                                    type: 'button',
                                    label: 'Verlinkung',
                                    icon: 'linkExternal',
                                    action: {
                                        type: 'encapsulate',
                                        options: {
                                            pre: '[[',
                                            post: ']]'
                                        }
                                    }
                                },
                                // Binnenverweis Button
                                binnenverweisButton: {
                                    type: 'button',
                                    label: 'Binnenverweis',
                                    icon: 'redirect',
                                    action: {
                                        type: 'encapsulate',
                                        options: {
                                            pre: '[[',
                                            post: ']]'
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        });
    });
}