# Standard Ebooks:电子书代码风格与元数据规范实践
在制作符合标准(如 Standard Ebooks 手册)的电子书时,开发者需严格遵循特定的代码格式、属性书写顺序及提交记录标记规则。以下依据《Standard Ebooks Manual of Style》中的具体章节,对 XHTML 换行元素处理、CSS 样式书写顺序以及编辑性提交的界定进行说明。
## XHTML 文件基础与换行元素规范
所有 XHTML 文件的起始两行必须固定:第一行为 `<?xml version="1.0" encoding="utf-8"?>`,第二行需包含正确的命名空间声明及语言标签(如 `xml:lang="en-US"`)。代码缩进统一使用制表符(Tab),标签名保持小写。
针对 `<br/>` 换行元素的处理有明确细则:
1. **位置要求**:在短语内容(phrasing content)中,`<br/>` 必须与前面的文本在同一行,且其后紧跟一个换行符。例如:`"Pray for the soul of the<br/>Demoiselle Jeanne D’Ys."`
2. **缩进层级**:`<br/>` 之后的下一级缩进应与 `<br/>` 之前的缩进层级保持一致。
3. **闭合标签位置**:被 `<br/>` 打断的短语内容的结束标签,应位于该短语内容的最后一行。
4. **内容完整性**:`<br/>` 元素必须同时拥有前后文本内容,不能仅出现在开头或结尾。
## CSS 选择器与属性书写顺序
CSS 文件的头部需声明字符集 `@charset "utf-8";` 及命名空间。缩进同样使用制表符,选择器、属性和值均保持小写(IETF 语言标签中的国家子标签除外)。
### 选择器布局
* **单行原则**:每个选择器独占一行,紧随其后的是逗号或大括号,中间不留空格。
* **分隔规范**:完整的选择器组之间需空出一行。
* **闭合括号**:结束大括号必须独占一行。
### 属性书写顺序
* **字母排序**:属性应按字母顺序排列。若因覆盖前序属性或特殊情况无法做到,则保持原有逻辑。
* **语法细节**:属性后紧跟冒号、空格及值;值后必须加分号(即使为最后一个值)。
* **数值格式**:数字属性值前不得加零(如使用 `.5em` 而非 `0.5em`)。
## [Editorial] 类型提交记录的界定
在版本控制中,引入可能影响作品含义的文本变更时,需在提交信息(Commit Message)前添加 `[Editorial]` 标记。判断标准是:若知情但非专业/学术背景的读者会对该变更感兴趣,则应标记为编辑性变更。
### 属于 [Editorial] 的情况
* 拼写和连字符的现代化更新。
* 修正源扫描页中疑似但不确定的拼写错误。
* 为提升可读性而调整的大小写(Capitalization)。
* 修正不匹配的破折号或重音符号。
### 不属于 [Editorial] 的情况
* 修复转录过程中引入的拼写错误。
* 修正明显的、无可辩驳的印刷错误。
* 英式引号转美式引号、标点位置调整等格式统一操作。
* 章节序数改为罗马数字等结构性调整。