思源笔记是一款本地优先的个人知识管理系统, 支持细粒度块级引用和 Markdown 所见即所得。
欢迎到思源笔记官方讨论区了解更多。同时也欢迎关注 B3log 开源社区微信公众号 B3log开源
:
所有本地功能都是免费的。
- 内容块
- 块级引用和双向链接
- 自定义属性
- SQL 查询嵌入
- 协议
siyuan://
- 编辑器
- Block 风格
- Markdown 所见即所得
- 列表大纲
- 块缩放聚焦
- 块横向排版
- 百万字大文档编辑
- 数学公式、图表、流程图、甘特图、时序图、五线谱等
- 网页剪藏
- PDF 标注双链
- 导出
- 引用块和嵌入块
- 带 assets 文件夹的标准 Markdown
- PDF、Word 和 HTML
- 复制到微信公众号、知乎和语雀
- 通过第三方云端存储服务实现端到端加密数据同步和备份
- S3
- WebDAV
- 间隔重复
- 模板片段
- JavaScript/CSS 代码片段
- Android/iOS APP
- Docker 部署
- API
- 社区集市
云端服务需要付费订阅。
- 尊贵身份标识
- 端到端加密数据同步和备份
- 云端图床服务
- 定时微信提醒
- 云端收集箱
桌面端和移动端建议优先考虑通过应用市场安装,这样以后升级版本时可以一键更新。
Docker 部署文档
在服务器上伺服思源最简单的方案是通过 Docker 部署。
- 镜像名称
b3log/siyuan
- 镜像地址
整体程序位于 /opt/siyuan/
下,基本上就是 Electron 安装包 resources 文件夹下的结构:
- appearance:图标、主题、多语言
- guide:帮助文档
- stage:界面和静态资源
- kernel:内核程序
构建 Docker 镜像时设置了入口:ENTRYPOINT [ "/opt/siyuan/kernel" ]
,使用 docker run b3log/siyuan
并带参即可启动:
--workspace
指定工作空间文件夹路径,在宿主机上通过-v
挂载到容器中
更多的参数可参考 --help
。下面是一条启动命令示例:docker run -v workspace_dir_host:workspace_dir_container -p 6806:6806 b3log/siyuan --workspace=workspace_dir_container
workspace_dir_host
:宿主机上的工作空间文件夹路径workspace_dir_container
:容器内工作空间文件夹路径,和后面--workspace
指定成一样的
为了简化,建议将 workspace 文件夹路径在宿主机和容器上配置为一致的,比如将 workspace_dir_host
和 workspace_dir_container
都配置为 /siyuan/workspace
,对应的启动命令示例:docker run -v /siyuan/workspace:/siyuan/workspace -p 6806:6806 -u 1000:1000 b3log/siyuan --workspace=/siyuan/workspace/
。
镜像中是使用默认创建的普通用户 siyuan
(uid 1000/gid 1000)来启动内核进程的,所以在宿主机创建工作空间文件夹时请注意设置该文件夹所属用户组:chown -R 1000:1000 /siyuan/workspace
,在启动容器时需要带参数 -u 1000:1000
。
使用 NGINX 反向代理可以隐藏 6806 端口,请注意:
- 配置 WebSocket 反代
/ws
我们会在有重大更新前发布内部预览版,请访问 https://github.com/siyuan-note/insider。
- 中文讨论区 官方支持渠道
- 用户社区汇总 由热心用户建立的社区
- Awesome SiYuan 由热心用户整理的资源
以前不会、现在不会,将来也不会。详情请看如何评价思源笔记? - 知乎。
这个问题因人而异,很难统一回答。如果你不太确定思源是否适合你,请看如下建议:
-
如果你需要经常分享笔记或者与别人协作编辑,并且需要数据表格功能,推荐使用:
-
如果你喜欢使用纯文本 Markdown 文件存储笔记,推荐使用:
数据保存在工作空间文件夹下,在工作空间 data 文件夹下:
assets
用于保存所有插入的资源文件emojis
用于保存自定义图标表情图片snippets
用于保存代码片段storage
用于保存命名查询和闪卡数据等templates
用于保存模板片段widgets
用于保存挂件- 其余文件夹就是用户自己创建的笔记本文件夹,笔记本文件夹下
.sy
后缀的文件用于保存文档数据,数据格式为 JSON
不支持通过第三方同步盘进行数据同步,否则可能会导致数据损坏。
虽然不支持第三方同步盘,但是支持第三方云端存储服务,可在 设置 - 云端 - 云端存储服务提供商 中进行选择和配置,目前已经支持:
- S3 兼容的对象存储服务,比如七牛云、阿里云 OSS、Cloudflare R2
- WebDAV 协议,比如 TeraCLOUD
通过第三方云端存储服务同步数据同样是端到端加密的,第三方云端存储服务提供商无法获得我们的明文数据。
另外,也可以考虑手动导出导入 Data 实现数据同步:
- 桌面端:设置 - 导出 - 导出 Data / 导入 Data
- 移动端:右侧栏 - 关于 - 导出 Data / 导入 Data
思源笔记是完全开源的,欢迎参与贡献:
更多细节请参考开发指南。
- 如果是通过应用商店安装的,请通过应用商店更新
- 如果是桌面端通过安装包安装的,可打开 设置 - 关于 - 自动下载更新安装包 选项,这样思源会自动下载最新版安装包并提示安装
- 如果是通过手动安装包安装的,请再次下载安装包安装
可在 设置 - 关于 - 当前版本 中 检查更新,也可以通过关注 GitHub Releases 或者思源笔记公告来获取新版本。
注意:切勿将工作空间放置于安装目录下,因为更新版本会清空安装目录下的所有文件
文档被删除后不会出现在操作系统回收站中,而是直接删除,删除时思源会生成数据历史。
请使用 Shift+Enter。
在列表项下的第一个子块是省略块标的。可以将光标移到这个块中,然后通过 Ctrl+/ 触发它的块标菜单。
- 分享文档到链滴
- 导出导入
.sy.zip
数据包 - 通过网络伺服
- 导出导入 Markdown
- 导出预览 中复制到第三方在线服务
-
如果之前在多个设备上正确初始化过数据仓库密钥的话,那么该密钥在所有设备上都是相同的,可以在 设置 - 关于 - 数据仓库密钥 - 复制密钥字符串 找回
-
如果之前没有正确配置(比如多个设备上密钥不一致)或者所有设备均不可用,已经无法获得密钥字符串,则可通过如下步骤重置密钥:
- 手动备份好数据,可通过 导出 Data 或者直接在文件系统上复制 工作空间/data/ 文件夹
- 设置 - 关于 - 数据仓库密钥 - 重置数据仓库
- 重新初始化数据仓库密钥,在一台设备上初始化密钥以后,其他设备导入密钥
- 云端使用新的同步目录,旧的同步目录已经无法使用,可以删除
- 已有的云端快照已经无法使用,可以删除
本地功能完全免费使用,云端服务需要年付订阅。
目前仅支持中国大陆地区用户订阅,非中国大陆地区用户请勿订阅。
思源的诞生离不开下列开源项目。
- https://github.com/golang/go
BSD-3-Clause License
- https://github.com/atotto/clipboard
BSD-3-Clause License
- https://github.com/vanng822/css
MIT License
- https://github.com/gofrs/flock
BSD-3-Clause License
- https://github.com/olahol/melody
BSD-2-Clause License
- https://github.com/pdfcpu/pdfcpu
Apache-2.0 License
- https://github.com/blastrain/vitess-sqlparser
Apache-2.0 License
- https://github.com/ConradIrwin/font
MIT License
- https://github.com/Masterminds/sprig
MIT License
- https://github.com/PuerkitoBio/goquery
BSD-3-Clause License
- https://github.com/Xuanwo/go-locale
Apache-2.0 License
- https://github.com/araddon/dateparse
MIT License
- https://github.com/common-nighthawk/go-figure
MIT License
- https://github.com/denisbrodbeck/machineid
MIT License
- https://github.com/dgraph-io/ristretto
Apache-2.0 License
- https://github.com/dustin/go-humanize
MIT License
- https://github.com/emirpasic/gods
BSD-2-Clause License
- https://github.com/facette/natsort
BSD-3-Clause License
- https://github.com/flopp/go-findfont
MIT License
- https://github.com/fsnotify/fsnotify
BSD-3-Clause License
- https://github.com/gabriel-vasile/mimetype
MIT License
- https://github.com/gin-contrib/cors
MIT License
- https://github.com/gin-contrib/gzip
MIT License
- https://github.com/gin-contrib/sessions
MIT License
- https://github.com/gin-gonic/gin
MIT License
- https://github.com/imroc/req
MIT License
- https://github.com/jinzhu/copier
MIT License
- https://github.com/mattn/go-sqlite3
MIT License
- https://github.com/mitchellh/go-ps
MIT License
- https://github.com/mssola/user_agent
MIT License
- https://github.com/panjf2000/ants
MIT License
- https://github.com/patrickmn/go-cache
MIT License
- https://github.com/radovskyb/watcher
BSD-3-Clause License
- https://github.com/sabhiram/go-gitignore
MIT License
- https://github.com/steambap/captcha
MIT License
- https://github.com/vmihailenco/msgpack
BSD-2-Clause License
- https://github.com/xrash/smetrics
MIT License
- https://github.com/jgm/pandoc
GPL-2.0 License
- https://github.com/microsoft/TypeScript
Apache-2.0 License
- https://github.com/electron/electron
MIT License
- https://github.com/visjs/vis-network
Apache-2.0 License
- https://github.com/mozilla/pdf.js
Apache-2.0 License
- https://github.com/blueimp/JavaScript-MD5
MIT License