将 README.md 拆分为多个专题文档,减少认知负荷: - 用户文档迁移到 docs/ (用户指南、元素、模板、参考等) - 开发文档迁移到 docs/development/ (架构、模块、规范) - README.md 精简至 ~290 行,仅保留概览和导航 - 删除 README_DEV.md,内容已迁移 - 归档 OpenSpec 变更 refactor-docs-progressive-disclosure
3.8 KiB
3.8 KiB
字体主题系统
字体主题系统允许你定义可复用的字体配置,统一管理演示文稿的字体样式。
定义字体主题
在 metadata.fonts 中定义命名字体配置:
metadata:
size: "16:9"
fonts:
title:
family: "cjk-sans"
size: 44
bold: true
color: "#2c3e50"
body:
family: "sans"
size: 18
color: "#34495e"
line_spacing: 1.5
fonts_default: "@body" # 默认字体(可选)
slides:
- elements:
- type: text
content: "标题文本"
box: [1, 1, 8, 1]
font: "@title" # 引用字体主题
- type: text
content: "正文内容"
box: [1, 2.5, 8, 2]
# 未定义 font 时使用 fonts_default
预设字体类别
系统提供五种预设字体类别,自动映射到跨平台通用字体:
| 类别 | 映射字体 | 说明 |
|---|---|---|
sans |
Arial | 西文无衬线 |
serif |
Times New Roman | 西文衬线 |
mono |
Courier New | 等宽字体 |
cjk-sans |
Microsoft YaHei | 中文无衬线 |
cjk-serif |
SimSun | 中文衬线 |
使用预设类别
metadata:
fonts:
body:
family: "cjk-sans" # 自动映射到 Microsoft YaHei
size: 18
字体引用方式
1. 整体引用
完全使用定义的字体配置:
font: "@title"
2. 继承覆盖
继承字体配置并覆盖特定属性:
font:
parent: "@title"
size: 60 # 覆盖字号
color: "#ff0000" # 覆盖颜色
3. 独立定义
完全自定义字体:
font:
family: "SimSun"
size: 24
bold: true
扩展字体属性
除了基础属性(size、bold、italic、color、align),还支持:
字体样式
family:字体族名称或预设类别underline:下划线(true/false)strikethrough:删除线(true/false)
段落属性
line_spacing:行距倍数(如 1.5)space_before:段前间距(磅)space_after:段后间距(磅)
高级属性
baseline:基线位置(normal/superscript/subscript)caps:大小写转换(normal/allcaps/smallcaps)
完整示例
metadata:
size: "16:9"
fonts:
heading:
family: "cjk-sans"
size: 32
bold: true
color: "#2c3e50"
line_spacing: 1.2
space_after: 12
body:
family: "sans"
size: 18
color: "#34495e"
line_spacing: 1.5
fonts_default: "@body"
slides:
- elements:
- type: text
content: "章节标题"
box: [1, 1, 8, 1]
font: "@heading"
- type: text
content: "正文内容\n支持多行文本"
box: [1, 2, 8, 2]
font:
parent: "@body"
underline: true
- type: table
position: [1, 4]
col_widths: [3, 3]
data:
- ["列1", "列2"]
- ["数据1", "数据2"]
font: "@body"
header_font:
parent: "@body"
bold: true
color: "#ffffff"
style:
header_bg: "#3498db"
跨域引用
文档元素引用模板库字体
# templates.yaml(模板库)
metadata:
size: "16:9"
fonts:
template-title:
family: "cjk-sans"
size: 44
bold: true
# presentation.yaml(文档)
metadata:
size: "16:9"
slides:
- elements:
- type: text
content: "标题"
font: "@template-title" # 文档元素可以引用模板库字体
引用规则
- 文档元素 → 文档字体
- 文档元素 → 模板库字体
- 模板元素 → 模板库字体