Extension:MassEditRegex

From mediawiki.org
MediaWiki extensions manual
MassEditRegex
Release status: stable
Implementation Page action , Special page
Description Allows for using regular expressions to edit multiple pages at once
Author(s) Adam Nielsen (Malvineoustalk)
Latest version 8.4.1
MediaWiki 1.35+
Database changes No
License GNU General Public License 2.0 or later
Download
  • $wgAjaxExportList
  • masseditregex
Quarterly downloads 46 (Ranked 105th)
Translate the MassEditRegex extension if it is available at translatewiki.net
Issues Open tasks · Report a bug

The MassEditRegex extension allows administrators perform a single edit across multiple pages in one step, by running a regular expression over the content of each page. This is well suited to performing simple edits such as renaming a template, adding pages to a category, or correcting typos (all of which can be done in the same edit operation by supplying multiple regular expressions.)


Usage[edit]

Once the extension has been installed and permission masseditregex to use MassEditRegex has been given, go to "Special:MassEditRegex" and fill out the edit form. Familiarity with regular expressions is required to use this extension.

Features[edit]

  • Page iteration can be done on the client side, so PHP maximum execution time is no longer an issue when editing large numbers of pages.
  • Transform each page using one or more regular expressions in a single step.
  • Edits appear as "bot" so they don't show up in the normal edit list (unless the user chooses to show bot edits).
  • Only users with the masseditregex permission can perform changes.
  • A new "edit all" tab appears on category pages and on Special:WhatLinksHere, for editing all listed pages at once.
  • Pages to edit can be specified as:
    • A list of page names
    • A list of page name prefixes (e.g. "Test" will match pages called "Testing" and "Tested")
    • A list of categories (all pages within the categories will be edited)
    • A list of backlinks (pages edited are those linking to the ones in the list)

Installation[edit]

  • Download and move the extracted MassEditRegex folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/MassEditRegex
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'MassEditRegex' );
    
  • Configure user group and user right at your convenience.
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Configuration[edit]

This extension comes with an extra user right called "masseditregex" to allow fine grained control of which user groups may use this extension. By default it is assigned to no user group. In case you would like to assign it to a user group e.g. "masseditregexeditor", add the following code to your "LocalSettings.php" file right after the lines added in step (3) of the installation process:

$wgGroupPermissions['masseditregexeditor']['masseditregex'] = true;

Alternatively you may grant the permission to an existing user group, e.g., "sysop" by adding the following line:

$wgGroupPermissions['sysop']['masseditregex'] = true;

Tips[edit]

Adding content to the top of the page:

  • Detect any first character at the beginning of a page: → Search for: /^(.)/
  • Prepend my content to the char found a the beginning of a page including a line break: → Replace with: MyContent\n$1

Known issues[edit]

Server-side execution is the default as it (should) be faster.

However editing large numbers of pages will cause server timeouts due to PHP limits on script execution time. To work around this (and perhaps to get better feedback on progress) you can tick "execute in browser" to have the job tracking done on the client-side. This should mean timeouts are no longer a problem.

Page not found

In (at least) MediaWiki 1.31 and later, when the regex you provide is invalid, it will falsely indicate that all of the pages you selected for replacement are not found.

Replacement in certain namespaces

If you would like to replace text only in certain namespaces, e.g. "File" and enter this with the page prefix option you will get the following note: "Error: The MediaWiki API returned the error code invalidtitle: Bad title "File:"."

See also[edit]