Your Name 74fa759274 feat: 云笔记增强 - 安全加固 + 回收站/版本历史/分享/批量导出 + 前端优化
- 安全: 认证改随机token会话(弃固定cookie), 笔记密码SHA256升级为bcrypt(自动迁移),
  堵住GET /api/notes/:id泄露带密码笔记, CORS收紧+SameSite防CSRF, 上传图片内容嗅探
- 回收站: 软删除(deleted_at), 列表/恢复/彻底删除/清空, 目录子树连删连恢复
- 版本历史: note_versions表存快照, 每次保存自动留档, 支持查看/回滚
- 分享: 生成随机token分享链接, 支持过期时间, 公开阅读页share.html
- 批量导出: 全部笔记打包zip(按目录结构+front matter)
- 前端: 深色模式, Mermaid图表, 待办清单checkbox, 字数统计;
  后台新增回收站/历史/分享面板和批量导出按钮
- 新增deploy/note-manager.service systemd单元与smoke_test.py
2026-08-11 11:21:29 +08:00
2026-05-08 15:07:22 +08:00
2026-05-08 15:07:22 +08:00
2026-05-26 17:36:34 +08:00
2026-05-08 15:07:22 +08:00

云笔记管理器

一款简洁高效的云笔记系统,采用 Go 语言开发,支持 Markdown 编写和实时预览。

功能特性

  • Markdown 编辑:支持 Markdown 语法,实时预览
  • 代码高亮:支持多种编程语言的语法高亮
  • 目录管理:支持创建文件夹进行笔记归类
  • 树形结构:清晰的目录树导航
  • 分类标签:支持按分类和标签组织笔记
  • 搜索功能:快速搜索标题和内容
  • 收藏置顶:支持收藏和置顶重要笔记
  • 图片粘贴:支持直接粘贴图片自动上传
  • 导入导出:支持 Markdown 文件的导入导出
  • 笔记密码:支持单篇笔记设置访问密码
  • 前后端分离:公开展示 + 密码保护的管理后台

技术栈

  • 后端Go 1.21+ / Gin / GORM / SQLite
  • 前端:原生 HTML/CSS/JavaScript
  • 代码高亮Highlight.js

项目结构

note-manager/
├── config/         # 配置管理
├── handler/        # HTTP 处理器
├── middleware/     # 中间件
├── model/          # 数据模型
├── repository/     # 数据访问层
├── router/         # 路由配置
├── service/        # 业务逻辑层
├── web/            # 前端资源
│   ├── index.html          # 前台展示页面
│   └── admin/              # 后台管理页面
├── data/           # 数据库目录
└── main.go         # 入口文件

快速开始

1. 编译项目

cd /vol1/Project/note-manager
go build -o note-manager .

2. 配置环境变量(可选)

环境变量 默认值 说明
PORT 8080 服务端口
DB_PATH data/notes.db 数据库路径
ADMIN_PASS admin123 管理后台密码
UPLOAD_DIR uploads 图片上传目录

3. 启动服务

./note-manager

4. 访问应用

使用指南

前台展示

  • 浏览所有公开笔记
  • 按分类筛选
  • 搜索笔记
  • 查看 Markdown 渲染效果

后台管理

笔记管理

  • 新建笔记:点击左侧目录上方的 "+" 按钮
  • 编辑笔记:点击笔记列表中的笔记进行编辑
  • 删除笔记:点击笔记编辑区的删除按钮
  • 置顶/收藏:点击笔记编辑区的星标/图钉按钮

目录管理

  • 新建目录:点击左侧目录上方的文件夹图标
  • 嵌套目录:先选中父目录,再创建子项
  • 删除目录:会同时删除目录下所有内容

编辑器使用

  • 左侧Markdown 编辑区
  • 右侧:实时预览
  • 分割线:可拖动调整左右比例
  • 粘贴图片:直接在编辑区 Ctrl+V 粘贴图片,自动上传并插入

导入导出

  • 导出笔记:选择一个笔记,点击「导出」按钮下载 Markdown 文件
  • 导入笔记:点击「导入」按钮,选择 .md 文件创建笔记

笔记密码

  • 为重要笔记设置访问密码
  • 查看带密码的笔记时需要输入密码

Markdown 支持

基础语法

# 一级标题
## 二级标题
### 三级标题

**粗体文字**
*斜体文字*
***粗斜体***

~~删除线~~

> 引用文本

- 无序列表
* 另一种无序列表

1. 有序列表
2. 第二项

代码块

```javascript
function hello() {
  console.log("Hello World!");
}
```

```go
package main

import "fmt"

func main() {
    fmt.Println("你好")
}
```

链接与图片

[链接文字](https://example.com)
![图片描述](image-url)

API 文档

详见 API.md

截图预览

后台编辑器

  • 左右分栏布局
  • 实时 Markdown 预览
  • 代码语法高亮
  • 树形目录导航

前台展示

  • 简洁阅读体验
  • 响应式设计
  • Markdown 渲染
  • 分类筛选

License

MIT License

S
Description
No description provided
Readme 538 KiB