把任意素材,编辑成一篇值得分享的文章

beautiful-article 封面:一堆散乱的原始素材(网页、PDF、文档、便签)沿流动的路径汇聚、转化成右侧一本排版精致的书

你手里有一堆想分享的东西:一个讲得很好的网页、一份塞满干货的 PDF、一篇自己写的长文。可它们读起来累、发出去丑,别人点开就想关。beautiful-article 把这件事当”编辑活”来干 —— 先把素材读懂、拆解、重排,再设计成一份离线能打开、随手能分享的精美 HTML 文章。它的注意力永远在”文章”本身,而不是”网页”。


一分钟看懂

  • 它是什么:一个编辑型 harness Skill —— 把任意素材编辑成比原文更易读、更好分享的精美文章。
  • 为谁而做:手里有 URL / PDF / 长文、想做成可传播网页文章的开发者与创作者。
  • 怎么用:一行 npx skills add 装上,喂素材,它带你走完抽取 → 规划 → 生成 → 交付。
  • 你说了算:3 个硬 checkpoint 逐项确认文章类型 / 主题 / 版式 / 配图 / 封面,AI 推荐但绝不替你静默做主。
  • 交付什么:一份自包含的单文件 HTML(CSS + JS 内联,断网也能打开),可选导出 PDF。

01 · 它到底是什么

把一段素材丢给一个通用 AI,让它”做成网页”,你多半会拿到一个:能跑、但没人想读第二遍的页面 —— 信息按原样堆着,标题是加粗的第一句话,配色是模型的默认审美,读起来跟原文一样累,只是换了个壳。beautiful-article 想解决的正是这件事。

它把自己定位成一个编辑型 harness Skill:不是”套个模板生成网页”,而是像一位真正的编辑那样工作 —— 先把素材通读、理解,判断哪些是主干、哪些可以删,为它选一种合适的文章类型和视觉气质,再逐节写作、逐节校对,最后交付一份比原文更值得读的文章。所谓 harness,是说它不是一次性把活儿全干完,而是走一条有章法的流程,并在关键处停下来问你的意见。

它的第一性原理:首先是一篇文章。

注意力永远在”文章”本身 —— 更好的阅读、更好的节奏、更好的美学。交付物是一份自包含的 HTML 文件(可选 PDF),但那只是交付细节,不是目标。

这条原则听起来朴素,却决定了它和”网页生成器”的根本差别。下面这张对照,是同一份素材在两种思路下的不同命运:

同一份素材,两种命运:普通网页生成 vs beautiful-article 编辑成文章

换句话说,通用生成器给你的是”把文字放进网页”,beautiful-article 给你的是”把文字编辑成一篇文章,再顺手做成网页”。它做的减法和加法 —— 删掉旁枝、保住主干、补上视觉、控住节奏 —— 才是让成品”值得读”的地方。


02 · 六步工作流,与三次交给你拍板

beautiful-article 不是一次性把素材吐成网页,而是走一条小型 harness 流程。它把”写文章”这件事拆成六步:先把素材抽成统一的 Markdown,再形成编辑方案;确认之后先做出首屏样张定调,再逐节生成;最后终审、修复、交付。整条线里,有三个硬 checkpoint 必须停下来,把决定权交到你手里 —— AI 可以推荐,但绝不替你静默选择。

为什么非得停这三处?因为一篇文章的”编辑判断”只能由人来下:选什么类型、保留多少信息、用哪种版式气质、首屏调性对不对、最终交付什么格式。这三个暂停点,正是 beautiful-article 区别于普通生成器的关键。

从素材到文章的六步流程与三个硬 checkpoint

上图把整条流程压缩成一条时间线。前两个步骤属于”编辑准备”:Source 把任意输入统一成 Markdown,Plan 决定这篇文章该怎么写、为谁写、删什么。接下来进入”双确认” —— 先确认方案,再做首屏样张给你看效果;你点头之后,才进入完整生成。终审与第三次确认保证交付物符合预期。

Checkpoint 确认内容 为什么必须停在这里
Checkpoint 1 · 方案确认 文章类型(含信息保留比例)、主题、版式宽度、配图策略、封面。逐项独立确认,AI 推荐但不替用户选。 这些选择决定文章”怎么被读”:是 100% 归档长文,还是 50% 决策摘要?是书卷气的 press,还是海报感的 bayer?版式宽度和配图策略也必须在动笔前定调。
Checkpoint 2 · 首屏验收 首屏样张(Hero + Lead + 第一节 + 一个代表性视觉块)的观感,以及后续开发模式:单 Agent 顺序推进,或多 Agent 并行生成。 首屏定下全篇的”视觉语气”。若此时不纠偏,后面每一节都会沿用错误基调。选择开发模式则是在质量与速度之间做权衡。
Checkpoint 3 · 交付确认 导出 HTML(可选 PDF)作为最终交付物。 交付格式直接决定别人怎么使用:HTML 是自包含网页,可离线打开、随处分享;PDF 则适合打印与归档。需由人最终拍板。

注意,Checkpoint 1 的确认是逐项独立的,不是一张”总表让你打勾”。文章类型和保留比例、主题气质、版式宽度、配图策略、封面是否启用 —— 每一项都可以单独改。这种独立性防止了 AI 用”推荐方案”的名义悄悄替你做了打包决策。

流程背后的原则:把编辑判断权交给人。

beautiful-article 可以替你抽取、规划、写作、排版、修复,但它不能替你决定”这篇文章应该长什么样”。三个硬 checkpoint 不是流程装饰,而是把”你觉得对不对”这个环节真正嵌入到生成路径里。

说到底,这条流程的迷人之处在于:它把 AI 的生成能力当成一支高效的编辑团队,而把你当成主编。AI 做粗剪、做排版、做校对;你来拍板方向、气质和交付形态。


03 · 10 种文章类型:按你要的「精修程度」来选

上一节走完了六步流程。而流程里你要拍板的第一件事,既不是选颜色也不是排版式,而是先回答一个更根本的问题:这份素材,你想要多「精修」? beautiful-article 把这个问题设计成了一个很省心的选择 —— 选一种文章类型。因为每一种类型,都自带一个推荐的信息保留比例,选了类型,就等于顺手定下了精修程度。这个设计避免了最常见的扯皮:你脑中「一篇好文章」的标准,终于和 AI 脑中的标准对齐了。

保留比例说的是:成品里保住了原素材多少信息量。它不是一把「删掉多少字」的裁纸刀,而是一位编辑的取舍尺度。100% 像一篇被精修过、但内容一句没少的长文 —— 只重排、不删减;而 40% 更像一篇被编辑认真删改过的文章,而不是一份缩水的摘要 —— 砍掉的是旁枝末节,留下的主干反而更立得住、更好读。比例越低,编辑的手就下得越重。

类型 推荐保留比例 适合场景
longform ~100% 完整长文 / 归档
tutorial ← 本文 ~90% 教学步骤 / 上手指南
full-report ~80% 研究报告 / 正式分析
explainer ~80% 概念 / 系统解释
dialogue ~80% 对话 / 访谈 / 播客
review ~70% PR / 方案 / 事故审阅
essay ~70% 观点 / 评论 / 叙事
briefing ~50% 决策摘要 / 给忙人看
visual-essay ~40% 图文为主 / 传播展示
interactive-explainer ~25% 摘录 + 75% 重构 围绕核心知识点重构

把这张表沿着比例铺开,就是一条信息保留光谱:左端是几乎原样保留的长文,一路向右,编辑的手越下越重,成品越来越短、越来越精。

信息保留光谱:从 100% 完整长文到 25% 交互重构

大多数类型落在光谱的中段:full-reportexplainerdialogue 都保留约 80%,reviewessay 约 70% —— 够完整地承载论证,又替读者滤掉了原文的啰嗦。再往右,briefing 只留约 50%,专给没空读全文的忙人看;visual-essay 约 40%,让位给图和版式,主打传播。

光谱最右端的 interactive-explainer 是个特例,别被那个 25% 吓到:它不是把原文删掉了 75%,而是只摘录约 25% 的原文,再围绕核心知识点用 75% 的篇幅重新构建成一份可交互的解释。换句话说,别的类型是「保留多少」,它是「重写多少」—— 同一根尺子上,它衡量的其实是另一件事。

回到你手里这篇:它选的是 tutorial、保留约 **90%**。所以你读到的,是一份把原始 README 里关于 beautiful-article 的每个要点都保住、只做了重排与精修的上手指南 —— 这,正是 90% 该有的样子。


04 · 主题是一份契约,组件是一套语义

选完文章类型,接下来就是给文章选气质。beautiful-article 不让你在 CSS 里调颜色,而是提供11 套主题 authoring profile,每套都是一份给 Agent 看的 Markdown 契约 —— 它告诉 Agent 这篇文章该用什么语气、什么视觉节奏、Raw 该克制还是活泼、颜色该怎么用。你选的不是 CSS,而是一套”编辑共识”。

4.1 · Reacticle 组件协议:prose-first

所有文章都基于底层组件库 ConardLi/reacticle。它定义了一套语义组件协议:你写的不是 CSS 类名,而是”这是一段引言”、”这是一条警告”、”这是一张表”。

协议分三层。最底层是结构组件:ArticleHeroLeadSectionTOC。中间层是语义组件:Aside(旁注/判断/警告)、QuoteTableCodeBlockFormula。最上面一层是 Raw:任意 HTML / CSS / JS / React 的自由层,可以写交互、自定义布局、动效、SVG / canvas 图解。

组件表达语义,不表达布局。

你不会说”蓝卡片 24px 边距”,而会说”这是一条 principle”。视觉长什么样由主题决定,你只管内容”是什么”。

Raw 是整个协议的”自由层”,但它不是乱写。两条铁律:第一,必须服务具体段落 —— 每块 Raw 都要回答”它让这一段更好理解了,还是只是为了好看”。第二,只能用主题 token —— 颜色、字体、间距必须走 --ra-* 变量,这样 Raw 才能随主题切换而不破相。

4.2 · 11 套主题:每套都是一种编辑气质

下面是全部 11 套主题。它们不是 11 种 CSS,而是 11 种”读这篇文章的方式”。例如:同样是讲数据,tufte 让你凑近读证据,press 请你从一臂之外读一本书,shannon 像在暗纸上看工程仪表。你正在读的这篇,用的就是 press

11 套主题名牌网格

主题 气质
tufte 证据、数据、克制、低装饰
press 书卷、编辑、叙事、温暖(本文所用)
bayer 包豪斯几何、三原色、响亮理性
bodoni 报刊、Didone 高反差、戏剧黑白
vignelli 瑞士国际主义、sans、网格、系统化
sottsass 孟菲斯、80s 撞色、叛逆好玩
freddie 暖黄、友善、机灵有人味
andy 静谧、温柔、治愈、柔软奶油
fuller 蓝图、工程制图、冷峻技术
knuth 学术预印本、公式、严谨编号
shannon 暗色工程证据、仪表信号、克制

为什么把”主题”设计成给 Agent 看的 Markdown 契约,而不是普通 CSS 文件?因为这里的关键读者不是浏览器,而是写文章的 Agent。它要先读懂”这套主题喜欢什么、禁止什么”,才能在每一节里做出一致的选择 —— 从正文节奏到 Raw 视觉,都围着同一套气质展开。


05 · 它的边界:一篇文章,不是一个应用

介绍一个工具时,光说它”能做什么”容易让人产生过高的期待。beautiful-article 的 Skill 文档用很大的篇幅划了一条清晰的边界线:它首先是一篇文章,最终主产物是一份单文件 HTML 文章,不是网页应用。

这个边界不是能力限制,而是目标声明。它的核心使命是”让阅读更好” —— 更好的节奏、更好的信息密度、更好的视觉秩序、更好的分享体验。只要还在服务这个目标,它可以非常灵活:允许 HTML/CSS/JS/React 的 Raw 自由层,允许交互控件、自定义排版、动效、SVG 图解。但这些自由层都必须服务于阅读、解释、论证、节奏或审美

不做什么。

beautiful-article 不生成:后台、表单、拖拽工作台、完整 dashboard、产品原型、通用 Web App。如果你要的是这类产物,Skill 会停下来澄清,不会硬接。

为什么这条线很重要?因为”网页”是一个比”文章”宽得多的概念。一旦你把 beautiful-article 当成通用网页生成器,很快就会发现它不会替你设计后台、不会连数据库、不会做 CRUD 表单 —— 那不是它存在的理由。但反过来看,正因为目标窄,它才能把”把一篇文章做到极致”这件事做得更深。

另外一条隐性边界是信息密度由用户确认。默认它保留 100% 信息、生成长文式网页文章;但只要你选了 briefing 或 visual-essay,它就会按你确认的比例大刀阔斧地编辑。AI 不替你决定”该删多少”,而是在 Checkpoint 1 把这个问题交给你。

所以,判断 beautiful-article 适不适合你的最简单标准就是:你要的是不是”一篇更好读、更好分享的文章”?如果是,它大概率是对的;如果你要的是”一个能交互的工具”或”一个后台系统”,那它从一开始就会告诉你:这不属于本 Skill 的边界。


06 · 上手:一行装,喂素材就走

beautiful-article 属于 Garden Skills 集合,安装沿用整套 Skill 的通用方式。最快的一条路是社区标准的 skills CLI —— 它会自动识别你在用哪个 Agent(Claude Code / Cursor / Codex …),把 Skill 放到对的目录:

1
2
3
4
5
6
7
8
# 一次装上整个 garden-skills 仓库
npx skills add ConardLi/garden-skills

# 或只装 beautiful-article 一个
npx skills add ConardLi/garden-skills -s beautiful-article

# 装到全局 (~/.skills) 而非当前项目
npx skills add ConardLi/garden-skills -s beautiful-article --global

除了 CLI,还有另外四种安装方式:Claude Code 插件市场、GitHub Releases 里的钉版本 .zip(带 SHA-256 校验,适合 CI / 内网)、git clone 后手动拷贝、以及 Git Submodule。选哪种取决于你要”永远拿最新”还是”钉死某个版本”。

Agent / Runtime Skill 路径
Claude Code .claude/skills/<name>/
Claude.ai(网页端) Settings → Capabilities → Skills
Cursor .agents/skills/<name>/
Codex CLI .codex/skills/<name>/
Gemini CLI extension manifest
OpenCode .opencode/skills/<name>/

装好之后,用法非常朴素:把素材丢给它。可以是一个网页 URL、一份 PDF 或 DOCX、一段 Markdown、一大块粘贴的文字,甚至一张截图。它会先把素材抽成统一的 Markdown,然后带你走完前面讲过的那条流程 —— 规划、双确认、生成、终审,最后交付一份 article.html

它会主动激活。

Skill 靠 SKILL.md 里的 description 与 Agent 达成契约。当你说出「把这篇做成网页文章」「生成一篇可分享的 HTML 长文」这类意图时,Agent 会自动判断该不该激活它,你不必记住任何咒语。

整个过程里,你唯一需要”上心”的就是三个 checkpoint 的几次拍板;其余的抽取、排版、写作、校对,都交给它。这也正是它想给你的体验:把素材交出去,把主编的判断留下来。


把素材交出去,把主编的判断留下来

回头看,beautiful-article 真正的巧思不在”能生成漂亮网页”,而在它把自己约束成一位编辑:先读懂素材,再按你选的类型和气质做取舍,最后交付一份自包含、可离线、可分享的文章。它把 AI 的生成力用在了粗剪、排版和校对上,把最重要的编辑判断权留给了你。

想试试的话,装上它,然后随手拿一篇你收藏很久却一直没读完的长文、或一份塞满干货的 PDF 喂给它 —— 看它能不能把那份”想分享却拿不出手”的素材,变成一篇你愿意转发的文章。

底层组件库在 github.com/ConardLi/reacticle,Skill 本体在 github.com/ConardLi/garden-skills


Made with beautiful-article · press theme