2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

User:鬼影233/common.js

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox/Safari:按住“Shift”的同时单击“刷新”,或按“Ctrl-F5”或“Ctrl-R”(Mac为“⌘-R”)
  • Google Chrome:按“Ctrl-Shift-R”(Mac为“⌘-Shift-R”)
  • Internet Explorer:按住“Ctrl”的同时单击“刷新”,或按“Ctrl-F5”
  • Opera:在“工具→首选项”中清除缓存
如果您已登录但该页面出现未登录状态,请尝试在地址栏的地址最后添加代码?_=1来访问最新页面。
添加代码后的本页地址如下:-{R|https://moegirl.icu/User:%E9%AC%BC%E5%BD%B1233/common.js?_=1}-
/* [[U:鬼影233/vector.js]]、[[U:鬼影233/moeskin.js]] */

"use strict";
mw.loader.load("/index.php?title=U:鬼影233/lazyWikiPlus.js&action=raw&ctype=text/javascript");
mw.loader.load("//wiki.biligame.com/klbq/index.php?title=U:54212577/notification.js&action=raw&ctype=text/javascript"); // [[U:鬼影233/notification.js]]
mw.loader.load("//wiki.biligame.com/klbq/index.php?title=U:54212577/sortableTableAnimation.js&action=raw&ctype=text/javascript"); // [[U:鬼影233/sortableTableAnimation.js]]
mw.loader.load("//mzh.moegirl.org.cn/index.php?title=U:鬼影233/ISBN.js&action=raw&ctype=text/javascript");
mw.loader.load("//mzh.moegirl.org.cn/index.php?title=User:BearBin/js/SidebarEnhance.js&action=raw&ctype=text/javascript");
mw.loader.load("//mzh.moegirl.org.cn/index.php?title=U:鬼影233/userStatusSub.js&action=raw&ctype=text/javascript");
mw.loader.load("//mzh.moegirl.org.cn/index.php?title=U:GuoPC/js/MoeIndicators.js&action=raw&ctype=text/javascript");
mw.loader.load("//mzh.moegirl.org.cn/index.php?title=U:Nzh21/js/QuickDiff.js&action=raw&ctype=text/javascript");
mw.loader.load("//cdn.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/OneKeyPurge.min.js");

/** CM6 配置 **/
Object.entries({
	addons: [
		"allowMultipleSelections",
		"autocompletion",
		"bracketMatching",
		"closeBrackets",
		"codeFolding",
		"escape",
		"highlightActiveLine",
		"highlightSpecialChars",
		"highlightTrailingWhitespace",
		"highlightWhitespace",
		"lint",
		"openLinks",
		"tagMatching",
		"wikiEditor",
	],
	ESLint: {
		env: { browser: true, es2022: true, jquery: true },
		globals: {
			mw: "readonly",
			mediaWiki: "readonly",
			OO: "readonly",
			moment: "readonly",
			LocalObjectStorage: "readonly",
			insertToBottomRightCorner: "readonly",
			wgULS: "readonly",
			wgUVS: "readonly",
			oouiDialog: "readonly",
			MoeSkin: "readonly",
			MOE_SKIN_GLOBAL_DATA: "readonly",
			libCachedCode: "readonly",
			CodeMirror: "readonly",
		},
		rules: {
			"no-unused-vars": ["error", { varsIgnorePattern: "_addText" }],
		},
	},
	Stylelint: { rules: { "no-descending-specificity": null } },
}).forEach(function (c) {
	localStorage.setItem(
		"codemirror-mediawiki-" + c[0],
		JSON.stringify(c[1])
	);
});

/** IPE */
(window.InPageEdit = window.InPageEdit || {}).myPreference = {
  "doNotCollectMyInfo": false,
  "editMinor": false,
  "editSummary": "$oldid →$section +-",
  "lockToolBox": false,
  "redLinkQuickEdit": false,
  "outSideClose": false,
  "watchList": "preferences",
  "noConfirmEdit": false,
  "plugins": [
    "toolbox.js",
    "color-preview.js",
    "quick-thank.js",
    "edit-any-page.js",
    "demo.js",
    "language-pack_demo.js",
    "fix-double-entrance.js",
	// "https://cdn.jsdelivr.net/gh/inpageedit/Plugins@bhsd-harry/monaco/src/plugins/monaco/script.js",
    "code-mirror/cm6.js"
  ],
  "codeMirrorTheme": "nord"
}

/** .svg.png回退至.svg **/
var __values =
  (this && this.__values) ||
  function (o) {
    var s = typeof Symbol === "function" && Symbol.iterator,
      m = s && o[s],
      i = 0;
    if (m) return m.call(o);
    if (o && typeof o.length === "number")
      return {
        next: function () {
          if (o && i >= o.length) o = void 0;
          return { value: o && o[i++], done: !o };
        },
      };
    throw new TypeError(
      s ? "Object is not iterable." : "Symbol.iterator is not defined."
    );
  };
$(function () {
  var e_1, _a;
  var thumbs = Array.from(
    document.querySelectorAll(
      'img[src*="thumb"][src$=".svg.png"], img[src*="thumb"][data-lazy-src$=".svg.png"], img[src*="thumb"][src$=".gif"], img[data-lazy-src*="thumb"][data-lazy-src$=".gif"]'
    )
  );
  var _loop_1 = function (img) {
    try {
      var src = img.src || img.dataset.lazySrc;
      if (new mw.Uri(src).host !== "img.moegirl.org.cn") {
        return "continue";
      }
      var newImg_1 = img.cloneNode();
      newImg_1.src = src
        .replace("/thumb/", "/")
        .replace(/\.svg\/[^/]+\.svg\.png$/, ".svg")
        .replace(/\.gif\/[^/]+\.gif$/, ".gif");
      newImg_1.removeAttribute("srcset");
      newImg_1.removeAttribute("data-lazy-src");
      newImg_1.removeAttribute("data-lazy-srcset");
      newImg_1.removeAttribute("data-lazy-state");
      newImg_1.classList.remove("lazyload");
      newImg_1.onload = function () {
        img.after(newImg_1);
        img.remove();
      };
    } catch (e) {
      console.error(e);
    }
  };
  try {
    for (
      var thumbs_1 = __values(thumbs), thumbs_1_1 = thumbs_1.next();
      !thumbs_1_1.done;
      thumbs_1_1 = thumbs_1.next()
    ) {
      var img = thumbs_1_1.value;
      _loop_1(img);
    }
  } catch (e_1_1) {
    e_1 = { error: e_1_1 };
  } finally {
    try {
      if (thumbs_1_1 && !thumbs_1_1.done && (_a = thumbs_1["return"]))
        _a.call(thumbs_1);
    } finally {
      if (e_1) throw e_1.error;
    }
  }
});

/** color block (/wl) 点击复制颜色 **/
navigator.permissions.query({ name: "clipboard-write" }).then(function (r) {
  if (r.state === "granted" || r.state === "prompt") {
    document.body
      .querySelectorAll(
        "span[title][style^='width:10px;height:10px;background-color:'][style$='display:inline-block;'], span[title][style^='display: inline-block; margin: 0 .1rem -1px 0; width: 13px; height: 13px; border: 1px solid #555459; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; background: ']"
      )
      .forEach(function (e) {
        var x = document.createElement("span");
        x.style.color = e.title;
        if (
          (e.title && x.style.color === e.style.backgroundColor) ||
          e.style.background
        ) {
          e.style.cursor = "pointer";
          e.addEventListener("click", function () {
            navigator.clipboard
              .writeText(e.title)
              .then(function () {
                mw.notify("已复制", { type: "success" });
              });
          });
        }
      });
  }
});

/** moeskin专用 **/
if (mw.config.get().skin === "moeskin") {
  /** 修复sticky定位 **/
  document.body.querySelector("#moe-article > #mw-body-container").style.overflow = "clip";
  document.body.querySelectorAll("#moe-article > #mw-body-container *").forEach(function (e) {
    if (getComputedStyle(e).position == "sticky") {
      e.style.top = Number(getComputedStyle(e).top.slice(0, -2)) + Math.max(document.body.querySelector("header").clientHeight, document.body.querySelector("header").offsetHeight) + "px";
    }
  });
}

/** 显示pre指定语言 **/
mw.loader.load(
  "//zh.moegirl.org.cn/index.php?title=U:Bhsd/js/PreLangMark.js&action=raw&ctype=text/javascript"
);

/** [[User:Leranjun]] WDC **/
mw.loader.load(
  "//zh.moegirl.org.cn/index.php?title=User:Leranjun/WDC/script.js&action=raw&ctype=text/javascript"
);

/** 使用IPE加载内容过后更快的相同内容的W+加载,不兼容“Wikiplus代码高亮”小工具,未编译。
"use strict";
(() => {
  if (mw.libs.wphl) return;
  const _consoleInfo = console.info;
  console.info = function () {
    if (arguments[0] === "[InPageEdit] QuickEdit options") {
      new Promise(resolve => {
        const intervalId = setInterval(() => {
          if (arguments[1].editText) {
            clearInterval(intervalId);
            resolve(arguments[1].editText);
          }
        }, 100);
      }).then(editText => {
        if (window._WikiplusPages)
          _WikiplusPages[mw.config.get("wgRevisionId")].sectionCache[
            arguments[1].section || ""
          ] = editText;
        if (window.Wikiplus)
          Wikiplus.preloadData[
            `${mw.config.get("wgRevisionId")}.${
              arguments[1].section || -1
            }`
          ] = editText;
      });
    }
    _consoleInfo.apply(console, arguments);
  };
})();
**/

/** 更好的 {{mouse-ripple}} **/
(function () {
  var oldMouseRipple = document.body.querySelector(
    'a.new[href="/index.php?title=Template:Mouse-ripple&action=edit&redlink=1"]'
  );
  if (!oldMouseRipple) return;
  var api = new mw.Api();
  api.get({
    action: "query",
    format: "json",
    prop: "transcludedin",
    titles: "T:Mouse-ripple",
    utf8: 1,
    formatversion: 2,
    tiprop: "pageid",
    tilimit: "max",
  }).done(function (d) {
    if (
      !Array.from(d.query.pages[0].transcludedin)
        .map(function (p) {
          return p.pageid;
        })
        .includes(mw.config.get("wgArticleId"))
    )
      return;
    // oldMouseRipple.remove();
    mw.util.addCSS(
      ".betterMouseRipple{box-sizing:border-box;width:2vw;aspect-ratio:1;position:absolute;border-radius:50%;transform:translate(-50%,-50%) scale(1);z-index:999999999;pointer-events:none;opacity:.7;transition:transform .5s}"
    );
    document.addEventListener("mousemove", function (e) {
      var ripples =
        document.body.getElementsByClassName("betterMouseRipple");
      if (ripples.length > 50)
        Array.from(ripples)
          .slice(0, ripples.length - 50)
          .forEach(function (ball) {
            return ball.remove();
          });
      var ripple = document.createElement("div");
      ripple.classList.add("betterMouseRipple");
      ripple.style.cssText =
        "border:1px solid rgb(" +
        Math.random() * 255 +
        "," +
        Math.random() * 255 +
        "," +
        Math.random() * 255 +
        ");left:" +
        (e.clientX + window.scrollX) +
        "px;top:" +
        (e.clientY + window.scrollY) +
        "px;";
      setTimeout(function () {
        return (ripple.style.transform =
          "translate(-50%, -50%) scale(0)");
      });
      setTimeout(function () {
        return ripple.remove();
      }, 500);
      document.body.appendChild(ripple);
    });
  });
})();