一个简洁优雅的个人笔记网页应用,支持富文本编辑,并将笔记自动保存到你的私有 GitHub 仓库中。
- 🖋️ 富文本编辑器 - 支持文本格式化、列表、引用等
- 💾 GitHub 存储 - 笔记自动保存到你的私有 GitHub 仓库
- 📱 响应式设计 - 完美适配桌面和移动设备
- 🔒 隐私安全 - 使用你自己的私有仓库存储数据
- ⚡ 无需登录 - 配置好仓库信息即可使用
- 🎨 美观界面 - 现代化的用户界面设计
- 📄 分页加载 - 智能分页,快速加载历史记录
npm install复制 env.example 文件为 .env:
cp env.example .env编辑 .env 文件,填入你的 GitHub 配置信息:
# GitHub Configuration
GITHUB_TOKEN=your_github_personal_access_token_here
GITHUB_USERNAME=your_github_username
GITHUB_REPO=your_private_repo_name
GITHUB_BRANCH=main
# Server Configuration
PORT=3000- 访问 GitHub Settings > Developer settings > Personal access tokens
- 点击 "Generate new token (classic)"
- 设置 Token 名称,选择过期时间
- 勾选以下权限:
repo(完整的仓库访问权限)
- 点击 "Generate token"
- 复制生成的 token 到
.env文件中
- 在 GitHub 上创建一个新的私有仓库
- 将仓库名填入
.env文件的GITHUB_REPO字段
# 开发模式(自动重启)
npm run dev
# 或者生产模式
npm start访问 http://localhost:3000 开始使用!
你可以用 PM2 让本项目在服务器或本地电脑上"常驻运行"并"开机自启动"。
npm install -g pm2pm2 start server.js --name journey-notes
pm2 start ecosystem.config.jspm2 startup终端会输出一条命令(如 sudo ...),请复制粘贴执行。
pm2 save- 查看状态:
pm2 status - 查看日志:
pm2 logs journey-notes - 重启:
pm2 restart journey-notes - 停止:
pm2 stop journey-notes - 删除:
pm2 delete journey-notes
journey-notes/
├── public/ # 前端静态文件
│ ├── index.html # 主页面
│ ├── style.css # 样式文件
│ └── script.js # 前端逻辑
├── server.js # Express 服务器
├── package.json # 项目配置
├── env.example # 环境变量示例
├── .env # 环境变量(需要配置)
├── .gitignore # Git 忽略文件
└── README.md # 项目说明
- 前端: HTML5, CSS3, JavaScript, Quill.js (富文本编辑器)
- 后端: Node.js, Express.js
- 存储: GitHub API
- 样式: 原生 CSS(响应式设计)
- 写笔记: 在页面顶部的富文本编辑器中输入你的想法
- 保存: 点击"保存笔记"按钮,笔记将自动保存到 GitHub 仓库
- 查看历史: 在下方的历史记录区域查看所有保存的笔记
- 删除笔记: 点击笔记右上角的删除按钮可以删除不需要的笔记
- 加载更多: 点击"加载更多笔记"按钮查看更多历史记录
Ctrl/Cmd + S: 保存当前笔记ESC: 关闭模态框
- 所有笔记数据存储在你自己的私有 GitHub 仓库中
- GitHub Token 和仓库信息存储在本地环境变量中
.env文件已添加到.gitignore,不会被提交到代码仓库
笔记以 JSON 格式存储在 GitHub 仓库的 notes/ 目录下:
{
"id": 1640995200000,
"content": "<p>这是一条笔记的 HTML 内容</p>",
"timestamp": "2023-12-31T16:00:00.000Z",
"created": "2023-12-31T16:00:00.000Z"
}确保你的 GitHub Token 具有 repo 权限,能够访问私有仓库。
确保在 .env 文件中正确配置了仓库名称,并且该仓库确实存在。
检查网络连接,确保能够访问 GitHub API。
MIT License
欢迎提交 Issue 和 Pull Request!
享受记录你的心路历程吧! ✨