Ctrl K
ComunidadGuías…

README.zh.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Cloudmark

[![AGPL LICENSE](https://img.shields.io/badge/LICENSE-AGPL-blue.svg)](https://www.gnu.org/licenses/agpl-3.0.html)
[![在线试用](https://img.shields.io/badge/TryIt-Online-orange.svg)](https://cloudmark.site/)
[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/wesleyel/cloudmark)

[English](README.md)

## 简介

Cloudmark 是一款通用的云端书签管理工具,无需注册登录。创建集合 ID(`mark`)和密钥 **write token**,安装 bookmarklet 即可一键收藏网页。

在线试用:[https://cloudmark.site/](https://cloudmark.site/)

## 主要功能

- 🔑 **无需注册**:通过 `mark` 访问集合;写入需要 write token
- 🔖 **一键收藏**:Bookmarklet 内嵌 mark + write token
- 🧩 **Chrome 扩展**:选择已有分类或新建分类,快速保存当前标签页
- 🏷️ **分类管理**:自定义分类整理书签
- ⌨️ **键盘优先**:`/` 搜索、`j/k` 导航、`n/e/d` 增删改、`?` 帮助
- 📋 **高信息密度**:紧凑列表 + 即时筛选 / 排序
- 🎨 **自定义图标**:表情、字母徽标,或上传 SVG/ICO/PNG
- 🌐 **跨设备访问**:任意设备可读;写入需在该设备配置 token
- 🌍 **多语言**:中文 / 英文
- 🗄️ **Cloudflare D1**:边缘关系型存储

## 安全模型

| 能力 | 条件 |
|------|------|
| 查看集合 | 知道 `mark`(URL) |
| 添加 / 编辑 / 删除 | 有效的 **write token** |
| Bookmarklet 保存 | `mark` + `token` 查询参数 |

- Write token 在 D1 中仅存 SHA-256 哈希;明文只存在浏览器 `localStorage` 与 bookmarklet 中。
- 带有速率限制与字段长度限制。

## 快速开始

1. 访问 [https://cloudmark.site/doc](https://cloudmark.site/doc)
2. 生成 `mark` 与 write token
3. 将 bookmarklet 拖到浏览器书签栏
4. 浏览时点击 bookmarklet 保存页面
5. 打开 `https://cloudmark.site/你的-mark` 管理书签

## Chrome 扩展(开发者预览)

Manifest V3 扩展支持读取当前标签页,选择已有分类或新建分类后保存;同时提供页面和链接的右键快捷保存。

```bash
pnpm install
pnpm build:extension
```

打开 `chrome://extensions`,启用「开发者模式」,点击「加载已解压的扩展程序」,选择 `dist-extension/`。随后在扩展设置中填写收藏名称、write token 和 Cloudmark 服务器地址。服务器既可以是 `https://cloudmark.site`,也可以是任意自托管的 HTTP(S) 实例。

完整安装、权限与本地联调说明见 [`extension/README.md`](extension/README.md)。

## 本地开发

### 环境要求

- Node.js 20+ 与 pnpm
- Cloudflare 账号(预览与部署)

### 安装依赖

```bash
pnpm install
```

### D1 配置

```bash
pnpm exec wrangler d1 create cloudmark
# 将 database_id 写入 wrangler.jsonc
pnpm db:migrate:local    # 本地
pnpm db:migrate:remote   # 生产
```

### 开发模式

```bash
pnpm dev
```

### 预览 / 部署

一键部署(从本仓库创建 Cloudflare Worker):

[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/wesleyel/cloudmark)

或在本机:

```bash
pnpm db:migrate:local && pnpm preview
pnpm db:migrate:remote && pnpm run deploy
```

首次部署后,请在 `wrangler.jsonc`(或控制台)配置 `d1_databases[0].database_id` 并执行 migrations。

## 技术栈

- **TypeScript 7** · **React 19** · **Vite** · **Hono**
- Cloudflare Workers(`@cloudflare/vite-plugin`)
- Cloudflare D1
- Tailwind CSS · shadcn/ui

## 许可证

[AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.html)

## 贡献

欢迎 Issue 与 PR!