用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 的语法

图片不能预览,加不加的没啥用

保存之后,TagsProjects 会出现在左侧

默认创建的是当天的 Daily Note,还可以点 + 号创建 Note

Daily Note 每天只有 1 条,而 Note 可以创建多条

NoteDaily 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/836188283

Configuration — Flask-SQLAlchemy Documentation (2.x)
地址:https://flask-sqlalchemy.palletsprojects.com/en/2.x/config/