Jump to content

WikiLove

From mediawiki.org
An impression of the abstract concept of WikiLove
An impression of the abstract concept of WikiLove
By appreciation we make excellence in others our own property. — Voltaire

WikiLove is a feature designed to make it easy and fun to publicly express appreciation for other users. WikiLove can be invoked from any user page by clicking the "Heart" icon. It was originally developed by Ryan Kaldari as a user script, and is now available as a MediaWiki extension that developers can add to their wikis.

Rationale

[edit]

Users like to feel valued. According to the 2011 survey of Wikipedia editors (see top-line data), among 17 variables, "being looked down on by more experienced editors" is the most likely to cause people to say they will edit less frequently (69% agreement), while "having others compliment you on your edits/articles" is the most likely to cause people to say they will edit more frequently (78% agreement). See also: "Positive feedback works for editing, say Wikipedia editors" on the Wikimedia blog.

On the other hand, editing Wikipedia has tended to become harder over time, and the likelihood that new users will receive correction/criticism has increased. This is reflected by various efforts to code and analyse the experience of new users, such as the recent Newbie teaching strategy research sprint undertaken within the scope of our Summer of Research.

Relative proportion of different types of messages sent to new users English Wikipedia, as coded in the newbie teaching strategy trends research sprint

Key dates

[edit]
  • June 16, 2011: WikiLove activated on prototype.wikimedia.org
  • June 24, 2011: WikiLove on-by-default for registered users on prototype.wikimedia.org; blog announcement calling for testers
  • June 30, 2011: WikiLove deployed to the English Wikipedia. See WikiLove actions.
  • October 28, 2011: WikiLove deployed to the Macedonian Wikipedia (under the name "ВикиЉубов").

How to disable

[edit]

To disable WikiLove, go to the editing tab in your preferences, and uncheck the box next to "Enable showing appreciation for other users with the WikiLove tab" under User pages. Then click Save.

Turn WikiLove on or off using the checkbox in your preferences.

How to customise

[edit]

The WikiLove interface can be tailored to suit the needs of each individual editor. If you want to use WikiLove for leaving welcome messages, birthday cakes, or hedgehogs, it's easy to override the default configuration with your own settings.

The WikiLove configuration is one large JSON object, so to make a change or addition, all you have to do is modify the values that are assigned to the keys. To see what values are currently assigned, first check the MediaWiki:WikiLove.js page on your local wiki. This will have any local overrides. Next, take a look at the default configuration. This will show you the basic tree of data that makes up the settings for WikiLove. Once you have decided what values you want to change, go to your skin.js file on the wiki you are using. (If you are on the English Wikipedia, for example, you would edit this page.) To change an existing item, simply override its value with an assignment statement.

Change an existing type

[edit]

For example, if you wanted to change the display name 'Kittens' to 'Cats', you would add the following to your local .js file (User:Example/skin.js):

mw.loader.using( 'ext.wikiLove.defaultOptions', function() {
  $.wikiLoveOptions.types.kitten.name = 'Cats';
} );

If you wanted to change the image for Stroopwafels, you would add:

mw.loader.using( 'ext.wikiLove.defaultOptions', function() {
  $.wikiLoveOptions.types.food.subtypes.stroopwafels.image = 'Stroopwafels.jpg';
} );

Add a new type

[edit]

You can also add an entirely new item type (or subtype) using the JSON tree structure. For example to add "Hedgehogs":

mw.loader.using( 'ext.wikiLove.defaultOptions', function() {
$.wikiLoveOptions.types.hedgehog = {
  name: 'Hedgehogs', // name of the type (appears in the types menu)
  fields: [ 'header', 'message' ], // fields to ask for in form
  header: 'A hedgehog for you!', // header that appears at the top of the talk page post (optional)
  text: '[[$3|left|150px]]\n$1\n\n~~'+'~~\n<br style="clear: both"/>', // $3 is the image filename, $1 is the message
  gallery: {
    imageList: [ 'Hedgehog1.jpg', 'Orizo5.jpg', 'Erinaceus europaeus LC0119.jpg' ],
    width: 145, // maximum width of the images in the gallery
    height: 150, // maximum height of the images in the gallery
    number: 3 // number of random images to show (optional)
  },
  icon: 'http://www.mysite.com/images/wikilove-icon-hedgehog.png' // appears in the types menu
};
} );

Make sure you declare all of the appropriate parameters when adding new items! To learn about all the different type parameters, refer to the extension documentation.

Create a new type icon

[edit]

The Photoshop source file for the WikiLove type icons (the black and white icons that appear in the left-hand menu) can be downloaded. To create your own, paste in a graphic that is approximately 50 × 50 pixels, desaturate it, and copy and paste the styles that are applied to the examples in the source file.

Change the heart icon

[edit]

You can also customise the WikiLove heart icon used in the Vector skin by editing your vector.css file (User:Example/vector.css). If you want to change the red heart icon to a blue heart, for example, you would add the following:

#ca-wikilove.icon a {
  background-image: url("/w/extensions/WikiLove/resources/images/heart-icons-blue.png");
}

Requests for additional deployment

[edit]

Individual wikis may request that WikiLove be deployed to them provided the following criteria are met:

  • Community consensus for the deployment has been reached
  • The WikiLove extension has been localised to that wiki's language on TranslateWiki (you can help localise it)
  • A configuration file exists on the local wiki (MediaWiki:WikiLove.js)

Once these criteria are met, open a bug in Phabricator requesting the deployment.

WikiLove activity in real-time

[edit]

WikiLove collects data in its own tables, but this data isn't surfaced through the UI yet. To quickly see what's going on, you can use edit filter 423 on the English Wikipedia.

We're collecting stories of WikiLove usage here to better understand its evolving impact: WikiLove/Stories

Some preliminary analysis: WikiLove/Analysis

Additional documents

[edit]