介绍

malnote本来是我一个个人项目,用来记笔记,后来不断地新增了一些功能,现在决定发布一个版本,供大家使用。

本人一开始也试过很多笔记软件:

  • 语雀,非常不错的软件,本软件的设计也参考了语雀。
  • typora,超过万字会渲染很慢,卡。
  • hexo,语雀虽然不错,但是数据主要是云端,我更喜欢在本地,这个也是用了很久的。不过hexo本身比较大,而且要参考笔记内容的话还要启动服务,或者别的办法查看markdown内容,但是注意还不如不用hexo了

后来,学习nextjs的时候偶然遇到了tiptap编辑器,然后就写了第一版的malnote,当时是nextjs项目,无法打包exe,而且每次都要启动,如果遇到新电脑没有nodejs怎么办?
所以后来就开发了tuari版本的malnote,并且不断完善本地化功能,把文档存到本地,而无法本地化的功能(比如上传文件)就用go搞了个api后端。

本笔记软件完全免费,如果你想支持我,可以点击网页中的广告,可以给我带来0.01$的收入(不过就算有了,我在境内好像也提现不了)

下载地址:

基本功能

因为tauri-sql插件的问题,我定义的迁移脚本好像不会自动执行,所以需要你下载这个db文件:

然后复制到C:\Users[你的用户名]\AppData\Roaming\org.malred.malnote

该笔记的后端api下载:

首页

新建知识库和文档:

无头富文本编辑器 tiptap集成

支持部分markdown语法编辑(这个好像是tiptap本身的问题了),支持各种样式。

笔记渲染

页面结构

大纲(根据标题生成)

点击右上角浮动的三条短杠的按钮,可以打开大纲

ai问答(根据文档内容)

点击顶部栏中的机器人图标,可以打开ai问答区

基本笔记编辑

笔记编辑的时候,可以直接复制图片,然后黏贴到笔记中,会自动上传到服务器,并显示图片。(不过在文件管理器中复制的无法黏贴)

还可以直接将网页内容复制,黏贴到编辑器时,可以部分保留样式。

bar

选中文本后将弹出bubble工具栏

光标移动到空白行会显示float工具栏

快捷键

代码块

集成了highlight.js,所以代码块会高亮显示

mermaid

点击顶部bar中的这个图标,将插入mermaid块

效果

可以编辑

latex公式

效果

脚注

使用快捷键 ctrl-alt-f 添加脚注

表格

其他

基本功能比如高亮、字体、图片等就不展示了

标签

支持给笔记指定标签,可以在归档页面查看标签分组

历史记录

当在编辑页面点击保存按钮时,会将当前内容同步保存到历史记录,可以点击右上角的按钮来进入历史记录页面,恢复记录

协作编辑

点击顶部栏中的小人+图标,可以进入协作编辑(但是有个bug,如果笔记内容有表格,则会无法使用)

1
2
# 开启协作同步客户端
npx @hocuspocus/cli@2.5 --port 1234 --sqlite

侧边栏目录

侧边栏渲染当前知识库的笔记目录,可以在笔记下新建子集笔记、重命名笔记、删除笔记

加号可以新建笔记

点击搜索框搜索笔记

工具箱

提供各种便捷式工具

日程管理

ai聊天

实现基本的ai聊天页面,免费提供glm-4-flash glm-4.5-flash
glm-z1-flash的使用(感谢智谱大模型!),如果你需要使用其他模型,可以使用自定义配置(可以用groq和cerebras,有提供免费api)

自定义api配置

支持自定义api配置

支持ollama,只需要在BASE BATH填ollama,会自动访问本地11434的ollama接口,但是需要安装ollama,
以及配置环境变量:OLLAMA_HOST=0.0.0.0:11434 来指定监听的网络端口和绑定的IP地址,OLLAMA_ORIGINS=* 允许跨域

聊天记录

点击蓝色的文件夹按钮,可以查看过往ai聊天记录,点击可以加载这些对话历史,点击顶部的清空对话,就可以将当前所有历史记录删除

附加文档

支持上传文档(.md/.txt/.json),会在聊天时附带给ai

注:点击文档已上传标签,可以查看内容

图片上传

可以选择图片上传,上传完成会自动请求ai接口进行图像理解,并在用户发送信息时附带图像理解的内容。

向量化文档

支持将笔记拆分并向量化(向量化需要本地ollama支持)

1
ollama pull mxbai-embed-large

提问ai时可以选择文档,会根据用户输入搜索相关文档片段然后提供给ai

点击确认选择后,会调用本地ollama进行向量化处理。

wiki搜索

支持wiki搜索,但是如果你有网络问题,也可以使用本地wiki(kiwix),只需要启动本地服务(端口9000),本软件会在远程请求失败的时候使用本地服务

在输入框输入要搜索的词,点击圆圆的那个按钮,就会搜索wiki,并把搜索结果显示为消息,之后就可以提问,会自动将上下文一起提交给ai

思维导图

实验性功能,按enter添加新节点

时间线

渲染和编辑时间线,并支持导出图片,支持将时间线内容导出为json,支持导入json并渲染时间线

mermaid编辑器

编辑和预览mermaid

关系网络

编辑关系节点,实验性功能,尚不完善

OCR识别

使用ai识别图片内容

RAG工具

支持将笔记向量化,之前ai页面选择文档时,如果已经本地有了向量化向量,那么就可以直接使用,无需再次处理

MD编辑器

drawio

excalidraw白板

网页浏览

实验性功能,输入url则显示url内容,输入非url则显示bing搜索内容

正则表达式工具

支持测试正则表达式

api测试

实验性功能

图片编辑器

支持对图片进行编辑

Base64工具

jupyter风格的编辑器(伪)

需要本地有安装python,只是样式像,但是没有实现那种一步一步运行的功能

latex编辑器

shell

支持编写python、js代码运行,需要本地安装python或nodejs

json编辑器

小记

支持创作小记,右侧项点击可以修改

统计

简单的统计一些数据

归档

按标签分类文档

聊天

live2d模型

本地配置表情包和live2d模型,需要在api后端同级目录下,新建public/Resources目录,然后在该目录下创建json文件声明配置:

live2d配置实例(/Resources/model-list.json):

1
2
3
4
5
6
[
{
"value": "/Resources/a/b/modelX.model3.json",
"label": "模型X"
}
]

有live2d的情况下,会显示live2d,用户发送文本时,会播放模型的motion动作

表情包

表情包配置实例(/Resources/emoticons.json):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[
{
"id": "life1",
"name": "speak",
"path": "/Resources/emoticons/emoji/speak/speak.jpg",
"emotion": "life"
},
{
"id": "relax1",
"name": "懒",
"path": "/Resources/emoticons/懒.gif",
"emotion": "relax"
}
]

表情包信息会发送给ai,ai也会使用表情包(当前演示用的表情包来源于网络)

语音播放

点击左边这个按钮,会变蓝,启动ai生成完毕后自动请求语音播放。右边的按钮选择0语音模型

需要本地有indextts2服务端,可以使用这个:


本站总访问量