<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://mdtwiki.top/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACampaignQuery.js</id>
	<title>MediaWiki:CampaignQuery.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://mdtwiki.top/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACampaignQuery.js"/>
	<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;action=history"/>
	<updated>2026-10-20T12:11:39Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;diff=6303&amp;oldid=prev</id>
		<title>Mdtwikibot：​MDTWikiTools #1651: publish [6a59292a2f4665e0]</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;diff=6303&amp;oldid=prev"/>
		<updated>2026-10-19T03:19:08Z</updated>

		<summary type="html">&lt;p&gt;MDTWikiTools #1651: publish [6a59292a2f4665e0]&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;2026年10月19日 (一) 11:19的版本&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-l61&quot;&gt;第61行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第61行：&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;     [&amp;#039;左侧区块&amp;#039;,&amp;#039;右侧区块&amp;#039;].forEach(function(label,i){var wrap=el(&amp;#039;label&amp;#039;,&amp;#039;cq-field&amp;#039;),select=el(&amp;#039;select&amp;#039;);select.name=&amp;#039;compare&amp;#039;+i;wrap.append(el(&amp;#039;span&amp;#039;,&amp;#039;cq-field-label&amp;#039;,label),select);compareControls.append(wrap);compareSelects.push(select);select.addEventListener(&amp;#039;change&amp;#039;,function(){state.compare[i]=select.value;renderComparison();syncCompareButtons();});});&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;     [&amp;#039;左侧区块&amp;#039;,&amp;#039;右侧区块&amp;#039;].forEach(function(label,i){var wrap=el(&amp;#039;label&amp;#039;,&amp;#039;cq-field&amp;#039;),select=el(&amp;#039;select&amp;#039;);select.name=&amp;#039;compare&amp;#039;+i;wrap.append(el(&amp;#039;span&amp;#039;,&amp;#039;cq-field-label&amp;#039;,label),select);compareControls.append(wrap);compareSelects.push(select);select.addEventListener(&amp;#039;change&amp;#039;,function(){state.compare[i]=select.value;renderComparison();syncCompareButtons();});});&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;     var swapCompare=el(&amp;#039;button&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;交换左右&amp;#039;);swapCompare.type=&amp;#039;button&amp;#039;;swapCompare.onclick=function(){state.compare.reverse();renderComparison();syncCompareButtons();};compareControls.append(swapCompare);comparison.append(compareControls);&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;     var swapCompare=el(&amp;#039;button&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;交换左右&amp;#039;);swapCompare.type=&amp;#039;button&amp;#039;;swapCompare.onclick=function(){state.compare.reverse();renderComparison();syncCompareButtons();};compareControls.append(swapCompare);comparison.append(compareControls);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    var compareTools=el(&#039;div&#039;,&#039;cq-compare-tools&#039;),compareTab=&#039;all&#039;,onlyDiff=el(&#039;input&#039;),tabs=[];onlyDiff.type=&#039;checkbox&#039;;onlyDiff.name=&#039;compareDifferences&#039;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    [[&#039;all&#039;,&#039;全部数据&#039;],[&#039;facts&#039;,&#039;地图资料&#039;],[&#039;waves&#039;,&#039;波次出怪&#039;],[&#039;resources&#039;,&#039;地图资源&#039;]].forEach(function(t){var b=el(&#039;button&#039;,&#039;&#039;,t[1]);b.type=&#039;button&#039;;b.dataset.tab=t[0];b.onclick=function(){compareTab=t[0];applyCompareView();};compareTools.append(b);tabs.push(b);});&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    var diffLabel=el(&#039;label&#039;,&#039;cq-diff-toggle&#039;);diffLabel.append(onlyDiff,el(&#039;span&#039;,&#039;&#039;,&#039;只看差异&#039;));compareTools.append(diffLabel);onlyDiff.onchange=applyCompareView;comparison.append(compareTools);&lt;/ins&gt;&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;     var compareBody=el(&amp;#039;div&amp;#039;,&amp;#039;cq-compare-body&amp;#039;);compareBody.setAttribute(&amp;#039;aria-live&amp;#039;,&amp;#039;polite&amp;#039;);comparison.append(compareBody);host.insertBefore(comparison,toolbar);&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;     var compareBody=el(&amp;#039;div&amp;#039;,&amp;#039;cq-compare-body&amp;#039;);compareBody.setAttribute(&amp;#039;aria-live&amp;#039;,&amp;#039;polite&amp;#039;);comparison.append(compareBody);host.insertBefore(comparison,toolbar);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    function applyCompareView(){tabs.forEach(function(b){b.setAttribute(&#039;aria-pressed&#039;,String(b.dataset.tab===compareTab));});var shown=0;compareBody.querySelectorAll(&#039;tr[data-metric]&#039;).forEach(function(tr){tr.hidden=(compareTab!==&#039;all&#039;&amp;amp;&amp;amp;tr.dataset.group!==compareTab)||(onlyDiff.checked&amp;amp;&amp;amp;tr.dataset.equal===&#039;true&#039;);if(!tr.hidden)shown++;});compareBody.querySelectorAll(&#039;.cq-compare-group&#039;).forEach(function(tr){tr.hidden=!Array.from(compareBody.querySelectorAll(&#039;tr[data-metric]&#039;)).some(function(row){return !row.hidden&amp;amp;&amp;amp;row.dataset.group===tr.dataset.group;});});var empty=compareBody.querySelector(&#039;.cq-diff-empty&#039;);if(empty)empty.hidden=shown&amp;gt;0;}&lt;/ins&gt;&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;     clearCompare.onclick=function(){state.compare=[&amp;#039;&amp;#039;,&amp;#039;&amp;#039;];renderComparison();syncCompareButtons();};&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;     clearCompare.onclick=function(){state.compare=[&amp;#039;&amp;#039;,&amp;#039;&amp;#039;];renderComparison();syncCompareButtons();};&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;     function syncCompareButtons(){cards.querySelectorAll(&amp;#039;button[data-compare]&amp;#039;).forEach(function(b){var included=state.compare.includes(b.dataset.compare);b.textContent=included?&amp;#039;移出对比&amp;#039;:&amp;#039;加入对比&amp;#039;;b.setAttribute(&amp;#039;aria-pressed&amp;#039;,String(included));b.disabled=!included&amp;amp;&amp;amp;state.compare.every(Boolean);});}&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;     function syncCompareButtons(){cards.querySelectorAll(&amp;#039;button[data-compare]&amp;#039;).forEach(function(b){var included=state.compare.includes(b.dataset.compare);b.textContent=included?&amp;#039;移出对比&amp;#039;:&amp;#039;加入对比&amp;#039;;b.setAttribute(&amp;#039;aria-pressed&amp;#039;,String(included));b.disabled=!included&amp;amp;&amp;amp;state.compare.every(Boolean);});}&lt;/div&gt;&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-l69&quot;&gt;第69行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第73行：&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;       compareBody.replaceChildren();var pair=state.compare.map(function(key){return sectors.find(function(s){return s.key===key;});});swapCompare.disabled=!pair.some(Boolean);&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;       compareBody.replaceChildren();var pair=state.compare.map(function(key){return sectors.find(function(s){return s.key===key;});});swapCompare.disabled=!pair.some(Boolean);&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(!pair.every(Boolean)){compareBody.append(el(&amp;#039;p&amp;#039;,&amp;#039;cq-compare-empty&amp;#039;,pair.some(Boolean)?&amp;#039;已选择 1 个区块，请再选一个。翻页或调整筛选不会清除已选区块。&amp;#039;:&amp;#039;选择两个区块后，这里会并排显示数据和每项差额。&amp;#039;));return;}&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(!pair.every(Boolean)){compareBody.append(el(&amp;#039;p&amp;#039;,&amp;#039;cq-compare-empty&amp;#039;,pair.some(Boolean)?&amp;#039;已选择 1 个区块，请再选一个。翻页或调整筛选不会清除已选区块。&amp;#039;:&amp;#039;选择两个区块后，这里会并排显示数据和每项差额。&amp;#039;));return;}&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;       var a=pair[0],b=pair[1],table=el(&#039;table&#039;,&#039;cq-compare-table&#039;),thead=el(&#039;thead&#039;),header=el(&#039;tr&#039;);header.append(el(&#039;th&#039;,&#039;&#039;,&#039;比较项目&#039;));&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;       var a=pair[0],b=pair[1]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;,summary=el(&#039;div&#039;,&#039;cq-compare-summary&#039;);pair.forEach(function(s,i){var card=el(&#039;div&#039;,&#039;cq-compare-profile&#039;),copy=el(&#039;div&#039;);card.append(icon(s.image));copy.append(el(&#039;small&#039;,&#039;cq-muted&#039;,(i===0?&#039;左侧&#039;:&#039;右侧&#039;)+&#039; · &#039;+(s.kind===&#039;numeric&#039;?&#039;数字区块&#039;:&#039;主线地图&#039;)),link(s.title),el(&#039;span&#039;,&#039;cq-muted&#039;,s.difficulty+&#039; · &#039;+s.width+&#039; × &#039;+s.height+&#039; · &#039;+s.resources.length+&#039; 种资源&#039;));card.append(copy);summary.append(card);});compareBody.append(summary);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      var currentGroup=&#039;facts&#039;&lt;/ins&gt;,table=el(&#039;table&#039;,&#039;cq-compare-table&#039;),thead=el(&#039;thead&#039;),header=el(&#039;tr&#039;);header.append(el(&#039;th&#039;,&#039;&#039;,&#039;比较项目&#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;       pair.forEach(function(s){var th=el(&amp;#039;th&amp;#039;),heading=el(&amp;#039;div&amp;#039;,&amp;#039;cq-map-heading&amp;#039;);heading.append(icon(s.image),link(s.title));th.append(heading);header.append(th);});thead.append(header);table.append(thead);var tbody=el(&amp;#039;tbody&amp;#039;);table.append(tbody);&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;       pair.forEach(function(s){var th=el(&amp;#039;th&amp;#039;),heading=el(&amp;#039;div&amp;#039;,&amp;#039;cq-map-heading&amp;#039;);heading.append(icon(s.image),link(s.title));th.append(heading);header.append(th);});thead.append(header);table.append(thead);var tbody=el(&amp;#039;tbody&amp;#039;);table.append(tbody);&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;       function row(label,x,y,unit,texts){var tr=el(&#039;tr&#039;);tr.dataset.metric=typeof label===&#039;string&#039;?label:label.querySelector(&#039;a&#039;).textContent;var title=el(&#039;th&#039;);title.scope=&#039;row&#039;;if(typeof label===&#039;string&#039;)title.textContent=label;else title.append(label);tr.append(title);&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;       function row(label,x,y,unit,texts){var tr=el(&#039;tr&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;);tr.dataset.group=currentGroup;tr.dataset.equal=String(x===y&lt;/ins&gt;);tr.dataset.metric=typeof label===&#039;string&#039;?label:label.querySelector(&#039;a&#039;).textContent;var title=el(&#039;th&#039;);title.scope=&#039;row&#039;;if(typeof label===&#039;string&#039;)title.textContent=label;else title.append(label);tr.append(title);&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;         [x,y].forEach(function(v,i){var other=i?x:y,td=el(&amp;#039;td&amp;#039;),display=texts?texts[i]:v===null?&amp;#039;未启用自动波次&amp;#039;:v.toLocaleString()+(unit?&amp;#039; &amp;#039;+unit:&amp;#039;&amp;#039;);td.append(el(&amp;#039;span&amp;#039;,&amp;#039;cq-compare-value&amp;#039;,display));&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;         [x,y].forEach(function(v,i){var other=i?x:y,td=el(&amp;#039;td&amp;#039;),display=texts?texts[i]:v===null?&amp;#039;未启用自动波次&amp;#039;:v.toLocaleString()+(unit?&amp;#039; &amp;#039;+unit:&amp;#039;&amp;#039;);td.append(el(&amp;#039;span&amp;#039;,&amp;#039;cq-compare-value&amp;#039;,display));&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;           var delta=el(&amp;#039;small&amp;#039;,&amp;#039;cq-delta cq-equal&amp;#039;);if(typeof v===&amp;#039;number&amp;#039;&amp;amp;&amp;amp;typeof other===&amp;#039;number&amp;#039;){var d=v-other;delta.className=&amp;#039;cq-delta &amp;#039;+(d&amp;gt;0?&amp;#039;cq-more&amp;#039;:d&amp;lt;0?&amp;#039;cq-less&amp;#039;:&amp;#039;cq-equal&amp;#039;);delta.textContent=d&amp;gt;0?&amp;#039;↑ 多 &amp;#039;+d.toLocaleString()+(unit?&amp;#039; &amp;#039;+unit:&amp;#039;&amp;#039;):d&amp;lt;0?&amp;#039;↓ 少 &amp;#039;+(-d).toLocaleString()+(unit?&amp;#039; &amp;#039;+unit:&amp;#039;&amp;#039;):&amp;#039;— 相同，差 0&amp;#039;+(unit?&amp;#039; &amp;#039;+unit:&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;           var delta=el(&amp;#039;small&amp;#039;,&amp;#039;cq-delta cq-equal&amp;#039;);if(typeof v===&amp;#039;number&amp;#039;&amp;amp;&amp;amp;typeof other===&amp;#039;number&amp;#039;){var d=v-other;delta.className=&amp;#039;cq-delta &amp;#039;+(d&amp;gt;0?&amp;#039;cq-more&amp;#039;:d&amp;lt;0?&amp;#039;cq-less&amp;#039;:&amp;#039;cq-equal&amp;#039;);delta.textContent=d&amp;gt;0?&amp;#039;↑ 多 &amp;#039;+d.toLocaleString()+(unit?&amp;#039; &amp;#039;+unit:&amp;#039;&amp;#039;):d&amp;lt;0?&amp;#039;↓ 少 &amp;#039;+(-d).toLocaleString()+(unit?&amp;#039; &amp;#039;+unit:&amp;#039;&amp;#039;):&amp;#039;— 相同，差 0&amp;#039;+(unit?&amp;#039; &amp;#039;+unit:&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;           else delta.textContent=x===y?&amp;#039;— 相同&amp;#039;:(x===null||y===null)?&amp;#039;— 不适用数值比较&amp;#039;:&amp;#039;— 不同&amp;#039;;td.append(delta);tr.append(td);});tbody.append(tr);&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;           else delta.textContent=x===y?&amp;#039;— 相同&amp;#039;:(x===null||y===null)?&amp;#039;— 不适用数值比较&amp;#039;:&amp;#039;— 不同&amp;#039;;td.append(delta);tr.append(td);});tbody.append(tr);&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;       function group(text){var tr=el(&#039;tr&#039;,&#039;cq-compare-group&#039;),th=el(&#039;th&#039;,&#039;&#039;,text);th.colSpan=3;tr.append(th);tbody.append(tr);}&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;       function group(text){&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;currentGroup=text===&#039;地图资料&#039;?&#039;facts&#039;:text===&#039;地图资源&#039;?&#039;resources&#039;:&#039;waves&#039;;&lt;/ins&gt;var tr=el(&#039;tr&#039;,&#039;cq-compare-group&#039;),th=el(&#039;th&#039;,&#039;&#039;,text)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;tr.dataset.group=currentGroup&lt;/ins&gt;;th.colSpan=3;tr.append(th);tbody.append(tr);}&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;       group(&amp;#039;地图资料&amp;#039;);row(&amp;#039;游戏内难度&amp;#039;,levels.indexOf(a.difficulty),levels.indexOf(b.difficulty),&amp;#039;级&amp;#039;,[a.difficulty,b.difficulty]);row(&amp;#039;区块编号&amp;#039;,String(a.id),String(b.id));row(&amp;#039;地图宽度&amp;#039;,a.width,b.width,&amp;#039;格&amp;#039;);row(&amp;#039;地图高度&amp;#039;,a.height,b.height,&amp;#039;格&amp;#039;);row(&amp;#039;地图面积&amp;#039;,a.width*a.height,b.width*b.height,&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;       group(&amp;#039;地图资料&amp;#039;);row(&amp;#039;游戏内难度&amp;#039;,levels.indexOf(a.difficulty),levels.indexOf(b.difficulty),&amp;#039;级&amp;#039;,[a.difficulty,b.difficulty]);row(&amp;#039;区块编号&amp;#039;,String(a.id),String(b.id));row(&amp;#039;地图宽度&amp;#039;,a.width,b.width,&amp;#039;格&amp;#039;);row(&amp;#039;地图高度&amp;#039;,a.height,b.height,&amp;#039;格&amp;#039;);row(&amp;#039;地图面积&amp;#039;,a.width*a.height,b.width*b.height,&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;       function rule(s){return s.attack?&amp;#039;进攻&amp;#039;:s.waves?&amp;#039;生存 / 波次&amp;#039;:&amp;#039;脚本目标&amp;#039;;}row(&amp;#039;地图规则&amp;#039;,rule(a),rule(b));row(&amp;#039;占领波次&amp;#039;,a.win&amp;gt;0?a.win:null,b.win&amp;gt;0?b.win:null,&amp;#039;波&amp;#039;,[a.win&amp;gt;0?&amp;#039;第 &amp;#039;+a.win+&amp;#039; 波&amp;#039;:&amp;#039;依地图目标&amp;#039;,b.win&amp;gt;0?&amp;#039;第 &amp;#039;+b.win+&amp;#039; 波&amp;#039;:&amp;#039;依地图目标&amp;#039;]);row(&amp;#039;出生标记&amp;#039;,a.spawns,b.spawns,&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;       function rule(s){return s.attack?&amp;#039;进攻&amp;#039;:s.waves?&amp;#039;生存 / 波次&amp;#039;:&amp;#039;脚本目标&amp;#039;;}row(&amp;#039;地图规则&amp;#039;,rule(a),rule(b));row(&amp;#039;占领波次&amp;#039;,a.win&amp;gt;0?a.win:null,b.win&amp;gt;0?b.win:null,&amp;#039;波&amp;#039;,[a.win&amp;gt;0?&amp;#039;第 &amp;#039;+a.win+&amp;#039; 波&amp;#039;:&amp;#039;依地图目标&amp;#039;,b.win&amp;gt;0?&amp;#039;第 &amp;#039;+b.win+&amp;#039; 波&amp;#039;:&amp;#039;依地图目标&amp;#039;]);row(&amp;#039;出生标记&amp;#039;,a.spawns,b.spawns,&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;       group(&amp;#039;第 &amp;#039;+(waveIndex()+1)+&amp;#039; 波 · 出怪参考&amp;#039;);row(&amp;#039;生成组合计&amp;#039;,count(a),count(b),&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;       group(&amp;#039;第 &amp;#039;+(waveIndex()+1)+&amp;#039; 波 · 出怪参考&amp;#039;);row(&amp;#039;生成组合计&amp;#039;,count(a),count(b),&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;       var units=Object.keys(a.units).concat(Object.keys(b.units)).filter(function(id,i,list){return list.indexOf(id)===i;});units.forEach(function(id){var x=a.waves?(a.units[id]?a.units[id][waveIndex()]:0):null,y=b.waves?(b.units[id]?b.units[id][waveIndex()]:0):null;if(x||y)row(object(id),x,y,&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;       var units=Object.keys(a.units).concat(Object.keys(b.units)).filter(function(id,i,list){return list.indexOf(id)===i;});units.forEach(function(id){var x=a.waves?(a.units[id]?a.units[id][waveIndex()]:0):null,y=b.waves?(b.units[id]?b.units[id][waveIndex()]:0):null;if(x||y)row(object(id),x,y,&amp;#039;个&amp;#039;);});&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;       group(&#039;地图资源&#039;);resourceIds.filter(function(id){return amount(a,id)||amount(b,id);}).forEach(function(id){row(object(id),amount(a,id),amount(b,id),&#039;格&#039;);});compareBody.append(table,el(&#039;p&#039;,&#039;cq-note&#039;,&#039;资源未出现按 0 格比较。未启用自动波次不按 0 敌人计算。出怪未乘出生点数量，不含脚本与工厂增援；资源包含墙后及封闭区域。&#039;));&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;       group(&#039;地图资源&#039;);resourceIds.filter(function(id){return amount(a,id)||amount(b,id);}).forEach(function(id){row(object(id),amount(a,id),amount(b,id),&#039;格&#039;);});compareBody.append(table&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;,el(&#039;p&#039;,&#039;cq-diff-empty&#039;,&#039;当前分类下没有差异项。&#039;)&lt;/ins&gt;,el(&#039;p&#039;,&#039;cq-note&#039;,&#039;资源未出现按 0 格比较。未启用自动波次不按 0 敌人计算。出怪未乘出生点数量，不含脚本与工厂增援；资源包含墙后及封闭区域。&#039;)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;);applyCompareView(&lt;/ins&gt;);&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;&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;     var urlParams=new URLSearchParams(location.search);if([&amp;#039;mainline&amp;#039;,&amp;#039;numeric&amp;#039;].includes(urlParams.get(&amp;#039;kind&amp;#039;)))kind.value=urlParams.get(&amp;#039;kind&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;     var urlParams=new URLSearchParams(location.search);if([&amp;#039;mainline&amp;#039;,&amp;#039;numeric&amp;#039;].includes(urlParams.get(&amp;#039;kind&amp;#039;)))kind.value=urlParams.get(&amp;#039;kind&amp;#039;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mdtwiki_stnglove:diff:1.41:old-6300:rev-6303:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Mdtwikibot</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;diff=6300&amp;oldid=prev</id>
		<title>Mdtwikibot：​MDTWikiTools #1648: publish [293b85045a71b733]</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;diff=6300&amp;oldid=prev"/>
		<updated>2026-10-19T03:07:56Z</updated>

		<summary type="html">&lt;p&gt;MDTWikiTools #1648: publish [293b85045a71b733]&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;2026年10月19日 (一) 11:07的版本&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-l53&quot;&gt;第53行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第53行：&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;     var chooseWrap=el(&amp;#039;label&amp;#039;,&amp;#039;cq-choose&amp;#039;),choose=el(&amp;#039;select&amp;#039;);choose.name=&amp;#039;sector&amp;#039;;choose.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;选择区块查看详情&amp;#039;);chooseWrap.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;选择区块&amp;#039;),choose);toolbar.append(status,chooseWrap);&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;     var chooseWrap=el(&amp;#039;label&amp;#039;,&amp;#039;cq-choose&amp;#039;),choose=el(&amp;#039;select&amp;#039;);choose.name=&amp;#039;sector&amp;#039;;choose.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;选择区块查看详情&amp;#039;);chooseWrap.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;选择区块&amp;#039;),choose);toolbar.append(status,chooseWrap);&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;     var layout=el(&amp;#039;div&amp;#039;,&amp;#039;cq-results-layout&amp;#039;),left=el(&amp;#039;div&amp;#039;,&amp;#039;cq-results&amp;#039;),cards=el(&amp;#039;div&amp;#039;,&amp;#039;cq-result-grid&amp;#039;),empty=el(&amp;#039;div&amp;#039;,&amp;#039;cq-empty&amp;#039;,&amp;#039;没有符合条件的区块。请减少筛选条件或点击“重置筛选”。&amp;#039;),pager=el(&amp;#039;div&amp;#039;,&amp;#039;cq-pager&amp;#039;),previous=el(&amp;#039;button&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;上一页&amp;#039;),next=el(&amp;#039;button&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;下一页&amp;#039;),pageText=el(&amp;#039;span&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;     var layout=el(&amp;#039;div&amp;#039;,&amp;#039;cq-results-layout&amp;#039;),left=el(&amp;#039;div&amp;#039;,&amp;#039;cq-results&amp;#039;),cards=el(&amp;#039;div&amp;#039;,&amp;#039;cq-result-grid&amp;#039;),empty=el(&amp;#039;div&amp;#039;,&amp;#039;cq-empty&amp;#039;,&amp;#039;没有符合条件的区块。请减少筛选条件或点击“重置筛选”。&amp;#039;),pager=el(&amp;#039;div&amp;#039;,&amp;#039;cq-pager&amp;#039;),previous=el(&amp;#039;button&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;上一页&amp;#039;),next=el(&amp;#039;button&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;下一页&amp;#039;),pageText=el(&amp;#039;span&amp;#039;);&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;     previous.type=next.type=&#039;button&#039;;pager.append(previous,pageText,next);left.append(cards,empty,pager);&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    var pageInput=el(&#039;input&#039;,&#039;cq-page-input&#039;);pageInput.type=&#039;number&#039;;pageInput.name=&#039;page&#039;;pageInput.min=&#039;1&#039;;pageInput.step=&#039;1&#039;;pageInput.setAttribute(&#039;aria-label&#039;,&#039;跳转到页码&#039;);pageInput.title=&#039;输入页码，按回车跳转&#039;;pageInput.inputMode=&#039;numeric&#039;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;     previous.type=next.type=&#039;button&#039;;pager.append(previous&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;,pageInput&lt;/ins&gt;,pageText,next);left.append(cards,empty,pager);&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;     var detail=el(&amp;#039;section&amp;#039;,&amp;#039;cq-detail&amp;#039;);detail.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;所选区块详情&amp;#039;);detail.setAttribute(&amp;#039;aria-live&amp;#039;,&amp;#039;polite&amp;#039;);layout.append(left,detail);host.append(filters,toolbar,layout);&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;     var detail=el(&amp;#039;section&amp;#039;,&amp;#039;cq-detail&amp;#039;);detail.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;所选区块详情&amp;#039;);detail.setAttribute(&amp;#039;aria-live&amp;#039;,&amp;#039;polite&amp;#039;);layout.append(left,detail);host.append(filters,toolbar,layout);&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;     var comparison=el(&amp;#039;section&amp;#039;,&amp;#039;cq-comparison&amp;#039;);comparison.setAttribute(&amp;#039;aria-label&amp;#039;,&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;     var comparison=el(&amp;#039;section&amp;#039;,&amp;#039;cq-comparison&amp;#039;);comparison.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;两个区块数据对比&amp;#039;);&lt;/div&gt;&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-l112&quot;&gt;第112行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第113行：&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;         var actions=el(&amp;#039;div&amp;#039;,&amp;#039;cq-card-actions&amp;#039;);actions.append(compareButton,button);foot.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,n===null?&amp;#039;无自动波次&amp;#039;:&amp;#039;第 &amp;#039;+(waveIndex()+1)+&amp;#039; 波 · &amp;#039;+n+&amp;#039; 个&amp;#039;),actions);card.append(head,tags,resources,foot);cards.append(card);&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;         var actions=el(&amp;#039;div&amp;#039;,&amp;#039;cq-card-actions&amp;#039;);actions.append(compareButton,button);foot.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,n===null?&amp;#039;无自动波次&amp;#039;:&amp;#039;第 &amp;#039;+(waveIndex()+1)+&amp;#039; 波 · &amp;#039;+n+&amp;#039; 个&amp;#039;),actions);card.append(head,tags,resources,foot);cards.append(card);&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;       var pages=Math.max(1,Math.ceil(filtered.length/size));&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pageText&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;textContent&lt;/del&gt;=(state.page+1)&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;+&lt;/del&gt;&#039; / &#039;+pages;previous.disabled=state.page===0;next.disabled=state.page&amp;gt;=pages-1;pager.hidden=!filtered.length;&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;       var pages=Math.max(1,Math.ceil(filtered.length/size));&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pageInput&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;value&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;String&lt;/ins&gt;(state.page+1)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;pageInput.max=String(pages);pageText.textContent=&lt;/ins&gt;&#039;/ &#039;+pages;previous.disabled=state.page===0;next.disabled=state.page&amp;gt;=pages-1;pager.hidden=!filtered.length;&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;       var visible=filtered.slice(state.page*size,(state.page+1)*size);selectSector(visible.find(function(s){return s.key===state.selected;})||visible[0]);&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;       var visible=filtered.slice(state.page*size,(state.page+1)*size);selectSector(visible.find(function(s){return s.key===state.selected;})||visible[0]);&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;       syncCompareButtons();&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;       syncCompareButtons();&lt;/div&gt;&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-l131&quot;&gt;第131行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第132行：&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;&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;     choose.addEventListener(&amp;#039;change&amp;#039;,function(){var s=filtered.find(function(s){return s.key===choose.value;});if(!s)return;state.selected=s.key;state.page=Math.floor(filtered.indexOf(s)/size);renderCards();});&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;     choose.addEventListener(&amp;#039;change&amp;#039;,function(){var s=filtered.find(function(s){return s.key===choose.value;});if(!s)return;state.selected=s.key;state.page=Math.floor(filtered.indexOf(s)/size);renderCards();});&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;     &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;previous&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;onclick&lt;/del&gt;=function(){state.page--;renderCards();};next.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;onclick&lt;/del&gt;=function(){&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;state&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;page++&lt;/del&gt;;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;renderCards&lt;/del&gt;();};&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;     &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;function turnPage(step){var target=Math.max(0,Math.min(Math.max(0,Math.ceil(filtered.length/size)-1),state.page+step));if(target===state.page)return false;state&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;page&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;target;renderCards();return true;}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    &lt;/ins&gt;function &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jumpPage&lt;/ins&gt;(){&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;var value=Number(pageInput.value);&lt;/ins&gt;state.page&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=Math.max(0,Math.min(Math.max(0,Math.ceil(filtered.length/size)&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1),(Number.isFinite(value)?Math.trunc(value):1)&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1))&lt;/ins&gt;;renderCards();}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    pageInput.addEventListener(&#039;change&#039;,jumpPage);pageInput.addEventListener(&#039;keydown&#039;,function(e){if(e.key===&#039;Enter&#039;){e.preventDefault();jumpPage();}})&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    [previous,&lt;/ins&gt;next&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;].forEach(function(button,i){var timer=null,repeated=false,step=i===0?-1:1;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      function stop(){clearTimeout(timer);timer=null;}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      function repeat(){if(!host.isConnected||button.disabled||document.hidden){stop();return;}repeated=true;if(turnPage(step))timer=setTimeout(repeat,160);}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      button.title=&#039;点击翻页，长按连续翻页&#039;;button.addEventListener(&#039;pointerdown&#039;,function(e){if(e.button!==0||button.disabled)return;stop();repeated=false;button.setPointerCapture(e.pointerId);timer=setTimeout(repeat,450);});&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      button.addEventListener(&#039;click&#039;,function(e){if(repeated&amp;amp;&amp;amp;e.detail!==0){e.preventDefault();repeated=false;return;}turnPage(step);});&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      button&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;addEventListener(&#039;pointerleave&#039;,stop);button.addEventListener(&#039;pointermove&#039;,function(e){if(!timer)return;var r&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;button.getBoundingClientRect();if(e.clientX&amp;lt;r.left||e.clientX&amp;gt;r.right||e.clientY&amp;lt;r.top||e.clientY&amp;gt;r.bottom)stop();});button.addEventListener(&#039;lostpointercapture&#039;,stop);button.addEventListener(&#039;contextmenu&#039;,&lt;/ins&gt;function(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;e&lt;/ins&gt;){&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;e.preventDefault();stop();});&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      document.addEventListener(&#039;pointerup&#039;,stop);document.addEventListener(&#039;pointercancel&#039;,stop);document&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;addEventListener(&#039;visibilitychange&#039;,stop)&lt;/ins&gt;;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;window.addEventListener&lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;blur&#039;,stop&lt;/ins&gt;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    &lt;/ins&gt;}&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt;;&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;     reset.onclick=function(){filters.reset();wave.value=&amp;#039;1&amp;#039;;state.page=0;state.selected=null;render();};&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;     reset.onclick=function(){filters.reset();wave.value=&amp;#039;1&amp;#039;;state.page=0;state.selected=null;render();};&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;     wave.addEventListener(&amp;#039;change&amp;#039;,function(){wave.value=String(waveIndex()+1);render();});&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;     wave.addEventListener(&amp;#039;change&amp;#039;,function(){wave.value=String(waveIndex()+1);render();});&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mdtwiki_stnglove:diff:1.41:old-6297:rev-6300:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Mdtwikibot</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;diff=6297&amp;oldid=prev</id>
		<title>Mdtwikibot：​MDTWikiTools #1645: publish [61333ab8642278fc]</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;diff=6297&amp;oldid=prev"/>
		<updated>2026-10-19T02:58:11Z</updated>

		<summary type="html">&lt;p&gt;MDTWikiTools #1645: publish [61333ab8642278fc]&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;2026年10月19日 (一) 10:58的版本&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-l12&quot;&gt;第12行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第12行：&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(host.dataset.ready)return;host.dataset.ready=&amp;#039;true&amp;#039;;host.replaceChildren();&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(host.dataset.ready)return;host.dataset.ready=&amp;#039;true&amp;#039;;host.replaceChildren();&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;     var scope=host.dataset.planet||&amp;#039;&amp;#039;,sectors=data.sectors.filter(function(s){return !scope||s.planet===scope;});&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;     var scope=host.dataset.planet||&amp;#039;&amp;#039;,sectors=data.sectors.filter(function(s){return !scope||s.planet===scope;});&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;     var state={page:0,selected:null},size=12,filtered=[];&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;     var state={page:0,selected:null&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;,compare:[&#039;&#039;,&#039;&#039;]&lt;/ins&gt;},size=12,filtered=[];&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;     var filters=el(&amp;#039;form&amp;#039;,&amp;#039;cq-filters&amp;#039;);filters.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;区块筛选&amp;#039;);filters.addEventListener(&amp;#039;submit&amp;#039;,function(e){e.preventDefault();render();});&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;     var filters=el(&amp;#039;form&amp;#039;,&amp;#039;cq-filters&amp;#039;);filters.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;区块筛选&amp;#039;);filters.addEventListener(&amp;#039;submit&amp;#039;,function(e){e.preventDefault();render();});&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;     var grid=el(&amp;#039;div&amp;#039;,&amp;#039;cq-filter-grid&amp;#039;);filters.append(grid);&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;     var grid=el(&amp;#039;div&amp;#039;,&amp;#039;cq-filter-grid&amp;#039;);filters.append(grid);&lt;/div&gt;&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-l55&quot;&gt;第55行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第55行：&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;     previous.type=next.type=&amp;#039;button&amp;#039;;pager.append(previous,pageText,next);left.append(cards,empty,pager);&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;     previous.type=next.type=&amp;#039;button&amp;#039;;pager.append(previous,pageText,next);left.append(cards,empty,pager);&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;     var detail=el(&amp;#039;section&amp;#039;,&amp;#039;cq-detail&amp;#039;);detail.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;所选区块详情&amp;#039;);detail.setAttribute(&amp;#039;aria-live&amp;#039;,&amp;#039;polite&amp;#039;);layout.append(left,detail);host.append(filters,toolbar,layout);&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;     var detail=el(&amp;#039;section&amp;#039;,&amp;#039;cq-detail&amp;#039;);detail.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;所选区块详情&amp;#039;);detail.setAttribute(&amp;#039;aria-live&amp;#039;,&amp;#039;polite&amp;#039;);layout.append(left,detail);host.append(filters,toolbar,layout);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    var comparison=el(&#039;section&#039;,&#039;cq-comparison&#039;);comparison.setAttribute(&#039;aria-label&#039;,&#039;两个区块数据对比&#039;);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    var compareHead=el(&#039;div&#039;,&#039;cq-toolbar&#039;);compareHead.append(el(&#039;h3&#039;,&#039;&#039;,&#039;区块对比&#039;));var clearCompare=el(&#039;button&#039;,&#039;&#039;,&#039;清空对比&#039;);clearCompare.type=&#039;button&#039;;compareHead.append(clearCompare);comparison.append(compareHead,el(&#039;p&#039;,&#039;cq-note&#039;,&#039;在地图卡片点击“加入对比”，或在下面选择两个区块。绿色 ↑ 表示数值更多，红色 ↓ 表示更少，灰色 — 表示相同；箭头不代表地图更适合。&#039;));&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    var compareControls=el(&#039;div&#039;,&#039;cq-compare-controls&#039;),compareSelects=[];&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    [&#039;左侧区块&#039;,&#039;右侧区块&#039;].forEach(function(label,i){var wrap=el(&#039;label&#039;,&#039;cq-field&#039;),select=el(&#039;select&#039;);select.name=&#039;compare&#039;+i;wrap.append(el(&#039;span&#039;,&#039;cq-field-label&#039;,label),select);compareControls.append(wrap);compareSelects.push(select);select.addEventListener(&#039;change&#039;,function(){state.compare[i]=select.value;renderComparison();syncCompareButtons();});});&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    var swapCompare=el(&#039;button&#039;,&#039;&#039;,&#039;交换左右&#039;);swapCompare.type=&#039;button&#039;;swapCompare.onclick=function(){state.compare.reverse();renderComparison();syncCompareButtons();};compareControls.append(swapCompare);comparison.append(compareControls);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    var compareBody=el(&#039;div&#039;,&#039;cq-compare-body&#039;);compareBody.setAttribute(&#039;aria-live&#039;,&#039;polite&#039;);comparison.append(compareBody);host.insertBefore(comparison,toolbar);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    clearCompare.onclick=function(){state.compare=[&#039;&#039;,&#039;&#039;];renderComparison();syncCompareButtons();};&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    function syncCompareButtons(){cards.querySelectorAll(&#039;button[data-compare]&#039;).forEach(function(b){var included=state.compare.includes(b.dataset.compare);b.textContent=included?&#039;移出对比&#039;:&#039;加入对比&#039;;b.setAttribute(&#039;aria-pressed&#039;,String(included));b.disabled=!included&amp;amp;&amp;amp;state.compare.every(Boolean);});}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    function toggleCompare(s){var i=state.compare.indexOf(s.key);if(i&amp;gt;=0)state.compare[i]=&#039;&#039;;else{var free=state.compare.indexOf(&#039;&#039;);if(free&amp;lt;0)return;state.compare[free]=s.key;}renderComparison();syncCompareButtons();if(state.compare.every(Boolean))comparison.scrollIntoView({block:&#039;start&#039;});}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    function renderComparison(){&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      compareSelects.forEach(function(select,i){select.replaceChildren();var emptyOption=el(&#039;option&#039;,&#039;&#039;,&#039;选择&#039;+(i===0?&#039;左侧&#039;:&#039;右侧&#039;)+&#039;区块&#039;);emptyOption.value=&#039;&#039;;select.append(emptyOption);sectors.forEach(function(s){var o=el(&#039;option&#039;,&#039;&#039;,s.title+&#039; · &#039;+s.difficulty);o.value=s.key;o.disabled=s.key===state.compare[1-i];select.append(o);});select.value=state.compare[i];});&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      compareBody.replaceChildren();var pair=state.compare.map(function(key){return sectors.find(function(s){return s.key===key;});});swapCompare.disabled=!pair.some(Boolean);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      if(!pair.every(Boolean)){compareBody.append(el(&#039;p&#039;,&#039;cq-compare-empty&#039;,pair.some(Boolean)?&#039;已选择 1 个区块，请再选一个。翻页或调整筛选不会清除已选区块。&#039;:&#039;选择两个区块后，这里会并排显示数据和每项差额。&#039;));return;}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      var a=pair[0],b=pair[1],table=el(&#039;table&#039;,&#039;cq-compare-table&#039;),thead=el(&#039;thead&#039;),header=el(&#039;tr&#039;);header.append(el(&#039;th&#039;,&#039;&#039;,&#039;比较项目&#039;));&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      pair.forEach(function(s){var th=el(&#039;th&#039;),heading=el(&#039;div&#039;,&#039;cq-map-heading&#039;);heading.append(icon(s.image),link(s.title));th.append(heading);header.append(th);});thead.append(header);table.append(thead);var tbody=el(&#039;tbody&#039;);table.append(tbody);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      function row(label,x,y,unit,texts){var tr=el(&#039;tr&#039;);tr.dataset.metric=typeof label===&#039;string&#039;?label:label.querySelector(&#039;a&#039;).textContent;var title=el(&#039;th&#039;);title.scope=&#039;row&#039;;if(typeof label===&#039;string&#039;)title.textContent=label;else title.append(label);tr.append(title);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        [x,y].forEach(function(v,i){var other=i?x:y,td=el(&#039;td&#039;),display=texts?texts[i]:v===null?&#039;未启用自动波次&#039;:v.toLocaleString()+(unit?&#039; &#039;+unit:&#039;&#039;);td.append(el(&#039;span&#039;,&#039;cq-compare-value&#039;,display));&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;          var delta=el(&#039;small&#039;,&#039;cq-delta cq-equal&#039;);if(typeof v===&#039;number&#039;&amp;amp;&amp;amp;typeof other===&#039;number&#039;){var d=v-other;delta.className=&#039;cq-delta &#039;+(d&amp;gt;0?&#039;cq-more&#039;:d&amp;lt;0?&#039;cq-less&#039;:&#039;cq-equal&#039;);delta.textContent=d&amp;gt;0?&#039;↑ 多 &#039;+d.toLocaleString()+(unit?&#039; &#039;+unit:&#039;&#039;):d&amp;lt;0?&#039;↓ 少 &#039;+(-d).toLocaleString()+(unit?&#039; &#039;+unit:&#039;&#039;):&#039;— 相同，差 0&#039;+(unit?&#039; &#039;+unit:&#039;&#039;);}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;          else delta.textContent=x===y?&#039;— 相同&#039;:(x===null||y===null)?&#039;— 不适用数值比较&#039;:&#039;— 不同&#039;;td.append(delta);tr.append(td);});tbody.append(tr);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      }&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      function group(text){var tr=el(&#039;tr&#039;,&#039;cq-compare-group&#039;),th=el(&#039;th&#039;,&#039;&#039;,text);th.colSpan=3;tr.append(th);tbody.append(tr);}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      group(&#039;地图资料&#039;);row(&#039;游戏内难度&#039;,levels.indexOf(a.difficulty),levels.indexOf(b.difficulty),&#039;级&#039;,[a.difficulty,b.difficulty]);row(&#039;区块编号&#039;,String(a.id),String(b.id));row(&#039;地图宽度&#039;,a.width,b.width,&#039;格&#039;);row(&#039;地图高度&#039;,a.height,b.height,&#039;格&#039;);row(&#039;地图面积&#039;,a.width*a.height,b.width*b.height,&#039;格&#039;);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      function rule(s){return s.attack?&#039;进攻&#039;:s.waves?&#039;生存 / 波次&#039;:&#039;脚本目标&#039;;}row(&#039;地图规则&#039;,rule(a),rule(b));row(&#039;占领波次&#039;,a.win&amp;gt;0?a.win:null,b.win&amp;gt;0?b.win:null,&#039;波&#039;,[a.win&amp;gt;0?&#039;第 &#039;+a.win+&#039; 波&#039;:&#039;依地图目标&#039;,b.win&amp;gt;0?&#039;第 &#039;+b.win+&#039; 波&#039;:&#039;依地图目标&#039;]);row(&#039;出生标记&#039;,a.spawns,b.spawns,&#039;个&#039;);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      group(&#039;第 &#039;+(waveIndex()+1)+&#039; 波 · 出怪参考&#039;);row(&#039;生成组合计&#039;,count(a),count(b),&#039;个 / 适用出生点&#039;);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      var units=Object.keys(a.units).concat(Object.keys(b.units)).filter(function(id,i,list){return list.indexOf(id)===i;});units.forEach(function(id){var x=a.waves?(a.units[id]?a.units[id][waveIndex()]:0):null,y=b.waves?(b.units[id]?b.units[id][waveIndex()]:0):null;if(x||y)row(object(id),x,y,&#039;个&#039;);});&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      group(&#039;地图资源&#039;);resourceIds.filter(function(id){return amount(a,id)||amount(b,id);}).forEach(function(id){row(object(id),amount(a,id),amount(b,id),&#039;格&#039;);});compareBody.append(table,el(&#039;p&#039;,&#039;cq-note&#039;,&#039;资源未出现按 0 格比较。未启用自动波次不按 0 敌人计算。出怪未乘出生点数量，不含脚本与工厂增援；资源包含墙后及封闭区域。&#039;));&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    }&lt;/ins&gt;&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;     var urlParams=new URLSearchParams(location.search);if([&amp;#039;mainline&amp;#039;,&amp;#039;numeric&amp;#039;].includes(urlParams.get(&amp;#039;kind&amp;#039;)))kind.value=urlParams.get(&amp;#039;kind&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;     var urlParams=new URLSearchParams(location.search);if([&amp;#039;mainline&amp;#039;,&amp;#039;numeric&amp;#039;].includes(urlParams.get(&amp;#039;kind&amp;#039;)))kind.value=urlParams.get(&amp;#039;kind&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;     function hashKind(){var hash;try{hash=decodeURIComponent(location.hash);}catch(e){return &amp;#039;&amp;#039;; }return hash===&amp;#039;#数字查询&amp;#039;?&amp;#039;numeric&amp;#039;:hash===&amp;#039;#主线查询&amp;#039;?&amp;#039;mainline&amp;#039;:&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;     function hashKind(){var hash;try{hash=decodeURIComponent(location.hash);}catch(e){return &amp;#039;&amp;#039;; }return hash===&amp;#039;#数字查询&amp;#039;?&amp;#039;numeric&amp;#039;:hash===&amp;#039;#主线查询&amp;#039;?&amp;#039;mainline&amp;#039;:&amp;#039;&amp;#039;;}&lt;/div&gt;&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-l82&quot;&gt;第82行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第109行：&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(sort.value.startsWith(&amp;#039;res:&amp;#039;)){var metric=el(&amp;#039;div&amp;#039;,&amp;#039;cq-sort-metric&amp;#039;);metric.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;排序资源：&amp;#039;),object(sort.value.slice(4),amount(s,sort.value.slice(4))));resources.append(metric);}&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(sort.value.startsWith(&amp;#039;res:&amp;#039;)){var metric=el(&amp;#039;div&amp;#039;,&amp;#039;cq-sort-metric&amp;#039;);metric.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;排序资源：&amp;#039;),object(sort.value.slice(4),amount(s,sort.value.slice(4))));resources.append(metric);}&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;         var foot=el(&amp;#039;div&amp;#039;,&amp;#039;cq-card-foot&amp;#039;),n=count(s),button=el(&amp;#039;button&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;查看详情&amp;#039;);button.type=&amp;#039;button&amp;#039;;button.dataset.sector=s.key;button.addEventListener(&amp;#039;click&amp;#039;,function(){selectSector(s);if(matchMedia(&amp;#039;(max-width:1100px)&amp;#039;).matches)detail.scrollIntoView({behavior:&amp;#039;instant&amp;#039;,block:&amp;#039;start&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;         var foot=el(&amp;#039;div&amp;#039;,&amp;#039;cq-card-foot&amp;#039;),n=count(s),button=el(&amp;#039;button&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;查看详情&amp;#039;);button.type=&amp;#039;button&amp;#039;;button.dataset.sector=s.key;button.addEventListener(&amp;#039;click&amp;#039;,function(){selectSector(s);if(matchMedia(&amp;#039;(max-width:1100px)&amp;#039;).matches)detail.scrollIntoView({behavior:&amp;#039;instant&amp;#039;,block:&amp;#039;start&amp;#039;});});&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;         foot.append(el(&#039;span&#039;,&#039;&#039;,n===null?&#039;无自动波次&#039;:&#039;第 &#039;+(waveIndex()+1)+&#039; 波 · &#039;+n+&#039; 个&#039;),&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;button&lt;/del&gt;);card.append(head,tags,resources,foot);cards.append(card);&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;         &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;var compareButton=el(&#039;button&#039;,&#039;&#039;,&#039;加入对比&#039;);compareButton.type=&#039;button&#039;;compareButton.dataset.compare=s.key;compareButton.addEventListener(&#039;click&#039;,function(){toggleCompare(s);});&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        var actions=el(&#039;div&#039;,&#039;cq-card-actions&#039;);actions.append(compareButton,button);&lt;/ins&gt;foot.append(el(&#039;span&#039;,&#039;&#039;,n===null?&#039;无自动波次&#039;:&#039;第 &#039;+(waveIndex()+1)+&#039; 波 · &#039;+n+&#039; 个&#039;),&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;actions&lt;/ins&gt;);card.append(head,tags,resources,foot);cards.append(card);&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;&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;       var pages=Math.max(1,Math.ceil(filtered.length/size));pageText.textContent=(state.page+1)+&amp;#039; / &amp;#039;+pages;previous.disabled=state.page===0;next.disabled=state.page&amp;gt;=pages-1;pager.hidden=!filtered.length;&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;       var pages=Math.max(1,Math.ceil(filtered.length/size));pageText.textContent=(state.page+1)+&amp;#039; / &amp;#039;+pages;previous.disabled=state.page===0;next.disabled=state.page&amp;gt;=pages-1;pager.hidden=!filtered.length;&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;       var visible=filtered.slice(state.page*size,(state.page+1)*size);selectSector(visible.find(function(s){return s.key===state.selected;})||visible[0]);&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;       var visible=filtered.slice(state.page*size,(state.page+1)*size);selectSector(visible.find(function(s){return s.key===state.selected;})||visible[0]);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      syncCompareButtons();&lt;/ins&gt;&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;&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;     function render(){&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;     function render(){&lt;/div&gt;&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-l99&quot;&gt;第99行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第128行：&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;       status.textContent=&amp;#039;找到 &amp;#039;+filtered.length+&amp;#039; / &amp;#039;+sectors.length+&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;       status.textContent=&amp;#039;找到 &amp;#039;+filtered.length+&amp;#039; / &amp;#039;+sectors.length+&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;       if(min.value!==&amp;#039;&amp;#039;&amp;amp;&amp;amp;max.value!==&amp;#039;&amp;#039;&amp;amp;&amp;amp;Number(min.value)&amp;gt;Number(max.value))status.textContent+=&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;       if(min.value!==&amp;#039;&amp;#039;&amp;amp;&amp;amp;max.value!==&amp;#039;&amp;#039;&amp;amp;&amp;amp;Number(min.value)&amp;gt;Number(max.value))status.textContent+=&amp;#039; · 出怪下限大于上限&amp;#039;;&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;       choose.replaceChildren();filtered.forEach(function(s){var option=el(&#039;option&#039;,&#039;&#039;,s.title+&#039; · &#039;+s.difficulty);option.value=s.key;choose.append(option);});choose.disabled=!filtered.length;state.page=Math.min(state.page,Math.max(0,Math.ceil(filtered.length/size)-1));renderCards();&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;       choose.replaceChildren();filtered.forEach(function(s){var option=el(&#039;option&#039;,&#039;&#039;,s.title+&#039; · &#039;+s.difficulty);option.value=s.key;choose.append(option);});choose.disabled=!filtered.length;state.page=Math.min(state.page,Math.max(0,Math.ceil(filtered.length/size)-1));renderCards&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;();renderComparison&lt;/ins&gt;();&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;&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;     choose.addEventListener(&amp;#039;change&amp;#039;,function(){var s=filtered.find(function(s){return s.key===choose.value;});if(!s)return;state.selected=s.key;state.page=Math.floor(filtered.indexOf(s)/size);renderCards();});&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;     choose.addEventListener(&amp;#039;change&amp;#039;,function(){var s=filtered.find(function(s){return s.key===choose.value;});if(!s)return;state.selected=s.key;state.page=Math.floor(filtered.indexOf(s)/size);renderCards();});&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mdtwiki_stnglove:diff:1.41:old-6288:rev-6297:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Mdtwikibot</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;diff=6288&amp;oldid=prev</id>
		<title>Mdtwikibot：​MDTWikiTools #1636: publish [493c210c4242ef94]</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;diff=6288&amp;oldid=prev"/>
		<updated>2026-10-19T02:36:40Z</updated>

		<summary type="html">&lt;p&gt;MDTWikiTools #1636: publish [493c210c4242ef94]&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;2026年10月19日 (一) 10:36的版本&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-l11&quot;&gt;第11行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第11行：&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;   function initialize(host) {&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;   function initialize(host) {&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(host.dataset.ready)return;host.dataset.ready=&amp;#039;true&amp;#039;;host.replaceChildren();&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(host.dataset.ready)return;host.dataset.ready=&amp;#039;true&amp;#039;;host.replaceChildren();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    var scope=host.dataset.planet||&#039;&#039;,sectors=data.sectors.filter(function(s){return !scope||s.planet===scope;});&lt;/ins&gt;&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;     var state={page:0,selected:null},size=12,filtered=[];&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;     var state={page:0,selected:null},size=12,filtered=[];&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;     var filters=el(&amp;#039;form&amp;#039;,&amp;#039;cq-filters&amp;#039;);filters.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;区块筛选&amp;#039;);filters.addEventListener(&amp;#039;submit&amp;#039;,function(e){e.preventDefault();render();});&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;     var filters=el(&amp;#039;form&amp;#039;,&amp;#039;cq-filters&amp;#039;);filters.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;区块筛选&amp;#039;);filters.addEventListener(&amp;#039;submit&amp;#039;,function(e){e.preventDefault();render();});&lt;/div&gt;&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-l24&quot;&gt;第24行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第25行：&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;     var kind=field(&amp;#039;kind&amp;#039;,&amp;#039;地图类别&amp;#039;,[[&amp;#039;&amp;#039;,&amp;#039;全部类别&amp;#039;],[&amp;#039;mainline&amp;#039;,&amp;#039;主线地图&amp;#039;],[&amp;#039;numeric&amp;#039;,&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;     var kind=field(&amp;#039;kind&amp;#039;,&amp;#039;地图类别&amp;#039;,[[&amp;#039;&amp;#039;,&amp;#039;全部类别&amp;#039;],[&amp;#039;mainline&amp;#039;,&amp;#039;主线地图&amp;#039;],[&amp;#039;numeric&amp;#039;,&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;     var planet=field(&amp;#039;planet&amp;#039;,&amp;#039;所属星球&amp;#039;,[[&amp;#039;&amp;#039;,&amp;#039;全部星球&amp;#039;],[&amp;#039;serpulo&amp;#039;,&amp;#039;塞普罗&amp;#039;],[&amp;#039;erekir&amp;#039;,&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;     var planet=field(&amp;#039;planet&amp;#039;,&amp;#039;所属星球&amp;#039;,[[&amp;#039;&amp;#039;,&amp;#039;全部星球&amp;#039;],[&amp;#039;serpulo&amp;#039;,&amp;#039;塞普罗&amp;#039;],[&amp;#039;erekir&amp;#039;,&amp;#039;埃里克尔&amp;#039;]]);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if(scope){planet.replaceChildren();var fixed=el(&#039;option&#039;,&#039;&#039;,planets[scope]);fixed.value=scope;planet.append(fixed);planet.disabled=true;}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if(scope===&#039;erekir&#039;){kind.querySelector(&#039;option[value=&quot;numeric&quot;]&#039;).remove();}&lt;/ins&gt;&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;     var search=field(&amp;#039;search&amp;#039;,&amp;#039;名称 / 区块编号&amp;#039;,null,&amp;#039;search&amp;#039;);search.placeholder=&amp;#039;如：零号地区、175&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;     var search=field(&amp;#039;search&amp;#039;,&amp;#039;名称 / 区块编号&amp;#039;,null,&amp;#039;search&amp;#039;);search.placeholder=&amp;#039;如：零号地区、175&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;     var difficulty=field(&amp;#039;difficulty&amp;#039;,&amp;#039;游戏内难度&amp;#039;,[[&amp;#039;&amp;#039;,&amp;#039;全部难度&amp;#039;]].concat(levels.map(function(l){return [l,l];})));&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;     var difficulty=field(&amp;#039;difficulty&amp;#039;,&amp;#039;游戏内难度&amp;#039;,[[&amp;#039;&amp;#039;,&amp;#039;全部难度&amp;#039;]].concat(levels.map(function(l){return [l,l];})));&lt;/div&gt;&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-l31&quot;&gt;第31行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第34行：&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;     var max=field(&amp;#039;max&amp;#039;,&amp;#039;本波出怪 ≤&amp;#039;,null,&amp;#039;number&amp;#039;);max.min=&amp;#039;0&amp;#039;;max.placeholder=&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;     var max=field(&amp;#039;max&amp;#039;,&amp;#039;本波出怪 ≤&amp;#039;,null,&amp;#039;number&amp;#039;);max.min=&amp;#039;0&amp;#039;;max.placeholder=&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;     var sortOptions=[[&amp;#039;title&amp;#039;,&amp;#039;区块编号 / 名称&amp;#039;],[&amp;#039;difficulty&amp;#039;,&amp;#039;游戏内难度&amp;#039;],[&amp;#039;enemies&amp;#039;,&amp;#039;本波出怪数量&amp;#039;],[&amp;#039;resources&amp;#039;,&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;     var sortOptions=[[&amp;#039;title&amp;#039;,&amp;#039;区块编号 / 名称&amp;#039;],[&amp;#039;difficulty&amp;#039;,&amp;#039;游戏内难度&amp;#039;],[&amp;#039;enemies&amp;#039;,&amp;#039;本波出怪数量&amp;#039;],[&amp;#039;resources&amp;#039;,&amp;#039;资源种类数&amp;#039;]];&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;     var resourceIds=Object.keys(data.entities).filter(function(k){return !k.startsWith(&#039;unit:&#039;)&amp;amp;&amp;amp;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;data.&lt;/del&gt;sectors.some(function(s){return s.resources.some(function(r){return r.id===k;});});});&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;     var resourceIds=Object.keys(data.entities).filter(function(k){return !k.startsWith(&#039;unit:&#039;)&amp;amp;&amp;amp;sectors.some(function(s){return s.resources.some(function(r){return r.id===k;});});});&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;     resourceIds.forEach(function(id){sortOptions.push([&amp;#039;res:&amp;#039;+id,data.entities[id].title+&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;     resourceIds.forEach(function(id){sortOptions.push([&amp;#039;res:&amp;#039;+id,data.entities[id].title+&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;     var sort=field(&amp;#039;sort&amp;#039;,&amp;#039;排序依据&amp;#039;,sortOptions);&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;     var sort=field(&amp;#039;sort&amp;#039;,&amp;#039;排序依据&amp;#039;,sortOptions);&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;     var order=field(&#039;order&#039;,&#039;排列方向&#039;,[[&#039;asc&#039;,&#039;升序 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;↑&lt;/del&gt;&#039;],[&#039;desc&#039;,&#039;降序 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;↓&lt;/del&gt;&#039;]]);&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;     var order=field(&#039;order&#039;,&#039;排列方向&#039;,[[&#039;asc&#039;,&#039;升序 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;↑（从小到大）&lt;/ins&gt;&#039;],[&#039;desc&#039;,&#039;降序 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;↓（从大到小）&lt;/ins&gt;&#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;     var extra=field(&amp;#039;extra&amp;#039;,&amp;#039;预设范围&amp;#039;,[[&amp;#039;all&amp;#039;,&amp;#039;全部预设&amp;#039;],[&amp;#039;normal&amp;#039;,&amp;#039;常规战役&amp;#039;],[&amp;#039;extra&amp;#039;,&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;     var extra=field(&amp;#039;extra&amp;#039;,&amp;#039;预设范围&amp;#039;,[[&amp;#039;all&amp;#039;,&amp;#039;全部预设&amp;#039;],[&amp;#039;normal&amp;#039;,&amp;#039;常规战役&amp;#039;],[&amp;#039;extra&amp;#039;,&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;     var reset=el(&amp;#039;button&amp;#039;,&amp;#039;cq-reset&amp;#039;,&amp;#039;重置筛选&amp;#039;);reset.type=&amp;#039;button&amp;#039;;grid.append(reset);&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;     var reset=el(&amp;#039;button&amp;#039;,&amp;#039;cq-reset&amp;#039;,&amp;#039;重置筛选&amp;#039;);reset.type=&amp;#039;button&amp;#039;;grid.append(reset);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    var rankWrap=el(&#039;label&#039;,&#039;cq-resource-head&#039;),rank=el(&#039;select&#039;);rank.name=&#039;resourceRank&#039;;rank.setAttribute(&#039;aria-label&#039;,&#039;查找哪种资源最多&#039;);rankWrap.append(el(&#039;span&#039;,&#039;&#039;,&#039;查找资源最多的区块&#039;),rank);var hint=el(&#039;option&#039;,&#039;&#039;,&#039;选择资源，按格数从多到少排列&#039;);hint.value=&#039;&#039;;rank.append(hint);resourceIds.forEach(function(id){var o=el(&#039;option&#039;,&#039;&#039;,data.entities[id].title+&#039;最多&#039;);o.value=id;rank.append(o);});filters.append(rankWrap);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    rank.addEventListener(&#039;change&#039;,function(){if(!rank.value)return;sort.value=&#039;res:&#039;+rank.value;order.value=&#039;desc&#039;;state.page=0;state.selected=null;render();});&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    var sortNote=el(&#039;p&#039;,&#039;cq-note&#039;);filters.append(sortNote);&lt;/ins&gt;&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;     var resourceSet=el(&amp;#039;fieldset&amp;#039;,&amp;#039;cq-minerals&amp;#039;),legend=el(&amp;#039;legend&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;资源筛选&amp;#039;);resourceSet.append(legend);&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;     var resourceSet=el(&amp;#039;fieldset&amp;#039;,&amp;#039;cq-minerals&amp;#039;),legend=el(&amp;#039;legend&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;资源筛选&amp;#039;);resourceSet.append(legend);&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;     var resourceHead=el(&amp;#039;div&amp;#039;,&amp;#039;cq-resource-head&amp;#039;),matchLabel=el(&amp;#039;label&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;多选条件 &amp;#039;),match=el(&amp;#039;select&amp;#039;);match.name=&amp;#039;resourceMatch&amp;#039;;match.setAttribute(&amp;#039;aria-label&amp;#039;,&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;     var resourceHead=el(&amp;#039;div&amp;#039;,&amp;#039;cq-resource-head&amp;#039;),matchLabel=el(&amp;#039;label&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;多选条件 &amp;#039;),match=el(&amp;#039;select&amp;#039;);match.name=&amp;#039;resourceMatch&amp;#039;;match.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;资源匹配方式&amp;#039;);&lt;/div&gt;&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-l74&quot;&gt;第74行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第80行：&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;         var tags=el(&amp;#039;div&amp;#039;,&amp;#039;cq-tags&amp;#039;);tags.append(el(&amp;#039;span&amp;#039;,&amp;#039;cq-level cq-level-&amp;#039;+levels.indexOf(s.difficulty),s.difficulty),el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,s.attack?&amp;#039;进攻&amp;#039;:s.waves?&amp;#039;波次&amp;#039;:&amp;#039;脚本目标&amp;#039;));if(s.extra)tags.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,&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;         var tags=el(&amp;#039;div&amp;#039;,&amp;#039;cq-tags&amp;#039;);tags.append(el(&amp;#039;span&amp;#039;,&amp;#039;cq-level cq-level-&amp;#039;+levels.indexOf(s.difficulty),s.difficulty),el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,s.attack?&amp;#039;进攻&amp;#039;:s.waves?&amp;#039;波次&amp;#039;:&amp;#039;脚本目标&amp;#039;));if(s.extra)tags.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,&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;         var resources=el(&amp;#039;div&amp;#039;,&amp;#039;cq-card-resources&amp;#039;);s.resources.forEach(function(r){resources.append(object(r.id));});&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;         var resources=el(&amp;#039;div&amp;#039;,&amp;#039;cq-card-resources&amp;#039;);s.resources.forEach(function(r){resources.append(object(r.id));});&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        if(sort.value.startsWith(&#039;res:&#039;)){var metric=el(&#039;div&#039;,&#039;cq-sort-metric&#039;);metric.append(el(&#039;span&#039;,&#039;&#039;,&#039;排序资源：&#039;),object(sort.value.slice(4),amount(s,sort.value.slice(4))));resources.append(metric);}&lt;/ins&gt;&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;         var foot=el(&amp;#039;div&amp;#039;,&amp;#039;cq-card-foot&amp;#039;),n=count(s),button=el(&amp;#039;button&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;查看详情&amp;#039;);button.type=&amp;#039;button&amp;#039;;button.dataset.sector=s.key;button.addEventListener(&amp;#039;click&amp;#039;,function(){selectSector(s);if(matchMedia(&amp;#039;(max-width:1100px)&amp;#039;).matches)detail.scrollIntoView({behavior:&amp;#039;instant&amp;#039;,block:&amp;#039;start&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;         var foot=el(&amp;#039;div&amp;#039;,&amp;#039;cq-card-foot&amp;#039;),n=count(s),button=el(&amp;#039;button&amp;#039;,&amp;#039;&amp;#039;,&amp;#039;查看详情&amp;#039;);button.type=&amp;#039;button&amp;#039;;button.dataset.sector=s.key;button.addEventListener(&amp;#039;click&amp;#039;,function(){selectSector(s);if(matchMedia(&amp;#039;(max-width:1100px)&amp;#039;).matches)detail.scrollIntoView({behavior:&amp;#039;instant&amp;#039;,block:&amp;#039;start&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;         foot.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,n===null?&amp;#039;无自动波次&amp;#039;:&amp;#039;第 &amp;#039;+(waveIndex()+1)+&amp;#039; 波 · &amp;#039;+n+&amp;#039; 个&amp;#039;),button);card.append(head,tags,resources,foot);cards.append(card);&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;         foot.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,n===null?&amp;#039;无自动波次&amp;#039;:&amp;#039;第 &amp;#039;+(waveIndex()+1)+&amp;#039; 波 · &amp;#039;+n+&amp;#039; 个&amp;#039;),button);card.append(head,tags,resources,foot);cards.append(card);&lt;/div&gt;&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-l82&quot;&gt;第82行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第89行：&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;     function render(){&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;     function render(){&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;       var selected=checks.filter(function(c){return c.checked;}).map(function(c){return c.value;}),term=search.value.trim().toLowerCase();&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;       var selected=checks.filter(function(c){return c.checked;}).map(function(c){return c.value;}),term=search.value.trim().toLowerCase();&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;       filtered=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;data.&lt;/del&gt;sectors.filter(function(s){&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;       filtered=sectors.filter(function(s){&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;         var n=count(s);&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;         var n=count(s);&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 (!kind.value||s.kind===kind.value)&amp;amp;&amp;amp;(!planet.value||s.planet===planet.value)&amp;amp;&amp;amp;(!term||s.title.toLowerCase().includes(term)||String(s.id)===term)&amp;amp;&amp;amp;(!difficulty.value||s.difficulty===difficulty.value)&amp;amp;&amp;amp;(!mode.value||(mode.value===&amp;#039;attack&amp;#039;?s.attack:mode.value===&amp;#039;script&amp;#039;?!s.waves:s.waves&amp;amp;&amp;amp;!s.attack))&amp;amp;&amp;amp;(extra.value===&amp;#039;all&amp;#039;||(extra.value===&amp;#039;extra&amp;#039;?s.extra:!s.extra))&amp;amp;&amp;amp;(min.value===&amp;#039;&amp;#039;||(n!==null&amp;amp;&amp;amp;n&amp;gt;=Number(min.value)))&amp;amp;&amp;amp;(max.value===&amp;#039;&amp;#039;||(n!==null&amp;amp;&amp;amp;n&amp;lt;=Number(max.value)))&amp;amp;&amp;amp;(!selected.length||(match.value===&amp;#039;all&amp;#039;?selected.every(function(id){return amount(s,id)&amp;gt;0;}):selected.some(function(id){return amount(s,id)&amp;gt;0;})));&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 (!kind.value||s.kind===kind.value)&amp;amp;&amp;amp;(!planet.value||s.planet===planet.value)&amp;amp;&amp;amp;(!term||s.title.toLowerCase().includes(term)||String(s.id)===term)&amp;amp;&amp;amp;(!difficulty.value||s.difficulty===difficulty.value)&amp;amp;&amp;amp;(!mode.value||(mode.value===&amp;#039;attack&amp;#039;?s.attack:mode.value===&amp;#039;script&amp;#039;?!s.waves:s.waves&amp;amp;&amp;amp;!s.attack))&amp;amp;&amp;amp;(extra.value===&amp;#039;all&amp;#039;||(extra.value===&amp;#039;extra&amp;#039;?s.extra:!s.extra))&amp;amp;&amp;amp;(min.value===&amp;#039;&amp;#039;||(n!==null&amp;amp;&amp;amp;n&amp;gt;=Number(min.value)))&amp;amp;&amp;amp;(max.value===&amp;#039;&amp;#039;||(n!==null&amp;amp;&amp;amp;n&amp;lt;=Number(max.value)))&amp;amp;&amp;amp;(!selected.length||(match.value===&amp;#039;all&amp;#039;?selected.every(function(id){return amount(s,id)&amp;gt;0;}):selected.some(function(id){return amount(s,id)&amp;gt;0;})));&lt;/div&gt;&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-l88&quot;&gt;第88行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第95行：&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;       function value(s){if(sort.value===&amp;#039;difficulty&amp;#039;)return s.threat;if(sort.value===&amp;#039;enemies&amp;#039;)return count(s);if(sort.value===&amp;#039;resources&amp;#039;)return s.resources.length;if(sort.value.startsWith(&amp;#039;res:&amp;#039;))return amount(s,sort.value.slice(4));return null;}&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;       function value(s){if(sort.value===&amp;#039;difficulty&amp;#039;)return s.threat;if(sort.value===&amp;#039;enemies&amp;#039;)return count(s);if(sort.value===&amp;#039;resources&amp;#039;)return s.resources.length;if(sort.value.startsWith(&amp;#039;res:&amp;#039;))return amount(s,sort.value.slice(4));return null;}&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;       filtered.sort(function(a,b){var v;if(sort.value===&amp;#039;title&amp;#039;)v=Number(a.planet===&amp;#039;erekir&amp;#039;)-Number(b.planet===&amp;#039;erekir&amp;#039;)||((a.kind===b.kind)?a.id-b.id:a.kind.localeCompare(b.kind));else{var x=value(a),y=value(b);if(x===null||y===null)return x===y?a.key.localeCompare(b.key):x===null?1:-1;v=x-y;}return (order.value===&amp;#039;desc&amp;#039;?-v:v)||a.key.localeCompare(b.key);});&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;       filtered.sort(function(a,b){var v;if(sort.value===&amp;#039;title&amp;#039;)v=Number(a.planet===&amp;#039;erekir&amp;#039;)-Number(b.planet===&amp;#039;erekir&amp;#039;)||((a.kind===b.kind)?a.id-b.id:a.kind.localeCompare(b.kind));else{var x=value(a),y=value(b);if(x===null||y===null)return x===y?a.key.localeCompare(b.key):x===null?1:-1;v=x-y;}return (order.value===&amp;#039;desc&amp;#039;?-v:v)||a.key.localeCompare(b.key);});&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;       status.textContent=&#039;找到 &#039;+filtered.length+&#039; / &#039;+&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;data.&lt;/del&gt;sectors.length+&#039; 个区块&#039;;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      rank.value=sort.value.startsWith(&#039;res:&#039;)&amp;amp;&amp;amp;order.value===&#039;desc&#039;?sort.value.slice(4):&#039;&#039;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      sortNote.textContent=&#039;当前排序：&#039;+sort.selectedOptions[0].textContent+&#039; · &#039;+(order.value===&#039;desc&#039;?&#039;从大到小&#039;:&#039;从小到大&#039;)+(sort.value===&#039;title&#039;?&#039;。勾选矿物仅筛选是否含有；比较储量请在上方选择“查找资源最多的区块”。&#039;:&#039;。只对当前筛选结果排序。&#039;);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;       status.textContent=&#039;找到 &#039;+filtered.length+&#039; / &#039;+sectors.length+&#039; 个区块&#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;       if(min.value!==&amp;#039;&amp;#039;&amp;amp;&amp;amp;max.value!==&amp;#039;&amp;#039;&amp;amp;&amp;amp;Number(min.value)&amp;gt;Number(max.value))status.textContent+=&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;       if(min.value!==&amp;#039;&amp;#039;&amp;amp;&amp;amp;max.value!==&amp;#039;&amp;#039;&amp;amp;&amp;amp;Number(min.value)&amp;gt;Number(max.value))status.textContent+=&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;       choose.replaceChildren();filtered.forEach(function(s){var option=el(&amp;#039;option&amp;#039;,&amp;#039;&amp;#039;,s.title+&amp;#039; · &amp;#039;+s.difficulty);option.value=s.key;choose.append(option);});choose.disabled=!filtered.length;state.page=Math.min(state.page,Math.max(0,Math.ceil(filtered.length/size)-1));renderCards();&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;       choose.replaceChildren();filtered.forEach(function(s){var option=el(&amp;#039;option&amp;#039;,&amp;#039;&amp;#039;,s.title+&amp;#039; · &amp;#039;+s.difficulty);option.value=s.key;choose.append(option);});choose.disabled=!filtered.length;state.page=Math.min(state.page,Math.max(0,Math.ceil(filtered.length/size)-1));renderCards();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mdtwiki_stnglove:diff:1.41:old-6285:rev-6288:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Mdtwikibot</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;diff=6285&amp;oldid=prev</id>
		<title>Mdtwikibot：​MDTWikiTools #1633: publish [f76e35a8409bb8da]</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;diff=6285&amp;oldid=prev"/>
		<updated>2026-10-18T15:59:54Z</updated>

		<summary type="html">&lt;p&gt;MDTWikiTools #1633: publish [f76e35a8409bb8da]&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;2026年10月18日 (日) 23:59的版本&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-l41&quot;&gt;第41行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第41行：&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;     [[&amp;#039;all&amp;#039;,&amp;#039;同时包含&amp;#039;],[&amp;#039;any&amp;#039;,&amp;#039;包含任一&amp;#039;]].forEach(function(o){var p=el(&amp;#039;option&amp;#039;,&amp;#039;&amp;#039;,o[1]);p.value=o[0];match.append(p);});matchLabel.append(match);resourceHead.append(matchLabel,el(&amp;#039;span&amp;#039;,&amp;#039;cq-muted&amp;#039;,&amp;#039;未勾选时显示全部资源类型&amp;#039;));resourceSet.append(resourceHead);&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;     [[&amp;#039;all&amp;#039;,&amp;#039;同时包含&amp;#039;],[&amp;#039;any&amp;#039;,&amp;#039;包含任一&amp;#039;]].forEach(function(o){var p=el(&amp;#039;option&amp;#039;,&amp;#039;&amp;#039;,o[1]);p.value=o[0];match.append(p);});matchLabel.append(match);resourceHead.append(matchLabel,el(&amp;#039;span&amp;#039;,&amp;#039;cq-muted&amp;#039;,&amp;#039;未勾选时显示全部资源类型&amp;#039;));resourceSet.append(resourceHead);&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;     var pills=el(&amp;#039;div&amp;#039;,&amp;#039;cq-resource-pills&amp;#039;),checks=[];&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;     var pills=el(&amp;#039;div&amp;#039;,&amp;#039;cq-resource-pills&amp;#039;),checks=[];&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;     resourceIds.forEach(function(id){var label=el(&#039;label&#039;,&#039;cq-pill&#039;),check=el(&#039;input&#039;);check.type=&#039;checkbox&#039;;check.value=id;check.name=&#039;resource&#039;;label.append(check,&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;object(id)&lt;/del&gt;);pills.append(label);checks.push(check);check.addEventListener(&#039;change&#039;,function(){state.page=0;render();});});&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;     resourceIds.forEach(function(id){var label=el(&#039;label&#039;,&#039;cq-pill&#039;),check=el(&#039;input&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;),resource=object(id),a=resource.querySelector(&#039;a&lt;/ins&gt;&#039;);check.type=&#039;checkbox&#039;;check.value=id;check.name=&#039;resource&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;a.replaceWith(el(&#039;span&#039;,&#039;&#039;,a.textContent))&lt;/ins&gt;;label.append(check,&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;resource&lt;/ins&gt;);pills.append(label);checks.push(check);check.addEventListener(&#039;change&#039;,function(){state.page=0;render();});});&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;     match.addEventListener(&amp;#039;change&amp;#039;,function(){state.page=0;render();});resourceSet.append(pills);filters.append(resourceSet);&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;     match.addEventListener(&amp;#039;change&amp;#039;,function(){state.page=0;render();});resourceSet.append(pills);filters.append(resourceSet);&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;     filters.append(el(&amp;#039;p&amp;#039;,&amp;#039;cq-note&amp;#039;,&amp;#039;出怪参考：第 1–100 波，生成组数量合计 / 每个适用出生点；脚本、工厂增援另计。矿物格数包含墙后及封闭区域。&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;     filters.append(el(&amp;#039;p&amp;#039;,&amp;#039;cq-note&amp;#039;,&amp;#039;出怪参考：第 1–100 波，生成组数量合计 / 每个适用出生点；脚本、工厂增援另计。矿物格数包含墙后及封闭区域。&amp;#039;));&lt;/div&gt;&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-l50&quot;&gt;第50行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第50行：&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;     var detail=el(&amp;#039;section&amp;#039;,&amp;#039;cq-detail&amp;#039;);detail.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;所选区块详情&amp;#039;);detail.setAttribute(&amp;#039;aria-live&amp;#039;,&amp;#039;polite&amp;#039;);layout.append(left,detail);host.append(filters,toolbar,layout);&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;     var detail=el(&amp;#039;section&amp;#039;,&amp;#039;cq-detail&amp;#039;);detail.setAttribute(&amp;#039;aria-label&amp;#039;,&amp;#039;所选区块详情&amp;#039;);detail.setAttribute(&amp;#039;aria-live&amp;#039;,&amp;#039;polite&amp;#039;);layout.append(left,detail);host.append(filters,toolbar,layout);&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;     var urlParams=new URLSearchParams(location.search);if([&amp;#039;mainline&amp;#039;,&amp;#039;numeric&amp;#039;].includes(urlParams.get(&amp;#039;kind&amp;#039;)))kind.value=urlParams.get(&amp;#039;kind&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;     var urlParams=new URLSearchParams(location.search);if([&amp;#039;mainline&amp;#039;,&amp;#039;numeric&amp;#039;].includes(urlParams.get(&amp;#039;kind&amp;#039;)))kind.value=urlParams.get(&amp;#039;kind&amp;#039;);&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;     &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;if&lt;/del&gt;(decodeURIComponent(location.hash)===&#039;#数字查询&#039;)kind.value=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;numeric&#039;&lt;/del&gt;;&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;     &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;function hashKind&lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;){var hash;try{hash=&lt;/ins&gt;decodeURIComponent(location.hash)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;}catch(e){return &#039;&#039;; }return hash&lt;/ins&gt;===&#039;#数字查询&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;?&#039;numeric&#039;:hash===&#039;#主线查询&#039;?&#039;mainline&#039;:&#039;&#039;;}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if(hashKind()&lt;/ins&gt;)kind.value=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hashKind()&lt;/ins&gt;;&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;     function waveIndex(){return Math.max(0,Math.min(99,(Number(wave.value)||1)-1))|0;}&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;     function waveIndex(){return Math.max(0,Math.min(99,(Number(wave.value)||1)-1))|0;}&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;     function count(s){return s.waves?s.totals[waveIndex()]:null;}&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;     function count(s){return s.waves?s.totals[waveIndex()]:null;}&lt;/div&gt;&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-l73&quot;&gt;第73行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第74行：&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;         var tags=el(&amp;#039;div&amp;#039;,&amp;#039;cq-tags&amp;#039;);tags.append(el(&amp;#039;span&amp;#039;,&amp;#039;cq-level cq-level-&amp;#039;+levels.indexOf(s.difficulty),s.difficulty),el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,s.attack?&amp;#039;进攻&amp;#039;:s.waves?&amp;#039;波次&amp;#039;:&amp;#039;脚本目标&amp;#039;));if(s.extra)tags.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,&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;         var tags=el(&amp;#039;div&amp;#039;,&amp;#039;cq-tags&amp;#039;);tags.append(el(&amp;#039;span&amp;#039;,&amp;#039;cq-level cq-level-&amp;#039;+levels.indexOf(s.difficulty),s.difficulty),el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,s.attack?&amp;#039;进攻&amp;#039;:s.waves?&amp;#039;波次&amp;#039;:&amp;#039;脚本目标&amp;#039;));if(s.extra)tags.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,&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;         var resources=el(&amp;#039;div&amp;#039;,&amp;#039;cq-card-resources&amp;#039;);s.resources.forEach(function(r){resources.append(object(r.id));});&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;         var resources=el(&amp;#039;div&amp;#039;,&amp;#039;cq-card-resources&amp;#039;);s.resources.forEach(function(r){resources.append(object(r.id));});&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;         var foot=el(&#039;div&#039;,&#039;cq-card-foot&#039;),n=count(s),button=el(&#039;button&#039;,&#039;&#039;,&#039;查看详情&#039;);button.type=&#039;button&#039;;button.dataset.sector=s.key;button.addEventListener(&#039;click&#039;,function(){selectSector(s);if(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;innerWidth&amp;lt;1000&lt;/del&gt;)detail.scrollIntoView({behavior:&#039;instant&#039;,block:&#039;start&#039;});});&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;         var foot=el(&#039;div&#039;,&#039;cq-card-foot&#039;),n=count(s),button=el(&#039;button&#039;,&#039;&#039;,&#039;查看详情&#039;);button.type=&#039;button&#039;;button.dataset.sector=s.key;button.addEventListener(&#039;click&#039;,function(){selectSector(s);if(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;matchMedia(&#039;(max-width:1100px)&#039;).matches&lt;/ins&gt;)detail.scrollIntoView({behavior:&#039;instant&#039;,block:&#039;start&#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;         foot.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,n===null?&amp;#039;无自动波次&amp;#039;:&amp;#039;第 &amp;#039;+(waveIndex()+1)+&amp;#039; 波 · &amp;#039;+n+&amp;#039; 个&amp;#039;),button);card.append(head,tags,resources,foot);cards.append(card);&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;         foot.append(el(&amp;#039;span&amp;#039;,&amp;#039;&amp;#039;,n===null?&amp;#039;无自动波次&amp;#039;:&amp;#039;第 &amp;#039;+(waveIndex()+1)+&amp;#039; 波 · &amp;#039;+n+&amp;#039; 个&amp;#039;),button);card.append(head,tags,resources,foot);cards.append(card);&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;       var pages=Math.max(1,Math.ceil(filtered.length/size));pageText.textContent=(state.page+1)+&#039; / &#039;+pages;previous.disabled=state.page===0;next.disabled=state.page&amp;gt;=pages-1;pager.hidden=!filtered.length;selectSector(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;filtered&lt;/del&gt;.find(function(s){return s.key===state.selected;})||&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;filtered&lt;/del&gt;[0]);&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;       var pages=Math.max(1,Math.ceil(filtered.length/size));pageText.textContent=(state.page+1)+&#039; / &#039;+pages;previous.disabled=state.page===0;next.disabled=state.page&amp;gt;=pages-1;pager.hidden=!filtered.length&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      var visible=filtered.slice(state.page*size,(state.page+1)*size)&lt;/ins&gt;;selectSector(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;visible&lt;/ins&gt;.find(function(s){return s.key===state.selected;})||&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;visible&lt;/ins&gt;[0]);&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;&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;     function render(){&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;     function render(){&lt;/div&gt;&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-l94&quot;&gt;第94行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第96行：&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;     reset.onclick=function(){filters.reset();wave.value=&amp;#039;1&amp;#039;;state.page=0;state.selected=null;render();};&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;     reset.onclick=function(){filters.reset();wave.value=&amp;#039;1&amp;#039;;state.page=0;state.selected=null;render();};&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;     wave.addEventListener(&amp;#039;change&amp;#039;,function(){wave.value=String(waveIndex()+1);render();});&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;     wave.addEventListener(&amp;#039;change&amp;#039;,function(){wave.value=String(waveIndex()+1);render();});&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    window.addEventListener(&#039;hashchange&#039;,function(){if(!host.isConnected||!hashKind())return;kind.value=hashKind();state.page=0;render();host.scrollIntoView({block:&#039;start&#039;});});&lt;/ins&gt;&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;     render();&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;     render();&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;     host.campaignQuery={getResults:function(){return filtered.map(function(s){return {key:s.key,title:s.title,difficulty:s.difficulty,threat:s.threat,enemies:count(s),resources:s.resources.map(function(r){return r.id;})};});}};&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;     host.campaignQuery={getResults:function(){return filtered.map(function(s){return {key:s.key,title:s.title,difficulty:s.difficulty,threat:s.threat,enemies:count(s),resources:s.resources.map(function(r){return r.id;})};});}};&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;   document.querySelectorAll(&#039;.mdt-campaign-query&#039;).forEach(initialize);&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;   &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;window.mdtCampaignInitialize=function(){&lt;/ins&gt;document.querySelectorAll(&#039;.mdt-campaign-query&#039;).forEach(initialize&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;);};&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  window.mdtCampaignInitialize(&lt;/ins&gt;);&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;!-- diff cache key mdtwiki_stnglove:diff:1.41:old-6275:rev-6285:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Mdtwikibot</name></author>
	</entry>
	<entry>
		<id>https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;diff=6275&amp;oldid=prev</id>
		<title>Mdtwikibot：​MDTWikiTools #1623: publish [5c5908ff02810813]</title>
		<link rel="alternate" type="text/html" href="https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;diff=6275&amp;oldid=prev"/>
		<updated>2026-10-18T15:30:23Z</updated>

		<summary type="html">&lt;p&gt;MDTWikiTools #1623: publish [5c5908ff02810813]&lt;/p&gt;
&lt;a href=&quot;https://mdtwiki.top/index.php?title=MediaWiki:CampaignQuery.js&amp;amp;diff=6275&quot;&gt;显示更改&lt;/a&gt;</summary>
		<author><name>Mdtwikibot</name></author>
	</entry>
</feed>