Back to skills
SKILL.md
Html Document Generation
ASecurityMarkdown转HTML文档生成。基于Pandoc + Richee设计系统,6模板(报告/意见/简报/函件/法定文书/法定表格),支持目录、内联CSS单文件、图片题注、有序列表文本序号。适用于法律研究报告、意见书、律师函、起诉状、申请表等。
- 28 stars
- 0 votes
- 0 copies
- 1 view
- Added September 12, 2026
Security analysis
100/100Pro scans all 20 files and shows the line behind each finding
npx -y skills add ahang1598/doubao-workbuddy-qwenwork-skills --skill html-document-generation --agent claude-codeAre you the author of Html Document Generation?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ahang1598-html-document-generation)---
name: html-document-generation
description: "Markdown转HTML文档生成。基于Pandoc + Richee设计系统,6模板(报告/意见/简报/函件/法定文书/法定表格),支持目录、内联CSS单文件、图片题注、有序列表文本序号。适用于法律研究报告、意见书、律师函、起诉状、申请表等。"
version: "2.1.0"
tags:
- 文档生成
- html
- pandoc
- markdown
---
# HTML 文档生成
> 基于 Pandoc + Richee 设计系统将 Markdown 转换为专业 HTML 报告
> 6 模板覆盖法律行业全场景:报告/意见/简报/函件/法定文书/法定表格
---
## 文件结构
```
html-document-generation/
├── SKILL.md # 本文件
└── scripts/
├── md2html.py # 转换入口(pandoc + 模板 + Lua 过滤器)
├── markdown-to-html.lua # Lua 过滤器聚合
├── disable-ordered-list-numbering.lua # 有序列表文本序号
├── image-title-to-caption.lua # 图片题注
├── shared.css # 共享 CSS(设计令牌 + 全部组件类)
├── template-report.html # 全面报告
├── template-opinion.html # 意见书/备忘录
├── template-brief.html # 简报/快讯
├── template-letter.html # 律师函/催告函
├── template-pleading.html # 法定文书(起诉状/申请书)
└── template-form.html # 法定表格(官方表格填充)
```
---
## 目录
1. [技术栈](#1-技术栈)
2. [模板选型](#2-模板选型)
3. [创建 HTML 文档](#3-创建-html-文档)
4. [Richee 设计系统](#4-richee-设计系统)
5. [Lua 过滤器](#5-lua-过滤器)
6. [Markdown 编写规范](#6-markdown-编写规范)
7. [输出规范](#7-输出规范)
8. [Do / Don't](#8-do--dont)
---
## 1. 技术栈
| 技术 | 用途 | 成本 |
|------|------|------|
| Pandoc + HTML 模板 | Markdown → HTML 转换 | `md2html.py` 一行命令 |
| Lua 过滤器 | 有序列表文本序号、图片题注 | 自动加载 |
| CSS(共享 `shared.css`) | 6 模板共享设计令牌 + 组件类 | `--include-in-header` 注入 |
---
## 2. 模板选型
| 模板别名 | 文件 | 场景 | 典型文档 | 结构特点 |
|---------|------|------|---------|---------|
| `report` | `template-report.html` | **全面报告** | 法律研究/尽调/案件分析/合规审查 | topbar + hero + 左侧导航目录 + 组件丰富 + footer |
| `opinion` | `template-opinion.html` | **意见/备忘录** | 法律意见书/法律备忘录 | 单栏 + 致/事由/编号表头 + 署名区 |
| `brief` | `template-brief.html` | **简报/快讯** | 新法速递/合规提醒/政策解读 | 极简单栏 + 1-3 屏 + 无导航 |
| `letter` | `template-letter.html` | **正式函件** | 律师函/催告函/法律告知函 | 信函格式(收件人/正文/落款)+ 正式编号 |
| `pleading` | `template-pleading.html` | **法定文书** | 起诉状/申请书/答辩状/反诉状 | 居中标题(上下双线)+ 当事人信息 + 正文首行缩进 + 此致法院 + 具状人 |
| `form` | `template-form.html` | **法定表格** | 登记申请表/申报表/备案表 | 标题 + 官方表格(固定字段填空)+ 填表说明 + 签章区 |
6 个模板共享 `shared.css`(同一套设计令牌和组件类),只是页面骨架不同。
---
## 3. 创建 HTML 文档
### 一行命令
```bash
# 全面报告(默认)
python scripts/md2html.py report.md -o output.html --toc --title "供应商风险评估报告"
# 法律意见书
python scripts/md2html.py opinion.md --template opinion --title "法律意见书" \
--addressee "XX科技有限公司" --firm "XX律师事务所" --lawyer "张三" --disclaimer
# 简报/快讯
python scripts/md2html.py brief.md --template brief --title "《数据安全法》修订要点" \
--date "2026-07-28" --disclaimer
# 律师函
python scripts/md2html.py letter.md --template letter --title "关于XX合同违约的律师函" \
--addressee "XX贸易有限公司" --firm "XX律师事务所" --date "2026-07-28"
# 民事起诉状
python scripts/md2html.py pleading.md --template pleading --title "民事起诉状" \
--court "杭州市中级人民法院" --signer "张三" --date "2026-07-28"
# 企业登记申请表
python scripts/md2html.py form.md --template form --title "企业登记申请表" \
--signer "李四" --date "2026-07-28" --form-no "DJ-2026-001"
```
### 参数说明
#### 通用参数
| 参数 | 说明 | 默认值 |
|------|------|--------|
| `-o output.html` | 输出路径 | 同输入文件名 .html |
| `--template` | 模板:report/opinion/brief/letter/pleading/form 或自定义路径 | report |
| `--title` | 文档标题 | 输入文件名 |
| `--report-no` | 报告编号 | 空 |
| `--date` | 日期 | 空 |
| `--disclaimer` | 追加 AI 免责声明 | 关 |
| `--standalone` | 内联 CSS/图片为单文件 | 关 |
| `--filter none` | 跳过 Lua 过滤器 | 启用 |
#### report 专用
| 参数 | 说明 |
|------|------|
| `--subtitle` | Hero 副标题 |
| `--status` | 顶栏状态文字 |
| `--pills` | 元数据标签(HTML 片段) |
| `--footer` | 页脚文字 |
| `--toc` | 生成左侧目录导航 |
#### opinion/letter 专用
| 参数 | 说明 |
|------|------|
| `--addressee` | 致/收件人 |
| `--firm` | 律所名称 |
| `--lawyer` | 经办律师(opinion) |
| `--cc` | 抄送(letter) |
#### brief 专用
| 参数 | 说明 |
|------|------|
| `--author` | 作者 |
#### pleading 专用
| 参数 | 说明 |
|------|------|
| `--court` | 受理法院(此致 XX人民法院) |
| `--signer` | 具状人 |
| `--parties` | 当事人信息 HTML 片段 |
#### form 专用
| 参数 | 说明 |
|------|------|
| `--signer` | 填表人/申请人 |
| `--form-no` | 表格编号 |
| `--form-note` | 填表说明 |
---
## 4. Richee 设计系统
> 配色纪律:黑白灰承载 90% 信息;绿色仅用于强调;红/琥珀/绿/蓝只用于标签与风险等级。
### 设计令牌
| 类别 | 关键令牌 | 值 |
|------|---------|-----|
| 底/纸 | `--bg` / `--white` | `#f7f7f7` / `#ffffff` |
| 主黑/正文 | `--black` / `--text` | `#1a1a1a` |
| 次要文字 | `--muted` | `#6b7280` |
| 分割线 | `--line` | `#e2e5ea` |
| 强调(单绿) | `--accent` / `--accent-dark` | `#32d583` / `#029856` |
| 危险/警告/成功/信息 | `--red`/`--amber`/`--green`/`--blue-text` | `#d92d20`/`#b54708`/`#029856`/`#175cd3` |
| 字体 | `--font-sans` | `'PingFang SC','Segoe UI',-apple-system,sans-serif` |
### 组件映射(Markdown 内嵌 HTML 用法)
基础内容(标题/段落/表格/列表)用 Markdown 语法。特殊组件在 Markdown 中内嵌 HTML 片段。
| 组件 | 类名 | 用法示例 |
|------|------|---------|
| 结论卡 | `.conclusion` | `<div class="conclusion"><div class="head"><strong>综合结论</strong><span class="tag high">高风险</span></div><div class="body">结论文字</div></div>` |
| 指标卡 | `.grid-4` + `.kpi` | `<div class="grid-4"><div class="kpi"><div class="name">罚款上限</div><div class="value">20倍</div><div class="note">违法经营额</div></div></div>` |
| 风险标签 | `.tag.high/.mid/.low` | `<span class="tag high">高风险</span>` |
| 置信度条 | `.confidence` | `<div class="confidence"><span class="stars">⭐⭐⭐⭐☆ 88%</span><div class="track"><div class="fill" style="width:88%"></div></div></div>` |
| 时间轴 | `.timeline` + `.t-item` | `<div class="timeline"><div class="t-item"><div class="t-title">2025.11.8</div><div class="t-text">公告生效</div></div></div>` |
| 热度条 | `.bar-row` | `<div class="bar-row"><span>支持强度</span><div class="track"><div class="fill" style="width:85%"></div></div><span>85%</span></div>` |
| 风险矩阵 | `.matrix` + `.box` | `<div class="matrix"><div class="box h">表头</div><div class="box r">高风险</div></div>` |
| 表格滚动 | `.table-scroll` | `<div class="table-scroll"><table>...</table></div>` |
| 网格布局 | `.grid-2/.grid-3/.grid-4` | `<div class="grid-2">两个卡片</div>` |
### opinion/letter 专用类
| 组件 | 类名 | 说明 |
|------|------|------|
| 意见书表头 | `.opinion-header` | 致/事由/编号/日期两列表格 |
| 署名区 | `.signature-block` | 律所/律师/日期/印章位 |
| 函件标题 | `.letter-header h1` | 上下双线居中标题 |
| 函件收件人 | `.letter-recipient` | 致/抄送 |
| 函件正文 | `.letter-body p` | 首行缩进 2em |
| 函件落款 | `.letter-signoff` | 律所/日期右对齐 |
### pleading/form 专用类
| 组件 | 类名 | 说明 |
|------|------|------|
| 文书标题 | `.pleading-title` | 居中、上下双线 |
| 当事人信息 | `.pleading-parties` | 原告/被告/第三人 |
| 文书正文 | `.pleading-body p` | 首行缩进 2em |
| 此致法院 | `.pleading-court` | 左对齐 |
| 具状人 | `.pleading-signoff` | 具状人 + 日期右对齐 |
| 印章位 | `.pleading-seal` | 虚线圆框 |
| 表格标题 | `.form-title` | 居中加粗 |
| 表格副标题 | `.form-subtitle` | 编号/版次 |
| 官方表格 | `.form-table` | 实线边框、无圆角 |
| 字段标签 | `.form-label` | 灰底加粗居中 |
| 字段值 | `.form-value` | 左对齐 |
| 分区标题 | `.form-section` | 黑底白字跨行 |
| 填表说明 | `.form-note` | 灰色小字 |
| 签章区 | `.form-signoff` | 三栏(填表人/日期/签章) |
### 响应式与打印
| 断点 | 行为 |
|------|------|
| ≤1023px | 导航目录从侧栏变顶部横排 |
| ≤767px | 顶栏竖排、网格变单列、表格横向滚动 |
| `@media print` | A4 + 隐藏导航 + 表格不跨页 + 保留背景色 |
---
## 5. Lua 过滤器
| 过滤器 | 功能 | 为什么需要 |
|--------|------|-----------|
| `disable-ordered-list-numbering.lua` | 禁用有序列表自动编号,保留 MD 原文序号 | Pandoc 默认剥离 `1.` 前缀改用原生编号,与 MD 文本序号重复 |
| `image-title-to-caption.lua` | 图片 title 转为 `<figcaption>` 题注 | Pandoc 默认用 alt 做标题,不符合题注语义 |
---
## 6. Markdown 编写规范
### 标题编号
```
# 文档标题(不加序号)
## 一、一级标题 ← 中文数字 + 、
### (一)二级标题 ← 中文数字 + 括号
#### 1. 三级标题 ← 阿拉伯数字 + .
##### (1)四级标题 ← 阿拉伯数字 + 括号
```
> 序号由 Markdown 内容控制,不在模板里设自动编号,避免双份序号。
### 其他
- 优先使用 Markdown 而非内嵌 HTML
- 仅在复杂表格(`colspan`)、特殊组件时使用 HTML 片段
- **正文不得使用 emoji**,用 `[已核验]`、`[注意]`、`[高]`、`[中]`、`[低]` 等文字标签
---
## 7. 输出规范
### 通用
- 正式交付物必须包含 AI 免责声明(`--disclaimer`)
- 禁止"保证胜诉""绝无风险""完全合规""一定合法"等绝对化法律结论
- 风险、状态、优先级不得只靠颜色表达,必须同时有文字标签
- 依据标签限定为:`[已核]` `[待核]` `[用规]` `[事实]` `[推定]` `[用户提供]` `[公开来源]`;不得自创或混用
- 文件名不得含 emoji;下载件采用可识别的主题和日期命名
### HTML 专属
- 独立分发的 HTML 必须用 `--standalone` 内联所有 CSS/图片,不依赖外部资源
- CSS 不得含 `</style>` 闭合标签字面量,避免样式块提前终止
- 页面必须支持窄屏阅读,表格允许横向滚动,布局不得溢出容器
---
## 8. Do / Don't
| ✅ Do | ❌ Don't |
|------|---------|
| 按场景选模板(report/opinion/brief/letter/pleading/form) | 所有文档都用默认 report |
| 正式文档加 `--disclaimer` | 忘记加免责声明 |
| 独立分发用 `--standalone` | 输出依赖外部 CSS |
| 序号在 Markdown 中手写 | 依赖模板自动编号 |
| 风险等级用文字标签 `[高]` | 只用颜色表示 |
| 特殊组件内嵌 HTML 片段 | 全文手写 HTML |
Files in this skill
- SKILL.md
- scripts/disable-ordered-list-numbering.lua
- scripts/image-title-to-caption.lua
- scripts/lua/disable-ordered-list-numbering.lua
- scripts/lua/image-title-to-caption.lua
- scripts/markdown-to-html.lua
- scripts/md2html.py
- scripts/shared.css
- scripts/template-brief.html
- scripts/template-form.html
- scripts/template-letter.html
- scripts/template-opinion.html
- scripts/template-pleading.html
- scripts/template-report.html
- scripts/templates/shared.css
- scripts/templates/template-brief.html
- scripts/templates/template-form.html
- scripts/templates/template-letter.html
- scripts/templates/template-opinion.html
- scripts/templates/template-pleading.html
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.