<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://olighker.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wikiadmin</id>
	<title>技术文档中心 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://olighker.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wikiadmin"/>
	<link rel="alternate" type="text/html" href="https://olighker.com/wiki/Special:Contributions/Wikiadmin"/>
	<updated>2026-07-28T06:42:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=192</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=192"/>
		<updated>2026-07-26T16:03:30Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release cd2b48a90477&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:root {&lt;br /&gt;
  --lcd-blue: #63b7e8;&lt;br /&gt;
  --lcd-blue-dark: #258ac4;&lt;br /&gt;
  --lcd-ink: #233245;&lt;br /&gt;
  --lcd-muted: #66758a;&lt;br /&gt;
  --lcd-line: #dfe7ef;&lt;br /&gt;
  --lcd-panel: #f6f9fc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Keep the active table-of-contents state aligned with module title bars. */&lt;br /&gt;
.citizen-toc .citizen-toc-list-item--active &amp;gt; .citizen-toc-link {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.citizen-toc .citizen-toc-indicator {&lt;br /&gt;
  background-color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make homepage catalog groups distinct from their nested module links. */&lt;br /&gt;
body.page-Main_Page&lt;br /&gt;
  .citizen-page-sidebar&lt;br /&gt;
  .citizen-toc-list-item.citizen-toc-level-1&lt;br /&gt;
  &amp;gt; .citizen-toc-link:not(.citizen-toc-top) {&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 精简 Citizen 主菜单，仅保留 Sidebar 中的三个核心入口。 */&lt;br /&gt;
#citizen-main-menu #p-navigation &amp;gt; .citizen-menu__heading,&lt;br /&gt;
#citizen-main-menu #t-specialpages,&lt;br /&gt;
#citizen-main-menu #t-upload {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide the Citizen main-menu toggle and drawer on every page. */&lt;br /&gt;
.citizen-drawer.citizen-header__item {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏所有页面底部的页面信息、操作栏和完整站点页脚。 */&lt;br /&gt;
.citizen-page-footer,&lt;br /&gt;
.citizen-page-actions,&lt;br /&gt;
.mw-footer.citizen-footer {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首页模块标题不显示章节编辑入口，后台和其他页面编辑功能保持不变。 */&lt;br /&gt;
body.page-Main_Page .mw-editsection {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 产品二级页：隐藏章节编辑入口及滚动后的粘性操作按钮组。 */&lt;br /&gt;
body:has(.lcd-product__hero) .mw-editsection,&lt;br /&gt;
body:has(.lcd-product__hero) .citizen-sticky-header-end {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Product detail pages: remove the site tagline and publication badge without placeholders. */&lt;br /&gt;
body:has(.lcd-product__hero) #siteSub,&lt;br /&gt;
body:has(.lcd-product__hero) .citizen-sticky-header-page-tagline,&lt;br /&gt;
body:has(.lcd-product__hero) .lcd-product__status {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 首页桌面版式：将 Citizen 的页面信息与目录侧栏放到正文左侧，&lt;br /&gt;
 * 并限制整体版心宽度，在宽屏上保留对称留白。&lt;br /&gt;
 */&lt;br /&gt;
@media (min-width: 1200px) {&lt;br /&gt;
  body.page-Main_Page .citizen-body-container {&lt;br /&gt;
    width: min(100%, 91.5rem);&lt;br /&gt;
    margin-inline: auto;&lt;br /&gt;
    grid-template-columns: minmax(12rem, 15rem) minmax(0, 67.5rem);&lt;br /&gt;
    column-gap: 5rem;&lt;br /&gt;
    grid-template-areas:&lt;br /&gt;
      &amp;quot;sidebar content&amp;quot;&lt;br /&gt;
      &amp;quot;footer footer&amp;quot;;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  body.page-Main_Page&lt;br /&gt;
    .citizen-page-sidebar&lt;br /&gt;
    .citizen-toc-link:not(.citizen-toc-top) {&lt;br /&gt;
    height: auto;&lt;br /&gt;
    min-height: 2rem;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
    overflow-wrap: anywhere;&lt;br /&gt;
    text-overflow: clip;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  aspect-ratio: 4 / 1;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 12px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 8px rgba(38, 68, 94, .1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport,&lt;br /&gt;
.lcd-home-carousel__slide,&lt;br /&gt;
.lcd-home-carousel__slide &amp;gt; p,&lt;br /&gt;
.lcd-home-carousel__slide .mw-file-element {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport {&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  opacity: 0;&lt;br /&gt;
  transition: visibility 0s linear .4s, opacity .4s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide--active {&lt;br /&gt;
  visibility: visible;&lt;br /&gt;
  opacity: 1;&lt;br /&gt;
  transition-delay: 0s;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide &amp;gt; p {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide .mw-file-element {&lt;br /&gt;
  display: block;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dots {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  z-index: 2;&lt;br /&gt;
  bottom: clamp(.4rem, 1.1vw, .75rem);&lt;br /&gt;
  left: 50%;&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: .55rem;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  padding: .3rem .45rem;&lt;br /&gt;
  transform: translateX(-50%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot {&lt;br /&gt;
  width: .68rem;&lt;br /&gt;
  height: .68rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border: 1px solid rgba(35, 50, 69, .38);&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(255, 255, 255, .88);&lt;br /&gt;
  box-shadow: 0 1px 3px rgba(35, 50, 69, .28);&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot[aria-current=&amp;quot;true&amp;quot;] {&lt;br /&gt;
  border-color: #237f7f;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot:focus-visible {&lt;br /&gt;
  outline: 2px solid #fff;&lt;br /&gt;
  outline-offset: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport &amp;gt; p,&lt;br /&gt;
.lcd-home-carousel &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module {&lt;br /&gt;
  margin: 1.75rem 0 2.5rem;&lt;br /&gt;
  scroll-margin-top: 5rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module__intro {&lt;br /&gt;
  max-width: 58rem;&lt;br /&gt;
  margin: -.25rem 0 1rem;&lt;br /&gt;
  color: var(--lcd-muted);&lt;br /&gt;
  font-size: 1rem;&lt;br /&gt;
  line-height: 1.65;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module__tab {&lt;br /&gt;
  margin: 0 0 1rem;&lt;br /&gt;
  padding: .68rem 1rem;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  letter-spacing: .02em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(4, minmax(0, 1fr));&lt;br /&gt;
  gap: 1.1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 7px rgba(38, 68, 94, .11);&lt;br /&gt;
  transition: transform .16s ease, box-shadow .16s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card:hover {&lt;br /&gt;
  transform: translateY(-2px);&lt;br /&gt;
  box-shadow: 0 7px 18px rgba(38, 68, 94, .16);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .65rem;&lt;br /&gt;
  background: #f8fafc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media a,&lt;br /&gt;
.lcd-card__media .mw-file-description {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__body {&lt;br /&gt;
  padding: .85rem .8rem .95rem;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title {&lt;br /&gt;
  min-height: 2.7em;&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  font-weight: 600;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title a {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__model {&lt;br /&gt;
  margin-top: .35rem;&lt;br /&gt;
  color: #27384b;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__hero {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(15rem, .8fr) minmax(0, 1.2fr);&lt;br /&gt;
  gap: 1.5rem;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  padding: 1.25rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 10px;&lt;br /&gt;
  background: var(--lcd-panel);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__summary {&lt;br /&gt;
  align-self: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__kicker {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__model {&lt;br /&gt;
  margin: .35rem 0 .6rem;&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
  font-size: clamp(1.35rem, 3vw, 2rem);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__status {&lt;br /&gt;
  margin-bottom: .85rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  gap: .75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery &amp;gt; div {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .6rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 7px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  table-layout: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table th:first-child {&lt;br /&gt;
  width: 10rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-status {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  padding: .18rem .55rem;&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: #244158;&lt;br /&gt;
  background: #dceff9;&lt;br /&gt;
  font-size: .84rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  padding: 1rem 1.15rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-left: 4px solid var(--lcd-blue);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__name {&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__type {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  margin-right: .6rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__body {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: .25rem .75rem;&lt;br /&gt;
  align-items: baseline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__action {&lt;br /&gt;
  margin-top: .65rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__meta,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  color: var(--lcd-muted);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-manager-links {&lt;br /&gt;
  columns: 2 18rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin-bottom: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable th {&lt;br /&gt;
  width: 11rem;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable input,&lt;br /&gt;
.formtable select,&lt;br /&gt;
.formtable textarea {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  max-width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 1000px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 620px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
    gap: .75rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__gallery {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-card__title {&lt;br /&gt;
    min-height: 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    padding: .85rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-spec-table th:first-child {&lt;br /&gt;
    width: 7.5rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .formtable,&lt;br /&gt;
  .formtable tbody,&lt;br /&gt;
  .formtable tr,&lt;br /&gt;
  .formtable th,&lt;br /&gt;
  .formtable td {&lt;br /&gt;
    display: block;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/GettingStarted&amp;diff=191</id>
		<title>技术文档中心:首页模块/GettingStarted</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/GettingStarted&amp;diff=191"/>
		<updated>2026-07-26T15:19:33Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 4bd0b98&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=显示模块快速入门套件|图片=Demo-getting-started.png|标题=USB-C Power Adapter|型号=TEST-PWR-USB-C|替代文本=Test image for a USB-C power adapter}}&lt;br /&gt;
{{首页产品卡|页面=显示模块快速入门套件|图片=Demo-getting-started.png|标题=Desktop Power Supply|型号=TEST-PWR-DESK|替代文本=Test image for a desktop power supply}}&lt;br /&gt;
{{首页产品卡|页面=显示模块快速入门套件|图片=Demo-getting-started.png|标题=Multi-Port Charger|型号=TEST-PWR-MULTI|替代文本=Test image for a multi-port charger}}&lt;br /&gt;
{{首页产品卡|页面=显示模块快速入门套件|图片=Demo-getting-started.png|标题=Development Board Power Kit|型号=TEST-PWR-KIT|替代文本=Test image for a development board power kit}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=190</id>
		<title>技术文档中心:首页模块/开发板</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=190"/>
		<updated>2026-07-26T15:19:32Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 4bd0b98&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=多接口嵌入式开发板|图片=Demo-dev-board.png|标题=Arduino Control Board|型号=TEST-ARD-MAIN-01|替代文本=Test image for an Arduino control board}}&lt;br /&gt;
{{首页产品卡|页面=多接口嵌入式开发板|图片=Demo-dev-board.png|标题=Arduino Sensor Board|型号=TEST-ARD-MAIN-02|替代文本=Test image for an Arduino sensor board}}&lt;br /&gt;
{{首页产品卡|页面=多接口嵌入式开发板|图片=Demo-dev-board.png|标题=Arduino Display Controller|型号=TEST-ARD-MAIN-03|替代文本=Test image for an Arduino display controller}}&lt;br /&gt;
{{首页产品卡|页面=多接口嵌入式开发板|图片=Demo-dev-board.png|标题=Arduino Prototyping Board|型号=TEST-ARD-MAIN-04|替代文本=Test image for an Arduino prototyping board}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/RGB&amp;diff=189</id>
		<title>技术文档中心:首页模块/RGB</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/RGB&amp;diff=189"/>
		<updated>2026-07-26T15:19:32Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 4bd0b98&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 RGB 显示模块|图片=Demo-rgb-display.png|标题=HDMI Cable|型号=TEST-CABLE-HDMI|替代文本=Test image for an HDMI cable}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 RGB 显示模块|图片=Demo-rgb-display.png|标题=USB-C Data Cable|型号=TEST-CABLE-USBC|替代文本=Test image for a USB-C data cable}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 RGB 显示模块|图片=Demo-rgb-display.png|标题=GPIO Ribbon Cable|型号=TEST-CABLE-GPIO|替代文本=Test image for a GPIO ribbon cable}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 RGB 显示模块|图片=Demo-rgb-display.png|标题=Display Adapter Cable|型号=TEST-CABLE-DISP|替代文本=Test image for a display adapter cable}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/OLED&amp;diff=188</id>
		<title>技术文档中心:首页模块/OLED</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/OLED&amp;diff=188"/>
		<updated>2026-07-26T15:19:31Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 4bd0b98&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=1.3英寸 OLED 显示模块|图片=Demo-oled-display.png|标题=0.96-inch OLED Display|型号=TEST-OLED-096|替代文本=Test image for a compact OLED display}}&lt;br /&gt;
{{首页产品卡|页面=1.3英寸 OLED 显示模块|图片=Demo-oled-display.png|标题=1.3-inch OLED Display|型号=TEST-OLED-130|替代文本=Test image for an OLED display module}}&lt;br /&gt;
{{首页产品卡|页面=1.3英寸 OLED 显示模块|图片=Demo-oled-display.png|标题=2.42-inch OLED Display|型号=TEST-OLED-242|替代文本=Test image for a large OLED display}}&lt;br /&gt;
{{首页产品卡|页面=1.3英寸 OLED 显示模块|图片=Demo-oled-display.png|标题=OLED Development Kit|型号=TEST-OLED-KIT|替代文本=Test image for an OLED development kit}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/%E5%B9%B6%E5%8F%A3&amp;diff=187</id>
		<title>技术文档中心:首页模块/并口</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/%E5%B9%B6%E5%8F%A3&amp;diff=187"/>
		<updated>2026-07-26T15:19:31Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 4bd0b98&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=7英寸 RGB 并口显示模块|图片=Demo-parallel-display.png|标题=2.13-inch E-Paper Display|型号=TEST-EPD-213|替代文本=Test image for a compact e-paper display}}&lt;br /&gt;
{{首页产品卡|页面=7英寸 RGB 并口显示模块|图片=Demo-parallel-display.png|标题=4.2-inch E-Paper Display|型号=TEST-EPD-420|替代文本=Test image for a medium e-paper display}}&lt;br /&gt;
{{首页产品卡|页面=7英寸 RGB 并口显示模块|图片=Demo-parallel-display.png|标题=7.5-inch E-Paper Display|型号=TEST-EPD-750|替代文本=Test image for a large e-paper display}}&lt;br /&gt;
{{首页产品卡|页面=7英寸 RGB 并口显示模块|图片=Demo-parallel-display.png|标题=E-Paper Development Kit|型号=TEST-EPD-KIT|替代文本=Test image for an e-paper development kit}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/USB%E5%89%AF%E5%B1%8F&amp;diff=186</id>
		<title>技术文档中心:首页模块/USB副屏</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/USB%E5%89%AF%E5%B1%8F&amp;diff=186"/>
		<updated>2026-07-26T15:19:30Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 4bd0b98&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 USB 系统状态副屏|图片=Demo-usb-monitor.png|标题=System Monitor Display|型号=TEST-RPI-DIY-01|替代文本=Test image for a system monitor display}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 USB 系统状态副屏|图片=Demo-usb-monitor.png|标题=Smart Home Dashboard|型号=TEST-RPI-DIY-02|替代文本=Test image for a smart home dashboard}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 USB 系统状态副屏|图片=Demo-usb-monitor.png|标题=Portable Information Panel|型号=TEST-RPI-DIY-03|替代文本=Test image for a portable information panel}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 USB 系统状态副屏|图片=Demo-usb-monitor.png|标题=Network Status Console|型号=TEST-RPI-DIY-04|替代文本=Test image for a network status console}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/ESP32&amp;diff=185</id>
		<title>技术文档中心:首页模块/ESP32</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/ESP32&amp;diff=185"/>
		<updated>2026-07-26T15:19:30Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 4bd0b98&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=4.3英寸 ESP32-S3 智能显示板|图片=Demo-esp32-display.png|标题=Raspberry Pi Main Board|型号=TEST-RPI-MAIN-01|替代文本=Test image for a Raspberry Pi main board}}&lt;br /&gt;
{{首页产品卡|页面=4.3英寸 ESP32-S3 智能显示板|图片=Demo-esp32-display.png|标题=Compact Linux Controller|型号=TEST-RPI-MAIN-02|替代文本=Test image for a compact Linux controller}}&lt;br /&gt;
{{首页产品卡|页面=4.3英寸 ESP32-S3 智能显示板|图片=Demo-esp32-display.png|标题=Edge Computing Board|型号=TEST-RPI-MAIN-03|替代文本=Test image for an edge computing board}}&lt;br /&gt;
{{首页产品卡|页面=4.3英寸 ESP32-S3 智能显示板|图片=Demo-esp32-display.png|标题=Raspberry Pi Starter Board|型号=TEST-RPI-MAIN-04|替代文本=Test image for a Raspberry Pi starter board}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/SPI&amp;diff=184</id>
		<title>技术文档中心:首页模块/SPI</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/SPI&amp;diff=184"/>
		<updated>2026-07-26T15:19:30Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 4bd0b98&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=3.2英寸 SPI 串口显示模块|图片=Demo-spi-display.png|标题=Arduino Weather Station|型号=TEST-ARD-DIY-01|替代文本=Test image for an Arduino weather station}}&lt;br /&gt;
{{首页产品卡|页面=3.2英寸 SPI 串口显示模块|图片=Demo-spi-display.png|标题=Arduino Smart Display|型号=TEST-ARD-DIY-02|替代文本=Test image for an Arduino smart display}}&lt;br /&gt;
{{首页产品卡|页面=3.2英寸 SPI 串口显示模块|图片=Demo-spi-display.png|标题=Arduino Motor Controller|型号=TEST-ARD-DIY-03|替代文本=Test image for an Arduino motor controller}}&lt;br /&gt;
{{首页产品卡|页面=3.2英寸 SPI 串口显示模块|图片=Demo-spi-display.png|标题=Arduino Home Automation Demo|型号=TEST-ARD-DIY-04|替代文本=Test image for an Arduino home automation demo}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/Arduino&amp;diff=183</id>
		<title>技术文档中心:首页模块/Arduino</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/Arduino&amp;diff=183"/>
		<updated>2026-07-26T15:19:29Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 4bd0b98&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=2.8英寸 Arduino 显示扩展板|图片=Demo-arduino-display.png|标题=Arduino LCD Expansion Board|型号=TEST-ARD-EXP-01|替代文本=Test image for an Arduino LCD expansion board}}&lt;br /&gt;
{{首页产品卡|页面=2.8英寸 Arduino 显示扩展板|图片=Demo-arduino-display.png|标题=Arduino I/O Expansion Board|型号=TEST-ARD-EXP-02|替代文本=Test image for an Arduino I O expansion board}}&lt;br /&gt;
{{首页产品卡|页面=2.8英寸 Arduino 显示扩展板|图片=Demo-arduino-display.png|标题=Arduino Sensor Expansion Board|型号=TEST-ARD-EXP-03|替代文本=Test image for an Arduino sensor expansion board}}&lt;br /&gt;
{{首页产品卡|页面=2.8英寸 Arduino 显示扩展板|图片=Demo-arduino-display.png|标题=Arduino Communication Board|型号=TEST-ARD-EXP-04|替代文本=Test image for an Arduino communication board}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/MHS-GPIO&amp;diff=182</id>
		<title>技术文档中心:首页模块/MHS-GPIO</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/MHS-GPIO&amp;diff=182"/>
		<updated>2026-07-26T15:19:29Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 4bd0b98&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 GPIO 触控显示屏|图片=Demo-gpio-touch.png|标题=Raspberry Pi GPIO Display|型号=TEST-RPI-EXP-01|替代文本=Test image for a Raspberry Pi GPIO display}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 GPIO 触控显示屏|图片=Demo-gpio-touch.png|标题=Raspberry Pi Touchscreen HAT|型号=TEST-RPI-EXP-02|替代文本=Test image for a Raspberry Pi touchscreen HAT}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 GPIO 触控显示屏|图片=Demo-gpio-touch.png|标题=Raspberry Pi Sensor HAT|型号=TEST-RPI-EXP-03|替代文本=Test image for a Raspberry Pi sensor HAT}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 GPIO 触控显示屏|图片=Demo-gpio-touch.png|标题=Raspberry Pi Interface Board|型号=TEST-RPI-EXP-04|替代文本=Test image for a Raspberry Pi interface board}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/HDMI&amp;diff=181</id>
		<title>技术文档中心:首页模块/HDMI</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/HDMI&amp;diff=181"/>
		<updated>2026-07-26T15:19:28Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 4bd0b98&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 HDMI 开发显示屏|图片=Demo-hdmi-display.png|标题=3.5-inch LCD Display|型号=TEST-LCD-350|替代文本=Test image for a compact LCD display}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 HDMI 开发显示屏|图片=Demo-hdmi-display.png|标题=5-inch HDMI LCD|型号=TEST-LCD-500|替代文本=Test image for an HDMI LCD module}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 HDMI 开发显示屏|图片=Demo-hdmi-display.png|标题=7-inch LCD Display|型号=TEST-LCD-700|替代文本=Test image for a large LCD display}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 HDMI 开发显示屏|图片=Demo-hdmi-display.png|标题=LCD Development Kit|型号=TEST-LCD-KIT|替代文本=Test image for an LCD development kit}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/GettingStarted&amp;diff=180</id>
		<title>技术文档中心:首页模块/GettingStarted</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/GettingStarted&amp;diff=180"/>
		<updated>2026-07-26T15:15:04Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 3798ad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=显示模块快速入门套件|图片=Demo-getting-started.png|名称=USB-C Power Adapter|型号=TEST-PWR-USB-C|替代文字=Test image for a USB-C power adapter}}&lt;br /&gt;
{{首页产品卡|页面=显示模块快速入门套件|图片=Demo-getting-started.png|名称=Desktop Power Supply|型号=TEST-PWR-DESK|替代文字=Test image for a desktop power supply}}&lt;br /&gt;
{{首页产品卡|页面=显示模块快速入门套件|图片=Demo-getting-started.png|名称=Multi-Port Charger|型号=TEST-PWR-MULTI|替代文字=Test image for a multi-port charger}}&lt;br /&gt;
{{首页产品卡|页面=显示模块快速入门套件|图片=Demo-getting-started.png|名称=Development Board Power Kit|型号=TEST-PWR-KIT|替代文字=Test image for a development board power kit}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=179</id>
		<title>技术文档中心:首页模块/开发板</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=179"/>
		<updated>2026-07-26T15:15:04Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 3798ad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=多接口嵌入式开发板|图片=Demo-dev-board.png|名称=Arduino Control Board|型号=TEST-ARD-MAIN-01|替代文字=Test image for an Arduino control board}}&lt;br /&gt;
{{首页产品卡|页面=多接口嵌入式开发板|图片=Demo-dev-board.png|名称=Arduino Sensor Board|型号=TEST-ARD-MAIN-02|替代文字=Test image for an Arduino sensor board}}&lt;br /&gt;
{{首页产品卡|页面=多接口嵌入式开发板|图片=Demo-dev-board.png|名称=Arduino Display Controller|型号=TEST-ARD-MAIN-03|替代文字=Test image for an Arduino display controller}}&lt;br /&gt;
{{首页产品卡|页面=多接口嵌入式开发板|图片=Demo-dev-board.png|名称=Arduino Prototyping Board|型号=TEST-ARD-MAIN-04|替代文字=Test image for an Arduino prototyping board}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/RGB&amp;diff=178</id>
		<title>技术文档中心:首页模块/RGB</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/RGB&amp;diff=178"/>
		<updated>2026-07-26T15:15:03Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 3798ad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 RGB 显示模块|图片=Demo-rgb-display.png|名称=HDMI Cable|型号=TEST-CABLE-HDMI|替代文字=Test image for an HDMI cable}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 RGB 显示模块|图片=Demo-rgb-display.png|名称=USB-C Data Cable|型号=TEST-CABLE-USBC|替代文字=Test image for a USB-C data cable}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 RGB 显示模块|图片=Demo-rgb-display.png|名称=GPIO Ribbon Cable|型号=TEST-CABLE-GPIO|替代文字=Test image for a GPIO ribbon cable}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 RGB 显示模块|图片=Demo-rgb-display.png|名称=Display Adapter Cable|型号=TEST-CABLE-DISP|替代文字=Test image for a display adapter cable}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/OLED&amp;diff=177</id>
		<title>技术文档中心:首页模块/OLED</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/OLED&amp;diff=177"/>
		<updated>2026-07-26T15:15:03Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 3798ad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=1.3英寸 OLED 显示模块|图片=Demo-oled-display.png|名称=0.96-inch OLED Display|型号=TEST-OLED-096|替代文字=Test image for a compact OLED display}}&lt;br /&gt;
{{首页产品卡|页面=1.3英寸 OLED 显示模块|图片=Demo-oled-display.png|名称=1.3-inch OLED Display|型号=TEST-OLED-130|替代文字=Test image for an OLED display module}}&lt;br /&gt;
{{首页产品卡|页面=1.3英寸 OLED 显示模块|图片=Demo-oled-display.png|名称=2.42-inch OLED Display|型号=TEST-OLED-242|替代文字=Test image for a large OLED display}}&lt;br /&gt;
{{首页产品卡|页面=1.3英寸 OLED 显示模块|图片=Demo-oled-display.png|名称=OLED Development Kit|型号=TEST-OLED-KIT|替代文字=Test image for an OLED development kit}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/%E5%B9%B6%E5%8F%A3&amp;diff=176</id>
		<title>技术文档中心:首页模块/并口</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/%E5%B9%B6%E5%8F%A3&amp;diff=176"/>
		<updated>2026-07-26T15:15:03Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 3798ad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=7英寸 RGB 并口显示模块|图片=Demo-parallel-display.png|名称=2.13-inch E-Paper Display|型号=TEST-EPD-213|替代文字=Test image for a compact e-paper display}}&lt;br /&gt;
{{首页产品卡|页面=7英寸 RGB 并口显示模块|图片=Demo-parallel-display.png|名称=4.2-inch E-Paper Display|型号=TEST-EPD-420|替代文字=Test image for a medium e-paper display}}&lt;br /&gt;
{{首页产品卡|页面=7英寸 RGB 并口显示模块|图片=Demo-parallel-display.png|名称=7.5-inch E-Paper Display|型号=TEST-EPD-750|替代文字=Test image for a large e-paper display}}&lt;br /&gt;
{{首页产品卡|页面=7英寸 RGB 并口显示模块|图片=Demo-parallel-display.png|名称=E-Paper Development Kit|型号=TEST-EPD-KIT|替代文字=Test image for an e-paper development kit}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/USB%E5%89%AF%E5%B1%8F&amp;diff=175</id>
		<title>技术文档中心:首页模块/USB副屏</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/USB%E5%89%AF%E5%B1%8F&amp;diff=175"/>
		<updated>2026-07-26T15:15:02Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 3798ad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 USB 系统状态副屏|图片=Demo-usb-monitor.png|名称=System Monitor Display|型号=TEST-RPI-DIY-01|替代文字=Test image for a system monitor display}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 USB 系统状态副屏|图片=Demo-usb-monitor.png|名称=Smart Home Dashboard|型号=TEST-RPI-DIY-02|替代文字=Test image for a smart home dashboard}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 USB 系统状态副屏|图片=Demo-usb-monitor.png|名称=Portable Information Panel|型号=TEST-RPI-DIY-03|替代文字=Test image for a portable information panel}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 USB 系统状态副屏|图片=Demo-usb-monitor.png|名称=Network Status Console|型号=TEST-RPI-DIY-04|替代文字=Test image for a network status console}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/ESP32&amp;diff=174</id>
		<title>技术文档中心:首页模块/ESP32</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/ESP32&amp;diff=174"/>
		<updated>2026-07-26T15:15:02Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 3798ad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=4.3英寸 ESP32-S3 智能显示板|图片=Demo-esp32-display.png|名称=Raspberry Pi Main Board|型号=TEST-RPI-MAIN-01|替代文字=Test image for a Raspberry Pi main board}}&lt;br /&gt;
{{首页产品卡|页面=4.3英寸 ESP32-S3 智能显示板|图片=Demo-esp32-display.png|名称=Compact Linux Controller|型号=TEST-RPI-MAIN-02|替代文字=Test image for a compact Linux controller}}&lt;br /&gt;
{{首页产品卡|页面=4.3英寸 ESP32-S3 智能显示板|图片=Demo-esp32-display.png|名称=Edge Computing Board|型号=TEST-RPI-MAIN-03|替代文字=Test image for an edge computing board}}&lt;br /&gt;
{{首页产品卡|页面=4.3英寸 ESP32-S3 智能显示板|图片=Demo-esp32-display.png|名称=Raspberry Pi Starter Board|型号=TEST-RPI-MAIN-04|替代文字=Test image for a Raspberry Pi starter board}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/SPI&amp;diff=173</id>
		<title>技术文档中心:首页模块/SPI</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/SPI&amp;diff=173"/>
		<updated>2026-07-26T15:15:01Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 3798ad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=3.2英寸 SPI 串口显示模块|图片=Demo-spi-display.png|名称=Arduino Weather Station|型号=TEST-ARD-DIY-01|替代文字=Test image for an Arduino weather station}}&lt;br /&gt;
{{首页产品卡|页面=3.2英寸 SPI 串口显示模块|图片=Demo-spi-display.png|名称=Arduino Smart Display|型号=TEST-ARD-DIY-02|替代文字=Test image for an Arduino smart display}}&lt;br /&gt;
{{首页产品卡|页面=3.2英寸 SPI 串口显示模块|图片=Demo-spi-display.png|名称=Arduino Motor Controller|型号=TEST-ARD-DIY-03|替代文字=Test image for an Arduino motor controller}}&lt;br /&gt;
{{首页产品卡|页面=3.2英寸 SPI 串口显示模块|图片=Demo-spi-display.png|名称=Arduino Home Automation Demo|型号=TEST-ARD-DIY-04|替代文字=Test image for an Arduino home automation demo}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/Arduino&amp;diff=172</id>
		<title>技术文档中心:首页模块/Arduino</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/Arduino&amp;diff=172"/>
		<updated>2026-07-26T15:15:01Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 3798ad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=2.8英寸 Arduino 显示扩展板|图片=Demo-arduino-display.png|名称=Arduino LCD Expansion Board|型号=TEST-ARD-EXP-01|替代文字=Test image for an Arduino LCD expansion board}}&lt;br /&gt;
{{首页产品卡|页面=2.8英寸 Arduino 显示扩展板|图片=Demo-arduino-display.png|名称=Arduino I/O Expansion Board|型号=TEST-ARD-EXP-02|替代文字=Test image for an Arduino I O expansion board}}&lt;br /&gt;
{{首页产品卡|页面=2.8英寸 Arduino 显示扩展板|图片=Demo-arduino-display.png|名称=Arduino Sensor Expansion Board|型号=TEST-ARD-EXP-03|替代文字=Test image for an Arduino sensor expansion board}}&lt;br /&gt;
{{首页产品卡|页面=2.8英寸 Arduino 显示扩展板|图片=Demo-arduino-display.png|名称=Arduino Communication Board|型号=TEST-ARD-EXP-04|替代文字=Test image for an Arduino communication board}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/MHS-GPIO&amp;diff=171</id>
		<title>技术文档中心:首页模块/MHS-GPIO</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/MHS-GPIO&amp;diff=171"/>
		<updated>2026-07-26T15:15:00Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 3798ad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 GPIO 触控显示屏|图片=Demo-gpio-touch.png|名称=Raspberry Pi GPIO Display|型号=TEST-RPI-EXP-01|替代文字=Test image for a Raspberry Pi GPIO display}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 GPIO 触控显示屏|图片=Demo-gpio-touch.png|名称=Raspberry Pi Touchscreen HAT|型号=TEST-RPI-EXP-02|替代文字=Test image for a Raspberry Pi touchscreen HAT}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 GPIO 触控显示屏|图片=Demo-gpio-touch.png|名称=Raspberry Pi Sensor HAT|型号=TEST-RPI-EXP-03|替代文字=Test image for a Raspberry Pi sensor HAT}}&lt;br /&gt;
{{首页产品卡|页面=3.5英寸 GPIO 触控显示屏|图片=Demo-gpio-touch.png|名称=Raspberry Pi Interface Board|型号=TEST-RPI-EXP-04|替代文字=Test image for a Raspberry Pi interface board}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/HDMI&amp;diff=170</id>
		<title>技术文档中心:首页模块/HDMI</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/HDMI&amp;diff=170"/>
		<updated>2026-07-26T15:15:00Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 3798ad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页模块}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 HDMI 开发显示屏|图片=Demo-hdmi-display.png|名称=3.5-inch LCD Display|型号=TEST-LCD-350|替代文字=Test image for a compact LCD display}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 HDMI 开发显示屏|图片=Demo-hdmi-display.png|名称=5-inch HDMI LCD|型号=TEST-LCD-500|替代文字=Test image for an HDMI LCD module}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 HDMI 开发显示屏|图片=Demo-hdmi-display.png|名称=7-inch LCD Display|型号=TEST-LCD-700|替代文字=Test image for a large LCD display}}&lt;br /&gt;
{{首页产品卡|页面=5英寸 HDMI 开发显示屏|图片=Demo-hdmi-display.png|名称=LCD Development Kit|型号=TEST-LCD-KIT|替代文字=Test image for an LCD development kit}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E7%9B%AE%E5%BD%95%E9%85%8D%E7%BD%AE&amp;diff=169</id>
		<title>技术文档中心:首页目录配置</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E7%9B%AE%E5%BD%95%E9%85%8D%E7%BD%AE&amp;diff=169"/>
		<updated>2026-07-26T15:14:59Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Homepage catalog refresh 3798ad2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#default_form:首页目录}}&lt;br /&gt;
== Displays ==&lt;br /&gt;
{{首页模块入口|标题=E-Paper|标签=E-Paper Displays|简介=Explore low-power e-paper modules for labels, dashboards, and always-on information displays.|配置页=Project:首页模块/并口}}&lt;br /&gt;
{{首页模块入口|标题=OLED|标签=OLED Displays|简介=Browse compact OLED modules designed for clear graphics, status panels, and embedded user interfaces.|配置页=Project:首页模块/OLED}}&lt;br /&gt;
{{首页模块入口|标题=LCD|标签=LCD Displays|简介=Discover LCD solutions for development boards, control panels, prototypes, and interactive projects.|配置页=Project:首页模块/HDMI}}&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
{{首页模块入口|标题=Main Boards|标签=Arduino Main Boards|简介=Start with flexible Arduino-compatible controller boards for learning, prototyping, and product development.|配置页=Project:首页模块/开发板}}&lt;br /&gt;
{{首页模块入口|标题=Expansion Boards|标签=Arduino Expansion Boards|简介=Extend Arduino projects with display, sensor, communication, and general-purpose expansion boards.|配置页=Project:首页模块/Arduino}}&lt;br /&gt;
{{首页模块入口|标题=DIY Projects|标签=Arduino DIY Projects|简介=Build practical Arduino demonstrations covering automation, monitoring, motion, and interactive displays.|配置页=Project:首页模块/SPI}}&lt;br /&gt;
&lt;br /&gt;
== Raspberry Pi ==&lt;br /&gt;
{{首页模块入口|标题=Main Boards|标签=Raspberry Pi Main Boards|简介=Explore compact Linux-ready computing boards for education, embedded control, and edge applications.|配置页=Project:首页模块/ESP32}}&lt;br /&gt;
{{首页模块入口|标题=Expansion Boards|标签=Raspberry Pi Expansion Boards|简介=Add displays, GPIO interfaces, sensors, and connectivity to Raspberry Pi development platforms.|配置页=Project:首页模块/MHS-GPIO}}&lt;br /&gt;
{{首页模块入口|标题=DIY Projects|标签=Raspberry Pi DIY Projects|简介=Create Raspberry Pi dashboards, monitoring systems, smart devices, and connected prototypes.|配置页=Project:首页模块/USB副屏}}&lt;br /&gt;
&lt;br /&gt;
== Accessories ==&lt;br /&gt;
{{首页模块入口|标题=Chargers|标签=Chargers and Power|简介=Find test power adapters and charging accessories for development boards and portable projects.|配置页=Project:首页模块/GettingStarted}}&lt;br /&gt;
{{首页模块入口|标题=Cables|标签=Cables and Adapters|简介=Choose test cables and adapters for power, data, display, and GPIO connections.|配置页=Project:首页模块/RGB}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=168</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=168"/>
		<updated>2026-07-26T15:14:29Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release 3798ad2f6f3b&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:root {&lt;br /&gt;
  --lcd-blue: #63b7e8;&lt;br /&gt;
  --lcd-blue-dark: #258ac4;&lt;br /&gt;
  --lcd-ink: #233245;&lt;br /&gt;
  --lcd-muted: #66758a;&lt;br /&gt;
  --lcd-line: #dfe7ef;&lt;br /&gt;
  --lcd-panel: #f6f9fc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Keep the active table-of-contents state aligned with module title bars. */&lt;br /&gt;
.citizen-toc .citizen-toc-list-item--active &amp;gt; .citizen-toc-link {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.citizen-toc .citizen-toc-indicator {&lt;br /&gt;
  background-color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 精简 Citizen 主菜单，仅保留 Sidebar 中的三个核心入口。 */&lt;br /&gt;
#citizen-main-menu #p-navigation &amp;gt; .citizen-menu__heading,&lt;br /&gt;
#citizen-main-menu #t-specialpages,&lt;br /&gt;
#citizen-main-menu #t-upload {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide the Citizen main-menu toggle and drawer on every page. */&lt;br /&gt;
.citizen-drawer.citizen-header__item {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏所有页面底部的页面信息、操作栏和完整站点页脚。 */&lt;br /&gt;
.citizen-page-footer,&lt;br /&gt;
.citizen-page-actions,&lt;br /&gt;
.mw-footer.citizen-footer {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首页模块标题不显示章节编辑入口，后台和其他页面编辑功能保持不变。 */&lt;br /&gt;
body.page-Main_Page .mw-editsection {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 产品二级页：隐藏章节编辑入口及滚动后的粘性操作按钮组。 */&lt;br /&gt;
body:has(.lcd-product__hero) .mw-editsection,&lt;br /&gt;
body:has(.lcd-product__hero) .citizen-sticky-header-end {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Product detail pages: remove the site tagline and publication badge without placeholders. */&lt;br /&gt;
body:has(.lcd-product__hero) #siteSub,&lt;br /&gt;
body:has(.lcd-product__hero) .citizen-sticky-header-page-tagline,&lt;br /&gt;
body:has(.lcd-product__hero) .lcd-product__status {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 首页桌面版式：将 Citizen 的页面信息与目录侧栏放到正文左侧，&lt;br /&gt;
 * 并限制整体版心宽度，在宽屏上保留对称留白。&lt;br /&gt;
 */&lt;br /&gt;
@media (min-width: 1200px) {&lt;br /&gt;
  body.page-Main_Page .citizen-body-container {&lt;br /&gt;
    width: min(100%, 91.5rem);&lt;br /&gt;
    margin-inline: auto;&lt;br /&gt;
    grid-template-columns: minmax(12rem, 15rem) minmax(0, 67.5rem);&lt;br /&gt;
    column-gap: 5rem;&lt;br /&gt;
    grid-template-areas:&lt;br /&gt;
      &amp;quot;sidebar content&amp;quot;&lt;br /&gt;
      &amp;quot;footer footer&amp;quot;;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  body.page-Main_Page&lt;br /&gt;
    .citizen-page-sidebar&lt;br /&gt;
    .citizen-toc-link:not(.citizen-toc-top) {&lt;br /&gt;
    height: auto;&lt;br /&gt;
    min-height: 2rem;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
    overflow-wrap: anywhere;&lt;br /&gt;
    text-overflow: clip;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  aspect-ratio: 4 / 1;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 12px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 8px rgba(38, 68, 94, .1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport,&lt;br /&gt;
.lcd-home-carousel__slide,&lt;br /&gt;
.lcd-home-carousel__slide &amp;gt; p,&lt;br /&gt;
.lcd-home-carousel__slide .mw-file-element {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport {&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  opacity: 0;&lt;br /&gt;
  transition: visibility 0s linear .4s, opacity .4s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide--active {&lt;br /&gt;
  visibility: visible;&lt;br /&gt;
  opacity: 1;&lt;br /&gt;
  transition-delay: 0s;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide &amp;gt; p {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide .mw-file-element {&lt;br /&gt;
  display: block;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dots {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  z-index: 2;&lt;br /&gt;
  bottom: clamp(.4rem, 1.1vw, .75rem);&lt;br /&gt;
  left: 50%;&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: .55rem;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  padding: .3rem .45rem;&lt;br /&gt;
  transform: translateX(-50%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot {&lt;br /&gt;
  width: .68rem;&lt;br /&gt;
  height: .68rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border: 1px solid rgba(35, 50, 69, .38);&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(255, 255, 255, .88);&lt;br /&gt;
  box-shadow: 0 1px 3px rgba(35, 50, 69, .28);&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot[aria-current=&amp;quot;true&amp;quot;] {&lt;br /&gt;
  border-color: #237f7f;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot:focus-visible {&lt;br /&gt;
  outline: 2px solid #fff;&lt;br /&gt;
  outline-offset: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport &amp;gt; p,&lt;br /&gt;
.lcd-home-carousel &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module {&lt;br /&gt;
  margin: 1.75rem 0 2.5rem;&lt;br /&gt;
  scroll-margin-top: 5rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module__intro {&lt;br /&gt;
  max-width: 58rem;&lt;br /&gt;
  margin: -.25rem 0 1rem;&lt;br /&gt;
  color: var(--lcd-muted);&lt;br /&gt;
  font-size: 1rem;&lt;br /&gt;
  line-height: 1.65;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module__tab {&lt;br /&gt;
  margin: 0 0 1rem;&lt;br /&gt;
  padding: .68rem 1rem;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  letter-spacing: .02em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(4, minmax(0, 1fr));&lt;br /&gt;
  gap: 1.1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 7px rgba(38, 68, 94, .11);&lt;br /&gt;
  transition: transform .16s ease, box-shadow .16s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card:hover {&lt;br /&gt;
  transform: translateY(-2px);&lt;br /&gt;
  box-shadow: 0 7px 18px rgba(38, 68, 94, .16);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .65rem;&lt;br /&gt;
  background: #f8fafc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media a,&lt;br /&gt;
.lcd-card__media .mw-file-description {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__body {&lt;br /&gt;
  padding: .85rem .8rem .95rem;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title {&lt;br /&gt;
  min-height: 2.7em;&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  font-weight: 600;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title a {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__model {&lt;br /&gt;
  margin-top: .35rem;&lt;br /&gt;
  color: #27384b;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__hero {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(15rem, .8fr) minmax(0, 1.2fr);&lt;br /&gt;
  gap: 1.5rem;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  padding: 1.25rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 10px;&lt;br /&gt;
  background: var(--lcd-panel);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__summary {&lt;br /&gt;
  align-self: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__kicker {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__model {&lt;br /&gt;
  margin: .35rem 0 .6rem;&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
  font-size: clamp(1.35rem, 3vw, 2rem);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__status {&lt;br /&gt;
  margin-bottom: .85rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  gap: .75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery &amp;gt; div {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .6rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 7px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  table-layout: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table th:first-child {&lt;br /&gt;
  width: 10rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-status {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  padding: .18rem .55rem;&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: #244158;&lt;br /&gt;
  background: #dceff9;&lt;br /&gt;
  font-size: .84rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  padding: 1rem 1.15rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-left: 4px solid var(--lcd-blue);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__name {&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__type {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  margin-right: .6rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__body {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: .25rem .75rem;&lt;br /&gt;
  align-items: baseline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__action {&lt;br /&gt;
  margin-top: .65rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__meta,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  color: var(--lcd-muted);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-manager-links {&lt;br /&gt;
  columns: 2 18rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin-bottom: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable th {&lt;br /&gt;
  width: 11rem;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable input,&lt;br /&gt;
.formtable select,&lt;br /&gt;
.formtable textarea {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  max-width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 1000px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 620px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
    gap: .75rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__gallery {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-card__title {&lt;br /&gt;
    min-height: 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    padding: .85rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-spec-table th:first-child {&lt;br /&gt;
    width: 7.5rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .formtable,&lt;br /&gt;
  .formtable tbody,&lt;br /&gt;
  .formtable tr,&lt;br /&gt;
  .formtable th,&lt;br /&gt;
  .formtable td {&lt;br /&gt;
    display: block;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=Form:%E9%A6%96%E9%A1%B5%E7%9B%AE%E5%BD%95&amp;diff=167</id>
		<title>Form:首页目录</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=Form:%E9%A6%96%E9%A1%B5%E7%9B%AE%E5%BD%95&amp;diff=167"/>
		<updated>2026-07-26T15:14:26Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release 3798ad2f6f3b&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{for template|首页模块入口|multiple|label=首页模块|add button text=添加模块|displayed fields when minimized=标题}}}&lt;br /&gt;
{| class=&amp;quot;formtable&amp;quot;&lt;br /&gt;
! 模块标题&lt;br /&gt;
| {{{field|标题|mandatory|size=60}}}&lt;br /&gt;
|-&lt;br /&gt;
! 标签栏文字&lt;br /&gt;
| {{{field|标签|mandatory|size=40}}}&lt;br /&gt;
|-&lt;br /&gt;
! 模块英文介绍&lt;br /&gt;
| {{{field|简介|mandatory|input type=textarea|rows=3|cols=70}}}&lt;br /&gt;
|-&lt;br /&gt;
! 模块配置页&lt;br /&gt;
| {{{field|配置页|mandatory|input type=text with autocomplete|values from namespace=Project}}}&lt;br /&gt;
|}&lt;br /&gt;
{{{end template}}}&lt;br /&gt;
&lt;br /&gt;
{{{standard input|summary|default value=通过目录表单更新首页模块}}}&lt;br /&gt;
{{{standard input|save}}} {{{standard input|changes}}} {{{standard input|cancel}}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=Template:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97%E5%85%A5%E5%8F%A3&amp;diff=166</id>
		<title>Template:首页模块入口</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=Template:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97%E5%85%A5%E5%8F%A3&amp;diff=166"/>
		<updated>2026-07-26T15:14:24Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release 3798ad2f6f3b&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
=== {{{标题|Unnamed Module}}} ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-module&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;lcd-module__intro&amp;quot;&amp;gt;{{{简介|Test introduction for this module.}}}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-module__tab&amp;quot;&amp;gt;{{{标签|Product List}}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-card-grid&amp;quot;&amp;gt;&lt;br /&gt;
{{:{{{配置页}}}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;在首页输出一个带标题、标签栏和独立卡片配置页的产品模块。&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: {&lt;br /&gt;
    &amp;quot;标题&amp;quot;: {&amp;quot;label&amp;quot;: &amp;quot;模块标题&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;, &amp;quot;required&amp;quot;: true},&lt;br /&gt;
    &amp;quot;标签&amp;quot;: {&amp;quot;label&amp;quot;: &amp;quot;标签栏文字&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;, &amp;quot;required&amp;quot;: true},&lt;br /&gt;
    &amp;quot;简介&amp;quot;: {&amp;quot;label&amp;quot;: &amp;quot;模块英文介绍&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;content&amp;quot;, &amp;quot;required&amp;quot;: true},&lt;br /&gt;
    &amp;quot;配置页&amp;quot;: {&amp;quot;label&amp;quot;: &amp;quot;模块配置页&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;wiki-page-name&amp;quot;, &amp;quot;required&amp;quot;: true}&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;paramOrder&amp;quot;: [&amp;quot;标题&amp;quot;, &amp;quot;标签&amp;quot;, &amp;quot;简介&amp;quot;, &amp;quot;配置页&amp;quot;]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Citizen-user-info-text-anon&amp;diff=165</id>
		<title>MediaWiki:Citizen-user-info-text-anon</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Citizen-user-info-text-anon&amp;diff=165"/>
		<updated>2026-07-26T14:30:05Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release 77f6ef0c2d75&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Access is restricted to site administrators.&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Notloggedin&amp;diff=164</id>
		<title>MediaWiki:Notloggedin</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Notloggedin&amp;diff=164"/>
		<updated>2026-07-26T14:30:05Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release 77f6ef0c2d75&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Administrator Login Only&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=163</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=163"/>
		<updated>2026-07-26T13:34:54Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release d6198d1100ee&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:root {&lt;br /&gt;
  --lcd-blue: #63b7e8;&lt;br /&gt;
  --lcd-blue-dark: #258ac4;&lt;br /&gt;
  --lcd-ink: #233245;&lt;br /&gt;
  --lcd-muted: #66758a;&lt;br /&gt;
  --lcd-line: #dfe7ef;&lt;br /&gt;
  --lcd-panel: #f6f9fc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Keep the active table-of-contents state aligned with module title bars. */&lt;br /&gt;
.citizen-toc .citizen-toc-list-item--active &amp;gt; .citizen-toc-link {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.citizen-toc .citizen-toc-indicator {&lt;br /&gt;
  background-color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 精简 Citizen 主菜单，仅保留 Sidebar 中的三个核心入口。 */&lt;br /&gt;
#citizen-main-menu #p-navigation &amp;gt; .citizen-menu__heading,&lt;br /&gt;
#citizen-main-menu #t-specialpages,&lt;br /&gt;
#citizen-main-menu #t-upload {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide the Citizen main-menu toggle and drawer on every page. */&lt;br /&gt;
.citizen-drawer.citizen-header__item {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏所有页面底部的页面信息、操作栏和完整站点页脚。 */&lt;br /&gt;
.citizen-page-footer,&lt;br /&gt;
.citizen-page-actions,&lt;br /&gt;
.mw-footer.citizen-footer {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首页模块标题不显示章节编辑入口，后台和其他页面编辑功能保持不变。 */&lt;br /&gt;
body.page-Main_Page .mw-editsection {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 产品二级页：隐藏章节编辑入口及滚动后的粘性操作按钮组。 */&lt;br /&gt;
body:has(.lcd-product__hero) .mw-editsection,&lt;br /&gt;
body:has(.lcd-product__hero) .citizen-sticky-header-end {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Product detail pages: remove the site tagline and publication badge without placeholders. */&lt;br /&gt;
body:has(.lcd-product__hero) #siteSub,&lt;br /&gt;
body:has(.lcd-product__hero) .citizen-sticky-header-page-tagline,&lt;br /&gt;
body:has(.lcd-product__hero) .lcd-product__status {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 首页桌面版式：将 Citizen 的页面信息与目录侧栏放到正文左侧，&lt;br /&gt;
 * 并限制整体版心宽度，在宽屏上保留对称留白。&lt;br /&gt;
 */&lt;br /&gt;
@media (min-width: 1200px) {&lt;br /&gt;
  body.page-Main_Page .citizen-body-container {&lt;br /&gt;
    width: min(100%, 91.5rem);&lt;br /&gt;
    margin-inline: auto;&lt;br /&gt;
    grid-template-columns: minmax(12rem, 15rem) minmax(0, 67.5rem);&lt;br /&gt;
    column-gap: 5rem;&lt;br /&gt;
    grid-template-areas:&lt;br /&gt;
      &amp;quot;sidebar content&amp;quot;&lt;br /&gt;
      &amp;quot;footer footer&amp;quot;;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  body.page-Main_Page&lt;br /&gt;
    .citizen-page-sidebar&lt;br /&gt;
    .citizen-toc-link:not(.citizen-toc-top) {&lt;br /&gt;
    height: auto;&lt;br /&gt;
    min-height: 2rem;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
    overflow-wrap: anywhere;&lt;br /&gt;
    text-overflow: clip;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  aspect-ratio: 4 / 1;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 12px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 8px rgba(38, 68, 94, .1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport,&lt;br /&gt;
.lcd-home-carousel__slide,&lt;br /&gt;
.lcd-home-carousel__slide &amp;gt; p,&lt;br /&gt;
.lcd-home-carousel__slide .mw-file-element {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport {&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  opacity: 0;&lt;br /&gt;
  transition: visibility 0s linear .4s, opacity .4s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide--active {&lt;br /&gt;
  visibility: visible;&lt;br /&gt;
  opacity: 1;&lt;br /&gt;
  transition-delay: 0s;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide &amp;gt; p {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide .mw-file-element {&lt;br /&gt;
  display: block;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dots {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  z-index: 2;&lt;br /&gt;
  bottom: clamp(.4rem, 1.1vw, .75rem);&lt;br /&gt;
  left: 50%;&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: .55rem;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  padding: .3rem .45rem;&lt;br /&gt;
  transform: translateX(-50%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot {&lt;br /&gt;
  width: .68rem;&lt;br /&gt;
  height: .68rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border: 1px solid rgba(35, 50, 69, .38);&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(255, 255, 255, .88);&lt;br /&gt;
  box-shadow: 0 1px 3px rgba(35, 50, 69, .28);&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot[aria-current=&amp;quot;true&amp;quot;] {&lt;br /&gt;
  border-color: #237f7f;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot:focus-visible {&lt;br /&gt;
  outline: 2px solid #fff;&lt;br /&gt;
  outline-offset: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport &amp;gt; p,&lt;br /&gt;
.lcd-home-carousel &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module {&lt;br /&gt;
  margin: 1.75rem 0 2.5rem;&lt;br /&gt;
  scroll-margin-top: 5rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module__tab {&lt;br /&gt;
  margin: 0 0 1rem;&lt;br /&gt;
  padding: .68rem 1rem;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  letter-spacing: .02em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(4, minmax(0, 1fr));&lt;br /&gt;
  gap: 1.1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 7px rgba(38, 68, 94, .11);&lt;br /&gt;
  transition: transform .16s ease, box-shadow .16s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card:hover {&lt;br /&gt;
  transform: translateY(-2px);&lt;br /&gt;
  box-shadow: 0 7px 18px rgba(38, 68, 94, .16);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .65rem;&lt;br /&gt;
  background: #f8fafc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media a,&lt;br /&gt;
.lcd-card__media .mw-file-description {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__body {&lt;br /&gt;
  padding: .85rem .8rem .95rem;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title {&lt;br /&gt;
  min-height: 2.7em;&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  font-weight: 600;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title a {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__model {&lt;br /&gt;
  margin-top: .35rem;&lt;br /&gt;
  color: #27384b;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__hero {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(15rem, .8fr) minmax(0, 1.2fr);&lt;br /&gt;
  gap: 1.5rem;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  padding: 1.25rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 10px;&lt;br /&gt;
  background: var(--lcd-panel);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__summary {&lt;br /&gt;
  align-self: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__kicker {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__model {&lt;br /&gt;
  margin: .35rem 0 .6rem;&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
  font-size: clamp(1.35rem, 3vw, 2rem);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__status {&lt;br /&gt;
  margin-bottom: .85rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  gap: .75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery &amp;gt; div {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .6rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 7px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  table-layout: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table th:first-child {&lt;br /&gt;
  width: 10rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-status {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  padding: .18rem .55rem;&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: #244158;&lt;br /&gt;
  background: #dceff9;&lt;br /&gt;
  font-size: .84rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  padding: 1rem 1.15rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-left: 4px solid var(--lcd-blue);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__name {&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__type {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  margin-right: .6rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__body {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: .25rem .75rem;&lt;br /&gt;
  align-items: baseline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__action {&lt;br /&gt;
  margin-top: .65rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__meta,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  color: var(--lcd-muted);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-manager-links {&lt;br /&gt;
  columns: 2 18rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin-bottom: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable th {&lt;br /&gt;
  width: 11rem;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable input,&lt;br /&gt;
.formtable select,&lt;br /&gt;
.formtable textarea {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  max-width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 1000px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 620px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
    gap: .75rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__gallery {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-card__title {&lt;br /&gt;
    min-height: 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    padding: .85rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-spec-table th:first-child {&lt;br /&gt;
    width: 7.5rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .formtable,&lt;br /&gt;
  .formtable tbody,&lt;br /&gt;
  .formtable tr,&lt;br /&gt;
  .formtable th,&lt;br /&gt;
  .formtable td {&lt;br /&gt;
    display: block;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=162</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=162"/>
		<updated>2026-07-26T13:18:27Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release d6a131cec506&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:root {&lt;br /&gt;
  --lcd-blue: #63b7e8;&lt;br /&gt;
  --lcd-blue-dark: #258ac4;&lt;br /&gt;
  --lcd-ink: #233245;&lt;br /&gt;
  --lcd-muted: #66758a;&lt;br /&gt;
  --lcd-line: #dfe7ef;&lt;br /&gt;
  --lcd-panel: #f6f9fc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Keep the active table-of-contents state aligned with module title bars. */&lt;br /&gt;
.citizen-toc .citizen-toc-list-item--active &amp;gt; .citizen-toc-link {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.citizen-toc .citizen-toc-indicator {&lt;br /&gt;
  background-color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 精简 Citizen 主菜单，仅保留 Sidebar 中的三个核心入口。 */&lt;br /&gt;
#citizen-main-menu #p-navigation &amp;gt; .citizen-menu__heading,&lt;br /&gt;
#citizen-main-menu #t-specialpages,&lt;br /&gt;
#citizen-main-menu #t-upload {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide the Citizen main-menu toggle and drawer on every page. */&lt;br /&gt;
.citizen-drawer.citizen-header__item {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏所有页面底部的页面信息、操作栏和完整站点页脚。 */&lt;br /&gt;
.citizen-page-footer,&lt;br /&gt;
.citizen-page-actions,&lt;br /&gt;
.mw-footer.citizen-footer {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首页模块标题不显示章节编辑入口，后台和其他页面编辑功能保持不变。 */&lt;br /&gt;
body.page-Main_Page .mw-editsection {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 产品二级页：隐藏章节编辑入口及滚动后的粘性操作按钮组。 */&lt;br /&gt;
body:has(.lcd-product__hero) .mw-editsection,&lt;br /&gt;
body:has(.lcd-product__hero) .citizen-sticky-header-end {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 首页桌面版式：将 Citizen 的页面信息与目录侧栏放到正文左侧，&lt;br /&gt;
 * 并限制整体版心宽度，在宽屏上保留对称留白。&lt;br /&gt;
 */&lt;br /&gt;
@media (min-width: 1200px) {&lt;br /&gt;
  body.page-Main_Page .citizen-body-container {&lt;br /&gt;
    width: min(100%, 91.5rem);&lt;br /&gt;
    margin-inline: auto;&lt;br /&gt;
    grid-template-columns: minmax(12rem, 15rem) minmax(0, 67.5rem);&lt;br /&gt;
    column-gap: 5rem;&lt;br /&gt;
    grid-template-areas:&lt;br /&gt;
      &amp;quot;sidebar content&amp;quot;&lt;br /&gt;
      &amp;quot;footer footer&amp;quot;;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  body.page-Main_Page&lt;br /&gt;
    .citizen-page-sidebar&lt;br /&gt;
    .citizen-toc-link:not(.citizen-toc-top) {&lt;br /&gt;
    height: auto;&lt;br /&gt;
    min-height: 2rem;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
    overflow-wrap: anywhere;&lt;br /&gt;
    text-overflow: clip;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  aspect-ratio: 4 / 1;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 12px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 8px rgba(38, 68, 94, .1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport,&lt;br /&gt;
.lcd-home-carousel__slide,&lt;br /&gt;
.lcd-home-carousel__slide &amp;gt; p,&lt;br /&gt;
.lcd-home-carousel__slide .mw-file-element {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport {&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  opacity: 0;&lt;br /&gt;
  transition: visibility 0s linear .4s, opacity .4s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide--active {&lt;br /&gt;
  visibility: visible;&lt;br /&gt;
  opacity: 1;&lt;br /&gt;
  transition-delay: 0s;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide &amp;gt; p {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide .mw-file-element {&lt;br /&gt;
  display: block;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dots {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  z-index: 2;&lt;br /&gt;
  bottom: clamp(.4rem, 1.1vw, .75rem);&lt;br /&gt;
  left: 50%;&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: .55rem;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  padding: .3rem .45rem;&lt;br /&gt;
  transform: translateX(-50%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot {&lt;br /&gt;
  width: .68rem;&lt;br /&gt;
  height: .68rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border: 1px solid rgba(35, 50, 69, .38);&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(255, 255, 255, .88);&lt;br /&gt;
  box-shadow: 0 1px 3px rgba(35, 50, 69, .28);&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot[aria-current=&amp;quot;true&amp;quot;] {&lt;br /&gt;
  border-color: #237f7f;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot:focus-visible {&lt;br /&gt;
  outline: 2px solid #fff;&lt;br /&gt;
  outline-offset: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport &amp;gt; p,&lt;br /&gt;
.lcd-home-carousel &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module {&lt;br /&gt;
  margin: 1.75rem 0 2.5rem;&lt;br /&gt;
  scroll-margin-top: 5rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module__tab {&lt;br /&gt;
  margin: 0 0 1rem;&lt;br /&gt;
  padding: .68rem 1rem;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  letter-spacing: .02em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(4, minmax(0, 1fr));&lt;br /&gt;
  gap: 1.1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 7px rgba(38, 68, 94, .11);&lt;br /&gt;
  transition: transform .16s ease, box-shadow .16s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card:hover {&lt;br /&gt;
  transform: translateY(-2px);&lt;br /&gt;
  box-shadow: 0 7px 18px rgba(38, 68, 94, .16);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .65rem;&lt;br /&gt;
  background: #f8fafc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media a,&lt;br /&gt;
.lcd-card__media .mw-file-description {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__body {&lt;br /&gt;
  padding: .85rem .8rem .95rem;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title {&lt;br /&gt;
  min-height: 2.7em;&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  font-weight: 600;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title a {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__model {&lt;br /&gt;
  margin-top: .35rem;&lt;br /&gt;
  color: #27384b;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__hero {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(15rem, .8fr) minmax(0, 1.2fr);&lt;br /&gt;
  gap: 1.5rem;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  padding: 1.25rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 10px;&lt;br /&gt;
  background: var(--lcd-panel);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__summary {&lt;br /&gt;
  align-self: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__kicker {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__model {&lt;br /&gt;
  margin: .35rem 0 .6rem;&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
  font-size: clamp(1.35rem, 3vw, 2rem);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__status {&lt;br /&gt;
  margin-bottom: .85rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  gap: .75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery &amp;gt; div {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .6rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 7px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  table-layout: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table th:first-child {&lt;br /&gt;
  width: 10rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-status {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  padding: .18rem .55rem;&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: #244158;&lt;br /&gt;
  background: #dceff9;&lt;br /&gt;
  font-size: .84rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  padding: 1rem 1.15rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-left: 4px solid var(--lcd-blue);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__name {&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__type {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  margin-right: .6rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__body {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: .25rem .75rem;&lt;br /&gt;
  align-items: baseline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__action {&lt;br /&gt;
  margin-top: .65rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__meta,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  color: var(--lcd-muted);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-manager-links {&lt;br /&gt;
  columns: 2 18rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin-bottom: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable th {&lt;br /&gt;
  width: 11rem;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable input,&lt;br /&gt;
.formtable select,&lt;br /&gt;
.formtable textarea {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  max-width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 1000px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 620px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
    gap: .75rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__gallery {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-card__title {&lt;br /&gt;
    min-height: 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    padding: .85rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-spec-table th:first-child {&lt;br /&gt;
    width: 7.5rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .formtable,&lt;br /&gt;
  .formtable tbody,&lt;br /&gt;
  .formtable tr,&lt;br /&gt;
  .formtable th,&lt;br /&gt;
  .formtable td {&lt;br /&gt;
    display: block;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.js&amp;diff=161</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.js&amp;diff=161"/>
		<updated>2026-07-26T10:49:47Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release 76669c0710f1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var ACTIVE_CLASS = &#039;citizen-toc-list-item--active&#039;;&lt;br /&gt;
	var ACTIVE_TOP_CLASS = &#039;citizen-toc-level-1--active&#039;;&lt;br /&gt;
	var LINK_SELECTOR = &#039;.citizen-toc-link:not(.citizen-toc-top)&#039;;&lt;br /&gt;
	var NAVIGATION_KEYS = [&lt;br /&gt;
		&#039;ArrowDown&#039;,&lt;br /&gt;
		&#039;ArrowUp&#039;,&lt;br /&gt;
		&#039;End&#039;,&lt;br /&gt;
		&#039;Home&#039;,&lt;br /&gt;
		&#039;PageDown&#039;,&lt;br /&gt;
		&#039;PageUp&#039;,&lt;br /&gt;
		&#039; &#039;&lt;br /&gt;
	];&lt;br /&gt;
&lt;br /&gt;
	function setupHomeCarousel() {&lt;br /&gt;
		var carousel = document.querySelector( &#039;.lcd-home-carousel&#039; );&lt;br /&gt;
&lt;br /&gt;
		if ( !carousel || carousel.dataset.techdocsCarouselReady === &#039;1&#039; ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var slides = Array.prototype.slice.call(&lt;br /&gt;
			carousel.querySelectorAll( &#039;.lcd-home-carousel__slide&#039; )&lt;br /&gt;
		);&lt;br /&gt;
		if ( slides.length === 0 ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		carousel.dataset.techdocsCarouselReady = &#039;1&#039;;&lt;br /&gt;
&lt;br /&gt;
		var interval = parseInt( carousel.dataset.interval, 10 );&lt;br /&gt;
		if ( !Number.isFinite( interval ) || interval &amp;lt; 1000 ) {&lt;br /&gt;
			interval = 4000;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var currentIndex = Math.max( 0, slides.findIndex( function ( slide ) {&lt;br /&gt;
			return slide.classList.contains( &#039;lcd-home-carousel__slide--active&#039; );&lt;br /&gt;
		} ) );&lt;br /&gt;
		var timerId = 0;&lt;br /&gt;
		var dots = [];&lt;br /&gt;
		var dotsContainer = document.createElement( &#039;div&#039; );&lt;br /&gt;
&lt;br /&gt;
		dotsContainer.className = &#039;lcd-home-carousel__dots&#039;;&lt;br /&gt;
		dotsContainer.setAttribute( &#039;role&#039;, &#039;group&#039; );&lt;br /&gt;
		dotsContainer.setAttribute( &#039;aria-label&#039;, &#039;轮播进度&#039; );&lt;br /&gt;
&lt;br /&gt;
		function showSlide( index ) {&lt;br /&gt;
			currentIndex = ( index + slides.length ) % slides.length;&lt;br /&gt;
&lt;br /&gt;
			slides.forEach( function ( slide, slideIndex ) {&lt;br /&gt;
				var isActive = slideIndex === currentIndex;&lt;br /&gt;
				slide.classList.toggle(&lt;br /&gt;
					&#039;lcd-home-carousel__slide--active&#039;,&lt;br /&gt;
					isActive&lt;br /&gt;
				);&lt;br /&gt;
				slide.setAttribute( &#039;aria-hidden&#039;, isActive ? &#039;false&#039; : &#039;true&#039; );&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			dots.forEach( function ( dot, dotIndex ) {&lt;br /&gt;
				if ( dotIndex === currentIndex ) {&lt;br /&gt;
					dot.setAttribute( &#039;aria-current&#039;, &#039;true&#039; );&lt;br /&gt;
				} else {&lt;br /&gt;
					dot.removeAttribute( &#039;aria-current&#039; );&lt;br /&gt;
				}&lt;br /&gt;
			} );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function stopTimer() {&lt;br /&gt;
			if ( timerId ) {&lt;br /&gt;
				window.clearInterval( timerId );&lt;br /&gt;
				timerId = 0;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function startTimer() {&lt;br /&gt;
			stopTimer();&lt;br /&gt;
			if ( slides.length &amp;gt; 1 &amp;amp;&amp;amp; !document.hidden ) {&lt;br /&gt;
				timerId = window.setInterval( function () {&lt;br /&gt;
					showSlide( currentIndex + 1 );&lt;br /&gt;
				}, interval );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		slides.forEach( function ( slide, slideIndex ) {&lt;br /&gt;
			var dot = document.createElement( &#039;button&#039; );&lt;br /&gt;
			dot.type = &#039;button&#039;;&lt;br /&gt;
			dot.className = &#039;lcd-home-carousel__dot&#039;;&lt;br /&gt;
			dot.setAttribute(&lt;br /&gt;
				&#039;aria-label&#039;,&lt;br /&gt;
				&#039;显示第 &#039; + ( slideIndex + 1 ) + &#039; 张轮播图片&#039;&lt;br /&gt;
			);&lt;br /&gt;
			dot.addEventListener( &#039;click&#039;, function () {&lt;br /&gt;
				showSlide( slideIndex );&lt;br /&gt;
				startTimer();&lt;br /&gt;
			} );&lt;br /&gt;
			dots.push( dot );&lt;br /&gt;
			dotsContainer.appendChild( dot );&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		carousel.appendChild( dotsContainer );&lt;br /&gt;
		showSlide( currentIndex );&lt;br /&gt;
		startTimer();&lt;br /&gt;
&lt;br /&gt;
		document.addEventListener( &#039;visibilitychange&#039;, function () {&lt;br /&gt;
			if ( document.hidden ) {&lt;br /&gt;
				stopTimer();&lt;br /&gt;
			} else {&lt;br /&gt;
				startTimer();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		window.addEventListener( &#039;pagehide&#039;, stopTimer );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function decodeFragment( hash ) {&lt;br /&gt;
		if ( !hash || hash.charAt( 0 ) !== &#039;#&#039; ) {&lt;br /&gt;
			return &#039;&#039;;&lt;br /&gt;
		}&lt;br /&gt;
		try {&lt;br /&gt;
			return decodeURIComponent( hash.slice( 1 ) );&lt;br /&gt;
		} catch ( error ) {&lt;br /&gt;
			return hash.slice( 1 );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function setupSingleActiveToc() {&lt;br /&gt;
		var toc = document.querySelector( &#039;.citizen-toc&#039; );&lt;br /&gt;
		var indicator = toc &amp;amp;&amp;amp; toc.querySelector( &#039;.citizen-toc-indicator&#039; );&lt;br /&gt;
&lt;br /&gt;
		if ( !toc || !indicator || toc.dataset.techdocsSingleActiveToc === &#039;1&#039; ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var entries = Array.prototype.map.call(&lt;br /&gt;
			toc.querySelectorAll( LINK_SELECTOR ),&lt;br /&gt;
			function ( link ) {&lt;br /&gt;
				var target = document.getElementById( decodeFragment( link.hash ) );&lt;br /&gt;
				var item = link.closest( &#039;.citizen-toc-list-item&#039; );&lt;br /&gt;
				return target &amp;amp;&amp;amp; item ? {&lt;br /&gt;
					item: item,&lt;br /&gt;
					link: link,&lt;br /&gt;
					target: target&lt;br /&gt;
				} : null;&lt;br /&gt;
			}&lt;br /&gt;
		).filter( Boolean );&lt;br /&gt;
&lt;br /&gt;
		if ( entries.length === 0 ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		toc.dataset.techdocsSingleActiveToc = &#039;1&#039;;&lt;br /&gt;
&lt;br /&gt;
		var applying = false;&lt;br /&gt;
		var frameId = 0;&lt;br /&gt;
		var manualEntry = null;&lt;br /&gt;
&lt;br /&gt;
		function getActivationTop() {&lt;br /&gt;
			var value = parseFloat(&lt;br /&gt;
				window.getComputedStyle( document.documentElement ).scrollPaddingTop&lt;br /&gt;
			);&lt;br /&gt;
			return Number.isFinite( value ) ? value : 0;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function findEntryForHash() {&lt;br /&gt;
			var id = decodeFragment( window.location.hash );&lt;br /&gt;
			return entries.find( function ( entry ) {&lt;br /&gt;
				return entry.target.id === id;&lt;br /&gt;
			} ) || null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function findEntryForScroll() {&lt;br /&gt;
			var activationTop = getActivationTop();&lt;br /&gt;
			var selected = entries[ 0 ];&lt;br /&gt;
&lt;br /&gt;
			entries.some( function ( entry ) {&lt;br /&gt;
				if ( entry.target.getBoundingClientRect().top &amp;lt;= activationTop + 1 ) {&lt;br /&gt;
					selected = entry;&lt;br /&gt;
					return false;&lt;br /&gt;
				}&lt;br /&gt;
				return true;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			return selected;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function updateIndicator( entry ) {&lt;br /&gt;
			var positioningParent = indicator.offsetParent || toc;&lt;br /&gt;
			var parentRect = positioningParent.getBoundingClientRect();&lt;br /&gt;
			var linkRect = entry.link.getBoundingClientRect();&lt;br /&gt;
			var unitHeight = linkRect.height || entry.link.offsetHeight || 32;&lt;br /&gt;
			var top = linkRect.top - parentRect.top + positioningParent.scrollTop;&lt;br /&gt;
&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-unit-height&#039;, unitHeight + &#039;px&#039; );&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-top&#039;, top + &#039;px&#039; );&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-scale&#039;, &#039;1&#039; );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function applyEntry( entry ) {&lt;br /&gt;
			if ( !entry ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			applying = true;&lt;br /&gt;
			var topItem = entry.item.closest( &#039;.citizen-toc-level-1&#039; );&lt;br /&gt;
&lt;br /&gt;
			entries.forEach( function ( candidate ) {&lt;br /&gt;
				var isActive = candidate.item === entry.item;&lt;br /&gt;
				candidate.item.classList.toggle( ACTIVE_CLASS, isActive );&lt;br /&gt;
				candidate.item.classList.toggle(&lt;br /&gt;
					ACTIVE_TOP_CLASS,&lt;br /&gt;
					candidate.item === topItem&lt;br /&gt;
				);&lt;br /&gt;
				if ( isActive ) {&lt;br /&gt;
					candidate.link.setAttribute( &#039;aria-current&#039;, &#039;location&#039; );&lt;br /&gt;
				} else {&lt;br /&gt;
					candidate.link.removeAttribute( &#039;aria-current&#039; );&lt;br /&gt;
				}&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			if ( topItem &amp;amp;&amp;amp; !entries.some( function ( candidate ) {&lt;br /&gt;
				return candidate.item === topItem;&lt;br /&gt;
			} ) ) {&lt;br /&gt;
				topItem.classList.add( ACTIVE_TOP_CLASS );&lt;br /&gt;
			}&lt;br /&gt;
			updateIndicator( entry );&lt;br /&gt;
&lt;br /&gt;
			applying = false;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function update() {&lt;br /&gt;
			frameId = 0;&lt;br /&gt;
			applyEntry( manualEntry || findEntryForScroll() );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function scheduleUpdate() {&lt;br /&gt;
			if ( frameId === 0 ) {&lt;br /&gt;
				frameId = window.requestAnimationFrame( update );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function releaseManualEntry() {&lt;br /&gt;
			if ( manualEntry ) {&lt;br /&gt;
				manualEntry = null;&lt;br /&gt;
				scheduleUpdate();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		toc.addEventListener( &#039;click&#039;, function ( event ) {&lt;br /&gt;
			if (&lt;br /&gt;
				event.defaultPrevented ||&lt;br /&gt;
				event.button !== 0 ||&lt;br /&gt;
				event.altKey ||&lt;br /&gt;
				event.ctrlKey ||&lt;br /&gt;
				event.metaKey ||&lt;br /&gt;
				event.shiftKey&lt;br /&gt;
			) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var link = event.target.closest( LINK_SELECTOR );&lt;br /&gt;
			if ( !link || !toc.contains( link ) ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var entry = entries.find( function ( candidate ) {&lt;br /&gt;
				return candidate.link === link;&lt;br /&gt;
			} );&lt;br /&gt;
			if ( !entry ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			event.preventDefault();&lt;br /&gt;
			event.stopImmediatePropagation();&lt;br /&gt;
			manualEntry = entry;&lt;br /&gt;
			applyEntry( entry );&lt;br /&gt;
&lt;br /&gt;
			var hash = link.getAttribute( &#039;href&#039; );&lt;br /&gt;
			if ( hash ) {&lt;br /&gt;
				window.history.pushState( null, &#039;&#039;, hash );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			window.requestAnimationFrame( function () {&lt;br /&gt;
				var targetTop = window.scrollY +&lt;br /&gt;
					entry.target.getBoundingClientRect().top -&lt;br /&gt;
					getActivationTop();&lt;br /&gt;
				window.scrollTo( 0, Math.max( 0, targetTop ) );&lt;br /&gt;
			} );&lt;br /&gt;
		}, true );&lt;br /&gt;
&lt;br /&gt;
		window.addEventListener( &#039;scroll&#039;, scheduleUpdate, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;resize&#039;, scheduleUpdate );&lt;br /&gt;
		window.addEventListener( &#039;wheel&#039;, releaseManualEntry, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;touchstart&#039;, releaseManualEntry, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;pointerdown&#039;, function ( event ) {&lt;br /&gt;
			if ( !toc.contains( event.target ) ) {&lt;br /&gt;
				releaseManualEntry();&lt;br /&gt;
			}&lt;br /&gt;
		}, true );&lt;br /&gt;
		window.addEventListener( &#039;keydown&#039;, function ( event ) {&lt;br /&gt;
			if ( NAVIGATION_KEYS.indexOf( event.key ) !== -1 ) {&lt;br /&gt;
				releaseManualEntry();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		window.addEventListener( &#039;hashchange&#039;, function () {&lt;br /&gt;
			manualEntry = findEntryForHash();&lt;br /&gt;
			scheduleUpdate();&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		var classObserver = new MutationObserver( function () {&lt;br /&gt;
			if ( !applying ) {&lt;br /&gt;
				scheduleUpdate();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		classObserver.observe( toc, {&lt;br /&gt;
			attributes: true,&lt;br /&gt;
			attributeFilter: [ &#039;class&#039; ],&lt;br /&gt;
			subtree: true&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		scheduleUpdate();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( &#039;skins.citizen.scripts&#039; ).then( function () {&lt;br /&gt;
		window.requestAnimationFrame( function () {&lt;br /&gt;
			setupHomeCarousel();&lt;br /&gt;
			setupSingleActiveToc();&lt;br /&gt;
		} );&lt;br /&gt;
	} );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=Main_Page&amp;diff=160</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=Main_Page&amp;diff=160"/>
		<updated>2026-07-26T10:49:42Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release 76669c0710f1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;lcd-home&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-home-carousel&amp;quot; data-interval=&amp;quot;4000&amp;quot; role=&amp;quot;region&amp;quot; aria-label=&amp;quot;首页专题图片轮播&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-home-carousel__viewport&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-home-carousel__slide lcd-home-carousel__slide--active&amp;quot;&amp;gt;[[File:main_page_top1.jpg|1600px|link=|alt=AI 编程与开发板专题]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-home-carousel__slide&amp;quot;&amp;gt;[[File:main_page_top2.jpg|1600px|link=|alt=电子纸智能显示专题]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-home-carousel__slide&amp;quot;&amp;gt;[[File:main_page_top3.jpg|1600px|link=|alt=Arduino 开源硬件专题]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:Project:首页目录配置}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.js&amp;diff=159</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.js&amp;diff=159"/>
		<updated>2026-07-26T10:33:31Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release b32d298a7432&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var ACTIVE_CLASS = &#039;citizen-toc-list-item--active&#039;;&lt;br /&gt;
	var ACTIVE_TOP_CLASS = &#039;citizen-toc-level-1--active&#039;;&lt;br /&gt;
	var LINK_SELECTOR = &#039;.citizen-toc-link:not(.citizen-toc-top)&#039;;&lt;br /&gt;
	var NAVIGATION_KEYS = [&lt;br /&gt;
		&#039;ArrowDown&#039;,&lt;br /&gt;
		&#039;ArrowUp&#039;,&lt;br /&gt;
		&#039;End&#039;,&lt;br /&gt;
		&#039;Home&#039;,&lt;br /&gt;
		&#039;PageDown&#039;,&lt;br /&gt;
		&#039;PageUp&#039;,&lt;br /&gt;
		&#039; &#039;&lt;br /&gt;
	];&lt;br /&gt;
&lt;br /&gt;
	function setupHomeCarousel() {&lt;br /&gt;
		var carousel = document.querySelector( &#039;.lcd-home-carousel&#039; );&lt;br /&gt;
&lt;br /&gt;
		if ( !carousel || carousel.dataset.techdocsCarouselReady === &#039;1&#039; ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var slides = Array.prototype.slice.call(&lt;br /&gt;
			carousel.querySelectorAll( &#039;.lcd-home-carousel__slide&#039; )&lt;br /&gt;
		);&lt;br /&gt;
		if ( slides.length === 0 ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		carousel.dataset.techdocsCarouselReady = &#039;1&#039;;&lt;br /&gt;
&lt;br /&gt;
		var interval = parseInt( carousel.dataset.interval, 10 );&lt;br /&gt;
		if ( !Number.isFinite( interval ) || interval &amp;lt; 1000 ) {&lt;br /&gt;
			interval = 2000;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var currentIndex = Math.max( 0, slides.findIndex( function ( slide ) {&lt;br /&gt;
			return slide.classList.contains( &#039;lcd-home-carousel__slide--active&#039; );&lt;br /&gt;
		} ) );&lt;br /&gt;
		var timerId = 0;&lt;br /&gt;
		var dots = [];&lt;br /&gt;
		var dotsContainer = document.createElement( &#039;div&#039; );&lt;br /&gt;
&lt;br /&gt;
		dotsContainer.className = &#039;lcd-home-carousel__dots&#039;;&lt;br /&gt;
		dotsContainer.setAttribute( &#039;role&#039;, &#039;group&#039; );&lt;br /&gt;
		dotsContainer.setAttribute( &#039;aria-label&#039;, &#039;轮播进度&#039; );&lt;br /&gt;
&lt;br /&gt;
		function showSlide( index ) {&lt;br /&gt;
			currentIndex = ( index + slides.length ) % slides.length;&lt;br /&gt;
&lt;br /&gt;
			slides.forEach( function ( slide, slideIndex ) {&lt;br /&gt;
				var isActive = slideIndex === currentIndex;&lt;br /&gt;
				slide.classList.toggle(&lt;br /&gt;
					&#039;lcd-home-carousel__slide--active&#039;,&lt;br /&gt;
					isActive&lt;br /&gt;
				);&lt;br /&gt;
				slide.setAttribute( &#039;aria-hidden&#039;, isActive ? &#039;false&#039; : &#039;true&#039; );&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			dots.forEach( function ( dot, dotIndex ) {&lt;br /&gt;
				if ( dotIndex === currentIndex ) {&lt;br /&gt;
					dot.setAttribute( &#039;aria-current&#039;, &#039;true&#039; );&lt;br /&gt;
				} else {&lt;br /&gt;
					dot.removeAttribute( &#039;aria-current&#039; );&lt;br /&gt;
				}&lt;br /&gt;
			} );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function stopTimer() {&lt;br /&gt;
			if ( timerId ) {&lt;br /&gt;
				window.clearInterval( timerId );&lt;br /&gt;
				timerId = 0;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function startTimer() {&lt;br /&gt;
			stopTimer();&lt;br /&gt;
			if ( slides.length &amp;gt; 1 &amp;amp;&amp;amp; !document.hidden ) {&lt;br /&gt;
				timerId = window.setInterval( function () {&lt;br /&gt;
					showSlide( currentIndex + 1 );&lt;br /&gt;
				}, interval );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		slides.forEach( function ( slide, slideIndex ) {&lt;br /&gt;
			var dot = document.createElement( &#039;button&#039; );&lt;br /&gt;
			dot.type = &#039;button&#039;;&lt;br /&gt;
			dot.className = &#039;lcd-home-carousel__dot&#039;;&lt;br /&gt;
			dot.setAttribute(&lt;br /&gt;
				&#039;aria-label&#039;,&lt;br /&gt;
				&#039;显示第 &#039; + ( slideIndex + 1 ) + &#039; 张轮播图片&#039;&lt;br /&gt;
			);&lt;br /&gt;
			dot.addEventListener( &#039;click&#039;, function () {&lt;br /&gt;
				showSlide( slideIndex );&lt;br /&gt;
				startTimer();&lt;br /&gt;
			} );&lt;br /&gt;
			dots.push( dot );&lt;br /&gt;
			dotsContainer.appendChild( dot );&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		carousel.appendChild( dotsContainer );&lt;br /&gt;
		showSlide( currentIndex );&lt;br /&gt;
		startTimer();&lt;br /&gt;
&lt;br /&gt;
		document.addEventListener( &#039;visibilitychange&#039;, function () {&lt;br /&gt;
			if ( document.hidden ) {&lt;br /&gt;
				stopTimer();&lt;br /&gt;
			} else {&lt;br /&gt;
				startTimer();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		window.addEventListener( &#039;pagehide&#039;, stopTimer );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function decodeFragment( hash ) {&lt;br /&gt;
		if ( !hash || hash.charAt( 0 ) !== &#039;#&#039; ) {&lt;br /&gt;
			return &#039;&#039;;&lt;br /&gt;
		}&lt;br /&gt;
		try {&lt;br /&gt;
			return decodeURIComponent( hash.slice( 1 ) );&lt;br /&gt;
		} catch ( error ) {&lt;br /&gt;
			return hash.slice( 1 );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function setupSingleActiveToc() {&lt;br /&gt;
		var toc = document.querySelector( &#039;.citizen-toc&#039; );&lt;br /&gt;
		var indicator = toc &amp;amp;&amp;amp; toc.querySelector( &#039;.citizen-toc-indicator&#039; );&lt;br /&gt;
&lt;br /&gt;
		if ( !toc || !indicator || toc.dataset.techdocsSingleActiveToc === &#039;1&#039; ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var entries = Array.prototype.map.call(&lt;br /&gt;
			toc.querySelectorAll( LINK_SELECTOR ),&lt;br /&gt;
			function ( link ) {&lt;br /&gt;
				var target = document.getElementById( decodeFragment( link.hash ) );&lt;br /&gt;
				var item = link.closest( &#039;.citizen-toc-list-item&#039; );&lt;br /&gt;
				return target &amp;amp;&amp;amp; item ? {&lt;br /&gt;
					item: item,&lt;br /&gt;
					link: link,&lt;br /&gt;
					target: target&lt;br /&gt;
				} : null;&lt;br /&gt;
			}&lt;br /&gt;
		).filter( Boolean );&lt;br /&gt;
&lt;br /&gt;
		if ( entries.length === 0 ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		toc.dataset.techdocsSingleActiveToc = &#039;1&#039;;&lt;br /&gt;
&lt;br /&gt;
		var applying = false;&lt;br /&gt;
		var frameId = 0;&lt;br /&gt;
		var manualEntry = null;&lt;br /&gt;
&lt;br /&gt;
		function getActivationTop() {&lt;br /&gt;
			var value = parseFloat(&lt;br /&gt;
				window.getComputedStyle( document.documentElement ).scrollPaddingTop&lt;br /&gt;
			);&lt;br /&gt;
			return Number.isFinite( value ) ? value : 0;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function findEntryForHash() {&lt;br /&gt;
			var id = decodeFragment( window.location.hash );&lt;br /&gt;
			return entries.find( function ( entry ) {&lt;br /&gt;
				return entry.target.id === id;&lt;br /&gt;
			} ) || null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function findEntryForScroll() {&lt;br /&gt;
			var activationTop = getActivationTop();&lt;br /&gt;
			var selected = entries[ 0 ];&lt;br /&gt;
&lt;br /&gt;
			entries.some( function ( entry ) {&lt;br /&gt;
				if ( entry.target.getBoundingClientRect().top &amp;lt;= activationTop + 1 ) {&lt;br /&gt;
					selected = entry;&lt;br /&gt;
					return false;&lt;br /&gt;
				}&lt;br /&gt;
				return true;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			return selected;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function updateIndicator( entry ) {&lt;br /&gt;
			var positioningParent = indicator.offsetParent || toc;&lt;br /&gt;
			var parentRect = positioningParent.getBoundingClientRect();&lt;br /&gt;
			var linkRect = entry.link.getBoundingClientRect();&lt;br /&gt;
			var unitHeight = linkRect.height || entry.link.offsetHeight || 32;&lt;br /&gt;
			var top = linkRect.top - parentRect.top + positioningParent.scrollTop;&lt;br /&gt;
&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-unit-height&#039;, unitHeight + &#039;px&#039; );&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-top&#039;, top + &#039;px&#039; );&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-scale&#039;, &#039;1&#039; );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function applyEntry( entry ) {&lt;br /&gt;
			if ( !entry ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			applying = true;&lt;br /&gt;
			var topItem = entry.item.closest( &#039;.citizen-toc-level-1&#039; );&lt;br /&gt;
&lt;br /&gt;
			entries.forEach( function ( candidate ) {&lt;br /&gt;
				var isActive = candidate.item === entry.item;&lt;br /&gt;
				candidate.item.classList.toggle( ACTIVE_CLASS, isActive );&lt;br /&gt;
				candidate.item.classList.toggle(&lt;br /&gt;
					ACTIVE_TOP_CLASS,&lt;br /&gt;
					candidate.item === topItem&lt;br /&gt;
				);&lt;br /&gt;
				if ( isActive ) {&lt;br /&gt;
					candidate.link.setAttribute( &#039;aria-current&#039;, &#039;location&#039; );&lt;br /&gt;
				} else {&lt;br /&gt;
					candidate.link.removeAttribute( &#039;aria-current&#039; );&lt;br /&gt;
				}&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			if ( topItem &amp;amp;&amp;amp; !entries.some( function ( candidate ) {&lt;br /&gt;
				return candidate.item === topItem;&lt;br /&gt;
			} ) ) {&lt;br /&gt;
				topItem.classList.add( ACTIVE_TOP_CLASS );&lt;br /&gt;
			}&lt;br /&gt;
			updateIndicator( entry );&lt;br /&gt;
&lt;br /&gt;
			applying = false;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function update() {&lt;br /&gt;
			frameId = 0;&lt;br /&gt;
			applyEntry( manualEntry || findEntryForScroll() );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function scheduleUpdate() {&lt;br /&gt;
			if ( frameId === 0 ) {&lt;br /&gt;
				frameId = window.requestAnimationFrame( update );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function releaseManualEntry() {&lt;br /&gt;
			if ( manualEntry ) {&lt;br /&gt;
				manualEntry = null;&lt;br /&gt;
				scheduleUpdate();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		toc.addEventListener( &#039;click&#039;, function ( event ) {&lt;br /&gt;
			if (&lt;br /&gt;
				event.defaultPrevented ||&lt;br /&gt;
				event.button !== 0 ||&lt;br /&gt;
				event.altKey ||&lt;br /&gt;
				event.ctrlKey ||&lt;br /&gt;
				event.metaKey ||&lt;br /&gt;
				event.shiftKey&lt;br /&gt;
			) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var link = event.target.closest( LINK_SELECTOR );&lt;br /&gt;
			if ( !link || !toc.contains( link ) ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var entry = entries.find( function ( candidate ) {&lt;br /&gt;
				return candidate.link === link;&lt;br /&gt;
			} );&lt;br /&gt;
			if ( !entry ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			event.preventDefault();&lt;br /&gt;
			event.stopImmediatePropagation();&lt;br /&gt;
			manualEntry = entry;&lt;br /&gt;
			applyEntry( entry );&lt;br /&gt;
&lt;br /&gt;
			var hash = link.getAttribute( &#039;href&#039; );&lt;br /&gt;
			if ( hash ) {&lt;br /&gt;
				window.history.pushState( null, &#039;&#039;, hash );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			window.requestAnimationFrame( function () {&lt;br /&gt;
				var targetTop = window.scrollY +&lt;br /&gt;
					entry.target.getBoundingClientRect().top -&lt;br /&gt;
					getActivationTop();&lt;br /&gt;
				window.scrollTo( 0, Math.max( 0, targetTop ) );&lt;br /&gt;
			} );&lt;br /&gt;
		}, true );&lt;br /&gt;
&lt;br /&gt;
		window.addEventListener( &#039;scroll&#039;, scheduleUpdate, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;resize&#039;, scheduleUpdate );&lt;br /&gt;
		window.addEventListener( &#039;wheel&#039;, releaseManualEntry, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;touchstart&#039;, releaseManualEntry, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;pointerdown&#039;, function ( event ) {&lt;br /&gt;
			if ( !toc.contains( event.target ) ) {&lt;br /&gt;
				releaseManualEntry();&lt;br /&gt;
			}&lt;br /&gt;
		}, true );&lt;br /&gt;
		window.addEventListener( &#039;keydown&#039;, function ( event ) {&lt;br /&gt;
			if ( NAVIGATION_KEYS.indexOf( event.key ) !== -1 ) {&lt;br /&gt;
				releaseManualEntry();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		window.addEventListener( &#039;hashchange&#039;, function () {&lt;br /&gt;
			manualEntry = findEntryForHash();&lt;br /&gt;
			scheduleUpdate();&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		var classObserver = new MutationObserver( function () {&lt;br /&gt;
			if ( !applying ) {&lt;br /&gt;
				scheduleUpdate();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		classObserver.observe( toc, {&lt;br /&gt;
			attributes: true,&lt;br /&gt;
			attributeFilter: [ &#039;class&#039; ],&lt;br /&gt;
			subtree: true&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		scheduleUpdate();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( &#039;skins.citizen.scripts&#039; ).then( function () {&lt;br /&gt;
		window.requestAnimationFrame( function () {&lt;br /&gt;
			setupHomeCarousel();&lt;br /&gt;
			setupSingleActiveToc();&lt;br /&gt;
		} );&lt;br /&gt;
	} );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=158</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=158"/>
		<updated>2026-07-26T10:33:31Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release b32d298a7432&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:root {&lt;br /&gt;
  --lcd-blue: #63b7e8;&lt;br /&gt;
  --lcd-blue-dark: #258ac4;&lt;br /&gt;
  --lcd-ink: #233245;&lt;br /&gt;
  --lcd-muted: #66758a;&lt;br /&gt;
  --lcd-line: #dfe7ef;&lt;br /&gt;
  --lcd-panel: #f6f9fc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Keep the active table-of-contents state aligned with module title bars. */&lt;br /&gt;
.citizen-toc .citizen-toc-list-item--active &amp;gt; .citizen-toc-link {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.citizen-toc .citizen-toc-indicator {&lt;br /&gt;
  background-color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 精简 Citizen 主菜单，仅保留 Sidebar 中的三个核心入口。 */&lt;br /&gt;
#citizen-main-menu #p-navigation &amp;gt; .citizen-menu__heading,&lt;br /&gt;
#citizen-main-menu #t-specialpages,&lt;br /&gt;
#citizen-main-menu #t-upload {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏所有页面底部的页面信息、操作栏和完整站点页脚。 */&lt;br /&gt;
.citizen-page-footer,&lt;br /&gt;
.citizen-page-actions,&lt;br /&gt;
.mw-footer.citizen-footer {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首页模块标题不显示章节编辑入口，后台和其他页面编辑功能保持不变。 */&lt;br /&gt;
body.page-Main_Page .mw-editsection {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 产品二级页：隐藏章节编辑入口及滚动后的粘性操作按钮组。 */&lt;br /&gt;
body:has(.lcd-product__hero) .mw-editsection,&lt;br /&gt;
body:has(.lcd-product__hero) .citizen-sticky-header-end {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 首页桌面版式：将 Citizen 的页面信息与目录侧栏放到正文左侧，&lt;br /&gt;
 * 并限制整体版心宽度，在宽屏上保留对称留白。&lt;br /&gt;
 */&lt;br /&gt;
@media (min-width: 1200px) {&lt;br /&gt;
  body.page-Main_Page .citizen-body-container {&lt;br /&gt;
    width: min(100%, 91.5rem);&lt;br /&gt;
    margin-inline: auto;&lt;br /&gt;
    grid-template-columns: minmax(12rem, 15rem) minmax(0, 67.5rem);&lt;br /&gt;
    column-gap: 5rem;&lt;br /&gt;
    grid-template-areas:&lt;br /&gt;
      &amp;quot;sidebar content&amp;quot;&lt;br /&gt;
      &amp;quot;footer footer&amp;quot;;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  body.page-Main_Page&lt;br /&gt;
    .citizen-page-sidebar&lt;br /&gt;
    .citizen-toc-link:not(.citizen-toc-top) {&lt;br /&gt;
    height: auto;&lt;br /&gt;
    min-height: 2rem;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
    overflow-wrap: anywhere;&lt;br /&gt;
    text-overflow: clip;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  aspect-ratio: 4 / 1;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 12px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 8px rgba(38, 68, 94, .1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport,&lt;br /&gt;
.lcd-home-carousel__slide,&lt;br /&gt;
.lcd-home-carousel__slide &amp;gt; p,&lt;br /&gt;
.lcd-home-carousel__slide .mw-file-element {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport {&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  opacity: 0;&lt;br /&gt;
  transition: visibility 0s linear .4s, opacity .4s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide--active {&lt;br /&gt;
  visibility: visible;&lt;br /&gt;
  opacity: 1;&lt;br /&gt;
  transition-delay: 0s;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide &amp;gt; p {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__slide .mw-file-element {&lt;br /&gt;
  display: block;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dots {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  z-index: 2;&lt;br /&gt;
  bottom: clamp(.4rem, 1.1vw, .75rem);&lt;br /&gt;
  left: 50%;&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: .55rem;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  padding: .3rem .45rem;&lt;br /&gt;
  transform: translateX(-50%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot {&lt;br /&gt;
  width: .68rem;&lt;br /&gt;
  height: .68rem;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border: 1px solid rgba(35, 50, 69, .38);&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: rgba(255, 255, 255, .88);&lt;br /&gt;
  box-shadow: 0 1px 3px rgba(35, 50, 69, .28);&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot[aria-current=&amp;quot;true&amp;quot;] {&lt;br /&gt;
  border-color: #237f7f;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__dot:focus-visible {&lt;br /&gt;
  outline: 2px solid #fff;&lt;br /&gt;
  outline-offset: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-home-carousel__viewport &amp;gt; p,&lt;br /&gt;
.lcd-home-carousel &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module {&lt;br /&gt;
  margin: 1.75rem 0 2.5rem;&lt;br /&gt;
  scroll-margin-top: 5rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module__tab {&lt;br /&gt;
  margin: 0 0 1rem;&lt;br /&gt;
  padding: .68rem 1rem;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  letter-spacing: .02em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(4, minmax(0, 1fr));&lt;br /&gt;
  gap: 1.1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 7px rgba(38, 68, 94, .11);&lt;br /&gt;
  transition: transform .16s ease, box-shadow .16s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card:hover {&lt;br /&gt;
  transform: translateY(-2px);&lt;br /&gt;
  box-shadow: 0 7px 18px rgba(38, 68, 94, .16);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .65rem;&lt;br /&gt;
  background: #f8fafc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media a,&lt;br /&gt;
.lcd-card__media .mw-file-description {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__body {&lt;br /&gt;
  padding: .85rem .8rem .95rem;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title {&lt;br /&gt;
  min-height: 2.7em;&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  font-weight: 600;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title a {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__model {&lt;br /&gt;
  margin-top: .35rem;&lt;br /&gt;
  color: #27384b;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__hero {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(15rem, .8fr) minmax(0, 1.2fr);&lt;br /&gt;
  gap: 1.5rem;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  padding: 1.25rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 10px;&lt;br /&gt;
  background: var(--lcd-panel);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__summary {&lt;br /&gt;
  align-self: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__kicker {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__model {&lt;br /&gt;
  margin: .35rem 0 .6rem;&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
  font-size: clamp(1.35rem, 3vw, 2rem);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__status {&lt;br /&gt;
  margin-bottom: .85rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  gap: .75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery &amp;gt; div {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .6rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 7px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  table-layout: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table th:first-child {&lt;br /&gt;
  width: 10rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-status {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  padding: .18rem .55rem;&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: #244158;&lt;br /&gt;
  background: #dceff9;&lt;br /&gt;
  font-size: .84rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  padding: 1rem 1.15rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-left: 4px solid var(--lcd-blue);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__name {&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__type {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  margin-right: .6rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__body {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: .25rem .75rem;&lt;br /&gt;
  align-items: baseline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__action {&lt;br /&gt;
  margin-top: .65rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__meta,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  color: var(--lcd-muted);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-manager-links {&lt;br /&gt;
  columns: 2 18rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin-bottom: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable th {&lt;br /&gt;
  width: 11rem;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable input,&lt;br /&gt;
.formtable select,&lt;br /&gt;
.formtable textarea {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  max-width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 1000px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 620px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
    gap: .75rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__gallery {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-card__title {&lt;br /&gt;
    min-height: 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    padding: .85rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-spec-table th:first-child {&lt;br /&gt;
    width: 7.5rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .formtable,&lt;br /&gt;
  .formtable tbody,&lt;br /&gt;
  .formtable tr,&lt;br /&gt;
  .formtable th,&lt;br /&gt;
  .formtable td {&lt;br /&gt;
    display: block;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=Main_Page&amp;diff=157</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=Main_Page&amp;diff=157"/>
		<updated>2026-07-26T10:33:26Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release b32d298a7432&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;lcd-home&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-home-carousel&amp;quot; data-interval=&amp;quot;2000&amp;quot; role=&amp;quot;region&amp;quot; aria-label=&amp;quot;首页专题图片轮播&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-home-carousel__viewport&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-home-carousel__slide lcd-home-carousel__slide--active&amp;quot;&amp;gt;[[File:main_page_top1.jpg|1600px|link=|alt=AI 编程与开发板专题]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-home-carousel__slide&amp;quot;&amp;gt;[[File:main_page_top2.jpg|1600px|link=|alt=电子纸智能显示专题]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lcd-home-carousel__slide&amp;quot;&amp;gt;[[File:main_page_top3.jpg|1600px|link=|alt=Arduino 开源硬件专题]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:Project:首页目录配置}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=File:Main_page_top2.jpg&amp;diff=156</id>
		<title>File:Main page top2.jpg</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=File:Main_page_top2.jpg&amp;diff=156"/>
		<updated>2026-07-26T10:33:25Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Import missing assets from b32d298a7432&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 摘要 ==&lt;br /&gt;
Git release b32d298a74321981ff92819efa9d25f92253ade0&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=File:Main_page_top1.jpg&amp;diff=155</id>
		<title>File:Main page top1.jpg</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=File:Main_page_top1.jpg&amp;diff=155"/>
		<updated>2026-07-26T10:33:25Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Import missing assets from b32d298a7432&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 摘要 ==&lt;br /&gt;
Git release b32d298a74321981ff92819efa9d25f92253ade0&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=File:Main_page_top3.jpg&amp;diff=154</id>
		<title>File:Main page top3.jpg</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=File:Main_page_top3.jpg&amp;diff=154"/>
		<updated>2026-07-26T10:33:25Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Import missing assets from b32d298a7432&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 摘要 ==&lt;br /&gt;
Git release b32d298a74321981ff92819efa9d25f92253ade0&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/ESP32&amp;diff=153</id>
		<title>技术文档中心:首页模块/ESP32</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E6%A8%A1%E5%9D%97/ESP32&amp;diff=153"/>
		<updated>2026-07-26T10:13:58Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{首页产品卡&lt;br /&gt;
|标题=4.3英寸 ESP32-S3 智能显示板 A&lt;br /&gt;
|型号=DEMO-ESP-043-A&lt;br /&gt;
|图片=Demo-esp32-display.png&lt;br /&gt;
|替代文本=ESP32-S3 智能显示板原创示意图&lt;br /&gt;
|页面=4.3英寸 ESP32-S3 智能显示板&lt;br /&gt;
}}&lt;br /&gt;
{{首页产品卡&lt;br /&gt;
|标题=4.3英寸 ESP32-S3 智能显示板 B&lt;br /&gt;
|型号=DEMO-ESP-043-B&lt;br /&gt;
|图片=Demo-esp32-display.png&lt;br /&gt;
|替代文本=ESP32-S3 智能显示板原创示意图&lt;br /&gt;
|页面=4.3英寸 ESP32-S3 智能显示板&lt;br /&gt;
}}&lt;br /&gt;
{{首页产品卡&lt;br /&gt;
|标题=4.3英寸 ESP32-S3 智能显示板 C&lt;br /&gt;
|型号=DEMO-ESP-043-C&lt;br /&gt;
|图片=Demo-esp32-display.png&lt;br /&gt;
|替代文本=ESP32-S3 智能显示板原创示意图&lt;br /&gt;
|页面=4.3英寸 ESP32-S3 智能显示板&lt;br /&gt;
}}&lt;br /&gt;
{{首页产品卡&lt;br /&gt;
|标题=4.3英寸 ESP32-S3 智能显示板 D&lt;br /&gt;
|型号=DEMO-ESP-043-D&lt;br /&gt;
|图片=Demo-esp32-display.png&lt;br /&gt;
|替代文本=ESP32-S3 智能显示板原创示意图&lt;br /&gt;
|页面=4.3英寸 ESP32-S3 智能显示板&lt;br /&gt;
}}&lt;br /&gt;
{{首页产品卡&lt;br /&gt;
|标题=4.3英寸 ESP32-S3 智能显示板 F&lt;br /&gt;
|型号=4.3英寸 ESP32-S3 智能显示板型号&lt;br /&gt;
|图片=Demo-arduino-display.png&lt;br /&gt;
|页面=ESP32&lt;br /&gt;
}}&lt;br /&gt;
{{#default_form:首页模块}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=ESP32&amp;diff=152</id>
		<title>ESP32</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=ESP32&amp;diff=152"/>
		<updated>2026-07-26T10:10:57Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: ESP001摘要&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{产品信息&lt;br /&gt;
|标题=ESP32 TEST标题&lt;br /&gt;
|型号=ESP32 TEST001&lt;br /&gt;
|状态=已发布&lt;br /&gt;
|所属模块=ESP32显示模块&lt;br /&gt;
|主图=Demo-esp32-display.png&lt;br /&gt;
|简介=ESP32 TEST 简介001&lt;br /&gt;
ESP32 TEST 简介002&lt;br /&gt;
ESP32 TEST 简介003&lt;br /&gt;
ESP32 TEST 简介0014&lt;br /&gt;
ESP32 TEST 简介005&lt;br /&gt;
ESP32 TEST 简介006&lt;br /&gt;
|产品要点=ESP32 TEST 产品要点 001&lt;br /&gt;
ESP32 TEST 产品要点 001&lt;br /&gt;
ESP32 TEST 产品要点 001&lt;br /&gt;
ESP32 TEST 产品要点 001&lt;br /&gt;
ESP32 TEST 产品要点 001&lt;br /&gt;
ESP32 TEST 产品要点 001&lt;br /&gt;
ESP32 TEST 产品要点 001&lt;br /&gt;
ESP32 TEST 产品要点 001&lt;br /&gt;
ESP32 TEST 产品要点 001&lt;br /&gt;
ESP32 TEST 产品要点 001&lt;br /&gt;
|显示尺寸=1920*1080&lt;br /&gt;
|分辨率=1920*1080&lt;br /&gt;
|显示接口=SP32&lt;br /&gt;
|触控方式=无&lt;br /&gt;
|供电=5V&lt;br /&gt;
|外形尺寸=120*120&lt;br /&gt;
|硬件说明=硬件说明01&lt;br /&gt;
硬件说明01&lt;br /&gt;
硬件说明01&lt;br /&gt;
硬件说明01&lt;br /&gt;
硬件说明01&lt;br /&gt;
硬件说明01&lt;br /&gt;
硬件说明01&lt;br /&gt;
硬件说明01&lt;br /&gt;
硬件说明01&lt;br /&gt;
|使用说明=使用说明0100、&lt;br /&gt;
使用说明0100&lt;br /&gt;
使用说明0100&lt;br /&gt;
使用说明0100&lt;br /&gt;
使用说明0100&lt;br /&gt;
使用说明0100&lt;br /&gt;
使用说明0100&lt;br /&gt;
使用说明0100&lt;br /&gt;
使用说明0100&lt;br /&gt;
使用说明0100&lt;br /&gt;
使用说明0100&lt;br /&gt;
使用说明0100&lt;br /&gt;
|常见问题=常见问题001&lt;br /&gt;
常见问题001&lt;br /&gt;
常见问题001&lt;br /&gt;
常见问题001&lt;br /&gt;
常见问题001&lt;br /&gt;
常见问题001&lt;br /&gt;
常见问题001&lt;br /&gt;
常见问题001常见问题001&lt;br /&gt;
|下载类型=PDF&lt;br /&gt;
|下载名称=esp01.pdf&lt;br /&gt;
|下载说明=esp01.pdf&lt;br /&gt;
|下载版本=0010021&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=File:%E6%A0%91%E8%8E%93%E6%B4%BE%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B(%E4%B8%8B%E8%BD%BD%EF%BC%8C%E6%A0%BC%E5%BC%8F%E5%8C%96%EF%BC%8C%E7%83%A7%E5%BD%95%EF%BC%8CSSH%EF%BC%8CPuTTy)-V1.0.pdf&amp;diff=151</id>
		<title>File:树莓派入门教程(下载，格式化，烧录，SSH，PuTTy)-V1.0.pdf</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=File:%E6%A0%91%E8%8E%93%E6%B4%BE%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B(%E4%B8%8B%E8%BD%BD%EF%BC%8C%E6%A0%BC%E5%BC%8F%E5%8C%96%EF%BC%8C%E7%83%A7%E5%BD%95%EF%BC%8CSSH%EF%BC%8CPuTTy)-V1.0.pdf&amp;diff=151"/>
		<updated>2026-07-26T10:10:23Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E7%9B%AE%E5%BD%95%E9%85%8D%E7%BD%AE&amp;diff=150</id>
		<title>技术文档中心:首页目录配置</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E5%BF%83:%E9%A6%96%E9%A1%B5%E7%9B%AE%E5%BD%95%E9%85%8D%E7%BD%AE&amp;diff=150"/>
		<updated>2026-07-26T09:50:22Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{首页模块入口&lt;br /&gt;
|标题=Raspberry Pi树莓派HDMI 显示屏11&lt;br /&gt;
|标签=HDMI显示屏11&lt;br /&gt;
|配置页=Project:首页模块/HDMI&lt;br /&gt;
}}&lt;br /&gt;
{{首页模块入口&lt;br /&gt;
|标题=RaspberryPi 树莓派MHS&amp;amp; GPIO 显示屏&lt;br /&gt;
|标签=MHS/GPIO显示屏&lt;br /&gt;
|配置页=Project:首页模块/MHS-GPIO&lt;br /&gt;
}}&lt;br /&gt;
{{首页模块入口&lt;br /&gt;
|标题=Arduino显示模块&lt;br /&gt;
|标签=Arduino显示屏&lt;br /&gt;
|配置页=Project:首页模块/Arduino&lt;br /&gt;
}}&lt;br /&gt;
{{首页模块入口&lt;br /&gt;
|标题=SPI串口模块&lt;br /&gt;
|标签=SPI显示模块&lt;br /&gt;
|配置页=Project:首页模块/SPI&lt;br /&gt;
}}&lt;br /&gt;
{{首页模块入口&lt;br /&gt;
|标题=ESP32显示模块&lt;br /&gt;
|标签=ESP32显示屏&lt;br /&gt;
|配置页=Project:首页模块/ESP32&lt;br /&gt;
}}&lt;br /&gt;
{{首页模块入口&lt;br /&gt;
|标题=USB-副屏显示器&lt;br /&gt;
|标签=USB电脑副屏&lt;br /&gt;
|配置页=Project:首页模块/USB副屏&lt;br /&gt;
}}&lt;br /&gt;
{{首页模块入口&lt;br /&gt;
|标题=并口显示屏模块&lt;br /&gt;
|标签=并口显示屏&lt;br /&gt;
|配置页=Project:首页模块/并口&lt;br /&gt;
}}&lt;br /&gt;
{{首页模块入口&lt;br /&gt;
|标题=OLED Display Module&lt;br /&gt;
|标签=OLED显示屏&lt;br /&gt;
|配置页=Project:首页模块/OLED&lt;br /&gt;
}}&lt;br /&gt;
{{首页模块入口&lt;br /&gt;
|标题=开发板&lt;br /&gt;
|标签=嵌入式开发板&lt;br /&gt;
|配置页=Project:首页模块/开发板&lt;br /&gt;
}}&lt;br /&gt;
{{首页模块入口&lt;br /&gt;
|标题=GettingStarted&lt;br /&gt;
|标签=入门教程&lt;br /&gt;
|配置页=Project:首页模块/GettingStarted&lt;br /&gt;
}}&lt;br /&gt;
{{#default_form:首页目录}}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=149</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=149"/>
		<updated>2026-07-26T08:54:22Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release c2c6f86741da&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:root {&lt;br /&gt;
  --lcd-blue: #63b7e8;&lt;br /&gt;
  --lcd-blue-dark: #258ac4;&lt;br /&gt;
  --lcd-ink: #233245;&lt;br /&gt;
  --lcd-muted: #66758a;&lt;br /&gt;
  --lcd-line: #dfe7ef;&lt;br /&gt;
  --lcd-panel: #f6f9fc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Keep the active table-of-contents state aligned with module title bars. */&lt;br /&gt;
.citizen-toc .citizen-toc-list-item--active &amp;gt; .citizen-toc-link {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.citizen-toc .citizen-toc-indicator {&lt;br /&gt;
  background-color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 精简 Citizen 主菜单，仅保留 Sidebar 中的三个核心入口。 */&lt;br /&gt;
#citizen-main-menu #p-navigation &amp;gt; .citizen-menu__heading,&lt;br /&gt;
#citizen-main-menu #t-specialpages,&lt;br /&gt;
#citizen-main-menu #t-upload {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏所有页面底部的页面信息、操作栏和完整站点页脚。 */&lt;br /&gt;
.citizen-page-footer,&lt;br /&gt;
.citizen-page-actions,&lt;br /&gt;
.mw-footer.citizen-footer {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首页模块标题不显示章节编辑入口，后台和其他页面编辑功能保持不变。 */&lt;br /&gt;
body.page-Main_Page .mw-editsection {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 产品二级页：隐藏章节编辑入口及滚动后的粘性操作按钮组。 */&lt;br /&gt;
body:has(.lcd-product__hero) .mw-editsection,&lt;br /&gt;
body:has(.lcd-product__hero) .citizen-sticky-header-end {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 首页桌面版式：将 Citizen 的页面信息与目录侧栏放到正文左侧，&lt;br /&gt;
 * 并限制整体版心宽度，在宽屏上保留对称留白。&lt;br /&gt;
 */&lt;br /&gt;
@media (min-width: 1200px) {&lt;br /&gt;
  body.page-Main_Page .citizen-body-container {&lt;br /&gt;
    width: min(100%, 91.5rem);&lt;br /&gt;
    margin-inline: auto;&lt;br /&gt;
    grid-template-columns: minmax(12rem, 15rem) minmax(0, 67.5rem);&lt;br /&gt;
    column-gap: 5rem;&lt;br /&gt;
    grid-template-areas:&lt;br /&gt;
      &amp;quot;sidebar content&amp;quot;&lt;br /&gt;
      &amp;quot;footer footer&amp;quot;;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  body.page-Main_Page&lt;br /&gt;
    .citizen-page-sidebar&lt;br /&gt;
    .citizen-toc-link:not(.citizen-toc-top) {&lt;br /&gt;
    height: auto;&lt;br /&gt;
    min-height: 2rem;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
    overflow-wrap: anywhere;&lt;br /&gt;
    text-overflow: clip;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome {&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  padding: 1.5rem 1.75rem;&lt;br /&gt;
  border: 1px solid #dceaf3;&lt;br /&gt;
  border-radius: 12px;&lt;br /&gt;
  background: linear-gradient(135deg, #f8fcff, #eef8fe);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome h2 {&lt;br /&gt;
  margin: 0 0 .75rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  border: 0;&lt;br /&gt;
  font-size: clamp(1.5rem, 3vw, 2rem);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome__eyebrow {&lt;br /&gt;
  margin-bottom: .35rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-size: .76rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  letter-spacing: .12em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome__title {&lt;br /&gt;
  margin-bottom: .75rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-size: clamp(1.5rem, 3vw, 2rem);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome p:last-child {&lt;br /&gt;
  margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module {&lt;br /&gt;
  margin: 1.75rem 0 2.5rem;&lt;br /&gt;
  scroll-margin-top: 5rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module__tab {&lt;br /&gt;
  margin: 0 0 1rem;&lt;br /&gt;
  padding: .68rem 1rem;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  letter-spacing: .02em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(4, minmax(0, 1fr));&lt;br /&gt;
  gap: 1.1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 7px rgba(38, 68, 94, .11);&lt;br /&gt;
  transition: transform .16s ease, box-shadow .16s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card:hover {&lt;br /&gt;
  transform: translateY(-2px);&lt;br /&gt;
  box-shadow: 0 7px 18px rgba(38, 68, 94, .16);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .65rem;&lt;br /&gt;
  background: #f8fafc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media a,&lt;br /&gt;
.lcd-card__media .mw-file-description {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__body {&lt;br /&gt;
  padding: .85rem .8rem .95rem;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title {&lt;br /&gt;
  min-height: 2.7em;&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  font-weight: 600;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title a {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__model {&lt;br /&gt;
  margin-top: .35rem;&lt;br /&gt;
  color: #27384b;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__hero {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(15rem, .8fr) minmax(0, 1.2fr);&lt;br /&gt;
  gap: 1.5rem;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  padding: 1.25rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 10px;&lt;br /&gt;
  background: var(--lcd-panel);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__summary {&lt;br /&gt;
  align-self: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__kicker {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__model {&lt;br /&gt;
  margin: .35rem 0 .6rem;&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
  font-size: clamp(1.35rem, 3vw, 2rem);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__status {&lt;br /&gt;
  margin-bottom: .85rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  gap: .75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery &amp;gt; div {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .6rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 7px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  table-layout: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table th:first-child {&lt;br /&gt;
  width: 10rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-status {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  padding: .18rem .55rem;&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: #244158;&lt;br /&gt;
  background: #dceff9;&lt;br /&gt;
  font-size: .84rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  padding: 1rem 1.15rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-left: 4px solid var(--lcd-blue);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__name {&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__type {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  margin-right: .6rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__body {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: .25rem .75rem;&lt;br /&gt;
  align-items: baseline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__action {&lt;br /&gt;
  margin-top: .65rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__meta,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  color: var(--lcd-muted);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-manager-links {&lt;br /&gt;
  columns: 2 18rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin-bottom: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable th {&lt;br /&gt;
  width: 11rem;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable input,&lt;br /&gt;
.formtable select,&lt;br /&gt;
.formtable textarea {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  max-width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 1000px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 620px) {&lt;br /&gt;
  .lcd-welcome {&lt;br /&gt;
    padding: 1.1rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
    gap: .75rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__gallery {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-card__title {&lt;br /&gt;
    min-height: 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    padding: .85rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-spec-table th:first-child {&lt;br /&gt;
    width: 7.5rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .formtable,&lt;br /&gt;
  .formtable tbody,&lt;br /&gt;
  .formtable tr,&lt;br /&gt;
  .formtable th,&lt;br /&gt;
  .formtable td {&lt;br /&gt;
    display: block;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.js&amp;diff=148</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.js&amp;diff=148"/>
		<updated>2026-07-26T08:26:15Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release 98258910502c&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var ACTIVE_CLASS = &#039;citizen-toc-list-item--active&#039;;&lt;br /&gt;
	var ACTIVE_TOP_CLASS = &#039;citizen-toc-level-1--active&#039;;&lt;br /&gt;
	var LINK_SELECTOR = &#039;.citizen-toc-link:not(.citizen-toc-top)&#039;;&lt;br /&gt;
	var NAVIGATION_KEYS = [&lt;br /&gt;
		&#039;ArrowDown&#039;,&lt;br /&gt;
		&#039;ArrowUp&#039;,&lt;br /&gt;
		&#039;End&#039;,&lt;br /&gt;
		&#039;Home&#039;,&lt;br /&gt;
		&#039;PageDown&#039;,&lt;br /&gt;
		&#039;PageUp&#039;,&lt;br /&gt;
		&#039; &#039;&lt;br /&gt;
	];&lt;br /&gt;
&lt;br /&gt;
	function decodeFragment( hash ) {&lt;br /&gt;
		if ( !hash || hash.charAt( 0 ) !== &#039;#&#039; ) {&lt;br /&gt;
			return &#039;&#039;;&lt;br /&gt;
		}&lt;br /&gt;
		try {&lt;br /&gt;
			return decodeURIComponent( hash.slice( 1 ) );&lt;br /&gt;
		} catch ( error ) {&lt;br /&gt;
			return hash.slice( 1 );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function setupSingleActiveToc() {&lt;br /&gt;
		var toc = document.querySelector( &#039;.citizen-toc&#039; );&lt;br /&gt;
		var indicator = toc &amp;amp;&amp;amp; toc.querySelector( &#039;.citizen-toc-indicator&#039; );&lt;br /&gt;
&lt;br /&gt;
		if ( !toc || !indicator || toc.dataset.techdocsSingleActiveToc === &#039;1&#039; ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var entries = Array.prototype.map.call(&lt;br /&gt;
			toc.querySelectorAll( LINK_SELECTOR ),&lt;br /&gt;
			function ( link ) {&lt;br /&gt;
				var target = document.getElementById( decodeFragment( link.hash ) );&lt;br /&gt;
				var item = link.closest( &#039;.citizen-toc-list-item&#039; );&lt;br /&gt;
				return target &amp;amp;&amp;amp; item ? {&lt;br /&gt;
					item: item,&lt;br /&gt;
					link: link,&lt;br /&gt;
					target: target&lt;br /&gt;
				} : null;&lt;br /&gt;
			}&lt;br /&gt;
		).filter( Boolean );&lt;br /&gt;
&lt;br /&gt;
		if ( entries.length === 0 ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		toc.dataset.techdocsSingleActiveToc = &#039;1&#039;;&lt;br /&gt;
&lt;br /&gt;
		var applying = false;&lt;br /&gt;
		var frameId = 0;&lt;br /&gt;
		var manualEntry = null;&lt;br /&gt;
&lt;br /&gt;
		function getActivationTop() {&lt;br /&gt;
			var value = parseFloat(&lt;br /&gt;
				window.getComputedStyle( document.documentElement ).scrollPaddingTop&lt;br /&gt;
			);&lt;br /&gt;
			return Number.isFinite( value ) ? value : 0;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function findEntryForHash() {&lt;br /&gt;
			var id = decodeFragment( window.location.hash );&lt;br /&gt;
			return entries.find( function ( entry ) {&lt;br /&gt;
				return entry.target.id === id;&lt;br /&gt;
			} ) || null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function findEntryForScroll() {&lt;br /&gt;
			var activationTop = getActivationTop();&lt;br /&gt;
			var selected = entries[ 0 ];&lt;br /&gt;
&lt;br /&gt;
			entries.some( function ( entry ) {&lt;br /&gt;
				if ( entry.target.getBoundingClientRect().top &amp;lt;= activationTop + 1 ) {&lt;br /&gt;
					selected = entry;&lt;br /&gt;
					return false;&lt;br /&gt;
				}&lt;br /&gt;
				return true;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			return selected;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function updateIndicator( entry ) {&lt;br /&gt;
			var positioningParent = indicator.offsetParent || toc;&lt;br /&gt;
			var parentRect = positioningParent.getBoundingClientRect();&lt;br /&gt;
			var linkRect = entry.link.getBoundingClientRect();&lt;br /&gt;
			var unitHeight = linkRect.height || entry.link.offsetHeight || 32;&lt;br /&gt;
			var top = linkRect.top - parentRect.top + positioningParent.scrollTop;&lt;br /&gt;
&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-unit-height&#039;, unitHeight + &#039;px&#039; );&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-top&#039;, top + &#039;px&#039; );&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-scale&#039;, &#039;1&#039; );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function applyEntry( entry ) {&lt;br /&gt;
			if ( !entry ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			applying = true;&lt;br /&gt;
			var topItem = entry.item.closest( &#039;.citizen-toc-level-1&#039; );&lt;br /&gt;
&lt;br /&gt;
			entries.forEach( function ( candidate ) {&lt;br /&gt;
				var isActive = candidate.item === entry.item;&lt;br /&gt;
				candidate.item.classList.toggle( ACTIVE_CLASS, isActive );&lt;br /&gt;
				candidate.item.classList.toggle(&lt;br /&gt;
					ACTIVE_TOP_CLASS,&lt;br /&gt;
					candidate.item === topItem&lt;br /&gt;
				);&lt;br /&gt;
				if ( isActive ) {&lt;br /&gt;
					candidate.link.setAttribute( &#039;aria-current&#039;, &#039;location&#039; );&lt;br /&gt;
				} else {&lt;br /&gt;
					candidate.link.removeAttribute( &#039;aria-current&#039; );&lt;br /&gt;
				}&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			if ( topItem &amp;amp;&amp;amp; !entries.some( function ( candidate ) {&lt;br /&gt;
				return candidate.item === topItem;&lt;br /&gt;
			} ) ) {&lt;br /&gt;
				topItem.classList.add( ACTIVE_TOP_CLASS );&lt;br /&gt;
			}&lt;br /&gt;
			updateIndicator( entry );&lt;br /&gt;
&lt;br /&gt;
			applying = false;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function update() {&lt;br /&gt;
			frameId = 0;&lt;br /&gt;
			applyEntry( manualEntry || findEntryForScroll() );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function scheduleUpdate() {&lt;br /&gt;
			if ( frameId === 0 ) {&lt;br /&gt;
				frameId = window.requestAnimationFrame( update );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function releaseManualEntry() {&lt;br /&gt;
			if ( manualEntry ) {&lt;br /&gt;
				manualEntry = null;&lt;br /&gt;
				scheduleUpdate();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		toc.addEventListener( &#039;click&#039;, function ( event ) {&lt;br /&gt;
			if (&lt;br /&gt;
				event.defaultPrevented ||&lt;br /&gt;
				event.button !== 0 ||&lt;br /&gt;
				event.altKey ||&lt;br /&gt;
				event.ctrlKey ||&lt;br /&gt;
				event.metaKey ||&lt;br /&gt;
				event.shiftKey&lt;br /&gt;
			) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var link = event.target.closest( LINK_SELECTOR );&lt;br /&gt;
			if ( !link || !toc.contains( link ) ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var entry = entries.find( function ( candidate ) {&lt;br /&gt;
				return candidate.link === link;&lt;br /&gt;
			} );&lt;br /&gt;
			if ( !entry ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			event.preventDefault();&lt;br /&gt;
			event.stopImmediatePropagation();&lt;br /&gt;
			manualEntry = entry;&lt;br /&gt;
			applyEntry( entry );&lt;br /&gt;
&lt;br /&gt;
			var hash = link.getAttribute( &#039;href&#039; );&lt;br /&gt;
			if ( hash ) {&lt;br /&gt;
				window.history.pushState( null, &#039;&#039;, hash );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			window.requestAnimationFrame( function () {&lt;br /&gt;
				var targetTop = window.scrollY +&lt;br /&gt;
					entry.target.getBoundingClientRect().top -&lt;br /&gt;
					getActivationTop();&lt;br /&gt;
				window.scrollTo( 0, Math.max( 0, targetTop ) );&lt;br /&gt;
			} );&lt;br /&gt;
		}, true );&lt;br /&gt;
&lt;br /&gt;
		window.addEventListener( &#039;scroll&#039;, scheduleUpdate, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;resize&#039;, scheduleUpdate );&lt;br /&gt;
		window.addEventListener( &#039;wheel&#039;, releaseManualEntry, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;touchstart&#039;, releaseManualEntry, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;pointerdown&#039;, function ( event ) {&lt;br /&gt;
			if ( !toc.contains( event.target ) ) {&lt;br /&gt;
				releaseManualEntry();&lt;br /&gt;
			}&lt;br /&gt;
		}, true );&lt;br /&gt;
		window.addEventListener( &#039;keydown&#039;, function ( event ) {&lt;br /&gt;
			if ( NAVIGATION_KEYS.indexOf( event.key ) !== -1 ) {&lt;br /&gt;
				releaseManualEntry();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		window.addEventListener( &#039;hashchange&#039;, function () {&lt;br /&gt;
			manualEntry = findEntryForHash();&lt;br /&gt;
			scheduleUpdate();&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		var classObserver = new MutationObserver( function () {&lt;br /&gt;
			if ( !applying ) {&lt;br /&gt;
				scheduleUpdate();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		classObserver.observe( toc, {&lt;br /&gt;
			attributes: true,&lt;br /&gt;
			attributeFilter: [ &#039;class&#039; ],&lt;br /&gt;
			subtree: true&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		scheduleUpdate();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( &#039;skins.citizen.scripts&#039; ).then( function () {&lt;br /&gt;
		window.requestAnimationFrame( setupSingleActiveToc );&lt;br /&gt;
	} );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.js&amp;diff=147</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.js&amp;diff=147"/>
		<updated>2026-07-26T08:20:58Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release 7815ee896492&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var ACTIVE_CLASS = &#039;citizen-toc-list-item--active&#039;;&lt;br /&gt;
	var ACTIVE_TOP_CLASS = &#039;citizen-toc-level-1--active&#039;;&lt;br /&gt;
	var LINK_SELECTOR = &#039;.citizen-toc-link:not(.citizen-toc-top)&#039;;&lt;br /&gt;
	var NAVIGATION_KEYS = [&lt;br /&gt;
		&#039;ArrowDown&#039;,&lt;br /&gt;
		&#039;ArrowUp&#039;,&lt;br /&gt;
		&#039;End&#039;,&lt;br /&gt;
		&#039;Home&#039;,&lt;br /&gt;
		&#039;PageDown&#039;,&lt;br /&gt;
		&#039;PageUp&#039;,&lt;br /&gt;
		&#039; &#039;&lt;br /&gt;
	];&lt;br /&gt;
&lt;br /&gt;
	function decodeFragment( hash ) {&lt;br /&gt;
		if ( !hash || hash.charAt( 0 ) !== &#039;#&#039; ) {&lt;br /&gt;
			return &#039;&#039;;&lt;br /&gt;
		}&lt;br /&gt;
		try {&lt;br /&gt;
			return decodeURIComponent( hash.slice( 1 ) );&lt;br /&gt;
		} catch ( error ) {&lt;br /&gt;
			return hash.slice( 1 );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function setupSingleActiveToc() {&lt;br /&gt;
		var toc = document.querySelector( &#039;.citizen-toc&#039; );&lt;br /&gt;
		var indicator = toc &amp;amp;&amp;amp; toc.querySelector( &#039;.citizen-toc-indicator&#039; );&lt;br /&gt;
&lt;br /&gt;
		if ( !toc || !indicator || toc.dataset.techdocsSingleActiveToc === &#039;1&#039; ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var entries = Array.prototype.map.call(&lt;br /&gt;
			toc.querySelectorAll( LINK_SELECTOR ),&lt;br /&gt;
			function ( link ) {&lt;br /&gt;
				var target = document.getElementById( decodeFragment( link.hash ) );&lt;br /&gt;
				var item = link.closest( &#039;.citizen-toc-list-item&#039; );&lt;br /&gt;
				return target &amp;amp;&amp;amp; item ? {&lt;br /&gt;
					item: item,&lt;br /&gt;
					link: link,&lt;br /&gt;
					target: target&lt;br /&gt;
				} : null;&lt;br /&gt;
			}&lt;br /&gt;
		).filter( Boolean );&lt;br /&gt;
&lt;br /&gt;
		if ( entries.length === 0 ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		toc.dataset.techdocsSingleActiveToc = &#039;1&#039;;&lt;br /&gt;
&lt;br /&gt;
		var applying = false;&lt;br /&gt;
		var frameId = 0;&lt;br /&gt;
		var manualEntry = null;&lt;br /&gt;
&lt;br /&gt;
		function getActivationTop() {&lt;br /&gt;
			var value = parseFloat(&lt;br /&gt;
				window.getComputedStyle( document.documentElement ).scrollPaddingTop&lt;br /&gt;
			);&lt;br /&gt;
			return Number.isFinite( value ) ? value : 0;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function findEntryForHash() {&lt;br /&gt;
			var id = decodeFragment( window.location.hash );&lt;br /&gt;
			return entries.find( function ( entry ) {&lt;br /&gt;
				return entry.target.id === id;&lt;br /&gt;
			} ) || null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function findEntryForScroll() {&lt;br /&gt;
			var activationTop = getActivationTop();&lt;br /&gt;
			var selected = entries[ 0 ];&lt;br /&gt;
&lt;br /&gt;
			entries.some( function ( entry ) {&lt;br /&gt;
				if ( entry.target.getBoundingClientRect().top &amp;lt;= activationTop + 1 ) {&lt;br /&gt;
					selected = entry;&lt;br /&gt;
					return false;&lt;br /&gt;
				}&lt;br /&gt;
				return true;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			return selected;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function updateIndicator( entry ) {&lt;br /&gt;
			var positioningParent = indicator.offsetParent || toc;&lt;br /&gt;
			var parentRect = positioningParent.getBoundingClientRect();&lt;br /&gt;
			var linkRect = entry.link.getBoundingClientRect();&lt;br /&gt;
			var unitHeight = linkRect.height || entry.link.offsetHeight || 32;&lt;br /&gt;
			var top = linkRect.top - parentRect.top + positioningParent.scrollTop;&lt;br /&gt;
&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-unit-height&#039;, unitHeight + &#039;px&#039; );&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-top&#039;, top + &#039;px&#039; );&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-scale&#039;, &#039;1&#039; );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function applyEntry( entry ) {&lt;br /&gt;
			if ( !entry ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			applying = true;&lt;br /&gt;
			var topItem = entry.item.closest( &#039;.citizen-toc-level-1&#039; );&lt;br /&gt;
&lt;br /&gt;
			entries.forEach( function ( candidate ) {&lt;br /&gt;
				var isActive = candidate.item === entry.item;&lt;br /&gt;
				candidate.item.classList.toggle( ACTIVE_CLASS, isActive );&lt;br /&gt;
				candidate.item.classList.toggle(&lt;br /&gt;
					ACTIVE_TOP_CLASS,&lt;br /&gt;
					candidate.item === topItem&lt;br /&gt;
				);&lt;br /&gt;
				if ( isActive ) {&lt;br /&gt;
					candidate.link.setAttribute( &#039;aria-current&#039;, &#039;location&#039; );&lt;br /&gt;
				} else {&lt;br /&gt;
					candidate.link.removeAttribute( &#039;aria-current&#039; );&lt;br /&gt;
				}&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			if ( topItem &amp;amp;&amp;amp; !entries.some( function ( candidate ) {&lt;br /&gt;
				return candidate.item === topItem;&lt;br /&gt;
			} ) ) {&lt;br /&gt;
				topItem.classList.add( ACTIVE_TOP_CLASS );&lt;br /&gt;
			}&lt;br /&gt;
			updateIndicator( entry );&lt;br /&gt;
&lt;br /&gt;
			applying = false;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function update() {&lt;br /&gt;
			frameId = 0;&lt;br /&gt;
			applyEntry( manualEntry || findEntryForScroll() );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function scheduleUpdate() {&lt;br /&gt;
			if ( frameId === 0 ) {&lt;br /&gt;
				frameId = window.requestAnimationFrame( update );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function releaseManualEntry() {&lt;br /&gt;
			if ( manualEntry ) {&lt;br /&gt;
				manualEntry = null;&lt;br /&gt;
				scheduleUpdate();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		toc.addEventListener( &#039;click&#039;, function ( event ) {&lt;br /&gt;
			if (&lt;br /&gt;
				event.defaultPrevented ||&lt;br /&gt;
				event.button !== 0 ||&lt;br /&gt;
				event.altKey ||&lt;br /&gt;
				event.ctrlKey ||&lt;br /&gt;
				event.metaKey ||&lt;br /&gt;
				event.shiftKey&lt;br /&gt;
			) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var link = event.target.closest( LINK_SELECTOR );&lt;br /&gt;
			if ( !link || !toc.contains( link ) ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var entry = entries.find( function ( candidate ) {&lt;br /&gt;
				return candidate.link === link;&lt;br /&gt;
			} );&lt;br /&gt;
			if ( !entry ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			event.preventDefault();&lt;br /&gt;
			event.stopImmediatePropagation();&lt;br /&gt;
			manualEntry = entry;&lt;br /&gt;
			applyEntry( entry );&lt;br /&gt;
&lt;br /&gt;
			var hash = link.getAttribute( &#039;href&#039; );&lt;br /&gt;
			if ( hash ) {&lt;br /&gt;
				window.history.pushState( null, &#039;&#039;, hash );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			window.requestAnimationFrame( function () {&lt;br /&gt;
				entry.target.scrollIntoView( {&lt;br /&gt;
					block: &#039;start&#039;&lt;br /&gt;
				} );&lt;br /&gt;
			} );&lt;br /&gt;
		}, true );&lt;br /&gt;
&lt;br /&gt;
		window.addEventListener( &#039;scroll&#039;, scheduleUpdate, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;resize&#039;, scheduleUpdate );&lt;br /&gt;
		window.addEventListener( &#039;wheel&#039;, releaseManualEntry, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;touchstart&#039;, releaseManualEntry, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;pointerdown&#039;, function ( event ) {&lt;br /&gt;
			if ( !toc.contains( event.target ) ) {&lt;br /&gt;
				releaseManualEntry();&lt;br /&gt;
			}&lt;br /&gt;
		}, true );&lt;br /&gt;
		window.addEventListener( &#039;keydown&#039;, function ( event ) {&lt;br /&gt;
			if ( NAVIGATION_KEYS.indexOf( event.key ) !== -1 ) {&lt;br /&gt;
				releaseManualEntry();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		window.addEventListener( &#039;hashchange&#039;, function () {&lt;br /&gt;
			manualEntry = findEntryForHash();&lt;br /&gt;
			scheduleUpdate();&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		var classObserver = new MutationObserver( function () {&lt;br /&gt;
			if ( !applying ) {&lt;br /&gt;
				scheduleUpdate();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		classObserver.observe( toc, {&lt;br /&gt;
			attributes: true,&lt;br /&gt;
			attributeFilter: [ &#039;class&#039; ],&lt;br /&gt;
			subtree: true&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		scheduleUpdate();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( &#039;skins.citizen.scripts&#039; ).then( function () {&lt;br /&gt;
		window.requestAnimationFrame( setupSingleActiveToc );&lt;br /&gt;
	} );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.js&amp;diff=146</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.js&amp;diff=146"/>
		<updated>2026-07-26T08:15:44Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release 3375ef240d1c&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var ACTIVE_CLASS = &#039;citizen-toc-list-item--active&#039;;&lt;br /&gt;
	var ACTIVE_TOP_CLASS = &#039;citizen-toc-level-1--active&#039;;&lt;br /&gt;
	var LINK_SELECTOR = &#039;.citizen-toc-link:not(.citizen-toc-top)&#039;;&lt;br /&gt;
	var NAVIGATION_KEYS = [&lt;br /&gt;
		&#039;ArrowDown&#039;,&lt;br /&gt;
		&#039;ArrowUp&#039;,&lt;br /&gt;
		&#039;End&#039;,&lt;br /&gt;
		&#039;Home&#039;,&lt;br /&gt;
		&#039;PageDown&#039;,&lt;br /&gt;
		&#039;PageUp&#039;,&lt;br /&gt;
		&#039; &#039;&lt;br /&gt;
	];&lt;br /&gt;
&lt;br /&gt;
	function decodeFragment( hash ) {&lt;br /&gt;
		if ( !hash || hash.charAt( 0 ) !== &#039;#&#039; ) {&lt;br /&gt;
			return &#039;&#039;;&lt;br /&gt;
		}&lt;br /&gt;
		try {&lt;br /&gt;
			return decodeURIComponent( hash.slice( 1 ) );&lt;br /&gt;
		} catch ( error ) {&lt;br /&gt;
			return hash.slice( 1 );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function setupSingleActiveToc() {&lt;br /&gt;
		var toc = document.querySelector( &#039;.citizen-toc&#039; );&lt;br /&gt;
		var indicator = toc &amp;amp;&amp;amp; toc.querySelector( &#039;.citizen-toc-indicator&#039; );&lt;br /&gt;
&lt;br /&gt;
		if ( !toc || !indicator || toc.dataset.techdocsSingleActiveToc === &#039;1&#039; ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var entries = Array.prototype.map.call(&lt;br /&gt;
			toc.querySelectorAll( LINK_SELECTOR ),&lt;br /&gt;
			function ( link ) {&lt;br /&gt;
				var target = document.getElementById( decodeFragment( link.hash ) );&lt;br /&gt;
				var item = link.closest( &#039;.citizen-toc-list-item&#039; );&lt;br /&gt;
				return target &amp;amp;&amp;amp; item ? {&lt;br /&gt;
					item: item,&lt;br /&gt;
					link: link,&lt;br /&gt;
					target: target&lt;br /&gt;
				} : null;&lt;br /&gt;
			}&lt;br /&gt;
		).filter( Boolean );&lt;br /&gt;
&lt;br /&gt;
		if ( entries.length === 0 ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		toc.dataset.techdocsSingleActiveToc = &#039;1&#039;;&lt;br /&gt;
&lt;br /&gt;
		var applying = false;&lt;br /&gt;
		var frameId = 0;&lt;br /&gt;
		var manualEntry = null;&lt;br /&gt;
&lt;br /&gt;
		function getActivationTop() {&lt;br /&gt;
			var value = parseFloat(&lt;br /&gt;
				window.getComputedStyle( document.documentElement ).scrollPaddingTop&lt;br /&gt;
			);&lt;br /&gt;
			return Number.isFinite( value ) ? value : 0;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function findEntryForHash() {&lt;br /&gt;
			var id = decodeFragment( window.location.hash );&lt;br /&gt;
			return entries.find( function ( entry ) {&lt;br /&gt;
				return entry.target.id === id;&lt;br /&gt;
			} ) || null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function findEntryForScroll() {&lt;br /&gt;
			var activationTop = getActivationTop();&lt;br /&gt;
			var selected = entries[ 0 ];&lt;br /&gt;
&lt;br /&gt;
			entries.some( function ( entry ) {&lt;br /&gt;
				if ( entry.target.getBoundingClientRect().top &amp;lt;= activationTop + 1 ) {&lt;br /&gt;
					selected = entry;&lt;br /&gt;
					return false;&lt;br /&gt;
				}&lt;br /&gt;
				return true;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			return selected;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function updateIndicator( entry ) {&lt;br /&gt;
			var positioningParent = indicator.offsetParent || toc;&lt;br /&gt;
			var parentRect = positioningParent.getBoundingClientRect();&lt;br /&gt;
			var linkRect = entry.link.getBoundingClientRect();&lt;br /&gt;
			var unitHeight = linkRect.height || entry.link.offsetHeight || 32;&lt;br /&gt;
			var top = linkRect.top - parentRect.top + positioningParent.scrollTop;&lt;br /&gt;
&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-unit-height&#039;, unitHeight + &#039;px&#039; );&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-top&#039;, top + &#039;px&#039; );&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-scale&#039;, &#039;1&#039; );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function applyEntry( entry ) {&lt;br /&gt;
			if ( !entry ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			applying = true;&lt;br /&gt;
			var topItem = entry.item.closest( &#039;.citizen-toc-level-1&#039; );&lt;br /&gt;
&lt;br /&gt;
			entries.forEach( function ( candidate ) {&lt;br /&gt;
				var isActive = candidate.item === entry.item;&lt;br /&gt;
				candidate.item.classList.toggle( ACTIVE_CLASS, isActive );&lt;br /&gt;
				candidate.item.classList.toggle(&lt;br /&gt;
					ACTIVE_TOP_CLASS,&lt;br /&gt;
					candidate.item === topItem&lt;br /&gt;
				);&lt;br /&gt;
				if ( isActive ) {&lt;br /&gt;
					candidate.link.setAttribute( &#039;aria-current&#039;, &#039;location&#039; );&lt;br /&gt;
				} else {&lt;br /&gt;
					candidate.link.removeAttribute( &#039;aria-current&#039; );&lt;br /&gt;
				}&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			if ( topItem &amp;amp;&amp;amp; !entries.some( function ( candidate ) {&lt;br /&gt;
				return candidate.item === topItem;&lt;br /&gt;
			} ) ) {&lt;br /&gt;
				topItem.classList.add( ACTIVE_TOP_CLASS );&lt;br /&gt;
			}&lt;br /&gt;
			updateIndicator( entry );&lt;br /&gt;
&lt;br /&gt;
			applying = false;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function update() {&lt;br /&gt;
			frameId = 0;&lt;br /&gt;
			applyEntry( manualEntry || findEntryForScroll() );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function scheduleUpdate() {&lt;br /&gt;
			if ( frameId === 0 ) {&lt;br /&gt;
				frameId = window.requestAnimationFrame( update );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function releaseManualEntry() {&lt;br /&gt;
			if ( manualEntry ) {&lt;br /&gt;
				manualEntry = null;&lt;br /&gt;
				scheduleUpdate();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		toc.addEventListener( &#039;click&#039;, function ( event ) {&lt;br /&gt;
			if (&lt;br /&gt;
				event.defaultPrevented ||&lt;br /&gt;
				event.button !== 0 ||&lt;br /&gt;
				event.altKey ||&lt;br /&gt;
				event.ctrlKey ||&lt;br /&gt;
				event.metaKey ||&lt;br /&gt;
				event.shiftKey&lt;br /&gt;
			) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var link = event.target.closest( LINK_SELECTOR );&lt;br /&gt;
			if ( !link || !toc.contains( link ) ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var entry = entries.find( function ( candidate ) {&lt;br /&gt;
				return candidate.link === link;&lt;br /&gt;
			} );&lt;br /&gt;
			if ( !entry ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			manualEntry = entry;&lt;br /&gt;
			applyEntry( entry );&lt;br /&gt;
		}, true );&lt;br /&gt;
&lt;br /&gt;
		window.addEventListener( &#039;scroll&#039;, scheduleUpdate, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;resize&#039;, scheduleUpdate );&lt;br /&gt;
		window.addEventListener( &#039;wheel&#039;, releaseManualEntry, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;touchstart&#039;, releaseManualEntry, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;pointerdown&#039;, function ( event ) {&lt;br /&gt;
			if ( !toc.contains( event.target ) ) {&lt;br /&gt;
				releaseManualEntry();&lt;br /&gt;
			}&lt;br /&gt;
		}, true );&lt;br /&gt;
		window.addEventListener( &#039;keydown&#039;, function ( event ) {&lt;br /&gt;
			if ( NAVIGATION_KEYS.indexOf( event.key ) !== -1 ) {&lt;br /&gt;
				releaseManualEntry();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		window.addEventListener( &#039;hashchange&#039;, function () {&lt;br /&gt;
			manualEntry = findEntryForHash();&lt;br /&gt;
			scheduleUpdate();&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		var classObserver = new MutationObserver( function () {&lt;br /&gt;
			if ( !applying ) {&lt;br /&gt;
				scheduleUpdate();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		classObserver.observe( toc, {&lt;br /&gt;
			attributes: true,&lt;br /&gt;
			attributeFilter: [ &#039;class&#039; ],&lt;br /&gt;
			subtree: true&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		scheduleUpdate();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( &#039;skins.citizen.scripts&#039; ).then( function () {&lt;br /&gt;
		window.requestAnimationFrame( setupSingleActiveToc );&lt;br /&gt;
	} );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.js&amp;diff=145</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.js&amp;diff=145"/>
		<updated>2026-07-26T08:06:12Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release bd6439a54670&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;( function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var ACTIVE_CLASS = &#039;citizen-toc-list-item--active&#039;;&lt;br /&gt;
	var ACTIVE_TOP_CLASS = &#039;citizen-toc-level-1--active&#039;;&lt;br /&gt;
	var LINK_SELECTOR = &#039;.citizen-toc-link:not(.citizen-toc-top)&#039;;&lt;br /&gt;
	var NAVIGATION_KEYS = [&lt;br /&gt;
		&#039;ArrowDown&#039;,&lt;br /&gt;
		&#039;ArrowUp&#039;,&lt;br /&gt;
		&#039;End&#039;,&lt;br /&gt;
		&#039;Home&#039;,&lt;br /&gt;
		&#039;PageDown&#039;,&lt;br /&gt;
		&#039;PageUp&#039;,&lt;br /&gt;
		&#039; &#039;&lt;br /&gt;
	];&lt;br /&gt;
&lt;br /&gt;
	function decodeFragment( hash ) {&lt;br /&gt;
		if ( !hash || hash.charAt( 0 ) !== &#039;#&#039; ) {&lt;br /&gt;
			return &#039;&#039;;&lt;br /&gt;
		}&lt;br /&gt;
		try {&lt;br /&gt;
			return decodeURIComponent( hash.slice( 1 ) );&lt;br /&gt;
		} catch ( error ) {&lt;br /&gt;
			return hash.slice( 1 );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function setupSingleActiveToc() {&lt;br /&gt;
		var toc = document.querySelector( &#039;.citizen-toc&#039; );&lt;br /&gt;
		var indicator = toc &amp;amp;&amp;amp; toc.querySelector( &#039;.citizen-toc-indicator&#039; );&lt;br /&gt;
&lt;br /&gt;
		if ( !toc || !indicator || toc.dataset.techdocsSingleActiveToc === &#039;1&#039; ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var entries = Array.prototype.map.call(&lt;br /&gt;
			toc.querySelectorAll( LINK_SELECTOR ),&lt;br /&gt;
			function ( link ) {&lt;br /&gt;
				var target = document.getElementById( decodeFragment( link.hash ) );&lt;br /&gt;
				var item = link.closest( &#039;.citizen-toc-list-item&#039; );&lt;br /&gt;
				return target &amp;amp;&amp;amp; item ? {&lt;br /&gt;
					item: item,&lt;br /&gt;
					link: link,&lt;br /&gt;
					target: target&lt;br /&gt;
				} : null;&lt;br /&gt;
			}&lt;br /&gt;
		).filter( Boolean );&lt;br /&gt;
&lt;br /&gt;
		if ( entries.length === 0 ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		toc.dataset.techdocsSingleActiveToc = &#039;1&#039;;&lt;br /&gt;
&lt;br /&gt;
		var applying = false;&lt;br /&gt;
		var frameId = 0;&lt;br /&gt;
		var manualEntry = null;&lt;br /&gt;
&lt;br /&gt;
		function getActivationTop() {&lt;br /&gt;
			var value = parseFloat(&lt;br /&gt;
				window.getComputedStyle( document.documentElement ).scrollPaddingTop&lt;br /&gt;
			);&lt;br /&gt;
			return Number.isFinite( value ) ? value : 0;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function findEntryForHash() {&lt;br /&gt;
			var id = decodeFragment( window.location.hash );&lt;br /&gt;
			return entries.find( function ( entry ) {&lt;br /&gt;
				return entry.target.id === id;&lt;br /&gt;
			} ) || null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function findEntryForScroll() {&lt;br /&gt;
			var activationTop = getActivationTop();&lt;br /&gt;
			var selected = entries[ 0 ];&lt;br /&gt;
&lt;br /&gt;
			entries.some( function ( entry ) {&lt;br /&gt;
				if ( entry.target.getBoundingClientRect().top &amp;lt;= activationTop + 1 ) {&lt;br /&gt;
					selected = entry;&lt;br /&gt;
					return false;&lt;br /&gt;
				}&lt;br /&gt;
				return true;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			return selected;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function updateIndicator( entry ) {&lt;br /&gt;
			var positioningParent = indicator.offsetParent || toc;&lt;br /&gt;
			var parentRect = positioningParent.getBoundingClientRect();&lt;br /&gt;
			var linkRect = entry.link.getBoundingClientRect();&lt;br /&gt;
			var unitHeight = linkRect.height || entry.link.offsetHeight || 32;&lt;br /&gt;
			var top = linkRect.top - parentRect.top + positioningParent.scrollTop;&lt;br /&gt;
&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-unit-height&#039;, unitHeight + &#039;px&#039; );&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-top&#039;, top + &#039;px&#039; );&lt;br /&gt;
			indicator.style.setProperty( &#039;--indicator-scale&#039;, &#039;1&#039; );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function applyEntry( entry ) {&lt;br /&gt;
			if ( !entry ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			applying = true;&lt;br /&gt;
			var topItem = entry.item.closest( &#039;.citizen-toc-level-1&#039; );&lt;br /&gt;
&lt;br /&gt;
			entries.forEach( function ( candidate ) {&lt;br /&gt;
				var isActive = candidate.item === entry.item;&lt;br /&gt;
				candidate.item.classList.toggle( ACTIVE_CLASS, isActive );&lt;br /&gt;
				candidate.item.classList.toggle(&lt;br /&gt;
					ACTIVE_TOP_CLASS,&lt;br /&gt;
					candidate.item === topItem&lt;br /&gt;
				);&lt;br /&gt;
				if ( isActive ) {&lt;br /&gt;
					candidate.link.setAttribute( &#039;aria-current&#039;, &#039;location&#039; );&lt;br /&gt;
				} else {&lt;br /&gt;
					candidate.link.removeAttribute( &#039;aria-current&#039; );&lt;br /&gt;
				}&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			if ( topItem &amp;amp;&amp;amp; !entries.some( function ( candidate ) {&lt;br /&gt;
				return candidate.item === topItem;&lt;br /&gt;
			} ) ) {&lt;br /&gt;
				topItem.classList.add( ACTIVE_TOP_CLASS );&lt;br /&gt;
			}&lt;br /&gt;
			updateIndicator( entry );&lt;br /&gt;
&lt;br /&gt;
			applying = false;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function update() {&lt;br /&gt;
			frameId = 0;&lt;br /&gt;
			applyEntry( manualEntry || findEntryForScroll() );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function scheduleUpdate() {&lt;br /&gt;
			if ( frameId === 0 ) {&lt;br /&gt;
				frameId = window.requestAnimationFrame( update );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function releaseManualEntry() {&lt;br /&gt;
			if ( manualEntry ) {&lt;br /&gt;
				manualEntry = null;&lt;br /&gt;
				scheduleUpdate();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		toc.addEventListener( &#039;click&#039;, function ( event ) {&lt;br /&gt;
			if (&lt;br /&gt;
				event.defaultPrevented ||&lt;br /&gt;
				event.button !== 0 ||&lt;br /&gt;
				event.altKey ||&lt;br /&gt;
				event.ctrlKey ||&lt;br /&gt;
				event.metaKey ||&lt;br /&gt;
				event.shiftKey&lt;br /&gt;
			) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var link = event.target.closest( LINK_SELECTOR );&lt;br /&gt;
			if ( !link || !toc.contains( link ) ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var entry = entries.find( function ( candidate ) {&lt;br /&gt;
				return candidate.link === link;&lt;br /&gt;
			} );&lt;br /&gt;
			if ( !entry ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			event.preventDefault();&lt;br /&gt;
			manualEntry = entry;&lt;br /&gt;
			applyEntry( entry );&lt;br /&gt;
&lt;br /&gt;
			var hash = link.getAttribute( &#039;href&#039; );&lt;br /&gt;
			if ( hash ) {&lt;br /&gt;
				window.history.pushState( null, &#039;&#039;, hash );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var targetTop = window.scrollY +&lt;br /&gt;
				entry.target.getBoundingClientRect().top -&lt;br /&gt;
				getActivationTop();&lt;br /&gt;
			window.scrollTo( {&lt;br /&gt;
				top: Math.max( 0, targetTop ),&lt;br /&gt;
				behavior: window.matchMedia( &#039;(prefers-reduced-motion: reduce)&#039; ).matches ?&lt;br /&gt;
					&#039;auto&#039; :&lt;br /&gt;
					&#039;smooth&#039;&lt;br /&gt;
			} );&lt;br /&gt;
		}, true );&lt;br /&gt;
&lt;br /&gt;
		window.addEventListener( &#039;scroll&#039;, scheduleUpdate, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;resize&#039;, scheduleUpdate );&lt;br /&gt;
		window.addEventListener( &#039;wheel&#039;, releaseManualEntry, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;touchstart&#039;, releaseManualEntry, { passive: true } );&lt;br /&gt;
		window.addEventListener( &#039;pointerdown&#039;, function ( event ) {&lt;br /&gt;
			if ( !toc.contains( event.target ) ) {&lt;br /&gt;
				releaseManualEntry();&lt;br /&gt;
			}&lt;br /&gt;
		}, true );&lt;br /&gt;
		window.addEventListener( &#039;keydown&#039;, function ( event ) {&lt;br /&gt;
			if ( NAVIGATION_KEYS.indexOf( event.key ) !== -1 ) {&lt;br /&gt;
				releaseManualEntry();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		window.addEventListener( &#039;hashchange&#039;, function () {&lt;br /&gt;
			manualEntry = findEntryForHash();&lt;br /&gt;
			scheduleUpdate();&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		var classObserver = new MutationObserver( function () {&lt;br /&gt;
			if ( !applying ) {&lt;br /&gt;
				scheduleUpdate();&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
		classObserver.observe( toc, {&lt;br /&gt;
			attributes: true,&lt;br /&gt;
			attributeFilter: [ &#039;class&#039; ],&lt;br /&gt;
			subtree: true&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		scheduleUpdate();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( &#039;skins.citizen.scripts&#039; ).then( function () {&lt;br /&gt;
		window.requestAnimationFrame( setupSingleActiveToc );&lt;br /&gt;
	} );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=144</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=144"/>
		<updated>2026-07-26T07:34:03Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release ad6c652980fc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:root {&lt;br /&gt;
  --lcd-blue: #63b7e8;&lt;br /&gt;
  --lcd-blue-dark: #258ac4;&lt;br /&gt;
  --lcd-ink: #233245;&lt;br /&gt;
  --lcd-muted: #66758a;&lt;br /&gt;
  --lcd-line: #dfe7ef;&lt;br /&gt;
  --lcd-panel: #f6f9fc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Keep the active table-of-contents state aligned with module title bars. */&lt;br /&gt;
.citizen-toc .citizen-toc-list-item--active &amp;gt; .citizen-toc-link {&lt;br /&gt;
  color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.citizen-toc .citizen-toc-indicator {&lt;br /&gt;
  background-color: #34b0b0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 精简 Citizen 主菜单，仅保留 Sidebar 中的三个核心入口。 */&lt;br /&gt;
#citizen-main-menu #p-navigation &amp;gt; .citizen-menu__heading,&lt;br /&gt;
#citizen-main-menu #t-specialpages,&lt;br /&gt;
#citizen-main-menu #t-upload {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏所有页面底部的页面信息、操作栏和完整站点页脚。 */&lt;br /&gt;
.citizen-page-footer,&lt;br /&gt;
.citizen-page-actions,&lt;br /&gt;
.mw-footer.citizen-footer {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首页模块标题不显示章节编辑入口，后台和其他页面编辑功能保持不变。 */&lt;br /&gt;
body.page-Main_Page .mw-editsection {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 产品二级页：隐藏章节编辑入口及滚动后的粘性操作按钮组。 */&lt;br /&gt;
body:has(.lcd-product__hero) .mw-editsection,&lt;br /&gt;
body:has(.lcd-product__hero) .citizen-sticky-header-end {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 首页桌面版式：将 Citizen 的页面信息与目录侧栏放到正文左侧，&lt;br /&gt;
 * 并限制整体版心宽度，在宽屏上保留对称留白。&lt;br /&gt;
 */&lt;br /&gt;
@media (min-width: 1200px) {&lt;br /&gt;
  body.page-Main_Page .citizen-body-container {&lt;br /&gt;
    width: min(100%, 91.5rem);&lt;br /&gt;
    margin-inline: auto;&lt;br /&gt;
    grid-template-columns: minmax(12rem, 15rem) minmax(0, 67.5rem);&lt;br /&gt;
    column-gap: 5rem;&lt;br /&gt;
    grid-template-areas:&lt;br /&gt;
      &amp;quot;sidebar content&amp;quot;&lt;br /&gt;
      &amp;quot;footer footer&amp;quot;;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  body.page-Main_Page&lt;br /&gt;
    .citizen-page-sidebar&lt;br /&gt;
    .citizen-toc-link:not(.citizen-toc-top) {&lt;br /&gt;
    height: auto;&lt;br /&gt;
    min-height: 2rem;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
    overflow-wrap: anywhere;&lt;br /&gt;
    text-overflow: clip;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome {&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  padding: 1.5rem 1.75rem;&lt;br /&gt;
  border: 1px solid #dceaf3;&lt;br /&gt;
  border-radius: 12px;&lt;br /&gt;
  background: linear-gradient(135deg, #f8fcff, #eef8fe);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome h2 {&lt;br /&gt;
  margin: 0 0 .75rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  border: 0;&lt;br /&gt;
  font-size: clamp(1.5rem, 3vw, 2rem);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome__eyebrow {&lt;br /&gt;
  margin-bottom: .35rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-size: .76rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  letter-spacing: .12em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome__title {&lt;br /&gt;
  margin-bottom: .75rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-size: clamp(1.5rem, 3vw, 2rem);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome p:last-child {&lt;br /&gt;
  margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module {&lt;br /&gt;
  margin: 1.75rem 0 2.5rem;&lt;br /&gt;
  scroll-margin-top: 5rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module__tab {&lt;br /&gt;
  margin: 0 0 1rem;&lt;br /&gt;
  padding: .68rem 1rem;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  letter-spacing: .02em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(4, minmax(0, 1fr));&lt;br /&gt;
  gap: 1.1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 7px rgba(38, 68, 94, .11);&lt;br /&gt;
  transition: transform .16s ease, box-shadow .16s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card:hover {&lt;br /&gt;
  transform: translateY(-2px);&lt;br /&gt;
  box-shadow: 0 7px 18px rgba(38, 68, 94, .16);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .65rem;&lt;br /&gt;
  background: #f8fafc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media a,&lt;br /&gt;
.lcd-card__media .mw-file-description {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__body {&lt;br /&gt;
  padding: .85rem .8rem .95rem;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title {&lt;br /&gt;
  min-height: 2.7em;&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  font-weight: 600;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title a {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__model {&lt;br /&gt;
  margin-top: .35rem;&lt;br /&gt;
  color: #27384b;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__hero {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(15rem, .8fr) minmax(0, 1.2fr);&lt;br /&gt;
  gap: 1.5rem;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  padding: 1.25rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 10px;&lt;br /&gt;
  background: var(--lcd-panel);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__summary {&lt;br /&gt;
  align-self: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__kicker {&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__model {&lt;br /&gt;
  margin: .35rem 0 .6rem;&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
  font-size: clamp(1.35rem, 3vw, 2rem);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__status {&lt;br /&gt;
  margin-bottom: .85rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  gap: .75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery &amp;gt; div {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .6rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 7px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  table-layout: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table th:first-child {&lt;br /&gt;
  width: 10rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-status {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  padding: .18rem .55rem;&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: #244158;&lt;br /&gt;
  background: #dceff9;&lt;br /&gt;
  font-size: .84rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  padding: 1rem 1.15rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-left: 4px solid var(--lcd-blue);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__name {&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__type {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  margin-right: .6rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__body {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: .25rem .75rem;&lt;br /&gt;
  align-items: baseline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__action {&lt;br /&gt;
  margin-top: .65rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__meta,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  color: var(--lcd-muted);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-manager-links {&lt;br /&gt;
  columns: 2 18rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin-bottom: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable th {&lt;br /&gt;
  width: 11rem;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable input,&lt;br /&gt;
.formtable select,&lt;br /&gt;
.formtable textarea {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  max-width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 1000px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 620px) {&lt;br /&gt;
  .lcd-welcome {&lt;br /&gt;
    padding: 1.1rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
    gap: .75rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__gallery {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-card__title {&lt;br /&gt;
    min-height: 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    padding: .85rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-spec-table th:first-child {&lt;br /&gt;
    width: 7.5rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .formtable,&lt;br /&gt;
  .formtable tbody,&lt;br /&gt;
  .formtable tr,&lt;br /&gt;
  .formtable th,&lt;br /&gt;
  .formtable td {&lt;br /&gt;
    display: block;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=143</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://olighker.com/w/index.php?title=MediaWiki:Common.css&amp;diff=143"/>
		<updated>2026-07-26T06:09:36Z</updated>

		<summary type="html">&lt;p&gt;Wikiadmin: Git release 59a21dcc9522&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:root {&lt;br /&gt;
  --lcd-blue: #63b7e8;&lt;br /&gt;
  --lcd-blue-dark: #258ac4;&lt;br /&gt;
  --lcd-ink: #233245;&lt;br /&gt;
  --lcd-muted: #66758a;&lt;br /&gt;
  --lcd-line: #dfe7ef;&lt;br /&gt;
  --lcd-panel: #f6f9fc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 精简 Citizen 主菜单，仅保留 Sidebar 中的三个核心入口。 */&lt;br /&gt;
#citizen-main-menu #p-navigation &amp;gt; .citizen-menu__heading,&lt;br /&gt;
#citizen-main-menu #t-specialpages,&lt;br /&gt;
#citizen-main-menu #t-upload {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏所有页面底部的页面信息、操作栏和完整站点页脚。 */&lt;br /&gt;
.citizen-page-footer,&lt;br /&gt;
.citizen-page-actions,&lt;br /&gt;
.mw-footer.citizen-footer {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首页模块标题不显示章节编辑入口，后台和其他页面编辑功能保持不变。 */&lt;br /&gt;
body.page-Main_Page .mw-editsection {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 产品二级页：隐藏章节编辑入口及滚动后的粘性操作按钮组。 */&lt;br /&gt;
body:has(.lcd-product__hero) .mw-editsection,&lt;br /&gt;
body:has(.lcd-product__hero) .citizen-sticky-header-end {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 首页桌面版式：将 Citizen 的页面信息与目录侧栏放到正文左侧，&lt;br /&gt;
 * 并限制整体版心宽度，在宽屏上保留对称留白。&lt;br /&gt;
 */&lt;br /&gt;
@media (min-width: 1200px) {&lt;br /&gt;
  body.page-Main_Page .citizen-body-container {&lt;br /&gt;
    width: min(100%, 91.5rem);&lt;br /&gt;
    margin-inline: auto;&lt;br /&gt;
    grid-template-columns: minmax(12rem, 15rem) minmax(0, 67.5rem);&lt;br /&gt;
    column-gap: 5rem;&lt;br /&gt;
    grid-template-areas:&lt;br /&gt;
      &amp;quot;sidebar content&amp;quot;&lt;br /&gt;
      &amp;quot;footer footer&amp;quot;;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  body.page-Main_Page&lt;br /&gt;
    .citizen-page-sidebar&lt;br /&gt;
    .citizen-toc-link:not(.citizen-toc-top) {&lt;br /&gt;
    height: auto;&lt;br /&gt;
    min-height: 2rem;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
    overflow-wrap: anywhere;&lt;br /&gt;
    text-overflow: clip;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome {&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  padding: 1.5rem 1.75rem;&lt;br /&gt;
  border: 1px solid #dceaf3;&lt;br /&gt;
  border-radius: 12px;&lt;br /&gt;
  background: linear-gradient(135deg, #f8fcff, #eef8fe);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome h2 {&lt;br /&gt;
  margin: 0 0 .75rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  border: 0;&lt;br /&gt;
  font-size: clamp(1.5rem, 3vw, 2rem);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome__eyebrow {&lt;br /&gt;
  margin-bottom: .35rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-size: .76rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  letter-spacing: .12em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome__title {&lt;br /&gt;
  margin-bottom: .75rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-size: clamp(1.5rem, 3vw, 2rem);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-welcome p:last-child {&lt;br /&gt;
  margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module {&lt;br /&gt;
  margin: 1.75rem 0 2.5rem;&lt;br /&gt;
  scroll-margin-top: 5rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-module__tab {&lt;br /&gt;
  margin: 0 0 1rem;&lt;br /&gt;
  padding: .68rem 1rem;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  background: #34b0b0;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  letter-spacing: .02em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(4, minmax(0, 1fr));&lt;br /&gt;
  gap: 1.1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card-grid &amp;gt; p {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  box-shadow: 0 2px 7px rgba(38, 68, 94, .11);&lt;br /&gt;
  transition: transform .16s ease, box-shadow .16s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card:hover {&lt;br /&gt;
  transform: translateY(-2px);&lt;br /&gt;
  box-shadow: 0 7px 18px rgba(38, 68, 94, .16);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .65rem;&lt;br /&gt;
  background: #f8fafc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media a,&lt;br /&gt;
.lcd-card__media .mw-file-description {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__media img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__body {&lt;br /&gt;
  padding: .85rem .8rem .95rem;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title {&lt;br /&gt;
  min-height: 2.7em;&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  font-weight: 600;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__title a {&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-card__model {&lt;br /&gt;
  margin-top: .35rem;&lt;br /&gt;
  color: #27384b;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__hero {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(15rem, .8fr) minmax(0, 1.2fr);&lt;br /&gt;
  gap: 1.5rem;&lt;br /&gt;
  margin: 1rem 0 2rem;&lt;br /&gt;
  padding: 1.25rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 10px;&lt;br /&gt;
  background: var(--lcd-panel);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__summary {&lt;br /&gt;
  align-self: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__kicker {&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__model {&lt;br /&gt;
  margin: .35rem 0 .6rem;&lt;br /&gt;
  color: var(--lcd-ink);&lt;br /&gt;
  font-size: clamp(1.35rem, 3vw, 2rem);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__status {&lt;br /&gt;
  margin-bottom: .85rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  gap: .75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery &amp;gt; div {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  aspect-ratio: 4 / 3;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: .6rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-radius: 7px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-product__gallery img {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  table-layout: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-spec-table th:first-child {&lt;br /&gt;
  width: 10rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-status {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  padding: .18rem .55rem;&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: #244158;&lt;br /&gt;
  background: #dceff9;&lt;br /&gt;
  font-size: .84rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  padding: 1rem 1.15rem;&lt;br /&gt;
  border: 1px solid var(--lcd-line);&lt;br /&gt;
  border-left: 4px solid var(--lcd-blue);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__name {&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__type {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  margin-right: .6rem;&lt;br /&gt;
  color: var(--lcd-blue-dark);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__body {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: .25rem .75rem;&lt;br /&gt;
  align-items: baseline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__action {&lt;br /&gt;
  margin-top: .65rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-download-card__meta,&lt;br /&gt;
.lcd-empty-resource {&lt;br /&gt;
  color: var(--lcd-muted);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lcd-manager-links {&lt;br /&gt;
  columns: 2 18rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin-bottom: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable th {&lt;br /&gt;
  width: 11rem;&lt;br /&gt;
  text-align: left;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.formtable input,&lt;br /&gt;
.formtable select,&lt;br /&gt;
.formtable textarea {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  max-width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 1000px) {&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 620px) {&lt;br /&gt;
  .lcd-welcome {&lt;br /&gt;
    padding: 1.1rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-card-grid {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
    gap: .75rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__gallery {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-card__title {&lt;br /&gt;
    min-height: 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-product__hero {&lt;br /&gt;
    padding: .85rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .lcd-spec-table th:first-child {&lt;br /&gt;
    width: 7.5rem;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .formtable,&lt;br /&gt;
  .formtable tbody,&lt;br /&gt;
  .formtable tr,&lt;br /&gt;
  .formtable th,&lt;br /&gt;
  .formtable td {&lt;br /&gt;
    display: block;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
</feed>