Difference between revisions of "Wiki Monkey"

From ArchWiki
Jump to: navigation, search
(Core API: update for 1.6.0)
(Updates: improve layout)
(44 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[https://github.com/kynikos/wiki-monkey/ Wiki Monkey] is a [http://www.scriptish.org/ Scriptish] script that helps editing wiki pages by providing some Javascript functions to automate repetitive operations, or letting you create new functions exploiting its high-level API.
+
[[Category:Internet Applications]]
 +
[https://github.com/kynikos/wiki-monkey/wiki Wiki Monkey] is a MediaWiki-compatible bot and editor assistant that can be used directly within wiki pages in the browser as a user script. Currently it is tested on [[Firefox]], [[Chromium]] and [[Opera]], but it is very likely to work also on other browsers out of the box or with minor adaptations. Wiki Monkey can also be easily extended through the creation of plugins, exploiting its API.
 +
 
 +
The project is currently focused on ArchWiki, and as such most plugins address ArchWiki-specific problems.
  
 
==Installation==
 
==Installation==
Make sure you have installed [https://addons.mozilla.org/en-US/firefox/addon/scriptish/ Scriptish] for [[Firefox]].
 
 
{{Note|[[Chromium|Chrome/Chromium]] users can try [http://code.google.com/p/tampermonkey/ Tampermonkey], but Wiki Monkey is not tested against it and does not currently support it.}}
 
 
Now just click on the link of one of the following Wiki Monkey configurations and Firefox should ask you to install it:
 
*[https://raw.github.com/kynikos/wiki-monkey/master/src/WikiMonkey.user.js latest stable release]
 
*[https://raw.github.com/kynikos/wiki-monkey/development/src/WikiMonkey.user.js latest development release (unstable)]
 
 
Otherwise [[#Custom configuration|create your own configuration]].
 
 
Once installed, Wiki Monkey should update automatically when new versions are released.
 
 
{{Warning|Although it is possible to keep multiple configurations of Wiki Monkey installed together, make sure to enable only one at a time.}}
 
 
==Usage==
 
Wiki Monkey adds one button for each of its [[#Bundled functions|functions]] in some particular pages (currently editor pages and diff pages): by clicking on a button, the respective function is executed.
 
 
Below the buttons you will find a log where the functions will output their messages.
 
 
{{Warning|Always preview and verify the correctness of the edited text and examine the messages in the log before saving the page.}}
 
 
==Bundled functions==
 
 
===Editor pages===
 
These functions will automate some repetitive modifications of the source text of the article open for editing, as if you were performing them manually, so you will still be able to preview the changes and do other modifications before saving the page manually.
 
 
====Update templates====
 
This function tries to fulfil [[ArchWiki:Requests#Updating templates]], also turning {{ic|<pre>}} into [[Template:bc]], and {{ic|<code>}} and {{ic|<tt>}} into [[Template:ic]].
 
 
See [https://github.com/kynikos/wiki-monkey/blob/master/src/plugins/ArchWikiNewTemplates.js the source code] for more information.
 
 
====Expand contractions====
 
This function tries to replace some common English contractions with their expanded form.
 
 
See [https://github.com/kynikos/wiki-monkey/blob/master/src/plugins/ExpandContractions.js the source code] for more information.
 
 
====Multiple line breaks====
 
This function replaces multiple empty lines with only one, complying with [[Help:Style#Blank lines]].
 
 
{{Note|Multiple empty lines can sometimes be found inside code samples: in these cases you will have to restore them manually.}}
 
 
See [https://github.com/kynikos/wiki-monkey/blob/master/src/plugins/MultipleLineBreaks.js the source code] for more information.
 
 
===Diff pages===
 
These functions base their actions on diff pages.
 
 
====Quick report====
 
{{Expansion}}
 
This function can be useful to Recent Changes patrollers, and adds a quick report to a properly-initialized table in [[User:USERNAME/RC Patrol]], where {{ic|USERNAME}} is your user name. The input field next to the button can be used to accompany the report with a note. See [[User:Kynikos/RC Patrol]] for an example.
 
 
See [https://github.com/kynikos/wiki-monkey/blob/master/src/plugins/ArchWikiQuickReport.js the source code] for more information.
 
 
====Save discussion====
 
{{Expansion}}
 
 
==Troubleshooting==
 
===Clicking on the configuration link does not trigger the installation===
 
If clicking on the [[#Installation|configuration links]] does not trigger the installation, save the target of the link into a {{ic|WikiMonkey.user.js}} file, then drag and drop it in a browser window, or open it with ''File → Open File...'': this time you should get the installation popup.
 
 
===Wiki Monkey was not updated automatically===
 
If you notice that Wiki Monkey has been updated upstream but your local installation for some reason did not upgrade automatically, open Firefox's ''Add-ons Manager'' (''Tools -> Add-ons''), select ''User Scripts'', right-click on Wiki Monkey and choose ''Find Updates''. Alternatively just [[#Installation|re-install]] the script.
 
 
==Bug reports, feature requests==
 
Please use the bug tracker at https://github.com/kynikos/wiki-monkey/issues.
 
 
==Help, ideas==
 
Use the [[User talk:Kynikos/Wiki Monkey|talk page]].
 
 
==Custom configuration==
 
{{Out of date}}
 
{{Expansion}}
 
 
# Open Firefox's ''Add-ons manager → User Scripts''.
 
# Click on Wiki Monkey's ''Edit'' button (if it is the first time you are doing this it will ask you to choose a text editor).
 
# Add the module with a {{ic|@require}} tag in the header of the main script, as shown in the example below; for local files use the {{ic|file}} protocol, for remote files use {{ic|https}}.
 
# Add the module to {{ic|WM.main()}}, which requires two arguments: the first one is used for editor pages, the second one is used for diff pages. Each of these arguments is a 3-dimensional array with the following structure:
 
#*Level 1: this level separates the various rows of buttons that will be created.
 
#*Level 2: this level separates the various functions in a row. When using the shortcut buttons, the modules in each row are executed in the order they are added here.
 
#*Level 3: this level is where the module is actually installed: its first element is the module namespace, as a string; the second element is the label displayed on the button; the third element is passed as the argument for the module's {{ic|main}} and {{ic|makeUI}} methods.
 
# Save and exit the editor.
 
# The newly-added module will work at the next page reload.
 
 
{{hc|WikiMonkey.user.js|2=
 
// ==UserScript==
 
 
...
 
 
// @require file:///home/user/path/to/ModuleExample1.js
 
// ==/UserScript==
 
 
WM.main(
 
    [
 
        [
 
            ["ModuleExample1", "Button example 1", null]
 
        ]
 
    ],
 
    [
 
        []
 
    ]
 
);
 
}}
 
 
 
{{hc|WikiMonkey.user.js|2=
 
// ==UserScript==
 
 
...
 
 
// @require file:///home/user/path/to/ModuleExample2.js
 
// ==/UserScript==
 
 
WM.main(
 
    [
 
        [
 
            ["ModuleExample2", "Button example 2", "Hello World"]
 
        ]
 
    ],
 
    [
 
        []
 
    ]
 
);
 
}}
 
 
 
{{hc|WikiMonkey.user.js|2=
 
// ==UserScript==
 
 
...
 
 
// @require file:///home/user/path/to/ModuleExample3.js
 
// ==/UserScript==
 
 
WM.main(
 
    [
 
        [
 
            ["ModuleExample3", "Button example 3", ["ExampleID", "Hello World"]]
 
        ]
 
    ],
 
    [
 
        []
 
    ]
 
);
 
}}
 
 
 
{{hc|WikiMonkey.user.js|2=
 
// ==UserScript==
 
 
...
 
 
// @require file:///home/user/path/to/ModuleExample5.js
 
// @require file:///home/user/path/to/ModuleExample6.js
 
// @require file:///home/user/path/to/ModuleExample7.js
 
// @require file:///home/user/path/to/ModuleExample8.js
 
// ==/UserScript==
 
 
WM.main(
 
    [
 
        [
 
            ["ModuleExample5", "Button example 5", ["ExampleID5", "Hello World 5"]],
 
            ["ModuleExample6", "Button example 6", ["ExampleID6", "Hello World 6"]]
 
        ],
 
        [
 
            ["ModuleExample7", "Button example 7", ["ExampleID7", "Hello World 7"]],
 
            ["ModuleExample8", "Button example 8", ["ExampleID8", "Hello World 8"]]
 
        ]
 
    ],
 
    [
 
        [
 
            ["ModuleExample9", "Button example 9", ["ExampleID9", "Hello World 9"]],
 
            ["ModuleExample10", "Button example 10", ["ExampleID10", "Hello World 10"]]
 
        ],
 
        [
 
            ["ModuleExample11", "Button example 11", ["ExampleID11", "Hello World 11"]],
 
            ["ModuleExample12", "Button example 12", ["ExampleID12", "Hello World 12"]]
 
        ]
 
    ]
 
);
 
}}
 
 
==Plugin development==
 
{{Out of date}}
 
This section explains how to develop plugins for Wiki Monkey.
 
 
===Tutorial===
 
{{Expansion}}
 
 
{{hc|ModuleTemplate1.js|2=
 
var ModuleTemplate1 = new function () {
 
    this.main = function () {
 
      // put your code here
 
    };
 
};
 
}}
 
 
{{hc|ModuleExample1.js|2=
 
var ModuleExample1 = new function () {
 
    this.main = function () {
 
        alert("Hello World");
 
    };
 
};
 
}}
 
 
 
{{hc|ModuleTemplate2.js|2=
 
var ModuleTemplate2 = new function () {
 
    this.main = function (arg) {
 
      // put your code here
 
    };
 
};
 
}}
 
 
{{hc|ModuleExample2.js|2=
 
var ModuleExample2 = new function () {
 
    this.main = function (arg) {
 
        alert(arg);
 
    };
 
};
 
}}
 
 
 
{{hc|ModuleTemplate3.js|2=
 
var ModuleTemplate3 = new function (args) {
 
    this.makeUI = function () {
 
        // create and return a DOM element
 
    };
 
 
    this.main = function (args) {
 
      // put your code here
 
    };
 
};
 
}}
 
 
{{hc|ModuleExample3.js|2=
 
var ModuleExample3 = new function () {
 
    this.makeUI = function (args) {
 
        id = args[0];
 
 
        input = document.createElement('input');
 
        input.setAttribute('type', 'text');
 
        input.id = id;
 
     
 
        return input;
 
    };
 
 
    this.main = function (args) {
 
        id = args[0];
 
        msg = args[1];
 
 
        text = document.getElementById(id).value;
 
        alert(msg);
 
    };
 
};
 
}}
 
 
  
{{hc|ModuleTemplate4.js|2=
+
===Firefox===
var ModuleTemplate4 = new function () {
+
Make sure you have installed '''either''' the [https://addons.mozilla.org/en-US/firefox/addon/scriptish/ Scriptish] extension (recommended) '''or''' the [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey] extension.
    var privateVariable = null;
+
  
    var privateFunction = function (args) {
+
Now just click on the link of '''one''' of Wiki Monkey configurations from the "Scriptish/Greasemonkey/Tampermonkey" column in the [[#Configurations table]] and your browser should ask you to install it.
        // put your code here
+
    };
+
  
    this.publicVariable = null;
+
===Chromium===
 +
Wiki Monkey can be installed in two ways: either using [[#Tampermonkey (recommended)|Tampermonkey]] or exploiting Chromium's [[#Native support|native support]] for user scripts.
  
    this.publicFunction = function (args) {
+
====Tampermonkey (recommended)====
        // put your code here
+
Make sure you have installed the [https://chrome.google.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] extension.
    };
+
   
+
    this.makeUI = function (args) {
+
        // create and return a DOM element
+
    };
+
  
    this.main = function (args) {
+
Now just click on the link of '''one''' of Wiki Monkey configurations from the "Scriptish/Greasemonkey/Tampermonkey" column in the [[#Configurations table]] and your browser should ask you to install it.
      // put your code here
+
    };
+
};
+
}}
+
  
==API==
+
{{Note|Chromium will first ask you whether you want to install the script with the native support or through Tampermonkey: of course you need to choose the latter by clicking on OK.}}
{{Expansion}}
+
  
===WM===
+
====Native support====
 +
Just click on the link of '''one''' of Wiki Monkey configurations from the "Chromium native" column in the [[#Configurations table]] and your browser should ask you to install it.
  
====getURIParameter(name)====
+
{{Note|Installing Wiki Monkey without Tampermonkey is '''not''' recommended since Chromium's native support is still [http://www.chromium.org/developers/design-documents/user-scripts limited] and some features may not work correctly, as is the case of updates. Besides, plugins that require cross-origin requests will not be available.}}
  
====getLongTextNode(element)====
+
===Opera===
 +
Go to: ''Opera menu > Settings > Preferences > Advanced > Content > JavaScript options'': in the ''User JavaScript folder'' field, select the directory where you will install user scripts.
  
===WM.Diff===
+
Now download '''one''' of Wiki Monkey configurations from the "Opera" column in the [[#Configurations table]] and save it in the folder you've chosen earlier.
  
====getEndTimestamp()====
+
Finally, since the ArchWiki is accessed through the HTTPS protocol, you need to visit ''opera:config'' and enable the ''User Javascript on HTTPS'' setting under ''User Prefs''. You will be prompted to allow the execution of Wiki Monkey the first time you access the ArchWiki in each browsing session.
  
===WM.Editor===
+
===Other browsers===
 +
It should be possible to install Wiki Monkey in other browsers in ways similar to one of the browsers above. If your browser only supports raw JavaScript files, installing '''one''' of Wiki Monkey configurations from the "standalone" column in the [[#Configurations table]] may work.
  
====getTitle()====
+
==Configurations table==
 +
This is the table with the predefined configurations: read the section above for instructions on which link you must choose.
  
====isSection()====
+
{| class="wikitable" border="1"
 +
!Name
 +
!Description
 +
!Scriptish/Greasemonkey/Tampermonkey
 +
!Chromium native
 +
!Opera
 +
!standalone
 +
|-
 +
|Editor
 +
|Provides only manual-editing aid functions in editor pages
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/WikiMonkey-archwikieditor.user.js install]
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/chromium/WikiMonkey-archwikieditor-chromium.user.js install]
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/opera/WikiMonkey-archwikieditor-opera.user.js download]
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/standalone/WikiMonkey-archwikieditor-standalone.js download]
 +
|-
 +
|Patrol-Lite
 +
|Provides a quick-report function in diff pages
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/WikiMonkey-archwikipatrollite.user.js install]
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/chromium/WikiMonkey-archwikipatrollite-chromium.user.js install]
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/opera/WikiMonkey-archwikipatrollite-opera.user.js download]
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/standalone/WikiMonkey-archwikipatrollite-standalone.js download]
 +
|-
 +
|Patrol
 +
|Editor + Patrol-Lite
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/WikiMonkey-archwikipatrol.user.js install]
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/chromium/WikiMonkey-archwikipatrol-chromium.user.js install]
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/opera/WikiMonkey-archwikipatrol-opera.user.js download]
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/standalone/WikiMonkey-archwikipatrol-standalone.js download]
 +
|-
 +
|Bot
 +
|Patrol + automatic operations on list pages
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/WikiMonkey-archwikibot.user.js install]
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/chromium/WikiMonkey-archwikibot-chromium.user.js install]
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/opera/WikiMonkey-archwikibot-opera.user.js download]
 +
|[https://raw.github.com/kynikos/wiki-monkey/master/src/configurations/standalone/WikiMonkey-archwikibot-standalone.js download]
 +
|}
  
====readSource()====
+
Alternatively, you can [https://github.com/kynikos/wiki-monkey/wiki/Custom-configuration create your own configuration].
  
====writeSource(text)====
+
{{Warning|Although it is possible to keep multiple configurations of Wiki Monkey installed together, make sure to enable only '''one''' at a time.}}
  
====readSummary()====
+
{{Note|Plugins that require cross-origin requests are not available for the Chromium-native, Opera and standalone versions.}}
  
====writeSummary(text)====
+
==Updates==
  
====appendToSummary(text)====
+
===Firefox===
  
===WM.HTTP===
+
====Scriptish====
 +
Open Firefox's ''Add-ons Manager'' (''Tools -> Add-ons''), select ''User Scripts'', right-click on Wiki Monkey and choose ''Find Updates''.
  
====sendGetAsyncRequest(url, cfunc)====
+
If you want to enable '''automatic updates''', choose ''Show More Information'' instead, then set ''Automatic Updates'' to ''On''.
  
====sendGetSyncRequest(url)====
+
Scriptish's perferences are available in Firefox's ''Add-ons Manager'' (''Tools -> Add-ons''), selecting the ''Extensions'' tab.
  
====sendPostAsyncRequest(url, cfunc, string, header, headervalue)====
+
====Greasemonkey====
  
====sendPostSyncRequest(url, string, header, headervalue)====
+
Greasemonkey should enable automatic updates by default, you can check opening Firefox's ''Add-ons Manager'' (''Tools -> Add-ons''), selecting ''User Scripts'', right-clicking on ''Wiki Monkey'' and verifying ''Automatic check for updates'' is ticked.
  
====getResponseText(id)====
+
Greasemonkey's perferences are available in Firefox's ''Add-ons Manager'' (''Tools -> Add-ons''), selecting the ''Extensions'' tab.
  
===WM.Log===
+
===Chromium===
  
====logDebug(text)====
+
====Tampermonkey====
 +
Tampermonkey should enable automatic updates by default, you can check opening ''Tools -> Extensions'', selecting Tampermonkey's options, selecting the ''Settings'' tab and verifying the settings for ''Check Interval'' in the ''Script Update'' section.
  
====logInfo(text)====
+
====Native support====
 +
Chromium's native support for user scripts is rather limited and should not be able to update Wiki Monkey. If you want automatic or semi-automatic updates, it is recommended to use Tampermonkey as described in the Installation section.
  
====logWarning(text)====
+
===Opera===
 +
Due to how user scripts are installed in Opera, there is currently no way to have automatic or semi-automatic updates, you will have to check periodically and reinstall the script when a new version is released.
  
====logError(text)====
+
==Tour of the features==
 +
After installing the desired version of Wiki Monkey, start visiting [https://wiki.archlinux.org/index.php?title=Wiki_Monkey&action=submit the editor of this very page], you will find Wiki Monkey's interface right below the ''Save page'' button row. As you can see there are some buttons, each of which will execute a plugin action (see [https://github.com/kynikos/wiki-monkey/wiki/Bundled-plugins Bundled plugins] for detailed information):
 +
* ''Fix header'' reorders the elements in the header, warns about possible problems (e.g. lack of category) and tries to fix some.
 +
* ''Fix headings'' tries to fix the levels of section headings so that they start from level 2 and do not increase by more than 1 level with relation to the parent section.
 +
* ''Use code templates'' replaces {{ic|<pre>}}, {{ic|<code>}} and {{ic|<tt>}} with [[Template:bc]] and [[Template:ic]], taking care of adding numbered parameters or {{ic|<nowiki>}} tags when necessary.
 +
* ''Expand contractions'' expands some common English contractions, e.g. "don't" becomes "do not".
 +
* ''Multiple line breaks'' compresses multiple empty lines into one.
 +
* ''RegExp substitution'' lets you perform a regular expression substitution.
 +
* ''Sync interlanguage links'' <sup>'''*'''</sup> synchronizes the interlanguage links of the edited page with those of its translations.
 +
* ''Fix old AUR links'' <sup>'''**'''</sup> converts direct AUR-1.x package links to instances of [[Template:AUR]].
  
===WM.MW===
+
By pressing one of them, the text in the editor will be modified, but note that the page will not be saved, so you will still be able to see the diff or the preview and perform other modifications manually. The ''Execute row'' and ''Execute all'' buttons are used to execute more plugins one after the other, thus saving some clicks.
  
====callAPIGet(params)====
+
At the bottom of Wiki Monkey's interface you will always find the log area, on dark background, where Wiki Monkey and its plugins will output their messages.
  
====callAPIPost(params)====
+
Now, if you have installed the "Patrol Lite", "Patrol" or "Bot" configuration, visit [[Special:RecentChanges]] and select a diff from the list: right below the diff panes you will find Wiki Monkey's interface. Here the only bundled plugin is ''Quick report'', which adds a row with a link to the visited diff in the specialized table of [[ArchWiki:Reports]].
  
====getUserName()====
+
At this point, if you have installed the "Bot" configuration, visit [[Special:SpecialPages]]: at the top of the page you will find those plugins that have a generic purpose and are not based on a specific page: the only currently available plugin is a function to update Table of Contents pages.
  
===WM.Tables===
+
Finally, if you have installed the "Bot" configuration, visit the [[:Category:Internet Applications|''Category'']] of this article: right at the top you will find Wiki Monkey's bot interface, whose usage is explained in [https://github.com/kynikos/wiki-monkey/wiki/Bot-interface the upstream documentation]; other pages where you can find the bot are [[Special:WhatLinksHere/Wiki_Monkey|''What Links Here'']] pages and many of the list pages linked from [[Special:SpecialPages]]. The available plugins for the bot are a regular expression substitution function and a tool for synchronizing the interlanguage links of the pages with those of their translations<sup>'''*'''</sup>. The [https://wiki.archlinux.org/index.php?title=Special%3ALinkSearch&target=https%3A%2F%2Fwiki.archlinux.org ''External links search''] page also provides a plugin for converting direct AUR-1.x package links to instances of [[Template:AUR]]<sup>'''**'''</sup>.
  
====appendRow(title, mark, values, summary)====
+
<sup>'''*'''</sup> ''The Chromium-native, Opera and standalone configurations can only synchronize local languages.''
  
===WM.UI===
+
<sup>'''**'''</sup> ''Available only for the Scriptish/Greasemonkey/Tampermonkey configurations.''
  
====setEditor(rows)====
+
==Contributions==
 +
Of course any help in the resolution of bugs or the development of new plugins is appreciated: if you are interested, [https://wiki.archlinux.org/index.php/Special:EmailUser/Kynikos send an email] to the original author (or use [[User_talk:Kynikos|his talk page]]) and urge him to finally complete the documentation about the [https://github.com/kynikos/wiki-monkey/wiki/Plugin-development development of plugins], which is actually quite straightforward.
  
====setDiff(rows)====
+
==See also==
 +
* [https://github.com/kynikos/wiki-monkey/wiki/Troubleshooting Troubleshooting]
 +
* [https://github.com/kynikos/wiki-monkey/issues Bug reports, feature requests, questions]

Revision as of 11:45, 30 November 2012

Wiki Monkey is a MediaWiki-compatible bot and editor assistant that can be used directly within wiki pages in the browser as a user script. Currently it is tested on Firefox, Chromium and Opera, but it is very likely to work also on other browsers out of the box or with minor adaptations. Wiki Monkey can also be easily extended through the creation of plugins, exploiting its API.

The project is currently focused on ArchWiki, and as such most plugins address ArchWiki-specific problems.

Installation

Firefox

Make sure you have installed either the Scriptish extension (recommended) or the Greasemonkey extension.

Now just click on the link of one of Wiki Monkey configurations from the "Scriptish/Greasemonkey/Tampermonkey" column in the #Configurations table and your browser should ask you to install it.

Chromium

Wiki Monkey can be installed in two ways: either using Tampermonkey or exploiting Chromium's native support for user scripts.

Tampermonkey (recommended)

Make sure you have installed the Tampermonkey extension.

Now just click on the link of one of Wiki Monkey configurations from the "Scriptish/Greasemonkey/Tampermonkey" column in the #Configurations table and your browser should ask you to install it.

Note: Chromium will first ask you whether you want to install the script with the native support or through Tampermonkey: of course you need to choose the latter by clicking on OK.

Native support

Just click on the link of one of Wiki Monkey configurations from the "Chromium native" column in the #Configurations table and your browser should ask you to install it.

Note: Installing Wiki Monkey without Tampermonkey is not recommended since Chromium's native support is still limited and some features may not work correctly, as is the case of updates. Besides, plugins that require cross-origin requests will not be available.

Opera

Go to: Opera menu > Settings > Preferences > Advanced > Content > JavaScript options: in the User JavaScript folder field, select the directory where you will install user scripts.

Now download one of Wiki Monkey configurations from the "Opera" column in the #Configurations table and save it in the folder you've chosen earlier.

Finally, since the ArchWiki is accessed through the HTTPS protocol, you need to visit opera:config and enable the User Javascript on HTTPS setting under User Prefs. You will be prompted to allow the execution of Wiki Monkey the first time you access the ArchWiki in each browsing session.

Other browsers

It should be possible to install Wiki Monkey in other browsers in ways similar to one of the browsers above. If your browser only supports raw JavaScript files, installing one of Wiki Monkey configurations from the "standalone" column in the #Configurations table may work.

Configurations table

This is the table with the predefined configurations: read the section above for instructions on which link you must choose.

Name Description Scriptish/Greasemonkey/Tampermonkey Chromium native Opera standalone
Editor Provides only manual-editing aid functions in editor pages install install download download
Patrol-Lite Provides a quick-report function in diff pages install install download download
Patrol Editor + Patrol-Lite install install download download
Bot Patrol + automatic operations on list pages install install download download

Alternatively, you can create your own configuration.

Warning: Although it is possible to keep multiple configurations of Wiki Monkey installed together, make sure to enable only one at a time.
Note: Plugins that require cross-origin requests are not available for the Chromium-native, Opera and standalone versions.

Updates

Firefox

Scriptish

Open Firefox's Add-ons Manager (Tools -> Add-ons), select User Scripts, right-click on Wiki Monkey and choose Find Updates.

If you want to enable automatic updates, choose Show More Information instead, then set Automatic Updates to On.

Scriptish's perferences are available in Firefox's Add-ons Manager (Tools -> Add-ons), selecting the Extensions tab.

Greasemonkey

Greasemonkey should enable automatic updates by default, you can check opening Firefox's Add-ons Manager (Tools -> Add-ons), selecting User Scripts, right-clicking on Wiki Monkey and verifying Automatic check for updates is ticked.

Greasemonkey's perferences are available in Firefox's Add-ons Manager (Tools -> Add-ons), selecting the Extensions tab.

Chromium

Tampermonkey

Tampermonkey should enable automatic updates by default, you can check opening Tools -> Extensions, selecting Tampermonkey's options, selecting the Settings tab and verifying the settings for Check Interval in the Script Update section.

Native support

Chromium's native support for user scripts is rather limited and should not be able to update Wiki Monkey. If you want automatic or semi-automatic updates, it is recommended to use Tampermonkey as described in the Installation section.

Opera

Due to how user scripts are installed in Opera, there is currently no way to have automatic or semi-automatic updates, you will have to check periodically and reinstall the script when a new version is released.

Tour of the features

After installing the desired version of Wiki Monkey, start visiting the editor of this very page, you will find Wiki Monkey's interface right below the Save page button row. As you can see there are some buttons, each of which will execute a plugin action (see Bundled plugins for detailed information):

  • Fix header reorders the elements in the header, warns about possible problems (e.g. lack of category) and tries to fix some.
  • Fix headings tries to fix the levels of section headings so that they start from level 2 and do not increase by more than 1 level with relation to the parent section.
  • Use code templates replaces <pre>, <code> and <tt> with Template:bc and Template:ic, taking care of adding numbered parameters or <nowiki> tags when necessary.
  • Expand contractions expands some common English contractions, e.g. "don't" becomes "do not".
  • Multiple line breaks compresses multiple empty lines into one.
  • RegExp substitution lets you perform a regular expression substitution.
  • Sync interlanguage links * synchronizes the interlanguage links of the edited page with those of its translations.
  • Fix old AUR links ** converts direct AUR-1.x package links to instances of Template:AUR.

By pressing one of them, the text in the editor will be modified, but note that the page will not be saved, so you will still be able to see the diff or the preview and perform other modifications manually. The Execute row and Execute all buttons are used to execute more plugins one after the other, thus saving some clicks.

At the bottom of Wiki Monkey's interface you will always find the log area, on dark background, where Wiki Monkey and its plugins will output their messages.

Now, if you have installed the "Patrol Lite", "Patrol" or "Bot" configuration, visit Special:RecentChanges and select a diff from the list: right below the diff panes you will find Wiki Monkey's interface. Here the only bundled plugin is Quick report, which adds a row with a link to the visited diff in the specialized table of ArchWiki:Reports.

At this point, if you have installed the "Bot" configuration, visit Special:SpecialPages: at the top of the page you will find those plugins that have a generic purpose and are not based on a specific page: the only currently available plugin is a function to update Table of Contents pages.

Finally, if you have installed the "Bot" configuration, visit the Category of this article: right at the top you will find Wiki Monkey's bot interface, whose usage is explained in the upstream documentation; other pages where you can find the bot are What Links Here pages and many of the list pages linked from Special:SpecialPages. The available plugins for the bot are a regular expression substitution function and a tool for synchronizing the interlanguage links of the pages with those of their translations*. The External links search page also provides a plugin for converting direct AUR-1.x package links to instances of Template:AUR**.

* The Chromium-native, Opera and standalone configurations can only synchronize local languages.

** Available only for the Scriptish/Greasemonkey/Tampermonkey configurations.

Contributions

Of course any help in the resolution of bugs or the development of new plugins is appreciated: if you are interested, send an email to the original author (or use his talk page) and urge him to finally complete the documentation about the development of plugins, which is actually quite straightforward.

See also