把 LaTeX 文档装进链接:浏览器渲染工具的设计
一份 LaTeX 文档,能不能直接装进一个可收藏、可分享的链接?LaTeX renderer 围绕这一思路,将文档内容放入 URL 的 #fragment,并在浏览器中提供编辑与排版视图。
核心设计:链接承载文档
这一设计受到 Tiny Little Office 的启发。后者提供文字处理、大纲、演示文稿、电子表格等多种编辑器,其特点是把文档数据存入 URL 的 #fragment 部分,让每份文档都能以链接的形式收藏和分享。
Tiny Little Office 还提供了 llms.txt,说明如何构造能够打开文档的 URL。Claude 曾根据这份说明,生成一份介绍链接格式的演示文稿。
LaTeX renderer 将同样的交互方式用于 LaTeX:
- 不带片段打开页面:显示编辑器,可以粘贴 LaTeX 代码。
- 切换到渲染视图:查看排版结果,并获得可收藏的文档链接。
- 通过带片段的链接打开:读取其中的文档内容进行渲染,也能切回编辑视图。
- 加载外部内容:支持从 URL 或 GitHub Gist 加载 LaTeX。
开发需求:压缩与浏览器渲染
工具由 Claude Code 辅助构建。初始开发要求除了编辑和渲染切换,还包括:
- 将 URL 片段中的代码作为 LaTeX 处理。
- 支持一种带前缀标记的压缩格式,使用针对 LaTeX 优化的自定义压缩字典。
- 从 CDN 加载合适的渲染库,并考虑 WebAssembly 方案。
这里需要区分开发要求与已验证能力:这些要求说明了工具的设计方向,并不等于已经完成全面的兼容性或性能测试。
安全处理:关注 XSS 风险
文档渲染还涉及不可信输入的处理。开发过程中,专门提出参考已有 Markdown/SVG 工具的 iframe sandbox 机制,以降低跨站脚本攻击(XSS)风险。
工具列出的依赖包括:
| 组件 | 版本 |
|---|---|
| Pako | 2.1.0 |
| MathJax | 4.1.3 |
| faster-latex | 0.3.1 |
| DOMPurify | 3.4.16 |
其中,界面将文档渲染模式标注为 faster-latex (WASM)。不过,采用沙箱或内容净化组件,不能直接视为完整的安全保证;现有介绍没有提供安全审计结果。
界面展示了什么
示例界面采用代码与排版结果并排显示的布局,提供编辑/渲染切换、复制链接和分享按钮,还包含公式、矩阵、化学、TikZ 和完整文档等示例入口。
展示的文档以“前 n 个奇数之和等于 n²”为主题,包含标题、定理、证明、编号公式和列表。这说明工具的展示范围不仅是单个公式,也包括带有基本结构的 LaTeX 文档;但不能据此推断它兼容所有宏包或复杂排版场景。
这一工具值得关注的设计点,是把编辑、渲染与链接分享放在同一条操作路径中。 对论坛里的技术交流而言,它展示了一种用 URL 承载可复现文档内容的方式。
