xdrshjr

Report Generator

MIT

xdrshjr 1 Updated 7mo ago

Resources

5
GitHub

Install

npx skillscat add xdrshjr/jr-openclaw-skills/report-generator

Install via the SkillsCat registry.

About this skill

We need to produce a 2-3 sentence plain-text summary, objective, factual, no marketing language, no superlatives, no calls to action, natural prose, no bullet points, no headings, no markdown formatting. At most 60 words. Must be only the summary text, no extra. We need to explain what the skill does, what problem it solves, when to use it. Skill: Report Generator, automatically generates structured research reports with Markdown writing, reference management, network image search/download, Word export.

SKILL.md

Report Generator

自动生成结构化的研究报告,支持Markdown撰写、参考文献管理、网络图片搜索和Word导出。

Description

本Skill提供从主题定义到最终Word文档的完整研究报告生成流水线,包括:

  • 项目结构初始化
  • 章节模板生成
  • 参考文献自动搜集与管理 🆕
  • 网络图片搜索与下载 🆕(带失败回退到占位图)
  • Markdown转Word转换

Usage

1. 初始化项目

# 进入skill目录
cd /Users/xdrshjr/clawd/skills/report-generator

# 初始化一个5章节的研究报告
python3 scripts/init_project.py --name "我的研究报告" --chapters 5

或在对话中直接要求:

"帮我生成一份关于[主题]的研究报告,包含5个章节"

2. 生成参考文献 🆕

# 进入项目目录
cd 我的研究报告

# 方式A:使用预设主题(自动加载相关文献)
python3 /Users/xdrshjr/clawd/skills/report-generator/scripts/manage_references.py \
    --topic "构成主义"

# 方式B:手动添加引用
python3 /Users/xdrshjr/clawd/skills/report-generator/scripts/manage_references.py \
    --topic "通用" \
    --add-web "网页标题" "https://example.com" "网站名" "2024"

# 支持的预设主题:构成主义、设计系统、通用

预设主题包含的文献

  • 构成主义:知乎专栏、维基百科、Lodder著作等6条文献
  • 设计系统:Material Design、Apple HIG、Refactoring UI等4条文献

3. 搜索和下载图片 🆕

# 搜索网络图片(多源:直接URL + Wikimedia + Bing)
python3 /Users/xdrshjr/clawd/skills/report-generator/scripts/search_images.py \
    --query "构成主义海报" \
    --count 3 \
    --output images/

# 带失败回退(下载失败时自动生成占位图)
python3 /Users/xdrshjr/clawd/skills/report-generator/scripts/search_images.py \
    --query "现代UI设计" \
    --count 2 \
    --placeholder \
    --name "modern-ui"

# 指定图片来源(direct = 预设直接URL,最快)
python3 /Users/xdrshjr/clawd/skills/report-generator/scripts/search_images.py \
    --query "Tatlin Tower" \
    --sources direct wikimedia \
    --count 1

图片来源说明(v2.0修复版)

来源 说明 适用场景
direct 预设直接URL(绕过API搜索) 常见艺术史主题(塔特林塔、构成主义等)
wikimedia Wikimedia Commons 公共领域艺术作品、历史照片
bing Bing图片搜索 通用图片、现代设计截图

预设直接URL主题

  • tatlin tower - 塔特林《第三国际纪念塔》
  • constructivism - 构成主义作品
  • rodchenko - 罗德琴科作品
  • lissitzky - 利西茨基作品
  • material design - Material Design相关

4. 批量生成默认占位图

当网络搜索不可用时,使用本地生成的占位图:

# 生成23张构成主义风格占位图
python3 /Users/xdrshjr/clawd/skills/report-generator/scripts/generate_images.py

5. 撰写内容

编辑 chapters/ 目录下的Markdown文件,使用以下语法:

# 第一章 标题

## 1.1 小节标题

正文内容...

![图片说明](images/xxx.jpg)
*图1-1:图片说明*

| 表格 | 列1 | 列2 |
|-----|-----|-----|
| 行1 | A | B |
| 行2 | C | D |

> 引用文本

```python
# 代码块
print("hello")

### 6. 转换为Word

```bash
# 基本用法
python3 /Users/xdrshjr/clawd/skills/report-generator/scripts/md_to_word.py

# 自定义标题
python3 /Users/xdrshjr/clawd/skills/report-generator/scripts/md_to_word.py \
    --title "报告标题" \
    --subtitle "副标题" \
    --output "输出文件名.docx"

Requirements

  • Python 3.8+
  • python-docx
  • Pillow (PIL)
  • 网络连接(用于图片搜索和参考文献下载)

Install

cd /Users/xdrshjr/clawd/skills/report-generator
pip3 install -r requirements.txt

Project Structure

生成的项目结构:

我的研究报告/
├── chapters/              # 章节Markdown文件
│   ├── 01_章节1.md
│   ├── 02_章节2.md
│   └── ...
├── images/                # 图片资源
│   ├── (网络下载的图片)
│   └── (占位图)
├── references/            # 参考文献
│   └── 参考文献.md        # 自动生成的引用列表
├── scripts/               # 工具脚本
└── 我的研究报告.docx      # 生成的Word文档

Features

Markdown支持

  • ✅ 标题(# ## ###)
  • ✅ 列表(有序/无序)
  • ✅ 表格
  • ✅ 代码块
  • ✅ 引用块
  • ✅ 图片嵌入
  • ✅ 行内格式(粗体斜体代码

参考文献管理 🆕

  • 预设主题文献库
  • 支持网页、书籍、期刊三种类型
  • 自动格式化为GB/T 7714标准
  • 中英文文献分类

图片搜索下载 🆕 (v2.0修复版)

  • 多源搜索:直接URL(预设)+ Wikimedia Commons + Bing图片
  • 智能回退:自动尝试多个来源直到成功
  • 图片验证:自动验证下载图片的有效性
  • 失败保护:网络失败时自动生成占位图
  • 预设URL库:常见艺术史主题可直接下载(无需搜索)

图片生成

  • 使用PIL/Pillow本地生成
  • 构成主义风格设计
  • 无需外部网络依赖

Word输出

  • 自动生成封面
  • 自动生成目录
  • 中文字体支持(微软雅黑)
  • 图片自动嵌入

Scripts

脚本 功能 版本
init_project.py 初始化项目结构
manage_references.py 参考文献管理 🆕
search_images.py 网络图片搜索下载(v2.0修复版) ✅ 修复
generate_images.py 生成占位图片
md_to_word.py Markdown转Word

Complete Workflow

完整工作流程示例:

# 1. 初始化项目
cd /Users/xdrshjr/clawd/skills/report-generator
python3 scripts/init_project.py --name "构成主义设计报告" --chapters 5

# 2. 进入项目
cd 构成主义设计报告

# 3. 生成参考文献
python3 ../scripts/manage_references.py --topic "构成主义"

# 4. 搜索下载图片(推荐使用 --sources direct 获取真实图片)
python3 ../scripts/search_images.py --query "Tatlin Tower" --sources direct wikimedia --count 1 --name "tatlin-tower"
python3 ../scripts/search_images.py --query "Constructivism poster" --sources wikimedia --count 1 --name "constructivism-poster"
python3 ../scripts/search_images.py --query "Modern UI design" --sources bing --count 1 --name "modern-ui"

# 如果网络搜索都失败,使用占位图回退
python3 ../scripts/search_images.py --query "示例图片" --count 1 --placeholder --name "placeholder-example"

# 如果网络搜索都失败,批量生成占位图
python3 ../scripts/generate_images.py

# 5. 编辑内容(手动或使用AI撰写)
# ... 编辑 chapters/*.md ...

# 6. 转换为Word
python3 ../scripts/md_to_word.py \
    --title "构成主义与软件设计" \
    --subtitle "艺术风格在数字时代的传承与实践" \
    --output "构成主义设计报告.docx"

Customization

添加新的预设主题

修改 manage_references.py 中的 load_preset_references() 函数:

def load_preset_references(topic):
    presets = {
        "你的主题": [
            {"type": "web", "title": "...", "url": "...", "site_name": "...", "date": "2024"},
            {"type": "book", "title": "...", "author": "...", "publisher": "...", "year": "2024"},
        ],
        # ...
    }

自定义图片搜索源

修改 search_images.py 中的 search_with_retry() 方法,添加新的图片来源API。

自定义章节模板

修改 init_project.py 中的 CHAPTER_TEMPLATE 变量。

自定义Word样式

修改 md_to_word.py 中的:

  • create_document() - 文档默认样式
  • create_cover() - 封面样式
  • add_heading_custom() - 标题样式

Troubleshooting

图片搜索失败

  • 检查网络连接
  • 尝试不同的图片来源:--sources direct 使用预设URL(最快)
  • 使用 --placeholder 参数启用失败回退
  • 或直接运行 generate_images.py 生成本地占位图

参考文献格式错误

  • 检查 manage_references.py 中的 _format_reference() 方法
  • 确保引用类型正确(web/book/journal)

图片未嵌入Word

  • 检查 images/ 目录是否存在且图片格式正确(JPG/PNG)
  • 确认图片文件名与Markdown中引用一致

中文显示乱码

  • 确保系统安装了微软雅黑或PingFang字体

转换失败

  • 检查Markdown语法是否正确,特别是表格格式

API Keys (可选)

如需使用更高级的图片搜索功能,可以配置以下API:

设置环境变量:

export GOOGLE_API_KEY="your_key"
export GOOGLE_CX="your_custom_search_id"

Author

Moltbot Assistant

License

MIT