Widget:TalkToc:修订间差异

H萌娘,万物皆可H的百科全书!
跳到导航 跳到搜索
imported>=海豚=
无编辑摘要
imported>=海豚=
(恢复=海豚=讨论)的编辑至Hice的最后版本)
第1行: 第1行:
<noinclude>Only for [[Talk:讨论版]] & [[Talk:提问求助区]]</noinclude><includeonly><!--{if !isset($wgTalkToc) || !$wgTalkToc}--><!--{assign var="wgTalkToc" value=true scope="global"}--><script>
<noinclude> </noinclude><includeonly><!--{if !isset($wgTalkToc) || !$wgTalkToc}--><!--{assign var="wgTalkToc" value=true scope="global"}--><script>
window.RLQ = window.RLQ || [];
window.RLQ = window.RLQ || [];
window.RLQ.push(function() {
window.RLQ.push(function() {
    if (location.hostname.includes("m.hmoegirl.com")) return;
    mw.hook('wikipage.content').add(function() {
   mw.loader.using(["oojs-ui"]).then(function() {
      if (!mw.config.get('talkTocLoaded')) {
      if (!mw.config.get('talkTocLoaded', false)) {
        mw.config.set('talkTocLoaded', window.setInterval(function() {
        mw.config.set('talkTocLoaded', true);
         if (mw.config.get('talkTocStop')) return;
       if (!$('#talkTocBox')[0]) {
         if (!$('#talkTocBox')[0]) {
         if (localStorage.getItem('widgetTalkToc') === 'disable') {
           console.debug('widgetTalkToc', 'initing');
            $('body').addClass('widgetTalkTocDisable');
           var $toc = $('#toc'),
              setTimeout(location.reload.bind(location), 150);
             $tocBox, $level2, $li, $svdDcs, $title, $toggle, $tocText,
             appendToggleButton;
 
           /* 预处理 */
           //备份目录
           $toc.after($toc.clone().hide().attr('id', 'tocClone'));
           //标记存档讨论串
            $('.saveNotice').each(function() {
             var prevHeadline = $(this).prev('h2');
              if (prevHeadline[0]) $toc.find('a[href="#' + prevHeadline.find('.mw-headline')[0].id + '"]').parent().addClass("savedDiscussion hiddenDiscussion");
            });
            });
            return;
            //整理标题列表
         }
           $toc.append("<ol style='margin-left: 1.7em;'></ol>").after('<div id="tocBox"></div>');
           $toc.children('ul').children().appendTo($toc.find('ol'));
           $toc.find(".toclevel-1 > a > .tocnumber").remove();
           $toc.appendTo("#tocBox");


         /*  预处理 */
           /*  定义变量 */
         //备份目录
           $tocBox = $('#tocBox');
         $toc.after($toc.clone().hide().attr('id', 'tocClone'));
           $level2 = $toc.find('.toclevel-2').hide();
         //整理讨论串
            $li = $toc.find('ol > li');
         $('#mw-content-text > .mw-parser-output > h2').each(function() {
            $svdDcs = $toc.find('.savedDiscussion');
            var head = $(this);
            $title = $toc.find('#toctitle').css("margin-right", "1em").append('<span id="toctoggle"></span>');
            var container = $('<' + 'div/>');
            $toggle = $title.append('<div id="toggle"></div>').find('#toggle');
            container.addClass('discussionContainer');
            $tocText = $title.after('<div id="tocText"></div>').parents('#toc').find('#tocText');
            head.addClass('discussionHead');
            appendToggleButton = function($Obj, $set, shTx, hiTx, fun) {
           head.before(container);
             if (!$Obj[0]) return false;
            head.nextUntil('h2').not('h2').appendTo(container);
              $set.append($('<a/>', {
            head.prependTo(container);
               text: function() {
           if (container.find('.saveNotice')[0] && head.nextUntil(".saveNotice").length === 0) {
                 if ($Obj.is(':visible')) return hiTx;
              $toc.find('a[href="#' + head.find('.mw-headline')[0].id.replace(/"/g, '\\\"') + '"]').parent().addClass("savedDiscussion hiddenDiscussion");
                 else return shTx;
             container.addClass('savedDiscussion');
               },
           } else if (window.CSS && CSS.supports && CSS.supports('position', 'sticky')) {
               'class': 'toggleButton',
             head.css({
               href: 'javascript:void(0);',
               position: 'sticky',
               bind: {
               top: 0,
                 click: function() {
                'background-color': bgcolor,
                   if ($Obj.is(':visible')) {
               'z-index': 2
                     $Obj.fadeOut();
              });
                     $(this).text(shTx);
              container.css('position', 'relative');
                   } else {
            }
                     $Obj.fadeIn();
         });
                     $(this).text(hiTx);
                   }
                 }
                }
              }));
              if (typeof fun == 'function') fun();
            };


         // Temporary padding fix for Microsoft Edge
            /*  业务处理*/
         // TODO: Report this issue to Edge team
           // 添加存档讨论串标题toggle按钮
         if (/Edge/.test(navigator.userAgent)) {
            if ($svdDcs[0]) {
            $('.discussionContainer').css('padding-top', '10px');
             $toggle.append($('<a/>', {
         }
               text: ' 显示已被存档标题',
 
                'class': 'toggleButton',
         //整理标题列表
               href: 'javascript:void(0);',
         $toc.append("<" + "ol style='margin-left: 1.7em;'><" + "/ol>").after('<' + 'div id="tocBox"><' + '/div>');
               bind: {
         $toc.children('ul').children().appendTo($toc.find('ol'));
                 click: function() {
         $toc.find(".toclevel-1 > a > .tocnumber").remove();
                   if ($svdDcs.hasClass('hiddenDiscussion')) {
         $toc.appendTo("#tocBox");
                     $svdDcs.removeClass('hiddenDiscussion');
 
                     $(this).text('隐藏已被存档标题');
         /*  定义变量 */
                   } else {
         $tocBox = $('#tocBox');
                     $svdDcs.addClass('hiddenDiscussion');
         $level2 = $toc.find('.toclevel-2').hide();
                     $(this).text('显示已被存档标题');
         $li = $toc.find('ol > li');
                   }
         $svdDcs = $toc.find('.savedDiscussion');
         $title = $toc.find('.toctitle').css("margin-right", "1em").append('<' + 'span id="toctoggle"><' + '/span>');
         $toggle = $title.append('<' + 'div id="toggle"><' + '/div>').find('#toggle');
         $tocText = $title.after('<' + 'div id="tocText"><' + '/div>').parents('#toc').find('#tocText');
         appendToggleButton = function($Obj, $set, shTx, hiTx, fun) {
            if (!$Obj[0]) return false;
           $set.append($('<' + 'a/>', {
             text: function() {
               if ($Obj.is(':visible')) return hiTx;
                else return shTx;
             },
             'class': 'toggleButton',
             href: 'javascript:void(0);',
             bind: {
               click: function() {
                 if ($Obj.is(':visible')) {
                   $Obj.hide();
                   $(this).text(shTx);
                 } else {
                   $Obj.show();
                   $(this).text(hiTx);
                  }
                  }
                }
                }
              }
              }));
           }));
             $tocText.append("<div class='tocText'>(有下划线标题是已被存档标题)</div>");
           if (typeof fun == 'function') fun();
           }
         };
           //添加二三四五级标题toggle按钮和标题数量
 
           appendToggleButton($level2, $toggle, '显示段落', '隐藏段落', function() {
         /* 业务处理*/
             $tocText.append("<div class='tocText'>(中括号内数字是该大段下小段数量)</div>");
         //添加二三四五级标题toggle按钮和标题数量
             $toc.find('.toclevel-1').each(function() {
         appendToggleButton($level2, $toggle, '显示段落', '隐藏段落', function() {
               var subtitleLength = $(this).find('.toctext').length - 1;
           $tocText.append("<" + "div class='tocText'>(中括号内数字是该大段下小段数量)<" + "/div>");
               if (subtitleLength) $(this).children('a').after('[' + subtitleLength + ']');
           $toc.find('.toclevel-1').each(function() {
             });
             var subtitleLength = $(this).find('.toctext').length - 1;
           });
             if (subtitleLength) $(this).children('a').after('[' + subtitleLength + ']');
           //添加整体toggle按钮
           appendToggleButton($toc.find('ol'), $title.find('#toctoggle'), '显示', '隐藏');
           $('#toc').addClass('noOrigin');
           $('.saveNotice').each(function() {
             $(this).prev('h2').addClass('savedNotice');
            });
            });
         });
           $('#mw-content-text > h2:first').before('<div id="talkTocBox"><table></table></div>');
         //添加整体toggle按钮
           var self = $('#talkTocBox table'),
         appendToggleButton($toc.find('ol'), $title.find('#toctoggle'), '显示', '隐藏');
             heads = $('#mw-content-text > h2'),
         $('#toc').addClass('noOrigin');
             a = $('<a/>').text('显示已存档讨论串标题');
         /*
           self.append('<caption/>').find('caption').append(mw.config.get('wgTitle') + '现有讨论串').append(' [').append(a).append(']<br>').append('(有下划线标题是已被存档讨论串标题)')
         $('.saveNotice').each(function() {
             .end().append('<tbody/>');
           $(this).prev('h2').addClass('savedNotice');
           heads.not('.savedNotice').each(function(i) {
         });*/
             if (i % 4 === 0) self.find('tbody:last').append('<tr/>');
         var containers = $('.discussionContainer');
             var content = $(this).nextUntil('h2');
         containers.first().before('<' + 'div id="talkTocBox"><' + 'table><' + '/table><' + '/div>');
             content.find('a').each(function() {
         var self = $('#talkTocBox table'),
               try {
           a = $('<' + 'a/>').text('显示已存档讨论串标题');
                 var href = $(this)[0].href;
         self.append('<' + 'caption/>').find('caption').append(mw.config.get('wgTitle') + '现有讨论串').append(' [').append(a).append(']<' + 'br>').append('(有下划线标题是已被存档讨论串标题)')
                 if (!href) return;
           .end().append('<' + 'tbody/>');
                 var link = new mw.Uri(href);
         containers.not('.savedDiscussion').each(function(i) {
                 if (link.host !== 'zh.moegirl.org') this.userNameErrorReason = "link.host !== 'zh.moegirl.org'";
           if (i % 4 === 0) self.find('tbody:last').append('<' + 'tr/>');
                 else if (/^\/api\.php/i.test(link.path)) this.userNameErrorReason = "!!/^\\/api\\.php/i.test(link.path)";
           var that = $(this);
                 else if (!link.query.title && /\.php$/i.test(link.path)) this.userNameErrorReason = "!!(!link.query.title && /\\.php$/i.test(link.path))";
           /* var content = that.children().not('h2');
                 else {
           content.find('a').each(function() {
                   var t = link.query.title || decodeURIComponent(link.path.substring(1));
             try {
                   if (/^user([ _]talk)?:[^\/]+$/i.test(t)) $(this).data('userName', t.replace(/^user([ _]talk)?:/i, '')).addClass('userTalkPage');
               var href = $(this)[0].href;
                   else this.userNameErrorReason = "!!/^user([ _]talk)?:[^\\/]+$/i.test(t)";
               if (!href) return;
                 }
               var link = new mw.Uri(href);
               } catch (e) {
               if (link.host !== 'www.hmoegirl.com') this.userNameErrorReason = "link.host !== 'www.hmoegirl.com'";
                 return;
               else if (/^\/api\.php/i.test(link.path)) this.userNameErrorReason = "!!/^\\/api\\.php/i.test(link.path)";
               else if (!link.query.title && /\.php$/i.test(link.path)) this.userNameErrorReason = "!!(!link.query.title && /\\.php$/i.test(link.path))";
               else {
                 var t = link.query.title || decodeURIComponent(link.path.substring(1));
                 if (/^user([ _]talk)?:[^\/]+$/i.test(t)) $(this).data('userName', t.replace(/^user([ _]talk)?:/i, '')).addClass('userTalkPage');
                 else this.userNameErrorReason = "!!/^user([ _]talk)?:[^\\/]+$/i.test(t)";
                }
                }
              } catch (e) {
              });
                return;
             content.find('.userTalkPage').each(function() {
              }
               var parent = $(this).closest('dd, p').clone();
               var now = Date.now() + (Math.random() + '').substring(2);
               parent.find('.userTalkPage').text(now);
               var regExec = RegExp(now + '.{0,20}(\\d{4}年([1-9]|1[0-2])月([1-9]|[12]\\d|3[01])日\\s{0,10}\\([一二三四五六日]\\)\\s{0,10}([01]\\d|2[0-3]):[0-5]\\d\\s{0,10}(\\([A-Z]{3}\\))?)').exec(parent.text());
               if (!regExec) {
                 this.userNameErrorReason = 'Too far away from timestamp';
                 $(this).removeClass('userTalkPage');
               } else $(this).data('userTalkTime', regExec[1]);
             });
             var userTalkPage = [];
             content.find('.userTalkPage').each(function() {
               var timestamp = $(this).data('userTalkTime').replace(/ \([A-Z]{3,4}\)$/, ''),
                 date = new Date(),
                 time = timestamp.replace(/\([日一二三四五六]\)/g, '').split(/[年月日\s\(\)\:]+/).map(function(n) {
                   return +n;
                 });
               if (!time || !time[4]) return $(this).removeClass('.userTalkPage');
               date.setFullYear(time[0]);
               date.setMonth(time[1] - 1);
               date.setDate(time[2]);
               date.setHours(time[3]);
               date.setMinutes(time[4]);
               userTalkPage.push([$(this).data('userName'), timestamp, date.getTime()]);
             });
             if (!userTalkPage[0]) userTalkPage.push(['Unsigned user/Nonstandard sign', 'Unknown Time']);
             else userTalkPage.sort(function(a, b) {
                return a[2] - b[2]
             });
             var firstName = userTalkPage[0],
               lastName = userTalkPage[userTalkPage.length - 1];
              self.find('tr:last').append('<td></td>')
               .find('td:last').append($('<a/>').attr('href', '#' + $(this).children('.mw-headline').attr('id')).append($(this).children('.mw-headline').clone().find('a').replaceWith(function() {
                 return $(this).text();
               }).end().html()))
               .append(
                 $('<div/>').addClass('signInfo').append('话题发起:' + (firstName[0] === 'Unsigned user/Nonstandard sign' ? 'Unsigned user/Nonstandard sign' : '<a href="/User_talk:' + firstName[0] + '" title="' + firstName[0] + '的讨论页" target="_blank">' + firstName[0].replace(/_/g, ' ') + '</a>'))
                 .append('<br>最后回复:' + (lastName[0] === 'Unsigned user/Nonstandard sign' ? 'Unsigned user/Nonstandard sign' : '<a href="/User_talk:' + lastName[0] + '" title="' + lastName[0] + '的讨论页" target="_blank">' + lastName[0].replace(/_/g, ' ') + '</a>') + '(' + lastName[1] + ')')
               );
           });
           if ($('.signInfo').filter(function() {
               return $(this).text().indexOf('Unsigned user/Nonstandard sign') !== -1;
             }).length * 2 > $('.signInfo').length) $('.signInfo').hide().attr('data-hidden', 'true');
           self.append('<tbody class="hr"><tr><td colspan="4"> </td></tr></tbody>').append('<tbody/>').find('tbody').not(':first').hide();
           heads.filter('.savedNotice').each(function(i) {
             if (i % 4 === 0) self.find('tbody:last').append('<tr/>');
             self.find('tr:last').append('<td><a class="savedTitle" href="#' + $(this).children('.mw-headline').attr('id') + '">' + $(this).clone().children('.mw-headline').children('.mw-headline-number').remove().end().prepend(heads.index(this) + 1 + ' ').text() + '</a></td>');
            });
            });
            content.find('.userTalkPage').each(function() {
            a.on('click', function() {
              var parent = $(this).closest(containers).clone();
              self.find('tbody').not(':first').fadeToggle();
             var now = Date.now() + (Math.random() + '').substring(2);
              $(this).text($(this).text() === ' 显示已存档讨论串标题' ? ' 隐藏已存档讨论串标题' : ' 显示已存档讨论串标题');
              parent.find('.userTalkPage').text(now);
             var regExec = RegExp(now + '(.*)(\\d{4}年([1-9]|1[0-2])月([1-9]|[12]\\d|3[01])日\\s{0,10}\\([一二三四五六日]\\)\\s{0,10}([01]\\d|2[0-3]):[0-5]\\d\\s{0,10}(\\([A-Z]{3}\\))?)').exec(parent.text());
             if (!regExec || regExec[1].length > 20) {
               this.userNameErrorReason = 'Too far away from timestamp (' + (regExec ? regExec[1].length : 'null') + ')';
               this.userNameErrorRegExec = regExec;
               $(this).removeClass('userTalkPage');
             } else $(this).data('userTalkTime', regExec[2]);
            });
            });
            var userTalkPage = [];
            self.find('tbody').not('.hr').each(function() {
           content.find('.userTalkPage').each(function() {
              var that = $(this).find('tr:last');
              var timestamp = $(this).data('userTalkTime').replace(/ \([A-Z]{3,4}\)$|\([日一二三四五六]\)/g, ''),
             switch (that.find("td").length) {
                date = new Date(),
                case 3:
               time = timestamp.split(/[年月日\s\(\)\:]+/).map(function(n) {
                 that.append("<td>&#32;</td>");
                  return +n;
                  break;
                });
                case 2:
             if (!time || !time[4]) return $(this).removeClass('.userTalkPage')[0].userNameErrorReason = 'Error Timestamp(' + timestamp + ')';
                 that.append("<td>&#32;</td><td>&#32;</td>");
             date.setFullYear(time[0]);
                 break;
             date.setMonth(time[1] - 1);
               case 1:
             date.setDate(time[2]);
                 that.append("<td>&#32;</td><td>&#32;</td><td>&#32;</td>");
             date.setHours(time[3]);
              }
             date.setMinutes(time[4]);
              userTalkPage.push([$(this).data('userName'), timestamp, date.getTime()]);
            });
            });
            if (!userTalkPage[0]) userTalkPage.push(['Unsigned user/Nonstandard sign', 'Unknown Time']);
            $('#talkTocBox caption').append('<br>[').append($('<a/>').addClass('cbutton')).append(']');
            else userTalkPage.sort(function(a, b) {
           $('#tocText').append('<br>[').append($('<a/>').addClass('cbutton')).append(']');
              return a[2] - b[2]
            $('.cbutton').on('click', function() {
             if (!localStorage.wgTocStyle || localStorage.wgTocStyle !== 'list') {
               $('#talkTocBox').fadeOut();
               $('#tocBox').fadeIn();
               localStorage.setItem('wgTocStyle', 'list');
               $('.cbutton').text('点击切换至表格格式');
             } else {
               $('#talkTocBox').fadeIn();
               $('#tocBox').fadeOut();
               localStorage.setItem('wgTocStyle', 'table');
               $('.cbutton').text('点击切换至列表格式');
              }
            });
            });
           var firstName = userTalkPage[0],
         } else if ($('.signInfo').attr('data-hidden') === 'true') {
             lastName = userTalkPage[userTalkPage.length - 1];
           console.debug('widgetTalkToc', 'sign exec error');
           titlereg[that.find('.mw-headline:first').attr('id')] = that;*/
            $('.savedDiscussion, .hiddenDiscussion, .savedNotice, .userTalkPage').removeClass('savedDiscussion hiddenDiscussion savedNotice userTalkPage');
           self.find('tr:last').append('<' + 'td><' + '/td>')
            $('#tocBox, #talkTocBox').remove();
             .find('td:last').append(
            $('#tocClone').attr('id', 'toc').removeAttr('style');
               $('<' + 'a/>').attr('href', '#' + that.find('.mw-headline:first').attr('id').replace(/"/g, "&quot;")).append(that.find('.mw-headline:first').clone().find('a').replaceWith(function() {
          } else {
                 return $(this).text();
            var boxs = $('#tocBox, #talkTocBox');
               }).end().html())
           if (boxs.is(':hidden') && boxs.is(':visible')) return;
             );
           /* .append(
             $('<' + 'div/>').addClass('signInfo').append('话题发起:' + (firstName[0] === 'Unsigned user/Nonstandard sign' ? 'Unsigned user/Nonstandard sign' : '<' + 'a href="/User_talk:' + firstName[0] + '" title="' + firstName[0] + '的讨论页" target="_blank">' + firstName[0].replace(/_/g, ' ') + '<' + '/a>'))
             .append('<' + 'br>最后回复:' + (lastName[0] === 'Unsigned user/Nonstandard sign' ? 'Unsigned user/Nonstandard sign' : '<' + 'a href="/User_talk:' + lastName[0] + '" title="' + lastName[0] + '的讨论页" target="_blank">' + lastName[0].replace(/_/g, ' ') + '<' + '/a>') + '(' + lastName[1] + ')')
           ); */
         });
         /* if ($('.signInfo').filter(function() {
             return $(this).text().indexOf('Unsigned user/Nonstandard sign') !== -1;
            }).length * 2 > $('.signInfo').length) $('.signInfo').hide(); */
         self.append('<' + 'tbody class="hr"><' + 'tr><' + 'td colspan="4"> <' + '/td><' + '/tr><' + '/tbody>').append('<' + 'tbody/>').find('tbody').not(':first').hide();
         containers.filter('.savedDiscussion').each(function(i) {
            if (i % 4 === 0) self.find('tbody:last').append('<' + 'tr/>');
            self.find('tr:last').append('<' + 'td><' + 'a class="savedTitle" href="#' + $(this).find('.mw-headline:first').attr('id').replace(/"/g, "&quot;") + '">' + $(this).clone().find('.mw-headline:first').children('.mw-headline-number').remove().end().prepend(containers.index(this) + 1 + ' ').text() + '<' + '/a><' + '/td>');
          });
         self.find('tbody').not('.hr').each(function() {
            var that = $(this).find('tr:last');
           that.append(("<" + "td>&#32;<" + "/td>").repeat(4 - that.find("td").length));
         });
         $('#talkTocBox caption').append('<' + 'br>[').append($('<' + 'a/>').addClass('cbutton')).append(']');
         $('#tocText').append('<' + 'br>[').append($('<' + 'a/>').addClass('cbutton')).append(']');
         $('.cbutton').on('click', function() {
            if (!localStorage.wgTocStyle || localStorage.wgTocStyle !== 'list') {
            if (!localStorage.wgTocStyle || localStorage.wgTocStyle !== 'list') {
              $('#talkTocBox').hide();
              $('#talkTocBox').fadeIn();
              $('#tocBox').show();
              $('.cbutton').text('点击切换至列表格式');
              localStorage.setItem('wgTocStyle', 'list');
           } else {
              $('#tocBox').fadeIn();
              $('.cbutton').text('点击切换至表格格式');
              $('.cbutton').text('点击切换至表格格式');
             $(toclist.filter(function(l) {
               return l !== "tocBox";
             }).map(function(l) {
               return 'a[href="#' + l + '"]';
             }).join(', ')).attr("href", "#tocBox");
           } else {
             $('#talkTocBox').show();
             $('#tocBox').hide();
             localStorage.setItem('wgTocStyle', 'table');
             $('.cbutton').text('点击切换至列表格式');
             $(toclist.filter(function(l) {
               return l !== "talkTocBox";
             }).map(function(l) {
               return 'a[href="#' + l + '"]';
             }).join(', ')).attr("href", "#talkTocBox");
            }
            }
         });
         if (!localStorage.wgTocStyle || localStorage.wgTocStyle !== 'list') {
           $('#talkTocBox').show();
           $('.cbutton').text('点击切换至列表格式');
           $(toclist.filter(function(l) {
             return l !== "talkTocBox";
           }).map(function(l) {
             return 'a[href="#' + l + '"]';
           }).join(', ')).attr("href", "#talkTocBox");
         } else {
           $('#tocBox').show();
           $('.cbutton').text('点击切换至表格格式');
           $(toclist.filter(function(l) {
             return l !== "tocBox";
           }).map(function(l) {
             return 'a[href="#' + l + '"]';
           }).join(', ')).attr("href", "#tocBox");
          }
          }
         $tocBox.css({
       }, 730));
           position: 'relative',
           'z-index': 10
         });
         $(window).on('hashchange', function(e) {
           try {
             var hash = location.hash.substring(1);
             var target = $('[id="' + decodeURIComponent(hash).replace(/"/g, '\\\"') + '"]');
             if (target[0]) {
               var scrollTop = target.offset().top;
               if (target.closest('.discussionHead').length === 0) {
                 var parent = target.closest('h1, h2, h3, h4, h5, h6');
                 if (parent.length > 0) {
                   scrollTop -= parent.outerHeight(true) - parent.height();
                   var h = parent.prevAll('h1, h2, h3, h4, h5, h6').filter(function() {
                     return $(this).css('position') === 'sticky';
                   });
                   if (h.length > 0) scrollTop -= h.outerHeight();
                 }
               } else scrollTop = target.closest('.discussionContainer').offset().top;
               setTimeout(function() {
                 $('html,body').animate({
                   scrollTop: scrollTop
                 }, 0);
               }, 1);
               return false;
             }
           } catch (e) {
             return;
           }
         }).trigger('hashchange');
         const g = ["sysop", "patroller"];
         if (mw.config.get("wgUserGroups").filter(n => g.includes(n)).length === 0) {
           switch (mw.config.get("wgArticleId")) {
             case 256948:
             case 17801:
               $("#right-navigation").addClass("no-need-to-edit-whole-page").find("#p-views > ul").append('<li id="ca-no-need-to-edit-whole-page-notice" class="collapsible"><span><a href="javascript:void(0);">请勿编辑全文</a></span></li>').find("#ca-no-need-to-edit-whole-page-notice a").on("click", function() {
                 var messageDialog = new OO.ui.MessageDialog();
                 var windowManager = new OO.ui.WindowManager();
                 $("body").append(windowManager.$element);
                 windowManager.addWindows([messageDialog]);
                 messageDialog.title.$label.html("萌娘百科提醒您<br>公共讨论页无需编辑全文");
                 messageDialog.message.$label.html("<br>提问求助区、讨论版属于公共讨论页,一般来说无须编辑全文,故我们隐藏了入口。<hr>您可以点击下方标题旁的<b>【编辑】链接</b>来编辑对应段落,也可以点击右上方<b>【添加话题】链接</b>来新增话题。");
                 windowManager.openWindow(messageDialog, {
                   actions: [{
                     action: 'accept',
                     label: '我知道了',
                     flags: 'primary'
                   }]
                 });
               });
               break;
           }
         }
       }
      }
      }
    });
    });
});
});
</script><style>
</script><style>
/* <pre> */
#tocBox {
.widgetTalkTocEnable #tocBox {
    max-width: 37%;
    max-width: 37%;
    min-width: 300px;
    min-width: 300px;
    float: left;
    float: left;
}
}
.widgetTalkTocEnable #toc.noOrigin {
#toc.noOrigin {
    display: table;
    display: table;
}
}
.widgetTalkTocEnable div.toc#toc {
div.toc#toc {
    min-width: 300px;
    min-width: 300px;
    box-sizing: border-box;
    box-sizing: border-box;
第300行: 第235行:
    padding-left: 1em;
    padding-left: 1em;
}
}
.widgetTalkTocEnable div.toc#toc div.toctitle h2 {
div.toc#toc div#toctitle h2 {
    margin-right: 1em;
    margin-right: 1em;
}
}
.widgetTalkTocEnable div.toc.noOrigin#toc .toctoggle {
div.toc.noOrigin#toc .toctoggle {
    display: none;
    display: none;
}
}
.widgetTalkTocEnable div#toc.toc #toctoggle,
div#toc.toc #toctoggle,
.widgetTalkTocEnable div#toc.toc #toggle {
div#toc.toc #toggle {
    font-size: 94%;
    font-size: 94%;
    -webkit-user-select: none;
    -webkit-user-select: none;
第315行: 第250行:
    user-select: none;
    user-select: none;
}
}
.widgetTalkTocEnable div#toc.toc .toggleButton:before {
div#toc.toc .toggleButton:before {
    content: "[";
    content: "[";
    color: black;
    color: black;
}
}
.widgetTalkTocEnable div#toc.toc .toggleButton:after {
div#toc.toc .toggleButton:after {
    content: "]";
    content: "]";
    color: black;
    color: black;
}
}
.widgetTalkTocEnable #toc .toggleButton:first-child {
#toc .toggleButton:first-child {
    margin-right: 0.5em;
    margin-right: 0.5em;
}
}
.widgetTalkTocEnable div#toc.toc .toggleButton:last-child {
div#toc.toc .toggleButton:last-child {
    margin-right: 0;
    margin-right: 0;
}
}
.widgetTalkTocEnable div#toc.toc .hiddenDiscussion {
div#toc.toc .hiddenDiscussion {
    visibility: hidden;
    visibility: hidden;
    height: 0;
    height: 0;
    margin: 0;
    margin: 0;
}
}
.widgetTalkTocEnable div.toc#toc li.savedDiscussion a {
div.toc#toc li.savedDiscussion a {
    text-decoration: underline;
    text-decoration: underline;
}
}
.widgetTalkTocEnable #toc div#tocText {
#toc div#tocText {
    text-align: center;
    text-align:center;
}
}
.widgetTalkTocEnable #toc div.tocText {
#toc div.tocText {
    display: inline-block;
    display:inline-block;
}
}
.widgetTalkTocEnable
/* 节操酱的beg */
/* 节操酱的beg */
.widgetTalkTocEnable #content ol,
#content ol,
.widgetTalkTocEnable #content ul {
#content ul {
    margin: 0 !important;
    margin: 0 !important;
    padding: 0.3em 0 0 1.6em !important;
    padding: 0.3em 0 0 1.6em !important;
}
}
.widgetTalkTocEnable #toc .toclevel-1>ul {
#toc .toclevel-1 > ul {
    padding-left: 0 !important;
    padding-left: 0!important;
}
}
.widgetTalkTocEnable
/* 由于节操酱的beg导致分类那边有秘制空白 */
/* 由于节操酱的beg导致分类那边有秘制空白 */
.widgetTalkTocEnable #content #catlinks ol,
#content #catlinks ol,
.widgetTalkTocEnable #content #catlinks ul {
#content #catlinks ul {
    padding: 0 !important;
    padding: 0 !important;
}
}
第364行: 第297行:
    display: none;
    display: none;
}
}
.widgetTalkTocDisable #toc {
#talkTocBox td {
   display: table;
}
.widgetTalkTocEnable #talkTocBox td {
    text-align: center;
    text-align: center;
    border: 1px solid #a7d7f9;
    border: 1px solid #a7d7f9;
第373行: 第303行:
    padding: 0 1em;
    padding: 0 1em;
}
}
.widgetTalkTocEnable #talkTocBox .hr td {
#talkTocBox .hr td {
    width: 100%;
    width: 100%;
}
}
.widgetTalkTocEnable #talkTocBox table {
#talkTocBox table {
    border-collapse: collapse;
    border-collapse: collapse;
    margin-bottom: 1em;
    margin-bottom: 1em;
    width: 100%;
    width: 100%;
}
}
.widgetTalkTocEnable #talkTocBox a {
#talkTocBox a {
    cursor: pointer;
    cursor: pointer;
}
}
.widgetTalkTocEnable #talkTocBox .savedTitle {
#talkTocBox .savedTitle {
    text-decoration: underline;
    text-decoration: underline;
}
}
.widgetTalkTocEnable .cbutton {
.cbutton {
    cursor: pointer;
    cursor: pointer;
}
}
.signInfo {
   display: none !important;
}
#right-navigation.no-need-to-edit-whole-page ul {
   display: flex;
}
#right-navigation.no-need-to-edit-whole-page ul>li {
   order: 999;
}
#right-navigation.no-need-to-edit-whole-page ul>li#ca-view {
   order: 1;
}
#right-navigation.no-need-to-edit-whole-page ul>li#ca-no-need-to-edit-whole-page-notice {
   order: 2;
   font-style: italic;
}
#right-navigation.no-need-to-edit-whole-page ul>li#ca-no-need-to-edit-whole-page-notice a,
#right-navigation.no-need-to-edit-whole-page ul>li#ca-no-need-to-edit-whole-page-notice a:visited {
   color: #222;
   text-decoration: none;
}
#right-navigation.no-need-to-edit-whole-page ul>li#Wikiplus-Edit-TopBtn,
#right-navigation.no-need-to-edit-whole-page ul>li#ca-edit,
#right-navigation.no-need-to-edit-whole-page ul>li#ca-editTopSection {
   display: none;
}
.cloaked-element.transparent-shield {
   z-index: 9999999;
}
/* </pre> */
</style><!--{/if}--></includeonly>
</style><!--{/if}--></includeonly>

2020年3月25日 (三) 12:04的版本