<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://chenyue.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
	<title>尘月维基 - 用户贡献 [zh]</title>
	<link rel="self" type="application/atom+xml" href="https://chenyue.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
	<link rel="alternate" type="text/html" href="https://chenyue.wiki/Special:Contributions/Admin"/>
	<updated>2026-10-31T20:45:45Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=154</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=154"/>
		<updated>2026-10-31T18:51:58Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:150%&amp;quot;&amp;gt;Welcome to CHENYEwiki&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%&amp;quot;&amp;gt;[[伪恶俗狗]]们看到本站的内容是否虎躯一震？鉴赏你们的装逼行为，请！&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%&amp;quot;&amp;gt;chenyue.wiki是尘月维基的官方域名 同时 为防止各位雅士找不到本站无法鉴赏伪恶俗蛆 ，请记住！尘 月 wiki&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#d32f2f;font-size:200%&amp;quot;&amp;gt;本站没有任何QQ群组或官方人员，想冒充的[[伪恶俗狗|伪恶俗小鬼]]们！洗洗睡吧！！！！！&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=153</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=153"/>
		<updated>2026-10-31T18:51:13Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:150%&amp;quot;&amp;gt;Welcome to CHENYEwiki&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%&amp;quot;&amp;gt;伪恶俗狗们看到本站的内容是否虎躯一震？鉴赏你们的装逼行为，请！&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:150%&amp;quot;&amp;gt;chenyue.wiki是尘月维基的官方域名 同时 为防止各位雅士找不到本站无法鉴赏伪恶俗蛆 ，请记住！尘 月 wiki&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#d32f2f;font-size:200%&amp;quot;&amp;gt;本站没有任何QQ群组或官方人员，想冒充的伪恶俗小鬼们！洗洗睡吧！！！！！&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=151</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=151"/>
		<updated>2026-10-31T18:42:34Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background:linear-gradient(to bottom right, #B9A3FF, #8C47E7); box-shadow:grey 0px 0px 5px; border-radius:20px; color:#000; font-size:1em; text-shadow:white 0px 0px 10px,white 0px 0px 10px; padding:10.865px; margin-bottom:14px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;　　　尘月维基&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
　　　一部&amp;lt;span style=&amp;quot;color:#d32f2f&amp;quot;&amp;gt;高雅&amp;lt;/span&amp;gt;的维基百科，持续录入伪恶俗狗，欢迎一起鉴赏伪恶俗狗。&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;background-color:#f5faff; box-shadow:grey 0px 0px 5px; width:100%; margin-top:0em; margin-bottom:14px; margin-left:auto; margin-right:auto; border:1px solid #999; border-radius:20px; text-align:center; list-style-type:square; padding-bottom:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;background-color:#510DAB; color:#FFFFFF; padding:6px 3px; border-radius:20px; font-size:110%;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;&amp;gt;公告&amp;lt;span class=&amp;quot;card-edit&amp;quot;&amp;gt;[{{fullurl:公告|veaction=edit}} 编辑内容]&amp;lt;/span&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;padding:20px; padding-top:5px;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;cb&amp;quot;&amp;gt;&lt;br /&gt;
{{:公告}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;background-color:#f5faff; box-shadow:grey 0px 0px 5px; width:100%; margin-top:0em; margin-bottom:14px; margin-left:auto; margin-right:auto; border:1px solid #999; border-radius:20px; list-style-type:square;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;background-color:#510DAB; color:#FFFFFF; padding:6px 3px; border-radius:20px; font-size:110%;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;&amp;gt;万恶之源&amp;lt;span class=&amp;quot;card-edit&amp;quot;&amp;gt;[{{fullurl:万恶之源|veaction=edit}} 编辑内容]&amp;lt;/span&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;padding:20px; padding-top:5px;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;cb-tall&amp;quot;&amp;gt;&lt;br /&gt;
{{:万恶之源}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%; border-collapse:collapse; margin-top:0em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:50%; padding:5px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;background-color:#f5faff; box-shadow:grey 0px 0px 5px; width:100%; margin:0; border:1px solid #999; border-radius:20px; list-style-type:square;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;background-color:#510DAB; color:#FFFFFF; padding:6px 3px; border-radius:20px; font-size:110%;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;&amp;gt;国际巨星&amp;lt;span class=&amp;quot;card-edit&amp;quot;&amp;gt;[{{fullurl:国际巨星|veaction=edit}} 编辑内容]&amp;lt;/span&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;padding:20px; padding-top:5px;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;cb&amp;quot;&amp;gt;&lt;br /&gt;
{{:国际巨星}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:50%; padding:5px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;background-color:#f5faff; box-shadow:grey 0px 0px 5px; width:100%; margin:0; border:1px solid #999; border-radius:20px; list-style-type:square;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;background-color:#510DAB; color:#FFFFFF; padding:6px 3px; border-radius:20px; font-size:110%;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;&amp;gt;年度硬汉&amp;lt;span class=&amp;quot;card-edit&amp;quot;&amp;gt;[{{fullurl:年度硬汉|veaction=edit}} 编辑内容]&amp;lt;/span&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;padding:20px; padding-top:5px;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;cb&amp;quot;&amp;gt;&lt;br /&gt;
{{:年度硬汉}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:50%; padding:5px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;background-color:#f5faff; box-shadow:grey 0px 0px 5px; width:100%; margin:0; border:1px solid #999; border-radius:20px; list-style-type:square;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;background-color:#510DAB; color:#FFFFFF; padding:6px 3px; border-radius:20px; font-size:110%;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;&amp;gt;奇异搞笑&amp;lt;span class=&amp;quot;card-edit&amp;quot;&amp;gt;[{{fullurl:奇异搞笑|veaction=edit}} 编辑内容]&amp;lt;/span&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;padding:20px; padding-top:5px;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;cb&amp;quot;&amp;gt;&lt;br /&gt;
{{:奇异搞笑}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:50%; padding:5px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;background-color:#f5faff; box-shadow:grey 0px 0px 5px; width:100%; margin:0; border:1px solid #999; border-radius:20px; list-style-type:square;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;background-color:#510DAB; color:#FFFFFF; padding:6px 3px; border-radius:20px; font-size:110%;&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;&amp;gt;万众瞩目&amp;lt;span class=&amp;quot;card-edit&amp;quot;&amp;gt;[{{fullurl:万众瞩目|veaction=edit}} 编辑内容]&amp;lt;/span&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;padding:20px; padding-top:5px;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;cb&amp;quot;&amp;gt;&lt;br /&gt;
{{:万众瞩目}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E6%B2%99%E7%9B%92&amp;diff=149</id>
		<title>沙盒</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E6%B2%99%E7%9B%92&amp;diff=149"/>
		<updated>2026-10-31T18:41:00Z</updated>

		<summary type="html">&lt;p&gt;Admin：​颜色/字号改为 span 内联样式：可视化编辑器里可继续编辑、可加链接&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;这一页专门用来试「排版编辑」工具，随便改。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== 颜色 ==&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#d32f2f&amp;quot;&amp;gt;红色文字&amp;lt;/span&amp;gt;　&amp;lt;span style=&amp;quot;color:#ef6c00&amp;quot;&amp;gt;橙色文字&amp;lt;/span&amp;gt;　&amp;lt;span style=&amp;quot;color:#f9a825&amp;quot;&amp;gt;黄色文字&amp;lt;/span&amp;gt;　&amp;lt;span style=&amp;quot;color:#2e7d32&amp;quot;&amp;gt;绿色文字&amp;lt;/span&amp;gt;　&amp;lt;span style=&amp;quot;color:#1565c0&amp;quot;&amp;gt;蓝色文字&amp;lt;/span&amp;gt;　&amp;lt;span style=&amp;quot;color:#6b3fa0&amp;quot;&amp;gt;紫色文字&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 字号 ==&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:80%&amp;quot;&amp;gt;80% 的字&amp;lt;/span&amp;gt;　&amp;lt;span style=&amp;quot;font-size:120%&amp;quot;&amp;gt;120% 的字&amp;lt;/span&amp;gt;　&amp;lt;span style=&amp;quot;font-size:150%&amp;quot;&amp;gt;150% 的字&amp;lt;/span&amp;gt;　&amp;lt;span style=&amp;quot;font-size:200%&amp;quot;&amp;gt;200% 的字&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 对齐 ==&lt;br /&gt;
{{对齐|1=center|2=这一段是居中的}}&lt;br /&gt;
{{对齐|1=right|2=这一段是靠右的}}&lt;br /&gt;
&lt;br /&gt;
== 图片 ==&lt;br /&gt;
[[File:神人四人组.png|300px|center]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E4%B8%87%E4%BC%97%E7%9E%A9%E7%9B%AE&amp;diff=148</id>
		<title>万众瞩目</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E4%B8%87%E4%BC%97%E7%9E%A9%E7%9B%AE&amp;diff=148"/>
		<updated>2026-10-31T18:40:59Z</updated>

		<summary type="html">&lt;p&gt;Admin：​颜色/字号改为 span 内联样式：可视化编辑器里可继续编辑、可加链接&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:120%&amp;quot;&amp;gt;[[File:Bhy.png|thumb]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;白鸿燚&#039;&#039;&#039;（2005年9月16日-2026年8月4日），黑龙江省哈尔滨市宾县人。2022-2023P社拜年祭主催。无任何挡刀皮套，各圈统一圈名&#039;&#039;&#039;白四火/白火火火火&#039;&#039;&#039;，纵横P社、东方、蔚蓝档案、邦多利等多个互联网圈子以及江浙沪一带多个展会社团，留下累累恶名。&lt;br /&gt;
&lt;br /&gt;
2023年，白鸿燚以文科492分的美丽成绩考入宁波诺丁汉大学，后来因英语水平泰国第几，数次警告未悔改后被清退，清退前同样在校内祸害良多。 2026年8月4日，白鸿燚犯下强奸罪行，在江苏省昆山市被人民警察正义逮捕。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%A5%87%E5%BC%82%E6%90%9E%E7%AC%91&amp;diff=147</id>
		<title>奇异搞笑</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%A5%87%E5%BC%82%E6%90%9E%E7%AC%91&amp;diff=147"/>
		<updated>2026-10-31T18:40:57Z</updated>

		<summary type="html">&lt;p&gt;Admin：​颜色/字号改为 span 内联样式：可视化编辑器里可继续编辑、可加链接&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Ckr.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;陈科润&#039;&#039;&#039;（2003年9月6日—），黑龙江齐齐哈尔人。常用ID：&#039;&#039;&#039;子夜星河&#039;&#039;&#039;、&#039;&#039;&#039;森繁绿子（反吕繁森等恶俗壬）&#039;&#039;&#039;等，贴吧ID：&#039;&#039;&#039;柏安great&#039;&#039;&#039;。其是&#039;&#039;&#039;中文推特键政圈&#039;&#039;&#039;活跃的&#039;&#039;&#039;键政蛤蟆&#039;&#039;&#039;之一，&#039;&#039;&#039;新浪维基&#039;&#039;&#039;的&#039;&#039;&#039;编者&#039;&#039;&#039;和&#039;&#039;&#039;管理员&#039;&#039;&#039;，也是&#039;&#039;&#039;虚拟国&#039;&#039;&#039;和&#039;&#039;&#039;放送圈&#039;&#039;&#039;出身的&#039;&#039;&#039;恶俗低能，迫真反恶俗魔怔人，反LGBTQIA+分子&#039;&#039;&#039;。&lt;br /&gt;
&lt;br /&gt;
陈科润喜欢在知乎、百度贴吧、QQ等平台迫害一般通过人士，在出道对方后，陈科润会性骚扰对方并发送自己的自拍和&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#d32f2f&amp;quot;&amp;gt;牛子照片&amp;lt;/span&amp;gt;&#039;&#039;&#039;。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E6%B2%99%E7%9B%92&amp;diff=146</id>
		<title>沙盒</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E6%B2%99%E7%9B%92&amp;diff=146"/>
		<updated>2026-10-31T18:40:40Z</updated>

		<summary type="html">&lt;p&gt;Admin：​恢复：撤销误清空（改用 API 取回原内容）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;这一页专门用来试「排版编辑」工具，随便改。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== 颜色 ==&lt;br /&gt;
{{颜色|1=#d32f2f|2=红色文字}}　{{颜色|1=#ef6c00|2=橙色文字}}　{{颜色|1=#f9a825|2=黄色文字}}　{{颜色|1=#2e7d32|2=绿色文字}}　{{颜色|1=#1565c0|2=蓝色文字}}　{{颜色|1=#6b3fa0|2=紫色文字}}&lt;br /&gt;
&lt;br /&gt;
== 字号 ==&lt;br /&gt;
{{字号|1=80%|2=80% 的字}}　{{字号|1=120%|2=120% 的字}}　{{字号|1=150%|2=150% 的字}}　{{字号|1=200%|2=200% 的字}}&lt;br /&gt;
&lt;br /&gt;
== 对齐 ==&lt;br /&gt;
{{对齐|1=center|2=这一段是居中的}}&lt;br /&gt;
{{对齐|1=right|2=这一段是靠右的}}&lt;br /&gt;
&lt;br /&gt;
== 图片 ==&lt;br /&gt;
[[File:神人四人组.png|300px|center]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E4%B8%87%E4%BC%97%E7%9E%A9%E7%9B%AE&amp;diff=145</id>
		<title>万众瞩目</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E4%B8%87%E4%BC%97%E7%9E%A9%E7%9B%AE&amp;diff=145"/>
		<updated>2026-10-31T18:40:30Z</updated>

		<summary type="html">&lt;p&gt;Admin：​恢复：撤销误清空（改用 API 取回原内容）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{字号|1=120%|2=[[File:Bhy.png|thumb]]}}&lt;br /&gt;
&#039;&#039;&#039;白鸿燚&#039;&#039;&#039;（2005年9月16日-2026年8月4日），黑龙江省哈尔滨市宾县人。2022-2023P社拜年祭主催。无任何挡刀皮套，各圈统一圈名&#039;&#039;&#039;白四火/白火火火火&#039;&#039;&#039;，纵横P社、东方、蔚蓝档案、邦多利等多个互联网圈子以及江浙沪一带多个展会社团，留下累累恶名。&lt;br /&gt;
&lt;br /&gt;
2023年，白鸿燚以文科492分的美丽成绩考入宁波诺丁汉大学，后来因英语水平泰国第几，数次警告未悔改后被清退，清退前同样在校内祸害良多。 2026年8月4日，白鸿燚犯下强奸罪行，在江苏省昆山市被人民警察正义逮捕。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%A5%87%E5%BC%82%E6%90%9E%E7%AC%91&amp;diff=144</id>
		<title>奇异搞笑</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%A5%87%E5%BC%82%E6%90%9E%E7%AC%91&amp;diff=144"/>
		<updated>2026-10-31T18:40:29Z</updated>

		<summary type="html">&lt;p&gt;Admin：​恢复：撤销误清空（改用 API 取回原内容）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Ckr.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;陈科润&#039;&#039;&#039;（2003年9月6日—），黑龙江齐齐哈尔人。常用ID：&#039;&#039;&#039;子夜星河&#039;&#039;&#039;、&#039;&#039;&#039;森繁绿子（反吕繁森等恶俗壬）&#039;&#039;&#039;等，贴吧ID：&#039;&#039;&#039;柏安great&#039;&#039;&#039;。其是&#039;&#039;&#039;中文推特键政圈&#039;&#039;&#039;活跃的&#039;&#039;&#039;键政蛤蟆&#039;&#039;&#039;之一，&#039;&#039;&#039;新浪维基&#039;&#039;&#039;的&#039;&#039;&#039;编者&#039;&#039;&#039;和&#039;&#039;&#039;管理员&#039;&#039;&#039;，也是&#039;&#039;&#039;虚拟国&#039;&#039;&#039;和&#039;&#039;&#039;放送圈&#039;&#039;&#039;出身的&#039;&#039;&#039;恶俗低能，迫真反恶俗魔怔人，反LGBTQIA+分子&#039;&#039;&#039;。&lt;br /&gt;
&lt;br /&gt;
陈科润喜欢在知乎、百度贴吧、QQ等平台迫害一般通过人士，在出道对方后，陈科润会性骚扰对方并发送自己的自拍和&#039;&#039;&#039;{{颜色|1=#d32f2f|2=牛子照片}}&#039;&#039;&#039;。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E6%B2%99%E7%9B%92&amp;diff=143</id>
		<title>沙盒</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E6%B2%99%E7%9B%92&amp;diff=143"/>
		<updated>2026-10-31T18:40:10Z</updated>

		<summary type="html">&lt;p&gt;Admin：​恢复：撤销误清空（脚本管道错误）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html class=&amp;quot;client-nojs skin-theme-clientpref-thumb-standard&amp;quot; lang=&amp;quot;zh&amp;quot; dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;MediaWiki API 结果 - 尘月维基&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;document.documentElement.className=&amp;quot;client-js skin-theme-clientpref-thumb-standard&amp;quot;;RLCONF={&amp;quot;wgBreakFrames&amp;quot;:false,&amp;quot;wgSeparatorTransformTable&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;],&amp;quot;wgDigitTransformTable&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;],&amp;quot;wgDefaultDateFormat&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;wgMonthNames&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;1月&amp;quot;,&amp;quot;2月&amp;quot;,&amp;quot;3月&amp;quot;,&amp;quot;4月&amp;quot;,&amp;quot;5月&amp;quot;,&amp;quot;6月&amp;quot;,&amp;quot;7月&amp;quot;,&amp;quot;8月&amp;quot;,&amp;quot;9月&amp;quot;,&amp;quot;10月&amp;quot;,&amp;quot;11月&amp;quot;,&amp;quot;12月&amp;quot;],&amp;quot;wgRequestId&amp;quot;:&amp;quot;d0d39641dd89a369750989a1&amp;quot;,&amp;quot;wgCanonicalNamespace&amp;quot;:&amp;quot;Special&amp;quot;,&amp;quot;wgCanonicalSpecialPageName&amp;quot;:&amp;quot;ApiHelp&amp;quot;,&amp;quot;wgNamespaceNumber&amp;quot;:-1,&amp;quot;wgPageName&amp;quot;:&amp;quot;Special:ApiHelp&amp;quot;,&amp;quot;wgTitle&amp;quot;:&amp;quot;ApiHelp&amp;quot;,&amp;quot;wgCurRevisionId&amp;quot;:0,&amp;quot;wgRevisionId&amp;quot;:0,&amp;quot;wgArticleId&amp;quot;:0,&amp;quot;wgIsArticle&amp;quot;:false,&amp;quot;wgIsRedirect&amp;quot;:false,&amp;quot;wgAction&amp;quot;:&amp;quot;view&amp;quot;,&amp;quot;wgUserName&amp;quot;:null,&amp;quot;wgUserGroups&amp;quot;:[&amp;quot;*&amp;quot;],&amp;quot;wgCategories&amp;quot;:[],&amp;quot;wgPageViewLanguage&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;wgPageContentLanguage&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;wgPageContentModel&amp;quot;:&amp;quot;wikitext&amp;quot;,&amp;quot;wgRelevantPageName&amp;quot;:&amp;quot;Special:ApiHelp&amp;quot;,&amp;quot;wgRelevantArticleId&amp;quot;:0,&amp;quot;wgUserVariant&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;wgIsProbablyEditable&amp;quot;:false,&amp;quot;wgRelevantPageIsProbablyEditable&amp;quot;:false,&amp;quot;wgVisualEditor&amp;quot;:{&amp;quot;pageLanguageCode&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;pageLanguageDir&amp;quot;:&amp;quot;ltr&amp;quot;,&amp;quot;pageVariantFallbacks&amp;quot;:[&amp;quot;zh-hans&amp;quot;,&amp;quot;zh-hant&amp;quot;,&amp;quot;zh-cn&amp;quot;,&amp;quot;zh-tw&amp;quot;,&amp;quot;zh-hk&amp;quot;,&amp;quot;zh-sg&amp;quot;,&amp;quot;zh-mo&amp;quot;,&amp;quot;zh-my&amp;quot;]},&amp;quot;wgEditSubmitButtonLabelPublish&amp;quot;:false,&amp;quot;wgVisualEditorPageIsDisambiguation&amp;quot;:false};&lt;br /&gt;
RLSTATE={&amp;quot;mediawiki.apipretty&amp;quot;:&amp;quot;ready&amp;quot;,&amp;quot;mediawiki.skinning.interface&amp;quot;:&amp;quot;ready&amp;quot;,&amp;quot;ext.visualEditor.desktopArticleTarget.noscript&amp;quot;:&amp;quot;ready&amp;quot;};&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/load.php?lang=zh&amp;amp;amp;modules=ext.visualEditor.desktopArticleTarget.noscript%7Cmediawiki.apipretty%7Cmediawiki.skinning.interface&amp;amp;amp;only=styles&amp;amp;amp;skin=apioutput&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script async=&amp;quot;&amp;quot; src=&amp;quot;/load.php?lang=zh&amp;amp;amp;modules=startup&amp;amp;amp;only=scripts&amp;amp;amp;raw=1&amp;amp;amp;safemode=1&amp;amp;amp;skin=apioutput&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;MediaWiki 1.46.2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;robots&amp;quot; content=&amp;quot;noindex,nofollow,max-image-preview:standard&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;format-detection&amp;quot; content=&amp;quot;telephone=no&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=1120&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;search&amp;quot; type=&amp;quot;application/opensearchdescription+xml&amp;quot; href=&amp;quot;/rest.php/v1/search&amp;quot; title=&amp;quot;尘月维基 (zh)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;EditURI&amp;quot; type=&amp;quot;application/rsd+xml&amp;quot; href=&amp;quot;https://chenyue.wiki/api.php?action=rsd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh&amp;quot; href=&amp;quot;https://chenyue.wiki/Special:ApiHelp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hans&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-hans&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hans-CN&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-cn&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hans-MY&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-my&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hans-SG&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-sg&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hant&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-hant&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hant-HK&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-hk&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hant-MO&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-mo&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hant-TW&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-tw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;x-default&amp;quot; href=&amp;quot;https://chenyue.wiki/Special:ApiHelp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot; title=&amp;quot;尘月维基的Atom订阅&amp;quot; href=&amp;quot;/index.php?title=Special:RecentChanges&amp;amp;amp;feed=atom&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body class=&amp;quot;mediawiki ltr sitedir-ltr mw-hide-empty-elt ns--1 ns-special mw-special-ApiHelp page-Special_ApiHelp rootpage-Special_ApiHelp skin-apioutput action-view&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;mw-aria-live-region&amp;quot; class=&amp;quot;mw-aria-live-region&amp;quot; aria-live=&amp;quot;polite&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;mw-body&amp;quot; role=&amp;quot;main&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;h1 id=&amp;quot;firstHeading&amp;quot;&amp;gt;MediaWiki API 结果&amp;lt;/h1&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;mw-body-content&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div id=&amp;quot;mw-content-text&amp;quot; class=&amp;quot;mw-body-content&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;api-pretty-header&amp;quot;&amp;gt;&amp;lt;p&amp;gt;这是JSON格式的HTML实现。HTML对调试很有用，但不适合应用程序使用。&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;指定&amp;lt;var&amp;gt;format&amp;lt;/var&amp;gt;参数以更改输出格式。要查看JSON格式的非HTML实现，设置&amp;lt;a rel=&amp;quot;nofollow&amp;quot; class=&amp;quot;external text&amp;quot; href=&amp;quot;https://chenyue.wiki/api.php?action=raw&amp;amp;amp;oldid=123&amp;amp;amp;format=json&amp;quot;&amp;gt;&amp;lt;kbd&amp;gt;format=json&amp;lt;/kbd&amp;gt;&amp;lt;/a&amp;gt;。&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;参见&amp;lt;a href=&amp;quot;https://www.mediawiki.org/wiki/API&amp;quot; class=&amp;quot;extiw&amp;quot; title=&amp;quot;mw:API&amp;quot;&amp;gt;完整文档&amp;lt;/a&amp;gt;，或&amp;lt;a href=&amp;quot;/api.php?action=help&amp;amp;amp;modules=main&amp;quot;&amp;gt;API帮助&amp;lt;/a&amp;gt;以获取更多信息。&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;pre class=&amp;quot;api-pretty-content&amp;quot;&amp;gt;{&lt;br /&gt;
    &amp;quot;error&amp;quot;: {&lt;br /&gt;
        &amp;quot;code&amp;quot;: &amp;quot;badvalue&amp;quot;,&lt;br /&gt;
        &amp;quot;info&amp;quot;: &amp;quot;Unrecognized value for parameter \&amp;quot;action\&amp;quot;: raw.&amp;quot;,&lt;br /&gt;
        &amp;quot;*&amp;quot;: &amp;quot;See https://chenyue.wiki/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at &amp;amp;amp;lt;https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/&amp;amp;amp;gt; for notice of API deprecations and breaking changes.&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;printfooter&amp;quot; data-nosnippet=&amp;quot;&amp;quot;&amp;gt;取自“&amp;lt;a dir=&amp;quot;ltr&amp;quot; href=&amp;quot;https://chenyue.wiki/Special:ApiHelp&amp;quot;&amp;gt;https://chenyue.wiki/Special:ApiHelp&amp;lt;/a&amp;gt;”&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;(RLQ=window.RLQ||[]).push(function(){mw.log.warn(&amp;quot;This page is using the deprecated ResourceLoader module \&amp;quot;mediawiki.skinning.interface\&amp;quot;.\n[1.43] The use of the `interface-message-box` feature with SkinModule is deprecated in favor of CodexModule. Please remove this feature.More information can be found at [[mw:Manual:ResourceLoaderSkinModule]]. &amp;quot;);mw.config.set({&amp;quot;wgBackendResponseTime&amp;quot;:442});});&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E4%B8%87%E4%BC%97%E7%9E%A9%E7%9B%AE&amp;diff=142</id>
		<title>万众瞩目</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E4%B8%87%E4%BC%97%E7%9E%A9%E7%9B%AE&amp;diff=142"/>
		<updated>2026-10-31T18:40:08Z</updated>

		<summary type="html">&lt;p&gt;Admin：​恢复：撤销误清空（脚本管道错误）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html class=&amp;quot;client-nojs skin-theme-clientpref-thumb-standard&amp;quot; lang=&amp;quot;zh&amp;quot; dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;MediaWiki API 结果 - 尘月维基&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;document.documentElement.className=&amp;quot;client-js skin-theme-clientpref-thumb-standard&amp;quot;;RLCONF={&amp;quot;wgBreakFrames&amp;quot;:false,&amp;quot;wgSeparatorTransformTable&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;],&amp;quot;wgDigitTransformTable&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;],&amp;quot;wgDefaultDateFormat&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;wgMonthNames&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;1月&amp;quot;,&amp;quot;2月&amp;quot;,&amp;quot;3月&amp;quot;,&amp;quot;4月&amp;quot;,&amp;quot;5月&amp;quot;,&amp;quot;6月&amp;quot;,&amp;quot;7月&amp;quot;,&amp;quot;8月&amp;quot;,&amp;quot;9月&amp;quot;,&amp;quot;10月&amp;quot;,&amp;quot;11月&amp;quot;,&amp;quot;12月&amp;quot;],&amp;quot;wgRequestId&amp;quot;:&amp;quot;cbf767321dd4cf240a94164c&amp;quot;,&amp;quot;wgCanonicalNamespace&amp;quot;:&amp;quot;Special&amp;quot;,&amp;quot;wgCanonicalSpecialPageName&amp;quot;:&amp;quot;ApiHelp&amp;quot;,&amp;quot;wgNamespaceNumber&amp;quot;:-1,&amp;quot;wgPageName&amp;quot;:&amp;quot;Special:ApiHelp&amp;quot;,&amp;quot;wgTitle&amp;quot;:&amp;quot;ApiHelp&amp;quot;,&amp;quot;wgCurRevisionId&amp;quot;:0,&amp;quot;wgRevisionId&amp;quot;:0,&amp;quot;wgArticleId&amp;quot;:0,&amp;quot;wgIsArticle&amp;quot;:false,&amp;quot;wgIsRedirect&amp;quot;:false,&amp;quot;wgAction&amp;quot;:&amp;quot;view&amp;quot;,&amp;quot;wgUserName&amp;quot;:null,&amp;quot;wgUserGroups&amp;quot;:[&amp;quot;*&amp;quot;],&amp;quot;wgCategories&amp;quot;:[],&amp;quot;wgPageViewLanguage&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;wgPageContentLanguage&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;wgPageContentModel&amp;quot;:&amp;quot;wikitext&amp;quot;,&amp;quot;wgRelevantPageName&amp;quot;:&amp;quot;Special:ApiHelp&amp;quot;,&amp;quot;wgRelevantArticleId&amp;quot;:0,&amp;quot;wgUserVariant&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;wgIsProbablyEditable&amp;quot;:false,&amp;quot;wgRelevantPageIsProbablyEditable&amp;quot;:false,&amp;quot;wgVisualEditor&amp;quot;:{&amp;quot;pageLanguageCode&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;pageLanguageDir&amp;quot;:&amp;quot;ltr&amp;quot;,&amp;quot;pageVariantFallbacks&amp;quot;:[&amp;quot;zh-hans&amp;quot;,&amp;quot;zh-hant&amp;quot;,&amp;quot;zh-cn&amp;quot;,&amp;quot;zh-tw&amp;quot;,&amp;quot;zh-hk&amp;quot;,&amp;quot;zh-sg&amp;quot;,&amp;quot;zh-mo&amp;quot;,&amp;quot;zh-my&amp;quot;]},&amp;quot;wgEditSubmitButtonLabelPublish&amp;quot;:false,&amp;quot;wgVisualEditorPageIsDisambiguation&amp;quot;:false};&lt;br /&gt;
RLSTATE={&amp;quot;mediawiki.apipretty&amp;quot;:&amp;quot;ready&amp;quot;,&amp;quot;mediawiki.skinning.interface&amp;quot;:&amp;quot;ready&amp;quot;,&amp;quot;ext.visualEditor.desktopArticleTarget.noscript&amp;quot;:&amp;quot;ready&amp;quot;};&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/load.php?lang=zh&amp;amp;amp;modules=ext.visualEditor.desktopArticleTarget.noscript%7Cmediawiki.apipretty%7Cmediawiki.skinning.interface&amp;amp;amp;only=styles&amp;amp;amp;skin=apioutput&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script async=&amp;quot;&amp;quot; src=&amp;quot;/load.php?lang=zh&amp;amp;amp;modules=startup&amp;amp;amp;only=scripts&amp;amp;amp;raw=1&amp;amp;amp;safemode=1&amp;amp;amp;skin=apioutput&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;MediaWiki 1.46.2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;robots&amp;quot; content=&amp;quot;noindex,nofollow,max-image-preview:standard&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;format-detection&amp;quot; content=&amp;quot;telephone=no&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=1120&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;search&amp;quot; type=&amp;quot;application/opensearchdescription+xml&amp;quot; href=&amp;quot;/rest.php/v1/search&amp;quot; title=&amp;quot;尘月维基 (zh)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;EditURI&amp;quot; type=&amp;quot;application/rsd+xml&amp;quot; href=&amp;quot;https://chenyue.wiki/api.php?action=rsd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh&amp;quot; href=&amp;quot;https://chenyue.wiki/Special:ApiHelp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hans&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-hans&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hans-CN&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-cn&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hans-MY&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-my&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hans-SG&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-sg&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hant&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-hant&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hant-HK&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-hk&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hant-MO&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-mo&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hant-TW&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-tw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;x-default&amp;quot; href=&amp;quot;https://chenyue.wiki/Special:ApiHelp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot; title=&amp;quot;尘月维基的Atom订阅&amp;quot; href=&amp;quot;/index.php?title=Special:RecentChanges&amp;amp;amp;feed=atom&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body class=&amp;quot;mediawiki ltr sitedir-ltr mw-hide-empty-elt ns--1 ns-special mw-special-ApiHelp page-Special_ApiHelp rootpage-Special_ApiHelp skin-apioutput action-view&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;mw-aria-live-region&amp;quot; class=&amp;quot;mw-aria-live-region&amp;quot; aria-live=&amp;quot;polite&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;mw-body&amp;quot; role=&amp;quot;main&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;h1 id=&amp;quot;firstHeading&amp;quot;&amp;gt;MediaWiki API 结果&amp;lt;/h1&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;mw-body-content&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div id=&amp;quot;mw-content-text&amp;quot; class=&amp;quot;mw-body-content&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;api-pretty-header&amp;quot;&amp;gt;&amp;lt;p&amp;gt;这是JSON格式的HTML实现。HTML对调试很有用，但不适合应用程序使用。&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;指定&amp;lt;var&amp;gt;format&amp;lt;/var&amp;gt;参数以更改输出格式。要查看JSON格式的非HTML实现，设置&amp;lt;a rel=&amp;quot;nofollow&amp;quot; class=&amp;quot;external text&amp;quot; href=&amp;quot;https://chenyue.wiki/api.php?action=raw&amp;amp;amp;oldid=128&amp;amp;amp;format=json&amp;quot;&amp;gt;&amp;lt;kbd&amp;gt;format=json&amp;lt;/kbd&amp;gt;&amp;lt;/a&amp;gt;。&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;参见&amp;lt;a href=&amp;quot;https://www.mediawiki.org/wiki/API&amp;quot; class=&amp;quot;extiw&amp;quot; title=&amp;quot;mw:API&amp;quot;&amp;gt;完整文档&amp;lt;/a&amp;gt;，或&amp;lt;a href=&amp;quot;/api.php?action=help&amp;amp;amp;modules=main&amp;quot;&amp;gt;API帮助&amp;lt;/a&amp;gt;以获取更多信息。&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;pre class=&amp;quot;api-pretty-content&amp;quot;&amp;gt;{&lt;br /&gt;
    &amp;quot;error&amp;quot;: {&lt;br /&gt;
        &amp;quot;code&amp;quot;: &amp;quot;badvalue&amp;quot;,&lt;br /&gt;
        &amp;quot;info&amp;quot;: &amp;quot;Unrecognized value for parameter \&amp;quot;action\&amp;quot;: raw.&amp;quot;,&lt;br /&gt;
        &amp;quot;*&amp;quot;: &amp;quot;See https://chenyue.wiki/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at &amp;amp;amp;lt;https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/&amp;amp;amp;gt; for notice of API deprecations and breaking changes.&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;printfooter&amp;quot; data-nosnippet=&amp;quot;&amp;quot;&amp;gt;取自“&amp;lt;a dir=&amp;quot;ltr&amp;quot; href=&amp;quot;https://chenyue.wiki/Special:ApiHelp&amp;quot;&amp;gt;https://chenyue.wiki/Special:ApiHelp&amp;lt;/a&amp;gt;”&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;(RLQ=window.RLQ||[]).push(function(){mw.log.warn(&amp;quot;This page is using the deprecated ResourceLoader module \&amp;quot;mediawiki.skinning.interface\&amp;quot;.\n[1.43] The use of the `interface-message-box` feature with SkinModule is deprecated in favor of CodexModule. Please remove this feature.More information can be found at [[mw:Manual:ResourceLoaderSkinModule]]. &amp;quot;);mw.config.set({&amp;quot;wgBackendResponseTime&amp;quot;:413});});&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%A5%87%E5%BC%82%E6%90%9E%E7%AC%91&amp;diff=141</id>
		<title>奇异搞笑</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%A5%87%E5%BC%82%E6%90%9E%E7%AC%91&amp;diff=141"/>
		<updated>2026-10-31T18:40:06Z</updated>

		<summary type="html">&lt;p&gt;Admin：​恢复：撤销误清空（脚本管道错误）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html class=&amp;quot;client-nojs skin-theme-clientpref-thumb-standard&amp;quot; lang=&amp;quot;zh&amp;quot; dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;MediaWiki API 结果 - 尘月维基&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;document.documentElement.className=&amp;quot;client-js skin-theme-clientpref-thumb-standard&amp;quot;;RLCONF={&amp;quot;wgBreakFrames&amp;quot;:false,&amp;quot;wgSeparatorTransformTable&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;],&amp;quot;wgDigitTransformTable&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;],&amp;quot;wgDefaultDateFormat&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;wgMonthNames&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;1月&amp;quot;,&amp;quot;2月&amp;quot;,&amp;quot;3月&amp;quot;,&amp;quot;4月&amp;quot;,&amp;quot;5月&amp;quot;,&amp;quot;6月&amp;quot;,&amp;quot;7月&amp;quot;,&amp;quot;8月&amp;quot;,&amp;quot;9月&amp;quot;,&amp;quot;10月&amp;quot;,&amp;quot;11月&amp;quot;,&amp;quot;12月&amp;quot;],&amp;quot;wgRequestId&amp;quot;:&amp;quot;ab862e8e8a9fc7e13e6bf2df&amp;quot;,&amp;quot;wgCanonicalNamespace&amp;quot;:&amp;quot;Special&amp;quot;,&amp;quot;wgCanonicalSpecialPageName&amp;quot;:&amp;quot;ApiHelp&amp;quot;,&amp;quot;wgNamespaceNumber&amp;quot;:-1,&amp;quot;wgPageName&amp;quot;:&amp;quot;Special:ApiHelp&amp;quot;,&amp;quot;wgTitle&amp;quot;:&amp;quot;ApiHelp&amp;quot;,&amp;quot;wgCurRevisionId&amp;quot;:0,&amp;quot;wgRevisionId&amp;quot;:0,&amp;quot;wgArticleId&amp;quot;:0,&amp;quot;wgIsArticle&amp;quot;:false,&amp;quot;wgIsRedirect&amp;quot;:false,&amp;quot;wgAction&amp;quot;:&amp;quot;view&amp;quot;,&amp;quot;wgUserName&amp;quot;:null,&amp;quot;wgUserGroups&amp;quot;:[&amp;quot;*&amp;quot;],&amp;quot;wgCategories&amp;quot;:[],&amp;quot;wgPageViewLanguage&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;wgPageContentLanguage&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;wgPageContentModel&amp;quot;:&amp;quot;wikitext&amp;quot;,&amp;quot;wgRelevantPageName&amp;quot;:&amp;quot;Special:ApiHelp&amp;quot;,&amp;quot;wgRelevantArticleId&amp;quot;:0,&amp;quot;wgUserVariant&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;wgIsProbablyEditable&amp;quot;:false,&amp;quot;wgRelevantPageIsProbablyEditable&amp;quot;:false,&amp;quot;wgVisualEditor&amp;quot;:{&amp;quot;pageLanguageCode&amp;quot;:&amp;quot;zh&amp;quot;,&amp;quot;pageLanguageDir&amp;quot;:&amp;quot;ltr&amp;quot;,&amp;quot;pageVariantFallbacks&amp;quot;:[&amp;quot;zh-hans&amp;quot;,&amp;quot;zh-hant&amp;quot;,&amp;quot;zh-cn&amp;quot;,&amp;quot;zh-tw&amp;quot;,&amp;quot;zh-hk&amp;quot;,&amp;quot;zh-sg&amp;quot;,&amp;quot;zh-mo&amp;quot;,&amp;quot;zh-my&amp;quot;]},&amp;quot;wgEditSubmitButtonLabelPublish&amp;quot;:false,&amp;quot;wgVisualEditorPageIsDisambiguation&amp;quot;:false};&lt;br /&gt;
RLSTATE={&amp;quot;mediawiki.apipretty&amp;quot;:&amp;quot;ready&amp;quot;,&amp;quot;mediawiki.skinning.interface&amp;quot;:&amp;quot;ready&amp;quot;,&amp;quot;ext.visualEditor.desktopArticleTarget.noscript&amp;quot;:&amp;quot;ready&amp;quot;};&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/load.php?lang=zh&amp;amp;amp;modules=ext.visualEditor.desktopArticleTarget.noscript%7Cmediawiki.apipretty%7Cmediawiki.skinning.interface&amp;amp;amp;only=styles&amp;amp;amp;skin=apioutput&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script async=&amp;quot;&amp;quot; src=&amp;quot;/load.php?lang=zh&amp;amp;amp;modules=startup&amp;amp;amp;only=scripts&amp;amp;amp;raw=1&amp;amp;amp;safemode=1&amp;amp;amp;skin=apioutput&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;MediaWiki 1.46.2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;robots&amp;quot; content=&amp;quot;noindex,nofollow,max-image-preview:standard&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;format-detection&amp;quot; content=&amp;quot;telephone=no&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=1120&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;search&amp;quot; type=&amp;quot;application/opensearchdescription+xml&amp;quot; href=&amp;quot;/rest.php/v1/search&amp;quot; title=&amp;quot;尘月维基 (zh)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;EditURI&amp;quot; type=&amp;quot;application/rsd+xml&amp;quot; href=&amp;quot;https://chenyue.wiki/api.php?action=rsd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh&amp;quot; href=&amp;quot;https://chenyue.wiki/Special:ApiHelp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hans&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-hans&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hans-CN&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-cn&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hans-MY&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-my&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hans-SG&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-sg&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hant&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-hant&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hant-HK&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-hk&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hant-MO&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-mo&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;zh-Hant-TW&amp;quot; href=&amp;quot;https://chenyue.wiki/index.php?title=Special:ApiHelp&amp;amp;amp;variant=zh-tw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang=&amp;quot;x-default&amp;quot; href=&amp;quot;https://chenyue.wiki/Special:ApiHelp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot; title=&amp;quot;尘月维基的Atom订阅&amp;quot; href=&amp;quot;/index.php?title=Special:RecentChanges&amp;amp;amp;feed=atom&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body class=&amp;quot;mediawiki ltr sitedir-ltr mw-hide-empty-elt ns--1 ns-special mw-special-ApiHelp page-Special_ApiHelp rootpage-Special_ApiHelp skin-apioutput action-view&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;mw-aria-live-region&amp;quot; class=&amp;quot;mw-aria-live-region&amp;quot; aria-live=&amp;quot;polite&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;mw-body&amp;quot; role=&amp;quot;main&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;h1 id=&amp;quot;firstHeading&amp;quot;&amp;gt;MediaWiki API 结果&amp;lt;/h1&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;mw-body-content&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div id=&amp;quot;mw-content-text&amp;quot; class=&amp;quot;mw-body-content&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;api-pretty-header&amp;quot;&amp;gt;&amp;lt;p&amp;gt;这是JSON格式的HTML实现。HTML对调试很有用，但不适合应用程序使用。&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;指定&amp;lt;var&amp;gt;format&amp;lt;/var&amp;gt;参数以更改输出格式。要查看JSON格式的非HTML实现，设置&amp;lt;a rel=&amp;quot;nofollow&amp;quot; class=&amp;quot;external text&amp;quot; href=&amp;quot;https://chenyue.wiki/api.php?action=raw&amp;amp;amp;oldid=126&amp;amp;amp;format=json&amp;quot;&amp;gt;&amp;lt;kbd&amp;gt;format=json&amp;lt;/kbd&amp;gt;&amp;lt;/a&amp;gt;。&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;参见&amp;lt;a href=&amp;quot;https://www.mediawiki.org/wiki/API&amp;quot; class=&amp;quot;extiw&amp;quot; title=&amp;quot;mw:API&amp;quot;&amp;gt;完整文档&amp;lt;/a&amp;gt;，或&amp;lt;a href=&amp;quot;/api.php?action=help&amp;amp;amp;modules=main&amp;quot;&amp;gt;API帮助&amp;lt;/a&amp;gt;以获取更多信息。&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;pre class=&amp;quot;api-pretty-content&amp;quot;&amp;gt;{&lt;br /&gt;
    &amp;quot;error&amp;quot;: {&lt;br /&gt;
        &amp;quot;code&amp;quot;: &amp;quot;badvalue&amp;quot;,&lt;br /&gt;
        &amp;quot;info&amp;quot;: &amp;quot;Unrecognized value for parameter \&amp;quot;action\&amp;quot;: raw.&amp;quot;,&lt;br /&gt;
        &amp;quot;*&amp;quot;: &amp;quot;See https://chenyue.wiki/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at &amp;amp;amp;lt;https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/&amp;amp;amp;gt; for notice of API deprecations and breaking changes.&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;printfooter&amp;quot; data-nosnippet=&amp;quot;&amp;quot;&amp;gt;取自“&amp;lt;a dir=&amp;quot;ltr&amp;quot; href=&amp;quot;https://chenyue.wiki/Special:ApiHelp&amp;quot;&amp;gt;https://chenyue.wiki/Special:ApiHelp&amp;lt;/a&amp;gt;”&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;(RLQ=window.RLQ||[]).push(function(){mw.log.warn(&amp;quot;This page is using the deprecated ResourceLoader module \&amp;quot;mediawiki.skinning.interface\&amp;quot;.\n[1.43] The use of the `interface-message-box` feature with SkinModule is deprecated in favor of CodexModule. Please remove this feature.More information can be found at [[mw:Manual:ResourceLoaderSkinModule]]. &amp;quot;);mw.config.set({&amp;quot;wgBackendResponseTime&amp;quot;:488});});&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E6%B2%99%E7%9B%92&amp;diff=140</id>
		<title>沙盒</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E6%B2%99%E7%9B%92&amp;diff=140"/>
		<updated>2026-10-31T18:39:42Z</updated>

		<summary type="html">&lt;p&gt;Admin：​颜色/字号改为 span 内联样式，可视化编辑器里可继续编辑/加链接&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E4%B8%87%E4%BC%97%E7%9E%A9%E7%9B%AE&amp;diff=139</id>
		<title>万众瞩目</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E4%B8%87%E4%BC%97%E7%9E%A9%E7%9B%AE&amp;diff=139"/>
		<updated>2026-10-31T18:39:40Z</updated>

		<summary type="html">&lt;p&gt;Admin：​颜色/字号改为 span 内联样式，可视化编辑器里可继续编辑/加链接&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%A5%87%E5%BC%82%E6%90%9E%E7%AC%91&amp;diff=138</id>
		<title>奇异搞笑</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%A5%87%E5%BC%82%E6%90%9E%E7%AC%91&amp;diff=138"/>
		<updated>2026-10-31T18:39:38Z</updated>

		<summary type="html">&lt;p&gt;Admin：​颜色/字号改为 span 内联样式，可视化编辑器里可继续编辑/加链接&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=137</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=137"/>
		<updated>2026-10-31T18:39:20Z</updated>

		<summary type="html">&lt;p&gt;Admin：​颜色/字号改用 span 内联样式（修：模板导致可视化编辑器无法加链接）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/*&lt;br /&gt;
 * 尘月维基 · 排版工具条&lt;br /&gt;
 * 在源代码编辑器（WikiEditor）上增加：颜色 / 字号 / 对齐 / 插图 / 调图&lt;br /&gt;
 * 依赖：ext.wikiEditor、oojs-ui-widgets、oojs-ui-windows&lt;br /&gt;
 */&lt;br /&gt;
( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var COLORS = [&lt;br /&gt;
		{ label: &#039;红&#039;, value: &#039;#d32f2f&#039; },&lt;br /&gt;
		{ label: &#039;橙&#039;, value: &#039;#ef6c00&#039; },&lt;br /&gt;
		{ label: &#039;黄&#039;, value: &#039;#f9a825&#039; },&lt;br /&gt;
		{ label: &#039;绿&#039;, value: &#039;#2e7d32&#039; },&lt;br /&gt;
		{ label: &#039;青&#039;, value: &#039;#00838f&#039; },&lt;br /&gt;
		{ label: &#039;蓝&#039;, value: &#039;#1565c0&#039; },&lt;br /&gt;
		{ label: &#039;紫&#039;, value: &#039;#6b3fa0&#039; },&lt;br /&gt;
		{ label: &#039;粉&#039;, value: &#039;#d81b60&#039; },&lt;br /&gt;
		{ label: &#039;灰&#039;, value: &#039;#666666&#039; },&lt;br /&gt;
		{ label: &#039;黑&#039;, value: &#039;#000000&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var SIZES = [ &#039;80%&#039;, &#039;100%&#039;, &#039;120%&#039;, &#039;150%&#039;, &#039;200%&#039;, &#039;250%&#039; ];&lt;br /&gt;
	var WIDTHS = [ &#039;&#039;, &#039;100&#039;, &#039;150&#039;, &#039;200&#039;, &#039;250&#039;, &#039;300&#039;, &#039;400&#039;, &#039;500&#039;, &#039;600&#039; ];&lt;br /&gt;
	var ALIGN_OPTIONS = [&lt;br /&gt;
		{ label: &#039;默认&#039;, value: &#039;&#039; },&lt;br /&gt;
		{ label: &#039;居中&#039;, value: &#039;center&#039; },&lt;br /&gt;
		{ label: &#039;靠左&#039;, value: &#039;left&#039; },&lt;br /&gt;
		{ label: &#039;靠右&#039;, value: &#039;right&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var ALIGN_MAP = { &#039;居中&#039;: &#039;center&#039;, &#039;居左&#039;: &#039;left&#039;, &#039;居右&#039;: &#039;right&#039;, &#039;无&#039;: &#039;&#039; };&lt;br /&gt;
&lt;br /&gt;
	var FILE_RE = /^\s*\[\[\s*(?:File|Image|文件|图像)\s*:\s*([^|\]]+)((?:\|[^[\]]*)*)\s*\]\]\s*$/i;&lt;br /&gt;
	var ALIGN_RE = /^(?:center|left|right|none|居中|居左|居右|无)$/i;&lt;br /&gt;
&lt;br /&gt;
	var DialogClass = null;&lt;br /&gt;
	var windowManager = null;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 生成&amp;quot;包裹选中文字&amp;quot;的动作，套用站内模板&lt;br /&gt;
	 *&lt;br /&gt;
	 * 只用于「对齐」这类块级排版；颜色和字号改用内联样式（见 spanAction）。&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} template 模板名&lt;br /&gt;
	 * @param {string} arg 第一个参数&lt;br /&gt;
	 * @return {Object} WikiEditor action&lt;br /&gt;
	 */&lt;br /&gt;
	function wrapAction( template, arg ) {&lt;br /&gt;
		return {&lt;br /&gt;
			type: &#039;encapsulate&#039;,&lt;br /&gt;
			options: {&lt;br /&gt;
				pre: &#039;{{&#039; + template + &#039;|1=&#039; + arg + &#039;|2=&#039;,&lt;br /&gt;
				peri: &#039;&#039;,&lt;br /&gt;
				post: &#039;}}&#039;&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 颜色 / 字号用内联样式包裹，而不是模板&lt;br /&gt;
	 *&lt;br /&gt;
	 * 模板在可视化编辑器里是不可分割的块，里面的文字没法再选中加链接；&lt;br /&gt;
	 * span + style 则仍然是普通文字，两个编辑器都能继续编辑。&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} prop CSS 属性（color / font-size）&lt;br /&gt;
	 * @param {string} value 值&lt;br /&gt;
	 * @return {Object} WikiEditor action&lt;br /&gt;
	 */&lt;br /&gt;
	function spanAction( prop, value ) {&lt;br /&gt;
		return {&lt;br /&gt;
			type: &#039;encapsulate&#039;,&lt;br /&gt;
			options: {&lt;br /&gt;
				pre: &#039;&amp;lt;span style=&amp;quot;&#039; + prop + &#039;:&#039; + value + &#039;&amp;quot;&amp;gt;&#039;,&lt;br /&gt;
				peri: &#039;&#039;,&lt;br /&gt;
				post: &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把 [{label, value}] 转成 WikiEditor select 需要的 list&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object[]} items&lt;br /&gt;
	 * @param {Function} actionFactory 由 value 生成 action&lt;br /&gt;
	 * @return {Object}&lt;br /&gt;
	 */&lt;br /&gt;
	function makeList( items, actionFactory ) {&lt;br /&gt;
		var list = {};&lt;br /&gt;
		items.forEach( function ( item, index ) {&lt;br /&gt;
			list[ &#039;opt&#039; + index ] = {&lt;br /&gt;
				label: item.label,&lt;br /&gt;
				action: actionFactory( item.value )&lt;br /&gt;
			};&lt;br /&gt;
		} );&lt;br /&gt;
		return list;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 从 [[File:...]] 代码里解析文件名、宽度、位置、说明&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 * @return {Object|null}&lt;br /&gt;
	 */&lt;br /&gt;
	function parseFileLink( text ) {&lt;br /&gt;
		var match = FILE_RE.exec( text || &#039;&#039; );&lt;br /&gt;
		if ( !match ) {&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
		var parsed = { name: match[ 1 ].trim(), width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; };&lt;br /&gt;
		var params = match[ 2 ] ? match[ 2 ].split( &#039;|&#039; ).slice( 1 ) : [];&lt;br /&gt;
		params.forEach( function ( raw ) {&lt;br /&gt;
			var param = raw.trim();&lt;br /&gt;
			if ( !param ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			if ( /^\d+\s*px$/i.test( param ) ) {&lt;br /&gt;
				parsed.width = String( parseInt( param, 10 ) );&lt;br /&gt;
			} else if ( ALIGN_RE.test( param ) ) {&lt;br /&gt;
				parsed.align = Object.prototype.hasOwnProperty.call( ALIGN_MAP, param ) ?&lt;br /&gt;
					ALIGN_MAP[ param ] : param.toLowerCase();&lt;br /&gt;
			} else if ( !parsed.caption ) {&lt;br /&gt;
				parsed.caption = param;&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		return parsed;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 拼出 [[File:名字|宽度px|位置|说明]]&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} data&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function buildFileLink( data ) {&lt;br /&gt;
		var parts = [ &#039;[[File:&#039; + data.name ];&lt;br /&gt;
		if ( data.width ) {&lt;br /&gt;
			parts.push( data.width + &#039;px&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.align ) {&lt;br /&gt;
			parts.push( data.align );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.caption ) {&lt;br /&gt;
			parts.push( data.caption );&lt;br /&gt;
		}&lt;br /&gt;
		return parts.join( &#039;|&#039; ) + &#039;]]&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 上传页地址&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function uploadUrl() {&lt;br /&gt;
		if ( mw.util &amp;amp;&amp;amp; typeof mw.util.getUrl === &#039;function&#039; ) {&lt;br /&gt;
			return mw.util.getUrl( &#039;Special:Upload&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		return &#039;/Special:Upload&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 提示条&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 */&lt;br /&gt;
	function notify( text ) {&lt;br /&gt;
		mw.loader.using( &#039;mediawiki.notification&#039; ).then( function () {&lt;br /&gt;
			mw.notify( text, { type: &#039;warn&#039;, autoHideSeconds: 5 } );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 图片对话框（插入 / 调整共用一个）&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {Function} 对话框类&lt;br /&gt;
	 */&lt;br /&gt;
	function getDialogClass() {&lt;br /&gt;
		if ( DialogClass ) {&lt;br /&gt;
			return DialogClass;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} config&lt;br /&gt;
		 */&lt;br /&gt;
		function ImageDialog( config ) {&lt;br /&gt;
			ImageDialog.super.call( this, config );&lt;br /&gt;
		}&lt;br /&gt;
		OO.inheritClass( ImageDialog, OO.ui.ProcessDialog );&lt;br /&gt;
		ImageDialog.static.name = &#039;chenyue-image&#039;;&lt;br /&gt;
		ImageDialog.static.size = &#039;medium&#039;;&lt;br /&gt;
		ImageDialog.static.title = &#039;图片&#039;;&lt;br /&gt;
		ImageDialog.static.actions = [&lt;br /&gt;
			{ action: &#039;apply&#039;, label: &#039;确定&#039;, flags: [ &#039;primary&#039;, &#039;progressive&#039; ] },&lt;br /&gt;
			{ action: &#039;cancel&#039;, label: &#039;取消&#039;, flags: &#039;safe&#039; }&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} context&lt;br /&gt;
		 * @param {Object} data&lt;br /&gt;
		 * @param {boolean} isNew&lt;br /&gt;
		 * @return {ImageDialog}&lt;br /&gt;
		 */&lt;br /&gt;
		ImageDialog.prototype.setData = function ( context, data, isNew ) {&lt;br /&gt;
			this.context = context;&lt;br /&gt;
			this.data = data;&lt;br /&gt;
			this.isNew = isNew;&lt;br /&gt;
			return this;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.initialize = function () {&lt;br /&gt;
			ImageDialog.super.prototype.initialize.apply( this, arguments );&lt;br /&gt;
&lt;br /&gt;
			var data = this.data;&lt;br /&gt;
			this.title.setLabel( this.isNew ? &#039;插入图片&#039; : &#039;调整图片&#039; );&lt;br /&gt;
&lt;br /&gt;
			this.nameInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.name,&lt;br /&gt;
				placeholder: &#039;图片文件名，例如 熊猫.png&#039;,&lt;br /&gt;
				icon: &#039;image&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.widthInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: WIDTHS.map( function ( width ) {&lt;br /&gt;
					return { data: width, label: width ? width + &#039; 像素宽&#039; : &#039;按原始大小&#039; };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.width || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.alignInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: ALIGN_OPTIONS.map( function ( option ) {&lt;br /&gt;
					return { data: option.value, label: option.label };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.align || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.captionInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.caption,&lt;br /&gt;
				placeholder: &#039;图片说明，可留空&#039;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			var fieldset = new OO.ui.FieldsetLayout();&lt;br /&gt;
			fieldset.addItems( [&lt;br /&gt;
				new OO.ui.FieldLayout( this.nameInput, { label: &#039;文件名&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.widthInput, { label: &#039;大小&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.alignInput, { label: &#039;位置&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.captionInput, { label: &#039;说明&#039;, align: &#039;top&#039; } )&lt;br /&gt;
			] );&lt;br /&gt;
&lt;br /&gt;
			var hint = new OO.ui.HtmlSnippet(&lt;br /&gt;
				&#039;&amp;lt;p class=&amp;quot;chenyue-img-hint&amp;quot;&amp;gt;还没上传？&#039; +&lt;br /&gt;
				&#039;&amp;lt;a href=&amp;quot;&#039; + uploadUrl() + &#039;&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener&amp;quot;&amp;gt;去上传图片 →&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&#039;&lt;br /&gt;
			);&lt;br /&gt;
&lt;br /&gt;
			var panel = new OO.ui.PanelLayout( { padded: true, expanded: false } );&lt;br /&gt;
			panel.$element.append( fieldset.$element, hint.$element );&lt;br /&gt;
			this.$body.append( panel.$element );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getBodyHeight = function () {&lt;br /&gt;
			return 380;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getActionProcess = function ( action ) {&lt;br /&gt;
			var dialog = this;&lt;br /&gt;
&lt;br /&gt;
			if ( action !== &#039;apply&#039; ) {&lt;br /&gt;
				return new OO.ui.Process( function () {&lt;br /&gt;
					dialog.close( { action: action || &#039;cancel&#039; } );&lt;br /&gt;
				} );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return new OO.ui.Process( function () {&lt;br /&gt;
				var name = dialog.nameInput.getValue().trim()&lt;br /&gt;
					.replace( /^(?:File|Image|文件|图像)\s*:\s*/i, &#039;&#039; );&lt;br /&gt;
				if ( !name ) {&lt;br /&gt;
					dialog.nameInput.setValidityFlag( false );&lt;br /&gt;
					dialog.nameInput.focus();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				var text = buildFileLink( {&lt;br /&gt;
					name: name,&lt;br /&gt;
					width: dialog.widthInput.getValue(),&lt;br /&gt;
					align: dialog.alignInput.getValue(),&lt;br /&gt;
					caption: dialog.captionInput.getValue().trim()&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				// textSelection 没有 insertText 方法，统一用 encapsulateSelection：&lt;br /&gt;
				// 有选区就替换，没选区就插在光标处&lt;br /&gt;
				dialog.context.$textarea.textSelection( &#039;encapsulateSelection&#039;, {&lt;br /&gt;
					pre: text,&lt;br /&gt;
					peri: &#039;&#039;,&lt;br /&gt;
					post: &#039;&#039;,&lt;br /&gt;
					replace: true,&lt;br /&gt;
					splitlines: false,&lt;br /&gt;
					ownline: false&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				dialog.close( { action: &#039;apply&#039; } );&lt;br /&gt;
			} );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		DialogClass = ImageDialog;&lt;br /&gt;
		return DialogClass;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 打开图片对话框&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context WikiEditor context&lt;br /&gt;
	 * @param {Object|null} parsed 已有图片信息（调整时传入）&lt;br /&gt;
	 */&lt;br /&gt;
	function openImageDialog( context, parsed ) {&lt;br /&gt;
		var isNew = !parsed;&lt;br /&gt;
		mw.loader.using( [ &#039;oojs-ui-core&#039;, &#039;oojs-ui-widgets&#039;, &#039;oojs-ui-windows&#039; ] ).then( function () {&lt;br /&gt;
			if ( !windowManager ) {&lt;br /&gt;
				windowManager = new OO.ui.WindowManager();&lt;br /&gt;
				$( document.body ).append( windowManager.$element );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var ImageDialog = getDialogClass();&lt;br /&gt;
			var dialog = new ImageDialog();&lt;br /&gt;
			dialog.setData( context, parsed || { name: &#039;&#039;, width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; }, isNew );&lt;br /&gt;
&lt;br /&gt;
			windowManager.addWindows( [ dialog ] );&lt;br /&gt;
&lt;br /&gt;
			// openWindow 返回的 promise 在窗口关闭时才 resolve，用它来销毁实例&lt;br /&gt;
			var opened = windowManager.openWindow( dialog, {} );&lt;br /&gt;
			if ( opened &amp;amp;&amp;amp; typeof opened.then === &#039;function&#039; ) {&lt;br /&gt;
				opened.then( cleanup, cleanup );&lt;br /&gt;
			} else if ( dialog.closed &amp;amp;&amp;amp; typeof dialog.closed.then === &#039;function&#039; ) {&lt;br /&gt;
				dialog.closed.then( cleanup, cleanup );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * 关闭后从 DOM 中移除，避免旧窗口残留&lt;br /&gt;
			 */&lt;br /&gt;
			function cleanup() {&lt;br /&gt;
				windowManager.removeWindows( [ dialog ] );&lt;br /&gt;
				if ( dialog.$element &amp;amp;&amp;amp; dialog.$element.parent() ) {&lt;br /&gt;
					dialog.$element.remove();&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 调整选中图片的大小 / 位置&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context&lt;br /&gt;
	 */&lt;br /&gt;
	function adjustImage( context ) {&lt;br /&gt;
		var selection = context.$textarea.textSelection( &#039;getSelection&#039; );&lt;br /&gt;
		var parsed = parseFileLink( selection );&lt;br /&gt;
&lt;br /&gt;
		if ( !parsed ) {&lt;br /&gt;
			notify( &#039;先选中整段图片代码再点「调图」，例如 [[File:熊猫.png|300px|center]]&#039; );&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		openImageDialog( context, parsed );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把排版工具条插进 WikiEditor&lt;br /&gt;
	 */&lt;br /&gt;
	function addLayoutTools() {&lt;br /&gt;
		if ( $( &#039;#wikiEditor-ui-toolbar .group-layout&#039; ).length ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		$( &#039;#wpTextbox1&#039; ).wikiEditor( &#039;addToToolbar&#039;, {&lt;br /&gt;
			section: &#039;main&#039;,&lt;br /&gt;
			groups: {&lt;br /&gt;
				layout: {&lt;br /&gt;
					tools: {&lt;br /&gt;
						layoutColor: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;颜色&#039;,&lt;br /&gt;
							list: makeList( COLORS, function ( value ) {&lt;br /&gt;
								return spanAction( &#039;color&#039;, value );&lt;br /&gt;
							} )&lt;br /&gt;
						},&lt;br /&gt;
						layoutSize: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;字号&#039;,&lt;br /&gt;
							list: makeList( SIZES.map( function ( size ) {&lt;br /&gt;
								return { label: size, value: size };&lt;br /&gt;
							} ), function ( value ) {&lt;br /&gt;
								return spanAction( &#039;font-size&#039;, value );&lt;br /&gt;
							} )&lt;br /&gt;
						},&lt;br /&gt;
						layoutAlign: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;对齐&#039;,&lt;br /&gt;
							list: makeList( ALIGN_OPTIONS.filter( function ( option ) {&lt;br /&gt;
								return option.value !== &#039;&#039;;&lt;br /&gt;
							} ), function ( value ) {&lt;br /&gt;
								return wrapAction( &#039;对齐&#039;, value );&lt;br /&gt;
							} )&lt;br /&gt;
						},&lt;br /&gt;
						layoutImage: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;插图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									openImageDialog( context, null );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						},&lt;br /&gt;
						layoutAdjust: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;调图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									adjustImage( context );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 等 WikiEditor 渲染出工具条后再挂工具组&lt;br /&gt;
	 */&lt;br /&gt;
	function bootstrap() {&lt;br /&gt;
		if ( !document.getElementById( &#039;wpTextbox1&#039; ) ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		mw.loader.using( &#039;ext.wikiEditor&#039; ).then( function () {&lt;br /&gt;
			var tries = 0;&lt;br /&gt;
&lt;br /&gt;
			function waitForToolbar() {&lt;br /&gt;
				if ( document.getElementById( &#039;wikiEditor-ui-toolbar&#039; ) ) {&lt;br /&gt;
					addLayoutTools();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				tries += 1;&lt;br /&gt;
				if ( tries &amp;lt;= 30 ) {&lt;br /&gt;
					window.setTimeout( waitForToolbar, 100 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			waitForToolbar();&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$( bootstrap );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=136</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=136"/>
		<updated>2026-10-31T18:25:21Z</updated>

		<summary type="html">&lt;p&gt;Admin：​清空全部内容&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=135</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=135"/>
		<updated>2026-10-31T18:23:44Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{字号|1=200%|2=Welcome to CHENYEwiki}}&lt;br /&gt;
&lt;br /&gt;
{{字号|1=200%|2=伪恶俗狗们看到本站的内容是否虎躯一震？鉴赏你们的装逼行为，请！}}&lt;br /&gt;
&lt;br /&gt;
{{字号|1=200%|2=chenyue.wiki是尘月维基的官方域名 同时 为防止各位雅士找不到本站无法鉴赏伪恶俗蛆 ，请记住！尘 月 wiki}} &lt;br /&gt;
&lt;br /&gt;
{{字号|1=250%|2={{颜色|1=#d32f2f|2=本站没有任何QQ群组或官方人员，想冒充的伪恶俗小鬼们！洗洗睡吧！！！！！}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=134</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=134"/>
		<updated>2026-10-31T18:20:35Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{字号|1=200%|2={{颜色|1=#d32f2f|2=Welcome to CHENYEwiki&lt;br /&gt;
&lt;br /&gt;
{{颜色|1=#d32f2f|2={{字号|1=200%|2=}}}}伪恶俗狗们看到本站的内容是否虎躯一震？鉴赏你们的装逼行为，请！&lt;br /&gt;
&lt;br /&gt;
{{颜色|1=#d32f2f|2={{字号|1=200%|2=}}}}chenyue.wiki是尘月维基的官方域名 同时 为防止各位雅士找不到本站无法鉴赏伪恶俗蛆 ，请记住！尘 月 wiki &lt;br /&gt;
&lt;br /&gt;
{{颜色|1=#d32f2f|2={{字号|1=250%|2=}}}}本站没有任何QQ群组或官方人员，想冒充的伪恶俗小鬼们！洗洗睡吧！！！！！&lt;br /&gt;
}}}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=133</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=133"/>
		<updated>2026-10-31T18:20:03Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{字号|1=200%|2={{颜色|1=#d32f2f|2=Welcome to CHENYEwiki&lt;br /&gt;
&lt;br /&gt;
伪恶俗狗们看到本站的内容是否虎躯一震？鉴赏你们的装逼行为，请！&lt;br /&gt;
&lt;br /&gt;
chenyue.wiki是尘月维基的官方域名 同时 为防止各位雅士找不到本站无法鉴赏伪恶俗蛆 ，请记住！尘 月 wiki &lt;br /&gt;
&lt;br /&gt;
本站没有任何QQ群组或官方人员，想冒充的伪恶俗小鬼们！洗洗睡吧！！！！！&lt;br /&gt;
}}}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=132</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=132"/>
		<updated>2026-10-31T18:18:38Z</updated>

		<summary type="html">&lt;p&gt;Admin：​清空全部内容&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=131</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=131"/>
		<updated>2026-10-31T18:17:44Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{字号|1=250%|2=Welcome to &#039;&#039;&#039;CHENYUE&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;[[伪恶俗狗]]们看到本站的内容是否虎躯一震？鉴赏你们的装逼行为，请！&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
 chenyue.wiki是尘月维基的官方域名 同时 为防止各位雅士找不到本站无法鉴赏伪恶俗蛆 ，请记住！尘 月 wiki &lt;br /&gt;
本站没有任何QQ群组或官方人员，想冒充的[[伪恶俗狗|伪恶俗小鬼]]们！洗洗睡吧！！！！！&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=130</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=130"/>
		<updated>2026-10-31T18:16:41Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{字号|1=250%|2={{字号|1=200%|2== Welcome to &#039;&#039;&#039;CHENYUE&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;[[伪恶俗狗]]们看到本站的内容是否虎躯一震？鉴赏你们的装逼行为，请！&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
====== chenyue.wiki是尘月维基的官方域名 同时 为防止各位雅士找不到本站无法鉴赏伪恶俗蛆 ，请记住！尘 月 wiki ======&lt;br /&gt;
本站没有任何QQ群组或官方人员，想冒充的[[伪恶俗狗|伪恶俗小鬼]]们！洗洗睡吧！！！！！&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=129</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=129"/>
		<updated>2026-10-31T18:16:12Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{字号|1=200%|2== Welcome to &#039;&#039;&#039;CHENYUE&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;[[伪恶俗狗]]们看到本站的内容是否虎躯一震？鉴赏你们的装逼行为，请！&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
====== chenyue.wiki是尘月维基的官方域名 同时 为防止各位雅士找不到本站无法鉴赏伪恶俗蛆 ，请记住！尘 月 wiki ======&lt;br /&gt;
本站没有任何QQ群组或官方人员，想冒充的[[伪恶俗狗|伪恶俗小鬼]]们！洗洗睡吧！！！！！&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E4%B8%87%E4%BC%97%E7%9E%A9%E7%9B%AE&amp;diff=128</id>
		<title>万众瞩目</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E4%B8%87%E4%BC%97%E7%9E%A9%E7%9B%AE&amp;diff=128"/>
		<updated>2026-10-31T18:13:50Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{字号|1=120%|2=[[File:Bhy.png|thumb]]}}&lt;br /&gt;
&#039;&#039;&#039;白鸿燚&#039;&#039;&#039;（2005年9月16日-2026年8月4日），黑龙江省哈尔滨市宾县人。2022-2023P社拜年祭主催。无任何挡刀皮套，各圈统一圈名&#039;&#039;&#039;白四火/白火火火火&#039;&#039;&#039;，纵横P社、东方、蔚蓝档案、邦多利等多个互联网圈子以及江浙沪一带多个展会社团，留下累累恶名。&lt;br /&gt;
&lt;br /&gt;
2023年，白鸿燚以文科492分的美丽成绩考入宁波诺丁汉大学，后来因英语水平泰国第几，数次警告未悔改后被清退，清退前同样在校内祸害良多。 2026年8月4日，白鸿燚犯下强奸罪行，在江苏省昆山市被人民警察正义逮捕。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=File:Bhy.png&amp;diff=127</id>
		<title>File:Bhy.png</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=File:Bhy.png&amp;diff=127"/>
		<updated>2026-10-31T18:13:28Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;白鸿燚（2005年9月16日-2026年8月4日），黑龙江省哈尔滨市宾县人。2022-2023P社拜年祭主催。无任何挡刀皮套，各圈统一圈名白四火/白火火火火，纵横P社、东方、蔚蓝档案、邦多利等多个互联网圈子以及江浙沪一带多个展会社团，留下累累恶名。&lt;br /&gt;
&lt;br /&gt;
2023年，白鸿燚以文科492分的美丽成绩考入宁波诺丁汉大学，后来因英语水平泰国第几，数次警告未悔改后被清退，清退前同样在校内祸害良多。 2026年8月4日，白鸿燚犯下强奸罪行，在江苏省昆山市被人民警察正义逮捕。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%A5%87%E5%BC%82%E6%90%9E%E7%AC%91&amp;diff=126</id>
		<title>奇异搞笑</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%A5%87%E5%BC%82%E6%90%9E%E7%AC%91&amp;diff=126"/>
		<updated>2026-10-31T18:12:04Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Ckr.png|thumb]]&lt;br /&gt;
&#039;&#039;&#039;陈科润&#039;&#039;&#039;（2003年9月6日—），黑龙江齐齐哈尔人。常用ID：&#039;&#039;&#039;子夜星河&#039;&#039;&#039;、&#039;&#039;&#039;森繁绿子（反吕繁森等恶俗壬）&#039;&#039;&#039;等，贴吧ID：&#039;&#039;&#039;柏安great&#039;&#039;&#039;。其是&#039;&#039;&#039;中文推特键政圈&#039;&#039;&#039;活跃的&#039;&#039;&#039;键政蛤蟆&#039;&#039;&#039;之一，&#039;&#039;&#039;新浪维基&#039;&#039;&#039;的&#039;&#039;&#039;编者&#039;&#039;&#039;和&#039;&#039;&#039;管理员&#039;&#039;&#039;，也是&#039;&#039;&#039;虚拟国&#039;&#039;&#039;和&#039;&#039;&#039;放送圈&#039;&#039;&#039;出身的&#039;&#039;&#039;恶俗低能，迫真反恶俗魔怔人，反LGBTQIA+分子&#039;&#039;&#039;。&lt;br /&gt;
&lt;br /&gt;
陈科润喜欢在知乎、百度贴吧、QQ等平台迫害一般通过人士，在出道对方后，陈科润会性骚扰对方并发送自己的自拍和&#039;&#039;&#039;{{颜色|1=#d32f2f|2=牛子照片}}&#039;&#039;&#039;。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=File:Ckr.png&amp;diff=125</id>
		<title>File:Ckr.png</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=File:Ckr.png&amp;diff=125"/>
		<updated>2026-10-31T18:11:03Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;陈科润（2003年9月6日—），黑龙江齐齐哈尔人。常用ID：子夜星河、森繁绿子（反吕繁森等恶俗壬）等，贴吧ID：柏安great。其是中文推特键政圈活跃的键政蛤蟆之一，新浪维基的编者和管理员，也是虚拟国和放送圈出身的恶俗低能，迫真反恶俗魔怔人，反LGBTQIA+分子。&lt;br /&gt;
&lt;br /&gt;
陈科润喜欢在知乎、百度贴吧、QQ等平台迫害一般通过人士，在出道对方后，陈科润会性骚扰对方并发送自己的自拍和牛子照片。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=File:Ckr.png&amp;diff=124</id>
		<title>File:Ckr.png</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=File:Ckr.png&amp;diff=124"/>
		<updated>2026-10-31T18:09:14Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;陈科润（2003年9月6日—），黑龙江齐齐哈尔人。常用ID：子夜星河、森繁绿子（反吕繁森等恶俗壬）等，贴吧ID：柏安great。其是中文推特键政圈活跃的键政蛤蟆之一，新浪维基的编者和管理员，也是虚拟国和放送圈出身的恶俗低能，迫真反恶俗魔怔人，反LGBTQIA+分子。&lt;br /&gt;
&lt;br /&gt;
陈科润喜欢在知乎、百度贴吧、QQ等平台迫害一般通过人士，在出道对方后，陈科润会性骚扰对方并发送自己的自拍和牛子照片。陈科润自诩反恶俗高雅人士，却用着本站的名头四处行骗，热衷于模仿吕繁森、姚纳多等魔怔人25小时在本站评论区拉屎，并用自己的最强大脑记下了本站的所有条目。&lt;br /&gt;
相关阅读：&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E6%B2%99%E7%9B%92&amp;diff=123</id>
		<title>沙盒</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E6%B2%99%E7%9B%92&amp;diff=123"/>
		<updated>2026-10-31T18:03:31Z</updated>

		<summary type="html">&lt;p&gt;Admin：​排版功能示例&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;这一页专门用来试「排版编辑」工具，随便改。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== 颜色 ==&lt;br /&gt;
{{颜色|1=#d32f2f|2=红色文字}}　{{颜色|1=#ef6c00|2=橙色文字}}　{{颜色|1=#f9a825|2=黄色文字}}　{{颜色|1=#2e7d32|2=绿色文字}}　{{颜色|1=#1565c0|2=蓝色文字}}　{{颜色|1=#6b3fa0|2=紫色文字}}&lt;br /&gt;
&lt;br /&gt;
== 字号 ==&lt;br /&gt;
{{字号|1=80%|2=80% 的字}}　{{字号|1=120%|2=120% 的字}}　{{字号|1=150%|2=150% 的字}}　{{字号|1=200%|2=200% 的字}}&lt;br /&gt;
&lt;br /&gt;
== 对齐 ==&lt;br /&gt;
{{对齐|1=center|2=这一段是居中的}}&lt;br /&gt;
{{对齐|1=right|2=这一段是靠右的}}&lt;br /&gt;
&lt;br /&gt;
== 图片 ==&lt;br /&gt;
[[File:神人四人组.png|300px|center]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=122</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=122"/>
		<updated>2026-10-31T18:02:58Z</updated>

		<summary type="html">&lt;p&gt;Admin：​排版：关闭后移除旧窗口&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/*&lt;br /&gt;
 * 尘月维基 · 排版工具条&lt;br /&gt;
 * 在源代码编辑器（WikiEditor）上增加：颜色 / 字号 / 对齐 / 插图 / 调图&lt;br /&gt;
 * 依赖：ext.wikiEditor、oojs-ui-widgets、oojs-ui-windows&lt;br /&gt;
 */&lt;br /&gt;
( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var COLORS = [&lt;br /&gt;
		{ label: &#039;红&#039;, value: &#039;#d32f2f&#039; },&lt;br /&gt;
		{ label: &#039;橙&#039;, value: &#039;#ef6c00&#039; },&lt;br /&gt;
		{ label: &#039;黄&#039;, value: &#039;#f9a825&#039; },&lt;br /&gt;
		{ label: &#039;绿&#039;, value: &#039;#2e7d32&#039; },&lt;br /&gt;
		{ label: &#039;青&#039;, value: &#039;#00838f&#039; },&lt;br /&gt;
		{ label: &#039;蓝&#039;, value: &#039;#1565c0&#039; },&lt;br /&gt;
		{ label: &#039;紫&#039;, value: &#039;#6b3fa0&#039; },&lt;br /&gt;
		{ label: &#039;粉&#039;, value: &#039;#d81b60&#039; },&lt;br /&gt;
		{ label: &#039;灰&#039;, value: &#039;#666666&#039; },&lt;br /&gt;
		{ label: &#039;黑&#039;, value: &#039;#000000&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var SIZES = [ &#039;80%&#039;, &#039;100%&#039;, &#039;120%&#039;, &#039;150%&#039;, &#039;200%&#039;, &#039;250%&#039; ];&lt;br /&gt;
	var WIDTHS = [ &#039;&#039;, &#039;100&#039;, &#039;150&#039;, &#039;200&#039;, &#039;250&#039;, &#039;300&#039;, &#039;400&#039;, &#039;500&#039;, &#039;600&#039; ];&lt;br /&gt;
	var ALIGN_OPTIONS = [&lt;br /&gt;
		{ label: &#039;默认&#039;, value: &#039;&#039; },&lt;br /&gt;
		{ label: &#039;居中&#039;, value: &#039;center&#039; },&lt;br /&gt;
		{ label: &#039;靠左&#039;, value: &#039;left&#039; },&lt;br /&gt;
		{ label: &#039;靠右&#039;, value: &#039;right&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var ALIGN_MAP = { &#039;居中&#039;: &#039;center&#039;, &#039;居左&#039;: &#039;left&#039;, &#039;居右&#039;: &#039;right&#039;, &#039;无&#039;: &#039;&#039; };&lt;br /&gt;
&lt;br /&gt;
	var FILE_RE = /^\s*\[\[\s*(?:File|Image|文件|图像)\s*:\s*([^|\]]+)((?:\|[^[\]]*)*)\s*\]\]\s*$/i;&lt;br /&gt;
	var ALIGN_RE = /^(?:center|left|right|none|居中|居左|居右|无)$/i;&lt;br /&gt;
&lt;br /&gt;
	var DialogClass = null;&lt;br /&gt;
	var windowManager = null;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 生成&amp;quot;包裹选中文字&amp;quot;的动作，套用站内模板&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} template 模板名&lt;br /&gt;
	 * @param {string} arg 第一个参数（颜色 / 字号 / 对齐方式）&lt;br /&gt;
	 * @return {Object} WikiEditor action&lt;br /&gt;
	 */&lt;br /&gt;
	function wrapAction( template, arg ) {&lt;br /&gt;
		return {&lt;br /&gt;
			type: &#039;encapsulate&#039;,&lt;br /&gt;
			options: {&lt;br /&gt;
				pre: &#039;{{&#039; + template + &#039;|1=&#039; + arg + &#039;|2=&#039;,&lt;br /&gt;
				peri: &#039;&#039;,&lt;br /&gt;
				post: &#039;}}&#039;&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把 [{label, value}] 转成 WikiEditor select 需要的 list&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object[]} items&lt;br /&gt;
	 * @param {string} template&lt;br /&gt;
	 * @return {Object}&lt;br /&gt;
	 */&lt;br /&gt;
	function makeList( items, template ) {&lt;br /&gt;
		var list = {};&lt;br /&gt;
		items.forEach( function ( item, index ) {&lt;br /&gt;
			list[ &#039;opt&#039; + index ] = {&lt;br /&gt;
				label: item.label,&lt;br /&gt;
				action: wrapAction( template, item.value )&lt;br /&gt;
			};&lt;br /&gt;
		} );&lt;br /&gt;
		return list;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 从 [[File:...]] 代码里解析文件名、宽度、位置、说明&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 * @return {Object|null}&lt;br /&gt;
	 */&lt;br /&gt;
	function parseFileLink( text ) {&lt;br /&gt;
		var match = FILE_RE.exec( text || &#039;&#039; );&lt;br /&gt;
		if ( !match ) {&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
		var parsed = { name: match[ 1 ].trim(), width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; };&lt;br /&gt;
		var params = match[ 2 ] ? match[ 2 ].split( &#039;|&#039; ).slice( 1 ) : [];&lt;br /&gt;
		params.forEach( function ( raw ) {&lt;br /&gt;
			var param = raw.trim();&lt;br /&gt;
			if ( !param ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			if ( /^\d+\s*px$/i.test( param ) ) {&lt;br /&gt;
				parsed.width = String( parseInt( param, 10 ) );&lt;br /&gt;
			} else if ( ALIGN_RE.test( param ) ) {&lt;br /&gt;
				parsed.align = Object.prototype.hasOwnProperty.call( ALIGN_MAP, param ) ?&lt;br /&gt;
					ALIGN_MAP[ param ] : param.toLowerCase();&lt;br /&gt;
			} else if ( !parsed.caption ) {&lt;br /&gt;
				parsed.caption = param;&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		return parsed;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 拼出 [[File:名字|宽度px|位置|说明]]&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} data&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function buildFileLink( data ) {&lt;br /&gt;
		var parts = [ &#039;[[File:&#039; + data.name ];&lt;br /&gt;
		if ( data.width ) {&lt;br /&gt;
			parts.push( data.width + &#039;px&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.align ) {&lt;br /&gt;
			parts.push( data.align );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.caption ) {&lt;br /&gt;
			parts.push( data.caption );&lt;br /&gt;
		}&lt;br /&gt;
		return parts.join( &#039;|&#039; ) + &#039;]]&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 上传页地址&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function uploadUrl() {&lt;br /&gt;
		if ( mw.util &amp;amp;&amp;amp; typeof mw.util.getUrl === &#039;function&#039; ) {&lt;br /&gt;
			return mw.util.getUrl( &#039;Special:Upload&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		return &#039;/Special:Upload&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 提示条&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 */&lt;br /&gt;
	function notify( text ) {&lt;br /&gt;
		mw.loader.using( &#039;mediawiki.notification&#039; ).then( function () {&lt;br /&gt;
			mw.notify( text, { type: &#039;warn&#039;, autoHideSeconds: 5 } );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 图片对话框（插入 / 调整共用一个）&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {Function} 对话框类&lt;br /&gt;
	 */&lt;br /&gt;
	function getDialogClass() {&lt;br /&gt;
		if ( DialogClass ) {&lt;br /&gt;
			return DialogClass;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} config&lt;br /&gt;
		 */&lt;br /&gt;
		function ImageDialog( config ) {&lt;br /&gt;
			ImageDialog.super.call( this, config );&lt;br /&gt;
		}&lt;br /&gt;
		OO.inheritClass( ImageDialog, OO.ui.ProcessDialog );&lt;br /&gt;
		ImageDialog.static.name = &#039;chenyue-image&#039;;&lt;br /&gt;
		ImageDialog.static.size = &#039;medium&#039;;&lt;br /&gt;
		ImageDialog.static.title = &#039;图片&#039;;&lt;br /&gt;
		ImageDialog.static.actions = [&lt;br /&gt;
			{ action: &#039;apply&#039;, label: &#039;确定&#039;, flags: [ &#039;primary&#039;, &#039;progressive&#039; ] },&lt;br /&gt;
			{ action: &#039;cancel&#039;, label: &#039;取消&#039;, flags: &#039;safe&#039; }&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} context&lt;br /&gt;
		 * @param {Object} data&lt;br /&gt;
		 * @param {boolean} isNew&lt;br /&gt;
		 * @return {ImageDialog}&lt;br /&gt;
		 */&lt;br /&gt;
		ImageDialog.prototype.setData = function ( context, data, isNew ) {&lt;br /&gt;
			this.context = context;&lt;br /&gt;
			this.data = data;&lt;br /&gt;
			this.isNew = isNew;&lt;br /&gt;
			return this;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.initialize = function () {&lt;br /&gt;
			ImageDialog.super.prototype.initialize.apply( this, arguments );&lt;br /&gt;
&lt;br /&gt;
			var data = this.data;&lt;br /&gt;
			this.title.setLabel( this.isNew ? &#039;插入图片&#039; : &#039;调整图片&#039; );&lt;br /&gt;
&lt;br /&gt;
			this.nameInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.name,&lt;br /&gt;
				placeholder: &#039;图片文件名，例如 熊猫.png&#039;,&lt;br /&gt;
				icon: &#039;image&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.widthInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: WIDTHS.map( function ( width ) {&lt;br /&gt;
					return { data: width, label: width ? width + &#039; 像素宽&#039; : &#039;按原始大小&#039; };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.width || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.alignInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: ALIGN_OPTIONS.map( function ( option ) {&lt;br /&gt;
					return { data: option.value, label: option.label };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.align || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.captionInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.caption,&lt;br /&gt;
				placeholder: &#039;图片说明，可留空&#039;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			var fieldset = new OO.ui.FieldsetLayout();&lt;br /&gt;
			fieldset.addItems( [&lt;br /&gt;
				new OO.ui.FieldLayout( this.nameInput, { label: &#039;文件名&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.widthInput, { label: &#039;大小&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.alignInput, { label: &#039;位置&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.captionInput, { label: &#039;说明&#039;, align: &#039;top&#039; } )&lt;br /&gt;
			] );&lt;br /&gt;
&lt;br /&gt;
			var hint = new OO.ui.HtmlSnippet(&lt;br /&gt;
				&#039;&amp;lt;p class=&amp;quot;chenyue-img-hint&amp;quot;&amp;gt;还没上传？&#039; +&lt;br /&gt;
				&#039;&amp;lt;a href=&amp;quot;&#039; + uploadUrl() + &#039;&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener&amp;quot;&amp;gt;去上传图片 →&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&#039;&lt;br /&gt;
			);&lt;br /&gt;
&lt;br /&gt;
			var panel = new OO.ui.PanelLayout( { padded: true, expanded: false } );&lt;br /&gt;
			panel.$element.append( fieldset.$element, hint.$element );&lt;br /&gt;
			this.$body.append( panel.$element );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getBodyHeight = function () {&lt;br /&gt;
			return 380;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getActionProcess = function ( action ) {&lt;br /&gt;
			var dialog = this;&lt;br /&gt;
&lt;br /&gt;
			if ( action !== &#039;apply&#039; ) {&lt;br /&gt;
				return new OO.ui.Process( function () {&lt;br /&gt;
					dialog.close( { action: action || &#039;cancel&#039; } );&lt;br /&gt;
				} );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return new OO.ui.Process( function () {&lt;br /&gt;
				var name = dialog.nameInput.getValue().trim()&lt;br /&gt;
					.replace( /^(?:File|Image|文件|图像)\s*:\s*/i, &#039;&#039; );&lt;br /&gt;
				if ( !name ) {&lt;br /&gt;
					dialog.nameInput.setValidityFlag( false );&lt;br /&gt;
					dialog.nameInput.focus();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				var text = buildFileLink( {&lt;br /&gt;
					name: name,&lt;br /&gt;
					width: dialog.widthInput.getValue(),&lt;br /&gt;
					align: dialog.alignInput.getValue(),&lt;br /&gt;
					caption: dialog.captionInput.getValue().trim()&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				// textSelection 没有 insertText 方法，统一用 encapsulateSelection：&lt;br /&gt;
				// 有选区就替换，没选区就插在光标处&lt;br /&gt;
				dialog.context.$textarea.textSelection( &#039;encapsulateSelection&#039;, {&lt;br /&gt;
					pre: text,&lt;br /&gt;
					peri: &#039;&#039;,&lt;br /&gt;
					post: &#039;&#039;,&lt;br /&gt;
					replace: true,&lt;br /&gt;
					splitlines: false,&lt;br /&gt;
					ownline: false&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				dialog.close( { action: &#039;apply&#039; } );&lt;br /&gt;
			} );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		DialogClass = ImageDialog;&lt;br /&gt;
		return DialogClass;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 打开图片对话框&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context WikiEditor context&lt;br /&gt;
	 * @param {Object|null} parsed 已有图片信息（调整时传入）&lt;br /&gt;
	 */&lt;br /&gt;
	function openImageDialog( context, parsed ) {&lt;br /&gt;
		var isNew = !parsed;&lt;br /&gt;
		mw.loader.using( [ &#039;oojs-ui-core&#039;, &#039;oojs-ui-widgets&#039;, &#039;oojs-ui-windows&#039; ] ).then( function () {&lt;br /&gt;
			if ( !windowManager ) {&lt;br /&gt;
				windowManager = new OO.ui.WindowManager();&lt;br /&gt;
				$( document.body ).append( windowManager.$element );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var ImageDialog = getDialogClass();&lt;br /&gt;
			var dialog = new ImageDialog();&lt;br /&gt;
			dialog.setData( context, parsed || { name: &#039;&#039;, width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; }, isNew );&lt;br /&gt;
&lt;br /&gt;
			windowManager.addWindows( [ dialog ] );&lt;br /&gt;
&lt;br /&gt;
			// openWindow 返回的 promise 在窗口关闭时才 resolve，用它来销毁实例&lt;br /&gt;
			var opened = windowManager.openWindow( dialog, {} );&lt;br /&gt;
			if ( opened &amp;amp;&amp;amp; typeof opened.then === &#039;function&#039; ) {&lt;br /&gt;
				opened.then( cleanup, cleanup );&lt;br /&gt;
			} else if ( dialog.closed &amp;amp;&amp;amp; typeof dialog.closed.then === &#039;function&#039; ) {&lt;br /&gt;
				dialog.closed.then( cleanup, cleanup );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * 关闭后从 DOM 中移除，避免旧窗口残留&lt;br /&gt;
			 */&lt;br /&gt;
			function cleanup() {&lt;br /&gt;
				windowManager.removeWindows( [ dialog ] );&lt;br /&gt;
				if ( dialog.$element &amp;amp;&amp;amp; dialog.$element.parent() ) {&lt;br /&gt;
					dialog.$element.remove();&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 调整选中图片的大小 / 位置&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context&lt;br /&gt;
	 */&lt;br /&gt;
	function adjustImage( context ) {&lt;br /&gt;
		var selection = context.$textarea.textSelection( &#039;getSelection&#039; );&lt;br /&gt;
		var parsed = parseFileLink( selection );&lt;br /&gt;
&lt;br /&gt;
		if ( !parsed ) {&lt;br /&gt;
			notify( &#039;先选中整段图片代码再点「调图」，例如 [[File:熊猫.png|300px|center]]&#039; );&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		openImageDialog( context, parsed );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把排版工具条插进 WikiEditor&lt;br /&gt;
	 */&lt;br /&gt;
	function addLayoutTools() {&lt;br /&gt;
		if ( $( &#039;#wikiEditor-ui-toolbar .group-layout&#039; ).length ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		$( &#039;#wpTextbox1&#039; ).wikiEditor( &#039;addToToolbar&#039;, {&lt;br /&gt;
			section: &#039;main&#039;,&lt;br /&gt;
			groups: {&lt;br /&gt;
				layout: {&lt;br /&gt;
					tools: {&lt;br /&gt;
						layoutColor: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;颜色&#039;,&lt;br /&gt;
							list: makeList( COLORS, &#039;颜色&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutSize: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;字号&#039;,&lt;br /&gt;
							list: makeList( SIZES.map( function ( size ) {&lt;br /&gt;
								return { label: size, value: size };&lt;br /&gt;
							} ), &#039;字号&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutAlign: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;对齐&#039;,&lt;br /&gt;
							list: makeList( ALIGN_OPTIONS.filter( function ( option ) {&lt;br /&gt;
								return option.value !== &#039;&#039;;&lt;br /&gt;
							} ), &#039;对齐&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutImage: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;插图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									openImageDialog( context, null );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						},&lt;br /&gt;
						layoutAdjust: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;调图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									adjustImage( context );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 等 WikiEditor 渲染出工具条后再挂工具组&lt;br /&gt;
	 */&lt;br /&gt;
	function bootstrap() {&lt;br /&gt;
		if ( !document.getElementById( &#039;wpTextbox1&#039; ) ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		mw.loader.using( &#039;ext.wikiEditor&#039; ).then( function () {&lt;br /&gt;
			var tries = 0;&lt;br /&gt;
&lt;br /&gt;
			function waitForToolbar() {&lt;br /&gt;
				if ( document.getElementById( &#039;wikiEditor-ui-toolbar&#039; ) ) {&lt;br /&gt;
					addLayoutTools();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				tries += 1;&lt;br /&gt;
				if ( tries &amp;lt;= 30 ) {&lt;br /&gt;
					window.setTimeout( waitForToolbar, 100 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			waitForToolbar();&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$( bootstrap );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=121</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=121"/>
		<updated>2026-10-31T18:02:15Z</updated>

		<summary type="html">&lt;p&gt;Admin：​排版：修复插入文本方法（insertText 不存在）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/*&lt;br /&gt;
 * 尘月维基 · 排版工具条&lt;br /&gt;
 * 在源代码编辑器（WikiEditor）上增加：颜色 / 字号 / 对齐 / 插图 / 调图&lt;br /&gt;
 * 依赖：ext.wikiEditor、oojs-ui-widgets、oojs-ui-windows&lt;br /&gt;
 */&lt;br /&gt;
( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var COLORS = [&lt;br /&gt;
		{ label: &#039;红&#039;, value: &#039;#d32f2f&#039; },&lt;br /&gt;
		{ label: &#039;橙&#039;, value: &#039;#ef6c00&#039; },&lt;br /&gt;
		{ label: &#039;黄&#039;, value: &#039;#f9a825&#039; },&lt;br /&gt;
		{ label: &#039;绿&#039;, value: &#039;#2e7d32&#039; },&lt;br /&gt;
		{ label: &#039;青&#039;, value: &#039;#00838f&#039; },&lt;br /&gt;
		{ label: &#039;蓝&#039;, value: &#039;#1565c0&#039; },&lt;br /&gt;
		{ label: &#039;紫&#039;, value: &#039;#6b3fa0&#039; },&lt;br /&gt;
		{ label: &#039;粉&#039;, value: &#039;#d81b60&#039; },&lt;br /&gt;
		{ label: &#039;灰&#039;, value: &#039;#666666&#039; },&lt;br /&gt;
		{ label: &#039;黑&#039;, value: &#039;#000000&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var SIZES = [ &#039;80%&#039;, &#039;100%&#039;, &#039;120%&#039;, &#039;150%&#039;, &#039;200%&#039;, &#039;250%&#039; ];&lt;br /&gt;
	var WIDTHS = [ &#039;&#039;, &#039;100&#039;, &#039;150&#039;, &#039;200&#039;, &#039;250&#039;, &#039;300&#039;, &#039;400&#039;, &#039;500&#039;, &#039;600&#039; ];&lt;br /&gt;
	var ALIGN_OPTIONS = [&lt;br /&gt;
		{ label: &#039;默认&#039;, value: &#039;&#039; },&lt;br /&gt;
		{ label: &#039;居中&#039;, value: &#039;center&#039; },&lt;br /&gt;
		{ label: &#039;靠左&#039;, value: &#039;left&#039; },&lt;br /&gt;
		{ label: &#039;靠右&#039;, value: &#039;right&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var ALIGN_MAP = { &#039;居中&#039;: &#039;center&#039;, &#039;居左&#039;: &#039;left&#039;, &#039;居右&#039;: &#039;right&#039;, &#039;无&#039;: &#039;&#039; };&lt;br /&gt;
&lt;br /&gt;
	var FILE_RE = /^\s*\[\[\s*(?:File|Image|文件|图像)\s*:\s*([^|\]]+)((?:\|[^[\]]*)*)\s*\]\]\s*$/i;&lt;br /&gt;
	var ALIGN_RE = /^(?:center|left|right|none|居中|居左|居右|无)$/i;&lt;br /&gt;
&lt;br /&gt;
	var DialogClass = null;&lt;br /&gt;
	var windowManager = null;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 生成&amp;quot;包裹选中文字&amp;quot;的动作，套用站内模板&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} template 模板名&lt;br /&gt;
	 * @param {string} arg 第一个参数（颜色 / 字号 / 对齐方式）&lt;br /&gt;
	 * @return {Object} WikiEditor action&lt;br /&gt;
	 */&lt;br /&gt;
	function wrapAction( template, arg ) {&lt;br /&gt;
		return {&lt;br /&gt;
			type: &#039;encapsulate&#039;,&lt;br /&gt;
			options: {&lt;br /&gt;
				pre: &#039;{{&#039; + template + &#039;|1=&#039; + arg + &#039;|2=&#039;,&lt;br /&gt;
				peri: &#039;&#039;,&lt;br /&gt;
				post: &#039;}}&#039;&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把 [{label, value}] 转成 WikiEditor select 需要的 list&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object[]} items&lt;br /&gt;
	 * @param {string} template&lt;br /&gt;
	 * @return {Object}&lt;br /&gt;
	 */&lt;br /&gt;
	function makeList( items, template ) {&lt;br /&gt;
		var list = {};&lt;br /&gt;
		items.forEach( function ( item, index ) {&lt;br /&gt;
			list[ &#039;opt&#039; + index ] = {&lt;br /&gt;
				label: item.label,&lt;br /&gt;
				action: wrapAction( template, item.value )&lt;br /&gt;
			};&lt;br /&gt;
		} );&lt;br /&gt;
		return list;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 从 [[File:...]] 代码里解析文件名、宽度、位置、说明&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 * @return {Object|null}&lt;br /&gt;
	 */&lt;br /&gt;
	function parseFileLink( text ) {&lt;br /&gt;
		var match = FILE_RE.exec( text || &#039;&#039; );&lt;br /&gt;
		if ( !match ) {&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
		var parsed = { name: match[ 1 ].trim(), width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; };&lt;br /&gt;
		var params = match[ 2 ] ? match[ 2 ].split( &#039;|&#039; ).slice( 1 ) : [];&lt;br /&gt;
		params.forEach( function ( raw ) {&lt;br /&gt;
			var param = raw.trim();&lt;br /&gt;
			if ( !param ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			if ( /^\d+\s*px$/i.test( param ) ) {&lt;br /&gt;
				parsed.width = String( parseInt( param, 10 ) );&lt;br /&gt;
			} else if ( ALIGN_RE.test( param ) ) {&lt;br /&gt;
				parsed.align = Object.prototype.hasOwnProperty.call( ALIGN_MAP, param ) ?&lt;br /&gt;
					ALIGN_MAP[ param ] : param.toLowerCase();&lt;br /&gt;
			} else if ( !parsed.caption ) {&lt;br /&gt;
				parsed.caption = param;&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		return parsed;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 拼出 [[File:名字|宽度px|位置|说明]]&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} data&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function buildFileLink( data ) {&lt;br /&gt;
		var parts = [ &#039;[[File:&#039; + data.name ];&lt;br /&gt;
		if ( data.width ) {&lt;br /&gt;
			parts.push( data.width + &#039;px&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.align ) {&lt;br /&gt;
			parts.push( data.align );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.caption ) {&lt;br /&gt;
			parts.push( data.caption );&lt;br /&gt;
		}&lt;br /&gt;
		return parts.join( &#039;|&#039; ) + &#039;]]&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 上传页地址&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function uploadUrl() {&lt;br /&gt;
		if ( mw.util &amp;amp;&amp;amp; typeof mw.util.getUrl === &#039;function&#039; ) {&lt;br /&gt;
			return mw.util.getUrl( &#039;Special:Upload&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		return &#039;/Special:Upload&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 提示条&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 */&lt;br /&gt;
	function notify( text ) {&lt;br /&gt;
		mw.loader.using( &#039;mediawiki.notification&#039; ).then( function () {&lt;br /&gt;
			mw.notify( text, { type: &#039;warn&#039;, autoHideSeconds: 5 } );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 图片对话框（插入 / 调整共用一个）&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {Function} 对话框类&lt;br /&gt;
	 */&lt;br /&gt;
	function getDialogClass() {&lt;br /&gt;
		if ( DialogClass ) {&lt;br /&gt;
			return DialogClass;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} config&lt;br /&gt;
		 */&lt;br /&gt;
		function ImageDialog( config ) {&lt;br /&gt;
			ImageDialog.super.call( this, config );&lt;br /&gt;
		}&lt;br /&gt;
		OO.inheritClass( ImageDialog, OO.ui.ProcessDialog );&lt;br /&gt;
		ImageDialog.static.name = &#039;chenyue-image&#039;;&lt;br /&gt;
		ImageDialog.static.size = &#039;medium&#039;;&lt;br /&gt;
		ImageDialog.static.title = &#039;图片&#039;;&lt;br /&gt;
		ImageDialog.static.actions = [&lt;br /&gt;
			{ action: &#039;apply&#039;, label: &#039;确定&#039;, flags: [ &#039;primary&#039;, &#039;progressive&#039; ] },&lt;br /&gt;
			{ action: &#039;cancel&#039;, label: &#039;取消&#039;, flags: &#039;safe&#039; }&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} context&lt;br /&gt;
		 * @param {Object} data&lt;br /&gt;
		 * @param {boolean} isNew&lt;br /&gt;
		 * @return {ImageDialog}&lt;br /&gt;
		 */&lt;br /&gt;
		ImageDialog.prototype.setData = function ( context, data, isNew ) {&lt;br /&gt;
			this.context = context;&lt;br /&gt;
			this.data = data;&lt;br /&gt;
			this.isNew = isNew;&lt;br /&gt;
			return this;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.initialize = function () {&lt;br /&gt;
			ImageDialog.super.prototype.initialize.apply( this, arguments );&lt;br /&gt;
&lt;br /&gt;
			var data = this.data;&lt;br /&gt;
			this.title.setLabel( this.isNew ? &#039;插入图片&#039; : &#039;调整图片&#039; );&lt;br /&gt;
&lt;br /&gt;
			this.nameInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.name,&lt;br /&gt;
				placeholder: &#039;图片文件名，例如 熊猫.png&#039;,&lt;br /&gt;
				icon: &#039;image&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.widthInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: WIDTHS.map( function ( width ) {&lt;br /&gt;
					return { data: width, label: width ? width + &#039; 像素宽&#039; : &#039;按原始大小&#039; };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.width || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.alignInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: ALIGN_OPTIONS.map( function ( option ) {&lt;br /&gt;
					return { data: option.value, label: option.label };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.align || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.captionInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.caption,&lt;br /&gt;
				placeholder: &#039;图片说明，可留空&#039;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			var fieldset = new OO.ui.FieldsetLayout();&lt;br /&gt;
			fieldset.addItems( [&lt;br /&gt;
				new OO.ui.FieldLayout( this.nameInput, { label: &#039;文件名&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.widthInput, { label: &#039;大小&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.alignInput, { label: &#039;位置&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.captionInput, { label: &#039;说明&#039;, align: &#039;top&#039; } )&lt;br /&gt;
			] );&lt;br /&gt;
&lt;br /&gt;
			var hint = new OO.ui.HtmlSnippet(&lt;br /&gt;
				&#039;&amp;lt;p class=&amp;quot;chenyue-img-hint&amp;quot;&amp;gt;还没上传？&#039; +&lt;br /&gt;
				&#039;&amp;lt;a href=&amp;quot;&#039; + uploadUrl() + &#039;&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener&amp;quot;&amp;gt;去上传图片 →&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&#039;&lt;br /&gt;
			);&lt;br /&gt;
&lt;br /&gt;
			var panel = new OO.ui.PanelLayout( { padded: true, expanded: false } );&lt;br /&gt;
			panel.$element.append( fieldset.$element, hint.$element );&lt;br /&gt;
			this.$body.append( panel.$element );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getBodyHeight = function () {&lt;br /&gt;
			return 380;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getActionProcess = function ( action ) {&lt;br /&gt;
			var dialog = this;&lt;br /&gt;
&lt;br /&gt;
			if ( action !== &#039;apply&#039; ) {&lt;br /&gt;
				return new OO.ui.Process( function () {&lt;br /&gt;
					dialog.close( { action: action || &#039;cancel&#039; } );&lt;br /&gt;
				} );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return new OO.ui.Process( function () {&lt;br /&gt;
				var name = dialog.nameInput.getValue().trim()&lt;br /&gt;
					.replace( /^(?:File|Image|文件|图像)\s*:\s*/i, &#039;&#039; );&lt;br /&gt;
				if ( !name ) {&lt;br /&gt;
					dialog.nameInput.setValidityFlag( false );&lt;br /&gt;
					dialog.nameInput.focus();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				var text = buildFileLink( {&lt;br /&gt;
					name: name,&lt;br /&gt;
					width: dialog.widthInput.getValue(),&lt;br /&gt;
					align: dialog.alignInput.getValue(),&lt;br /&gt;
					caption: dialog.captionInput.getValue().trim()&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				// textSelection 没有 insertText 方法，统一用 encapsulateSelection：&lt;br /&gt;
				// 有选区就替换，没选区就插在光标处&lt;br /&gt;
				dialog.context.$textarea.textSelection( &#039;encapsulateSelection&#039;, {&lt;br /&gt;
					pre: text,&lt;br /&gt;
					peri: &#039;&#039;,&lt;br /&gt;
					post: &#039;&#039;,&lt;br /&gt;
					replace: true,&lt;br /&gt;
					splitlines: false,&lt;br /&gt;
					ownline: false&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				dialog.close( { action: &#039;apply&#039; } );&lt;br /&gt;
			} );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		DialogClass = ImageDialog;&lt;br /&gt;
		return DialogClass;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 打开图片对话框&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context WikiEditor context&lt;br /&gt;
	 * @param {Object|null} parsed 已有图片信息（调整时传入）&lt;br /&gt;
	 */&lt;br /&gt;
	function openImageDialog( context, parsed ) {&lt;br /&gt;
		var isNew = !parsed;&lt;br /&gt;
		mw.loader.using( [ &#039;oojs-ui-core&#039;, &#039;oojs-ui-widgets&#039;, &#039;oojs-ui-windows&#039; ] ).then( function () {&lt;br /&gt;
			if ( !windowManager ) {&lt;br /&gt;
				windowManager = new OO.ui.WindowManager();&lt;br /&gt;
				$( document.body ).append( windowManager.$element );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var ImageDialog = getDialogClass();&lt;br /&gt;
			var dialog = new ImageDialog();&lt;br /&gt;
			dialog.setData( context, parsed || { name: &#039;&#039;, width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; }, isNew );&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * 窗口关闭后销毁实例，避免堆积&lt;br /&gt;
			 */&lt;br /&gt;
			function cleanup() {&lt;br /&gt;
				windowManager.removeWindows( [ dialog ] );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			windowManager.addWindows( [ dialog ] );&lt;br /&gt;
&lt;br /&gt;
			var opened = windowManager.openWindow( dialog, {} );&lt;br /&gt;
			if ( opened &amp;amp;&amp;amp; typeof opened.then === &#039;function&#039; ) {&lt;br /&gt;
				opened.then( function () {&lt;br /&gt;
					if ( dialog.closed &amp;amp;&amp;amp; typeof dialog.closed.then === &#039;function&#039; ) {&lt;br /&gt;
						dialog.closed.then( cleanup, cleanup );&lt;br /&gt;
					}&lt;br /&gt;
				} );&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 调整选中图片的大小 / 位置&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context&lt;br /&gt;
	 */&lt;br /&gt;
	function adjustImage( context ) {&lt;br /&gt;
		var selection = context.$textarea.textSelection( &#039;getSelection&#039; );&lt;br /&gt;
		var parsed = parseFileLink( selection );&lt;br /&gt;
&lt;br /&gt;
		if ( !parsed ) {&lt;br /&gt;
			notify( &#039;先选中整段图片代码再点「调图」，例如 [[File:熊猫.png|300px|center]]&#039; );&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		openImageDialog( context, parsed );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把排版工具条插进 WikiEditor&lt;br /&gt;
	 */&lt;br /&gt;
	function addLayoutTools() {&lt;br /&gt;
		if ( $( &#039;#wikiEditor-ui-toolbar .group-layout&#039; ).length ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		$( &#039;#wpTextbox1&#039; ).wikiEditor( &#039;addToToolbar&#039;, {&lt;br /&gt;
			section: &#039;main&#039;,&lt;br /&gt;
			groups: {&lt;br /&gt;
				layout: {&lt;br /&gt;
					tools: {&lt;br /&gt;
						layoutColor: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;颜色&#039;,&lt;br /&gt;
							list: makeList( COLORS, &#039;颜色&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutSize: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;字号&#039;,&lt;br /&gt;
							list: makeList( SIZES.map( function ( size ) {&lt;br /&gt;
								return { label: size, value: size };&lt;br /&gt;
							} ), &#039;字号&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutAlign: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;对齐&#039;,&lt;br /&gt;
							list: makeList( ALIGN_OPTIONS.filter( function ( option ) {&lt;br /&gt;
								return option.value !== &#039;&#039;;&lt;br /&gt;
							} ), &#039;对齐&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutImage: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;插图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									openImageDialog( context, null );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						},&lt;br /&gt;
						layoutAdjust: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;调图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									adjustImage( context );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 等 WikiEditor 渲染出工具条后再挂工具组&lt;br /&gt;
	 */&lt;br /&gt;
	function bootstrap() {&lt;br /&gt;
		if ( !document.getElementById( &#039;wpTextbox1&#039; ) ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		mw.loader.using( &#039;ext.wikiEditor&#039; ).then( function () {&lt;br /&gt;
			var tries = 0;&lt;br /&gt;
&lt;br /&gt;
			function waitForToolbar() {&lt;br /&gt;
				if ( document.getElementById( &#039;wikiEditor-ui-toolbar&#039; ) ) {&lt;br /&gt;
					addLayoutTools();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				tries += 1;&lt;br /&gt;
				if ( tries &amp;lt;= 30 ) {&lt;br /&gt;
					window.setTimeout( waitForToolbar, 100 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			waitForToolbar();&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$( bootstrap );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%B9%B4%E5%BA%A6%E7%A1%AC%E6%B1%89&amp;diff=120</id>
		<title>年度硬汉</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%B9%B4%E5%BA%A6%E7%A1%AC%E6%B1%89&amp;diff=120"/>
		<updated>2026-10-31T17:59:20Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:妖照.png|thumb]]&lt;br /&gt;
{{字号|1=120%|2=&#039;&#039;&#039;张钦瑞&#039;&#039;&#039;，出生于1997年4月14日，黑龙江鸡西人，现居&#039;&#039;&#039;澳大利亚新南威尔士州悉尼&#039;&#039;&#039;，常用网名&#039;&#039;&#039;妖照&#039;&#039;&#039;。曾拥有多个挡刀名，包括王畅，赵启泷，王吉等。&lt;br /&gt;
&lt;br /&gt;
张钦瑞在孙立军吧与鸵鸟并列的恶俗战神之一，也是同凉堂同为三代恶俗维基管理，共同炮制了刘慈欣事件。并且与肖彦锐大搞“&#039;&#039;&#039;引恶治东&#039;&#039;&#039;”活动，出道了数位无辜人士。&#039;&#039;&#039;2020年因涉及1902136专案被公安机关逮捕，&#039;&#039;&#039;后张钦瑞已因减刑，而于2024年释放。&lt;br /&gt;
&lt;br /&gt;
而在出狱后张钦瑞非但没有悔悟，反而串通战人、凉堂大搞新月维基，后收编李卓州作为小弟。在李卓州被玉环警方逮捕后，张钦瑞先生在新月维基与李炳谦抱团取暖，&#039;&#039;&#039;一代恶俗之神的下场可真是令人唏嘘啊&#039;&#039;&#039;。&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=File:%E5%A6%96%E7%85%A7.png&amp;diff=119</id>
		<title>File:妖照.png</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=File:%E5%A6%96%E7%85%A7.png&amp;diff=119"/>
		<updated>2026-10-31T17:58:42Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;张钦瑞，出生于1997年4月14日，黑龙江鸡西人，现居澳大利亚新南威尔士州悉尼，常用网名妖照。曾拥有多个挡刀名，包括王畅，赵启泷，王吉等。&lt;br /&gt;
&lt;br /&gt;
张钦瑞在孙立军吧与鸵鸟并列的恶俗战神之一，也是同凉堂同为三代恶俗维基管理，共同炮制了刘慈欣事件。并且与肖彦锐大搞“引恶治东”活动，出道了数位无辜人士。2020年因涉及1902136专案被公安机关逮捕，后张钦瑞已因减刑，而于2024年释放。&lt;br /&gt;
&lt;br /&gt;
而在出狱后张钦瑞非但没有悔悟，反而串通战人、凉堂大搞新月维基，后收编李卓州作为小弟。在李卓州被玉环警方逮捕后，张钦瑞先生在新月维基与李炳谦抱团取暖，一代恶俗之神的下场可真是令人唏嘘啊。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=118</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=118"/>
		<updated>2026-10-31T17:57:24Z</updated>

		<summary type="html">&lt;p&gt;Admin：​排版：对话框改用 ProcessDialog（有确定/取消按钮）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/*&lt;br /&gt;
 * 尘月维基 · 排版工具条&lt;br /&gt;
 * 在源代码编辑器（WikiEditor）上增加：颜色 / 字号 / 对齐 / 插图 / 调图&lt;br /&gt;
 * 依赖：ext.wikiEditor、oojs-ui-widgets、oojs-ui-windows&lt;br /&gt;
 */&lt;br /&gt;
( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var COLORS = [&lt;br /&gt;
		{ label: &#039;红&#039;, value: &#039;#d32f2f&#039; },&lt;br /&gt;
		{ label: &#039;橙&#039;, value: &#039;#ef6c00&#039; },&lt;br /&gt;
		{ label: &#039;黄&#039;, value: &#039;#f9a825&#039; },&lt;br /&gt;
		{ label: &#039;绿&#039;, value: &#039;#2e7d32&#039; },&lt;br /&gt;
		{ label: &#039;青&#039;, value: &#039;#00838f&#039; },&lt;br /&gt;
		{ label: &#039;蓝&#039;, value: &#039;#1565c0&#039; },&lt;br /&gt;
		{ label: &#039;紫&#039;, value: &#039;#6b3fa0&#039; },&lt;br /&gt;
		{ label: &#039;粉&#039;, value: &#039;#d81b60&#039; },&lt;br /&gt;
		{ label: &#039;灰&#039;, value: &#039;#666666&#039; },&lt;br /&gt;
		{ label: &#039;黑&#039;, value: &#039;#000000&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var SIZES = [ &#039;80%&#039;, &#039;100%&#039;, &#039;120%&#039;, &#039;150%&#039;, &#039;200%&#039;, &#039;250%&#039; ];&lt;br /&gt;
	var WIDTHS = [ &#039;&#039;, &#039;100&#039;, &#039;150&#039;, &#039;200&#039;, &#039;250&#039;, &#039;300&#039;, &#039;400&#039;, &#039;500&#039;, &#039;600&#039; ];&lt;br /&gt;
	var ALIGN_OPTIONS = [&lt;br /&gt;
		{ label: &#039;默认&#039;, value: &#039;&#039; },&lt;br /&gt;
		{ label: &#039;居中&#039;, value: &#039;center&#039; },&lt;br /&gt;
		{ label: &#039;靠左&#039;, value: &#039;left&#039; },&lt;br /&gt;
		{ label: &#039;靠右&#039;, value: &#039;right&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var ALIGN_MAP = { &#039;居中&#039;: &#039;center&#039;, &#039;居左&#039;: &#039;left&#039;, &#039;居右&#039;: &#039;right&#039;, &#039;无&#039;: &#039;&#039; };&lt;br /&gt;
&lt;br /&gt;
	var FILE_RE = /^\s*\[\[\s*(?:File|Image|文件|图像)\s*:\s*([^|\]]+)((?:\|[^[\]]*)*)\s*\]\]\s*$/i;&lt;br /&gt;
	var ALIGN_RE = /^(?:center|left|right|none|居中|居左|居右|无)$/i;&lt;br /&gt;
&lt;br /&gt;
	var DialogClass = null;&lt;br /&gt;
	var windowManager = null;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 生成&amp;quot;包裹选中文字&amp;quot;的动作，套用站内模板&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} template 模板名&lt;br /&gt;
	 * @param {string} arg 第一个参数（颜色 / 字号 / 对齐方式）&lt;br /&gt;
	 * @return {Object} WikiEditor action&lt;br /&gt;
	 */&lt;br /&gt;
	function wrapAction( template, arg ) {&lt;br /&gt;
		return {&lt;br /&gt;
			type: &#039;encapsulate&#039;,&lt;br /&gt;
			options: {&lt;br /&gt;
				pre: &#039;{{&#039; + template + &#039;|1=&#039; + arg + &#039;|2=&#039;,&lt;br /&gt;
				peri: &#039;&#039;,&lt;br /&gt;
				post: &#039;}}&#039;&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把 [{label, value}] 转成 WikiEditor select 需要的 list&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object[]} items&lt;br /&gt;
	 * @param {string} template&lt;br /&gt;
	 * @return {Object}&lt;br /&gt;
	 */&lt;br /&gt;
	function makeList( items, template ) {&lt;br /&gt;
		var list = {};&lt;br /&gt;
		items.forEach( function ( item, index ) {&lt;br /&gt;
			list[ &#039;opt&#039; + index ] = {&lt;br /&gt;
				label: item.label,&lt;br /&gt;
				action: wrapAction( template, item.value )&lt;br /&gt;
			};&lt;br /&gt;
		} );&lt;br /&gt;
		return list;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 从 [[File:...]] 代码里解析文件名、宽度、位置、说明&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 * @return {Object|null}&lt;br /&gt;
	 */&lt;br /&gt;
	function parseFileLink( text ) {&lt;br /&gt;
		var match = FILE_RE.exec( text || &#039;&#039; );&lt;br /&gt;
		if ( !match ) {&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
		var parsed = { name: match[ 1 ].trim(), width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; };&lt;br /&gt;
		var params = match[ 2 ] ? match[ 2 ].split( &#039;|&#039; ).slice( 1 ) : [];&lt;br /&gt;
		params.forEach( function ( raw ) {&lt;br /&gt;
			var param = raw.trim();&lt;br /&gt;
			if ( !param ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			if ( /^\d+\s*px$/i.test( param ) ) {&lt;br /&gt;
				parsed.width = String( parseInt( param, 10 ) );&lt;br /&gt;
			} else if ( ALIGN_RE.test( param ) ) {&lt;br /&gt;
				parsed.align = Object.prototype.hasOwnProperty.call( ALIGN_MAP, param ) ?&lt;br /&gt;
					ALIGN_MAP[ param ] : param.toLowerCase();&lt;br /&gt;
			} else if ( !parsed.caption ) {&lt;br /&gt;
				parsed.caption = param;&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		return parsed;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 拼出 [[File:名字|宽度px|位置|说明]]&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} data&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function buildFileLink( data ) {&lt;br /&gt;
		var parts = [ &#039;[[File:&#039; + data.name ];&lt;br /&gt;
		if ( data.width ) {&lt;br /&gt;
			parts.push( data.width + &#039;px&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.align ) {&lt;br /&gt;
			parts.push( data.align );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.caption ) {&lt;br /&gt;
			parts.push( data.caption );&lt;br /&gt;
		}&lt;br /&gt;
		return parts.join( &#039;|&#039; ) + &#039;]]&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 上传页地址&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function uploadUrl() {&lt;br /&gt;
		if ( mw.util &amp;amp;&amp;amp; typeof mw.util.getUrl === &#039;function&#039; ) {&lt;br /&gt;
			return mw.util.getUrl( &#039;Special:Upload&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		return &#039;/Special:Upload&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 提示条&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 */&lt;br /&gt;
	function notify( text ) {&lt;br /&gt;
		mw.loader.using( &#039;mediawiki.notification&#039; ).then( function () {&lt;br /&gt;
			mw.notify( text, { type: &#039;warn&#039;, autoHideSeconds: 5 } );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 图片对话框（插入 / 调整共用一个）&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {Function} 对话框类&lt;br /&gt;
	 */&lt;br /&gt;
	function getDialogClass() {&lt;br /&gt;
		if ( DialogClass ) {&lt;br /&gt;
			return DialogClass;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} config&lt;br /&gt;
		 */&lt;br /&gt;
		function ImageDialog( config ) {&lt;br /&gt;
			ImageDialog.super.call( this, config );&lt;br /&gt;
		}&lt;br /&gt;
		OO.inheritClass( ImageDialog, OO.ui.ProcessDialog );&lt;br /&gt;
		ImageDialog.static.name = &#039;chenyue-image&#039;;&lt;br /&gt;
		ImageDialog.static.size = &#039;medium&#039;;&lt;br /&gt;
		ImageDialog.static.title = &#039;图片&#039;;&lt;br /&gt;
		ImageDialog.static.actions = [&lt;br /&gt;
			{ action: &#039;apply&#039;, label: &#039;确定&#039;, flags: [ &#039;primary&#039;, &#039;progressive&#039; ] },&lt;br /&gt;
			{ action: &#039;cancel&#039;, label: &#039;取消&#039;, flags: &#039;safe&#039; }&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} context&lt;br /&gt;
		 * @param {Object} data&lt;br /&gt;
		 * @param {boolean} isNew&lt;br /&gt;
		 * @return {ImageDialog}&lt;br /&gt;
		 */&lt;br /&gt;
		ImageDialog.prototype.setData = function ( context, data, isNew ) {&lt;br /&gt;
			this.context = context;&lt;br /&gt;
			this.data = data;&lt;br /&gt;
			this.isNew = isNew;&lt;br /&gt;
			return this;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.initialize = function () {&lt;br /&gt;
			ImageDialog.super.prototype.initialize.apply( this, arguments );&lt;br /&gt;
&lt;br /&gt;
			var data = this.data;&lt;br /&gt;
			this.title.setLabel( this.isNew ? &#039;插入图片&#039; : &#039;调整图片&#039; );&lt;br /&gt;
&lt;br /&gt;
			this.nameInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.name,&lt;br /&gt;
				placeholder: &#039;图片文件名，例如 熊猫.png&#039;,&lt;br /&gt;
				icon: &#039;image&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.widthInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: WIDTHS.map( function ( width ) {&lt;br /&gt;
					return { data: width, label: width ? width + &#039; 像素宽&#039; : &#039;按原始大小&#039; };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.width || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.alignInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: ALIGN_OPTIONS.map( function ( option ) {&lt;br /&gt;
					return { data: option.value, label: option.label };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.align || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.captionInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.caption,&lt;br /&gt;
				placeholder: &#039;图片说明，可留空&#039;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			var fieldset = new OO.ui.FieldsetLayout();&lt;br /&gt;
			fieldset.addItems( [&lt;br /&gt;
				new OO.ui.FieldLayout( this.nameInput, { label: &#039;文件名&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.widthInput, { label: &#039;大小&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.alignInput, { label: &#039;位置&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.captionInput, { label: &#039;说明&#039;, align: &#039;top&#039; } )&lt;br /&gt;
			] );&lt;br /&gt;
&lt;br /&gt;
			var hint = new OO.ui.HtmlSnippet(&lt;br /&gt;
				&#039;&amp;lt;p class=&amp;quot;chenyue-img-hint&amp;quot;&amp;gt;还没上传？&#039; +&lt;br /&gt;
				&#039;&amp;lt;a href=&amp;quot;&#039; + uploadUrl() + &#039;&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener&amp;quot;&amp;gt;去上传图片 →&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&#039;&lt;br /&gt;
			);&lt;br /&gt;
&lt;br /&gt;
			var panel = new OO.ui.PanelLayout( { padded: true, expanded: false } );&lt;br /&gt;
			panel.$element.append( fieldset.$element, hint.$element );&lt;br /&gt;
			this.$body.append( panel.$element );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getBodyHeight = function () {&lt;br /&gt;
			return 380;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getActionProcess = function ( action ) {&lt;br /&gt;
			var dialog = this;&lt;br /&gt;
&lt;br /&gt;
			if ( action !== &#039;apply&#039; ) {&lt;br /&gt;
				return new OO.ui.Process( function () {&lt;br /&gt;
					dialog.close( { action: action || &#039;cancel&#039; } );&lt;br /&gt;
				} );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return new OO.ui.Process( function () {&lt;br /&gt;
				var name = dialog.nameInput.getValue().trim()&lt;br /&gt;
					.replace( /^(?:File|Image|文件|图像)\s*:\s*/i, &#039;&#039; );&lt;br /&gt;
				if ( !name ) {&lt;br /&gt;
					dialog.nameInput.setValidityFlag( false );&lt;br /&gt;
					dialog.nameInput.focus();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				var text = buildFileLink( {&lt;br /&gt;
					name: name,&lt;br /&gt;
					width: dialog.widthInput.getValue(),&lt;br /&gt;
					align: dialog.alignInput.getValue(),&lt;br /&gt;
					caption: dialog.captionInput.getValue().trim()&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				if ( dialog.isNew ) {&lt;br /&gt;
					dialog.context.$textarea.textSelection( &#039;insertText&#039;, text );&lt;br /&gt;
				} else {&lt;br /&gt;
					dialog.context.$textarea.textSelection( &#039;encapsulateSelection&#039;, {&lt;br /&gt;
						pre: &#039;&#039;, peri: text, post: &#039;&#039;, replace: true&lt;br /&gt;
					} );&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				dialog.close( { action: &#039;apply&#039; } );&lt;br /&gt;
			} );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		DialogClass = ImageDialog;&lt;br /&gt;
		return DialogClass;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 打开图片对话框&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context WikiEditor context&lt;br /&gt;
	 * @param {Object|null} parsed 已有图片信息（调整时传入）&lt;br /&gt;
	 */&lt;br /&gt;
	function openImageDialog( context, parsed ) {&lt;br /&gt;
		var isNew = !parsed;&lt;br /&gt;
		mw.loader.using( [ &#039;oojs-ui-core&#039;, &#039;oojs-ui-widgets&#039;, &#039;oojs-ui-windows&#039; ] ).then( function () {&lt;br /&gt;
			if ( !windowManager ) {&lt;br /&gt;
				windowManager = new OO.ui.WindowManager();&lt;br /&gt;
				$( document.body ).append( windowManager.$element );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var ImageDialog = getDialogClass();&lt;br /&gt;
			var dialog = new ImageDialog();&lt;br /&gt;
			dialog.setData( context, parsed || { name: &#039;&#039;, width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; }, isNew );&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * 窗口关闭后销毁实例，避免堆积&lt;br /&gt;
			 */&lt;br /&gt;
			function cleanup() {&lt;br /&gt;
				windowManager.removeWindows( [ dialog ] );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			windowManager.addWindows( [ dialog ] );&lt;br /&gt;
&lt;br /&gt;
			var opened = windowManager.openWindow( dialog, {} );&lt;br /&gt;
			if ( opened &amp;amp;&amp;amp; typeof opened.then === &#039;function&#039; ) {&lt;br /&gt;
				opened.then( function () {&lt;br /&gt;
					if ( dialog.closed &amp;amp;&amp;amp; typeof dialog.closed.then === &#039;function&#039; ) {&lt;br /&gt;
						dialog.closed.then( cleanup, cleanup );&lt;br /&gt;
					}&lt;br /&gt;
				} );&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 调整选中图片的大小 / 位置&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context&lt;br /&gt;
	 */&lt;br /&gt;
	function adjustImage( context ) {&lt;br /&gt;
		var selection = context.$textarea.textSelection( &#039;getSelection&#039; );&lt;br /&gt;
		var parsed = parseFileLink( selection );&lt;br /&gt;
&lt;br /&gt;
		if ( !parsed ) {&lt;br /&gt;
			notify( &#039;先选中整段图片代码再点「调图」，例如 [[File:熊猫.png|300px|center]]&#039; );&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		openImageDialog( context, parsed );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把排版工具条插进 WikiEditor&lt;br /&gt;
	 */&lt;br /&gt;
	function addLayoutTools() {&lt;br /&gt;
		if ( $( &#039;#wikiEditor-ui-toolbar .group-layout&#039; ).length ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		$( &#039;#wpTextbox1&#039; ).wikiEditor( &#039;addToToolbar&#039;, {&lt;br /&gt;
			section: &#039;main&#039;,&lt;br /&gt;
			groups: {&lt;br /&gt;
				layout: {&lt;br /&gt;
					tools: {&lt;br /&gt;
						layoutColor: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;颜色&#039;,&lt;br /&gt;
							list: makeList( COLORS, &#039;颜色&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutSize: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;字号&#039;,&lt;br /&gt;
							list: makeList( SIZES.map( function ( size ) {&lt;br /&gt;
								return { label: size, value: size };&lt;br /&gt;
							} ), &#039;字号&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutAlign: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;对齐&#039;,&lt;br /&gt;
							list: makeList( ALIGN_OPTIONS.filter( function ( option ) {&lt;br /&gt;
								return option.value !== &#039;&#039;;&lt;br /&gt;
							} ), &#039;对齐&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutImage: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;插图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									openImageDialog( context, null );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						},&lt;br /&gt;
						layoutAdjust: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;调图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									adjustImage( context );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 等 WikiEditor 渲染出工具条后再挂工具组&lt;br /&gt;
	 */&lt;br /&gt;
	function bootstrap() {&lt;br /&gt;
		if ( !document.getElementById( &#039;wpTextbox1&#039; ) ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		mw.loader.using( &#039;ext.wikiEditor&#039; ).then( function () {&lt;br /&gt;
			var tries = 0;&lt;br /&gt;
&lt;br /&gt;
			function waitForToolbar() {&lt;br /&gt;
				if ( document.getElementById( &#039;wikiEditor-ui-toolbar&#039; ) ) {&lt;br /&gt;
					addLayoutTools();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				tries += 1;&lt;br /&gt;
				if ( tries &amp;lt;= 30 ) {&lt;br /&gt;
					window.setTimeout( waitForToolbar, 100 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			waitForToolbar();&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$( bootstrap );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=117</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=117"/>
		<updated>2026-10-31T17:56:05Z</updated>

		<summary type="html">&lt;p&gt;Admin：​排版：修复弹窗关闭回调&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/*&lt;br /&gt;
 * 尘月维基 · 排版工具条&lt;br /&gt;
 * 在源代码编辑器（WikiEditor）上增加：颜色 / 字号 / 对齐 / 插图 / 调图&lt;br /&gt;
 * 依赖：ext.wikiEditor、oojs-ui-widgets、oojs-ui-windows&lt;br /&gt;
 */&lt;br /&gt;
( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var COLORS = [&lt;br /&gt;
		{ label: &#039;红&#039;, value: &#039;#d32f2f&#039; },&lt;br /&gt;
		{ label: &#039;橙&#039;, value: &#039;#ef6c00&#039; },&lt;br /&gt;
		{ label: &#039;黄&#039;, value: &#039;#f9a825&#039; },&lt;br /&gt;
		{ label: &#039;绿&#039;, value: &#039;#2e7d32&#039; },&lt;br /&gt;
		{ label: &#039;青&#039;, value: &#039;#00838f&#039; },&lt;br /&gt;
		{ label: &#039;蓝&#039;, value: &#039;#1565c0&#039; },&lt;br /&gt;
		{ label: &#039;紫&#039;, value: &#039;#6b3fa0&#039; },&lt;br /&gt;
		{ label: &#039;粉&#039;, value: &#039;#d81b60&#039; },&lt;br /&gt;
		{ label: &#039;灰&#039;, value: &#039;#666666&#039; },&lt;br /&gt;
		{ label: &#039;黑&#039;, value: &#039;#000000&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var SIZES = [ &#039;80%&#039;, &#039;100%&#039;, &#039;120%&#039;, &#039;150%&#039;, &#039;200%&#039;, &#039;250%&#039; ];&lt;br /&gt;
	var WIDTHS = [ &#039;&#039;, &#039;100&#039;, &#039;150&#039;, &#039;200&#039;, &#039;250&#039;, &#039;300&#039;, &#039;400&#039;, &#039;500&#039;, &#039;600&#039; ];&lt;br /&gt;
	var ALIGN_OPTIONS = [&lt;br /&gt;
		{ label: &#039;默认&#039;, value: &#039;&#039; },&lt;br /&gt;
		{ label: &#039;居中&#039;, value: &#039;center&#039; },&lt;br /&gt;
		{ label: &#039;靠左&#039;, value: &#039;left&#039; },&lt;br /&gt;
		{ label: &#039;靠右&#039;, value: &#039;right&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var ALIGN_MAP = { &#039;居中&#039;: &#039;center&#039;, &#039;居左&#039;: &#039;left&#039;, &#039;居右&#039;: &#039;right&#039;, &#039;无&#039;: &#039;&#039; };&lt;br /&gt;
&lt;br /&gt;
	var FILE_RE = /^\s*\[\[\s*(?:File|Image|文件|图像)\s*:\s*([^|\]]+)((?:\|[^[\]]*)*)\s*\]\]\s*$/i;&lt;br /&gt;
	var ALIGN_RE = /^(?:center|left|right|none|居中|居左|居右|无)$/i;&lt;br /&gt;
&lt;br /&gt;
	var DialogClass = null;&lt;br /&gt;
	var windowManager = null;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 生成&amp;quot;包裹选中文字&amp;quot;的动作，套用站内模板&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} template 模板名&lt;br /&gt;
	 * @param {string} arg 第一个参数（颜色 / 字号 / 对齐方式）&lt;br /&gt;
	 * @return {Object} WikiEditor action&lt;br /&gt;
	 */&lt;br /&gt;
	function wrapAction( template, arg ) {&lt;br /&gt;
		return {&lt;br /&gt;
			type: &#039;encapsulate&#039;,&lt;br /&gt;
			options: {&lt;br /&gt;
				pre: &#039;{{&#039; + template + &#039;|1=&#039; + arg + &#039;|2=&#039;,&lt;br /&gt;
				peri: &#039;&#039;,&lt;br /&gt;
				post: &#039;}}&#039;&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把 [{label, value}] 转成 WikiEditor select 需要的 list&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object[]} items&lt;br /&gt;
	 * @param {string} template&lt;br /&gt;
	 * @return {Object}&lt;br /&gt;
	 */&lt;br /&gt;
	function makeList( items, template ) {&lt;br /&gt;
		var list = {};&lt;br /&gt;
		items.forEach( function ( item, index ) {&lt;br /&gt;
			list[ &#039;opt&#039; + index ] = {&lt;br /&gt;
				label: item.label,&lt;br /&gt;
				action: wrapAction( template, item.value )&lt;br /&gt;
			};&lt;br /&gt;
		} );&lt;br /&gt;
		return list;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 从 [[File:...]] 代码里解析文件名、宽度、位置、说明&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 * @return {Object|null}&lt;br /&gt;
	 */&lt;br /&gt;
	function parseFileLink( text ) {&lt;br /&gt;
		var match = FILE_RE.exec( text || &#039;&#039; );&lt;br /&gt;
		if ( !match ) {&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
		var parsed = { name: match[ 1 ].trim(), width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; };&lt;br /&gt;
		var params = match[ 2 ] ? match[ 2 ].split( &#039;|&#039; ).slice( 1 ) : [];&lt;br /&gt;
		params.forEach( function ( raw ) {&lt;br /&gt;
			var param = raw.trim();&lt;br /&gt;
			if ( !param ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			if ( /^\d+\s*px$/i.test( param ) ) {&lt;br /&gt;
				parsed.width = String( parseInt( param, 10 ) );&lt;br /&gt;
			} else if ( ALIGN_RE.test( param ) ) {&lt;br /&gt;
				parsed.align = Object.prototype.hasOwnProperty.call( ALIGN_MAP, param ) ?&lt;br /&gt;
					ALIGN_MAP[ param ] : param.toLowerCase();&lt;br /&gt;
			} else if ( !parsed.caption ) {&lt;br /&gt;
				parsed.caption = param;&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		return parsed;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 拼出 [[File:名字|宽度px|位置|说明]]&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} data&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function buildFileLink( data ) {&lt;br /&gt;
		var parts = [ &#039;[[File:&#039; + data.name ];&lt;br /&gt;
		if ( data.width ) {&lt;br /&gt;
			parts.push( data.width + &#039;px&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.align ) {&lt;br /&gt;
			parts.push( data.align );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.caption ) {&lt;br /&gt;
			parts.push( data.caption );&lt;br /&gt;
		}&lt;br /&gt;
		return parts.join( &#039;|&#039; ) + &#039;]]&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 上传页地址&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function uploadUrl() {&lt;br /&gt;
		if ( mw.util &amp;amp;&amp;amp; typeof mw.util.getUrl === &#039;function&#039; ) {&lt;br /&gt;
			return mw.util.getUrl( &#039;Special:Upload&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		return &#039;/Special:Upload&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 提示条&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 */&lt;br /&gt;
	function notify( text ) {&lt;br /&gt;
		mw.loader.using( &#039;mediawiki.notification&#039; ).then( function () {&lt;br /&gt;
			mw.notify( text, { type: &#039;warn&#039;, autoHideSeconds: 5 } );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 图片对话框（插入 / 调整共用一个）&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {Function} 对话框类&lt;br /&gt;
	 */&lt;br /&gt;
	function getDialogClass() {&lt;br /&gt;
		if ( DialogClass ) {&lt;br /&gt;
			return DialogClass;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} config&lt;br /&gt;
		 */&lt;br /&gt;
		function ImageDialog( config ) {&lt;br /&gt;
			ImageDialog.super.call( this, config );&lt;br /&gt;
		}&lt;br /&gt;
		OO.inheritClass( ImageDialog, OO.ui.Dialog );&lt;br /&gt;
		ImageDialog.static.name = &#039;chenyue-image&#039;;&lt;br /&gt;
		ImageDialog.static.size = &#039;medium&#039;;&lt;br /&gt;
		ImageDialog.static.title = &#039;图片&#039;;&lt;br /&gt;
		ImageDialog.static.actions = [&lt;br /&gt;
			{ action: &#039;apply&#039;, label: &#039;确定&#039;, flags: [ &#039;primary&#039;, &#039;progressive&#039; ] },&lt;br /&gt;
			{ action: &#039;cancel&#039;, label: &#039;取消&#039;, flags: &#039;safe&#039; }&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} context&lt;br /&gt;
		 * @param {Object} data&lt;br /&gt;
		 * @param {boolean} isNew&lt;br /&gt;
		 * @return {ImageDialog}&lt;br /&gt;
		 */&lt;br /&gt;
		ImageDialog.prototype.setData = function ( context, data, isNew ) {&lt;br /&gt;
			this.context = context;&lt;br /&gt;
			this.data = data;&lt;br /&gt;
			this.isNew = isNew;&lt;br /&gt;
			return this;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.initialize = function () {&lt;br /&gt;
			ImageDialog.super.prototype.initialize.apply( this, arguments );&lt;br /&gt;
&lt;br /&gt;
			var data = this.data;&lt;br /&gt;
			this.title.setLabel( this.isNew ? &#039;插入图片&#039; : &#039;调整图片&#039; );&lt;br /&gt;
&lt;br /&gt;
			this.nameInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.name,&lt;br /&gt;
				placeholder: &#039;图片文件名，例如 熊猫.png&#039;,&lt;br /&gt;
				icon: &#039;image&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.widthInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: WIDTHS.map( function ( width ) {&lt;br /&gt;
					return { data: width, label: width ? width + &#039; 像素宽&#039; : &#039;按原始大小&#039; };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.width || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.alignInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: ALIGN_OPTIONS.map( function ( option ) {&lt;br /&gt;
					return { data: option.value, label: option.label };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.align || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.captionInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.caption,&lt;br /&gt;
				placeholder: &#039;图片说明，可留空&#039;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			var fieldset = new OO.ui.FieldsetLayout();&lt;br /&gt;
			fieldset.addItems( [&lt;br /&gt;
				new OO.ui.FieldLayout( this.nameInput, { label: &#039;文件名&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.widthInput, { label: &#039;大小&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.alignInput, { label: &#039;位置&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.captionInput, { label: &#039;说明&#039;, align: &#039;top&#039; } )&lt;br /&gt;
			] );&lt;br /&gt;
&lt;br /&gt;
			var hint = new OO.ui.HtmlSnippet(&lt;br /&gt;
				&#039;&amp;lt;p class=&amp;quot;chenyue-img-hint&amp;quot;&amp;gt;还没上传？&#039; +&lt;br /&gt;
				&#039;&amp;lt;a href=&amp;quot;&#039; + uploadUrl() + &#039;&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener&amp;quot;&amp;gt;去上传图片 →&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&#039;&lt;br /&gt;
			);&lt;br /&gt;
&lt;br /&gt;
			var panel = new OO.ui.PanelLayout( { padded: true, expanded: false } );&lt;br /&gt;
			panel.$element.append( fieldset.$element, hint.$element );&lt;br /&gt;
			this.$body.append( panel.$element );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getBodyHeight = function () {&lt;br /&gt;
			return 380;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getActionProcess = function ( action ) {&lt;br /&gt;
			var dialog = this;&lt;br /&gt;
&lt;br /&gt;
			if ( action !== &#039;apply&#039; ) {&lt;br /&gt;
				return new OO.ui.Process( function () {&lt;br /&gt;
					dialog.close( { action: action || &#039;cancel&#039; } );&lt;br /&gt;
				} );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return new OO.ui.Process( function () {&lt;br /&gt;
				var name = dialog.nameInput.getValue().trim()&lt;br /&gt;
					.replace( /^(?:File|Image|文件|图像)\s*:\s*/i, &#039;&#039; );&lt;br /&gt;
				if ( !name ) {&lt;br /&gt;
					dialog.nameInput.setValidityFlag( false );&lt;br /&gt;
					dialog.nameInput.focus();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				var text = buildFileLink( {&lt;br /&gt;
					name: name,&lt;br /&gt;
					width: dialog.widthInput.getValue(),&lt;br /&gt;
					align: dialog.alignInput.getValue(),&lt;br /&gt;
					caption: dialog.captionInput.getValue().trim()&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				if ( dialog.isNew ) {&lt;br /&gt;
					dialog.context.$textarea.textSelection( &#039;insertText&#039;, text );&lt;br /&gt;
				} else {&lt;br /&gt;
					dialog.context.$textarea.textSelection( &#039;encapsulateSelection&#039;, {&lt;br /&gt;
						pre: &#039;&#039;, peri: text, post: &#039;&#039;, replace: true&lt;br /&gt;
					} );&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				dialog.close( { action: &#039;apply&#039; } );&lt;br /&gt;
			} );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		DialogClass = ImageDialog;&lt;br /&gt;
		return DialogClass;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 打开图片对话框&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context WikiEditor context&lt;br /&gt;
	 * @param {Object|null} parsed 已有图片信息（调整时传入）&lt;br /&gt;
	 */&lt;br /&gt;
	function openImageDialog( context, parsed ) {&lt;br /&gt;
		var isNew = !parsed;&lt;br /&gt;
		mw.loader.using( [ &#039;oojs-ui-core&#039;, &#039;oojs-ui-widgets&#039;, &#039;oojs-ui-windows&#039; ] ).then( function () {&lt;br /&gt;
			if ( !windowManager ) {&lt;br /&gt;
				windowManager = new OO.ui.WindowManager();&lt;br /&gt;
				$( document.body ).append( windowManager.$element );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var ImageDialog = getDialogClass();&lt;br /&gt;
			var dialog = new ImageDialog();&lt;br /&gt;
			dialog.setData( context, parsed || { name: &#039;&#039;, width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; }, isNew );&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * 窗口关闭后销毁实例，避免堆积&lt;br /&gt;
			 */&lt;br /&gt;
			function cleanup() {&lt;br /&gt;
				windowManager.removeWindows( [ dialog ] );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			windowManager.addWindows( [ dialog ] );&lt;br /&gt;
&lt;br /&gt;
			var opened = windowManager.openWindow( dialog, {} );&lt;br /&gt;
			if ( opened &amp;amp;&amp;amp; typeof opened.then === &#039;function&#039; ) {&lt;br /&gt;
				opened.then( function () {&lt;br /&gt;
					if ( dialog.closed &amp;amp;&amp;amp; typeof dialog.closed.then === &#039;function&#039; ) {&lt;br /&gt;
						dialog.closed.then( cleanup, cleanup );&lt;br /&gt;
					}&lt;br /&gt;
				} );&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 调整选中图片的大小 / 位置&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context&lt;br /&gt;
	 */&lt;br /&gt;
	function adjustImage( context ) {&lt;br /&gt;
		var selection = context.$textarea.textSelection( &#039;getSelection&#039; );&lt;br /&gt;
		var parsed = parseFileLink( selection );&lt;br /&gt;
&lt;br /&gt;
		if ( !parsed ) {&lt;br /&gt;
			notify( &#039;先选中整段图片代码再点「调图」，例如 [[File:熊猫.png|300px|center]]&#039; );&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		openImageDialog( context, parsed );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把排版工具条插进 WikiEditor&lt;br /&gt;
	 */&lt;br /&gt;
	function addLayoutTools() {&lt;br /&gt;
		if ( $( &#039;#wikiEditor-ui-toolbar .group-layout&#039; ).length ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		$( &#039;#wpTextbox1&#039; ).wikiEditor( &#039;addToToolbar&#039;, {&lt;br /&gt;
			section: &#039;main&#039;,&lt;br /&gt;
			groups: {&lt;br /&gt;
				layout: {&lt;br /&gt;
					tools: {&lt;br /&gt;
						layoutColor: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;颜色&#039;,&lt;br /&gt;
							list: makeList( COLORS, &#039;颜色&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutSize: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;字号&#039;,&lt;br /&gt;
							list: makeList( SIZES.map( function ( size ) {&lt;br /&gt;
								return { label: size, value: size };&lt;br /&gt;
							} ), &#039;字号&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutAlign: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;对齐&#039;,&lt;br /&gt;
							list: makeList( ALIGN_OPTIONS.filter( function ( option ) {&lt;br /&gt;
								return option.value !== &#039;&#039;;&lt;br /&gt;
							} ), &#039;对齐&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutImage: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;插图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									openImageDialog( context, null );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						},&lt;br /&gt;
						layoutAdjust: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;调图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									adjustImage( context );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 等 WikiEditor 渲染出工具条后再挂工具组&lt;br /&gt;
	 */&lt;br /&gt;
	function bootstrap() {&lt;br /&gt;
		if ( !document.getElementById( &#039;wpTextbox1&#039; ) ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		mw.loader.using( &#039;ext.wikiEditor&#039; ).then( function () {&lt;br /&gt;
			var tries = 0;&lt;br /&gt;
&lt;br /&gt;
			function waitForToolbar() {&lt;br /&gt;
				if ( document.getElementById( &#039;wikiEditor-ui-toolbar&#039; ) ) {&lt;br /&gt;
					addLayoutTools();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				tries += 1;&lt;br /&gt;
				if ( tries &amp;lt;= 30 ) {&lt;br /&gt;
					window.setTimeout( waitForToolbar, 100 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			waitForToolbar();&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$( bootstrap );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%9B%BD%E9%99%85%E5%B7%A8%E6%98%9F&amp;diff=116</id>
		<title>国际巨星</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%9B%BD%E9%99%85%E5%B7%A8%E6%98%9F&amp;diff=116"/>
		<updated>2026-10-31T17:55:45Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Image.png|thumb]]&lt;br /&gt;
{{字号|1=150%|2=&#039;&#039;&#039;约书亚·康纳·穆恩（1992年12月9日—今），常用网名Null，据悉现居塞尔维亚。美国恶俗论坛奇异果农场的创始人及其所有人、美国史上最臭名昭著的网哲之一、4chan高度活跃用户之一。2015年到2022年在美国英文网从事纵横网络、污染环境、线下杀人的美国恶俗皇帝。同时约书亚手下掌握的奇异果农场曾经试图一度超越4chan、8chan等美国知名恶俗魔怔论坛，试图成为美国最大的暗网论坛。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;从线下枪杀再到线上取乐，一套套完整的迫害流程在奇异果农场多次呈现，同时约书亚与清华帝、袁锴等人一样多次挑唆教唆线下恶劣恐怖事件，导致约书亚这么一位美国恶俗狗导致美国环境多次恶化，他在里面自诩为大统领任何奇异果农场几维鸟们都不被允许忤逆，动辄成为一时的网络乐子。&#039;&#039;&#039;}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=File:Image.png&amp;diff=115</id>
		<title>File:Image.png</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=File:Image.png&amp;diff=115"/>
		<updated>2026-10-31T17:54:56Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;约书亚·康纳·穆恩（1992年12月9日—今），常用网名Null，据悉现居塞尔维亚。美国恶俗论坛奇异果农场的创始人及其所有人、美国史上最臭名昭著的网哲之一、4chan高度活跃用户之一。2015年到2022年在美国英文网从事纵横网络、污染环境、线下杀人的美国恶俗皇帝。同时约书亚手下掌握的奇异果农场曾经试图一度超越4chan、8chan等美国知名恶俗魔怔论坛，试图成为美国最大的暗网论坛。&lt;br /&gt;
&lt;br /&gt;
从线下枪杀再到线上取乐，一套套完整的迫害流程在奇异果农场多次呈现，同时约书亚与清华帝、袁锴等人一样多次挑唆教唆线下恶劣恐怖事件，导致约书亚这么一位美国恶俗狗导致美国环境多次恶化，他在里面自诩为大统领任何奇异果农场几维鸟们都不被允许忤逆，动辄成为一时的网络乐子。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E6%B2%99%E7%9B%92&amp;diff=114</id>
		<title>沙盒</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E6%B2%99%E7%9B%92&amp;diff=114"/>
		<updated>2026-10-31T17:53:32Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建测试沙盒&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;沙盒页面，随便改。测试文字：这是一段用来测试排版的文字。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=113</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=113"/>
		<updated>2026-10-31T17:53:31Z</updated>

		<summary type="html">&lt;p&gt;Admin：​恢复：撤销自动化测试误写入的内容&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to &#039;&#039;&#039;CHENYUE&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;[[伪恶俗狗]]们看到本站的内容是否虎躯一震？鉴赏你们的装逼行为，请！&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
====== chenyue.wiki是尘月维基的官方域名 同时 为防止各位雅士找不到本站无法鉴赏伪恶俗蛆 ，请记住！尘 月 wiki ======&lt;br /&gt;
&lt;br /&gt;
=== 本站没有任何QQ群组或官方人员，想冒充的伪恶俗小鬼们！洗洗睡吧！！！！！ ===&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E4%B8%87%E6%81%B6%E4%B9%8B%E6%BA%90&amp;diff=112</id>
		<title>万恶之源</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E4%B8%87%E6%81%B6%E4%B9%8B%E6%BA%90&amp;diff=112"/>
		<updated>2026-10-31T17:52:47Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:神人四人组.png|thumb]]&lt;br /&gt;
{{字号|1=150%|2=&#039;&#039;&#039;{{颜色|1=#d32f2f|2=姜常硕}}（2008年7月2日－，常用ID：洛川）&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;孙旭亮（2009年12月17日－，常用ID：乐大师）&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;秦浩然（2008年7月30日－，常用ID：古怪地觉）&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;蔡振辉（2010年10月15日－，常用ID：C盘酱）&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025年乃至2026年互联网反华黑社会性质团体网站东宁网联的四名首要成员，其涉及寻衅滋事罪、侵犯公民个人信息罪、间谍罪、煽动颠覆国家政权罪等等。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;自东宁网联重组以来联合八代恶俗维基对众多无辜人士进行迫害，主要行为便是出道炒作牢A、恶意炒作李炳谦、迫害周宇辰、将UT圈恶俗化、恶意出道国家领导人信息，周宇辰事件更是惊动了深圳市政府。其逍遥法外时期还与间谍组织恶俗维基合作反华。期间并且试图开设红岸基金会、支纳维基未遂。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;在2026年10月28号姜常硕因寻衅滋事被当地公安逮捕，在被十几名受害者指认犯罪后姜常硕现被关押在看守所内，因行为恶劣在初步判定结果后，姜常硕被判定为主犯，吉林公安已联系近半年内惨遭姜常硕人肉网暴的受害者，其因姜常硕的种种原因可能会判处三年以上五年以下的有期徒刑。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;鉴于这四位神触对我国互联网造出极大恶劣影响，并且在近日成功地勾引吉林省公安厅将自己送入大牢，特此本站送四位神触光荣入站万恶之源。可喜可贺的是，目前除疯狂推卸责任的孙旭亮之外其余人员皆被吉林省公安、国安干警采取强制措施并计划成立联合专案组进行侦办。&#039;&#039;&#039;}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=111</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=111"/>
		<updated>2026-10-31T17:51:11Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{字号|1=250%|2=&amp;lt;big&amp;gt;Welcome to &#039;&#039;&#039;CHENYUE&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;[[伪恶俗狗]]们看到本站的内容是否虎躯一震？鉴赏你们的装逼行为，请！&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;chenyue.wiki是尘月维基的官方域名 同时 为防止各位雅士找不到本站无法鉴赏伪恶俗蛆 ，请记住！尘 月 wiki&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;本站没有任何QQ群组或官方人员，想冒充的伪恶俗小鬼们！洗洗睡吧！！！！！}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=110</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=110"/>
		<updated>2026-10-31T17:50:10Z</updated>

		<summary type="html">&lt;p&gt;Admin：​排版：取消按钮处理&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/*&lt;br /&gt;
 * 尘月维基 · 排版工具条&lt;br /&gt;
 * 在源代码编辑器（WikiEditor）上增加：颜色 / 字号 / 对齐 / 插图 / 调图&lt;br /&gt;
 * 依赖：ext.wikiEditor、oojs-ui-widgets、oojs-ui-windows&lt;br /&gt;
 */&lt;br /&gt;
( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var COLORS = [&lt;br /&gt;
		{ label: &#039;红&#039;, value: &#039;#d32f2f&#039; },&lt;br /&gt;
		{ label: &#039;橙&#039;, value: &#039;#ef6c00&#039; },&lt;br /&gt;
		{ label: &#039;黄&#039;, value: &#039;#f9a825&#039; },&lt;br /&gt;
		{ label: &#039;绿&#039;, value: &#039;#2e7d32&#039; },&lt;br /&gt;
		{ label: &#039;青&#039;, value: &#039;#00838f&#039; },&lt;br /&gt;
		{ label: &#039;蓝&#039;, value: &#039;#1565c0&#039; },&lt;br /&gt;
		{ label: &#039;紫&#039;, value: &#039;#6b3fa0&#039; },&lt;br /&gt;
		{ label: &#039;粉&#039;, value: &#039;#d81b60&#039; },&lt;br /&gt;
		{ label: &#039;灰&#039;, value: &#039;#666666&#039; },&lt;br /&gt;
		{ label: &#039;黑&#039;, value: &#039;#000000&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var SIZES = [ &#039;80%&#039;, &#039;100%&#039;, &#039;120%&#039;, &#039;150%&#039;, &#039;200%&#039;, &#039;250%&#039; ];&lt;br /&gt;
	var WIDTHS = [ &#039;&#039;, &#039;100&#039;, &#039;150&#039;, &#039;200&#039;, &#039;250&#039;, &#039;300&#039;, &#039;400&#039;, &#039;500&#039;, &#039;600&#039; ];&lt;br /&gt;
	var ALIGN_OPTIONS = [&lt;br /&gt;
		{ label: &#039;默认&#039;, value: &#039;&#039; },&lt;br /&gt;
		{ label: &#039;居中&#039;, value: &#039;center&#039; },&lt;br /&gt;
		{ label: &#039;靠左&#039;, value: &#039;left&#039; },&lt;br /&gt;
		{ label: &#039;靠右&#039;, value: &#039;right&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var ALIGN_MAP = { &#039;居中&#039;: &#039;center&#039;, &#039;居左&#039;: &#039;left&#039;, &#039;居右&#039;: &#039;right&#039;, &#039;无&#039;: &#039;&#039; };&lt;br /&gt;
&lt;br /&gt;
	var FILE_RE = /^\s*\[\[\s*(?:File|Image|文件|图像)\s*:\s*([^|\]]+)((?:\|[^[\]]*)*)\s*\]\]\s*$/i;&lt;br /&gt;
	var ALIGN_RE = /^(?:center|left|right|none|居中|居左|居右|无)$/i;&lt;br /&gt;
&lt;br /&gt;
	var DialogClass = null;&lt;br /&gt;
	var windowManager = null;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 生成&amp;quot;包裹选中文字&amp;quot;的动作，套用站内模板&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} template 模板名&lt;br /&gt;
	 * @param {string} arg 第一个参数（颜色 / 字号 / 对齐方式）&lt;br /&gt;
	 * @return {Object} WikiEditor action&lt;br /&gt;
	 */&lt;br /&gt;
	function wrapAction( template, arg ) {&lt;br /&gt;
		return {&lt;br /&gt;
			type: &#039;encapsulate&#039;,&lt;br /&gt;
			options: {&lt;br /&gt;
				pre: &#039;{{&#039; + template + &#039;|1=&#039; + arg + &#039;|2=&#039;,&lt;br /&gt;
				peri: &#039;&#039;,&lt;br /&gt;
				post: &#039;}}&#039;&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把 [{label, value}] 转成 WikiEditor select 需要的 list&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object[]} items&lt;br /&gt;
	 * @param {string} template&lt;br /&gt;
	 * @return {Object}&lt;br /&gt;
	 */&lt;br /&gt;
	function makeList( items, template ) {&lt;br /&gt;
		var list = {};&lt;br /&gt;
		items.forEach( function ( item, index ) {&lt;br /&gt;
			list[ &#039;opt&#039; + index ] = {&lt;br /&gt;
				label: item.label,&lt;br /&gt;
				action: wrapAction( template, item.value )&lt;br /&gt;
			};&lt;br /&gt;
		} );&lt;br /&gt;
		return list;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 从 [[File:...]] 代码里解析文件名、宽度、位置、说明&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 * @return {Object|null}&lt;br /&gt;
	 */&lt;br /&gt;
	function parseFileLink( text ) {&lt;br /&gt;
		var match = FILE_RE.exec( text || &#039;&#039; );&lt;br /&gt;
		if ( !match ) {&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
		var parsed = { name: match[ 1 ].trim(), width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; };&lt;br /&gt;
		var params = match[ 2 ] ? match[ 2 ].split( &#039;|&#039; ).slice( 1 ) : [];&lt;br /&gt;
		params.forEach( function ( raw ) {&lt;br /&gt;
			var param = raw.trim();&lt;br /&gt;
			if ( !param ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			if ( /^\d+\s*px$/i.test( param ) ) {&lt;br /&gt;
				parsed.width = String( parseInt( param, 10 ) );&lt;br /&gt;
			} else if ( ALIGN_RE.test( param ) ) {&lt;br /&gt;
				parsed.align = Object.prototype.hasOwnProperty.call( ALIGN_MAP, param ) ?&lt;br /&gt;
					ALIGN_MAP[ param ] : param.toLowerCase();&lt;br /&gt;
			} else if ( !parsed.caption ) {&lt;br /&gt;
				parsed.caption = param;&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		return parsed;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 拼出 [[File:名字|宽度px|位置|说明]]&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} data&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function buildFileLink( data ) {&lt;br /&gt;
		var parts = [ &#039;[[File:&#039; + data.name ];&lt;br /&gt;
		if ( data.width ) {&lt;br /&gt;
			parts.push( data.width + &#039;px&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.align ) {&lt;br /&gt;
			parts.push( data.align );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.caption ) {&lt;br /&gt;
			parts.push( data.caption );&lt;br /&gt;
		}&lt;br /&gt;
		return parts.join( &#039;|&#039; ) + &#039;]]&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 上传页地址&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function uploadUrl() {&lt;br /&gt;
		if ( mw.util &amp;amp;&amp;amp; typeof mw.util.getUrl === &#039;function&#039; ) {&lt;br /&gt;
			return mw.util.getUrl( &#039;Special:Upload&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		return &#039;/Special:Upload&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 提示条&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 */&lt;br /&gt;
	function notify( text ) {&lt;br /&gt;
		mw.loader.using( &#039;mediawiki.notification&#039; ).then( function () {&lt;br /&gt;
			mw.notify( text, { type: &#039;warn&#039;, autoHideSeconds: 5 } );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 图片对话框（插入 / 调整共用一个）&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {Function} 对话框类&lt;br /&gt;
	 */&lt;br /&gt;
	function getDialogClass() {&lt;br /&gt;
		if ( DialogClass ) {&lt;br /&gt;
			return DialogClass;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} config&lt;br /&gt;
		 */&lt;br /&gt;
		function ImageDialog( config ) {&lt;br /&gt;
			ImageDialog.super.call( this, config );&lt;br /&gt;
		}&lt;br /&gt;
		OO.inheritClass( ImageDialog, OO.ui.Dialog );&lt;br /&gt;
		ImageDialog.static.name = &#039;chenyue-image&#039;;&lt;br /&gt;
		ImageDialog.static.size = &#039;medium&#039;;&lt;br /&gt;
		ImageDialog.static.title = &#039;图片&#039;;&lt;br /&gt;
		ImageDialog.static.actions = [&lt;br /&gt;
			{ action: &#039;apply&#039;, label: &#039;确定&#039;, flags: [ &#039;primary&#039;, &#039;progressive&#039; ] },&lt;br /&gt;
			{ action: &#039;cancel&#039;, label: &#039;取消&#039;, flags: &#039;safe&#039; }&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} context&lt;br /&gt;
		 * @param {Object} data&lt;br /&gt;
		 * @param {boolean} isNew&lt;br /&gt;
		 * @return {ImageDialog}&lt;br /&gt;
		 */&lt;br /&gt;
		ImageDialog.prototype.setData = function ( context, data, isNew ) {&lt;br /&gt;
			this.context = context;&lt;br /&gt;
			this.data = data;&lt;br /&gt;
			this.isNew = isNew;&lt;br /&gt;
			return this;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.initialize = function () {&lt;br /&gt;
			ImageDialog.super.prototype.initialize.apply( this, arguments );&lt;br /&gt;
&lt;br /&gt;
			var data = this.data;&lt;br /&gt;
			this.title.setLabel( this.isNew ? &#039;插入图片&#039; : &#039;调整图片&#039; );&lt;br /&gt;
&lt;br /&gt;
			this.nameInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.name,&lt;br /&gt;
				placeholder: &#039;图片文件名，例如 熊猫.png&#039;,&lt;br /&gt;
				icon: &#039;image&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.widthInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: WIDTHS.map( function ( width ) {&lt;br /&gt;
					return { data: width, label: width ? width + &#039; 像素宽&#039; : &#039;按原始大小&#039; };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.width || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.alignInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: ALIGN_OPTIONS.map( function ( option ) {&lt;br /&gt;
					return { data: option.value, label: option.label };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.align || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.captionInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.caption,&lt;br /&gt;
				placeholder: &#039;图片说明，可留空&#039;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			var fieldset = new OO.ui.FieldsetLayout();&lt;br /&gt;
			fieldset.addItems( [&lt;br /&gt;
				new OO.ui.FieldLayout( this.nameInput, { label: &#039;文件名&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.widthInput, { label: &#039;大小&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.alignInput, { label: &#039;位置&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.captionInput, { label: &#039;说明&#039;, align: &#039;top&#039; } )&lt;br /&gt;
			] );&lt;br /&gt;
&lt;br /&gt;
			var hint = new OO.ui.HtmlSnippet(&lt;br /&gt;
				&#039;&amp;lt;p class=&amp;quot;chenyue-img-hint&amp;quot;&amp;gt;还没上传？&#039; +&lt;br /&gt;
				&#039;&amp;lt;a href=&amp;quot;&#039; + uploadUrl() + &#039;&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener&amp;quot;&amp;gt;去上传图片 →&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&#039;&lt;br /&gt;
			);&lt;br /&gt;
&lt;br /&gt;
			var panel = new OO.ui.PanelLayout( { padded: true, expanded: false } );&lt;br /&gt;
			panel.$element.append( fieldset.$element, hint.$element );&lt;br /&gt;
			this.$body.append( panel.$element );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getBodyHeight = function () {&lt;br /&gt;
			return 380;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getActionProcess = function ( action ) {&lt;br /&gt;
			var dialog = this;&lt;br /&gt;
&lt;br /&gt;
			if ( action !== &#039;apply&#039; ) {&lt;br /&gt;
				return new OO.ui.Process( function () {&lt;br /&gt;
					dialog.close( { action: action || &#039;cancel&#039; } );&lt;br /&gt;
				} );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return new OO.ui.Process( function () {&lt;br /&gt;
				var name = dialog.nameInput.getValue().trim()&lt;br /&gt;
					.replace( /^(?:File|Image|文件|图像)\s*:\s*/i, &#039;&#039; );&lt;br /&gt;
				if ( !name ) {&lt;br /&gt;
					dialog.nameInput.setValidityFlag( false );&lt;br /&gt;
					dialog.nameInput.focus();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				var text = buildFileLink( {&lt;br /&gt;
					name: name,&lt;br /&gt;
					width: dialog.widthInput.getValue(),&lt;br /&gt;
					align: dialog.alignInput.getValue(),&lt;br /&gt;
					caption: dialog.captionInput.getValue().trim()&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				if ( dialog.isNew ) {&lt;br /&gt;
					dialog.context.$textarea.textSelection( &#039;insertText&#039;, text );&lt;br /&gt;
				} else {&lt;br /&gt;
					dialog.context.$textarea.textSelection( &#039;encapsulateSelection&#039;, {&lt;br /&gt;
						pre: &#039;&#039;, peri: text, post: &#039;&#039;, replace: true&lt;br /&gt;
					} );&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				dialog.close( { action: &#039;apply&#039; } );&lt;br /&gt;
			} );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		DialogClass = ImageDialog;&lt;br /&gt;
		return DialogClass;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 打开图片对话框&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context WikiEditor context&lt;br /&gt;
	 * @param {Object|null} parsed 已有图片信息（调整时传入）&lt;br /&gt;
	 */&lt;br /&gt;
	function openImageDialog( context, parsed ) {&lt;br /&gt;
		var isNew = !parsed;&lt;br /&gt;
		mw.loader.using( [ &#039;oojs-ui-core&#039;, &#039;oojs-ui-widgets&#039;, &#039;oojs-ui-windows&#039; ] ).then( function () {&lt;br /&gt;
			if ( !windowManager ) {&lt;br /&gt;
				windowManager = new OO.ui.WindowManager();&lt;br /&gt;
				$( document.body ).append( windowManager.$element );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var ImageDialog = getDialogClass();&lt;br /&gt;
			var dialog = new ImageDialog();&lt;br /&gt;
			dialog.setData( context, parsed || { name: &#039;&#039;, width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; }, isNew );&lt;br /&gt;
&lt;br /&gt;
			windowManager.addWindows( [ dialog ] );&lt;br /&gt;
			windowManager.openWindow( dialog, {} );&lt;br /&gt;
&lt;br /&gt;
			dialog.closed.then( function () {&lt;br /&gt;
				windowManager.removeWindows( [ dialog ] );&lt;br /&gt;
			} );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 调整选中图片的大小 / 位置&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context&lt;br /&gt;
	 */&lt;br /&gt;
	function adjustImage( context ) {&lt;br /&gt;
		var selection = context.$textarea.textSelection( &#039;getSelection&#039; );&lt;br /&gt;
		var parsed = parseFileLink( selection );&lt;br /&gt;
&lt;br /&gt;
		if ( !parsed ) {&lt;br /&gt;
			notify( &#039;先选中整段图片代码再点「调图」，例如 [[File:熊猫.png|300px|center]]&#039; );&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		openImageDialog( context, parsed );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把排版工具条插进 WikiEditor&lt;br /&gt;
	 */&lt;br /&gt;
	function addLayoutTools() {&lt;br /&gt;
		if ( $( &#039;#wikiEditor-ui-toolbar .group-layout&#039; ).length ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		$( &#039;#wpTextbox1&#039; ).wikiEditor( &#039;addToToolbar&#039;, {&lt;br /&gt;
			section: &#039;main&#039;,&lt;br /&gt;
			groups: {&lt;br /&gt;
				layout: {&lt;br /&gt;
					tools: {&lt;br /&gt;
						layoutColor: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;颜色&#039;,&lt;br /&gt;
							list: makeList( COLORS, &#039;颜色&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutSize: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;字号&#039;,&lt;br /&gt;
							list: makeList( SIZES.map( function ( size ) {&lt;br /&gt;
								return { label: size, value: size };&lt;br /&gt;
							} ), &#039;字号&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutAlign: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;对齐&#039;,&lt;br /&gt;
							list: makeList( ALIGN_OPTIONS.filter( function ( option ) {&lt;br /&gt;
								return option.value !== &#039;&#039;;&lt;br /&gt;
							} ), &#039;对齐&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutImage: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;插图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									openImageDialog( context, null );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						},&lt;br /&gt;
						layoutAdjust: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;调图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									adjustImage( context );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 等 WikiEditor 渲染出工具条后再挂工具组&lt;br /&gt;
	 */&lt;br /&gt;
	function bootstrap() {&lt;br /&gt;
		if ( !document.getElementById( &#039;wpTextbox1&#039; ) ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		mw.loader.using( &#039;ext.wikiEditor&#039; ).then( function () {&lt;br /&gt;
			var tries = 0;&lt;br /&gt;
&lt;br /&gt;
			function waitForToolbar() {&lt;br /&gt;
				if ( document.getElementById( &#039;wikiEditor-ui-toolbar&#039; ) ) {&lt;br /&gt;
					addLayoutTools();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				tries += 1;&lt;br /&gt;
				if ( tries &amp;lt;= 30 ) {&lt;br /&gt;
					window.setTimeout( waitForToolbar, 100 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			waitForToolbar();&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$( bootstrap );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=109</id>
		<title>公告</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E5%85%AC%E5%91%8A&amp;diff=109"/>
		<updated>2026-10-31T17:49:58Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;Welcome to &#039;&#039;&#039;CHENYUE&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;big&amp;gt;[[伪恶俗狗]]们看到本站的内容是否虎躯一震？鉴赏你们的装逼行为，请！&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;chenyue.wiki是尘月维基的官方域名 同时 为防止各位雅士找不到本站无法鉴赏伪恶俗蛆 ，请记住！尘 月 wiki&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;本站没有任何QQ群组或官方人员，想冒充的伪恶俗小鬼们！洗洗睡吧！！！！！&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=MediaWiki:Visualeditor-ca-editsource&amp;diff=108</id>
		<title>MediaWiki:Visualeditor-ca-editsource</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=MediaWiki:Visualeditor-ca-editsource&amp;diff=108"/>
		<updated>2026-10-31T17:49:42Z</updated>

		<summary type="html">&lt;p&gt;Admin：​源码编辑标签改为排版编辑&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;排版编辑&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E4%B8%87%E6%81%B6%E4%B9%8B%E6%BA%90&amp;diff=107</id>
		<title>万恶之源</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E4%B8%87%E6%81%B6%E4%B9%8B%E6%BA%90&amp;diff=107"/>
		<updated>2026-10-31T17:49:08Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;姜常硕（2008年7月2日－，常用ID：洛川）&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;孙旭亮（2009年12月17日－，常用ID：乐大师）&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;秦浩然（2008年7月30日－，常用ID：古怪地觉）&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;蔡振辉（2010年10月15日－，常用ID：C盘酱）&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;2025年乃至2026年互联网反华黑社会性质团体网站东宁网联的四名首要成员，其涉及寻衅滋事罪、侵犯公民个人信息罪、间谍罪、煽动颠覆国家政权罪等等。&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;自东宁网联重组以来联合八代恶俗维基对众多无辜人士进行迫害，主要行为便是出道炒作牢A、恶意炒作李炳谦、迫害周宇辰、将UT圈恶俗化、恶意出道国家领导人信息，周宇辰事件更是惊动了深圳市政府。其逍遥法外时期还与间谍组织恶俗维基合作反华。期间并且试图开设红岸基金会、支纳维基未遂。&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;在2026年10月28号姜常硕因寻衅滋事被当地公安逮捕，在被十几名受害者指认犯罪后姜常硕现被关押在看守所内，因行为恶劣在初步判定结果后，姜常硕被判定为主犯，吉林公安已联系近半年内惨遭姜常硕人肉网暴的受害者，其因姜常硕的种种原因可能会判处三年以上五年以下的有期徒刑。&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;鉴于这四位神触对我国互联网造出极大恶劣影响，并且在近日成功地勾引吉林省公安厅将自己送入大牢，特此本站送四位神触光荣入站万恶之源。可喜可贺的是，目前除疯狂推卸责任的孙旭亮之外其余人员皆被吉林省公安、国安干警采取强制措施并计划成立联合专案组进行侦办。&#039;&#039;&#039; =====&lt;br /&gt;
[[File:神人四人组.png|thumb]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=105</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=MediaWiki:Common.js&amp;diff=105"/>
		<updated>2026-10-31T17:48:05Z</updated>

		<summary type="html">&lt;p&gt;Admin：​排版：颜色/字号/对齐/插图/调图 工具条&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/*&lt;br /&gt;
 * 尘月维基 · 排版工具条&lt;br /&gt;
 * 在源代码编辑器（WikiEditor）上增加：颜色 / 字号 / 对齐 / 插图 / 调图&lt;br /&gt;
 * 依赖：ext.wikiEditor、oojs-ui-widgets、oojs-ui-windows&lt;br /&gt;
 */&lt;br /&gt;
( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var COLORS = [&lt;br /&gt;
		{ label: &#039;红&#039;, value: &#039;#d32f2f&#039; },&lt;br /&gt;
		{ label: &#039;橙&#039;, value: &#039;#ef6c00&#039; },&lt;br /&gt;
		{ label: &#039;黄&#039;, value: &#039;#f9a825&#039; },&lt;br /&gt;
		{ label: &#039;绿&#039;, value: &#039;#2e7d32&#039; },&lt;br /&gt;
		{ label: &#039;青&#039;, value: &#039;#00838f&#039; },&lt;br /&gt;
		{ label: &#039;蓝&#039;, value: &#039;#1565c0&#039; },&lt;br /&gt;
		{ label: &#039;紫&#039;, value: &#039;#6b3fa0&#039; },&lt;br /&gt;
		{ label: &#039;粉&#039;, value: &#039;#d81b60&#039; },&lt;br /&gt;
		{ label: &#039;灰&#039;, value: &#039;#666666&#039; },&lt;br /&gt;
		{ label: &#039;黑&#039;, value: &#039;#000000&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var SIZES = [ &#039;80%&#039;, &#039;100%&#039;, &#039;120%&#039;, &#039;150%&#039;, &#039;200%&#039;, &#039;250%&#039; ];&lt;br /&gt;
	var WIDTHS = [ &#039;&#039;, &#039;100&#039;, &#039;150&#039;, &#039;200&#039;, &#039;250&#039;, &#039;300&#039;, &#039;400&#039;, &#039;500&#039;, &#039;600&#039; ];&lt;br /&gt;
	var ALIGN_OPTIONS = [&lt;br /&gt;
		{ label: &#039;默认&#039;, value: &#039;&#039; },&lt;br /&gt;
		{ label: &#039;居中&#039;, value: &#039;center&#039; },&lt;br /&gt;
		{ label: &#039;靠左&#039;, value: &#039;left&#039; },&lt;br /&gt;
		{ label: &#039;靠右&#039;, value: &#039;right&#039; }&lt;br /&gt;
	];&lt;br /&gt;
	var ALIGN_MAP = { &#039;居中&#039;: &#039;center&#039;, &#039;居左&#039;: &#039;left&#039;, &#039;居右&#039;: &#039;right&#039;, &#039;无&#039;: &#039;&#039; };&lt;br /&gt;
&lt;br /&gt;
	var FILE_RE = /^\s*\[\[\s*(?:File|Image|文件|图像)\s*:\s*([^|\]]+)((?:\|[^[\]]*)*)\s*\]\]\s*$/i;&lt;br /&gt;
	var ALIGN_RE = /^(?:center|left|right|none|居中|居左|居右|无)$/i;&lt;br /&gt;
&lt;br /&gt;
	var DialogClass = null;&lt;br /&gt;
	var windowManager = null;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 生成&amp;quot;包裹选中文字&amp;quot;的动作，套用站内模板&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} template 模板名&lt;br /&gt;
	 * @param {string} arg 第一个参数（颜色 / 字号 / 对齐方式）&lt;br /&gt;
	 * @return {Object} WikiEditor action&lt;br /&gt;
	 */&lt;br /&gt;
	function wrapAction( template, arg ) {&lt;br /&gt;
		return {&lt;br /&gt;
			type: &#039;encapsulate&#039;,&lt;br /&gt;
			options: {&lt;br /&gt;
				pre: &#039;{{&#039; + template + &#039;|1=&#039; + arg + &#039;|2=&#039;,&lt;br /&gt;
				peri: &#039;&#039;,&lt;br /&gt;
				post: &#039;}}&#039;&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把 [{label, value}] 转成 WikiEditor select 需要的 list&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object[]} items&lt;br /&gt;
	 * @param {string} template&lt;br /&gt;
	 * @return {Object}&lt;br /&gt;
	 */&lt;br /&gt;
	function makeList( items, template ) {&lt;br /&gt;
		var list = {};&lt;br /&gt;
		items.forEach( function ( item, index ) {&lt;br /&gt;
			list[ &#039;opt&#039; + index ] = {&lt;br /&gt;
				label: item.label,&lt;br /&gt;
				action: wrapAction( template, item.value )&lt;br /&gt;
			};&lt;br /&gt;
		} );&lt;br /&gt;
		return list;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 从 [[File:...]] 代码里解析文件名、宽度、位置、说明&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 * @return {Object|null}&lt;br /&gt;
	 */&lt;br /&gt;
	function parseFileLink( text ) {&lt;br /&gt;
		var match = FILE_RE.exec( text || &#039;&#039; );&lt;br /&gt;
		if ( !match ) {&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
		var parsed = { name: match[ 1 ].trim(), width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; };&lt;br /&gt;
		var params = match[ 2 ] ? match[ 2 ].split( &#039;|&#039; ).slice( 1 ) : [];&lt;br /&gt;
		params.forEach( function ( raw ) {&lt;br /&gt;
			var param = raw.trim();&lt;br /&gt;
			if ( !param ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			if ( /^\d+\s*px$/i.test( param ) ) {&lt;br /&gt;
				parsed.width = String( parseInt( param, 10 ) );&lt;br /&gt;
			} else if ( ALIGN_RE.test( param ) ) {&lt;br /&gt;
				parsed.align = Object.prototype.hasOwnProperty.call( ALIGN_MAP, param ) ?&lt;br /&gt;
					ALIGN_MAP[ param ] : param.toLowerCase();&lt;br /&gt;
			} else if ( !parsed.caption ) {&lt;br /&gt;
				parsed.caption = param;&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		return parsed;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 拼出 [[File:名字|宽度px|位置|说明]]&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} data&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function buildFileLink( data ) {&lt;br /&gt;
		var parts = [ &#039;[[File:&#039; + data.name ];&lt;br /&gt;
		if ( data.width ) {&lt;br /&gt;
			parts.push( data.width + &#039;px&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.align ) {&lt;br /&gt;
			parts.push( data.align );&lt;br /&gt;
		}&lt;br /&gt;
		if ( data.caption ) {&lt;br /&gt;
			parts.push( data.caption );&lt;br /&gt;
		}&lt;br /&gt;
		return parts.join( &#039;|&#039; ) + &#039;]]&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 上传页地址&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function uploadUrl() {&lt;br /&gt;
		if ( mw.util &amp;amp;&amp;amp; typeof mw.util.getUrl === &#039;function&#039; ) {&lt;br /&gt;
			return mw.util.getUrl( &#039;Special:Upload&#039; );&lt;br /&gt;
		}&lt;br /&gt;
		return &#039;/Special:Upload&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 提示条&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {string} text&lt;br /&gt;
	 */&lt;br /&gt;
	function notify( text ) {&lt;br /&gt;
		mw.loader.using( &#039;mediawiki.notification&#039; ).then( function () {&lt;br /&gt;
			mw.notify( text, { type: &#039;warn&#039;, autoHideSeconds: 5 } );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 图片对话框（插入 / 调整共用一个）&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return {Function} 对话框类&lt;br /&gt;
	 */&lt;br /&gt;
	function getDialogClass() {&lt;br /&gt;
		if ( DialogClass ) {&lt;br /&gt;
			return DialogClass;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} config&lt;br /&gt;
		 */&lt;br /&gt;
		function ImageDialog( config ) {&lt;br /&gt;
			ImageDialog.super.call( this, config );&lt;br /&gt;
		}&lt;br /&gt;
		OO.inheritClass( ImageDialog, OO.ui.Dialog );&lt;br /&gt;
		ImageDialog.static.name = &#039;chenyue-image&#039;;&lt;br /&gt;
		ImageDialog.static.size = &#039;medium&#039;;&lt;br /&gt;
		ImageDialog.static.title = &#039;图片&#039;;&lt;br /&gt;
		ImageDialog.static.actions = [&lt;br /&gt;
			{ action: &#039;apply&#039;, label: &#039;确定&#039;, flags: [ &#039;primary&#039;, &#039;progressive&#039; ] },&lt;br /&gt;
			{ label: &#039;取消&#039;, flags: &#039;safe&#039; }&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {Object} context&lt;br /&gt;
		 * @param {Object} data&lt;br /&gt;
		 * @param {boolean} isNew&lt;br /&gt;
		 * @return {ImageDialog}&lt;br /&gt;
		 */&lt;br /&gt;
		ImageDialog.prototype.setData = function ( context, data, isNew ) {&lt;br /&gt;
			this.context = context;&lt;br /&gt;
			this.data = data;&lt;br /&gt;
			this.isNew = isNew;&lt;br /&gt;
			return this;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.initialize = function () {&lt;br /&gt;
			ImageDialog.super.prototype.initialize.apply( this, arguments );&lt;br /&gt;
&lt;br /&gt;
			var data = this.data;&lt;br /&gt;
			this.title.setLabel( this.isNew ? &#039;插入图片&#039; : &#039;调整图片&#039; );&lt;br /&gt;
&lt;br /&gt;
			this.nameInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.name,&lt;br /&gt;
				placeholder: &#039;图片文件名，例如 熊猫.png&#039;,&lt;br /&gt;
				icon: &#039;image&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.widthInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: WIDTHS.map( function ( width ) {&lt;br /&gt;
					return { data: width, label: width ? width + &#039; 像素宽&#039; : &#039;按原始大小&#039; };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.width || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.alignInput = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
				options: ALIGN_OPTIONS.map( function ( option ) {&lt;br /&gt;
					return { data: option.value, label: option.label };&lt;br /&gt;
				} ),&lt;br /&gt;
				value: data.align || &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
			this.captionInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
				value: data.caption,&lt;br /&gt;
				placeholder: &#039;图片说明，可留空&#039;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			var fieldset = new OO.ui.FieldsetLayout();&lt;br /&gt;
			fieldset.addItems( [&lt;br /&gt;
				new OO.ui.FieldLayout( this.nameInput, { label: &#039;文件名&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.widthInput, { label: &#039;大小&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.alignInput, { label: &#039;位置&#039;, align: &#039;top&#039; } ),&lt;br /&gt;
				new OO.ui.FieldLayout( this.captionInput, { label: &#039;说明&#039;, align: &#039;top&#039; } )&lt;br /&gt;
			] );&lt;br /&gt;
&lt;br /&gt;
			var hint = new OO.ui.HtmlSnippet(&lt;br /&gt;
				&#039;&amp;lt;p class=&amp;quot;chenyue-img-hint&amp;quot;&amp;gt;还没上传？&#039; +&lt;br /&gt;
				&#039;&amp;lt;a href=&amp;quot;&#039; + uploadUrl() + &#039;&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener&amp;quot;&amp;gt;去上传图片 →&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&#039;&lt;br /&gt;
			);&lt;br /&gt;
&lt;br /&gt;
			var panel = new OO.ui.PanelLayout( { padded: true, expanded: false } );&lt;br /&gt;
			panel.$element.append( fieldset.$element, hint.$element );&lt;br /&gt;
			this.$body.append( panel.$element );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getBodyHeight = function () {&lt;br /&gt;
			return 380;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		ImageDialog.prototype.getActionProcess = function ( action ) {&lt;br /&gt;
			var dialog = this;&lt;br /&gt;
&lt;br /&gt;
			if ( action !== &#039;apply&#039; ) {&lt;br /&gt;
				return ImageDialog.super.prototype.getActionProcess.call( this, action );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return new OO.ui.Process( function () {&lt;br /&gt;
				var name = dialog.nameInput.getValue().trim()&lt;br /&gt;
					.replace( /^(?:File|Image|文件|图像)\s*:\s*/i, &#039;&#039; );&lt;br /&gt;
				if ( !name ) {&lt;br /&gt;
					dialog.nameInput.setValidityFlag( false );&lt;br /&gt;
					dialog.nameInput.focus();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				var text = buildFileLink( {&lt;br /&gt;
					name: name,&lt;br /&gt;
					width: dialog.widthInput.getValue(),&lt;br /&gt;
					align: dialog.alignInput.getValue(),&lt;br /&gt;
					caption: dialog.captionInput.getValue().trim()&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				if ( dialog.isNew ) {&lt;br /&gt;
					dialog.context.$textarea.textSelection( &#039;insertText&#039;, text );&lt;br /&gt;
				} else {&lt;br /&gt;
					dialog.context.$textarea.textSelection( &#039;encapsulateSelection&#039;, {&lt;br /&gt;
						pre: &#039;&#039;, peri: text, post: &#039;&#039;, replace: true&lt;br /&gt;
					} );&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				dialog.close( { action: &#039;apply&#039; } );&lt;br /&gt;
			} );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		DialogClass = ImageDialog;&lt;br /&gt;
		return DialogClass;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 打开图片对话框&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context WikiEditor context&lt;br /&gt;
	 * @param {Object|null} parsed 已有图片信息（调整时传入）&lt;br /&gt;
	 */&lt;br /&gt;
	function openImageDialog( context, parsed ) {&lt;br /&gt;
		var isNew = !parsed;&lt;br /&gt;
		mw.loader.using( [ &#039;oojs-ui-core&#039;, &#039;oojs-ui-widgets&#039;, &#039;oojs-ui-windows&#039; ] ).then( function () {&lt;br /&gt;
			if ( !windowManager ) {&lt;br /&gt;
				windowManager = new OO.ui.WindowManager();&lt;br /&gt;
				$( document.body ).append( windowManager.$element );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var ImageDialog = getDialogClass();&lt;br /&gt;
			var dialog = new ImageDialog();&lt;br /&gt;
			dialog.setData( context, parsed || { name: &#039;&#039;, width: &#039;&#039;, align: &#039;&#039;, caption: &#039;&#039; }, isNew );&lt;br /&gt;
&lt;br /&gt;
			windowManager.addWindows( [ dialog ] );&lt;br /&gt;
			windowManager.openWindow( dialog, {} );&lt;br /&gt;
&lt;br /&gt;
			dialog.closed.then( function () {&lt;br /&gt;
				windowManager.removeWindows( [ dialog ] );&lt;br /&gt;
			} );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 调整选中图片的大小 / 位置&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} context&lt;br /&gt;
	 */&lt;br /&gt;
	function adjustImage( context ) {&lt;br /&gt;
		var selection = context.$textarea.textSelection( &#039;getSelection&#039; );&lt;br /&gt;
		var parsed = parseFileLink( selection );&lt;br /&gt;
&lt;br /&gt;
		if ( !parsed ) {&lt;br /&gt;
			notify( &#039;先选中整段图片代码再点「调图」，例如 [[File:熊猫.png|300px|center]]&#039; );&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		openImageDialog( context, parsed );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 把排版工具条插进 WikiEditor&lt;br /&gt;
	 */&lt;br /&gt;
	function addLayoutTools() {&lt;br /&gt;
		if ( $( &#039;#wikiEditor-ui-toolbar .group-layout&#039; ).length ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		$( &#039;#wpTextbox1&#039; ).wikiEditor( &#039;addToToolbar&#039;, {&lt;br /&gt;
			section: &#039;main&#039;,&lt;br /&gt;
			groups: {&lt;br /&gt;
				layout: {&lt;br /&gt;
					tools: {&lt;br /&gt;
						layoutColor: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;颜色&#039;,&lt;br /&gt;
							list: makeList( COLORS, &#039;颜色&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutSize: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;字号&#039;,&lt;br /&gt;
							list: makeList( SIZES.map( function ( size ) {&lt;br /&gt;
								return { label: size, value: size };&lt;br /&gt;
							} ), &#039;字号&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutAlign: {&lt;br /&gt;
							type: &#039;select&#039;,&lt;br /&gt;
							label: &#039;对齐&#039;,&lt;br /&gt;
							list: makeList( ALIGN_OPTIONS.filter( function ( option ) {&lt;br /&gt;
								return option.value !== &#039;&#039;;&lt;br /&gt;
							} ), &#039;对齐&#039; )&lt;br /&gt;
						},&lt;br /&gt;
						layoutImage: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;插图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									openImageDialog( context, null );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						},&lt;br /&gt;
						layoutAdjust: {&lt;br /&gt;
							type: &#039;button&#039;,&lt;br /&gt;
							label: &#039;调图&#039;,&lt;br /&gt;
							action: {&lt;br /&gt;
								type: &#039;callback&#039;,&lt;br /&gt;
								execute: function ( context ) {&lt;br /&gt;
									adjustImage( context );&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * 等 WikiEditor 渲染出工具条后再挂工具组&lt;br /&gt;
	 */&lt;br /&gt;
	function bootstrap() {&lt;br /&gt;
		if ( !document.getElementById( &#039;wpTextbox1&#039; ) ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		mw.loader.using( &#039;ext.wikiEditor&#039; ).then( function () {&lt;br /&gt;
			var tries = 0;&lt;br /&gt;
&lt;br /&gt;
			function waitForToolbar() {&lt;br /&gt;
				if ( document.getElementById( &#039;wikiEditor-ui-toolbar&#039; ) ) {&lt;br /&gt;
					addLayoutTools();&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				tries += 1;&lt;br /&gt;
				if ( tries &amp;lt;= 30 ) {&lt;br /&gt;
					window.setTimeout( waitForToolbar, 100 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			waitForToolbar();&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$( bootstrap );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=MediaWiki:Common.css&amp;diff=104</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=MediaWiki:Common.css&amp;diff=104"/>
		<updated>2026-10-31T17:48:04Z</updated>

		<summary type="html">&lt;p&gt;Admin：​排版：放开源码编辑标签 + 工具条样式&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* ===== 尘月维基 · Vector 经典皮肤（对齐参考站） =====&lt;br /&gt;
   参考站本身几乎没有自定义 CSS，外观全部由首页内联样式表格实现。&lt;br /&gt;
   这里只做三件事：中文字体、站标尺寸、去点击虚线框。&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	font-family: -apple-system, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 站标：左侧栏顶部，10em 宽、等比不拉伸 */&lt;br /&gt;
#p-logo a.mw-wiki-logo {&lt;br /&gt;
	display: block;&lt;br /&gt;
	width: 10em;&lt;br /&gt;
	height: 8em;&lt;br /&gt;
	background-image: url(/logo.jpg);&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-position: center center;&lt;br /&gt;
	background-size: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 内容区最小高度，避免空页面太短 */&lt;br /&gt;
#content {&lt;br /&gt;
	min-height: 60vh;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首页板块表格里的图片不被撑破 */&lt;br /&gt;
.mw-parser-output table img {&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
	height: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 去掉链接点击后的虚线框 */&lt;br /&gt;
a:focus {&lt;br /&gt;
	outline: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ===== 板块右上角「编辑内容」按钮 =====&lt;br /&gt;
   默认 display:none —— 匿名访客从首屏渲染起就看不到，不会闪一下。&lt;br /&gt;
   body.mw-editable 由 MediaWiki 核心仅在有编辑权限的登录用户身上输出。 */&lt;br /&gt;
.card-edit {&lt;br /&gt;
	display: none;&lt;br /&gt;
	float: right;&lt;br /&gt;
	margin: 0 14px 0 0;&lt;br /&gt;
	font-size: 12px;&lt;br /&gt;
	font-weight: 400;&lt;br /&gt;
	letter-spacing: 0;&lt;br /&gt;
	line-height: 1.9;&lt;br /&gt;
}&lt;br /&gt;
body.mw-editable .card-edit {&lt;br /&gt;
	display: block;&lt;br /&gt;
}&lt;br /&gt;
.card-edit a {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0 9px;&lt;br /&gt;
	color: #ffffff !important;&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
	border: 1px solid rgba(255, 255, 255, 0.55);&lt;br /&gt;
	border-radius: 11px;&lt;br /&gt;
	background: rgba(255, 255, 255, 0.14);&lt;br /&gt;
}&lt;br /&gt;
.card-edit a.external {&lt;br /&gt;
	background-image: none !important;&lt;br /&gt;
	padding-right: 9px !important;&lt;br /&gt;
}&lt;br /&gt;
.card-edit a:hover {&lt;br /&gt;
	background: #ffffff;&lt;br /&gt;
	border-color: #ffffff;&lt;br /&gt;
	color: #510DAB !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 板块正文最小高度：内容为空时框不塌 */&lt;br /&gt;
.cb { min-height: 300px; }&lt;br /&gt;
.cb-tall { min-height: 380px; }&lt;br /&gt;
&lt;br /&gt;
/* 两个编辑入口并存：「编辑」=可视化；「排版编辑」=源码+排版工具条 */&lt;br /&gt;
#ca-ve-edit ~ #ca-edit {&lt;br /&gt;
	display: inline-block !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 板块正文里的标题：去掉「[编辑]」小链接，字号收敛成清晰的三级层次 */&lt;br /&gt;
.cb .mw-editsection,&lt;br /&gt;
.cb-tall .mw-editsection { display: none !important; }&lt;br /&gt;
&lt;br /&gt;
.cb .mw-heading,&lt;br /&gt;
.cb-tall .mw-heading { margin: 0.5em 0; }&lt;br /&gt;
&lt;br /&gt;
.cb h1, .cb-tall h1 { font-size: 165%; }&lt;br /&gt;
.cb h2, .cb-tall h2 { font-size: 135%; }&lt;br /&gt;
.cb h3, .cb-tall h3 { font-size: 118%; }&lt;br /&gt;
.cb h4, .cb-tall h4 { font-size: 105%; }&lt;br /&gt;
.cb h1, .cb h2, .cb h3, .cb h4, .cb h5, .cb h6,&lt;br /&gt;
.cb-tall h1, .cb-tall h2, .cb-tall h3, .cb-tall h4, .cb-tall h5, .cb-tall h6 {&lt;br /&gt;
	border-bottom: none !important;&lt;br /&gt;
	margin: 0.35em 0;&lt;br /&gt;
	line-height: 1.45;&lt;br /&gt;
	color: #222222;&lt;br /&gt;
	font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 新建页面入口：仅登录且有编辑权的管理员可见 */&lt;br /&gt;
body:not(.mw-editable) #n-创建新页面{display:none}&lt;br /&gt;
#n-创建新页面 a{font-weight:700}&lt;br /&gt;
&lt;br /&gt;
/* ===== 排版工具条（源代码编辑器） =====&lt;br /&gt;
   工具条按钮由 MediaWiki:Common.js 注入，这里只管外观：&lt;br /&gt;
   让「颜色 / 字号 / 对齐 / 插图 / 调图」在灰色工具条里显眼一点。 */&lt;br /&gt;
#wikiEditor-ui-toolbar .group-layout .tool-select &amp;gt; .label {&lt;br /&gt;
	background: #6b3fa0;&lt;br /&gt;
	color: #ffffff !important;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
	padding: 2px 10px;&lt;br /&gt;
	margin: 2px 1px;&lt;br /&gt;
	font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
#wikiEditor-ui-toolbar .group-layout .tool-select &amp;gt; .label:hover {&lt;br /&gt;
	background: #8552c2;&lt;br /&gt;
}&lt;br /&gt;
#wikiEditor-ui-toolbar .group-layout .tool-button {&lt;br /&gt;
	font-weight: 700;&lt;br /&gt;
	color: #6b3fa0;&lt;br /&gt;
}&lt;br /&gt;
#wikiEditor-ui-toolbar .group-layout .tool-select .menu .option {&lt;br /&gt;
	padding: 4px 12px;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 图片对话框里的「去上传」提示 */&lt;br /&gt;
.chenyue-img-hint {&lt;br /&gt;
	margin: 14px 0 0;&lt;br /&gt;
	font-size: 92%;&lt;br /&gt;
}&lt;br /&gt;
.chenyue-img-hint a {&lt;br /&gt;
	color: #6b3fa0;&lt;br /&gt;
	font-weight: 700;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=%E4%B8%87%E6%81%B6%E4%B9%8B%E6%BA%90&amp;diff=103</id>
		<title>万恶之源</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=%E4%B8%87%E6%81%B6%E4%B9%8B%E6%BA%90&amp;diff=103"/>
		<updated>2026-10-31T17:45:41Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;姜常硕（2008年7月2日－，常用ID：洛川）&lt;br /&gt;
&lt;br /&gt;
孙旭亮（2009年12月17日－，常用ID：乐大师）&lt;br /&gt;
&lt;br /&gt;
秦浩然（2008年7月30日－，常用ID：古怪地觉）&lt;br /&gt;
&lt;br /&gt;
蔡振辉（2010年10月15日－，常用ID：C盘酱）&lt;br /&gt;
&lt;br /&gt;
2025年乃至2026年互联网反华黑社会性质团体网站东宁网联的四名首要成员，其涉及寻衅滋事罪、侵犯公民个人信息罪、间谍罪、煽动颠覆国家政权罪等等。&lt;br /&gt;
&lt;br /&gt;
自东宁网联重组以来联合八代恶俗维基对众多无辜人士进行迫害，主要行为便是出道炒作牢A、恶意炒作李炳谦、迫害周宇辰、将UT圈恶俗化、恶意出道国家领导人信息，周宇辰事件更是惊动了深圳市政府。其逍遥法外时期还与间谍组织恶俗维基合作反华。期间并且试图开设红岸基金会、支纳维基未遂。&lt;br /&gt;
&lt;br /&gt;
在2026年10月28号姜常硕因寻衅滋事被当地公安逮捕，在被十几名受害者指认犯罪后姜常硕现被关押在看守所内，因行为恶劣在初步判定结果后，姜常硕被判定为主犯，吉林公安已联系近半年内惨遭姜常硕人肉网暴的受害者，其因姜常硕的种种原因可能会判处三年以上五年以下的有期徒刑。&lt;br /&gt;
&lt;br /&gt;
鉴于这四位神触对我国互联网造出极大恶劣影响，并且在近日成功地勾引吉林省公安厅将自己送入大牢，特此本站送四位神触光荣入站万恶之源。可喜可贺的是，目前除疯狂推卸责任的孙旭亮之外其余人员皆被吉林省公安、国安干警采取强制措施并计划成立联合专案组进行侦办。&lt;br /&gt;
[[File:神人四人组.png|thumb]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://chenyue.wiki/index.php?title=File:%E7%A5%9E%E4%BA%BA%E5%9B%9B%E4%BA%BA%E7%BB%84.png&amp;diff=102</id>
		<title>File:神人四人组.png</title>
		<link rel="alternate" type="text/html" href="https://chenyue.wiki/index.php?title=File:%E7%A5%9E%E4%BA%BA%E5%9B%9B%E4%BA%BA%E7%BB%84.png&amp;diff=102"/>
		<updated>2026-10-31T17:45:10Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;神了&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>