<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://xiarenwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Maintenance+script</id>
	<title>虾仁维基 - 用户贡献 [zh-cn]</title>
	<link rel="self" type="application/atom+xml" href="https://xiarenwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Maintenance+script"/>
	<link rel="alternate" type="text/html" href="https://xiarenwiki.com/index.php?title=%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/Maintenance_script"/>
	<updated>2026-09-28T01:43:11Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://xiarenwiki.com/index.php?title=MediaWiki:Sidebar&amp;diff=219</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://xiarenwiki.com/index.php?title=MediaWiki:Sidebar&amp;diff=219"/>
		<updated>2026-07-29T19:10:31Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script：​恢复最初多套嵌导航栏(rev 60)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 虾仁维基&lt;br /&gt;
** mainpage|首页&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;
** Special:RecentChanges|最近更改&lt;br /&gt;
** Special:Random|随机页面&lt;br /&gt;
** Special:Search|搜索&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://xiarenwiki.com/index.php?title=MediaWiki:Sidebar&amp;diff=218</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://xiarenwiki.com/index.php?title=MediaWiki:Sidebar&amp;diff=218"/>
		<updated>2026-07-29T19:04:12Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script：​恢复原侧栏(恢复虾仁宇宙/虾仁音乐)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* mainpage|虾仁维基&lt;br /&gt;
** 作品总录|作品总录&lt;br /&gt;
** 虾仁六章|虾仁六章&lt;br /&gt;
** 虾仁宇宙|虾仁宇宙&lt;br /&gt;
** 虾仁·角色谱|角色谱&lt;br /&gt;
** 虾仁音乐|虾仁音乐&lt;br /&gt;
** 共创入口|共创入口&lt;br /&gt;
** Special:UserTable|用户总表&lt;br /&gt;
* 创作与治理&lt;br /&gt;
** Special:RecentChanges|最近更改&lt;br /&gt;
** Special:Random|随机页面&lt;br /&gt;
** Special:AdminDashboard|管理面板&lt;br /&gt;
** Special:AllPages|所有页面&lt;br /&gt;
** Special:Search|搜索&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://xiarenwiki.com/index.php?title=MediaWiki:Sidebar&amp;diff=217</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://xiarenwiki.com/index.php?title=MediaWiki:Sidebar&amp;diff=217"/>
		<updated>2026-07-29T19:00:09Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script：​清理侧栏死链(虾仁宇宙/虾仁音乐)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* mainpage|虾仁维基&lt;br /&gt;
** 作品总录|作品总录&lt;br /&gt;
** 虾仁六章|虾仁六章&lt;br /&gt;
** 虾仁·角色谱|角色谱&lt;br /&gt;
** 共创入口|共创入口&lt;br /&gt;
** Special:UserTable|用户总表&lt;br /&gt;
* 创作与治理&lt;br /&gt;
** Special:RecentChanges|最近更改&lt;br /&gt;
** Special:Random|随机页面&lt;br /&gt;
** Special:AdminDashboard|管理面板&lt;br /&gt;
** Special:AllPages|所有页面&lt;br /&gt;
** Special:Search|搜索&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://xiarenwiki.com/index.php?title=MediaWiki:Mainpage&amp;diff=216</id>
		<title>MediaWiki:Mainpage</title>
		<link rel="alternate" type="text/html" href="https://xiarenwiki.com/index.php?title=MediaWiki:Mainpage&amp;diff=216"/>
		<updated>2026-07-29T19:00:08Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script：​设置主页面为虾仁维基&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;虾仁维基&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://xiarenwiki.com/index.php?title=%E8%99%BE%E4%BB%81%E7%BB%B4%E5%9F%BA&amp;diff=215</id>
		<title>虾仁维基</title>
		<link rel="alternate" type="text/html" href="https://xiarenwiki.com/index.php?title=%E8%99%BE%E4%BB%81%E7%BB%B4%E5%9F%BA&amp;diff=215"/>
		<updated>2026-07-29T19:00:07Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script：​建立虾仁维基门户导引页&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:虾仁维基}}&lt;br /&gt;
&#039;&#039;&#039;虾仁维基&#039;&#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;
&lt;br /&gt;
== 标杆作品 ==&lt;br /&gt;
* [[一品布衣]]&lt;br /&gt;
* [[我在大明那些年]]&lt;br /&gt;
* [[彼岸轮回]]&lt;br /&gt;
* [[数字时代的孙悟空]]&lt;br /&gt;
&lt;br /&gt;
== 工具 ==&lt;br /&gt;
* [[Special:Random|随机页面]] · [[Special:RecentChanges|最近更改]] · [[Special:AllPages|所有页面]]&lt;br /&gt;
&lt;br /&gt;
[[分类:导航页面]]&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://xiarenwiki.com/index.php?title=MediaWiki:Common.css&amp;diff=200</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://xiarenwiki.com/index.php?title=MediaWiki:Common.css&amp;diff=200"/>
		<updated>2026-07-29T16:30:11Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script：​追加 xn-work-title 作品层级样式：作品缩进到虾仁宇宙下，子项逐级缩进&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:root {&lt;br /&gt;
  --xr-red: #C41E3A;&lt;br /&gt;
  --xr-red-dark: #9B182D;&lt;br /&gt;
  --xr-paper: #F5F0E8;&lt;br /&gt;
  --xr-paper-dark: #E8E1D5;&lt;br /&gt;
  --xr-ink: #333333;&lt;br /&gt;
  --xr-bamboo: #2E5A3B;&lt;br /&gt;
  --xr-link: #1A5276;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector-legacy {&lt;br /&gt;
  background-color: var(--xr-paper);&lt;br /&gt;
  background-image: linear-gradient(180deg, #F5F0E8 0%, #EDE6D8 100%);&lt;br /&gt;
  color: var(--xr-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-head-base {&lt;br /&gt;
  background: var(--xr-red);&lt;br /&gt;
  height: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-page-base {&lt;br /&gt;
  background: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body {&lt;br /&gt;
  background: #FFFFFF;&lt;br /&gt;
  border: 1px solid var(--xr-paper-dark);&lt;br /&gt;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h1, h2, h3, h4, h5, h6 {&lt;br /&gt;
  font-family: &amp;quot;KaiTi&amp;quot;, &amp;quot;STKaiti&amp;quot;, &amp;quot;BiauKai&amp;quot;, &amp;quot;SimSun&amp;quot;, serif;&lt;br /&gt;
  color: var(--xr-red-dark);&lt;br /&gt;
  border-bottom: 2px solid var(--xr-paper-dark);&lt;br /&gt;
  padding-bottom: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a, .mw-parser-output a.external {&lt;br /&gt;
  color: var(--xr-link);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:hover, a:focus {&lt;br /&gt;
  color: var(--xr-red);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs .mw-list-item a {&lt;br /&gt;
  border-radius: 4px 4px 0 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs .mw-list-item.selected a {&lt;br /&gt;
  background: #FFFFFF;&lt;br /&gt;
  color: var(--xr-red);&lt;br /&gt;
  border-top: 2px solid var(--xr-red);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-panel .vector-menu-heading {&lt;br /&gt;
  color: var(--xr-red-dark);&lt;br /&gt;
  font-weight: bold;&lt;br /&gt;
  font-family: &amp;quot;KaiTi&amp;quot;, &amp;quot;STKaiti&amp;quot;, serif;&lt;br /&gt;
  border-bottom: 1px solid var(--xr-paper-dark);&lt;br /&gt;
  padding-bottom: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output .toc,&lt;br /&gt;
#toc,&lt;br /&gt;
.toc {&lt;br /&gt;
  background: var(--xr-paper);&lt;br /&gt;
  border: 1px solid var(--xr-paper-dark);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output .toc .toctitle h2,&lt;br /&gt;
.toc .toctitle h2 {&lt;br /&gt;
  color: var(--xr-red-dark);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo a {&lt;br /&gt;
  background-size: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-head {&lt;br /&gt;
  background: rgba(255,255,255,0.92);&lt;br /&gt;
  backdrop-filter: blur(4px);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-editsection a {&lt;br /&gt;
  color: var(--xr-bamboo);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer {&lt;br /&gt;
  border-top: 1px solid var(--xr-paper-dark);&lt;br /&gt;
  padding-top: 1em;&lt;br /&gt;
}&lt;br /&gt;
/* ===== 竖排导航栏美化 + 古风字体（audit 2026-07-30）===== */&lt;br /&gt;
/* 古卷新墨：侧栏与正文统一用典雅宋体，呼应以卷为载体的调性 */&lt;br /&gt;
#mw-panel,&lt;br /&gt;
.mw-body-content {&lt;br /&gt;
    font-family: &amp;quot;Noto Serif SC&amp;quot;, &amp;quot;Source Han Serif SC&amp;quot;, &amp;quot;Songti SC&amp;quot;, &amp;quot;STSong&amp;quot;, &amp;quot;SimSun&amp;quot;, serif;&lt;br /&gt;
}&lt;br /&gt;
/* 侧栏条目：朱砂微光悬浮，提升可读与质感 */&lt;br /&gt;
#mw-panel .mw-list-item a {&lt;br /&gt;
    padding: 4px 8px;&lt;br /&gt;
    border-radius: 6px;&lt;br /&gt;
    transition: background-color .2s ease, color .2s ease;&lt;br /&gt;
}&lt;br /&gt;
#mw-panel .mw-list-item a:hover {&lt;br /&gt;
    color: #C41E3A;&lt;br /&gt;
    background: rgba(196, 30, 58, 0.06);&lt;br /&gt;
}&lt;br /&gt;
/* 侧栏分组标题（如「创作与治理」）加一抹朱砂，强化层级 */&lt;br /&gt;
#mw-panel .vector-menu-heading,&lt;br /&gt;
#mw-panel .mw-portlet h3,&lt;br /&gt;
#p-navigation h3 {&lt;br /&gt;
    color: #9B182D;&lt;br /&gt;
    letter-spacing: .08em;&lt;br /&gt;
}&lt;br /&gt;
/* ===== 左侧栏目录修复（2026-07-30）===== */&lt;br /&gt;
/* 避免文章目录被某些浏览器/扩展渲染到 #mw-panel，导致侧栏过长 */&lt;br /&gt;
#mw-panel .toc,&lt;br /&gt;
#mw-panel #toc,&lt;br /&gt;
.vector-legacy-sidebar .toc {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ===== 自定义侧栏导航 xn-* 古风样式（2026-07-30）===== */&lt;br /&gt;
#mw-panel {&lt;br /&gt;
    font-family: &amp;quot;Noto Serif SC&amp;quot;, &amp;quot;Source Han Serif SC&amp;quot;, &amp;quot;Songti SC&amp;quot;, &amp;quot;STSong&amp;quot;, &amp;quot;SimSun&amp;quot;, serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 搜索框 */&lt;br /&gt;
.xn-search { padding: 0 12px 10px; }&lt;br /&gt;
.xn-search-input {&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    box-sizing: border-box;&lt;br /&gt;
    padding: 6px 10px;&lt;br /&gt;
    background: #FBF7F0;&lt;br /&gt;
    border: 1px solid #E0D5C5;&lt;br /&gt;
    border-radius: 6px;&lt;br /&gt;
    font-family: &amp;quot;Noto Serif SC&amp;quot;, &amp;quot;Songti SC&amp;quot;, &amp;quot;SimSun&amp;quot;, serif;&lt;br /&gt;
    font-size: 0.85em;&lt;br /&gt;
    color: #5a4a3a;&lt;br /&gt;
    transition: border-color .2s ease, box-shadow .2s ease;&lt;br /&gt;
}&lt;br /&gt;
.xn-search-input:focus {&lt;br /&gt;
    outline: none;&lt;br /&gt;
    border-color: #C41E3A;&lt;br /&gt;
    box-shadow: 0 0 0 2px rgba(196,30,58,0.12);&lt;br /&gt;
}&lt;br /&gt;
.xn-search-input::placeholder { color: #B0A090; }&lt;br /&gt;
&lt;br /&gt;
/* 分组容器 */&lt;br /&gt;
.xn-section { margin-bottom: 2px; }&lt;br /&gt;
&lt;br /&gt;
/* 分组标题 */&lt;br /&gt;
.xn-header {&lt;br /&gt;
    padding: 8px 12px 6px;&lt;br /&gt;
    font-size: 0.82em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    letter-spacing: .08em;&lt;br /&gt;
    color: #9B182D;&lt;br /&gt;
    border-bottom: 1px solid rgba(196,30,58,0.15);&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
    user-select: none;&lt;br /&gt;
    transition: background-color .2s ease;&lt;br /&gt;
    position: relative;&lt;br /&gt;
}&lt;br /&gt;
.xn-header:hover { background: rgba(196,30,58,0.05); }&lt;br /&gt;
.xn-header::before {&lt;br /&gt;
    content: &#039;&#039;;&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    width: 3px;&lt;br /&gt;
    height: 0.9em;&lt;br /&gt;
    background: #C41E3A;&lt;br /&gt;
    margin-right: 7px;&lt;br /&gt;
    vertical-align: middle;&lt;br /&gt;
    border-radius: 2px;&lt;br /&gt;
}&lt;br /&gt;
.xn-header::after {&lt;br /&gt;
    content: &#039;▾&#039;;&lt;br /&gt;
    float: right;&lt;br /&gt;
    color: #B0A090;&lt;br /&gt;
    font-size: 0.9em;&lt;br /&gt;
    transition: transform .2s ease;&lt;br /&gt;
}&lt;br /&gt;
.xn-header.xn-collapsed::after {&lt;br /&gt;
    transform: rotate(-90deg);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 子分组标题 */&lt;br /&gt;
.xn-subheader, .xn-subsubheader {&lt;br /&gt;
    padding: 5px 12px 4px 22px;&lt;br /&gt;
    font-size: 0.8em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    color: #7a2a3a;&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
    user-select: none;&lt;br /&gt;
}&lt;br /&gt;
.xn-subheader::after, .xn-subsubheader::after {&lt;br /&gt;
    content: &#039;▾&#039;;&lt;br /&gt;
    float: right;&lt;br /&gt;
    color: #C0B0A0;&lt;br /&gt;
    font-size: 0.85em;&lt;br /&gt;
    transition: transform .2s ease;&lt;br /&gt;
}&lt;br /&gt;
.xn-subheader.xn-collapsed::after, .xn-subsubheader.xn-collapsed::after {&lt;br /&gt;
    transform: rotate(-90deg);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 链接条目 */&lt;br /&gt;
.xn-body, .xn-subbody, .xn-subsubbody { overflow: hidden; }&lt;br /&gt;
.xn-link { padding: 0; }&lt;br /&gt;
.xn-link a {&lt;br /&gt;
    display: block;&lt;br /&gt;
    padding: 4px 12px 4px 22px;&lt;br /&gt;
    color: #4a3a2a;&lt;br /&gt;
    font-size: 0.82em;&lt;br /&gt;
    line-height: 1.5;&lt;br /&gt;
    transition: background-color .15s ease, color .15s ease, padding-left .15s ease;&lt;br /&gt;
}&lt;br /&gt;
.xn-link a:hover {&lt;br /&gt;
    color: #C41E3A;&lt;br /&gt;
    background: rgba(196,30,58,0.06);&lt;br /&gt;
    padding-left: 26px;&lt;br /&gt;
}&lt;br /&gt;
.xn-subbody .xn-link a { padding-left: 34px; }&lt;br /&gt;
.xn-subbody .xn-link a:hover { padding-left: 38px; }&lt;br /&gt;
.xn-subsubbody .xn-link a { padding-left: 46px; }&lt;br /&gt;
.xn-subsubbody .xn-link a:hover { padding-left: 50px; }&lt;br /&gt;
&lt;br /&gt;
/* 缺失页面 */&lt;br /&gt;
.xn-missing a { color: #b07070; font-style: italic; }&lt;br /&gt;
.xn-missing a:hover { color: #C41E3A; }&lt;br /&gt;
&lt;br /&gt;
/* ＋ 新增按钮 */&lt;br /&gt;
.xn-plus {&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    margin-left: 4px;&lt;br /&gt;
    color: #2E5A3B !important;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    font-size: 0.85em;&lt;br /&gt;
    opacity: 0.5;&lt;br /&gt;
    transition: opacity .2s ease;&lt;br /&gt;
}&lt;br /&gt;
.xn-plus:hover { opacity: 1; }&lt;br /&gt;
&lt;br /&gt;
/* 单独链接（共创入口）*/&lt;br /&gt;
.xn-single {&lt;br /&gt;
    margin: 6px 12px;&lt;br /&gt;
    padding: 8px 10px;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    background: rgba(196,30,58,0.06);&lt;br /&gt;
    border: 1px solid rgba(196,30,58,0.2);&lt;br /&gt;
    border-radius: 6px;&lt;br /&gt;
    transition: background-color .2s ease;&lt;br /&gt;
}&lt;br /&gt;
.xn-single a {&lt;br /&gt;
    color: #C41E3A;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    letter-spacing: .05em;&lt;br /&gt;
}&lt;br /&gt;
.xn-single:hover { background: rgba(196,30,58,0.12); }&lt;br /&gt;
&lt;br /&gt;
/* 当前页高亮 */&lt;br /&gt;
.xn-active {&lt;br /&gt;
    color: #C41E3A !important;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    background: rgba(196,30,58,0.1) !important;&lt;br /&gt;
    border-left: 3px solid #C41E3A;&lt;br /&gt;
    padding-left: 19px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 加载状态 */&lt;br /&gt;
.xn-loading {&lt;br /&gt;
    padding: 8px 12px 8px 22px;&lt;br /&gt;
    color: #B0A090;&lt;br /&gt;
    font-size: 0.8em;&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 发现更多作品 */&lt;br /&gt;
.xn-add-work a {&lt;br /&gt;
    color: #2E5A3B;&lt;br /&gt;
    font-size: 0.8em;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
    padding: 6px 12px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ===== 作品层级样式（xn-work-title，2026-07-30）===== */&lt;br /&gt;
/* 作品标题：缩进一级，字号略小，颜色稍淡 */&lt;br /&gt;
.xn-work-title {&lt;br /&gt;
    padding: 5px 12px 4px 22px;&lt;br /&gt;
    font-size: 0.8em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    color: #7a2a3a;&lt;br /&gt;
    cursor: pointer;&lt;br /&gt;
    user-select: none;&lt;br /&gt;
    transition: background-color .2s ease;&lt;br /&gt;
}&lt;br /&gt;
.xn-work-title:hover { background: rgba(196,30,58,0.04); }&lt;br /&gt;
.xn-work-title::after {&lt;br /&gt;
    content: &#039;\25BE&#039;;&lt;br /&gt;
    float: right;&lt;br /&gt;
    color: #C0B0A0;&lt;br /&gt;
    font-size: 0.85em;&lt;br /&gt;
    transition: transform .2s ease;&lt;br /&gt;
}&lt;br /&gt;
.xn-work-title.xn-collapsed::after {&lt;br /&gt;
    transform: rotate(-90deg);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 作品子项整体缩进：比作品标题再深一级 */&lt;br /&gt;
.xn-work .xn-body &amp;gt; .xn-link a { padding-left: 34px; }&lt;br /&gt;
.xn-work .xn-body &amp;gt; .xn-link a:hover { padding-left: 38px; }&lt;br /&gt;
&lt;br /&gt;
/* 剧情层标题跟作品子项对齐 */&lt;br /&gt;
.xn-work .xn-body &amp;gt; .xn-subsection &amp;gt; .xn-subheader { padding-left: 34px; }&lt;br /&gt;
&lt;br /&gt;
/* 剧情层下段落标题再深一级 */&lt;br /&gt;
.xn-work .xn-body &amp;gt; .xn-subsection &amp;gt; .xn-subbody &amp;gt; .xn-subsubsection &amp;gt; .xn-subsubheader { padding-left: 46px; }&lt;br /&gt;
&lt;br /&gt;
/* 段落详情条目最深 */&lt;br /&gt;
.xn-work .xn-body &amp;gt; .xn-subsection &amp;gt; .xn-subbody &amp;gt; .xn-subsubsection &amp;gt; .xn-subsubbody .xn-link a { padding-left: 58px; }&lt;br /&gt;
.xn-work .xn-body &amp;gt; .xn-subsection &amp;gt; .xn-subbody &amp;gt; .xn-subsubsection &amp;gt; .xn-subsubbody .xn-link a:hover { padding-left: 62px; }&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://xiarenwiki.com/index.php?title=MediaWiki:Common.js&amp;diff=199</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://xiarenwiki.com/index.php?title=MediaWiki:Common.js&amp;diff=199"/>
		<updated>2026-07-29T16:30:10Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script：​作品标题改用 xn-work-title 类，与顶级分组视觉区分&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* 虾仁维基 - 自定义侧边栏导航 v2.1 */&lt;br /&gt;
/* 优化：古风主题统一、健壮初始化、精致样式 */&lt;br /&gt;
/* 最后更新: 2026-07-30 */&lt;br /&gt;
&lt;br /&gt;
(function ($, mw) {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    var COLLAPSE_KEY = &#039;xiarenwiki-nav-v2&#039;;&lt;br /&gt;
    var WORKS = [&#039;我在大明那些年&#039;, &#039;彼岸轮回&#039;, &#039;一品布衣&#039;];&lt;br /&gt;
    var WORK_DIRECT = [&#039;宇宙层&#039;, &#039;人物&#039;, &#039;世界观&#039;, &#039;设定&#039;];&lt;br /&gt;
&lt;br /&gt;
    function init() {&lt;br /&gt;
        var wgIsArticle = mw.config.get(&#039;wgIsArticle&#039;);&lt;br /&gt;
        var wgCanonicalSpecialPageName = mw.config.get(&#039;wgCanonicalSpecialPageName&#039;);&lt;br /&gt;
        if (!wgIsArticle &amp;amp;&amp;amp; wgCanonicalSpecialPageName) {&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        mw.loader.using(&#039;mediawiki.api&#039;).then(function () {&lt;br /&gt;
            waitForPanel(function ($panel) {&lt;br /&gt;
                buildNav($panel);&lt;br /&gt;
            });&lt;br /&gt;
        }).catch(function (e) {&lt;br /&gt;
            console.error(&#039;[虾仁导航] 依赖加载失败，降级构建&#039;, e);&lt;br /&gt;
            waitForPanel(function ($panel) {&lt;br /&gt;
                buildNav($panel);&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function waitForPanel(cb) {&lt;br /&gt;
        var $panel = $(&#039;#mw-panel&#039;);&lt;br /&gt;
        if ($panel.length) return cb($panel);&lt;br /&gt;
        var tries = 0;&lt;br /&gt;
        var timer = setInterval(function () {&lt;br /&gt;
            $panel = $(&#039;#mw-panel&#039;);&lt;br /&gt;
            if ($panel.length || ++tries &amp;gt; 50) {&lt;br /&gt;
                clearInterval(timer);&lt;br /&gt;
                if ($panel.length) cb($panel);&lt;br /&gt;
            }&lt;br /&gt;
        }, 100);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildNav($panel) {&lt;br /&gt;
        var html = &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;xn-search&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
        html += &#039;&amp;lt;form action=&amp;quot;&#039; + mw.util.getUrl(&#039;Special:Search&#039;) + &#039;&amp;quot; method=&amp;quot;get&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
        html += &#039;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;search&amp;quot; class=&amp;quot;xn-search-input&amp;quot; placeholder=&amp;quot;检索典籍…&amp;quot; /&amp;gt;&#039;;&lt;br /&gt;
        html += &#039;&amp;lt;/form&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        html += section(&#039;Wiki&#039;, [&lt;br /&gt;
            [&#039;首页&#039;, &#039;首页&#039;],&lt;br /&gt;
            [&#039;Wiki简介&#039;, &#039;Wiki简介&#039;],&lt;br /&gt;
            [&#039;管理员告示&#039;, &#039;管理员告示&#039;],&lt;br /&gt;
            [&#039;随机页面&#039;, &#039;Special:Random&#039;],&lt;br /&gt;
            [&#039;快速搜索&#039;, &#039;Special:Search&#039;],&lt;br /&gt;
            [&#039;相关平台&#039;, &#039;相关平台&#039;],&lt;br /&gt;
            [&#039;Wiki源站点&#039;, &#039;Wiki源站点&#039;]&lt;br /&gt;
        ]);&lt;br /&gt;
&lt;br /&gt;
        html += section(&#039;虾仁简介&#039;, [&lt;br /&gt;
            [&#039;虾仁？&#039;, &#039;虾仁？&#039;],&lt;br /&gt;
            [&#039;虾仁共创收录规则&#039;, &#039;虾仁共创收录规则&#039;],&lt;br /&gt;
            [&#039;虾仁宇宙结构介绍&#039;, &#039;虾仁宇宙结构介绍&#039;]&lt;br /&gt;
        ]);&lt;br /&gt;
&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;xn-section&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;xn-header xn-expandable&amp;quot; data-sid=&amp;quot;universe&amp;quot;&amp;gt;虾仁宇宙&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;xn-body&amp;quot; id=&amp;quot;xn-universe&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;xn-loading&amp;quot;&amp;gt;卷帙加载中…&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
        html += &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;xn-section&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;xn-header xn-expandable&amp;quot; data-sid=&amp;quot;literature&amp;quot;&amp;gt;虾仁文学&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;xn-body&amp;quot; id=&amp;quot;xn-literature&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
        html += link(&#039;创始宣言&#039;, &#039;创始宣言&#039;);&lt;br /&gt;
        html += link(&#039;虾仁六章&#039;, &#039;虾仁六章&#039;);&lt;br /&gt;
        html += link(&#039;虾仁异志&#039;, &#039;虾仁异志&#039;);&lt;br /&gt;
        html += link(&#039;虾仁诗作&#039;, &#039;虾仁诗作&#039;);&lt;br /&gt;
        html += link(&#039;虾仁音乐&#039;, &#039;虾仁音乐&#039;);&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;xn-subsection&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;xn-subheader xn-expandable&amp;quot; data-sid=&amp;quot;papers&amp;quot;&amp;gt;虾仁论文 &#039; + plus(&#039;虾仁论文&#039;) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;xn-subbody&amp;quot; id=&amp;quot;xn-papers&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
        html += link(&#039;去中心化创作模式的研究&#039;, &#039;去中心化创作模式的研究&#039;);&lt;br /&gt;
        html += link(&#039;数字时代的孙悟空&#039;, &#039;数字时代的孙悟空&#039;);&lt;br /&gt;
        html += &#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        html += section(&#039;虾仁历史&#039;, [&lt;br /&gt;
            [&#039;起源&#039;, &#039;虾仁历史/起源&#039;],&lt;br /&gt;
            [&#039;传播&#039;, &#039;虾仁历史/传播&#039;],&lt;br /&gt;
            [&#039;转折&#039;, &#039;虾仁历史/转折&#039;],&lt;br /&gt;
            [&#039;爆发&#039;, &#039;虾仁历史/爆发&#039;],&lt;br /&gt;
            [&#039;危机&#039;, &#039;虾仁历史/危机&#039;],&lt;br /&gt;
            [&#039;转型&#039;, &#039;虾仁历史/转型&#039;]&lt;br /&gt;
        ]);&lt;br /&gt;
&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;xn-single&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;&#039; + url(&#039;共创入口&#039;) + &#039;&amp;quot;&amp;gt;共创入口&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        $panel.html(html);&lt;br /&gt;
        restoreCollapse();&lt;br /&gt;
        bindEvents();&lt;br /&gt;
        highlightCurrent();&lt;br /&gt;
        loadUniverse();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function section(title, items) {&lt;br /&gt;
        var sid = title.replace(/[^a-z0-9\u4e00-\u9fff]/gi, &#039;&#039;).toLowerCase();&lt;br /&gt;
        var h = &#039;&amp;lt;div class=&amp;quot;xn-section&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
        h += &#039;&amp;lt;div class=&amp;quot;xn-header xn-expandable&amp;quot; data-sid=&amp;quot;&#039; + sid + &#039;&amp;quot;&amp;gt;&#039; + title + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
        h += &#039;&amp;lt;div class=&amp;quot;xn-body&amp;quot; id=&amp;quot;xn-&#039; + sid + &#039;&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
        for (var i = 0; i &amp;lt; items.length; i++) {&lt;br /&gt;
            h += link(items[i][0], items[i][1]);&lt;br /&gt;
        }&lt;br /&gt;
        h += &#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
        return h;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function link(label, page, cls) {&lt;br /&gt;
        return &#039;&amp;lt;div class=&amp;quot;xn-link&#039; + (cls ? &#039; &#039; + cls : &#039;&#039;) + &#039;&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;&#039; + url(page) + &#039;&amp;quot;&amp;gt;&#039; + label + &#039;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function url(page) { return mw.util.getUrl(page); }&lt;br /&gt;
&lt;br /&gt;
    function plus(page) {&lt;br /&gt;
        return &#039;&amp;lt;a class=&amp;quot;xn-plus&amp;quot; href=&amp;quot;&#039; + url(page) + &#039;?action=edit&amp;quot; title=&amp;quot;编辑/新增&amp;quot;&amp;gt;＋&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    async function loadUniverse() {&lt;br /&gt;
        var $body = $(&#039;#xn-universe&#039;);&lt;br /&gt;
        if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
        try {&lt;br /&gt;
            var api = new mw.Api();&lt;br /&gt;
            var html = &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
            for (var i = 0; i &amp;lt; WORKS.length; i++) {&lt;br /&gt;
                var work = WORKS[i];&lt;br /&gt;
                var workSid = &#039;work&#039; + i;&lt;br /&gt;
&lt;br /&gt;
                var subpages = [];&lt;br /&gt;
                try {&lt;br /&gt;
                    var result = await api.get({&lt;br /&gt;
                        action: &#039;query&#039;,&lt;br /&gt;
                        list: &#039;allpages&#039;,&lt;br /&gt;
                        apprefix: work + &#039;/&#039;,&lt;br /&gt;
                        aplimit: 100&lt;br /&gt;
                    });&lt;br /&gt;
                    subpages = result.query.allpages || [];&lt;br /&gt;
                } catch (e) {&lt;br /&gt;
                    console.error(&#039;[虾仁导航] API error for &#039; + work, e);&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                html += &#039;&amp;lt;div class=&amp;quot;xn-work&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
                html += &#039;&amp;lt;div class=&amp;quot;xn-work-title xn-expandable&amp;quot; data-sid=&amp;quot;&#039; + workSid + &#039;&amp;quot;&amp;gt;&#039; + work + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
                html += &#039;&amp;lt;div class=&amp;quot;xn-body&amp;quot; id=&amp;quot;xn-&#039; + workSid + &#039;&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
                var directSet = {};&lt;br /&gt;
                for (var j = 0; j &amp;lt; subpages.length; j++) {&lt;br /&gt;
                    var rel = subpages[j].title.substring(work.length + 1);&lt;br /&gt;
                    if (rel.indexOf(&#039;/&#039;) === -1) directSet[rel] = true;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                for (var k = 0; k &amp;lt; WORK_DIRECT.length; k++) {&lt;br /&gt;
                    var item = WORK_DIRECT[k];&lt;br /&gt;
                    var exists = directSet[item];&lt;br /&gt;
                    html += link(item, work + &#039;/&#039; + item, exists ? &#039;&#039; : &#039;xn-missing&#039;);&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                var plotSegs = [];&lt;br /&gt;
                for (j = 0; j &amp;lt; subpages.length; j++) {&lt;br /&gt;
                    rel = subpages[j].title.substring(work.length + 1);&lt;br /&gt;
                    var parts = rel.split(&#039;/&#039;);&lt;br /&gt;
                    if (parts.length === 2 &amp;amp;&amp;amp; parts[0] === &#039;剧情层&#039;) {&lt;br /&gt;
                        plotSegs.push(parts[1]);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                var plotSid = workSid + &#039;plot&#039;;&lt;br /&gt;
                html += &#039;&amp;lt;div class=&amp;quot;xn-subsection&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
                html += &#039;&amp;lt;div class=&amp;quot;xn-subheader xn-expandable&amp;quot; data-sid=&amp;quot;&#039; + plotSid + &#039;&amp;quot;&amp;gt;剧情层 &#039; + plus(work + &#039;/剧情层&#039;) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
                html += &#039;&amp;lt;div class=&amp;quot;xn-subbody&amp;quot; id=&amp;quot;xn-&#039; + plotSid + &#039;&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
                for (k = 0; k &amp;lt; plotSegs.length; k++) {&lt;br /&gt;
                    var seg = plotSegs[k];&lt;br /&gt;
                    var segSid = workSid + &#039;seg&#039; + k;&lt;br /&gt;
                    var segPage = work + &#039;/剧情层/&#039; + seg;&lt;br /&gt;
&lt;br /&gt;
                    var jinji = [];&lt;br /&gt;
                    try {&lt;br /&gt;
                        var segResult = await api.get({&lt;br /&gt;
                            action: &#039;query&#039;,&lt;br /&gt;
                            list: &#039;allpages&#039;,&lt;br /&gt;
                            apprefix: segPage + &#039;/&#039;,&lt;br /&gt;
                            aplimit: 50&lt;br /&gt;
                        });&lt;br /&gt;
                        var segPages = segResult.query.allpages || [];&lt;br /&gt;
                        for (var m = 0; m &amp;lt; segPages.length; m++) {&lt;br /&gt;
                            jinji.push(segPages[m].title.substring(segPage.length + 1));&lt;br /&gt;
                        }&lt;br /&gt;
                    } catch (e2) {}&lt;br /&gt;
&lt;br /&gt;
                    html += &#039;&amp;lt;div class=&amp;quot;xn-subsubsection&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
                    html += &#039;&amp;lt;div class=&amp;quot;xn-subsubheader xn-expandable&amp;quot; data-sid=&amp;quot;&#039; + segSid + &#039;&amp;quot;&amp;gt;&#039; + seg + &#039; &#039; + plus(segPage) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
                    html += &#039;&amp;lt;div class=&amp;quot;xn-subsubbody&amp;quot; id=&amp;quot;xn-&#039; + segSid + &#039;&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
                    for (m = 0; m &amp;lt; jinji.length; m++) {&lt;br /&gt;
                        html += link(jinji[m], segPage + &#039;/&#039; + jinji[m]);&lt;br /&gt;
                    }&lt;br /&gt;
&lt;br /&gt;
                    html += &#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                html += &#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
                html += &#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            html += &#039;&amp;lt;div class=&amp;quot;xn-link xn-add-work&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;&#039; + url(&#039;Special:Search&#039;) + &#039;&amp;quot; title=&amp;quot;搜索已有作品&amp;quot;&amp;gt;＋ 发现更多作品&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
            $body.html(html);&lt;br /&gt;
            restoreCollapse();&lt;br /&gt;
            bindEvents();&lt;br /&gt;
            highlightCurrent();&lt;br /&gt;
&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            console.error(&#039;[虾仁导航] 虾仁宇宙加载失败&#039;, e);&lt;br /&gt;
            $body.html(&#039;&amp;lt;div class=&amp;quot;xn-link&amp;quot;&amp;gt;(加载失败，请刷新)&amp;lt;/div&amp;gt;&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function highlightCurrent() {&lt;br /&gt;
        var currentTitle = mw.config.get(&#039;wgPageName&#039;);&lt;br /&gt;
        $(&#039;#mw-panel .xn-link a&#039;).each(function () {&lt;br /&gt;
            var href = $(this).attr(&#039;href&#039;);&lt;br /&gt;
            if (!href) return;&lt;br /&gt;
            var match = false;&lt;br /&gt;
            if (href.indexOf(&#039;title=&#039;) &amp;gt; 0) {&lt;br /&gt;
                var m = href.match(/title=([^&amp;amp;]+)/);&lt;br /&gt;
                if (m) match = decodeURIComponent(m[1]) === currentTitle;&lt;br /&gt;
            } else {&lt;br /&gt;
                var parts = href.split(&#039;/&#039;);&lt;br /&gt;
                var last = parts[parts.length - 1];&lt;br /&gt;
                match = decodeURIComponent(last) === currentTitle;&lt;br /&gt;
            }&lt;br /&gt;
            if (match) {&lt;br /&gt;
                $(this).addClass(&#039;xn-active&#039;);&lt;br /&gt;
                $(this).closest(&#039;.xn-link&#039;).addClass(&#039;xn-active-link&#039;);&lt;br /&gt;
                $(this).parents(&#039;.xn-body, .xn-subbody, .xn-subsubbody&#039;).each(function () {&lt;br /&gt;
                    $(this).show();&lt;br /&gt;
                    var sid = $(this).attr(&#039;id&#039;);&lt;br /&gt;
                    if (sid &amp;amp;&amp;amp; sid.indexOf(&#039;xn-&#039;) === 0) {&lt;br /&gt;
                        sid = sid.substring(3);&lt;br /&gt;
                        $(&#039;[data-sid=&amp;quot;&#039; + sid + &#039;&amp;quot;]&#039;).removeClass(&#039;xn-collapsed&#039;);&lt;br /&gt;
                    }&lt;br /&gt;
                });&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function bindEvents() {&lt;br /&gt;
        $(document).off(&#039;click.xn&#039;).on(&#039;click.xn&#039;, &#039;.xn-expandable&#039;, function (e) {&lt;br /&gt;
            if ($(e.target).closest(&#039;.xn-plus&#039;).length) return;&lt;br /&gt;
            var sid = $(this).data(&#039;sid&#039;);&lt;br /&gt;
            var $body = $(&#039;#xn-&#039; + sid);&lt;br /&gt;
            if (!$body.length) $body = $(this).next(&#039;.xn-body,.xn-subbody,.xn-subsubbody&#039;);&lt;br /&gt;
            if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
            $body.slideToggle(150);&lt;br /&gt;
            $(this).toggleClass(&#039;xn-collapsed&#039;, !$body.is(&#039;:visible&#039;));&lt;br /&gt;
&lt;br /&gt;
            var state = loadState();&lt;br /&gt;
            state[sid] = $body.is(&#039;:visible&#039;);&lt;br /&gt;
            saveState(state);&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function restoreCollapse() {&lt;br /&gt;
        var state = loadState();&lt;br /&gt;
        var defaults = { &#039;universe&#039;: true };&lt;br /&gt;
        for (var key in defaults) {&lt;br /&gt;
            if (!(key in state)) state[key] = defaults[key];&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        Object.keys(state).forEach(function (sid) {&lt;br /&gt;
            var $header = $(&#039;[data-sid=&amp;quot;&#039; + sid + &#039;&amp;quot;]&#039;);&lt;br /&gt;
            var $body = $(&#039;#xn-&#039; + sid);&lt;br /&gt;
            if (!$body.length) $body = $header.next(&#039;.xn-body,.xn-subbody,.xn-subsubbody&#039;);&lt;br /&gt;
            if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
            if (state[sid]) {&lt;br /&gt;
                $body.show();&lt;br /&gt;
                $header.removeClass(&#039;xn-collapsed&#039;);&lt;br /&gt;
            } else {&lt;br /&gt;
                $body.hide();&lt;br /&gt;
                $header.addClass(&#039;xn-collapsed&#039;);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function loadState() {&lt;br /&gt;
        try { return JSON.parse(localStorage.getItem(COLLAPSE_KEY) || &#039;{}&#039;); }&lt;br /&gt;
        catch (e) { return {}; }&lt;br /&gt;
    }&lt;br /&gt;
    function saveState(s) {&lt;br /&gt;
        try { localStorage.setItem(COLLAPSE_KEY, JSON.stringify(s)); }&lt;br /&gt;
        catch (e) {}&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $(init);&lt;br /&gt;
&lt;br /&gt;
})(jQuery, mediaWiki);&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://xiarenwiki.com/index.php?title=%E6%96%87%E4%BB%B6:Xiaren_Warrior.jpg&amp;diff=13</id>
		<title>文件:Xiaren Warrior.jpg</title>
		<link rel="alternate" type="text/html" href="https://xiarenwiki.com/index.php?title=%E6%96%87%E4%BB%B6:Xiaren_Warrior.jpg&amp;diff=13"/>
		<updated>2026-07-26T10:20:41Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script：​== 摘要 ==
Importing file
&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 摘要 ==&lt;br /&gt;
Importing file&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://xiarenwiki.com/index.php?title=%E6%96%87%E4%BB%B6:Xiaren_Monk.jpg&amp;diff=12</id>
		<title>文件:Xiaren Monk.jpg</title>
		<link rel="alternate" type="text/html" href="https://xiarenwiki.com/index.php?title=%E6%96%87%E4%BB%B6:Xiaren_Monk.jpg&amp;diff=12"/>
		<updated>2026-07-26T10:20:41Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script：​== 摘要 ==
Importing file
&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 摘要 ==&lt;br /&gt;
Importing file&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://xiarenwiki.com/index.php?title=%E6%96%87%E4%BB%B6:Xiaren_Scholar.jpg&amp;diff=11</id>
		<title>文件:Xiaren Scholar.jpg</title>
		<link rel="alternate" type="text/html" href="https://xiarenwiki.com/index.php?title=%E6%96%87%E4%BB%B6:Xiaren_Scholar.jpg&amp;diff=11"/>
		<updated>2026-07-26T10:20:40Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script：​== 摘要 ==
Importing file
&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 摘要 ==&lt;br /&gt;
Importing file&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>