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)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/* Autocomplete/Dropdown list */
// Won't work with CodeEditor, but that's fine since CodeEditor won't be used for wikitext
//mw.loader.load('https://unpkg.com/textcomplete@0.13.1/dist/textcomplete.min.js');
//^Doesn't wait for it to load nor excecute
//https://api.jquery.com/jQuery.getScript/#success-callback
$.getScript( "https://unpkg.com/textcomplete@0.13.1/dist/textcomplete.min.js", function( data, textStatus, jqxhr ) {
console.log( data ); // Data returned{{Color|TLoZ Red}}
console.log( textStatus ); // Success
console.log( jqxhr.status ); // 200
console.log( "Load was performed. (Script has been loaded but not necessarily executed)" );
wikiAutocomplete();
});
function wikiAutocomplete() {
Textarea = Textcomplete.editors.Textarea;
//A negative margin on the dropdown list to offset the shift down caused by the position:relative and margin-top of the `body`
var bodyMarginTop = $('body').css("margin-top");
var TextcompleteCss = mw.util.addCSS(
'.dropdown-menu { margin-top: -'+bodyMarginTop+'; }'
);
// A 'strategy' for Template:Color
colors = {
"{{Color|TLoZ Blue}}",
"{{Color|TLoZ Green}}",
"{{Color|TLoZ Red}}"
};
window.colorStrategy = {
id: 'color',
match: /(){{Color\|([a-z0-9+\-\_\|}]*)$/, //Need the capture group...
search: function (term, callback) {
callback(Object.keys(colors).filter(function (name) {
return name.startsWith(term);
}));
},
template: function (name) {
return name;
},
replace: function (name) {
return name;
}
};
var editor = new Textarea(document.getElementById('wpTextbox1'));
var textcomplete = new Textcomplete(editor);
textcomplete.register([colorStrategy]);
}