Now vibe coding, so learning hammer FE ?
《Markdown SVG 渲染器:AI 辅助开发的实用小工具》

标签:#前端 #工具 #Markdown #SVG #AI辅助编程 #SimonWillison #WebComponents

总结:

Simon Willison 分享了他用 Claude Opus 4.8 和 GPT-5.5 辅助开发的一个轻量级 Markdown 渲染工具,核心亮点是对 SVG 代码块的特殊处理——不仅能渲染出图像,还提供「渲染图 / 源代码」双标签切换。该工具支持直接粘贴 Markdown、加载远程文件或 GitHub Gist,并用 Fragment URL 记录状态以便分享。整个项目从需求到安全加固完全由 AI 驱动,是「提示驱动开发」的又一实例。

文章要点:

1. 这个工具的诞生源于一个具体场景:Simon 用 LLM CLI 让 Claude Opus 4.8 生成了五组不同思考深度(low 到 max)的「鹈鹕骑自行车」SVG,想找个优雅的方式展示这些 Markdown 日志
2. 核心定制点在于 SVG 围栏代码块(\\\`svg)——普通 Markdown 渲染器只会显示代码,而这个工具会把它变成可交互的 Web Component,默认展示渲染好的 SVG,点击可切换到源码查看
3. 支持三种内容输入方式:直接粘贴 Markdown、输入 CORS 兼容的远程 Markdown 文件 URL、或者加载 GitHub Gist 中的第一个文件
4. 用 URL Fragment(#)记录当前加载的文件地址,刷新页面或分享链接时能自动恢复状态,不用依赖后端
5. 安全方面,Simon 后续用 GPT-5.5(Codex xhigh 模式)专门审计并修复了 XSS 漏洞,体现了 AI 辅助开发中「生成 + 安全加固」的两步走思路
6. 整个工具属于 Simon 的「HTML Tools」系列——单文件 HTML+JS+CSS、无构建步骤、托管在 tools.simonwillison.net,目前已积累超过 150 个类似小工具

URL:https://simonwillison.net/2026/May/28/markdown-svg-renderer/
《用 Web Components 构建框架无关的设计系统(实践指南)》

标签:#前端 #WebComponents #设计系统 #Elena #VitePress #CSS #无障碍

总结:
本文是一份超详细的实战教程,手把手教你用 Web Components(通过 Elena 库)和 VitePress 搭建一个框架无关、可发布的设计系统。核心思路是"最低可行层级"——用 web 标准直接写原子组件,避免框架锁定;组件保持"最笨"状态,把复杂业务逻辑留给应用层。文章涵盖 monorepo 结构搭建、Elena 组件脚手架、条件渲染、@scope 样式隔离、CSS 自定义属性主题化,以及通过 JSDoc + Custom Elements Manifest 自动生成 Props 表格的文档工作流。最终产出的是一个可独立发布的组件包 + 可部署的静态文档站。

文章要点:
1. 设计系统从第一天就绑定特定框架(如 React)是"令人费解的"——web 标准组件才是可移植、可组合、经得起时间考验的选择
2. Elena 是"刚好够用的抽象":处理跨框架的 prop/attribute 同步、事件委托等脏活,但不掩盖 web 标准本质
3. 组件应保持"最笨"——被告知显式状态和内容的声明式组件,比内置复杂状态管理的"聪明"组件更健康
4. 设计决策应该在代码中而非 Figma 中完成:现代色彩空间、相对单位、对数排版比例等,设计工具只能模拟浏览器的很小一部分能力
5. 用 @scope 实现样式隔离 + 组件级 CSS 自定义属性作为"最终层 token",既保证封装又有主题化回退
6. JSDoc 注释即文档:Elena 自动生成 custom-elements.json,VitePress 通过 data loader 直接渲染 PropsTable 和 ComponentHeader
7. 文档即测试场:在 VitePress 中实时预览组件,确保跨框架可移植性;开发时 concurrent 运行 watch + docs:dev 实现热更新
8. 条件渲染示例:同一个组件通过 href prop 自动切换 button/a 标签,CTA 链接按钮的常见需求也能语义化实现

URL:https://piccalil.li/blog/framework-agnostic-design-systems-part-1/ Framework-agnostic design systems: a practical approach to web components
 
 
Back to Top