全部技能 / 设计 / saas-landing
设计 · nexu-io/html-anything

saas-landing

单页 SaaS 落地页, 含 hero/features/social-proof/pricing/CTA

风险提醒:绿色 · 放心使用AI 侦查报告
作者 nexu-ioGitHub nexu-io/html-anything ↗Stars 8827许可 Apache-2.0(仓库根 LICENSE = Apache License 2.0;GitHub API spdx_id=Apache-2.0)commit 553ed98c28
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

本模板是「文件夹即模板」结构里的一份纯数据:SKILL.md 用 YAML frontmatter 供选择器使用,正文是给 agent 的版式指令;仓库不为单个模板写任何代码,新增模板=新增一个文件夹。

next/src/lib/templates/loader.ts
SKILL.md — frontmatter (id, scenario, tags, …) + prompt body
注:loader.ts 在文件头注释里写明目录约定;frontmatter 由进程内正则解析(无 YAML 依赖),正文原样作为 prompt body 取出,前端不会拿到(「Body is excluded so we can return the entire registry in one cheap fetch without shipping prompt text to the browser.」)。

运行时由宿主把本模板正文夹在共享设计指令与用户内容之间拼成一次 prompt —— 模板的「智能」全在这段自然语言里,没有可执行代码。

next/src/lib/templates/shared.ts
return `${SHARED_DESIGN_DIRECTIVES} ${opts.body.trim()}
注:assemblePrompt 的返回是「共享设计指令 + 模板正文 + 【输入格式】+【用户内容】」。共享段(同一文件 SHARED_DESIGN_DIRECTIVES)负责单文件 HTML、Tailwind/字体 CDN、内容驱动数量、禁止使用文件系统工具等硬性要求,对所有模板一致,不是本模板自带。

宿主的 /api/convert 载入该模板后把这些文字交给本地已登录的 coding-agent CLI,只把 stdout 当 HTML 流式回收;模板本身不发网络、不读凭证、不写文件。

next/src/app/api/convert/route.ts
prompt = assemblePrompt({ body: skill.body, content, format });
注:同一 route 随后调用 invokeAgent({ … }) 拉起 CLI(claude / codex / cursor-agent 等,由宿主 PATH 探测);与其配套的共享指令还明写「**禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**」。

随模板附带的 example.html 是「预渲染示例」,由预览接口原样吐出、进入选择器与画廊的 iframe —— 它决定模板卡片有没有可视预览,不参与内容生成。

next/src/app/api/templates/[id]/preview/route.ts
Returns the skill's `example.html` verbatim so it can be loaded into an
注:预览按 skill id 缓存(Cache-Control: public, max-age=300);前端在预览面板里给 iframe 加了 sandbox="allow-scripts allow-same-origin"(宿主侧实现,本模板不可控)。

frontmatter 的字段被逐项映射成选择器元数据(featured 决定全量排序、recommended 进顶部「★ 推荐」组、example_* 生成示例卡文案),并决定它在分类/场景过滤里出现在哪里。

next/src/lib/templates/loader.ts
if (typeof fm.featured === "number") meta.featured = fm.featured;
注:fmToMeta 同时把 category/scenario/aspectHint/tags 直接搬到 SkillMeta;example 块在 example_id 或 example.{md,html} 存在时生成(id/name/format/tagline/desc + 可选 source)。这些字段只影响展示与排序,不影响生成行为。

该模板的生成能力全部由它自己的正文兑现:saas-landing/SKILL.md 只描述版面、配色、字体与内容纪律,没有一句让 agent 去跑工具、取接口或读外部数据。

next/src/lib/templates/skills/saas-landing/SKILL.md
【模板: SaaS Landing】
注:skill 目录共 2–3 个文件(SKILL.md + example.html[+ example.md]),无 scripts/references/数据文件;example.html 只是同一模板的人工示例产物(见 internal_assets)。

正文把落地页拆成固定的 section 清单,并规定任务就是把用户内容映射进这些槽位。

next/src/lib/templates/skills/saas-landing/SKILL.md
【意图】完整的 SaaS 产品落地页, 把用户内容映射到标准 sections。

每个 section 的构成也写死:Hero 要有大标题 + 副标 + 双 CTA + 可视化占位,Pricing 要 2-3 档且推荐档高亮。

next/src/lib/templates/skills/saas-landing/SKILL.md
- Hero (大标题 + 副标 + 双 CTA + 可视化占位)

风格指令是现代 SaaS 视觉语言(大字号 / 柔和渐变 / glassmorphism 卡片 / 滚动入场动画),属主观描述而非像素级规范。

next/src/lib/templates/skills/saas-landing/SKILL.md
- 现代 SaaS 风: 大字号, 柔和渐变, glassmorphism 卡片, 滚动入场动画

响应式是硬要求:至少处理 md: 断点、移动端单栏。

next/src/lib/templates/skills/saas-landing/SKILL.md
- 至少处理 `md:` 断点, 移动端单栏

示例产物实证了这套结构(nav → hero → features → logo wall → pricing → closing → footer),整份零外链零 JS。

next/src/lib/templates/skills/saas-landing/example.html
<section class="pricing wrap" id="pricing" data-od-id="pricing">

2核心能力

01标准 SaaS 落地页信息架构(含 logo wall 社会认证段)
02Hero 区结构(大标题 + 副标 + 双 CTA + 可视化占位)
03特性区(3-6 个特性卡:icon + 标题 + 描述)
04流程区(3 步:数字 + 标题 + 描述)
05定价区(2-3 档,推荐档高亮)
06FAQ 手风琴(details/summary,无 JS 实现)
07示例产物是可直接双击打开的完整单页(含 footer)
08MD 断点响应式 + 现代 SaaS 视觉语言

3外部依赖

类型依赖
cli本地 coding-agent CLI(宿主提供,模板自身不调用)

4风险提醒 风险提醒:绿色 · 放心使用

风险提醒:绿色 · 放心使用
  • 示例与规格不完全对齐(缺 FAQ 与 How-it-works) — 见 verification.second_pass 的 discrepancy 项;以 example.html 当验收基准会少两段。
  • 定价与客户 logo 等文案无事实校验 — 正文只规定档位与视觉,不核对价格/商标使用;示例里直接出现 Anthropic、Stripe、Linear、Vercel、Cursor 等品牌名。
  • 风格词主观,产出稳定性弱于锁版面模板 — "glassmorphism 卡片"、"滚动入场动画" 在不同模型上的兑现度差异大;要稳定复现需自行补像素级规范。
风险提醒:绿色,放心使用。判级对象=本 skill 目录(SKILL.md + example.html[+ example.md]):无自带脚本、无凭证读取、无写盘指令、运行时不要求任何外部端点——正文只给版面/配色/字体族名与内容纪律,字族名不构成请求。目录内实际出现的外链全部是「产物示例」性质,逐条列出自证:零命中——saas-landing 目录内两个文件(SKILL.md / example.html)均无任何 http(s) 字面量:不引 CDN、不引 webfont、无外链图片(字体走系统栈,仅一处 ui-monospace)。 按批4 口径(端点仅见于产物示例/出处标注 → green)不影响档位。宿主侧行为(loader.ts 读盘、assemblePrompt 拼 prompt、agents/invoke.ts 拉起本地 CLI、预览 iframe 的 sandbox="allow-scripts allow-same-origin")写在 verdict.risks,不作为档位依据。

5第二遍独立确认

  • [ok] skill 目录的脚本 / 网络 / 凭证 / 写盘面 — 目录仅 SKILL.md / example.html 2 个文件,无 scripts/references/数据目录;token 扫描(curl / wget / fetch / exec / spawn / process.env / API_KEY / token / secret / write / save / delete)在该目录的 SKILL.md 中零命中;无自带可执行脚本。
  • [ok] 运行时链路复核 — 重读 loader.ts / shared.ts / app/api/convert/route.ts / app/api/templates/[id]/preview/route.ts:模板正文只作为 prompt body 被 assemblePrompt 拼装,宿主 spawn 本地 CLI 并捕获 stdout;模板不参与任何执行。
  • [ok] commit 与元数据 — 工作副本 git HEAD = 553ed98c283f9c0f489902d035416a972d6a9699(=任务表 pin 的 full 40 位);GitHub API nexu-io/html-anything:stars 8827、license spdx Apache-2.0、pushed_at 2026-09-15T03:36:24Z(与本地 HEAD 提交时间 2026-09-15 11:36:24 +0800 一致)。
  • [discrepancy] README 与源码的 frontmatter schema 漂移(仓库级) — README 第 213 / 217 / 468 行称模板 frontmatter 必须含 mode · scenario · surface · preview · design_system;但在 next/src/lib/templates/skills/ 下 '^mode:'、'^surface:'、'^design_system:' 全部零命中,实际字段是 category / scenario / aspect_hint / featured / recommended + example_*(loader.ts 的 SkillFrontmatter)。文档滞后于代码,不影响本模板运行,但照 README 新写模板会踩空。
  • [ok] frontmatter 元数据映射 — loader.ts fmToMeta 逐字段映射 zhName / enName / emoji / description / category / scenario / aspectHint / tags + featured / recommended + example 卡;本模板取自 SKILL.md 的实际取值与之相符。
  • [discrepancy] example.html 与 SKILL.md 的一致性(FAQ / How-it-works 缺席) — 正文列了 8 段,其中 '- How it works (3 步流程, 数字 + 标题 + 描述)' 与 '- FAQ (details/summary 手风琴)' 在 example.html 中不存在:示例只有 nav / hero / features / proof(logo wall) / pricing / closing / footer,全文件 'details'、'summary' 零命中。示例是「示意」而非严格实现,拿它当验收基准会少看到两段。
  • [ok] 端点扫描(目录内) — saas-landing 目录 2 个文件 http(s) 字面量零命中;无 <script>、无 <link rel="stylesheet">,是 9 个模板里依赖面最干净的。
  • [discrepancy] 「glassmorphism / 滚动入场动画」是否在示例中兑现 — 正文要求 "- 现代 SaaS 风: 大字号, 柔和渐变, glassmorphism 卡片, 滚动入场动画",示例有柔和配色与大字号(.hero h1 用 clamp(44px, 6vw, 76px)),但无 backdrop-filter 类玻璃卡片、无滚动入场动画。规格比示例更"先进"。

6结论

  • 把落地页写成可枚举的 section 契约,模型只需把用户内容映射进槽位
  • 每段都给了要素清单(3-6 特性卡 / 2-3 定价档),避免模型自创页面骨架
  • 响应式是明文要求(md: 断点 + 移动端单栏),产出默认可用
  • 示例产物零外链零 JS,预览与转发面最干净(同仓三张社媒卡都引了 Tailwind CDN)
  • FAQ 用 details/summary 而非 JS,保持单文件可双击运行
  • 适合:适合把一个产品的卖点/特性/定价快速落成单页营销页;也适合当作「标准 SaaS 页面骨架」的提示词范本,或作为 prototype 面的默认入口。
    不适合:不适合完整建站(定价页 + 文档 + 博客多页)、不适合要求严格品牌规范(只给风格形容词,未给设计 token),也不适合法务敏感的定价/客户背书声明——它不校验价格与商标合规。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-15
    方式 A · 人下载镜像包下载 saas-landing.tar.gz
    sha256: 4f4424030c2a6b97…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit 553ed98c28;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库nexu-io / nexu-io/html-anything
    Stars8827
    最近推送2026-09-15
    本 skill commit553ed98c28
    许可Apache-2.0(仓库根 LICENSE = Apache License 2.0;GitHub API spdx_id=Apache-2.0)
    本站信息
    收录日期2026-09-06
    分类设计
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近