Skip to content

xupingmao/xnote

Repository files navigation

Xnote

Coverage Status Docker Image

xnote是一款面向个人的轻量级笔记系统,提供多种维度的数据管理功能,致力于把个人从信息过载中解放出来。它主要有如下特性

  • 拥有丰富的数据管理能力,支持多种笔记格式以及文件管理功能
  • 默认提供了一些常用的工具,同时提供扩展能力,用户可以编写各种插件满足自己的需求
  • 跨平台,支持Windows、Mac、Linux三大平台,可以在云服务上部署,也可以在本地运行
  • 100%自由的数据控制权,可以运行在多种数据库环境中
  • 支持小规模的多用户,面向多用户的商业场景使用请谨慎

目前xnote定位是一个面向个人使用的小型笔记产品,不会重点投入以下方向

  • 大规模的多用户支持
  • 多用户协作功能

如果你热爱技术爱折腾、需要多元的数据处理能力、希望完全掌控自己的文档数据,本产品将会是一个不错的尝试,欢迎试用反馈。

  • 体验demo网址 https://1k5u680558.goho.co/
  • 测试账号 user01/123456, user02/123456 友情提示:管理员会不定期清理数据,请勿存放重要数据

以下是一些页面展示

功能列表 功能列表

笔记本 笔记

markdown页面 markdown


项目地址

如果使用过程中遇到问题,欢迎在项目主页提issue或者评论。

安装&运行

物理机安装

安装依赖环境

  • Python >= 3.6
  • 安装依赖的软件包
    • 最小化安装(使用sqlite) python3 -m pip install -r config/requirements.min.txt
    • Mac/Linux执行 python -m pip install -r config/requirements.txt
    • Windows执行 python -m pip install -r config/requirements.win.txt

配置和启动

默认的配置文件位于config/boot/boot.default.properties,具体的功能参考配置的注释

# 切换到xnote目录
> cd xnote
# 复制配置并且进行自定义配置
> cp config/boot/boot.min.properties boot.local.properties
# 启动
> python3 app.py --config boot.local.properties

如果不修改端口号,启动之后在浏览器打开 http://localhost:1234/ 就可以使用了,初始化的管理员账号是admin,默认密码是 123456

Docker-compose

  1. 创建持久化数据目录 mkdir data
  2. 创建配置文件 cp ./config/boot/boot.default.properties ./boot.local.properties
  3. 根据自己的需求修改 boot.local.properties
  4. 执行命令 docker-compose up -d

在云服务平台部署

主要功能

笔记管理

  • 支持多种格式:markdown/表格/相册/列表
  • 组织功能:通过笔记本/标签/优先级来管理文档
  • 分享功能:在笔记的详情页面,点击【更多】下拉列表里面的分享,可以将文章分享给未登录用户查看
  • 优先级管理:置顶、归档功能
  • 备份功能:笔记的修改历史
  • 搜索功能:支持整个知识库搜索和项目内搜索
  • 评论功能:支持登录用户的评论
  • 访问统计:最近、常用的访问统计
  • 其他文档工具

文件管理

  • 多种视图:列表、网格
  • 文件操作:文件上传、下载、新建、删除、重命名、移动等操作
  • 文件工具:代码编辑器、文本阅读器、二进制查看器、文件内容搜索等等
  • 大文件支持:文件下载支持断点续传,支持超大文件上传(测试过1G文件)
  • 扩展:支持开发插件扩展

工具箱

  • Python文档(pydoc)
  • 文本处理(文本对比、代码生成、密码生成)
  • 编解码工具(base64、md5、进制转换、等等)
  • 条形码、二维码生成器
  • 图像处理(合并、拆分、灰度转换)
  • 提供扩展能力,开发者可以自己开发插件

系统扩展

插件机制

由于每个人的需求不同,单一系统很难满足,开发者可以根据自己需要编写插件来扩展系统的功能。具体可以参考文档 插件扩展

具体特性如下

  • 插件中可以监听系统消息,包括笔记、提醒、文件、时间、系统五种类型的消息
  • 插件可以通过category属性设置分类,显示在笔记、文件、系统等功能的选项入口中
  • 可以通过模板创建插件

二次开发

  • xnote现在已经打包上传到pypixnote-web, 这样可以通过模块化的方式进行二次开发

相关文档

协议

  • GPL