User:Erutuon/scripts/showLanguageData.js
< User:Erutuon | scripts
Note – after saving, you may have to bypass your browser’s cache to see the changes.
- Mozilla / Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Command-R on a Macintosh);
- Konqueror and Chrome: click Reload or press F5;
- Opera: clear the cache in Tools → Preferences;
- Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl-F5.
- This script lacks a documentation subpage. Please create it.
- Useful links: root page • root page’s subpages • links • redirects • your own
/* jshint esversion: 6, undef: true */
/* globals $, apiWrapper, mw */
// <nowiki>
// In language categories, adds a button to show the language data as
// highlighted Lua source code.
// Data is retrieved by [[Module:User:Erutuon/show data]].
// Button is placed below the "Edit language data" link.
// Button is hidden when language data has been retrieved.
// The language code is retrieved from the data-code attribute of the table tag.
(function showLanguageDataIIFE() {
var first = $(".language-category-data th");
var languageCode = $(".language-category-info").data("code");
if (!(first && languageCode)) {
return;
}
$.getScript("//en.wiktionary.org/w/index.php?title=User:Erutuon/scripts/apiWrapper.js&action=raw&ctype=text/javascript")
.done
(function() {
var languageDataClassName = "language-data";
var p = $("<p>");
var button = $("<button>").text("Show language data");
button.on("click", function () {
if ($("." + languageDataClassName).length > 0) {
return;
}
mw.loader.using("ext.pygments").done(function () {
apiWrapper.parse("{{#invoke:User:Erutuon/show_data|main|" + languageCode + "}}", function (languageData) {
languageData = $(languageData);
languageData.addClass(languageDataClassName).css("text-align", "left").appendTo(first);
button.hide();
});
});
});
button.appendTo(p);
p.appendTo(first);
});
})();
// </nowiki>