|
The iPhone Wiki is no longer updated. Visit this article on The Apple Wiki for current information. |
Difference between revisions of "MediaWiki:Common.js"
m (minor changes) |
(Redirect bots to new url) |
||
| (22 intermediate revisions by 2 users not shown) | |||
| Line 2: | Line 2: | ||
* The iPhone Wiki MediaWiki:Common.js |
* The iPhone Wiki MediaWiki:Common.js |
||
* - JavaScript to fix common issues on The iPhone Wiki |
* - JavaScript to fix common issues on The iPhone Wiki |
||
| − | * Copyright (c) 2013 Cole Johnson <coleharrisjohnson@gmail.com> |
+ | * Copyright (c) 2013-2017 Cole Johnson <coleharrisjohnson@gmail.com> |
| + | * Licensed under CC-BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0/> |
||
**/ |
**/ |
||
| − | |||
| − | // Removes the "1 This is an Archive Page" element from the TOC on Talk Archives |
||
| − | function fixTalkArchiveToc() { |
||
| − | // Is there a "This is an Archive Page" header block? |
||
| − | if ($("table[id=archive-page-notice]").length != 0) { |
||
| − | var toc = $("table[id=toc]"); // Is there a TOC? |
||
| − | if (toc.length != 0) { |
||
| − | // relocate to the children of the TOC table |
||
| − | toc = toc[0].children; |
||
| − | // MediaWiki is consistent, so no need to check length |
||
| − | if (toc[0].localName == "tbody") { |
||
| − | toc = toc[0].children; // skip the tbody tag |
||
| − | } |
||
| − | // Nav to the "ul"; |
||
| − | toc = toc[0].children[0].children[1].children; // "ul" -> "{li}" |
||
| − | |||
| − | // remove "This is an Archive Page" entry |
||
| − | toc[0].remove(); |
||
| − | |||
| − | // Decrement the outermost section number for each TOC entry |
||
| − | var sec = $("span[class=tocnumber]"); |
||
| − | var len = sec.length; |
||
| − | var split; |
||
| − | for (var i = 0; i < len; i++) { |
||
| − | split = sec[i].innerText.split("."); |
||
| − | split[0]--; |
||
| − | sec[i].innerText = split.join("."); |
||
| − | } |
||
| − | } |
||
| − | } |
||
| − | } |
||
// Removes the "/20##" part of the "Page" link on talk archives |
// Removes the "/20##" part of the "Page" link on talk archives |
||
function fixTalkArchiveNSLinks() { |
function fixTalkArchiveNSLinks() { |
||
| + | // Are we an archive? |
||
| − | if ($("#firstHeading")[0].innerText.match(/\/20[0-9]{2}$/).length != 0) { |
||
| + | // Would work by checking $(".archive-page-notice").length |
||
| − | var ns = $("#p-namespaces li[class!=selected] a")[0]; |
||
| + | var page = $(".firstHeading")[0].innerHTML; |
||
| − | // MediaWiki is predictable - don't check length |
||
| + | if (page.trim().match(/\/20[0-9]{2}$/) == null) |
||
| − | ns.href = ns.href.replace( |
||
| + | return; |
||
| − | /w[\/\\]index.php\?title=(.*?)(\/20[0-9]{2}).*$/, |
||
| + | |||
| − | "wiki/$1"); |
||
| + | var ns = $("#p-namespaces .new"); |
||
| + | if (ns.length == 0) { |
||
| + | console.log("Can't find namespace selector link."); |
||
| + | return; |
||
} |
} |
||
| + | |||
| + | ns[0].className = ns[0].className.replace("new", ""); |
||
| + | ns = ns.find("a")[0]; |
||
| + | ns.href = ns.href.replace( |
||
| + | /w[\/\\]index.php\?title=(.*?)(\/20[0-9]{2}).*$/, |
||
| + | "wiki/$1"); |
||
} |
} |
||
| − | fixTalkArchiveToc(); |
||
fixTalkArchiveNSLinks(); |
fixTalkArchiveNSLinks(); |
||
| + | |||
| + | // The Apple Wiki migration sitenotice link |
||
| + | (function() { |
||
| + | var url = location.href |
||
| + | .replace(location.origin, "https://theapplewiki.com") |
||
| + | .replace("https://theapplewiki.com/w/", "https://theapplewiki.com/"); |
||
| + | var pageName = mw.config.get("wgPageName"); |
||
| + | var categories = mw.config.get("wgCategories"); |
||
| + | if (categories.indexOf("Filesystem") != -1) { |
||
| + | url = url.replace(/(\/wiki\/|title=)\//, "$1Filesystem:/"); |
||
| + | } else if (categories.indexOf("All Key Pages") != -1) { |
||
| + | url = url.replace(pageName, "Keys:" + pageName); |
||
| + | } |
||
| + | $("#siteNotice a[href='https://theapplewiki.com/']") |
||
| + | .attr("href", url); |
||
| + | if ((/bot/i).test(navigator.userAgent)) { |
||
| + | location.replace(url); |
||
| + | } |
||
| + | })(); |
||
Latest revision as of 10:08, 24 May 2024
/**
* The iPhone Wiki MediaWiki:Common.js
* - JavaScript to fix common issues on The iPhone Wiki
* Copyright (c) 2013-2017 Cole Johnson <coleharrisjohnson@gmail.com>
* Licensed under CC-BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0/>
**/
// Removes the "/20##" part of the "Page" link on talk archives
function fixTalkArchiveNSLinks() {
// Are we an archive?
// Would work by checking $(".archive-page-notice").length
var page = $(".firstHeading")[0].innerHTML;
if (page.trim().match(/\/20[0-9]{2}$/) == null)
return;
var ns = $("#p-namespaces .new");
if (ns.length == 0) {
console.log("Can't find namespace selector link.");
return;
}
ns[0].className = ns[0].className.replace("new", "");
ns = ns.find("a")[0];
ns.href = ns.href.replace(
/w[\/\\]index.php\?title=(.*?)(\/20[0-9]{2}).*$/,
"wiki/$1");
}
fixTalkArchiveNSLinks();
// The Apple Wiki migration sitenotice link
(function() {
var url = location.href
.replace(location.origin, "https://theapplewiki.com")
.replace("https://theapplewiki.com/w/", "https://theapplewiki.com/");
var pageName = mw.config.get("wgPageName");
var categories = mw.config.get("wgCategories");
if (categories.indexOf("Filesystem") != -1) {
url = url.replace(/(\/wiki\/|title=)\//, "$1Filesystem:/");
} else if (categories.indexOf("All Key Pages") != -1) {
url = url.replace(pageName, "Keys:" + pageName);
}
$("#siteNotice a[href='https://theapplewiki.com/']")
.attr("href", url);
if ((/bot/i).test(navigator.userAgent)) {
location.replace(url);
}
})();