<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans">
	<id>https://mw.novark.wiki/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E6%9D%BF%3ANovarkSeatMeter</id>
	<title>模板:NovarkSeatMeter - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://mw.novark.wiki/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E6%9D%BF%3ANovarkSeatMeter"/>
	<link rel="alternate" type="text/html" href="https://mw.novark.wiki/index.php?title=%E6%A8%A1%E6%9D%BF:NovarkSeatMeter&amp;action=history"/>
	<updated>2026-10-22T01:32:36Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://mw.novark.wiki/index.php?title=%E6%A8%A1%E6%9D%BF:NovarkSeatMeter&amp;diff=19&amp;oldid=prev</id>
		<title>Phase1EmergencyAdmin：​DS migration: first-batch templates</title>
		<link rel="alternate" type="text/html" href="https://mw.novark.wiki/index.php?title=%E6%A8%A1%E6%9D%BF:NovarkSeatMeter&amp;diff=19&amp;oldid=prev"/>
		<updated>2026-10-21T12:47:07Z</updated>

		<summary type="html">&lt;p&gt;DS migration: first-batch templates&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;templatestyles src=&amp;quot;NovarkSeatMeter/styles.css&amp;quot; /&amp;gt;&amp;lt;span class=&amp;quot;novark-seat-meter novark-seat-meter--{{{tone|silver}}}&amp;quot; data-value=&amp;quot;{{{value|}}}&amp;quot; data-max=&amp;quot;{{{max|}}}&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;novark-seat-meter__track&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;novark-seat-meter__fill&amp;quot; style=&amp;quot;width:{{{percent|0}}}%&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;novark-seat-meter__label&amp;quot;&amp;gt;{{{label|}}}&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== 用途 ==&lt;br /&gt;
席位条/计数计量条（迁移 catalog P-11；架构 A4）。保留旧站 `seat-bar`、`seat-bar-fill`、`seat-bar-text` 与 `novark-seat-meter` 的语义：数值文本与计量视觉同时存在，不在正文手写百分比或任意 CSS。&lt;br /&gt;
&lt;br /&gt;
== 参数 ==&lt;br /&gt;
* `value`：当前值（必填，非负数）。&lt;br /&gt;
* `max`：总数（必填，正数）。&lt;br /&gt;
* `tone`：`silver`、`gold`、`blue-red`、`blue`、`red`、`green`、`purple`；缺省 `silver`。七色取自旧 `wiki/theme-v2.css` L197-L249 的真实命名色。&lt;br /&gt;
* `label`：可读数值文本，通常写“45 / 199”。&lt;br /&gt;
* `percent`：由 `value/max` 计算的 0–100 数值（必填，派生值），只用于局部数值样式 `width`；必须与 value/max 一致。&lt;br /&gt;
&lt;br /&gt;
== 为什么不是 &amp;amp;lt;progress&amp;amp;gt; ==&lt;br /&gt;
MediaWiki 1.43.11 的 `includes/parser/Sanitizer.php` 白名单不包含 `&amp;amp;lt;progress&amp;amp;gt;`（证据：`reports/migration/extension-lock-evidence.json`），该标签会被清理器剥离，只剩文本。按架构 A4 采用“经数字范围校验后生成的局部数值样式”作为等价实现：迁移器校验 value/max 为合法数值、percent 由二者计算，样式其余部分仍由 TemplateStyles 负责；模板本身不接受任意 CSS 片段。&lt;br /&gt;
&lt;br /&gt;
== 示例 ==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{NovarkSeatMeter&lt;br /&gt;
|value=45&lt;br /&gt;
|max=199&lt;br /&gt;
|tone=silver&lt;br /&gt;
|label=45 / 199&lt;br /&gt;
|percent=22.61&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 校验 ==&lt;br /&gt;
* 非法值（负数、max&amp;lt;=0、value&amp;gt;max、percent 越界）必须由迁移器显式报错并进入例外，不得静默截断。&lt;br /&gt;
* 隔离渲染需在 360px 宽度与深色模式下核对可读性与窄屏。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;席位/计数计量条：保留数值文本与计量视觉；value/max 为稳定接口，percent 为经数值范围校验后生成的局部数值样式（MediaWiki 1.43.11 清理器不保留 progress 标签），tone 只接受七种命名色，label 为可读文本。&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: {&lt;br /&gt;
    &amp;quot;value&amp;quot;: {&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;当前值&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;必填的非负数值（与来源数据一致）；不做静默截断。&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true,&lt;br /&gt;
      &amp;quot;example&amp;quot;: &amp;quot;45&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;max&amp;quot;: {&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;总数&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;必填的正数值，大于 0；来源数据缺失时不要用猜测值。&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true,&lt;br /&gt;
      &amp;quot;example&amp;quot;: &amp;quot;199&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tone&amp;quot;: {&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;命名色调&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;旧站已观察的命名色：silver、gold、blue-red、blue、red、green、purple；缺省 silver。不接受任意输入生成 CSS。&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;line&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: false,&lt;br /&gt;
      &amp;quot;suggestedvalues&amp;quot;: [&lt;br /&gt;
        &amp;quot;silver&amp;quot;,&lt;br /&gt;
        &amp;quot;gold&amp;quot;,&lt;br /&gt;
        &amp;quot;blue-red&amp;quot;,&lt;br /&gt;
        &amp;quot;blue&amp;quot;,&lt;br /&gt;
        &amp;quot;red&amp;quot;,&lt;br /&gt;
        &amp;quot;green&amp;quot;,&lt;br /&gt;
        &amp;quot;purple&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;silver&amp;quot;,&lt;br /&gt;
      &amp;quot;example&amp;quot;: &amp;quot;silver&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;label&amp;quot;: {&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;可读数值文本&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;显示给读者的数值文本，通常为“45 / 199”；与 value/max 一致，不另造百分比。&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;line&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: false,&lt;br /&gt;
      &amp;quot;example&amp;quot;: &amp;quot;45 / 199&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;percent&amp;quot;: {&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;填充百分比（派生）&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;由迁移器按 value/max 计算并校验的 0–100 数值，只进入局部数值样式；编辑者手写时必须与 value/max 一致，不得改变来源数据。&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true,&lt;br /&gt;
      &amp;quot;example&amp;quot;: &amp;quot;22.61&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;paramOrder&amp;quot;: [&lt;br /&gt;
    &amp;quot;value&amp;quot;,&lt;br /&gt;
    &amp;quot;max&amp;quot;,&lt;br /&gt;
    &amp;quot;tone&amp;quot;,&lt;br /&gt;
    &amp;quot;label&amp;quot;,&lt;br /&gt;
    &amp;quot;percent&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;format&amp;quot;: &amp;quot;inline&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>Phase1EmergencyAdmin</name></author>
	</entry>
</feed>