c8f03dd932
功能特性: - Markdown 编辑与实时预览 - 代码语法高亮 - 目录树形结构管理 - 图片粘贴上传 - Markdown 文件导入导出 - 笔记密码保护 - 前后端分离架构 技术栈: - Go + Gin + GORM + SQLite - 原生 HTML/CSS/JavaScript - Highlight.js
181 lines
4.0 KiB
Markdown
181 lines
4.0 KiB
Markdown
# 云笔记管理器
|
||
|
||
一款简洁高效的云笔记系统,采用 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. 编译项目
|
||
|
||
```bash
|
||
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. 启动服务
|
||
|
||
```bash
|
||
./note-manager
|
||
```
|
||
|
||
### 4. 访问应用
|
||
|
||
- **前台展示**:[http://localhost:8080/](http://localhost:8080/)
|
||
- **后台管理**:[http://localhost:8080/admin/](http://localhost:8080/admin/)
|
||
- **默认密码**:`admin123`
|
||
|
||
## 使用指南
|
||
|
||
### 前台展示
|
||
|
||
- 浏览所有公开笔记
|
||
- 按分类筛选
|
||
- 搜索笔记
|
||
- 查看 Markdown 渲染效果
|
||
|
||
### 后台管理
|
||
|
||
#### 笔记管理
|
||
- **新建笔记**:点击左侧目录上方的 "+" 按钮
|
||
- **编辑笔记**:点击笔记列表中的笔记进行编辑
|
||
- **删除笔记**:点击笔记编辑区的删除按钮
|
||
- **置顶/收藏**:点击笔记编辑区的星标/图钉按钮
|
||
|
||
#### 目录管理
|
||
- **新建目录**:点击左侧目录上方的文件夹图标
|
||
- **嵌套目录**:先选中父目录,再创建子项
|
||
- **删除目录**:会同时删除目录下所有内容
|
||
|
||
#### 编辑器使用
|
||
- **左侧**:Markdown 编辑区
|
||
- **右侧**:实时预览
|
||
- **分割线**:可拖动调整左右比例
|
||
- **粘贴图片**:直接在编辑区 Ctrl+V 粘贴图片,自动上传并插入
|
||
|
||
#### 导入导出
|
||
- **导出笔记**:选择一个笔记,点击「导出」按钮下载 Markdown 文件
|
||
- **导入笔记**:点击「导入」按钮,选择 .md 文件创建笔记
|
||
|
||
#### 笔记密码
|
||
- 为重要笔记设置访问密码
|
||
- 查看带密码的笔记时需要输入密码
|
||
|
||
## Markdown 支持
|
||
|
||
### 基础语法
|
||
|
||
```markdown
|
||
# 一级标题
|
||
## 二级标题
|
||
### 三级标题
|
||
|
||
**粗体文字**
|
||
*斜体文字*
|
||
***粗斜体***
|
||
|
||
~~删除线~~
|
||
|
||
> 引用文本
|
||
|
||
- 无序列表
|
||
* 另一种无序列表
|
||
|
||
1. 有序列表
|
||
2. 第二项
|
||
```
|
||
|
||
### 代码块
|
||
|
||
````markdown
|
||
```javascript
|
||
function hello() {
|
||
console.log("Hello World!");
|
||
}
|
||
```
|
||
|
||
```go
|
||
package main
|
||
|
||
import "fmt"
|
||
|
||
func main() {
|
||
fmt.Println("你好")
|
||
}
|
||
```
|
||
````
|
||
|
||
### 链接与图片
|
||
|
||
```markdown
|
||
[链接文字](https://example.com)
|
||

|
||
```
|
||
|
||
## API 文档
|
||
|
||
详见 [API.md](./API.md)
|
||
|
||
## 截图预览
|
||
|
||
### 后台编辑器
|
||
- 左右分栏布局
|
||
- 实时 Markdown 预览
|
||
- 代码语法高亮
|
||
- 树形目录导航
|
||
|
||
### 前台展示
|
||
- 简洁阅读体验
|
||
- 响应式设计
|
||
- Markdown 渲染
|
||
- 分类筛选
|
||
|
||
## License
|
||
|
||
MIT License
|