
【免费下载链接】geo-seo-claudeGEO-first SEO skill for Claude Code. Comprehensive AI search optimization for any website — citability scoring, AI crawler analysis, brand authority, schema markup, platform-specific optimization, and PDF reports. If you want learn how to sell this to real businesses, check out the skool community项目地址https://gitcode.com/gh_mirrors/ge/geo-seo-claude点击查看免费下载本指南深入讲解 geo-seo-claude 仓库中geo-report-pdf技能v2.0.0的完整实现如何把/geo audit生成的GEO-AUDIT-REPORT.md通过 pandoc Chrome Headless 两条命令转换成带封面、彩色分数表、严重级别标注和 90 天路线图的客户端级 PDF。读完本文你将掌握该流水线的每个命令行参数、模板注入机制、源码级定制入口与常见故障排查方法可直接在你的 Claude Code 环境中复现整套交付流程。技能定位与上游依赖geo-report-pdf是整个 geo-seo-claude 技能包的最后一公里交付环节。它不负责审计只负责渲染将审计产出的 Markdown 报告包装成一份排版专业、可直接发给客户的 PDF 文档。其输入链路如下/geo audit url执行完整审计输出GEO-AUDIT-REPORT.md详见 命令参考 中/geo audit一节可选/geo report可进一步聚合为面向企业主的GEO-CLIENT-REPORT.md模板逻辑同样覆盖该格式见 geo-report 技能geo-report-pdf读取当前目录下的审计报告执行 pandoc 与 Chrome 两条命令产出GEO-REPORT.pdf。技能元数据声明了其能力边界allowed-tools: Read, Grep, Glob, Bash, Write也就是说整个 PDF 生成过程完全由 Bash 命令驱动不需要任何额外 Python 依赖。原文档明确强调No Python dependencies. No ReportLab. No JSON data wrangling.这是该技能 v2.0.0 的关键设计决策——相比脚本式生成它把排版工作交给 pandoc 模板与浏览器打印引擎。需要说明的一个仓库内部差异仓库 命令参考 与 技能清单 中/geo report-pdf的描述仍指向一个基于 ReportLab 的旧式generate_pdf_report.py脚本而当前skills/geo-report-pdf/SKILL.mdv2.0.0与仓库 templates 目录下的实际资源geo-report-template.html、geo-report-style.css表明现行实现是 pandoc Chrome Headless 流水线。本文以技能文件本身和 templates 目录中的真实模板为准。环境依赖两条命令零 Python 依赖前置条件非常轻量只有两项依赖安装方式说明pandocbrew install pandocMarkdown → HTML 转换器负责注入模板与 CSSGoogle ChromemacOS 默认路径必须以/Applications/Google Chrome.app/存在用于 Headless 打印 HTML 为 PDFChrome 是唯一的浏览器打印引擎因此技能对 Chrome 的安装位置做了硬性路径约定见下方 Step 4 的命令。在 Windows/Linux 环境下需要将命令中的 Chrome 路径替换为对应平台的安装路径。模板与样式表的部署位置由 install.sh 保证安装脚本将仓库 templates/ 目录整体复制到~/.claude/skills/geo/templates/并在安装验证阶段显式检查geo-report-template.html是否存在见 install.sh 与安装校验逻辑。因此技能文件中引用的路径~/.claude/skills/geo/templates/geo-report-template.html与geo-report-style.css在安装完成后必然存在若 templates 缺失安装脚本会直接警告/geo report-pdfwill not work。工作原理Markdown → HTML → PDF 的四步管线整个技能的核心逻辑浓缩为四步全部在当前目录完成不产生中间态 JSON读取当前目录下的GEO-AUDIT-REPORT.md由/geo audit生成从报告头部提取封面元数据品牌名、域名、GEO 分数、日期、经营地点等运行pandoc配合仓库自带的 HTML 模板与 CSS生成自包含的GEO-REPORT.html运行 Chrome Headless 将 HTML 打印为GEO-REPORT.pdf。其中第 3 步的模板geo-report-template.html承担了三类注入工作全出血深海军蓝封面区右上角带圆形 GEO 分数徽章分区封面元数据日期、业务类型、经营地点、CMS 平台仅在元数据存在时渲染打印前在 Chrome 内执行的 JavaScript对分数单元格按阈值着色对发现findings章节按严重级别打上视觉标签。换言之颜色编码不是 pandoc 生成的静态样式而是浏览器打印前由模板内嵌脚本动态计算的——这是理解哪里改阈值的关键详见下文源码级剖析。五步工作流详解Step 1检查审计报告是否存在技能的第一步是检查当前目录下是否存在GEO-AUDIT-REPORT.md。如果缺失应向用户说明需先执行/geo audit url。也可以理解为该技能不主动抓取网站它只消费既有审计结果。Step 2从报告头部提取封面元数据技能读取GEO-AUDIT-REPORT.md顶部按标准头部格式逐字段提取。完整字段映射表如下字段在报告中的位置brand_name第一个 H1 标题在 GEO Audit Report: 之后domain第二行加粗文本例如**Domain:** alexamediasolutions.comgeo_score匹配## Overall GEO Score: XX / 100的行score_label同一行中分数之后的单词如 Poor、Fair、Gooddate**Audit Date:**行business_type**Business Type:**行locations**Locations:**行platform**CMS:**行这些字段随后作为--metadata键值对传给 pandoc由模板中的$if()$...$else$...$endif$变量机制消费。字段在报告中缺失时直接省略对应的--metadata标志即可模板内置了安全的默认回退例如封面标题回退为 GEO Audit Report见 模板源码 的变量条件渲染逻辑。仓库中 electron-srl.com 示例审计数据 展示了同类字段brand_name、geo_score、scores、platforms、findings 等在实际审计流程中的形态。Step 3运行 pandoc 生成 HTMLpandoc 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 titleGEO Audit Report — brand_name \ --metadata brand_namebrand_name \ --metadata domaindomain \ --metadata geo_scoregeo_score \ --metadata score_labelscore_label \ --metadata datedate \ --metadata business_typebusiness_type \ --metadata locationslocations \ --metadata platformplatform \ -o GEO-REPORT.html各标志的作用与选择理由标志作用--to html5指定输出为 HTML5兼容现代浏览器打印--standalone输出完整 HTML 文档含head而非片段--embed-resources将 CSS/字体等资源内嵌进单个 HTML 文件保证离线可用--template指定 pandoc 模板模板中的$title$、$body$、$if(brand_name)$等变量被替换为元数据--css指定打印样式表--metadata ...注入封面元数据变量供模板条件渲染-o GEO-REPORT.html输出文件注意--metadata title与--metadata brand_name是两回事title填充 HTMLtitle同时也被模板页脚逻辑复用brand_name决定封面标题与页脚落款。技能强调字段未找到时省略对应 flag让模板走默认值路径——尤其是封面元数据绝不能填占位样例值否则会把错误信息印上客户的报告封面。Step 4运行 Chrome Headless 打印 PDF/Applications/Google Chrome.app/Contents/MacOS/Google Chrome \ --headlessnew \ --disable-gpu \ --no-sandbox \ --print-to-pdf$(pwd)/GEO-REPORT.pdf \ --print-to-pdf-no-header \ --no-pdf-header-footer \ --virtual-time-budget5000 \ file://$(pwd)/GEO-REPORT.html标志逐项说明标志作用与注意事项--headlessnew使用新版 Headless 模式打印行为更贴近真实 Chrome--disable-gpu无 GPU 环境下禁用硬件加速避免渲染异常--no-sandbox在受限环境CI/容器中禁用沙箱--print-to-pdf指定 PDF 输出路径使用$(pwd)展开为绝对路径--print-to-pdf-no-header/--no-pdf-header-footer去掉浏览器默认页眉页脚改用 CSSpage控制的定制页脚品牌名 页码--virtual-time-budget5000给页面 5 秒虚拟时间去执行模板内嵌 JavaScript确保分数着色与严重级别标签完成后再打印最后参数以file://协议打开本地 HTML--virtual-time-budget是PDF 空白故障的关键旋钮——若 JS 尚未执行完毕就打印动态样式不会生效。Step 5完成与交付生成完成后向用户报告GEO-REPORT.pdf已生成于当前目录文件大小可选运行open GEO-REPORT.pdf预览。PDF 成品包含的内容生成的 PDF 具备以下成品级特征均来自技能文档并结合模板源码印证封面页深海军蓝渐变背景、品牌名、域名、按分数着色的 GEO 分数徽章、审计日期、业务类型、经营地点、CMS 平台。徽章在模板中是一个 108×108px 的圆形元素见 样式表分数表格包含XX/100格式的单元格按阈值着色——≥80 绿色、≥65 蓝色、≥50 琥珀色、≥35 橙色、35 红色。该逻辑由模板内嵌脚本scoreColor()计算见 模板脚本同时给所在表格行加左侧彩色边框发现章节h3标题含 Critical / High / Medium / Low 关键词时其后续段落/列表会被包裹进对应严重级别的彩色左边框提示块红 / 橙 / 黄 / 绿见 严重级别样式章节自动分页High Priority、90-Day Roadmap、Component Score Summary、Generated Schema 等主要章节自动另起新页。分页由脚本维护的breakBefore关键词数组触发见 模板脚本配合样式表中的h2.section-break { page-break-before: always; }样式表实现代码块JSON Schema 模板以深色主题等宽字体渲染pre背景#0f172a、JetBrains Mono 字体栈页脚品牌名 · GEO Audit · 日期 页码由 CSSpage的bottom-center与bottom-right区域控制样式表。源码级剖析模板注入机制的三处关键逻辑深入 geo-report-template.html 可以看到三块决定 PDF 视觉呈现的核心代码理解它们等于掌握全部定制入口。1. 分数着色函数scoreColor()function scoreColor(n) { if (n 80) return excellent; if (n 65) return good; if (n 50) return fair; if (n 35) return poor; return critical; }脚本遍历所有td用正则/^(\d{1,3})\/100$/匹配纯分数单元格为单元格与所在行同时添加score-*类。样式表为五档分别定义文字颜色与行首边框色。阈值调整只需改这个函数颜色本身在 CSS 中定义。2. 严重级别检测脚本遍历所有h3将标题小写后按关键词匹配critical、high、medium、low命中后把该标题之后的兄弟节点段落/列表直到下一个标题为止逐一套上finding-severity类。也就是说报告的发现章节只要在 H3 标题中带上严重级别词排版就会自动生成彩色提示块无需人工干预。3. 章节分页数组breakBeforevar breakBefore [ high priority, medium priority, generated schema, 90-day roadmap, component score ];凡是 H2 标题文本包含以上任一关键词该章节就会以新页开始。想在 PDF 中让其他章节分页只需往这个数组追加关键词。4. 页脚的品牌安全设计模板头部内嵌了一段page规则页脚内容按footer_text→brand_name→ 中性回退 GEO Audit 的优先级解析注释明确说明这是每个报告按客户覆盖的机制避免跨客户串名。样式表中仅保留中性回退值content: GEO Audit;样式表真正的客户名由模板按元数据注入。定制指南改哪里、怎么改定制目标修改位置颜色 / 字体 / 字号 / 页边距编辑~/.claude/skills/geo/templates/geo-report-style.css变量集中在:root段如--navy、--danger、--success页面尺寸在page { size: A4; margin: 18mm 18mm 22mm 18mm; }封面布局 / 元数据块 / 页脚覆盖编辑~/.claude/skills/geo/templates/geo-report-template.html的#cover-section与style块分数颜色阈值修改模板script块中的scoreColor()函数哪些章节自动分页修改模板script块中的breakBefore数组由于--embed-resources会把样式内嵌进最终 HTML修改模板后重新跑 Step 3–4 即可生效无需清缓存。注意这些文件位于安装目录~/.claude/skills/geo/templates/修改后不会被仓库更新覆盖属持久化定制。故障排查速查表问题解决方案pandoc: command not found执行brew install pandocChrome 未找到检查路径/Applications/Google Chrome.app/Contents/MacOS/Google Chrome是否存在PDF 为空白 / 空文件将--virtual-time-budget提高到 8000给 JS 更多执行时间封面元数据缺失检查GEO-AUDIT-REPORT.md是否符合标准头部格式H1 标题、**Domain:**等字段行字体未加载PDF 离线渲染系统字体作为回退——这是预期行为与整个技能包的协同及使用建议审计先行PDF 是审计链路的终点务必先保证/geo audit产出标准格式的GEO-AUDIT-REPORT.md若交付对象是业务决策者可先跑/geo report生成面向企业主的GEO-CLIENT-REPORT.md再转 PDF。报告结构约定模板的严重级别检测与分页逻辑依赖报告遵循约定格式H3 含严重级别词、H2 含90-day roadmap/component score等关键词生成报告时保持这些章节命名即可自动获得全套排版。适用场景当交付物需要直接邮件发送给客户、且客户期待一份排版精美的文档而非 Markdown 文件时使用/geo report-pdf见 命令参考 的/geo report-pdf小节同时可配合/geo compare的月度增量报告形成审计 → 提案 → 交付 → 月度复盘的完整服务闭环。无图可选该技能生成的 PDF 本身即最终交付物流程中无截图或图表类中间产物因此本指南不引入仓库 assets 中的项目宣传图以上所有排版细节均以真实模板源码为准可直接打开 geo-report-template.html 与 geo-report-style.css 逐一核对。赞分享【免费下载链接】geo-seo-claudeGEO-first SEO skill for Claude Code. Comprehensive AI search optimization for any website — citability scoring, AI crawler analysis, brand authority, schema markup, platform-specific optimization, and PDF reports. If you want learn how to sell this to real businesses, check out the skool community项目地址https://gitcode.com/gh_mirrors/ge/geo-seo-claude点击查看免费下载相关推荐geo-seo-claude 白标品牌配置指南用一份 brand.json 为 GEO 审计报告一键换肤geo seo claude 白标品牌配置指南用一份 brand.json 为 GEO 审计报告一键换肤 本指南讲解 geo seo claude 开源仓库中用 geo-prospect 构建 GEO 代理销售管线geo-seo-claude 的 CRM-lite 实战指南用 geo prospect 构建 GEO 代理销售管线geo seo claude 的 CRM lite 实战指南 GEOGenerative Enginclaude-seo 本地搜索实战基于 Haversine 的 Geo-Grid 排名追踪与 SoLV 热力图分析claude seo 本地搜索实战基于 Haversine 的 Geo Grid 排名追踪与 SoLV 热力图分析 导读 本文深入解析 claude seo上一篇HTML to Figma部署与构建指南从源码到生产环境的完整流程下一篇Windows-imaging-tools新手入门5分钟搭建Windows云镜像生成环境创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考