<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-Difflink.js</id>
	<title>MediaWiki:Gadget-Difflink.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-Difflink.js"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-Difflink.js&amp;action=history"/>
	<updated>2026-07-15T17:39:09Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-Difflink.js&amp;diff=3587645&amp;oldid=prev</id>
		<title>imported&gt;Diskdance：​使用HanAssist</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-Difflink.js&amp;diff=3587645&amp;oldid=prev"/>
		<updated>2025-07-31T05:28:23Z</updated>

		<summary type="html">&lt;p&gt;使用HanAssist&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * Copyright (c) 2020-present, 安忆.&lt;br /&gt;
 *&lt;br /&gt;
 * @author 安忆 [[zh:U:安忆]]&lt;br /&gt;
 * @file Difflink.js&lt;br /&gt;
 * @license GPL v3&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
 * 如想自定义复制结果中的文本可通过向自己的common.js中加入以下内容：&lt;br /&gt;
 *   window.difflink = [&amp;#039;版本差异&amp;#039;, &amp;#039;固定版本&amp;#039;];&lt;br /&gt;
 * 如想使用默认值1，但自定值2，请将值1留空，如下例：&lt;br /&gt;
 *   window.difflink = [&amp;#039;&amp;#039;, &amp;#039;固定版本&amp;#039;];&lt;br /&gt;
 */&lt;br /&gt;
(function diffLink() {&lt;br /&gt;
  const { conv } = require(&amp;#039;ext.gadget.HanAssist&amp;#039;);&lt;br /&gt;
  var $body = $(document).find(&amp;#039;body&amp;#039;);&lt;br /&gt;
  var isRevisionPage = $body.find(&amp;#039;#contentSub #mw-revision-nav&amp;#039;).length === 1 || $body.find(&amp;#039;main#content&amp;gt;.pre-content #mw-revision-nav&amp;#039;).length === 1;&lt;br /&gt;
  if (!(isRevisionPage || $body.find(&amp;#039;table&amp;#039;).hasClass(&amp;#039;diff&amp;#039;))) {&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  mw.loader.using([&amp;#039;mediawiki.api&amp;#039;, &amp;#039;mediawiki.util&amp;#039;, &amp;#039;mediawiki.widgets&amp;#039;, &amp;#039;oojs-ui-windows&amp;#039;]).then(function () {&lt;br /&gt;
    var defaultTextArray = [conv({ hans: &amp;#039;版本差异&amp;#039;, hant: &amp;#039;版本差異&amp;#039; }), &amp;#039;固定版本&amp;#039;];&lt;br /&gt;
    if (typeof window.difflink !== &amp;#039;undefined&amp;#039; &amp;amp;&amp;amp; Object.prototype.toString.call(window.difflink) === &amp;#039;[object Array]&amp;#039;) {&lt;br /&gt;
      if (window.difflink[0] !== &amp;#039;&amp;#039; &amp;amp;&amp;amp; Object.prototype.toString.call(window.difflink[0]) === &amp;#039;[object String]&amp;#039;) {&lt;br /&gt;
        defaultTextArray[0] = window.difflink[0];&lt;br /&gt;
      }&lt;br /&gt;
      if (window.difflink[1] !== &amp;#039;&amp;#039; &amp;amp;&amp;amp; Object.prototype.toString.call(window.difflink[1]) === &amp;#039;[object String]&amp;#039;) {&lt;br /&gt;
        defaultTextArray[1] = window.difflink[1];&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    var isMinerva = mw.config.get(&amp;#039;skin&amp;#039;) === &amp;#039;minerva&amp;#039;;&lt;br /&gt;
    var portletId = &amp;#039;p-cactions&amp;#039;;&lt;br /&gt;
    if ($body.hasClass(&amp;#039;mw-special-MobileDiff&amp;#039;)) {&lt;br /&gt;
      portletId = &amp;#039;mw-mf-diffarea&amp;#039;;&lt;br /&gt;
    } else if (isMinerva) {&lt;br /&gt;
      portletId = &amp;#039;p-tb&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
    var ins = function ins(_ref) {&lt;br /&gt;
      var text = _ref.text,&lt;br /&gt;
        tooltip = _ref.tooltip,&lt;br /&gt;
        link = _ref.link,&lt;br /&gt;
        defaultTextArrayIndex = _ref.defaultTextArrayIndex,&lt;br /&gt;
        isPermaLink = _ref.isPermaLink;&lt;br /&gt;
      var _element = document.getElementById(&amp;#039;t-difflink&amp;#039;);&lt;br /&gt;
      if (!_element) {&lt;br /&gt;
        _element = mw.util.addPortletLink(portletId, &amp;#039;#&amp;#039;, text, &amp;#039;t-difflink&amp;#039;, tooltip);&lt;br /&gt;
        if (!_element) {&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      var element = _element.querySelector(&amp;#039;a&amp;#039;);&lt;br /&gt;
      if (!element) {&lt;br /&gt;
          return;&lt;br /&gt;
      }&lt;br /&gt;
      if (isMinerva) {&lt;br /&gt;
        var style = document.createElement(&amp;#039;style&amp;#039;);&lt;br /&gt;
        style.id = &amp;#039;css-difflink&amp;#039;;&lt;br /&gt;
        style.appendChild(document.createTextNode(&amp;#039;.mw-ui-icon-portletlink-t-difflink{background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%3E%3Cg%20fill%3D%22%2354595d%22%3E%3Cpath%20d%3D%22M4.83%2015h2.91a4.88%204.88%200%2001-1.55-2H5a3%203%200%20110-6h3a3%203%200%20012.82%204h2.1a4.82%204.82%200%2000.08-.83v-.34A4.83%204.83%200%20008.17%205H4.83A4.83%204.83%200%20000%209.83v.34A4.83%204.83%200%20004.83%2015z%22%2F%3E%3Cpath%20d%3D%22M15.17%205h-2.91a4.88%204.88%200%20011.55%202H15a3%203%200%20110%206h-3a3%203%200%2001-2.82-4h-2.1a4.82%204.82%200%2000-.08.83v.34A4.83%204.83%200%200011.83%2015h3.34A4.83%204.83%200%200020%2010.17v-.34A4.83%204.83%200%200015.17%205z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)}&amp;#039;));&lt;br /&gt;
        document.head.appendChild(style);&lt;br /&gt;
      }&lt;br /&gt;
      if (portletId === &amp;#039;mw-mf-diffarea&amp;#039;) {&lt;br /&gt;
        $(&amp;#039;#css-difflink&amp;#039;).html($(&amp;#039;#css-difflink&amp;#039;).html() + &amp;#039;#t-difflink{float:right}#t-difflink&amp;gt;a&amp;gt;span:first-child{vertical-align:text-bottom;padding-right:.5em}&amp;#039;);&lt;br /&gt;
      }&lt;br /&gt;
      element.onclick = function (event) {&lt;br /&gt;
        event.preventDefault();&lt;br /&gt;
        var $element = $(&amp;#039;&amp;lt;div&amp;gt;&amp;#039;),&lt;br /&gt;
          hash = isPermaLink ? decodeURIComponent(location.hash) : &amp;#039;&amp;#039;;&lt;br /&gt;
        [&lt;br /&gt;
        	link,&lt;br /&gt;
        	&amp;#039;[[&amp;#039; + link + hash + &amp;#039;]]&amp;#039;,&lt;br /&gt;
        	&amp;#039;[[&amp;#039; + link + hash + &amp;#039;|&amp;#039; + defaultTextArray[defaultTextArrayIndex] + &amp;#039;]]&amp;#039;,&lt;br /&gt;
        	window.location.protocol + mw.config.get(&amp;#039;wgServer&amp;#039;) + mw.config.get(&amp;#039;wgArticlePath&amp;#039;).replace(&amp;#039;$1&amp;#039;, link),&lt;br /&gt;
        	window.location.protocol + mw.config.get(&amp;#039;wgServer&amp;#039;) + mw.config.get(&amp;#039;wgArticlePath&amp;#039;).replace(&amp;#039;$1&amp;#039;, &amp;#039;Special:PermaLink/&amp;#039;) + mw.config.get(&amp;#039;wgRevisionId&amp;#039;) + hash&lt;br /&gt;
        ].forEach(function (value) {&lt;br /&gt;
          $element.append(new mw.widgets.CopyTextLayout({&lt;br /&gt;
            align: &amp;#039;top&amp;#039;,&lt;br /&gt;
            copyText: value&lt;br /&gt;
          }).$element);&lt;br /&gt;
        });&lt;br /&gt;
        /android|iphone|mobile/i.test(navigator.userAgent) ? OO.ui.alert($element) : OO.ui.alert($element, {&lt;br /&gt;
          size: &amp;#039;medium&amp;#039;&lt;br /&gt;
        });&lt;br /&gt;
      };&lt;br /&gt;
    };&lt;br /&gt;
    var init = function init(_ref2) {&lt;br /&gt;
      var diffId = _ref2.diffId,&lt;br /&gt;
        oldId = _ref2.oldId,&lt;br /&gt;
        revisionId = _ref2.revisionId;&lt;br /&gt;
      if (diffId) {&lt;br /&gt;
        var buildLink = function buildLink(_oldId) {&lt;br /&gt;
          var link = &amp;#039;Special:Diff/&amp;#039;;&lt;br /&gt;
          if (_oldId) {&lt;br /&gt;
            link += _oldId + &amp;#039;/&amp;#039;;&lt;br /&gt;
          }&lt;br /&gt;
          link += diffId;&lt;br /&gt;
          ins({&lt;br /&gt;
            text: conv({ hans: &amp;#039;当前差异链接&amp;#039;, hant: &amp;#039;當前差異連結&amp;#039; }),&lt;br /&gt;
            tooltip: conv({ hans: &amp;#039;复制链接到当前差异版本的维基语法&amp;#039;, hant: &amp;#039;複製連結到當前差異版本的維基語法&amp;#039; }),&lt;br /&gt;
            link: link,&lt;br /&gt;
            defaultTextArrayIndex: 0&lt;br /&gt;
          });&lt;br /&gt;
        };&lt;br /&gt;
        buildLink(oldId);&lt;br /&gt;
        if (oldId) {&lt;br /&gt;
          new mw.Api({ userAgent: &amp;#039;Gadget-Difflink&amp;#039; }).get({&lt;br /&gt;
            action: &amp;#039;compare&amp;#039;,&lt;br /&gt;
            format: &amp;#039;json&amp;#039;,&lt;br /&gt;
            formatversion: &amp;#039;2&amp;#039;,&lt;br /&gt;
            prop: &amp;#039;ids&amp;#039;,&lt;br /&gt;
            fromrev: diffId,&lt;br /&gt;
            torelative: &amp;#039;prev&amp;#039;&lt;br /&gt;
          }).then(function (response) {&lt;br /&gt;
            if (diffId === mw.config.get(&amp;#039;wgDiffNewId&amp;#039;) &amp;amp;&amp;amp; response.compare &amp;amp;&amp;amp; response.compare.fromrevid === mw.config.get(&amp;#039;wgDiffOldId&amp;#039;)) {&lt;br /&gt;
              buildLink(false);&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
        }&lt;br /&gt;
      } else if (revisionId &amp;amp;&amp;amp; isRevisionPage) {&lt;br /&gt;
        ins({&lt;br /&gt;
          text: conv({ hans: &amp;#039;当前修订链接&amp;#039;, hant: &amp;#039;當前修訂連結&amp;#039; }),&lt;br /&gt;
          tooltip: conv({ hans: &amp;#039;复制链接到当前修订版本的维基语法&amp;#039;, hant: &amp;#039;複製連結到當前修訂版本的維基語法&amp;#039; }),&lt;br /&gt;
          link: &amp;#039;Special:PermaLink/&amp;#039; + revisionId,&lt;br /&gt;
          defaultTextArrayIndex: 1,&lt;br /&gt;
          isPermaLink: true&lt;br /&gt;
        });&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    mw.hook(&amp;#039;wikipage.content&amp;#039;).add(function ($content) {&lt;br /&gt;
      if ($content.attr(&amp;#039;id&amp;#039;) !== &amp;#039;mw-content-text&amp;#039;) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      init({&lt;br /&gt;
        diffId: mw.config.get(&amp;#039;wgDiffNewId&amp;#039;),&lt;br /&gt;
        oldId: mw.config.get(&amp;#039;wgDiffOldId&amp;#039;),&lt;br /&gt;
        revisionId: mw.config.get(&amp;#039;wgRevisionId&amp;#039;)&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>imported&gt;Diskdance</name></author>
	</entry>
</feed>