Wikidata:Tools/Enhance user interface
Enhance user interface | ||
This is a list of user scripts that you can add to enhance the looks and features of Wikidata and make editing faster and more productive. Anyone is free to add their own script to this list. |
Before you install any of the scripts on this list, it is highly recommended you install User:So9q/ScriptInstaller.js so that you can easily install scripts by clicking an "Install" button on their source page. You can do so by adding this to your common.js:
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ASo9q%2FScriptInstaller.js&action=raw&ctype=text%2Fjavascript' ); // [[User:So9q/ScriptInstaller.js]]
Userscripts to aid editing
Userscripts to add basic editing features that Wikibase lacks
- Magnus Manske wrote the original: User:Magnus Manske/duplicate item.js
- DarwIn's version does not copy aliases: User:DarwIn/duplicate item.js
- So9q added a confirmation dialog to avoid accidental duplication: User:So9q/duplicate item.js
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ASo9q%2Fduplicate_item.js&action=raw&ctype=text%2Fjavascript' ); // [[User:So9q/duplicate item.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALockal%2FEditSum.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lockal/EditSum.js]]
Userscripts for more convenient editing
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AEfly%2FGadget-CreateNewItem.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Efly/Gadget-CreateNewItem.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALectrician1%2FAddStatement.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lectrician1/AddStatement.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AJoern%2FaltLabels.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Joern/altLabels.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ASo9q%2FCreateNewEntity.js&action=raw&ctype=text%2Fjavascript' ); // [[User:So9q/CreateNewEntity.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3A1Veertje%2FidentifierInput.js&action=raw&ctype=text%2Fjavascript' ); // [[User:1Veertje/identifierInput.js]]
Suggests descriptions by extracting definitions from article introductions, aliases based on what's bolded in the article introduction, and labels from the article title, and provides a mask to compare existing values with the suggestions made and the article introductions, and to review and edit them all at once. When finished, optionally the next item with no label or description can be loaded automatically, allowing fast processing of many items.
See this page for a more detailed documentation.mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AYMS%2Flabelcollect.js&action=raw&ctype=text%2Fjavascript' ); // [[User:YMS/labelcollect.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ABargioni%2FmoreIdentifiers.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Bargioni/moreIdentifiers.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AHarmonia_Amanda%2Fnamescript.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Harmonia Amanda/namescript.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AMichaelSchoenitzer%2Fquickpresets.js&action=raw&ctype=text%2Fjavascript' ); // [[User:MichaelSchoenitzer/quickpresets.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALucas_Werkmeister%2FSpeedPatrolling&action=raw&ctype=text%2Fjavascript' ); // [[User:Lucas_Werkmeister/SpeedPatrolling]]
But the main feature is that the user can input property-item pairs for repeated use. First, there is a flexible storage system, which uses cookies. After the start there is only one row for a property (p) and one for a value (q). By clicking p+ and q+ you can add as many rows as you need. If you write in a property, an item, or a short text (label) this will be saved in the cookies. That means, after checking a property-item pair, which transfers the inputs to the Wikidata datasource, you can go to the next item and what you typed into the storage system is still there and can be used again. The newest version of this tool has further an input for item descriptions. The second option is a file in the Wikidata userspace. Each user has a separate wikipage in its own userspace where they could write in some property-item pairs, which uses the tool to fill an additional selection. The address is User:your username/data. Take as example User:Goldzahn/data.
In this way data is stored until it is deleted, while the data stored in cookies last only as long as the browser is not closed.mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AGoldzahn%2Fwikidata_useful.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Goldzahn/wikidata useful.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ABargioni%2FUseAsRef.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Bargioni/UseAsRef.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AData-Complete-Gadget%2FWikidataComplete.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Data-Complete-Gadget/WikidataComplete.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AMagnus_Manske%2Fwikidata_useful.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Magnus Manske/wikidata_useful.js]]
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Base/Scripts/HaveWikibaseLabelLowercased.js&action=raw&ctype=text/javascript');
mw.loader.load('//www.wikidata.org/w/index.php?title=User%3ALuca.favorido%2Flinkypop.js&action=raw&ctype=text%2Fjavascript'); // [[User:Luca.favorido/linkypop.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AZvpunry%2FCreateNewItem.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Zvpunry/CreateNewItem.js]]
Userscripts to enhance the display of values
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AEgon_Willighagen%2Fcdkdepict_gadget.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Egon Willighagen/cdkdepict gadget.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ATeester%2FClaimMaps.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Teester/ClaimMaps.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ATeester%2FDisplayColourSwatches.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Teester/DisplayColourSwatches.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ARicordisamoa%2FDMYdates.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Ricordisamoa/DMYdates.js]]
This helps you validate the accuracy of external identifiers, provides an interface to explore further document the data present in embeds, and makes editing fun!
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALectrician1%2Fembeds.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lectrician1/embeds.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AJon_Harald_S%C3%B8by%2FPanoviewer.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Jon Harald Søby/Panoviewer.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ASeb35%2FsortValues.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Seb35/sortValues.js]]
Bamyers99_UnitsConverter_currency = 'EUR'; // AUD,BRL,CAD,CHF,CNY,DKK,EUR,GBP,INR,ISK,JPY,MXN,NOK,NZD,PLN,RUB,SEK,TRY,USD,ZAR
importScript("User:Bamyers99/UnitsConverter.js");
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ARicordisamoa%2FWikispecies.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Ricordisamoa/Wikispecies.js]]
Userscripts to link Wikidata frontends
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ARicordisamoa%2FGeneaWiki.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Ricordisamoa/GeneaWiki.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ASo9q%2Fordia-link.js&action=raw&ctype=text%2Fjavascript' ); // [[User:So9q/ordia-link.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AFnielsen%2Fscholia-link.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Fnielsen/scholia-link.js]]
Userscripts for improving data quality
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ATeester%2FCheckShex.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Teester/CheckShex.js]]
- Allows to visualise the parent classes tree thanks to the query service, allows to find the path between a class and one of its parent — useful if it seems that it’s an incorrect parent class, for example if all knives happens to be abstract object according to Wikidata)
- Provides the a link to report incorrect relationships to WikiProject Ontology for discussion with community on how to fix this.
- Detects loops in the superclass tree
- Detects if a class if a subclass is a subclass of disjoint classes, or if an instance is an instance of several classes.
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ATomT0m%2Fclassification.js&action=raw&ctype=text%2Fjavascript' ); // [[User:TomT0m/classification.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ATeester%2FConstraintSummary.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Teester/ConstraintSummary.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AJonnyJD%2Fconsistency_check.js&action=raw&ctype=text%2Fjavascript' ); // [[User:JonnyJD/consistency_check.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AFrettie%2Fconsistency_check_add.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Frettie/consistency check add.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ATeester%2FEntityShape.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Teester/EntityShape.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALectrician1%2Fmetaclass-check.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lectrician1/metaclass-check.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AGuergana_Tzatchkova_%28WMDE%29%2FMismatchFinderWidget.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Guergana Tzatchkova (WMDE)/MismatchFinderWidget.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AVvekbv%2Frecoin_id.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Vvekbv/recoin_id.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ANw520%2FQualiRef.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Nw520/QualiRef.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ARicordisamoa%2FWikidataTrust.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Ricordisamoa/WikidataTrust.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AJesseW%2Fconflicting_superclass_warnings.js&action=raw&ctype=text%2Fjavascript' ); // [[User:JesseW/conflicting_superclass_warnings.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ABargioni%2FPrefRank.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Bargioni/PrefRank.js]]
Userscripts to speed up wiki tasks
- it highlights empty ones;
- for non-empty ones, it shows how many sitelinks are already present;
- displays a link (next to edit) to tag the current RfD as done.
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ABene%2A%2Fiwconflict.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Bene*/iwconflict.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ABene%2A%2Fuserwarn.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Bene*/userwarn.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ASo9q%2FScriptInstaller.js&action=raw&ctype=text%2Fjavascript' ); // [[User:So9q/ScriptInstaller.js]]
Userscripts for displaying related Wikidata data
mw.loader.load('//www.wikidata.org/w/index.php?title=User:Ch1902/ancestry.js&action=raw&ctype=text/javascript');
To customise the options use this instead:
ancestry_opts = {
lang: 'en', // display language falls back to en
levels: 4, // number of generations to show, minimum 2, maximum 6
boxsize: 165, // width of person cells
truncate: 22 // truncate names longer than this
};
mw.loader.load('//www.wikidata.org/w/index.php?title=User:Ch1902/ancestry.js&action=raw&ctype=text/javascript');
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALectrician1%2Fdiscographies3.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lectrician1/discographies3.js]]
- on video game (Q7889):
- its expansion pack (Q209163) and video game mod (Q865493)
- the video game compilation (Q16070115) it’s on
- the remakes/remasters based on it.
- on game engine (Q193564): the games using the engine
- on video game series (Q7058673): the games of the series
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AJean-Fr%C3%A9d%C3%A9ric%2FExLudo.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Jean-Frédéric/ExLudo.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALagewi%2Fproperties.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lagewi/properties.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALectrician1%2Fqualifier-constraint-usage.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lectrician1/qualifier-constraint-usage.js]]
Userscripts to display related Wikimedia content
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AStevenliuyi%2Fdepicts.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Stevenliuyi/depicts.js]]
importScript( 'User:Bargioni/WikiBridge_conf.js' );
importScript( 'User:Bargioni/WikiBridge.js' );
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ABargioni%2FWikiBridge.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Bargioni/WikiBridge.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ASuccu%2Ftaxobox.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Succu/taxobox.js]]
Userscripts for displaying related external data about the item
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALagewi%2Fbibliography.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lagewi/bibliography.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALectrician1%2Fmusica.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lectrician1/musica.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AMxn%2Foverpass.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Mxn/overpass.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALagewi%2Freferences.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lagewi/references.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3A1hangzhao%2FProVe.js&action=raw&ctype=text%2Fjavascript' ); // [[User:1hangzhao/ProVe.js]]
Userscripts for key shortcuts
- Press the key t or the ☰-icon on the bottom-right to toggle a sticky menu that allows you to jump to a statement
- If there are a lot of values for one property it will add arrows that allow you to jump to the first/last value.
- With the keys j and k you can jump to the next/previous statement.
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AMichaelSchoenitzer%2Fupdown.js&action=raw&ctype=text%2Fjavascript' ); // [[User:MichaelSchoenitzer/updown.js]]
Userscripts that enhance Wikibase
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALectrician1%2Ffilter-watchlist-languages.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lectrician1/filter-watchlist-languages.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AZvpunry%2FWikibaseEcho.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Zvpunry/WikibaseEcho.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALectrician1%2FSplitWatchlist.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lectrician1/SplitWatchlist.js]]
Userscripts that enhance MediaWiki
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AYair_rand%2FDiffLists.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Yair rand/DiffLists.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALectrician1%2FDiscuss.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lectrician1/Discuss.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ATeester%2FHoverDiff.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Teester/HoverDiff.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ATomodachi94%2Fping_all_users_involved_in_discussion.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Tomodachi94/ping all users involved in discussion.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALectrician1%2FUserContributionsHeaderLink.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lectrician1/UserContributionsHeaderLink.js]]
Other userscripts
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ARicordisamoa%2FInterwikiList.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Ricordisamoa/InterwikiList.js]]
{{Q|...}}
or {{P|...}}
templates. Works in descriptions and in Wikidata usage instructions (P2559) statements.mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AJon_Harald_S%C3%B8by%2FlinkItemsInDescriptions.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Jon Harald Søby/linkItemsInDescriptions.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ABargioni%2Fpersonal_sort_identifiers.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Bargioni/personal_sort_identifiers.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AShisma%2Fwikidata2ical.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Shisma/wikidata2ical.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3AMagnus_Manske%2Fmixnmatch_gadget.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Magnus_Manske/mixnmatch_gadget.js]]
importScript("User:Bamyers99/HasProperty.js");
Userscripts specific to lexemes
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALucas_Werkmeister%2Fhyphenation-point.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lucas Werkmeister/hyphenation-point.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ASo9q%2Fmerriam-webster.js&action=raw&ctype=text%2Fjavascript' ); // [[User:So9q/merriam-webster.js]]
mw.loader.load( '//www.wikidata.org/w/index.php?title=User%3ALectrician1%2FSenseForThisItem.js&action=raw&ctype=text%2Fjavascript' ); // [[User:Lectrician1/SenseForThisItem.js]]
Userscripts for other websites
importScript('User:Jheald/wdcat.js');
// [[d:User:Karima Rafes/DisplayCodeWikidata.js]]
mw.loader.load("//www.wikidata.org/w/index.php?title=User:Karima Rafes/LinkUniversity.js&action=raw&ctype=text/javascript");
// <tvar name=1>[[d:User:Yair rand/WikidataInfo.js]]</tvar>
mw.loader.load("//www.wikidata.org/w/index.php?title=User:Yair rand/WikidataInfo.js&action=raw&ctype=text/javascript");
As your wiki does not have articles about that topic, you never will see language links to jump to them. This gadget is here to solve that issue.
The extra language links are found by looking the statement main value in the item of your article. Optionally if there are not too much of them, items with statements our article's topic is the main value are also added. mw.loader.load("//fr.wikipedia.org/w/index.php?title=User:TomT0m/extraInterwiki.js&action=raw&ctype=text/javascript");
// [[w:fr:Utilisateur:TomT0m/extraInterwiki.js]], more language links with no articles on the language
For French wikipedia use only, add the following to your common.js there:
importScript('Utilisateur:TomT0m/extraInterwiki.js'); // [[Utilisateur:TomT0m/extraInterwiki.js]] des liens de langues supplémentaires pour les éléments qui n'ont pas d'article
For example, "Created claim: instance of (P31): bus station (Q494829)" instead of "Created claim: Property:P31: Q494829". It also lets you know when the Wikidata edit was not the item for the listed page, but to another item used on that page. E.g.
- Wikipedia:Wikidata (Q183) ... ... ... (Created claim: Property:P463: Q1928989) appears to be an edit to the item for 'Wikipedia:Wikidata'. With this script installed, it will be expanded to
- Wikipedia:Wikidata (Germany (Q183)) ... ... ... (Created claim: member of (P463): Treaty on Open Skies (Q1928989)) showing the edit is to the item for a different page, in this case Germany.
mw.loader.load("//en.wikipedia.org/w/index.php?title=User:Evad37/WikidataWatchlistLabels.js&action=raw&ctype=text/javascript"); // [[w:User:Evad37/WikidataWatchlistLabels.js]]
For English Wikipedia use only, add the following to your common.js there:
importScript('User:Evad37/WikidataWatchlistLabels.js'); // [[User:Evad37/WikidataWatchlistLabels]]
Browser extensions for other websites
Browser extensions can access any web page, so you should make sure you trust the developer of the extension before you install it. |
On-wiki documentation and discussion page: Wikidata:Entity Explosion
Examples from video demonstration:
- Platypus (Q15343) on iNaturalist.
- Jimmy Barnes (Q1689312) on Spotify.