textarea.my:使用 URL 哈希的极简文本编辑器
介绍 textarea.my:轻量级文本编辑器,内置于 URL
在云存储、第三方笔记应用和复杂编辑器主导工作流程的时代,textarea.my 提供了一个极其简单的替代方案。这个开源项目将普通浏览器窗口变成一个功能齐全的文本编辑器,它的内容 完全 存储在 URL hash 中,并通过 localStorage 做备份以增加冗余。无论你是快速记录笔记,撰写简短的 Markdown 片段,还是草拟代码段,textarea.my 都为你提供了一个快速、独立的解决方案,无需任何依赖。
为什么使用 textarea.my?
| 益处 | 所指 |
|---|---|
| 无服务器 | 所有数据存储在本地——不需要除首次加载页面之外的网络连接 |
| 一键分享 | 复制 URL,随意转发。接收者将立即看到内容 |
| 极小占用 | 压缩后低于 5 KB,毫秒级加载 |
| 内置压缩 | 使用 deflate 压缩文本,保持 URL 简短 |
| 开源 | MIT 许可,可自行 Fork、修改或托管 |
该项目由 Anton Medvedev 维护,保存在结构良好的 GitHub 仓库(https://github.com/antonmedv/textarea)中。它是务实开源的绝佳示例——一款解决实际需求、毫不多余的工具。
核心功能
- URL 哈希持久化 – 每一次修改都会更新 URL hash。整个文本被安全编码,因此你可以精准分享并重新加载你所写的内容。
- Deflate 压缩 – 文本会自动压缩,连较长的 Markdown 文件也能轻松放入 URL。
- localStorage 备份 – 同一份数据也存储于 localStorage,若 hash 失效(如 URL 长度限制)提供额外持久化。
- 通过 DevTools 自定义 CSS – 虽然编辑器本身极简,但你可在 DevTools 中编辑
<article>元素来微调外观。修改会随 URL hash 一起保存。 - 二维码生成 – 在 URL 末尾追加
/qr,页面将生成一个二维码,指向同一篇文档。 - 标题模板 – 在首行加上
# Title,页面标题将自动采用该值。 - 独立 Wiki 引擎 – 仓库内包含一个以相同核心驱动的小型 Wiki,可在同仓库下的
wiki获取。
快速开始指南
- 打开编辑器 – 访问 https://textarea.my。
- 开始输入 – 编辑器默认空白;你输入的任何文字会立即编码到 URL。
- 保存 – 点击 Copy URL 按钮(或使用
Ctrl+C快捷键),并将链接保存到你想去的地方。 - 重新载入 – 在任意浏览器中打开 URL,即可看到笔记恢复。
- 分享 – 将链接发送给朋友;不需要特殊权限。
示例
# My Quick Note
This is a _markdown_ example.
- Item 1
- Item 2
输入后,URL 可能如下所示:
https://textarea.my#E2N4YlV9Yl7sX... (truncated for brevity)
复制此链接并粘贴到聊天或邮件,即可让接收者看到完全相同的笔记。
高级使用与专业技巧
| 提示 | 做法 |
|---|---|
| 添加自定义样式 | 打开 DevTools(F12),选择 <article>,并注入 CSS。例如:article { background:#f4f4f4; color:#333; }。该样式会包含在 hash 中,分享后他人会看到相同外观。 |
| 创建二维码 | 访问 <url>/qr。出现二维码,链接回完整文档。 |
| 使用其他语言 | 在 <meta charset="utf-8"> 中设置字符集,以获得完整的 Unicode 支持。 |
| 跨标签页持久化 | 由于 localStorage 为 hash 提供备份,您可以在多个标签页中保持同一条笔记打开;更改通过简单轮询机制同步。 |
| 自行部署 | 克隆仓库后,在任意静态主机(如 Netlify、GitHub Pages 等)提供 index.html。该项目还包含 PWA 清单,支持离线使用。 |
与流行方案的比较
| 功能 | textarea.my | Google Docs | Typora | Joplin |
|---|---|---|---|---|
| 离线 | ✅ | ❌ | ✅ | ✅ |
| URL 共享 | ✅ | ❌ | ❌ | ❌ |
| 大小 | 5 KB | 1 MB+ | 15 KB | 30 KB |
| Markdown | ✅ (原始) | ✅ | ✅ | ✅ |
| 自定义 CSS | ✅ | ❌ | ❌ | ❌ |
| 压缩 | ✅ | ❌ | ❌ | ❌ |
对于快速、可分享的片段,textarea.my 提供更轻量、更注重隐私的替代方案。
社区与贡献
作为一个开源仓库,textarea.my 热烈欢迎贡献。简单的改进点包括添加拼写检查器、改进移动端体验或增添更多文件导出方式。你可 Fork 项目,在本地实验后提交 Pull Request。
如何贡献
1. Fork 仓库。
2. 在新分支中做更改。
3. 运行测试套件(如果克隆了仓库,请使用 npm test)。
4. 提交带有清晰描述的 Pull Request。
维护者会在一周内审查 PR 并迅速合并非破坏性更改。
未来改进
潜在路线图项目包括: - 实时协作:使用 WebRTC 将 URL 编辑的简洁性与多用户支持相结合。 - 版本历史:在 localStorage 中保留修订版本栈。 - 导出选项:PDF、DOCX 或 HTML 输出。 - 暗黑模式切换及其他 UI 首选项。
这将保持核心理念,同时为高阶用户增强可访问性。
结论
Teaser.my 证明了 少即是多:一个无需服务器、账户,也不依赖繁重库的微型自包含编辑器。其聚焦于基于 URL 的持久化与共享,使其成为开发者、作家以及任何喜爱即时笔记、并确信仅存于本机的人们的理想选择——除非你决定分享。探索代码,今天就试一试,看看你能多么轻松地将一个 URL 变为个人文本编辑器。
GitHub 仓库: https://github.com/antonmedv/textarea
实时演示: https://textarea.my