利用者:JuthaDDA/SpecialLinkGenerator.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
/******/ (function() { // webpackBootstrap
/******/ "use strict";
var __webpack_exports__ = {};
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
var SpecialLinkGeneratorCore = /*#__PURE__*/function () {
function SpecialLinkGeneratorCore() {
_classCallCheck(this, SpecialLinkGeneratorCore);
this.curRevisionId = mw.config.get('wgCurRevisionId');
this.diffOldId = mw.config.get('wgDiffOldId');
this.diffNewId = mw.config.get('wgDiffNewId');
this.pageName = mw.config.get('wgPageName');
this.articleId = mw.config.get('wgArticleId');
this.language = mw.config.get('wgContentLanguage');
}
/**
* @param redirectType
* @param text Write null for non-piped link.
* @return ex. [[Special:Redirect/page/xxx|ID:xxx]]
*/
_createClass(SpecialLinkGeneratorCore, [{
key: "generateRedirect",
value: function generateRedirect(redirectType) {
var _this = this;
var text = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';
var generateText = function generateText() {
return redirectType === 'page' ? "ID:".concat(_this.articleId) : null;
};
return this.generateLinkToSpecialPage('Redirect', redirectType, redirectType === 'page' ? this.articleId.toString() : null, text === 'auto' ? generateText() : text);
}
/**
* @param text
* @return
*/
}, {
key: "generatePermalink",
value: function generatePermalink() {
var _this2 = this;
var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'auto';
var generateText = function generateText() {
return text === 'pageName' ? _this2.pageName : "\u56FA\u5B9A\u30EA\u30F3\u30AF:".concat(_this2.curRevisionId);
};
return this.generateLinkToSpecialPage('Permalink', this.curRevisionId.toString(), null, text === 'auto' ? "\u56FA\u5B9A\u30EA\u30F3\u30AF:".concat(this.curRevisionId) : text === 'pageName' ? this.pageName : text);
}
}, {
key: "generateDiffLink",
value: function generateDiffLink() {
var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'auto';
var diffType = arguments.length > 1 ? arguments[1] : undefined;
var diffOldId = this.diffOldId,
diffNewId = this.diffNewId,
curRevisionId = this.curRevisionId;
var diffId1 = (diffOldId || curRevisionId).toString();
var diffId2 = diffType === 'cur' || diffType === 'next' ? diffType : diffType === 'prev' ? '' : diffNewId ? diffNewId.toString() : null;
return this.generateLinkToSpecialPage('Diff', diffId1, diffId2, text === 'auto' ? "\u5DEE\u5206:".concat(diffId1) + diffType === 'cur' ? '/最新' : diffType === 'next' ? '/次版' : "/".concat(diffId2) : 'text');
}
}, {
key: "generateLinkToSpecialPage",
value: function generateLinkToSpecialPage(pageName, dir1, dir2, text) {
return ['[[', this.language === 'ja' ? '' : ":".concat(this.language, ":"), 'Special:', pageName, dir1 ? "/".concat(dir1) : '', dir2 ? "/".concat(dir2) : '', text ? "|".concat(text) : '', ']]'].join('');
}
}]);
return SpecialLinkGeneratorCore;
}();
var SpecialLinkGeneratorUI = /*#__PURE__*/function () {
function SpecialLinkGeneratorUI() {
_classCallCheck(this, SpecialLinkGeneratorUI);
this.generatorCore = new SpecialLinkGeneratorCore();
}
_createClass(SpecialLinkGeneratorUI, [{
key: "addPortletLink",
value: function addPortletLink() {
var portletlink = mw.util.addPortletLink('p-cactions', '#', '特別ページへのリンクを生成する', 'ca-special-link-generator');
portletlink.addEventListener('click', this.generateLinks.bind(this));
}
}, {
key: "generateLinks",
value: function generateLinks() {
var _document$querySelect;
console.log(this);
var uList = document.createElement('ul');
uList.classList.add('spacial-link-generator__list');
var div = document.createElement('div');
div.classList.add('special-link__container');
div.appendChild(uList);
[this.generatorCore.generatePermalink(), this.generatorCore.generateRedirect('page'), this.generatorCore.generateDiffLink(), "".concat(this.generatorCore.generatePermalink('pageName'), "\u3088\u308A\u8EE2\u8A18")].forEach(function (specialLink) {
if (!specialLink) {
return;
}
var codeElement = document.createElement('code');
codeElement.innerText = specialLink;
var button = document.createElement('button');
button.classList.add('special-link-generator__button--copy');
button.appendChild(codeElement);
button.addEventListener('click', function () {
var _navigator;
if ((_navigator = navigator) !== null && _navigator !== void 0 && _navigator.clipboard) {
navigator.clipboard.writeText(specialLink);
return;
} // @ts-ignore
window.clipboardData.setData('Text', specialLink);
});
var listItem = document.createElement('li');
listItem.classList.add('special-link-generator__list-item');
listItem.appendChild(button);
uList.appendChild(listItem);
});
(_document$querySelect = document.querySelector('#contentSub')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.appendChild(div);
}
}]);
return SpecialLinkGeneratorUI;
}();
var specialLinkGeneratorUI = new SpecialLinkGeneratorUI();
specialLinkGeneratorUI.addPortletLink();
/******/ })()
;
//# sourceMappingURL=SpecialLinkGenerator.js.map