Skip to content
This repository has been archived by the owner on Jan 13, 2025. It is now read-only.

Commit

Permalink
Improve: Compatible with current skins
Browse files Browse the repository at this point in the history
  • Loading branch information
AnYiEE committed Sep 27, 2023
1 parent 638dd5e commit 9ee1845
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 24 deletions.
2 changes: 1 addition & 1 deletion conf/wiki-sub.conf
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ subs_filter '<img\s+?src="(https:)?\/\/www\.wikimedia\.org(\/wiki\/Special:Cent
subs_filter '<img\s+?src="(https:)?\/\/(m\.|www\.)(wikidata\.example\.org\/wiki\/Special:CentralAutoLogin)(\S+?)"(.+?)>' '<img src="$1//$2$3$4"$5>' r;
subs_filter '<img\s+?src="(https:)?\/\/(m\.|www\.)(wiki(?:books|news|pedia|quote|source|versity|voyage)|wiktionary)(\.example\.org\/wiki\/Special:CentralAutoLogin)(\S+?)"(.+?)>' '<img src="$1//en.$2$3$4$5"$6>' r;
###################
set $init "<noscript><style>html{all:revert!important}body{display:none!important}*::before{content:'WikiMirror load failed, please try reloading page.';align-items:center;display:flex;filter:inherit;font:.5em bold;height:100%;justify-content:center;position:absolute;text-align:center;white-space:pre;width:100%}</style></noscript><script onerror=\"document.documentElement.innerHTML=document.getElementsByTagName('noscript')[0].innerHTML\" src=\"/wikimirror.js\"></script><style id=\"wikimirror-css-anon-hide\">.ext-discussiontools-emptystate,.ext-discussiontools-init-new-topic,.ext-discussiontools-init-replylink-buttons,.flow-reply-link,.flow-ui-edit-title-link,.flow-ui-replyWidget,.flow-ui-summarize-topic-link,.header-action .continue,.minerva-talk-add-button,.minerva-user-menu-list>li:not(:last-child),.mw-diff-edit,.mw-diff-undo,.mw-editsection,.mw-history-undo,.mw-rollback-link,.nv-edit,.ve-ui-toolbar-group-save,.wb-langlinks-link,.wikiEditor-ui-top,#ca-addsection,#ca-cb-create-account,#ca-edit,#ca-move,#ca-ve-edit,#page-actions-edit,#wpSaveWidget,#mw-createaccount-cta,#p-createaccount,#pt-anoncontribs,#pt-anontalk,#pt-createaccount,#pt-createaccount-2,#userlogin2{display:none!important;height:0!important;margin:0!important;padding:0!important;visibility:hidden!important;width:0!important}</style>\n";
set $init "<noscript><style>html{all:revert!important}body{display:none!important}*::before{content:'WikiMirror load failed, please try reloading page.';align-items:center;display:flex;filter:inherit;font:.5em bold;height:100%;justify-content:center;position:absolute;text-align:center;white-space:pre;width:100%}</style></noscript><script onerror=\"document.documentElement.innerHTML=document.getElementsByTagName('noscript')[0].innerHTML\" src=\"/wikimirror.js\"></script><style id=\"wikimirror-css-anon-hide\">.ext-discussiontools-emptystate,.ext-discussiontools-init-new-topic,.ext-discussiontools-init-replylink-buttons,.flow-reply-link,.flow-ui-edit-title-link,.flow-ui-replyWidget,.flow-ui-summarize-topic-link,.header-action .continue,.minerva-talk-add-button,.minerva-user-menu-list>li:not(:last-child),.mw-diff-edit,.mw-diff-undo,.mw-editsection,.mw-history-undo,.mw-rollback-link,.nv-edit,.ve-ui-toolbar-group-save,.wb-langlinks-link,.wikiEditor-ui-top,#ca-addsection,#ca-cb-create-account,#ca-edit,#ca-move,#ca-ve-edit,#page-actions-edit,#wpSaveWidget,#mw-createaccount-cta,#pt-anoncontribs,#pt-anontalk,#pt-createaccount,#pt-createaccount-2,#userlogin2{display:none!important;height:0!important;margin:0!important;padding:0!important;visibility:hidden!important;width:0!important}</style>\n";
subs_filter '(<meta\scharset="?\S+?"?\s*?\/?>)(?!(?:<meta\sproperty.+?>|<meta\scontent\S+?\sproperty.+?>))' "$init$1" ir;
subs_filter '(<meta\shttp-equiv="?Content-Type"?\scontent="?.+?"?\s*?\/?>)(?!<meta\sproperty.+?>)' "$init$1" ir;
subs_filter "<code>Request\sfrom\s((?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9])))(.+?)" "<code>Request from $remote_addr$2<br>Reverse proxy: example.org ($1) " r;
Expand Down
6 changes: 3 additions & 3 deletions static/wikimirror.js

Large diffs are not rendered by default.

60 changes: 40 additions & 20 deletions static/wikimirror.tsc.js
Original file line number Diff line number Diff line change
Expand Up @@ -297,9 +297,7 @@
element.href = this.getRealText(element.href);
}
});
window.addEventListener('afterprint', () => {
location.reload();
});
window.addEventListener('afterprint', location.reload);
if (isMediaWiki) {
this.getRealText(undefined, 'wiki');
const wpSave = document.querySelector('#wpSave');
Expand Down Expand Up @@ -487,10 +485,10 @@
}
const elementList = [
...document.querySelectorAll(
'#ca-cb-login,#topbar>a[href*="UserLogin"],#pt-login-2,.vector-user-menu-login,#pt-login'
'#ca-cb-login>a,#topbar>a[href*="UserLogin"],#pt-login>a,#pt-login-private>a,#pt-login-2>a,#pt-login-private-2>a,.vector-user-menu-login>a'
),
];
const minervaLoginElement = document.querySelector('.minerva-icon--minerva-logIn')?.parentElement;
const minervaLoginElement = document.querySelector('.minerva-icon--logIn')?.parentElement;
if (minervaLoginElement) {
elementList.push(minervaLoginElement);
}
Expand Down Expand Up @@ -827,9 +825,9 @@
}
confirmLogout() {
const $element = jQuery()
.add(jQuery('#ca-cb-logout>a,#topbar>a[href*="UserLogout"],#pt-logout>a,.vector-user-menu-logout'))
.add(jQuery('#ca-cb-logout>a,#topbar>a[href*="UserLogout"],#pt-logout>a'))
.add(
jQuery('.minerva-icon--minerva-logOut')
jQuery('.minerva-icon--logOut')
.parent('.minerva-user-menu,.toggle-list-item__anchor')
.not('[target]')
);
Expand Down Expand Up @@ -862,12 +860,37 @@
this.showNetworkErrorNotice();
}
};
const overHander = () => {
$element.off('click');
$element.on('click', clickHander);
const addEventListener = (_$element) => {
const overHander = () => {
_$element.off('click');
_$element.on('click', clickHander);
};
const overHanderDebounce = this.debounce(overHander, 200, true);
_$element.on('mouseover touchstart', overHanderDebounce);
};
const overHanderDebounce = this.debounce(overHander, 200, true);
$element.on('mouseover touchstart', overHanderDebounce);
addEventListener($element);
if (!this.hasClass('skin-vector-2022')) {
return;
}
const callback = (_mutations, observer) => {
if (!this.hasClass('vector-sticky-header-visible')) {
return;
}
const SELECTOR = '#pt-logout-sticky-header>a';
const element = document.querySelector(SELECTOR);
if (!element) {
return;
}
const elementClone = element.cloneNode(true);
element.replaceWith(elementClone);
addEventListener(jQuery(SELECTOR));
observer.disconnect();
};
const mutationObserver = new MutationObserver(callback);
mutationObserver.observe(document.body, {
attributes: true,
attributeFilter: ['class'],
});
}
darkMode(method, item, value) {
if (!this.localStorage()) {
Expand Down Expand Up @@ -1048,8 +1071,8 @@
if (button === null) {
return;
}
const targetElement = button?.firstElementChild || document.querySelector(`#${ID}`);
targetElement.addEventListener('click', (event) => {
const targetElement = (button ?? document.querySelector(`#${ID}`))?.querySelector('a');
targetElement?.addEventListener('click', (event) => {
event.preventDefault();
modeSwitcher();
this.darkMode('insert');
Expand Down Expand Up @@ -1112,10 +1135,10 @@
portletId = 'p-tb';
}
const doIns = async ({text, tooltip, link, isPermaLink}) => {
let element = document.querySelector(`#${ID}`);
let element = document.querySelector(`#${ID}`)?.querySelector('a');
if (!element) {
await mw.loader.using('mediawiki.util');
element = mw.util.addPortletLink(portletId, '#', text, ID, tooltip);
element = mw.util.addPortletLink(portletId, '#', text, ID, tooltip)?.querySelector('a');
if (!element) {
return;
}
Expand All @@ -1127,9 +1150,6 @@
);
}
}
if (portletId === 'mw-mf-diffarea' || this.hasClass('skin-minerva')) {
element = element.firstElementChild;
}
element.onclick = async (event) => {
event.preventDefault();
await mw.loader.using(['mediawiki.widgets', 'oojs-ui-windows']);
Expand Down Expand Up @@ -1425,7 +1445,7 @@
)}" target="_blank" title="${Title}">${Text}</a></li>`;
const RedirectMinerva = `<li class="toggle-list-item" id="${ID}"><a class="toggle-list-item__anchor" href="${this.getLocate(
'originUrl'
)}" target="_blank" title="${Title}"><span class="minerva-icon minerva-icon--minerva-logOut"></span><span class="toggle-list-item__label">${Text}</span></a></li>`;
)}" target="_blank" title="${Title}"><span class="minerva-icon minerva-icon--logOut"></span><span class="toggle-list-item__label">${Text}</span></a></li>`;
const apihelpFlagsUl = document.querySelector('.apihelp-flags>ul');
if (this.hasClass('skin-apioutput') && apihelpFlagsUl) {
return apihelpFlagsUl.insertAdjacentHTML('beforeend', Redirect);
Expand Down

0 comments on commit 9ee1845

Please sign in to comment.