Wikipedia:Tools/Editing tools
- You may be looking for MediaWiki:Edittools.
External editors
A wikipedia-enhanced text editor can make editing much easier. There are extensions for several text editors. They provide many useful functions, e.g.:
- Syntax highlighting;
- Easy navigation between the article's sections. This makes editing big articles much easier, especially if the overall outline structure of an article needs to be improved. Especially take a look at Eclipse and Emacs;
- Direct down- and uploading of articles without using the web browser.
For details, see Wikipedia:Text editor support.
Similar tools:
- Firefox extension (Firefox version 1.5 only) which adds the Wikipedia formatting commands to context menu and toolbar.
See also mw:WYSIWYG editor
MediaWiki Edit Toolbar
MediaWiki toolbar includes different buttons that can help you in editing. This is the French version, with buttons for citations.
Wikipedia editing tools

wikEd
wikEd, a full-featured in-browser text editor that adds enhanced text processing functions to Wikipedia and other MediaWiki edit pages (currently Mozilla, Firefox, SeaMonkey, Safari, and Chrome only).
Features include:
- Pasting formatted text, e.g. from MS-Word (including tables)
- Converting the formatted text to wikicode
- Wikicode syntax highlighting
- Regular expression search and replace and find-as-you-type
- Server-independent Show preview and Show changes
- Fullscreen editing mode
- Single-click fixing of common mistakes
- History for summary, search, and replace fields
WikiEditPuffer
WikiEditPuffer: edit online - save locally
WikiEditPuffer is an add-on for Mozilla-Firefox making the editing of contributions safer by maintaining local copies of editors content automatically.
- Store your contribution: every n seconds
- Store your contribution: every m keystrokes
- Forget about it, when everything works perfectly
- Use it, when you need it (transmission error, blue screen, server fault)
- Keep track of all your edits, locally and at your own
Search Box
User:Zocky/Search Box, a simple search/replace box. Supports regular expressions.
secEdit
User:Supadawg/secedit.js, allows editing of article sections inline (without opening a separate page) - also supports previewing and showing changes inline.
xul4wikipedia
User:Plindenbaum/xul4wikipedia generates on the fly a Firefox addon used to insert your custom texts (templates...) in wikipedia.
MW (ubiquity script)
MW is an Firefox Ubiquity script. It uses the mediawiki API to suggest and insert an internal link.
Semi-auto edit bots
AutoWikiBrowser
AutoWikiBrowser - Makes repetitive, tedious edits such as spell checkings or category moves faster and easier
mwpush
Description mwpush.pl is a Perl script which takes a Wikified text file or input and submits it to a target MediaWiki page.
Pywikipediabot
Useful for creating bots, or for interactive repair of interwiki links.
Humanbot (currently not running)
Description
- A semi-automatic bot that automatically corrects mistakes in Wikipedia pages. The bot requires Mozilla Firefox, Greasemonkey 0.5-beta+, and a special script. This only works with the (default) Monobook theme. See the bot's page for more information.
Instructions (incomplete)
- If you don't have Mozilla Firefox, see the Firefox page on the Mozilla website.
- If you don't have the Greasemonkey extension, see the Greasemonkey page on the Mozilla Update website. Remember to restart your browser after installing it.
- Navigate to the script page.
- On the menu bar, go to Tools >> Install User Script.
- Click the 'Ok' button in the "Install User Script" window to add it to Greasemonkey.
- On Wikipedia, a new menu will appear on the sidebar, called "auto-edit" with the options 'on', 'off', and 'home'. Click 'on' to activate the bot.
- Note: Do not activate the bot with multiple tabs open!
- Note: The rest of the instructions are missing. If you can add to this, please do so.
Usage
- The bot will send you to the correct page, make the changes, and press the preview button. You just need to check that the changes are reasonable, and the edit will be made under your own username.
WagTools
WagTools - a Firefox extension containing a set of tools to speed up repetitive processes, similar to AutoWikiBrowser. (Currently under development - there's only one tool available at the time of writing, a project tagging tool, but the intention is to add more later).
DotNetWikiBot
DotNetWikiBot has an option to review and change each edit in Microsoft Word before saving it to live wiki. DotNetWikiBot is a client API on .NET, intended for building bots for MediaWiki sites.
Information display
Navigation popups
Wikipedia:Tools/Navigation popups gives a popup box containing the first paragraph of an article when hovering over a link; it also allows quick access to common editing operations. If the wiki provides the NavPop gadget, it can be enabled in user preferences under the gadgets tab. Otherwise, installed by editing the user's [[User:Name/monobook.js]] file.
Templates
User:Zondor/Toolboxes provide a list of templates as tools for one to put in pages such as their user page.
Alternative preview
- Pilaf's Live Preview is a script that allows very fast preview in the browser window during article editing, without loading a new page, using a JavaScript parser. It does not support templates and has some other limitations. Installed by editing your Special:Mypage/monobook.js file. It is also used by the wikEd editor tool.
- User:Sverdrup/Wikipreview.html uses Pilaf's great Live Preview to make a downloadable stand-alone previewer for offline editing. (Download this link to save the file: wikipreview.html).
- Alex Smotrov's QPreview adds an edit toolbar button that uses XMLHttpRequest to generate page preview without reloading the whole page. QPreview functionality has also been added to the wikEd editor tool.
wpvfdhide
wpvfdhide hides VfD discussions which are already closed on demand. This is useful both for finding unclosed entries in the logs and for finding things which weren't speedied in the current VfD day pages. The latest link to it is at User:R3m0t and it requires Firefox and Greasemonkey. r3m0t talk July 3, 2005 13:56 (UTC)
WikiCheck watchlist tool
WikiCheck is a small tool to make checking your watchlist easier. Docked to the left screen edge it shows a list of changes that occurred since the last time the list was checked. Clicking on a change will open the corresponding diff in a new browser window. Recently rewritten.
vfd_NavBar
vfd_NavBar is a modified version of the experimental navigation bars. This will hide closed discussions in the AFD & AFC pages, but not in the AFD sub pages (where there's only 1 discussion) and allows you to toggle them individually. There's no other requirements, just {{subst:User:Sanbeg/vfd_NavBar.js}} into your monobook.js -Steve Sanbeg 21:12, 17 October 2006 (UTC)
Wikisyntax conversion utilities
From tables
- User:Cacycle/wikEd editor extension functionality, see above
- The CSV to Wikipedia converter allows you to convert tables in CSV format into the MediaWiki syntax for tables (or to HTML, if you prefer). This way you can import tables directly from spreadsheet applications like Excel or from databases. For more information, see de:Benutzer:Duesentrieb/csv2wp (en). (by de:Duesentrieb).
- The HTML::WikiConverter module (mentioned below) is also capable of table conversion.
- A very simple Copy & Paste Excel-to-Wiki Converter.
From Microsoft Word
- User:Cacycle/wikEd editor extension functionality, see above
- Extension:Word2MediaWikiPlus: Converts most text, tables and pictures into wiki format.
- Word template converter at University of British Columbia
- Word2MediaWiki
- Adding code to Microsoft visual basic editor
Add the below source code (currently hidden in a collapsed table) to the visual basic editor in Word.
To open the visual basic editor: (tools->macro->visual basic editor)
Then (insert >> module)
Copy and paste the below code.
Save the code (File >>Save normal)
Then close the visual basic editor.
Converting the Word formatted text is simply done by running your new 'installed' macro (tools->macro->macros).
See the notes[1] for more formatting options.
Attribute VB_Name = "Word2Wiki" Dim newDoc As Document Sub Word2Wiki() Set newDoc = New Word.Document ActiveDocument.Content.Copy newDoc.Content.Paste Application.ScreenUpdating = False ConvertH1 ConvertH2 ConvertH3 ConvertItalic ConvertBold 'ConvertUnderline 'must come before lists otherwise it adds extra line breaks in their sequence and breaks it ConvertBreaks ConvertLists ConvertTables ' Copy to clipboard newDoc.Content.Copy newDoc.Close (False) Application.ScreenUpdating = True End Sub Private Sub ConvertH1() Dim normalStyle As Style Set normalStyle = newDoc.Styles(wdStyleNormal) newDoc.Select With Selection.Find .ClearFormatting .Style = newDoc.Styles(wdStyleHeading1) .Text = "" .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Forward = True .Wrap = wdFindContinue Do While .Execute With Selection If InStr(1, .Text, vbCr) Then ' Just process the chunk before any newline characters ' We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If ' Don't bother to markup newline characters (prevents a loop, as well) If Not .Text = vbCr Then .InsertBefore "= " .InsertAfter " =" End If .Style = normalStyle End With Loop End With End Sub Private Sub ConvertH2() Dim normalStyle As Style Set normalStyle = newDoc.Styles(wdStyleNormal) newDoc.Select With Selection.Find .ClearFormatting .Style = newDoc.Styles(wdStyleHeading2) .Text = "" .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Forward = True .Wrap = wdFindContinue Do While .Execute With Selection If InStr(1, .Text, vbCr) Then ' Just process the chunk before any newline characters ' We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If ' Don't bother to markup newline characters (prevents a loop, as well) If Not .Text = vbCr Then .InsertBefore "== " .InsertAfter " ==" End If .Style = normalStyle End With Loop End With End Sub Private Sub ConvertH3() Dim normalStyle As Style Set normalStyle = newDoc.Styles(wdStyleNormal) newDoc.Select With Selection.Find .ClearFormatting .Style = newDoc.Styles(wdStyleHeading3) .Text = "" .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Forward = True .Wrap = wdFindContinue Do While .Execute With Selection If InStr(1, .Text, vbCr) Then ' Just process the chunk before any newline characters ' We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If ' Don't bother to markup newline characters (prevents a loop, as well) If Not .Text = vbCr Then .InsertBefore "=== " .InsertAfter " ===" End If .Style = normalStyle End With Loop End With End Sub Private Sub ConvertBold() newDoc.Select With Selection.Find .ClearFormatting .Font.Bold = True .Text = "" .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Forward = True .Wrap = wdFindContinue Do While .Execute With Selection If InStr(1, .Text, vbCr) Then ' Just process the chunk before any newline characters ' We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If ' Don't bother to markup newline characters (prevents a loop, as well) If Not .Text = vbCr Then .InsertBefore "'''" .InsertAfter "'''" End If .Font.Bold = False End With Loop End With End Sub Private Sub ConvertItalic() newDoc.Select With Selection.Find .ClearFormatting .Font.Italic = True .Text = "" .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Forward = True .Wrap = wdFindContinue Do While .Execute With Selection If InStr(1, .Text, vbCr) Then ' Just process the chunk before any newline characters ' We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If ' Don't bother to markup newline characters (prevents a loop, as well) If Not .Text = vbCr Then .InsertBefore "''" .InsertAfter "''" End If .Font.Italic = False End With Loop End With End Sub Private Sub ConvertUnderline() newDoc.Select With Selection.Find .ClearFormatting .Font.Underline = True .Text = "" .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Forward = True .Wrap = wdFindContinue Do While .Execute With Selection If InStr(1, .Text, vbCr) Then ' Just process the chunk before any newline characters ' We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If ' Don't bother to markup newline characters (prevents a loop, as well) If Not .Text = vbCr Then .InsertBefore "=== " .InsertAfter " ===" End If .Font.Underline = False End With Loop End With End Sub Private Sub ConvertLists() Dim para As Paragraph For Each para In newDoc.ListParagraphs With para.Range If .ListFormat.ListType = wdListBullet Then .InsertBefore "*" Else .InsertBefore "#" End If .ListFormat.RemoveNumbers End With Next para End Sub Private Sub ConvertBreaks() Dim para As Paragraph For Each para In newDoc.Paragraphs If para.Range.ListFormat.List Is Nothing Then If para.Range.Words.Count > 1 Then para.Range.InsertParagraphBefore End If End If Next para End Sub Private Sub ConvertTables() Dim thisTable As Table Dim myCol As Word.Column Dim myRow As Word.Row Dim myCell As Word.Cell Dim myFrame As Word.Frame For Each thisTable In newDoc.Tables With thisTable For Each myRow In thisTable.Rows For Each myCell In myRow.Cells With myCell.Range .InsertBefore "|" End With Next myCell myRow.Range.InsertBefore "|-" & vbCrLf Next myRow .Range.InsertBefore "{| border=""1""" & vbCrLf .Range.InsertAfter vbCrLf & "|}" .ConvertToText Separator:=wdSeparateByParagraphs End With Next thisTable For Each myFrame In newDoc.Frames myFrame.Delete Next myFrame End Sub
On the other hand, transferring mediawiki to Word is easy, just save the desired webpage and then open the page in Microsoft Word.
From HTML
- User:Cacycle/wikEd editor extension functionality, see above
- An AJAX interface for the HTML::WikiConverter http://labs.seapine.com/htmltowiki.cgi
- An online interface for converting plain HTML to MediaWiki syntax is available at html2wiki. It is based on the Perl module HTML::WikiConverter which performs html→wiki conversion and is available on CPAN. (by en:Diberri). This converter can fetch a URL instead of pasting the html.
- Another HTML to Wiki converter is available online at http://www.dwheeler.com/html2wikipedia/
- A Google Web Toolkit(AJAX) based HTML to Wiki converter is available online at http://www.jtidy.de
- A browser based HTML to Wiki converter Emiliano Bruni's I love wiki - HTML2Wiki Converter (also using Perl module HTML::WikiConverter)
- A C++ based program also called Html2mediawiki
From OpenOffice
- Odt2Wiki - OpenOffice.org Wiki
- OpenOffice2MediaWiki: Export filter for converting from ODT format to MediaWiki
- Writer2MediaWiki: OpenOffice macro for converting to MediaWiki format
- Converting online OpenDocument/Text to WikiPedia/MediaWiki
- Sun Wiki Publisher: OpenOffice extension from Sun to publish in MediaWiki format
From LaTeX
- LaTeX2wiki converts sections, math, and references using a web form.
From source codes
- Wikipedia supports syntax highlighting. For information on how to use it, and the languages supported, see Syntax Highlight Extension.
Misc. Editing tools
RecentChanges tools
- Vandal Fighter (recent changes monitor)
- VandalProof (vandalism fighting tool)
- http://vs.aka-online.de/rchiststat/ - RecentChanges statistics
Spell Checkers
- Mozilla Firefox offers built-in spell checking since version 2.0. Link to additional languages [1]
- Opera with v7.5 or later can use GNU Aspell as spellchecker (textboxes only).
- Google Toolbar offers spell checking in various languages for Internet Explorer and Mozilla Firefox.
- A well-designed spell checker for Internet Explorer is ieSpell.
- Konqueror uses Aspell if it's installed and set up in your KDE Control Center.
- A good stand-alone spell checker for English Wikipedia pages is Inspyder InSite. (The free version is good enough for fixing Wikipedia articles.)
- The Mac OS X's universal spell checker is available in Wikipedia's "edit this page" mode while using Safari and in theory any other Cocoa-based browser.
- RegExTypoFix is a large set of regular expressions meant to be loaded into AutoWikiBrowser to do automatic spellchecking.
- Google Chrome contains a built-in spell checker as well.
Interwiki link checker
- [2] to interwiki articles in different languages which ought to have a link.
Disambiguation fixer
Disambiguation fixer will be a program to fix the links to Disambiguation pages. (See Wikipedia:Disambiguation pages with links)
Go-to-edit-page contextual menu item
- This script for a Firefox extension allows one to go directly to the edit page of a right-clicked wiki page link (control-clicked on a Macintosh one-button mouse).
Timeline creation tool
For a tool to create nice graphical timelines, see meta:Wikipedia Project Time Charts and the Easy Timeline Homepage. (by meta:Erik Zachte)
AFD tools
Add the following to your monobook.js file
function hidevfd(){ var divs = document.getElementsByTagName("div"); for(var x = 0; x < divs.length; ++x) if(divs[x].className.indexOf("vfd") != -1) divs[x].style.display = "none"; document.getElementById('footer').style.display = 'none'; } function showvfd(){ var divs = document.getElementsByTagName("div"); for(var x = 0; x < divs.length; ++x) if(divs[x].className.indexOf("vfd") != -1) divs[x].style.display = ""; document.getElementById('footer').style.display = ''; } function addlilink(tabs, url, name){ var na = document.createElement('a'); na.href = url; na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); li.appendChild(na); tabs.appendChild(li); return li; } function vfdlinks(){ var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; if(document.title.indexOf("Wikipedia:Articles for deletion") == 0){ addlilink(tabs, 'javascript:hidevfd()', 'Hide'); addlilink(tabs, 'javascript:showvfd()', 'Show'); } } if (window.addEventListener) window.addEventListener("load",vfdlinks,false); else if (window.attachEvent) window.attachEvent("onload",vfdlinks);
- This should be improved by saving a 7-day cookie as to the hidden or shown status of each VFD --jnothman talk 02:01, 2 November 2005 (UTC)
Afd helper
A script to speed up voting on AFDs. See afd helper. Feedback needed.
WikiDiscussion Manager
This is a tool for posting your opinion on discussions on wikipedia. Currently only AfD is supported, more are coming. WDM. This is a console app using .NET and C++.
Regex: change heading levels
The following may seem trivial for Unix-experienced people, but a collection of ready to use regular expressions can help people who don't know anything or much about regular expressions. For these people: You can use regular expressions in many editors to perform complex editing tasks.
This will give the headings more (or less) equal signs ("="). I can only provide a version which is verified to work in Eclipse, but it will work in many text editors which feature Unix-style regular expressions.
Please change the expressions only if you are very, very sure that it will work correctly, say you have tested that it works.
Verified in Eclipse
- Search-string:
^=(=*?)([^=]+?)(=*?)=\s*$
- For more equal signs replace with:
==$1$2$3==
- For less equal signs replace with:
$1$2$3
- To balance right equals signs to left:
=$1$2$1=
Hints for text editors not mentioned
- In other editors the replace strings will have to be different:
For more equal signs replace with:
==\1\2\3==
For less equal signs replace with:
\1\2\3
Footnote renumbering tool
If you have a page with many footnotes ({{Fn|...}} and {{Fnb|...}}), and they're all in the wrong order, this script could be useful. Written in Python, tested on a Linux system with Python 2.4.
User:Skagedal/Footnote renumbering tool
Extra edit page buttons

For extra edit page buttons, put the following code in your monobook.js, replacing "monobook" with the name of your skin, in all lowercase (using "standard" for Classic skin).
{{subst:js|User:MarkS/extraeditbuttons.js}}
The buttons include: left aligned text, sub-script, super-script, insert table, insert quoted text.
More details can be found at User:MarkS/Extra_edit_buttons.
Strikeout
The following simply adds a strikeout button to your editing tools:
function addStrikeoutButton() {
editingTools = document.getElementById('toolbar');
if (editingTools != null) {
StrikeTextButton = " <a href=\"javascript:insertTags('<s>','</s>','Insert text here');\"><img
src=\"/media/wikipedia/en/c/c9/Button_strike.png\" alt=\"Strike\" title=\"Strike-through text\"></a>";
editingTools.innerHTML = editingTools.innerHTML + StrikeTextButton;
}
}
window.onload = addStrikeoutButton;
Units of measure formatting and conversion tool and date formatting tool
User:MJCdetroit/monobook.js is a monobook tool that allows many common units to be correctly formatted (e.g. km² and not sq km) and converted between metric and imperial/U.S. customary systems with one click on a 'units' tab in edit mode.
Dates can be delinked and common errors associated with can be corrected with one click on a 'dates' tab in edit mode.
Units and dates can be combined by clicking the 'combined' tab in the edit mode.
To avoid false positives, editors can/should review the changes offered and accept or reject the changes offered and/or do more editing before pressing 'Save'. Simply add importScript("User:MJCdetroit/monobook.js"); to your own monobook. Follow the instructions in your monobook to clear the cache (i.e. press Ctrl-Shift-R in Firefox, or Ctrl-F5 in IE) before it will work. —MJCdetroit (yak) 20:32, 21 July 2008 (UTC)
Wiki Welcome
// A small piece of JS writen by [[User:MatthewFenton]], This is my first piece of JS.
function welcome() {
if (document.title.indexOf('Editing User talk:') == 0) {
document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + '==' + 'Welcome' + '==\n' + '{{subst:User:' + 'MatthewFenton/Welcome}}\n~~' + '~~';
document.editform.wpSummary.value = 'Welcome a user to Wikipedia using JS WW';
}
}
function welcome_tab() {
add_link('javascript:welcome()', 'Welcome');
}
if (document.title.indexOf('Editing User talk:') == 0) {
addOnloadHook(welcome_tab);
}
The code adds a tab when you are on user talk pages, you can then click it to add a welcome template and then save. A little time saver for me i thought I would share. Matthew Fenton (contribs) 16:25, 12 July 2006 (UTC)
Image tagging tools
Script for quickly tagging images as lacking source, licensing, or fair use rationale. Also simplifies nominating images for deletion:
User talk:Howcheng/quickimgdelete.js
Commonist - upload client for Wikimedia Commons
A simple upload client for wikimedia commons and a number of other MediaWiki sites. Written in Java and BeanShell. [3]
Labelled Image Editor
Zondor's Labelled Image Editor is a Java tool that creates and edits labelled links for an image. Useful for creating clickable maps like Template:United States Labelled Map. http://mujibab.googlepages.com/labelledimageeditor
CSDHelper
A Greasemonkey script to add a menu with common WP:CSD criteria next in the form that appears when deleting articles. It saves time and provides more meaningful deletion reasons in the logs. Can be included directly into monobook.js with basic modification. It is available at User:Chairboy/csdhelper.greasemonkey.js. Wikipedia administrator access required.
AFD Organizer
An application used in AFD discussions. Loads a list of all the recent AFD's, and then pre-loads several useful pages when opening an AFD, saving valuable time and energy.
Auto-replace for romanized Sanskrit text input
User:Visarga/monobook.js is a script that uses an internal Sanskrit dictionary to automatically replace romanized words typed without diacritics with their proper form. Typing Sakti will get you Śakti. A second function of this script is to allow the manual input of diacritics like the upper line, below dot or cedilla. Type : a-- and get ā. The dictionary might contain mistakes. The script was created for personal use so it has not been evaluated yet. Visarga (talk) 09:15, 29 February 2008 (UTC)
Notes
- ^ Note: You may want to alter this Microsoft Word visual basic editor code so that Word H1 tags become Wiki H2 tags, H2->H3, and so on. H1 is widely considered the title of a web page, whereas H1 is widely considered just the top-level heading in Word.
Note: this macro also provides a workaround converting linebreaks from word to paragraphs in wiki - line breaks in word are ignored in wiki so everything runs together in one paragraph in the older version of this code. Also, the code no longer makes any changes to the source document. Changes are made on a document in memory and put on the clipboard for pasting into the wiki text area.