用Markdown做日记和任务跟踪的DailyNotes
什么是 DailyNotes ?
DailyNotes是用于每天记笔记和跟踪任务的应用程序。
什么是 Markdown ?
Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(英语:John Gruber)。 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。【百度百科】
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 dailynotes ,选择第一个 m0ngr31/dailynotes,版本选择 latest。

卷
在 docker 文件夹中,创建一个新文件夹,并将其命名为 dailynotes
| 文件夹 | 装载路径 | 备注 |
|---|---|---|
/docker/dailynotes |
/app/config |
配置和数据库目录 |

端口
端口不能冲突,默认的 5000 显然不能使用,这是群晖默认的管理端口
| 本地端口 | 容器端口 | 类型 |
|---|---|---|
| 5050 | 5000 | TCP |

环境
默认这里可以不要设置,不要设置,不要设置
| 可变 | 值 |
|---|---|
API_SECRET_KEY |
API 令牌,不传入会自动生成 |
DATABASE_URI |
DB 的连接字符串,如果未传入,将创建和使用 SQLite 数据库 |
DB_ENCRYPTION_KEY |
用于加密数据的密钥。长度必须是 16 的倍数,不传入会自动生成 |
PREVENT_SIGNUPS |
禁用注册表单 |
DATABASE_URI 的格式如下:
1 | mysql+pymysql://user:pass@host/dbname?charset=utf8mb4 |
默认镜像并不支持 pymysql ,如果你设置了 DATABASE_URI ,容器启动日志中会显示 No module named 'pymysql',所以如果你要采用 MySQL 或者 PostgreSQL 做数据库,需要自己用 Dockerfile 编译镜像

通过修改 requirements.txt ,并加入相应的模块

所以如果用默认的 SQLite ,环境变量这里可以不用设置
运行
在浏览器中输入 http://群晖IP:5050,就看到登录界面

先点 Sign Up 注册用户

主界面

支持 Markdown 的语法
图片不能预览,加不加的没啥用

保存之后,Tags 和 Projects 会出现在左侧

默认创建的是当天的 Daily Note,还可以点 + 号创建 Note
Daily Note每天只有 1 条,而Note可以创建多条

Note 比 Daily Note 多个 title

支持查询操作

既然是跟踪,就需要通过状态来标识任务是否已完成,这需要在 Note 中添加下面👇的文本
1 | - [ ] 是否已完成 |
来实现复选框按钮

支持关联操作

可以支持多个复选框

目前软件的功能比较简单,按作者的计划,会在后续版本中增加:
- 支持
CalDAV HTML预览- 任务看板(以及附加元信息的新语法,例如每个任务的泳道和项目)
- 嵌套标记
参考文档
m0ngr31/DailyNotes: App for taking notes and tracking tasks on a daily basis
地址:https://github.com/m0ngr31/DailyNotes/[Question] dailynotes configuration - DailyNotes
地址:https://gitmemory.com/issue/m0ngr31/DailyNotes/32/836188283Configuration — Flask-SQLAlchemy Documentation (2.x)
地址:https://flask-sqlalchemy.palletsprojects.com/en/2.x/config/