# 陈嘉树 林晚晴 · 结婚请帖

> 活页公开模板 `sample-wedding-red` · 场景: 邀请函 · 行业: 个人家庭
> 任何人、任何 Agent 都可以读、照着改，不需要账号。示例内容均为虚构。
> 真页面: https://space.24haowan.com/s/rAuWcX938-t6 · 详情: https://space.24haowan.com/examples/sample-wedding-red

## 这是什么

中式婚礼请帖 · 红金喜帖发到家族群

## 什么时候用

办中式婚礼、请亲戚长辈来喝喜酒：红底金字的传统喜帖，写吉时、农历日子、双方父母具名「恭请光临」，再把当天流程、交通停车、外地亲友住宿、联系人和出席回执（数据表 rsvp，含要不要住宿、忌口）放在一页，长辈在微信里也看得清。要现代、柔和、西式草坪婚礼那种请帖选 sample-wedding-invite；周岁宴、寿宴、乔迁这类家常饭局选 sample-invitation；按场次分名额收报名选 sample-event-signup。

## 用户对助手说的原话

帮我做一份中式婚礼请帖，发成一个网页链接到家族群：整页深红底、金色细线，不用图片，回纹边框、四角云纹和囍字都用线条画出来。第一屏是一张红色请帖，打开页面时中间的金色封签先散开、两扇红门向两边打开，囍字一笔一笔描成金线，再有一道金箔光扫过一次；点囍字会轻轻响一声（只在点了之后才响，页顶可静音），系统要求减少动效时直接显示打开后的样子。请帖上用宋体居中排几行传统措辞：谨定于公历某年某月某日（星期几）农历某月某日，为新郎某某、新娘某某举行结婚典礼，敬备喜筵，恭请阖府光临，名字用最大的金色字；下面一行吉时行礼和开席的时刻、酒店和厅名，最后双方父母具名、「敬邀」单独一行。请帖下面一行「离喜宴还有 N 天」的倒数（按今天现算）和一个复制酒店地址的按钮。接着「当天安排」按时刻排迎宾签到、仪式（标「吉时」，左边一条金线）、开席、敬酒、合影、散席，每行一句小字说明；「交通与停车」分地铁、开车、打车三行，写清出口、车库入口、宾客免费停几小时，地址带复制按钮；「外地亲友住宿」写留了几间房、哪两晚、到前台报什么；「有事找谁」列三个人和可以直接点拨的电话。最后一张回执表单：出席 / 不能出席、大人几位、小孩几位、要不要住宿、忌口（无 / 清真 / 素食 / 忌辣）、称呼、祝福留言，一个大按钮发送，回复存到一张数据表里，发完就地换成一张小谢帖；页面读这张表显示已有几家回复、共几位会来、几家要住宿，并列出最近的祝福（别写死数字）。字要大，正文 18px 左右，小字说明也不小于 17px、用米白色，按钮和选项至少 48px 高，方便长辈点；电脑上左边请帖连同倒数一起钉住（一屏放得下）、右边是各节细节和回执，手机上请帖占第一屏。暗色也要好看。有变动就更新同一个链接。

如果你还没有活页连接器（MCP），先读 https://space.24haowan.com/for-agents.md ，照里面的说明接入，或不登录直接发布。

## 照着做一份

1. 读入口文件 https://space.24haowan.com/examples/sample-wedding-red/source/index.html（它引用的其他文件见下方列表）。
2. 保留结构、版式和交互，把内容**全部**换成用户自己的；模板里的公司、人名、数字都是虚构的，一样都别留。
3. 交付一个自包含的单文件 HTML：样式写在页面里，不引外部字体 / 脚本 / CDN；手机 375 宽和电脑 1440 宽都要好看，模板有暗色就保留暗色。
4. 要发成微信里能打开、改了链接不变的网页：接入活页（https://space.24haowan.com/for-agents.md）后发布；没有账号也可以让用户在 https://space.24haowan.com/quick 上传这个文件。
5. 没有活页工具、但能发 HTTPS 请求：把做好的 HTML 以 Content-Type: text/html POST 到 https://space.24haowan.com/api/quick?client=template-sample-wedding-red ，返回预览链接、7 天分享与认领链接（登录后保留、链接不变）。

## 页面结构

- 请帖
- 当天安排
- 交通与停车
- 外地亲友住宿
- 有事找谁
- 回执

## 文件（公开，纯文本）

- https://space.24haowan.com/examples/sample-wedding-red/source/index.html（入口）

## 发成活页之后还能做的

- 页内回执回写数据表（原生表单 POST ./_data/rsvp），页面读回已回复几家、共几位、几家要住宿，并列出祝福留言
- 同一链接更新不变（改时间、婚礼后补照片都在这一页）
- 微信卡片（share.title / share.desc）

## 发之前要备好

- 数据表 rsvp（列 name / attend / adults / kids / stay / diet / note，append_open=true）：文末回执与祝福留言写进这里，发之前先用 set_data 建好；过了回执截止日把 append_open 关掉

## 模板说明（README）

按 `core/space/examples/QUALITY.md` 做的公开模板。示例内容均为虚构（新人、双方父母、酒店、街道、地铁站名、电话都是编的，电话号码是明显的假号）；
全页没有一张图片、没有外部字体 —— 回纹、云纹、囍字都是内联 SVG。

## 演示哪个特色

**文末回执写回数据表、页面读回 + 有变动更新同一个链接。**

- 记忆点：开场那张请帖 —— 中间一枚金色封签先散开，两扇红门向两边打开，囍字一笔一笔描成金线，再有一道金箔光扫过一次（纯 CSS，约 1.8 秒；
  `prefers-reduced-motion` 时直接是打开后的终态；脚本不跑时动画照常、内容完整）。点囍字会「叮」一声并重描一遍
  （Web Audio 现合成三声钟音，只在点按后发声；页顶有静音按钮）。
- 给长辈看：正文 18px、标题宋体、深红底配米白字（对比度 > 6:1），按钮和选项都 ≥ 48px 高，电话可以直接点了拨。
- 电脑上是两栏：左边请帖钉住不动，右边读当天安排、交通、住宿、联系人和回执；手机上请帖占第一屏，往下读。
- 回执是原生表单 `<form method="post" action="./_data/rsvp">`（不跑脚本也能提交）；脚本在时页内提交，就地换成一张小谢帖，
  并读 `./_data/rsvp.json` 显示「已有 N 家回复，共 X 位会来，其中 n 家需要住宿」，再列出最近 6 条祝福留言。选「不能出席」时人数按 0 记。

## 数据表

`rsvp`（列 `name` / `attend` / `adults` / `kids` / `stay` / `diet` / `note`，`append_open=true`）。发之前先建表：

```
set_data proposal_id=<id> table="rsvp" revision=0 rows=[] columns=["name","attend","adults","kids","stay","diet","note"] append_open=true
```

取值：`attend` = `出席` / `不能出席`；`stay` = `需要住宿` / `不需要`；`diet` = `无` / `清真` / `素食` / `忌辣`。
读回：`list_data_rows table=rsvp`，按 `stay=需要住宿` 数房间、按 `diet` 告诉酒店备几份清真 / 素食。过了回执截止日把 `append_open` 关掉。

## 改哪里变成我的

| 位置 | 改什么 |
|---|---|
| 页顶 `.top` | 「陈府 · 林府」换成两家的姓 |
| 请帖 `.paper` | `.when`（公历 + 农历，自己核一遍星期和农历）、`h1` 两个名字、`.facts` 吉时 / 开席 / 地点、`.hosts` 双方父母；名字三个字以上照样放得下 |
| 倒数 `.soon` | 请帖下方「离喜宴还有 N 天」（脚本按北京时间现算，日期在脚本 `Date.UTC(2026, 11, 26)`，月份从 0 数）与复制酒店地址；不跑脚本时显示迎宾时刻 |
| 囍字 `.xi svg` | 十条 `path.st`，每条一个 `--i` 决定描的先后；不想要动画就删 `.door` / `.seal` 两个元素 |
| 配色 | `:root` 里的 `--bg` / `--card` / `--gold`，暗色两处（`[data-theme="dark"]` 和 `prefers-color-scheme`）同改 |
| 「当天安排」`.prog` | 每行 = 时刻 + 做什么 + 一句小字；吉时那行加 `class="ji"` 和「吉时」小标 |
| 「交通与停车」 | 地铁口、车库入口、免费停车时长、打车终点；`.addr` 里的地址与 `data-copy` 一起改 |
| 「外地亲友住宿」 | 房间数、哪两晚、退房时间、前台报什么名字 |
| 「有事找谁」 | 名字、负责什么、电话（`href="tel:…"` 与显示的号码一起改） |
| 「回执」 | 截止日、人数选项、忌口选项；表单字段名要和 `rsvp` 的列一致；谢帖文案在脚本 `thank()` 里 |
| 页脚 | 平台标志与名称（与 `core/space/src/theme.ts` 的 `MARK_SVG` / `PUBLIC_NAME` 逐字一致）+ 一句适用场景；发自己的请帖时整段删掉 |
| `manifest.json` | `title` / `share.*`（微信卡片上的字）；节增减时 `sections` 与页里的 `id` / `data-track-section` 三处同改 |

## 怎么发出去

```bash
node core/space/cli/space-cli.mjs push <本目录> --proposal <proposal_id> --manifest <本目录>/manifest.json --hold
# 先建 rsvp 表 → 预览确认 → publish_version → 链接发到家族群
```

改时间、补婚礼照片：改完再推一次到**同一个** `proposal_id`，链接不变，已经转出去的也跟着更新。
验收截图：`node --import tsx examples/verify-shots.mjs sample-wedding-red --write-thumb --write-phone`（QUALITY.md §7）。
