“Help:沙盒”与“Widget:TalkToc”:页面之间的差异

H萌娘,万物皆可H的百科全书!
(页面间差异)
跳到导航 跳到搜索
imported>=海豚=
([InPageEdit] 没有编辑摘要)
 
imported>=海豚=
无编辑摘要
 
第1行: 第1行:
<noinclude>{{沙盒顶部}}</noinclude>
<noinclude>Only for [[Talk:讨论版]] & [[Talk:提问求助区]]</noinclude><includeonly><!--{if !isset($wgTalkToc) || !$wgTalkToc}--><!--{assign var="wgTalkToc" value=true scope="global"}--><script>
<div class="mainpage">
window.RLQ = window.RLQ || [];
<div class="mainpage-headtitle">'''{{color|#8b8b22| 欢迎来到H萌娘~万物皆可H~}}'''</div>
window.RLQ.push(function() {
<div class="row">
   mw.hook('wikipage.content').add(function() {
<div class="five columns"><!-- 这里和下一行要加起来小于等于十二才能保持在同一行-->
     if (!mw.config.get('talkTocLoaded')) {
<div class="mainpage-container">
       mw.config.set('talkTocLoaded', window.setInterval(function() {
<div class="mainpage-column mainpage-flex-five mainpage-order-one">
         if (mw.config.get('talkTocStop')) return;
{{首页/典范条目}}
         if (!$('#talkTocBox')[0]) {
</div>
           console.debug('widgetTalkToc', 'initing');
<div class="mainpage-subject mainpage-flex-one">
           var $toc = $('#toc'),
<h2>主题板块</h2>
             $tocBox, $level2, $li, $svdDcs, $title, $toggle, $tocText,
<div class="mainpage-flex">
             appendToggleButton;
<div class="mainpage-flex-one mainpage-page"><img class="mainpage-page-img" src="https://www.hmoegirl.com/images/thumb/b/b8/77048555_0.jpg/240px-77048555_0.jpg">
               $('#talkTocBox').fadeIn();
<p class="mainpage-page-intro">[[模板:萌属性|萌属性]]</p>
               $('#tocBox').fadeOut();
</div>
               localStorage.setItem('wgTocStyle', 'table');
<div class="mainpage-flex-one mainpage-page"><img class="mainpage-page-img" src="https://www.hmoegirl.com/images/thumb/c/c1/76988941.jpg/240px-76988941.jpg">
           /* 预处理 */
<p class="mainpage-page-intro">[[模板:性属性|性属性]]</p>
           // 备份目录
</div>
           $toc.after($toc.clone().hide().attr('id', 'tocClone'));
<div class="mainpage-flex-one mainpage-page"><img class="mainpage-page-img" src="https://www.hmoegirl.com/images/thumb/f/f2/62236426.jpg/320px-62236426.jpg">
           // 标记存档讨论串
<p class="mainpage-page-intro">[[模板:BDSM|BDSM]]</p>
           $('.saveNotice').each(function() {
</div>
             var prevHeadline = $(this).prev('h2');
</div>
             if (prevHeadline[0]) $toc.find('a[href="#' + prevHeadline.find('.mw-headline')[0].id + '"]').parent().addClass("savedDiscussion hiddenDiscussion");
<div class="mainpage-flex">
           });
<div class="mainpage-flex-one mainpage-page"><img class="mainpage-page-img" src="https://www.hmoegirl.com/images/thumb/e/ef/Sample-9a8d7c3c87a67872dad5a794bc27bf28.jpg/240px-Sample-9a8d7c3c87a67872dad5a794bc27bf28.jpg">
           // 整理标题列表
<p class="mainpage-page-intro">[[模板:萌娘化|萌娘化]]</p>
           $toc.append("<ol style='margin-left: 1.7em;'></ol>").after('<div id="tocBox"></div>');
</div>
           $toc.children('ul').children().appendTo($toc.find('ol'));
<div class="mainpage-flex-one mainpage-page"><img class="mainpage-page-img" src="https://www.hmoegirl.com/images/thumb/7/72/026-027.jpg/320px-026-027.jpg">
           $toc.find(".toclevel-1 > a > .tocnumber").remove();
<p class="mainpage-page-intro">[[ 模板:酷刑|酷刑]]</p>
           $toc.appendTo("#tocBox");
</div>
<div class="mainpage-flex-one mainpage-page"><img class="mainpage-page-img" src="https://www.hmoegirl.com/images/thumb/3/36/69836691.jpg/240px-69836691.jpg">
<p class="mainpage-page-intro">[[H萌娘:主题板块导航|更多主题]]</p>
</div>
</div>
</div>
<div class="mobileonly" style="display:inline-block"><div class="mainpage-counter">
<div class="mainpage-counter-container">
<h2>最新条目</h2>
<p><big>现有[[Special:Statistics|'''{{NUMBEROFARTICLES}}''']]篇条目,[[Special:新建文件|'''{{NUMBEROFFILES}}''']]张图片,[[特殊:Listusers|'''{{NUMBEROFUSERS}}''']]名注册用户,[[特殊:Statistics|'''{{NUMBEROFEDITS}}''']]次编辑。</big></p>
<p><dynamicpagelist>
namespace=main
ordermethod=created
count=25
mode=inline
</dynamicpagelist>……</p>
</div>
</div></div>
<div class="mainpage-newpage">
<p>H萌娘是[[特殊:创建账户|注册]]制网站,你可以使用谜の账号[[特殊:用户登录|登录]]并进行贡献。


  在查阅百科时注意到有错漏的话就来[[zhmoe:Help: 萌娘百科编辑的快速养成方法-从入门到精通|参与编辑]],与我们一同完善H萌娘吧~!
           /* 定义变量 */
           $tocBox = $('#tocBox');
           $level2 = $toc.find('.toclevel-2').hide();
           $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.fadeOut();
                     $(this).text(shTx);
                   } else {
                     $Obj.fadeIn();
                     $(this).text(hiTx);
                   }
                 }
               }
             }));
             if (typeof fun == 'function') fun();
           };


  您也可以来[[ 讨论:讨论版|讨论版]]‎进行讨论,并发表您对建设H萌娘的意见哟☆~</p>
           /* 业务处理*/
</div>
           //添加存档 讨论 串标题toggle按钮
<div class="mainpage-DYK mainpage-flex-one">
           if ($svdDcs[0]) {
<h2>专 索引</h2>
             $toggle.append($('<a/>', {
{{首页/专 题}}
               text: '显示已被存档标题',
</div>
               'class': 'toggleButton',
<div class="mainpage-needHelp mainpage-flex-one">
               href: 'javascript:void(0);',
<h2> 填坑区</h2>
               bind: {
<div class="mainpage-flex mainpage-text-align-center">
                 click: function() {
<div class="mainpage-flex-one">[[H萌娘:创建新条目|创建新条目]]</div>
                   if ($svdDcs.hasClass('hiddenDiscussion')) {
<div class="mainpage-flex-one">[[H萌娘:条目创建请求|请求创建的条目]]</div>
                     $svdDcs.removeClass('hiddenDiscussion');
</div>
                     $(this).text('隐藏已被存档标 ');
<div class="mainpage-flex mainpage-text-align-center">
                   } else {
<div class="mainpage-flex-one">[[:分类:需要翻译的条目|需要翻译的条目]]</div>
                     $svdDcs.addClass('hiddenDiscussion');
<div class="mainpage-flex-one">[[:分类:急需改进|急需改进的条目]]</div>
                     $(this).text('显示已被存档标 ');
</div>
                   }
<div class="mainpage-flex mainpage-text-align-center">
                 }
<div class="mainpage-flex-one">[[:分类:需要长期关注及更新的条目|需要长期关注并更新的条目]]</div>
               }
<div class="mainpage-flex-one">[[:分类:需要长期同步的条目|需要长期同步的条目]]</div>
             }));
</div>
             $tocText.append("<div class='tocText'> (有下划线标题是已被存档标题)</div>");
</div>
           }
<div class="mainpage-help mainpage-flex-one">
           // 添加二三四五级标题toggle按钮和标题数量
<h2>帮助·统计</h2>
           appendToggleButton($level2, $toggle, '显示段落', '隐藏段落', function() {
<div class="mainpage-flex mainpage-text-align-center">
             $tocText.append("<div class='tocText'> (中括号内数字是该大段下小段数量)</div>");
<div class="mainpage-flex-one">[[ 模板:工具箱|工具箱]]</div>
             $toc.find('.toclevel-1').each(function() {
<div class="mainpage-flex-one">[[ 帮助:沙盒|沙盒测试]]</div>
               var subtitleLength = $(this).find('.toctext').length - 1;
</div>
               if (subtitleLength) $(this).children('a').after('[' + subtitleLength + ']');
<div class="mainpage-flex mainpage-text-align-center">
             });
<div class="mainpage-flex-one"><del>[[ 讨论:提问求助区| 提问求助区]]</del></div>
           });
<div class="mainpage-flex-one">[[ 讨论:讨论版|讨论版]]</div>
           // 添加整体toggle按钮
</div>
           appendToggleButton($toc.find('ol'), $title.find('#toctoggle'), '显示', '隐藏');
<div class="mainpage-flex mainpage-text-align-center">
           $('#toc').addClass('noOrigin');
<div class="mainpage-flex-one">[[:Category:帮助| 帮助列表]]</div>
           $('.saveNotice').each(function() {
<div class="mainpage-flex-one">[[ 萌百:Help:Wiki入门|WIKI使用指南]]</div>
             $(this).prev('h2').addClass('savedNotice');
</div>
           });
<div class="mainpage-flex mainpage-text-align-center">
           $('#mw-content-text > h2:first').before('<div id="talkTocBox"><table></table></div>');
<div class="mainpage-flex-one">[[萌百:Help: 萌娘百科编辑的快速养成方法-从入门到精通|入门教程]]</div>
           var self = $('#talkTocBox table'),
<div class="mainpage-flex-one">[[萌百:萌娘百科:萌娘百科编辑规范|编辑规范]]</div>
             heads = $('#mw-content-text > h2'),
</div>
             a = $('<a/>').text('显示已存档讨论串标题');
<div class="mainpage-flex mainpage-text-align-center">
           self.append('<caption/>').find('caption').append(mw.config.get('wgTitle') + '现有讨论串').append(' [').append(a).append(']<br>').append('(有下划线标题是已被存档讨论串标题)')
<div class="mainpage-flex-one">[[特殊:特殊 面|特殊界面列表]]</div>
             .end().append('<tbody/>');
<div class="mainpage-flex-one">[[:分类:页面维护报告分类|页面维护报告分类]]</div>
           heads.not('.savedNotice').each(function(i) {
</div>
             if (i % 4 === 0) self.find('tbody:last').append('<tr/>');
<div class="mainpage-flex mainpage-text-align-center">
             var content = $(this).nextUntil('h2');
<div class="mainpage-flex-one">[[特殊:贡献得分|贡献得分]]</div>
             content.find('a').each(function() {
<div class="mainpage-flex-one">[[特殊:统计信息|统计信息]]</div>
               try {
</div>
                 var href = $(this)[0].href;
</div>
                 if (!href) return;
</div>
                 var link = new mw.Uri(href);
</div>
                 if (link.host !== 'zh.moegirl.org') this.userNameErrorReason = "link.host !== 'zh.moegirl.org'";
</div>
                 else if (/^\/api\.php/i.test(link.path)) this.userNameErrorReason = "!!/^\\/api\\.php/i.test(link.path)";
<div class="seven columns"><!-- 这里和上一行要加起来小于等于十二才能保持在同一行-->
                 else if (!link.query.title && /\.php$/i.test(link.path)) this.userNameErrorReason = "!!(!link.query.title && /\\.php$/i.test(link.path))";
<div class="nomobile" style="display:inline-block">
                 else {
<div class="mainpage-column mainpage-flex-three mainpage-order-two">
                   var t = link.query.title || decodeURIComponent(link.path.substring(1));
<div class="mainpage-counter">
                   if (/^user([ _]talk)?:[^\/]+$/i.test(t)) $(this).data('userName', t.replace(/^user([ _]talk)?:/i, '')).addClass('userTalkPage');
<div class="mainpage-counter-container">
                   else this.userNameErrorReason = "!!/^user([ _]talk)?:[^\\/]+$/i.test(t)";
<h2> 最新条目</h2>
                 }
<p><big> 现有<span style="font-family:Times New Roman">[[Special:Statistics|'''{{NUMBEROFARTICLES}}''']]</span> 篇条目,<span style="font-family:Times New Roman">[[Special:新建文件|'''{{NUMBEROFFILES}}''']]</span>张图片,<span style="font-family:Times New Roman">[[特殊:Listusers|'''{{NUMBEROFUSERS}}''']]</span>名注册用户,<span style="font-family:Times New Roman">[[特殊:Statistics|'''{{NUMBEROFEDITS}}''']]</span> 次编辑。</big></p>
               } catch (e) {
<p><dynamicpagelist>
                 return;
namespace=main
               }
ordermethod=created
             });
count=40
             content.find('.userTalkPage').each(function() {
mode=inline
               var parent = $(this).closest('dd, p').clone();
</dynamicpagelist>……</p>
               var now = Date.now() + (Math.random() + '').substring(2);
</div>
               parent.find('.userTalkPage').text(now);
</div>
               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());
<div class="mainpage-DYK mainpage-flex-one">
               if (!regExec) {
<h2>涨姿势</h2>
                 this.userNameErrorReason = 'Too far away from timestamp';
{{ 首页/涨知识}}
                 $(this).removeClass('userTalkPage');
</div>
               } else $(this).data('userTalkTime', regExec[1]);
<div class="mainpage-donate-and-ads">
             });
<h2>最近更改</h2>
             var userTalkPage = [];
{{special: 最近更改/10|namespace=0}}
             content.find('.userTalkPage').each(function() {
 
               var timestamp = $(this).data('userTalkTime').replace(/ \([A-Z]{3,4}\)$/, ''),
 
                 date = new Date(),
以上仅显示最近10条更改。内容太少?没有需要的内容?欢迎{{Ruby|有识之士|[[萌百: 绅士|绅士]][[淑女]]}} 来参与编写!
                 time = timestamp.replace(/\([ 日一二三四五六]\)/g, '').split(/[ 年月日\s\(\)\:]+/).map(function(n) {
</div>
                   return +n;
</div>
                 });
</div>
               if (!time || !time[4]) return $(this).removeClass('.userTalkPage');
</div>
               date.setFullYear(time[0]);
</div>
               date.setMonth(time[1] - 1);
</div>
               date.setDate(time[2]);
</div>
               date.setHours(time[3]);
</div>
               date.setMinutes(time[4]);
</div>
               userTalkPage.push([$(this).data('userName'), timestamp, date.getTime()]);
</div>
             });
__NOTOC__
             if (!userTalkPage[0]) userTalkPage.push(['Unsigned user/Nonstandard sign', 'Unknown Time']);
{{#widget:首页}}
             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>');
           });
           a.on('click', function() {
             self.find('tbody').not(':first').fadeToggle();
             $(this).text($(this).text() === '显示已存档讨论串标题' ? '隐藏已存档讨论串标题' : '显示已存档讨论串标题');
           });
           self.find('tbody').not('.hr').each(function() {
             var that = $(this).find('tr:last');
             switch (that.find("td").length) {
               case 3:
                 that.append("<td>&#32;</td>");
                 break;
               case 2:
                 that.append("<td>&#32;</td><td>&#32;</td>");
                 break;
               case 1:
                 that.append("<td>&#32;</td><td>&#32;</td><td>&#32;</td>");
             }
           });
           $('#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') {
               $('#talkTocBox').fadeOut();
               $('#tocBox').fadeIn();
               localStorage.setItem('wgTocStyle', 'list');
               $('.cbutton').text('点击切换至表格格式');
             } else {
               $('#talkTocBox').fadeIn();
               $('#tocBox').fadeOut();
               localStorage.setItem('wgTocStyle', 'table');
               $('.cbutton').text('点击切换至列表格式');
             }
           });
         } else if ($('.signInfo').attr('data-hidden') === 'true') {
           console.debug('widgetTalkToc', 'sign exec error');
           $('.savedDiscussion, .hiddenDiscussion, .savedNotice, .userTalkPage').removeClass('savedDiscussion hiddenDiscussion savedNotice userTalkPage');
           $('#tocBox, #talkTocBox').remove();
           $('#tocClone').attr('id', 'toc').removeAttr('style');
         } else {
           var boxs = $('#tocBox, #talkTocBox');
           if (boxs.is(':hidden') && boxs.is(':visible')) return;
           if (!localStorage.wgTocStyle || localStorage.wgTocStyle !== 'list') {
             $('#talkTocBox').fadeIn();
             $('.cbutton').text(' 点击切换至列表格式');
           } else {
             $('#tocBox').fadeIn();
             $('.cbutton').text(' 点击切换至表格格式');
           }
         }
       }, 730));
     }
   });
});
</script><style>
#tocBox {
   max-width: 37%;
   min-width: 300px;
   float: left;
}
#toc.noOrigin {
   display: table;
}
div.toc#toc {
   min-width: 300px;
   box-sizing: border-box;
   margin-right: 37px;
   padding-right: 1em;
   padding-left: 1em;
}
div.toc#toc div#toctitle h2 {
   margin-right: 1em;
}
div.toc.noOrigin#toc .toctoggle {
   display: none;
}
div#toc.toc #toctoggle,
div#toc.toc #toggle {
   font-size: 94%;
   -webkit-user-select: none;
   -ms-user-select: none;
   -o-user-select: none;
   -moz-user-select: none;
   user-select: none;
}
div#toc.toc .toggleButton:before {
   content: "[";
   color: black;
}
div#toc.toc .toggleButton:after {
   content: "]";
   color: black;
}
#toc .toggleButton:first-child {
   margin-right: 0.5em;
}
div#toc.toc .toggleButton:last-child {
   margin-right: 0;
}
div#toc.toc .hiddenDiscussion {
   visibility: hidden;
   height: 0;
   margin: 0;
}
div.toc#toc li.savedDiscussion a {
   text-decoration: underline;
}
#toc div#tocText {
   text-align:center;
}
#toc div.tocText {
   display:inline-block;
}
/* 节操酱的beg */
#content ol,
#content ul {
   margin: 0 !important;
   padding: 0.3em 0 0 1.6em !important;
}
#toc .toclevel-1 > ul {
   padding-left: 0!important;
}
/* 由于节操酱的beg导致分类那边有秘制空白 */
#content #catlinks ol,
#content #catlinks ul {
   padding: 0 !important;
}
#toc,
#tocBox,
#talkTocBox {
   display: none;
}
#talkTocBox td {
   text-align: center;
   border: 1px solid #a7d7f9;
   width: 25%;
   padding: 0 1em;
}
#talkTocBox .hr td {
   width: 100%;
}
#talkTocBox table {
   border-collapse: collapse;
   margin-bottom: 1em;
   width: 100%;
}
#talkTocBox a {
   cursor: pointer;
}
#talkTocBox .savedTitle {
   text-decoration: underline;
}
.cbutton {
   cursor: pointer;
}
</style><!--{/if}--></includeonly>

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