Skip to content

foldspace-stack/foldspace-nav-home

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

蜗牛个人导航 (CloudNav)

Warning

本项目完全基于 AI 构建,我对项目中的代码一无所知。如果有 Bug 和功能需求请 Fork 后自行处理。

一个现代化云端导航 / 书签管理页面。

CloudNav Screenshot

✨ 特性

  • 全分类锚点页面:所有分类同屏展示,侧边栏一键跳转
  • 前端可视化编辑:右键菜单 / 拖拽排序 / 批量操作 / 分类管理
  • 访客模式:普通用户可正常浏览,登录后获得管理权限
  • D1 数据存储:网站、分类、用户、会话、配置统一进入 Cloudflare D1
  • Cloudflare 部署:Worker + D1 + 静态资源一体化部署
  • 本地缓存:localStorage 仅保留页面缓存和偏好设置,不再作为主数据源
  • 安全管理:Cookie 会话鉴权,支持管理员初始化、登录和简单用户管理
  • AI 辅助:集成 Gemini / OpenAI 兼容 API,自动填充链接描述、智能分类建议
  • 数据导入导出:Chrome 书签 HTML / JSON 备份 / WebDAV 云同步
  • 丰富小组件:Mastodon / Memos 动态滚动条、实时天气(和风天气)
  • 个性化:深色/浅色模式(自动检测系统偏好)、紧凑/详细视图、自定义图标
  • 卡片动效:从图标提取主色调,hover 时显示彩色边框 and 光晕
  • 骨架屏加载:加载时显示骨架屏占位,卡片交错淡入动画

🧩 浏览器插件

你可以配合 Chrome / Firefox 浏览器插件来快速添加书签:

🏗️ 技术架构

技术栈

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS 4

Serverless / Storage

  • Cloudflare Worker: API 路由 + 静态资源托管
  • Cloudflare D1: 统一存储网站、分类、用户、会话和设置
┌──────────────────────────────────────────────┐
│               Browser (Client)               │
│                                              │
│  React 19 + TypeScript + Tailwind CSS 4      │
│  State: Context + useReducer                 │
│  DnD: @dnd-kit                               │
│  Icons: lucide-react                         │
│                                              │
│  Data: localStorage (cache) + D1 (persist)    │
└──────────────────┬───────────────────────────┘
                   │ HTTP API
┌──────────────────┴───────────────────────────┐
│          Cloudflare Worker Backend           │
│                                              │
│  D1 存储:网站 / 分类 / 用户 / 配置 / 会话  │
│  认证:HttpOnly Cookie 会话                  │
│  统一 API:/api/bootstrap /api/sites 等      │
└──────────────────────────────────────────────┘

🚀 部署指南

Cloudflare Worker + D1

  1. 在 Cloudflare 控制台创建 Worker 和 D1 数据库。
  2. 执行 pnpm build 构建前端资源。
  3. 配置 wrangler.jsonc 中的 d1_databases 和静态资源绑定。
  4. 执行 pnpm deploywrangler deploy 部署到 Cloudflare Worker。
  5. 首次登录后在后台完成管理员 bootstrap,然后再添加站点和普通用户。

⚙️ 环境变量

变量 说明 必填 默认值
CLOUDFLARE_API_TOKEN 创建 D1 / 远程部署时使用 部分场景 -

🛠️ 本地开发

# 安装依赖
pnpm install

# 1. 启动一体化本地开发环境(Worker + D1 + 静态资源)
pnpm dev

pnpm dev 会先构建静态资源,再通过 wrangler devhttp://127.0.0.1:56435/ 提供页面和 /api/*

数据存储说明

  • D1 表结构:网站、分类、用户、会话和设置统一存储在数据库中。
  • 本地缓存localStorage 仅用于提升首次渲染速度和保留用户偏好。
  • 首次部署:系统会通过 D1 和后台 bootstrap 进入空白初始状态,由管理员自行添加网站和分类。

📁 项目结构

├── components/                # 通用 UI 组件 (Modal, Toast, ErrorBoundary, 小组件等)
├── services/                  # 前端业务逻辑 (AI, 书签解析, 导出, WebDAV 等)
├── src/
│   ├── components/            # 核心业务组件 (layout, category, link)
│   ├── contexts/              # React Context 状态管理 (Auth, Links, Categories, Config)
│   ├── hooks/                 # 自定义 Hooks (Search, DragSort, DataSync)
│   ├── utils/                 # 工具函数 (Config, Security, ColorExtractor)
│   └── constants/             # 常量定义
├── public/                    # 静态资源
├── App.tsx                    # 应用入口
├── types.ts                   # 类型定义 & 初始数据
├── wrangler.jsonc             # Cloudflare Worker / D1 配置
└── package.json               # 项目依赖

Inspiration

📄 License

本项目采用 GLWTPL License 开源。

GLWT(Good Luck With That,祝你好运)公共许可证
            版权所有© 除作者外的所有人

任何人都被允许复制、分发、修改、合并、销售、出版、再授权
或任何其它行为,但风险自负。

作者对这个项目中的代码的行为一无所知。
代码处于可用或不可用状态,没有第三种可能


                祝你好运公共许可证
            复制、分发和修改的条款和条件

  0. 只要你永远不要留下任何可以追踪到原作者的线索,
你就可以随心所欲地做任何事,因此,不能因此责怪或追究
原作者的责任。

在任何情况下,作者均不对因使用或与本软件有关的合同诉讼、
侵权或其他方式产生的任何索赔、损害或其他责任负责。

自求多福吧。

About

个人导航 Serverless 版。 Edgeone Pages、Cloudflare Pages、Vercel。

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 96.0%
  • CSS 3.0%
  • Other 1.0%