User:Nikki/LexemeForms-SearchPage.js
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.
/* This adds links on the search results page to create new lexemes
using the Lexeme Forms tool ([[Wikidata:Wikidata Lexeme Forms]]).
It uses the languages in your Babel box to decide which templates to list.
To use it, add the following line to your common.js:
mw.loader.load("//www.wikidata.org/w/index.php?title=User:Nikki/LexemeForms-SearchPage.js&action=raw&ctype=text/javascript");
*/
(function () {
if (!mw.config.get("wgIsSearchResultPage"))
return;
var templates = {
"ast": ["asturian-noun-masculine", "asturian-noun-feminine"],
"bn": [
"bengali-noun-animate", "bengali-noun-inanimate-othervowels", "bengali-noun-inanimate-highvowels",
"bengali-noun-inanimate-consonants", "bengali-adjective-tatsama-property", "bengali-adjective-others",
"bengali-adverb", "bengali-verb", "bengali-verb-ano"
],
"br": ["breton-noun-without-mutation", "breton-noun-without-mutation-collective", "breton-adjective-without-mutation"],
"cs": [
"czech-noun-masculine-animate", "czech-noun-masculine-inanimate",
"czech-noun-feminine", "czech-noun-neuter", "czech-adverb", "czech-adjective",
"czech-verb-perfective"
],
"da": ["danish-noun-common", "danish-noun-neuter", "danish-verb"],
"de": [
"german-noun-masculine", "german-noun-feminine", "german-noun-neuter",
"german-noun-neuter-toponym", "german-noun-pluraletantum", "german-verb", "german-adverb"
],
"en": ["english-noun", "english-adverb", "english-adjective", "english-verb"],
"eo": ["esperanto-noun", "esperanto-adjective", "esperanto-verb"],
"es": ["spanish-noun-masculine", "spanish-noun-feminine", "spanish-adjective", "spanish-verb"],
"et": ["estonian-noun"],
"eu": ["basque-verb", "basque-adjective-comparative"],
"fa": ["persian-noun", "persian-verb"],
"fi": ["finnish-noun"],
"fr": ["french-noun-masculine", "french-noun-feminine", "french-adjective"],
"he": ["hebrew-noun-masculine", "hebrew-noun-feminine"],
"hy": ["armenian-noun", "armenian-noun-singulare-tantum"],
"it": ["italian-noun-feminine", "italian-noun-masculine", "italian-adjective"],
"ku": ["kurmanji-noun-feminine", "kurmanji-noun-masculine"],
"la": ["latin-noun-masculine", "latin-noun-feminine", "latin-noun-neuter"],
"ml": ["malayalam-noun"],
"nb": ["bokmål-noun-masculine", "bokmål-noun-feminine", "bokmål-noun-neuter", "bokmål-adjective", "bokmål-verb"],
"nl": ["dutch-neuter-noun", "dutch-masculine-noun", "dutch-feminine-noun", "dutch-fem2masc-noun"],
"nn": ["nynorsk-noun-feminine", "nynorsk-noun-masculine", "nynorsk-noun-neuter"],
"pl": ["polish-noun", "polish-noun-masculine-personal-with-depreciative-forms", "polish-noun-with-potential-plural-forms"],
"pt": ["portuguese-verb"],
"ru": ["russian-noun-masculine", "russian-noun-feminine", "russian-noun-neuter", "russian-noun-pluraletantum", "russian-adjective"],
"sv": ["swedish-noun-common", "swedish-noun-neuter", "swedish-verb", "swedish-absolute-adjective"],
"uk": ["ukrainian-noun-masculine", "ukrainian-noun-feminine", "ukrainian-noun-neuter", "ukrainian-noun-pluraletantum"],
}
var langs = mw.config.get("wgULSBabelLanguages");
var search = $("#searchText input").val().replace(/^L:/, "").trim();
var output = [];
var float = document.dir == "rtl" ? "left" : "right";
$.each(langs, function (i, lang) {
if (!templates[lang])
return;
$.each(templates[lang], function (j, t) {
output.push("<li><a href=\"https://lexeme-forms.toolforge.org/template/" + t + "/?form_representation=" + mw.html.escape(search) + "\">" + t + "</a></li>");
});
});
if (output.length) {
$(".mw-search-form-wrapper").after(
"<div class=\"n-lexemeforms-searchpage\" style=\"float: " + float + "; max-width: 250px; padding:5px; margin-top: 5px; border:1px solid #c8ccd1\">"
+ "<h3 style=\"padding: 0; margin: 0; font-size: 1em\">New lexeme via Lexeme Forms</h3>"
+ "<ul>" + output.join("\n") + "</ul>"
+ "</div>"
);
}
})();