MediaWiki:Common: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (noting that features are documented in order of appearance)
m (top-to-bottom copy-edit)
Line 7: Line 7:


*There are also various classes declared here for standard additions to the wiki, such as:
*There are also various classes declared here for standard additions to the wiki, such as:
**[[Template:Fmbox|infoboxes]]
**[[Template:Fmbox|Infoboxes]]
**[[Template:Divhide|divhide boxes]]
**[[Template:Divhide|Divhide boxes]]
**optional mods for the table of contents (use [[Template:TOCnonum]] for an un-numbered TOC and see [[Template:TOClimit]] to limit TOCs to showing only higher sub-header levels)
**Optional mods for the table of contents (allowing you to use [[Template:TOCnonum|TOCnonum]] for an un-numbered TOC and [[Template:TOClimit|TOClimit]] to limit the depth of headers shown in the TOC)


*There's also a modified fix brought over from WP for the annoyingly small text MediaWiki uses for monospaced fonts, which show up when you use <nowiki><code>, <tt>, and <pre></nowiki> tags.
*There's also a modified fix brought over from WP for the annoyingly small size MediaWiki uses for monospaced fonts with the <nowiki><code>, <tt>, and <pre></nowiki> tags.


*Next are several icon customizations:
*Next are several icon customizations:
Line 25: Line 25:
*Common.js allows for a user to add an "&withJS=MediaWiki:__.js" to a URL in order to view that page with a custom JS file that normally does not load for you (untested, so this documentation may be incorrect).
*Common.js allows for a user to add an "&withJS=MediaWiki:__.js" to a URL in order to view that page with a custom JS file that normally does not load for you (untested, so this documentation may be incorrect).


*If the user is on the Main Page, the browser is told to focus on the go/search box so that they can immediately start typing a search term or page name.
*When someone visits the Main Page, the browser is told to focus on the go/search box so that the user can immediately start typing a search term or page name.


*Next, if the user is on the advanced search page, [[MediaWiki:Common.js/search.js]] is imported to modify the page by adding a dropdown menu that lets one pick another search engine besides the barely-useable built-in one.
*If the user is on the advanced search page, [[MediaWiki:Common.js/search.js]] is imported in order to modify the page. It adds a dropdown menu that lets you pick another search engine in place of the barely useable built-in one.


*Various fixes for Internet Explorer.
*Various fixes for Internet Explorer (long obsolete).


*Hover tables are added next, which can display a description of the table cell being pointed to. They are demonstrated, in their unfinished state, [[User:Iritscen/HoverTableDemo|here]].
*Support for hover tables, a half-finished feature. A hover table can display a description of whichever cell is pointed to. The feature is demonstrated in its unfinished state [[User:Iritscen/HoverTableDemo|here]].


*Next is an even more unfinished feature called hover GIFs, which are GIFs that only animate when hovered over. This is accomplished by swapping between a still image and a GIF. However, this method does not work as currently coded because it merely changes the suffix of an image between .gif and .jpg; since images are stored in various "random" sub-directories on the server, the entire path for both images would need to be hardcoded in order to perform a successful swap. These paths could be supplied using an approach similar to the hover table class "hovertable_descrip" if one was determined to make this feature work.
*Next is an even more unfinished feature called hover GIFs, which are GIFs that only animate when hovered over. This is accomplished by swapping between a still image and a GIF. However, this method does not work as currently coded because it merely changes the suffix of an image between .gif and .jpg; since images are stored in various unpredictable sub-directories on the server, the entire path for both images would need to be hardcoded in order to perform a successful swap. These paths could be supplied using an approach similar to the hover table class "hovertable_descrip" if one was determined to make this feature work.


*The NavFrame class from Common.css is used to create the collapsible tables upon which [[Template:Divhide|divhide]] boxes are built.
*The NavFrame class from Common.css is used to create the collapsible tables upon which [[Template:Divhide|divhide]] boxes are built.
Line 39: Line 39:
* A function called ModifySidebar() is made available for customizing the items listed in the sections on the left of all wiki pages. See Iritscen's [[User:Iritscen/vector.js|custom JS page]] for a sample usage.
* A function called ModifySidebar() is made available for customizing the items listed in the sections on the left of all wiki pages. See Iritscen's [[User:Iritscen/vector.js|custom JS page]] for a sample usage.
** Parameter 1: The string "add", "remove", or "sep" (which adds a separator line, however the line is currently not displaying for some reason).
** Parameter 1: The string "add", "remove", or "sep" (which adds a separator line, however the line is currently not displaying for some reason).
** Parameter 2: The name of the section; "navigation", "languages" (not displayed on this wiki), or "toolbox".
** Parameter 2: The name of the section: "navigation", "languages" (not displayed on this wiki), or "toolbox".
** Parameter 3: The display name of the URL you will be adding.
** Parameter 3: The display name of the URL you will be adding.
** Parameter 4: The full URL of the wiki page to add (this should allow the adding of external links as well).
** Parameter 4: The full URL of the wiki page to add (this should allow external links as well).


*Next are an untested fix for table sorting and a tweak to the Upload page for unregistered users (does this do anything?).
*Next are an untested fix for table sorting and a tweak to the Upload page for unregistered users (does this do anything?).


*Finally, there is code to allow the creation of tables that automatically sort themselves by a given column when the page is loaded. First, the table must be declared with the class "wikitable". Next, as part of the same class declaration, you must also add in "sortable" to enable the MediaWiki feature where each column has an arrow that can be clicked to sort that column. Now that you've declared both those classes, add the third class "autosort" to trigger the feature added by this code. By default, the table will be sorted by column 1, but you can specify another column by declaring a fourth class, "by-column-''x''", where 'x' is a number from 1 to 9. See [[Oni 2 (Angel Studios)/Levels]] for a sample usage of this feature.
*Finally, there is code to allow tables to automatically sort themselves by a given column when the page is loaded. This is utilized in several places on the wiki. To make an autosort table, first the table must be declared with the class "wikitable". Next, as part of the same class declaration, you must also add in "sortable" to enable MediaWiki's built-in sortable column feature. Finally add the third class "autosort" to trigger this feature. By default, the table will be sorted by column 1, but you can specify another column by declaring a fourth class for the table called "by-column-''x''", where 'x' is a number from 1 to 9. See [[Oni 2 (Angel Studios)/Levels]] for a sample usage of this feature.


[[Category:Policies and documentation]]
[[Category:Policies and documentation]]

Revision as of 17:58, 28 August 2023

The purpose of MediaWiki:Common.css and MediaWiki:Common.js is to augment the MediaWiki CSS and JS code in a way that is effective for all users. Note that changes to MediaWiki:Vector.css and MediaWiki:Vector.js override these general changes for anyone using the default Vector skin. On top of that come any changes made to users' local vector.css and vector.js pages.

Following are all the features of the CSS and JS pages in the order in which they occur.

Common.css

  • Common.css mainly contains fixes for annoying glitches in MediaWiki's appearance or behavior, and minor style tweaks (these are all more or less borrowed from Wikipedia).
  • There are also various classes declared here for standard additions to the wiki, such as:
  • There's also a modified fix brought over from WP for the annoyingly small size MediaWiki uses for monospaced fonts with the <code>, <tt>, and <pre> tags.
  • Next are several icon customizations:
    • A custom external link arrow replaces the default one (MediaWiki default external link icon.png); the box element has been removed, making it visually less cluttered and easier to read.
    • External links which use HTTPS are modified to use the same arrow as HTTP links instead of the distracting and unnecessary padlock icon.
    • External links to other subdomains on Oni2.net get a sideways arrow.
    • External links that specifically go to movie files get a movie icon.
    • External links that specifically go to sound files get a sound icon.
    • Interwiki links get a green arrow to show that they point to a fellow wiki (by default MediaWiki shows no outbound arrow at all for interwiki links, ambushing the reader with a site change when they click it).
    • Links formatted as if they're external, but which point back to this wiki, get a looping arrow like this.

Common.js

  • Common.js allows for a user to add an "&withJS=MediaWiki:__.js" to a URL in order to view that page with a custom JS file that normally does not load for you (untested, so this documentation may be incorrect).
  • When someone visits the Main Page, the browser is told to focus on the go/search box so that the user can immediately start typing a search term or page name.
  • If the user is on the advanced search page, MediaWiki:Common.js/search.js is imported in order to modify the page. It adds a dropdown menu that lets you pick another search engine in place of the barely useable built-in one.
  • Various fixes for Internet Explorer (long obsolete).
  • Support for hover tables, a half-finished feature. A hover table can display a description of whichever cell is pointed to. The feature is demonstrated in its unfinished state here.
  • Next is an even more unfinished feature called hover GIFs, which are GIFs that only animate when hovered over. This is accomplished by swapping between a still image and a GIF. However, this method does not work as currently coded because it merely changes the suffix of an image between .gif and .jpg; since images are stored in various unpredictable sub-directories on the server, the entire path for both images would need to be hardcoded in order to perform a successful swap. These paths could be supplied using an approach similar to the hover table class "hovertable_descrip" if one was determined to make this feature work.
  • The NavFrame class from Common.css is used to create the collapsible tables upon which divhide boxes are built.
  • A function called ModifySidebar() is made available for customizing the items listed in the sections on the left of all wiki pages. See Iritscen's custom JS page for a sample usage.
    • Parameter 1: The string "add", "remove", or "sep" (which adds a separator line, however the line is currently not displaying for some reason).
    • Parameter 2: The name of the section: "navigation", "languages" (not displayed on this wiki), or "toolbox".
    • Parameter 3: The display name of the URL you will be adding.
    • Parameter 4: The full URL of the wiki page to add (this should allow external links as well).
  • Next are an untested fix for table sorting and a tweak to the Upload page for unregistered users (does this do anything?).
  • Finally, there is code to allow tables to automatically sort themselves by a given column when the page is loaded. This is utilized in several places on the wiki. To make an autosort table, first the table must be declared with the class "wikitable". Next, as part of the same class declaration, you must also add in "sortable" to enable MediaWiki's built-in sortable column feature. Finally add the third class "autosort" to trigger this feature. By default, the table will be sorted by column 1, but you can specify another column by declaring a fourth class for the table called "by-column-x", where 'x' is a number from 1 to 9. See Oni 2 (Angel Studios)/Levels for a sample usage of this feature.