关于 geo-report-pdf
geo-report-pdf 是一项技能,可通过 pandoc 和无头 Chrome 将 GEO 审计 Markdown 报告转换为排版后的 PDF。它面向需要整理审计文档的用户,使用模板处理报告元数据、分数样式和章节格式。
主要功能
- 01将 GEO 审计 Markdown 转为 PDF
- 02提取报告封面元数据
- 03为分数表格单元格着色
- 04按严重程度设置发现项样式
- 05为章节添加分页
- 06自定义模板和 CSS
适用场景
- 01将 GEO-AUDIT-REPORT.md 制作为 PDF
- 02整理可分享的审计结果
- 03调整报告颜色和页面布局
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ zubair-trabzada/ geo-seo-claude --skill geo-report-pdf安装后在 Claude Code 中输入/geo-report-pdf确认已加载。
详细介绍
GEO PDF 报告生成器(pandoc 流水线)
前提条件
- pandoc —
brew install pandoc - Google Chrome — 必须安装在
/Applications/Google Chrome.app/
无需 Python 依赖。无需 ReportLab。无需处理 JSON 数据。
工作原理
- 读取当前目录中的
GEO-AUDIT-REPORT.md(由/geo audit创建) - 从报告中提取封面元数据(品牌名称、域名、GEO 分数、日期、地点)
- 使用内置 CSS + HTML 模板运行
pandoc,生成独立的GEO-REPORT.html - 运行 Chrome 无头模式,将 HTML 打印为
GEO-REPORT.pdf
pandoc 模板(~/.claude/skills/geo/templates/geo-report-template.html)会注入:
- 带 GEO 分数徽章的全幅深海军蓝封面
- 每个部分的封面元数据(日期、业务类型、地点、平台)
- 在打印前于 Chrome 中运行的 JavaScript,用于为分数单元格着色,并为发现的问题部分添加严重程度标签
工作流程
第 1 步:检查审计报告
在当前目录中查找 GEO-AUDIT-REPORT.md。如果不存在,告知用户先运行 /geo audit <url>。
第 2 步:从报告中提取封面元数据
读取 GEO-AUDIT-REPORT.md 开头部分并提取:
| 字段 | 查找位置 |
|---|---|
brand_name | 第一个 H1 标题(位于 "GEO Audit Report:" 之后) |
domain | 第二行加粗文本(例如 **Domain:** alexamediasolutions.com) |
geo_score | 与 ## Overall GEO Score: XX / 100 匹配的行 |
score_label | 同一行中分数后面的词(例如 "Poor"、"Fair"、"Good") |
date | **Audit Date:** 行 |
business_type | **Business Type:** 行 |
locations | **Locations:** 行 |
platform | **CMS:** 行 |
第 3 步:运行 pandoc
pandoc GEO-AUDIT-REPORT.md \
--to html5 \
--standalone \
--embed-resources \
--template ~/.claude/skills/geo/templates/geo-report-template.html \
--css ~/.claude/skills/geo/templates/geo-report-style.css \
--metadata title="GEO Audit Report — <brand_name>" \
--metadata brand_name="<brand_name>" \
--metadata domain="<domain>" \
--metadata geo_score="<geo_score>" \
--metadata score_label="<score_label>" \
--metadata date="<date>" \
--metadata business_type="<business_type>" \
--metadata locations="<locations>" \
--metadata platform="<platform>" \
-o GEO-REPORT.html
将 <field> 占位符替换为第 2 步提取的值。如果报告中未找到某个字段,则省略对应的 --metadata 标志——模板带有合理的默认值。
第 4 步:运行 Chrome 无头模式
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--headless=new \
--disable-gpu \
--no-sandbox \
--print-to-pdf="$(pwd)/GEO-REPORT.pdf" \
--print-to-pdf-no-header \
--no-pdf-header-footer \
--virtual-time-budget=5000 \
"file://$(pwd)/GEO-REPORT.html"
第 5 步:报告完成情况
告知用户:
GEO-REPORT.pdf已在当前目录中生成- 文件大小
- 可选:运行
open GEO-REPORT.pdf进行预览
PDF 内容
- 封面 — 深海军蓝渐变背景、品牌名称、域名、GEO 分数徽章(根据分数着色)、审计日期、业务类型、地点、CMS 平台
- 分数表格 — 包含
XX/100的单元格会根据分数着色:≥80 为绿色,≥65 为蓝色,≥50 为琥珀色,≥35 为橙色,<35 为红色 - 发现问题部分 — 包含 "Critical / High / Medium / Low" 的
h3标题会显示带严重程度颜色左边框的提示块(红色 / 橙色 / 黄色 / 绿色) - 章节分页 — 主要章节(High Priority、90-Day Roadmap、Component Score Summary、Generated Schema)会自动从新页开始
- 代码块 — JSON 架构模板采用深色主题等宽字体样式
- 页脚 — 品牌名称 · GEO Audit · 日期 + 页码(通过 CSS
@page)
自定义报告
- 颜色 / 字体排版 — 编辑
~/.claude/skills/geo/templates/geo-report-style.css - 封面布局 — 编辑
~/.claude/skills/geo/templates/geo-report-template.html - 分数着色阈值 — 编辑模板
<script>块中的scoreColor()函数 - 需要分页的章节 — 编辑模板
<script>块中的breakBefore数组
故障排除
| 问题 | 解决方法 |
|---|---|
pandoc: command not found | brew install pandoc |
| 未找到 Chrome | 检查路径:/Applications/Google Chrome.app/Contents/MacOS/Google Chrome |
| PDF 为空白 | 将 --virtual-time-budget 增加到 8000 |
| 缺少封面元数据 | 检查 GEO-AUDIT-REPORT.md 是否采用标准标题格式 |
| 字体未加载 | PDF 离线渲染;系统字体会作为回退字体使用,这是预期行为 |
评论
支持 Markdown