<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.sukasuka.cn/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-MarkRights.js</id>
	<title>MediaWiki:Gadget-MarkRights.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sukasuka.cn/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-MarkRights.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.sukasuka.cn/index.php?title=MediaWiki:Gadget-MarkRights.js&amp;action=history"/>
	<updated>2026-10-27T22:28:03Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.sukasuka.cn/index.php?title=MediaWiki:Gadget-MarkRights.js&amp;diff=18759&amp;oldid=prev</id>
		<title>RavenclawOIer：​We don&#039;t use /wiki/</title>
		<link rel="alternate" type="text/html" href="https://wiki.sukasuka.cn/index.php?title=MediaWiki:Gadget-MarkRights.js&amp;diff=18759&amp;oldid=prev"/>
		<updated>2020-10-19T03:06:47Z</updated>

		<summary type="html">&lt;p&gt;We don&amp;#039;t use /wiki/&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020年10月19日 (一) 11:06的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l65&quot;&gt;第65行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第65行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 return decodeURIComponent(username.replace(&amp;#039;User:&amp;#039;, &amp;#039;&amp;#039;).replace(/_/g, &amp;#039; &amp;#039;));&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 return decodeURIComponent(username.replace(&amp;#039;User:&amp;#039;, &amp;#039;&amp;#039;).replace(/_/g, &amp;#039; &amp;#039;));&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             username = url.match(/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\/wiki&lt;/del&gt;\/User:(.+?)$/);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             username = url.match(/\/User:(.+?)$/);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             if (username) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             if (username) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 return decodeURIComponent(username[1].replace(/_/g, &amp;#039; &amp;#039;));&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 return decodeURIComponent(username[1].replace(/_/g, &amp;#039; &amp;#039;));&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>RavenclawOIer</name></author>
	</entry>
	<entry>
		<id>https://wiki.sukasuka.cn/index.php?title=MediaWiki:Gadget-MarkRights.js&amp;diff=18755&amp;oldid=prev</id>
		<title>RavenclawOIer：​导入1个版本</title>
		<link rel="alternate" type="text/html" href="https://wiki.sukasuka.cn/index.php?title=MediaWiki:Gadget-MarkRights.js&amp;diff=18755&amp;oldid=prev"/>
		<updated>2020-10-19T03:04:06Z</updated>

		<summary type="html">&lt;p&gt;导入1个版本&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020年10月19日 (一) 11:04的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;zh-Hans-CN&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;（没有差异）&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>RavenclawOIer</name></author>
	</entry>
	<entry>
		<id>https://wiki.sukasuka.cn/index.php?title=MediaWiki:Gadget-MarkRights.js&amp;diff=18754&amp;oldid=prev</id>
		<title>WP&gt;Xiplus：​+templateeditor, transwiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.sukasuka.cn/index.php?title=MediaWiki:Gadget-MarkRights.js&amp;diff=18754&amp;oldid=prev"/>
		<updated>2020-08-17T08:13:27Z</updated>

		<summary type="html">&lt;p&gt;+templateeditor, transwiki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * 取自 oldid=46135902&lt;br /&gt;
 * MediaWiki:Gadget-MarkRights.js&lt;br /&gt;
 * 修改自&lt;br /&gt;
 * https://zh.wikipedia.wikimirror.org/w/index.php?title=Draft:MediaWiki:Gadget-MarkRights.js/50678903&amp;amp;oldid=52825311&lt;br /&gt;
 *&lt;br /&gt;
 * 在最近修改、监视列表、条目历史记录等位置以特殊格式显示有特殊权限的用户&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
$(function () {&lt;br /&gt;
    var groups = {&lt;br /&gt;
        // 全站管理型权限&lt;br /&gt;
        bureaucrat: {list: [], class: &amp;quot;markrights-bureaucrat&amp;quot;},&lt;br /&gt;
        checkuser: {list: [], class: &amp;quot;markrights-checkuser&amp;quot;},&lt;br /&gt;
        oversight: {list: [], class: &amp;quot;markrights-oversight&amp;quot;},&lt;br /&gt;
        sysop: {list: [], class: &amp;quot;markrights-sysop&amp;quot;},&lt;br /&gt;
        &amp;#039;interface-admin&amp;#039;: {list: [], class: &amp;quot;markrights-interface-admin&amp;quot;},&lt;br /&gt;
        templateeditor: {list: [], class: &amp;quot;markrights-templateeditor&amp;quot;},&lt;br /&gt;
        transwiki: {list: [], class: &amp;quot;markrights-transwiki&amp;quot;},&lt;br /&gt;
        // 页面管理型权限&lt;br /&gt;
        patroller: {list: [], class: &amp;quot;markrights-patroller&amp;quot;},&lt;br /&gt;
        rollbacker: {list: [], class: &amp;quot;markrights-rollbacker&amp;quot;},&lt;br /&gt;
        autoreviewer: {list: [], class: &amp;quot;markrights-autoreviewer&amp;quot;},&lt;br /&gt;
        // 大量操作型权限&lt;br /&gt;
        accountcreator: {list: [], class: &amp;quot;markrights-accountcreator&amp;quot;},&lt;br /&gt;
        &amp;#039;massmessage-sender&amp;#039;: {list: [], class: &amp;quot;markrights-massmessage-sender&amp;quot;},&lt;br /&gt;
        // 确认权限&lt;br /&gt;
        confirmed: {list: [], class: &amp;quot;markrights-confirmed&amp;quot;},&lt;br /&gt;
        autoconfirmed: {list: [], class: &amp;quot;markrights-autoconfirmed&amp;quot;},&lt;br /&gt;
        // 机器权限&lt;br /&gt;
        bot: {list: [], class: &amp;quot;markrights-bot&amp;quot;},&lt;br /&gt;
        flood: {list: [], class: &amp;quot;markrights-flood&amp;quot;},&lt;br /&gt;
        // IPBE&lt;br /&gt;
        &amp;#039;ipblock-exempt&amp;#039;: {list: [], class: &amp;quot;markrights-ipblock-exempt&amp;quot;},&lt;br /&gt;
    };&lt;br /&gt;
    var markUG = function () {&lt;br /&gt;
        var $users = $(&amp;#039;a.mw-userlink:not(.mw-anonuserlink)&amp;#039;);&lt;br /&gt;
        var users = {};&lt;br /&gt;
        $users.each(function (index, link) {&lt;br /&gt;
            users[link.textContent] = true;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var queue1 = [];&lt;br /&gt;
        var queue2 = [];&lt;br /&gt;
        var i = 0, n = 0;&lt;br /&gt;
        for (var user in users) {&lt;br /&gt;
            queue1.push(user);&lt;br /&gt;
            i++;&lt;br /&gt;
            if (i === 50) {&lt;br /&gt;
                queue2.push(queue1);&lt;br /&gt;
                queue1 = [];&lt;br /&gt;
                n++;&lt;br /&gt;
                i = 0;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        if (queue1.length &amp;gt; 0) {&lt;br /&gt;
            queue2.push(queue1);&lt;br /&gt;
            n++;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var getUsername = function (url) {&lt;br /&gt;
            var username = mw.util.getParamValue(&amp;#039;title&amp;#039;, url);&lt;br /&gt;
            if (username) {&lt;br /&gt;
                return decodeURIComponent(username.replace(&amp;#039;User:&amp;#039;, &amp;#039;&amp;#039;).replace(/_/g, &amp;#039; &amp;#039;));&lt;br /&gt;
            }&lt;br /&gt;
            username = url.match(/\/wiki\/User:(.+?)$/);&lt;br /&gt;
            if (username) {&lt;br /&gt;
                return decodeURIComponent(username[1].replace(/_/g, &amp;#039; &amp;#039;));&lt;br /&gt;
            }&lt;br /&gt;
            return null;&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        var done = function () {&lt;br /&gt;
            var group;&lt;br /&gt;
            $(&amp;#039;a.mw-userlink:not(.mw-anonuserlink)&amp;#039;).each(function (i, el) {&lt;br /&gt;
                var username = getUsername($(el).attr(&amp;#039;href&amp;#039;));&lt;br /&gt;
                if (username) {&lt;br /&gt;
                    for (group in groups) {&lt;br /&gt;
                        if (groups.hasOwnProperty(group)) {&lt;br /&gt;
                            if (groups[group].list.includes(username)) {&lt;br /&gt;
                                $(el).append(&amp;#039;&amp;lt;sup class=&amp;quot;&amp;#039; + groups[group].class + &amp;#039;&amp;quot;&amp;gt;&amp;lt;/sup&amp;gt;&amp;#039;);&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        var process = function (data) {&lt;br /&gt;
            var users, group;&lt;br /&gt;
            if (data.query &amp;amp;&amp;amp; data.query.users) {&lt;br /&gt;
                users = data.query.users;&lt;br /&gt;
            } else {&lt;br /&gt;
                users = [];&lt;br /&gt;
            }&lt;br /&gt;
            for (var i = 0; i &amp;lt; users.length; i++) {&lt;br /&gt;
                var user = users[i];&lt;br /&gt;
                if (user.groups) {&lt;br /&gt;
                    for (group in groups) {&lt;br /&gt;
                        if (groups.hasOwnProperty(group) &amp;amp;&amp;amp; user.groups.indexOf(group) &amp;gt; -1) {&lt;br /&gt;
                            groups[group].list.push(user.name);&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            n--;&lt;br /&gt;
            if (n &amp;lt;= 0) {&lt;br /&gt;
                done();&lt;br /&gt;
            }&lt;br /&gt;
        };&lt;br /&gt;
        var api = new mw.Api();&lt;br /&gt;
        for (var j = 0; j &amp;lt; queue2.length; j++) {&lt;br /&gt;
            api.get({&lt;br /&gt;
                format: &amp;#039;json&amp;#039;,&lt;br /&gt;
                action: &amp;#039;query&amp;#039;,&lt;br /&gt;
                list: &amp;#039;users&amp;#039;,&lt;br /&gt;
                usprop: &amp;#039;groups&amp;#039;,&lt;br /&gt;
                ususers: queue2[j].join(&amp;#039;|&amp;#039;)&lt;br /&gt;
            }).done(process);&lt;br /&gt;
        }&lt;br /&gt;
    };&lt;br /&gt;
    if (mw.config.get(&amp;#039;wgDiffNewId&amp;#039;) || mw.config.get(&amp;#039;wgDiffOldId&amp;#039;)) {&lt;br /&gt;
        // 啟用「互動式瀏覽歷史」，切換差異時重新標記&lt;br /&gt;
        mw.hook(&amp;#039;wikipage.diff&amp;#039;).add(function () { // Reload alongside the revision slider&lt;br /&gt;
            markUG();&lt;br /&gt;
        });&lt;br /&gt;
    } else if ([&amp;#039;Recentchanges&amp;#039;, &amp;#039;Recentchangeslinked&amp;#039;].includes(mw.config.get(&amp;#039;wgCanonicalSpecialPageName&amp;#039;))) {&lt;br /&gt;
        // 最近/相關更改更新時重新標記&lt;br /&gt;
        mw.hook(&amp;#039;wikipage.content&amp;#039;).add(function (element) {&lt;br /&gt;
            if (element.hasClass(&amp;#039;mw-changeslist&amp;#039;)) {&lt;br /&gt;
                markUG();&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        markUG();&lt;br /&gt;
    } else {&lt;br /&gt;
        markUG();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>WP&gt;Xiplus</name></author>
	</entry>
</feed>