User:Lopullinen/Permanentlink wikicode.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/*
The tool generates a permanent-link wikicode just below the page header;
for providing a hyperlink that edit summary needed per [[d:Q10729797|Copying within Wikipedia]]:
[[w:en:Dragon Quest XI]] (version [[w:en:Special:PermanentLink/938554397|938554397]])
You can set a homewiki by adding the following codes in your JS page:
window.permanentlinkDefaultLanguage = 'en';
window.permanentlinkDefaultProject = 'Wikipedia';
window.permanentlinkStyle = ' (ver. %s)' // %s is the placeholder for the permanentLink
Then the prefix would be omitted:
[[:Dragon Quest XI]] (ver. [[:Special:PermanentLink/938554397|938554397]])
*/
$(function () {
let k = mw.config.get(["wgSiteName", "wgContentLanguage", "wgPageName", "wgRevisionId", "wgCurRevisionId", "wgServerName"]);
let prefix, lang;
let pagename = k.wgPageName.replace(/_/g, " ");
let oldid = mw.util.getParamValue("oldid") || k.wgRevisionId || k.wgCurRevisionId;
let server = k.wgServerName;
let _lang = (server.split(".")[0] == "simple" && "simple") || k.wgContentLanguage;
let _project = k.wgSiteName;
switch (server) {
case "test.wikimedia.org":
_project = "testwiki";
break;
case "wikisource.org":
_project = "oldwikisource";
break;
}
let homewikiLanguage = window.permanentlinkDefaultLanguage || "";
let homewikiProject = window.permanentlinkDefaultProject || "";
let permanentStyle = window.permanentlinkStyle || " (version %s)";
switch (_lang) {
case homewikiLanguage:
lang = "";
break;
default:
lang = _lang;
}
lang = (lang && ":" + lang) || "";
// [[w:Help:Interwiki linking#Project titles and shortcuts]].
switch (_project) {
case homewikiProject:
prefix = lang;
break;
case "Wikipedia":
prefix = "w" + lang;
break;
case "Wiktionary":
prefix = "wikt" + lang;
break;
case "Wikinews":
prefix = "n" + lang;
break;
case "Wikibooks":
prefix = "b" + lang;
break;
case "Wikiquote":
prefix = "q" + lang;
break;
case "Wikisource":
prefix = "s" + lang;
break;
case "Wikiversity":
prefix = "v" + lang;
break;
case "Wikivoyage":
prefix = "voy" + lang;
break;
case "Wikispecies":
prefix = "species";
break;
case "Wikidata":
prefix = "d";
break;
case "Wikimedia Commons":
prefix = "c";
break;
case "Meta":
prefix = "m";
break;
case "MediaWiki":
prefix = "mw";
break;
case "Wikimedia Incubator":
prefix = "incubator";
break;
case "Strategic Planning":
prefix = "strategy";
break;
default:
prefix = _project;
}
$("#contentSub").before(
'<div id="citationMarkup" style="font-size :84%; line-height: 1.2em; width: auto;">' + // [[wm:XTools#ArticleInfo gadget]]-like style.
"[[" +
prefix +
":" +
pagename +
"]]" +
((oldid > 0 && permanentStyle.replace("%s", "[[" + prefix + ":Special:PermanentLink/" + oldid + "|" + oldid + "]]")) || "") +
"</div>"
);
});