2026
年 5 月, Anthropic Claude Code 团队成员
@trq212
发了一条引发广泛共鸣的推文:他们团队已经不再用 Markdown 写内部文档, 全面转向 HTML。
理由极其简单 —— Markdown 方便写, 但读者从未因此受益。渲染效果受限于平台, 截图难看,
跨平台需要反复重排。HTML 是唯一能让 作者和读者 同时满意的格式。
HTML Anything 项目正是在这一洞察下诞生的。它不是又一个"美化 Markdown"的工具,
而是从根本上重构了创作流程:你提供原始内容(Markdown、CSV、Excel、JSON、甚至纯文本草稿),
本地 AI Agent 在几秒内生成一份可直接交付的 HTML。关键区别在于 "可直接交付" ——
生成结束的那一刻, 产物就是读者实际看到的效果, 无需二次编辑。
§
01 · 本地 Agent 复用
我们不发布 Agent, 你装的就够好
启动时扫描 PATH(含 GUI 启动会遗漏的 ~/.local/bin、~/.bun/bin、/opt/homebrew/bin),
自动识别已安装的 Claude Code / Cursor Agent / Codex / Gemini CLI / Copilot CLI / OpenCode / Qwen Coder / Aider。
每个 CLI 仅需一个轻量 adapter, 在 next/src/lib/agents/argv.ts 中集中维护。
child_process.spawn
JSON-line 协议
02 · Skill 即文件夹
Skills 是文件夹, 不是插件
遵循 Claude Code 的 SKILL.md 约定 —— 每个 Skill 就是一个文件夹(SKILL.md + assets/ + references/ + example.html)。
Drop 进去, 重启 dev server, picker 立即可见。不需要注册中心、插件 API 或配置文件。
deck-guizang-editorial
直接从 op7418/guizang-ppt-skill vendor 而来, 保留原始 LICENSE 与署名。
SKILL.md 协议
零配置发现
03 · 硬约束对抗 AI-Slop
强制约束让模型无法随意发挥
每个模板硬编码了设计底线:CJK 优先字体栈(Noto Sans/Serif SC + Inter/Manrope),
8px 基线网格(所有间距、行高、字号均为 8 的倍数), 颜色对比度 ≥ 4.5,
禁用纯黑纯白, 必须使用用户提供的真实数据而非 lorem ipsum。
这套反 AI-slop 纪律源自 alchaincyf/huashu-design 的 Junior-Designer 模式。
8px 基线网格
WCAG AA 对比度
04 · 流式渲染
看着 AI 现场画 —— 不满意随时打断
POST /api/convert 走 SSE(Server-Sent Events)。Agent stdout 的 JSON-line 流式抽出 text delta,
以 SSE event 推送到客户端, 逐行追加到 iframe srcdoc。体验等同于在终端看 AI 写代码,
但最终产物是精美的 HTML 而非 Markdown。支持中途打断, 不浪费完整生成的 Token。
SSE Streaming
iframe srcdoc
05 · 一键导出零重排
从生成到发布, 一次粘贴完成
juice 内联 CSS → 微信公众号编辑器粘贴后样式完整保留。modern-screenshot 渲染 iframe 为 2× PNG
→ ClipboardItem → 直接拖入推特 / 微博 / 小红书。<mjx-container> → data-eeimg LaTeX 占位
→ 知乎自动渲染公式。单文件 .html / 高 DPI .png 下载。所有路径均零二次排版。
juice CSS inlining
modern-screenshot
06 · 沙箱隔离
iframe sandbox = 安全 + 隔离 + 真实调试体验
用户输出的 HTML 始终在 <iframe sandbox="allow-scripts allow-same-origin">
中渲染。Tailwind CDN / Google Fonts / 自定义动效照常执行, 但 Cookie 和 localStorage
被限制在 iframe 专属 origin 内, 宿主页面永不污染。打开 DevTools 只看到 iframe DOM,
调试体验与独立 HTML 文件完全一致。
Content Security
Origin Isolation
HTML 是面向人的最终形态。Markdown 只是一段写作中的中间过程。
当你按下 ⌘+Enter 之后, AI 应该给出的不是又一个草稿, 而是读者真正看到的东西。
—— HTML Anything 项目哲学, README 原文
系统架构
四层数据流, 全链路闭环
🖥️ Browser (Next.js 16)
编辑器 / 上传
顶栏 Agent Picker
模板 Picker + 筛选
iframe 实时预览
🔀 Server Routes
GET /api/agents
扫描 PATH 检测 CLI
POST /api/convert
SSE 流式调用 Agent
🤖 Local Agent CLI
claude / codex / cursor-agent
gemini / copilot / opencode
qwen / aider
→ 复用已登录 Session
📤 Export Pipeline
juice → 微信公众号
modern-screenshot → PNG
ClipboardItem → 推特
data-eeimg → 知乎
§
Skill 生态矩阵
75 套模板 × 9 类场景
| 模式 |
代表 Skill |
适用场景 |
输出规格 |
| prototype |
saas-landing · dashboard · mobile-app · article-magazine · resume-modern |
SaaS 落地页 · 管理后台 · App 原型 · 博客 · 简历 |
1440×900 桌面 / A4 / iPhone 15 Pro |
| deck |
swiss-international · guizang-editorial · hermes-cyber · xhs-pastel · pitch |
Keynote 演讲 · 投资人路演 · 课程课件 · 小红书图文 |
16:9 / 1920×1080, 10-22 套锁死版面 |
| frame |
liquid-bg-hero · data-chart-nyt · glitch-title · light-leak-cinema · logo-outro |
视频开场 · 数据动图 · 故障艺术 · 品牌片尾 |
1920×1080, Hyperframes 兼容 |
| social |
x-post-card · spotify-card · xiaohongshu · carousel |
推特卡片 · 音乐分享 · 小红书图文 · 轮播广告 |
1600×900 / 1080×1080 |
| office |
pm-spec · eng-runbook · finance-report · invoice · team-okrs · kanban |
PM 规格书 · 事故报告 · 财务报表 · 发票 · OKR |
A4 打印级 |
| doc |
kami-parchment · blog-post · docs-page · digital-eguide |
长文阅读 · 技术文档 · 电子指南 · 读书笔记 |
暖羊皮纸 editorial 风格 |
01 · 微信公众号
CSS 内联直出
juice 将全部样式内联为 style 属性, 配合 data-tool 标记, 粘贴到公众号编辑器后样式完整保留, 零二次排版。
02 · X / 微博 / 小红书
高清 PNG 截图
modern-screenshot 将 iframe 渲染为 2× Retina PNG, 直接写入 ClipboardItem, 拖入推文或图床即可发布。
03 · 知乎
公式自动转换
<mjx-container> 自动替换为 data-eeimg LaTeX 图片占位, 上传知乎后公式自动渲染。
04 · 下载 .html
自包含单文件
所有资源内联, 一个 HTML 文件打天下。双击即可在任意浏览器打开, 离线可用, 任意分享。
05 · 下载 .png
高清位图导出
iframe 渲染为高 DPI 位图, 适合嵌入 Notion、飞书、PPT 或直接发送。
06 · 更多平台
扩展进行中
微信视频号、抖音字幕、Notion、Linear、Telegraph、RSS 等渠道适配正在开发中。
Markdown vs HTML:为什么现在切换?
| 维度 |
Markdown |
HTML |
| 写给谁? |
给作者爽 |
给读者爽 ✓ |
| 排版自由度 |
受平台渲染器限制 ✗ |
完全由你控制 ✓ |
| 截图分享 |
被默认主题压扁的灰色方块 ✗ |
壁纸级精美图片 ✓ |
| 跨平台发布 |
5 个平台调 5 次 ✗ |
HTML + 内联 CSS,一次粘贴 ✓ |
| AI 生成成本 |
低 ✓ |
AI 已把 30 分钟降到 30 秒 ✓ |
| 微信兼容 |
需要手动重排 ✗ |
juice 内联后直接粘贴 ✓ |