User:Joeytje50/JWB - Wikipedia
Jump to content
From Wikipedia, the free encyclopedia
User:Joeytje50
(Redirected from
Wikipedia:JWB
You take
full responsibility for any actions taken
using JWB. You must read and abide by all relevant
Wikipedia policies
when using this tool; failure to do so may result in you losing access to the tool or being
blocked from editing
GitHub repo
Changelog
Source code
Worker file
i18n file
Stylesheet
Run script
Your settings
Shortcut
WP:JWB
WP:JWB
JavaScript Wiki Browser
is a script that allows users to make semi-automated edits more easily. For general use, it works similarly to the
downloadable AutoWikiBrowser
, but it requires no executable installation, and can run on all major operating systems. This script heavily borrows from AWB in design and functionality, for example using its
Regex Typo Fixing
and
User Checkpage
. To use this script, you need to be listed on the wiki's AutoWikiBrowser CheckPage (
Project:AutoWikiBrowser/CheckPageJSON
on your wiki), or have administrator rights on the wiki; use is subject to
AWBRULES
If you want to contribute to this project, you can create a pull request at
GitHub: Joeytje50/JWB
. This repo does require manual updates from me, so some minor changes made to the live version hosted here might not be live on GitHub immediately. If that is the case, I will try to merge any useful pull requests into the code of the live version. You can also use GitHub to contribute
i18n strings
Show feed
This div is invisible unless
/feed.js
is installed. That script will replace this text with a table containing the most recent edits to each page relevant to JWB, as well as a list of missing i18n messages.
Installation
edit
Before using this script, you first need to add an import to your personal JavaScript file. Even if the wiki on which it is being used already has some infrastructure for
AWB
, you need to install it for yourself. It is not recommended to install this script on a wiki-wide basis.
To install this script for yourself on any wiki, paste the following code in your JavaScript file (typically this is
Special:MyPage/common.js
, but skin-specific JS files could also be used):
mw
loader
load
'//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript'
);
// Backlink: [[en:User:Joeytje50/JWB.js/load.js]]
or for users on en.wikipedia.org itself:
mw
loader
load
'/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript'
);
// Backlink: [[User:Joeytje50/JWB.js/load.js]]
(ignore the error when saving)
Note that, to use this script, you
must
be listed on the checkpage located at
Project:AutoWikiBrowser/CheckPageJSON
(i.e.
this page
on this wiki),
if
that page exists. If no such page exists on the wiki you're using it on, all users are allowed to use the tool.
Getting started
edit
After installing the script, simply go to
this page
to run the script. For users using the script on another wiki, simply go to the page
Project:AutoWikiBrowser/Script
on the wiki you'd like to start the script on, and have installed the
above code
on.
The interface of JWB may seem a bit crowded at first, but you'll eventually get used to working with it. This densely packed interface allows for fewer different tabs to be used, which allows you to do more things without having to switch tabs.
The most important part of the script of course is the page list. You can enter any number of pages in the page list in the bottom left corner of the interface. The page list, along with the edit area and the results window (the top part) are resizable, and for the text fields, will expand over the rest of the JWB interface to prevent it from moving the content aside.
While editing, all inputs will be disabled, so to modify your settings, you first need to press the stop button.
Page list
edit
Setup options
In the first tab (
Setup
), you will find a set of options that allows you to perform certain actions on the list of pages. The
Remove duplicates
button will automatically filter out any duplicate page names, and the
Sort
button will sort the page list alphabetically.
Page variables
edit
You can define page variables in the page list. This can be done by putting a
after the page name, and following it with the value of the page variable. This variable can then be accessed using
$x
in the
Replace
and
With
replacement boxes, in both of the
Skip when ...
boxes, and for sysops, the target page name box.
This can be useful when moving large numbers of pages. Simply prepare a list of original page names with the new page name put after it with a
in between, and it will automatically fill in the new page name. It can also be used when you need to replace a specific word that's different for each of the pages in your list, or if you need to replace something with a specific word. If no page variable is specified, the page title is used as a page variable.
Pre-parsing
edit
The pre-parse mode can be used to automatically filter your pagelist to those that meet certain requirements. Simply check the
Use pre-parse mode
box, and define your skip requirements in the
Skip
tab
. After having finished defining your skip requirements, press start to begin loading each page in the list, and either skipping it when it meets the skip requirements, or moving it to the bottom of the page list to be used later.
JWB will automatically insert a
#PRE-PARSE-STOP
flag at the bottom of the list, so that it only goes through the list of pages once. If you want to change where the pre-parsing should stop, simply insert
#PRE-PARSE-STOP
on a separate line in the page list below the last page you want to pre-parse (as if it were a page name).
You can press stop any time you like during the pre-parsing. The
#PRE-PARSE-STOP
will be left in place then, so that you can simply modify your skip rules, and continue on, or you can press the
reset
button next to the
Use pre-parse mode
checkbox to re-parse the whole page list again.
Generating page lists
edit
To generate a page list, simply click the button
Generate
in the
Setup
tab. That will open up a window where you can specify which requirements the page list must meet. Note that generating a page list is limited to 50 consecutive requests at a time. This is to prevent overloading the server. The maximum number of pages per request depends on which generator is used. For pages in a category or links on a page, the limit is 500 (or 5000 for bots), and for the other generators it is 50 (or 500 for bots).
Each of these generators filters its results based on the selected namespaces in the namespace box to the right of the generator options. You can select multiple namespaces by either holding the
Ctrl
or
Shift
keys and clicking, or dragging across the namespaces. If the generated list of pages exceeds the maximum number of pages, you can use this to filter down the results to get the full list, in several steps.
Simply check the box before the field set's legend to enable the fields and include that list generator when generating the page list.
Category
Gets all category members of the entered category.
To exclude either subcategories, files, or regular pages, simply uncheck the respective checkbox to disable it.
Links to page
Gets all links to the specified page.
It can include regular wikilinks, template transclusions, or file usage. These can all be used simultaneously.
It also has the option to filter for redirects. You can choose whether to include redirects only, to exclude redirects, or to include both redirects and wikilinks.
Finally, it has the option to include links to the page's redirects. That means that if page A redirects to page B, and page C links to page A, it will still be included in the page list when this checkbox is checked.
Pages with prefix
Gets a list of all pages that start with the specified prefix. This can be useful when trying to generate a list of all subpages for a certain page for example.
If 'strict' prefix searching is enabled, all pages that start with exactly the given string are returned. If not, a
fuzzy search
may be executed ('
engine_autoselect
').
Watchlist
This generator simply fetches all pages in your watchlist.
Links on page
Gets a list of all links that are included in the specified page. This can be useful when using a more complex page list generator such as
DPL
Retrieves a list of pages that get found based on a regular Wiki search. Highly recommended to restrict the results based on
CirrusSearch
, e.g.
insource:/example/
or
intitle:/example/
Semantic MediaWiki search
On wikis that have the Semantic MediaWiki extension installed, an additional box will appear which allows users to enter a SMW query which will be used to generate a page list. If the query includes a query to a specific property, the first returned property (with other properties being ignored) will be loaded as that page's
page variable
, accessible through
$x
. For example
[[Category:Materials]]|?Melting point
to generate a list of materials and their "Melting point" property.
Because this SMW query is executed separately from the other pagelist queries, using a combination of SMW and other queries might generate duplicate pages, which can be filtered out using the button in the 'Setup' tab.
Note that if multiple boxes are selected, the
union
of matching pages will be generated. e.g. using "Category" and "Pages with prefix" will generate all pages which are in the given category
or
start with the given prefix.
Limits
edit
In the Setup tab, below the page list and
settings
options, you can set limits to JWB. Using these limits, you may restrict the amount of time taken by JWB on any one find&replace rule, or the amount of characters added or removed by any one edit. Note that setting a diff size limit does
not
give any guarantees about the quality of your edit. Do
not
solely rely on this setting to prevent your find&replace rules from behaving unexpectedly. This is intended
only
as a form of 'insurance' that your edits will not add or remove unexpected amounts of text from a page.
Skip options
edit
Skip options
Using the
Skip
tab, you can set several rules for which pages should be skipped automatically.
Redirects
You can either select to follow redirects and edit the page the redirect leads to (this will also follow double redirects), or edit the redirects themselves. You can also select to skip redirect pages altogether.
No changes
If you select to skip when no changes are made, the page will automatically skip when the defined
find & replace rules
don't apply any changes to the page.
Page existence
You can either select to skip when the page exists, skip when it doesn't exist, or edit both existing and non-existing pages.
Contents
You can skip either when the page contains a certain string, or when it doesn't contain that. If the phrase entered in
When page contains
results in
any
matches on the page, or if the phrase entered in
When page doesn't contain
results in
no
matches, the page will be skipped.
You can either enter a certain keyphrase that should or should not occur on the page, or you can select to use a regular expression. For more information on regular expressions, see
#Using regex
Regex matches will only be allocated a limited amount of time if the browser and wiki settings support this feature.
The time limit for
each individual
match rule can be set in the 'Setup' tab.
Categories
Pages that contain categories listed here (comma-separated or
-separated) will be skipped automatically.
Editing options
edit
Editing options
JWB on Diff mode
JWB on Preview mode
In the
Editing
tab, you can specify the basic settings for editing. You can fill in the summary, and whether or not to mark the edit as 'minor'. The checkbox next to the summary input box toggles whether or not to append
(via JWB)
to your summary automatically. You can also select what to do to your watchlist. You can either select to add or remove every page you edit to or from your watchlist, not to modify your watchlist, or to watch pages based on your
preference settings
While editing, you can also directly add or remove pages to or from your watchlist by pressing the button next to the watchlist dropdown. The button will be labelled with what action it will trigger (either adding or removing).
Every page will automatically display the difference between the stored content, and the content after the
find & replace rules
are applied. You can also press the
Preview
button to see the generated output. Some styles may not be loaded in this view though, since JWB uses a page structure different from the normal page contents. This may cause styles that depend on the position in the document not to function anymore.
Users with the
bot
usergroup, that are also listed on the wiki's AutoWikiBrowser checklist under the 'bot' category, will also be able to automatically save their edits. This can be done with a throttle to prevent overloading the server. The number entered in the "every
[]
sec" field is the number of seconds
between
edits. This number can also contain decimals (using a
as
decimal mark
).
Prepending and appending
edit
Unlike
WP:AWB
, there is no separate prepend or append option. However, the functionality still exists; to prepend, simply create a replacement rule to replace
with the text you wish to prepend, and check the 'Regular Expression' checkbox. Keep the
flags
field empty. To append, simply do the same, but instead replace
with the text you wish to append. Also select to treat it as a Regular Expression, without any flags enabled.
Replacements
edit
Perhaps the most important feature of JWB is automated replacements. You can define the rules for replacing in the
Editing
tab. By default, all replacements are performed globally. That means that specifying that
should be replaced with
, then every single letter
in the document will be replaced with
. When using regular expressions, this can be disabled by removing the
flag.
Newlines can be inserted in both Regex and regular mode, by putting
\n
in the place where you'd like to insert a newline character. You can also insert a backslash by putting
\\
in the text box.
Regex replacements will only be allocated a limited amount of time if the browser and wiki settings support this feature.
The time limit for
each individual
regex replacement rule can be set in the 'Setup' tab. This feature prevents freezing up the entire tool when a regex takes too long to execute.
Technical details: Requires browser support for
Web Workers
and website
Content Security Policy
allowing
script-src: blob:;
or
worker-src: blob:;
Typo fixing
edit
Main page:
User:Joeytje50/RETF
You can use
the AWB typo list
to automatically fix any typos that exist on the page. Keep in mind that you must always check if the automatic fixes are correct. These automatic fixes will not be applied to image names, template names and parameters,
quotes,
and any text following a colon or asterisk, as well as skipping any rule that also matches a wikilink target. Any lines of text that contain a
{{
sic
}}
indicator will also be ignored by this typo fixer.
These rules are taken from
the rules listing for AWB
Note:
Due to
some browsers not supporting Regex lookbehinds
, it is recommended to run this feature of JWB from one of the supporting browsers. At the time of writing, this includes Google Chrome, Firefox, and Opera. Note that even for browsers that support it, older versions may not have, and users should check if they are using an up-to-date version or else not be able to perform as many typo fixes as other browsers.
Do note that this uses the typo list on the wiki the script is executed from. If you are using this script on a wiki which has no
Project:AutoWikiBrowser/Typos
page, typo fixing will not work.
Because of the non-regular nature of wikitext, this script will recognise any closing
}}
as the end of the outermost template. This means that if a template is nested inside another, and a typo occurs after that nested template, it will not be ignored.
Quotes that are not surrounded by a quotation template (ie. quotes surrounded by plain
""
) can only span a single line to be recognised. If an opening quote is on one line and the quote isn't ended until the next line, it will not be regarded as a quote, and will not be ignored. Please watch for quotes that do not get recognised manually.
A line where a transcribed typo has already been manually marked will likely have been spell-checked manually before. Chances are that any typo occurring
anywhere
on the same line of text will also be an intentional or transcribed typo, and therefore should
not
be fixed.
If you wish to disable RETF for a single page, you can use the button below the RETF checkbox to reload the page contents without RETF applied to it. This can be useful when editing pages with intentional misspellings or old language, for example. To re-apply RETF again after having disabled it, simply stop and restart JWB to re-apply automatic replacements as usual, including RETF.
Using regex
edit
Aside from simple text find & replace rules, you can also define regular expression replacements. Here you have more control over what gets matched, and what doesn't. You can specify the flags you'd like to use in the box next to the
Regular Expression
checkmark. Note that, while non-regex replacements are by default global replacements, you will need to include the
flag to perform global replacements.
In this JWB script, you can also specify the
(underscore) flag. That will make the expression treat all spaces and underscores equally. That can be useful when dealing with wikilinks, template transclusions, etc.
To perform multiple replacements on the same page, you can use the
More replace fields
button, which will open up a window where you can add more rules in the same format as the format in the
Editing
tab. When you press
Tab
while having your cursor on the last replacement rule, another set of inputs will be added. Alternatively, you can press the
Add more fields
button.
To test regular expressions (albeit without the
flag), you can use online IDEs such as
, or
. Please ensure the regex engine (or flavor) is set to JavaScript (or ECMAScript), to reproduce behaviour in JWB.
Ignoring unparsed content
edit
Checking this box will cause the replacement rule to be performed only on content outside the following:
Comments:
Code tags: contents of
and
will be ignored
Formatting tags:
US