AgentSkillsCN

ai-weekly-report

使用EJS模板,从JSON数据中渲染AI每周报告的PDF。当用户提供了报告的JSON数据,并希望生成一份专业排版的PDF时使用此功能。

SKILL.md
--- frontmatter
name: ai-weekly-report
description: Renders AI weekly report PDF from JSON data using EJS template. Use when user provides report JSON data and wants to generate a professionally formatted PDF.

AI 周报 PDF 渲染技能

功能说明

本技能负责将 AI 周报的 JSON 数据渲染为专业排版的 PDF 文件。采用全新的版式设计,精确还原国网江苏电力公司周报格式。

输入:符合格式要求的 JSON 数据文件
输出:设计精良、排版专业的 PDF 文件

使用方式

用户提供 JSON 数据后,执行以下步骤:

步骤 1:保存 JSON 数据

将用户提供的 JSON 数据保存为 /home/ubuntu/report_data.json 文件。

步骤 2:渲染 HTML

运行 Node.js 脚本,使用 EJS 模板渲染 HTML:

bash
pnpm add ejs && node /home/ubuntu/skills/ai-weekly-report/scripts/render.js

注意

  • 渲染脚本会自动检测并上传本地图片到 S3,无需手动处理
  • 脚本会自动将旧数据格式转换为新模板所需格式

步骤 3:转换为 PDF

运行 Python 脚本,将 HTML 转换为 PDF:

bash
python3.11 /home/ubuntu/skills/ai-weekly-report/scripts/convert_to_pdf.py

步骤 4:交付成果

向用户交付生成的 PDF 文件。文件名格式为 人工智能行业动态周报(XXXX年X月第X周).pdf,根据 JSON 数据中的 period 字段自动生成。

例如,当 period"2026年1月第5周" 时,生成的文件为 /home/ubuntu/人工智能行业动态周报(2026年1月第5周).pdf

JSON 数据格式要求

完整格式示例

输入的 JSON 数据必须严格遵循以下结构(支持新旧两种格式):

新格式(推荐)

json
{
  "title": "人工智能行业动态周报",
  "period": "2026年1月第5周",
  "publishDate": "2026-02-03",
  "introduction": {
    "keywords": ["关键词1", "关键词2", "关键词3"],
    "content": "导读内容..."
  },
  "keyData": [
    {
      "indicator": "指标名称",
      "value": "数值",
      "change": "变化情况",
      "source": "数据来源"
    }
  ],
  "sections": [
    {
      "type": "核心看点",
      "title": "一、核心看点",
      "items": [
        {
          "title": "新闻标题",
          "source": "新华网/科技日报",
          "date": "2026-02-05",
          "summary": "新闻摘要内容...",
          "analysis": "影响与解读内容...",
          "imageUrl": "/home/ubuntu/images/news1.jpg",
          "tags": ["#标签1", "#标签2"]
        }
      ]
    }
  ],
  "summary_outlook": {
    "title": "五、本周小结与展望",
    "content": "小结内容..."
  },
  "footer": "信通公司数据运营中心 荣誉出品"
}

旧格式(兼容)

旧格式数据会自动转换为新格式,无需手动修改。主要差异:

  • 旧格式的 summaryanalysis 会分别映射到新格式的 contentindustryInsight
  • 旧格式支持 <next_paragraph /><strong> 标签,会自动转换

字段说明

顶层必填字段

  • title(string):周报标题
  • period(string):时间周期,如"2026年1月第5周"
  • publishDate(string):发布日期,格式 YYYY-MM-DD
  • introduction(object):导读部分
  • keyData(array,可选):关键数据列表
  • sections(array):新闻板块数组
  • summary_outlook(object):小结与展望
  • footer(string):页脚信息

introduction 字段

  • keywords(array,可选):3-4 个关键词
  • content(string):导读内容,支持 <next_paragraph /> 分段

keyData 数组(新增)

每个数据项包含:

  • indicator(string):指标名称
  • value(string):数值
  • change(string):变化情况
  • source(string):数据来源

sections 数组

每个 section 包含:

  • type(string):板块类型,如"核心看点"、"技术前沿"
  • title(string):板块标题,如"一、核心看点"
  • items(array):新闻条目数组

每个 item 包含:

  • title(string,必填):新闻标题
  • source(string,可选):来源,如"新华网/科技日报"
  • date(string,可选):日期,格式 YYYY-MM-DD
  • summary(string,必填):新闻摘要
  • analysis(string,可选):影响与解读
  • imageUrl(string,可选):图片路径或 URL
  • tags(array,可选):标签数组,如 ["#AI", "#大模型"]

summary_outlook 字段

  • title(string):小结标题
  • content(string):小结内容,支持 <next_paragraph /> 分段

图片处理说明

imageUrl 字段支持两种格式

  1. 本地路径(推荐):

    json
    "imageUrl": "/home/ubuntu/images/news1.jpg"
    
    • 渲染脚本会自动上传到 S3 并替换为公网 URL
    • 无需手动处理,简化流程
  2. 公网 URL

    json
    "imageUrl": "https://example.com/image.jpg"
    
    • 直接使用,不做处理

注意事项

  • 如果不需要配图,可省略 imageUrl 字段或设为空字符串
  • 本地图片路径必须存在且可读
  • 上传失败时会在控制台输出警告,但不会中断渲染

格式规范

  1. 段落分隔:使用 <next_paragraph /> 标签

    json
    "content": "第一段内容...<next_paragraph />第二段内容..."
    
  2. 文本加粗:使用 <strong> 标签(会自动移除)

    json
    "analysis": "<strong>影响与解读:</strong>这是分析内容..."
    
  3. 避免 JSON 解析错误

    • 不要在 JSON 字符串中使用未转义的双引号 "
    • 如需引用,使用 HTML 实体 &quot; 或省略引号

PDF 样式特点

生成的 PDF 采用全新设计,精确还原国网江苏电力公司周报格式:

颜色方案

  • 主题蓝色 (#3B7BB5):用于标题、标签
  • 强调红色 (#C84343):用于章节标题横条
  • 背景灰色 (#F5F5F5):用于"电力行业启示"框

页面布局

  • A4纸张 (210mm × 297mm)
  • 页边距:上下15mm,左右20mm
  • 页眉:报告标题 + 日期范围
  • 页脚:组织名称 + 页码 + 保密提示

内容模块

  1. 封面页:标题、周期、编者按、关键数据表格
  2. 内容页:章节标题、文章标题、来源日期、配图、正文、标签、行业启示
  3. 洞察页:周度总结
  4. 尾页:免责声明

设计特点

  • 蓝色科技主题,专业大气
  • 卡片式布局,层次分明
  • 关键数据表格,一目了然
  • 电力行业启示框,重点突出
  • 自适应配图,美观协调

技术实现

  • 模板文件/home/ubuntu/skills/ai-weekly-report/templates/report_template.ejs
  • 渲染脚本/home/ubuntu/skills/ai-weekly-report/scripts/render.js
  • 转换脚本/home/ubuntu/skills/ai-weekly-report/scripts/convert_to_pdf.py
  • 技术栈:EJS + Node.js + WeasyPrint
  • 图片上传:manus-upload-file(自动调用)

更新日志

v2.0.0 (2026-02-11)

  • ✨ 全新版式设计,精确还原国网江苏电力公司周报格式
  • ✨ 新增关键数据表格模块
  • ✨ 新增标签系统
  • ✨ 新增来源和日期字段
  • ✨ 优化页眉页脚设计
  • ✨ 支持新旧数据格式自动转换
  • 🎨 采用蓝红配色方案,更加专业
  • 🎨 优化排版和间距,提升阅读体验

v1.0.0

  • 初始版本,基础功能实现