An important part of this process is the fact that community JS is not turned on when you create a wiki. If you need to enable it, please feel free to request it via Special:Contact.
How does it work?
When community JS is enabled on your community, pages in the MediaWiki: namespace ending in
.js become editable by local admins.
Once you submit the page for review, Fandom's review team will then check your JS.
- If approved, the changes will immediately become active in your community.
- If rejected, the changes will not be seen in your community. A notice will be shown on the JS page, and an explanatory note will likely be left on the talk page. In some situations, we may leave a note on an admin's talk page or Message Wall.
So that you easily can test JS edits, the process introduces test mode, which allows your account to run unreviewed JS. Test mode is activated on a per-account, per-community basis, covers all local scripts, and lasts until disabled.
The status of individual scripts in your community are listed in a module to the right of that JS page, and on Special:JSPages. The module and special page are where you can submit updates for approval and enable test mode.
What are the criteria for approval?
Though subject to change, some basic rules guide the process.
- All JS must be in a clear, human-readable format. Any obfuscated code will be rejected.
- All on-Fandom imports must be stored on MediaWiki namespace pages that end with
- Scripts stored outside Fandom are approved on a case-by-case basis.
- We may reject script for legal reasons, such as — but not limited to — non-compliance with the GDPR.
- JS that causes errors or performance problems will be disallowed.
Note that the approval process is not a review of the general quality of your code, nor about making judgment calls about how useful or valid a JS feature is. While we will let you know about serious problems, we won't rewrite the code for you.
- How long does it take for my edits to be reviewed?
- What if I need to make more edits after I submit my script for review?
- Each JS page can only have one revision in the review queue. While you can make further edits after requesting a review, only the originally requested revision will be reviewed. If you want us to review a newer version, simply submit the page for review again, as this will overwrite the previous request.
- What exactly happens when a JS edit is rejected?
- A notice will be shown on the JS page review module, and an explanatory note will likely be left on the talk page. Previously approved JS will continue to work as normal. We do not usually revert the edits that were rejected, since only a small tweak may be required to allow it to be approved.
- Where can I see an overview of JS review status on my community?
- If you visit Special:JSPages, you can see a list of JS pages on your community, along with their current review status.
- How does test mode work?
- While visitors will only be served approved revisions of JS scripts, your account only can see the latest revisions when the test mode is enabled. You can then experiment with your community's JS without worrying about it temporarily breaking the site for everyone! Some things to remember:
- It is enabled on a per-account, per-community basis
- It turns on the latest versions of all scripts used in that community
- It lasts until disabled or you log out
- You may need to bypass your browser cache to see the latest edits
- How does approval work for cross-community imports?
- Imagine you're importing code from Fandom Developers Wiki that gets changed. Those changes need to be approved at Dev before you can see them on your wiki. You can preview what effect their changes will have on your wiki by enabling test mode at Dev.
- Does this affect personal JS?
- No. The core personal JS pages (such as,
User:ExampleUser/common.js) remain freely editable. The rules about what you can do in community JS pages do not apply to personal JS.
- I have feedback or ideas about the tool!
- Great! Please let us know your feedback via Special:Contact.