推荐一款Python开发的开源免费的在线笔记应用:Flatnotes
点赞、收藏、加关注,下次找我不迷路
开源免费,为自由而生
Flatnotes 完全开源免费,这意味着你可以自由地使用、修改和分发它。对于开发者来说,这是一个绝佳的学习和研究的项目,可以深入了解其代码结构和实现原理,甚至可以根据自己的需求进行定制开发。对于普通用户来说,不用担心任何使用成本,没有广告的干扰,能够专注于笔记的创作和管理。而且,开源的特性也保证了软件的安全性和透明度,你可以清楚地知道每一行代码的作用,不用担心隐私泄露等问题。
简洁设计,专注内容
Flatnotes 的设计理念非常明确,就是要成为一款无干扰的笔记应用,将你的笔记内容放在首位。它的用户界面简洁干净,没有复杂的文件夹、笔记本等结构,所有的笔记都一目了然。你可以通过强大的搜索和标签功能快速找到你需要的笔记,就像在一个整洁的书架上轻松找到你想要的那本书一样。同时,它还提供了快速访问全文搜索的功能,无论你在应用的哪个界面,只需按下键盘快捷键 “/”,就可以立即开始搜索,节省了大量的时间和精力。
功能丰富,满足多样需求
多模式编辑
Flatnotes 支持原始 / 所见即所得(WYSIWYG)两种 Markdown 编辑模式。如果你是 Markdown 高手,喜欢直接编写代码,那么原始模式可以让你尽情发挥;如果你更习惯直观的编辑方式,WYSIWYG 模式则能让你像使用传统文档编辑器一样轻松编辑笔记。这种灵活的编辑模式选择,满足了不同用户的使用习惯。
高级搜索与标签
高级搜索功能是 Flatnotes 的一大亮点。它不仅支持全文搜索,还可以根据标签、标题、修改时间等多种条件进行筛选和排序。你可以通过精确的搜索条件快速定位到你需要的笔记,大大提高了查找效率。同时,标签功能也让笔记的分类和管理更加方便。你可以为笔记添加不同的标签,然后通过标签快速筛选出相关的笔记,就像给笔记贴上了不同颜色的便签,一目了然。
主题切换
Flatnotes 提供了轻 / 暗两种主题,你可以根据自己的喜好和使用环境进行切换。在明亮的环境中,使用浅色主题可以让你的眼睛更加舒适;在夜间或低光环境下,深色主题则能减少眼睛的疲劳。这种贴心的设计,让你无论在何时何地使用 Flatnotes,都能有一个良好的视觉体验。
多认证选项
为了满足不同用户的安全需求,Flatnotes 提供了多种认证选项,包括无认证、只读、用户名 / 密码和 2FA(双因素认证)。如果你只是自己使用,不需要太高的安全性,那么可以选择无认证模式;如果你需要与他人共享笔记,但又不想让他们随意修改,那么只读模式是一个不错的选择;如果你对安全要求较高,那么可以使用用户名 / 密码或 2FA 认证,确保只有授权的用户才能访问你的笔记。
支持 Wikilink
Wikilink 是 Flatnotes 的一个非常实用的功能,它允许你在笔记中轻松链接到其他笔记。你只需要使用 [[My Other Note]] 这样的语法,就可以在当前笔记中创建一个指向其他笔记的链接。当你点击这个链接时,就可以快速跳转到对应的笔记,方便你在不同的笔记之间进行关联和引用,构建自己的知识网络。
Restful API
对于开发者来说,Flatnotes 提供的 Restful API 是一个非常强大的工具。你可以使用这个 API 与其他应用进行集成,实现更多的功能扩展。例如,你可以将 Flatnotes 与你的自动化脚本集成,实现笔记的自动备份和同步;你也可以将它与你的网站集成,实现笔记的在线展示和分享。
多种部署方式,灵活便捷
托管部署
如果你想快速开始使用 Flatnotes,那么托管部署是一个不错的选择。你可以将它托管在 PikaPods 上,只需点击一个按钮,按照提示进行操作,就可以轻松完成部署。这种方式非常适合那些不想自己搭建服务器的用户,节省了大量的时间和精力。
自建部署
如果你有一定的技术基础,并且想要更好地控制自己的数据和服务器,那么自建部署是一个更好的选择。Flatnotes 推荐使用 Docker 进行自建部署,你可以通过 Docker Compose 或 Docker Run 命令快速部署 Flatnotes。例如,使用以下 Docker Compose 示例:
version: "3"
services:
flatnotes:
container_name: flatnotes
image: dullage/flatnotes:latest
environment:
PUID: 1000
PGID: 1000
FLATNOTES_AUTH_TYPE: "password"
FLATNOTES_USERNAME: "user"
FLATNOTES_PASSWORD: "changeMe!"
FLATNOTES_SECRET_KEY: "aLongRandomSeriesOfCharacters"
volumes:
- "./data:/data"
# Optional. Allows you to save the search index in a different location:
# - "./index:/data/.flatnotes"
ports:
- "8080:8080"
restart: unless-stopped
通过这种方式,你可以根据自己的需求进行定制化配置,确保 Flatnotes 能够完美地运行在你的服务器上。
项目使用技术栈一览
根据 package-lock.json 文件以及项目的结构和配置文件,以下是 Flatnotes 项目所用技术栈的表格:
分类 | 技术 / 工具 | 用途 |
前端构建工具 | Vite 6.2.4 | 快速的前端构建工具,用于开发和打包前端资源 |
CSS 处理 | PostCSS 8.5.3 | 用于将 CSS 转换为 JavaScript 可以处理的对象,便于进行各种转换和优化 |
Tailwind CSS(从 tailwind.config.js 推测) | 实用类优先的 CSS 框架,用于快速构建用户界面 | |
JavaScript 库 | Mousetrap 1.6.5 | 用于处理键盘事件,实现快捷键功能 |
Dompurify 2.5.8 | 用于净化 HTML 字符串,防止 XSS 攻击 | |
Markdown 处理 | - | 项目以 Markdown 文件存储笔记,可能使用了相关的 Markdown 解析和渲染库 |
后端框架 | FastAPI | 后端server |
容器化与部署 | Docker | 推荐的部署方式,使用 Docker 容器来运行应用 |
依赖管理 | Pipenv(从 Pipfile 和 Pipfile.lock 推测) | 用于 Python 项目的依赖管理 |
npm(从 package.json 和 package-lock.json 可知) | 用于 JavaScript 项目的依赖管理 | |
代码格式化 | Prettier(从 prettier.config.js 可知) | 用于代码格式化,保持代码风格一致 |
API 设计 | Restful API | 提供 Restful API,方便与其他应用集成 |
搜索功能 | - | 项目提供高级搜索功能,可能使用了全文搜索库 |
认证机制 | - | 支持多种认证选项(无认证、只读、用户名 / 密码、2FA),可能使用了相关的认证库 |
数据库 | - | 项目无数据库,使用扁平文件夹存储 Markdown 文件 |
图标库 | @mdi/js 7.4.47 | 提供 Material Design 图标集 |
Vue 相关 | @jamescoyle/vue-icon 0.1.2 | 用于在 Vue 项目中使用图标 |
可能使用了 Vue 2 或 Vue 3(从部分依赖的 peerDependencies 推测) | 用于构建用户界面 |
项目地址:
https://github.com/dullage/flatnotes