siyuan/README.md

286 lines
14 KiB
Markdown
Raw Normal View History

2020-09-02 13:25:54 +08:00
<p align="center">
<img alt="SiYuan" src="https://b3log.org/images/brand/siyuan-128.png">
<br>
2022-05-20 11:26:51 +08:00
Build Your Eternal Digital Garden
2020-09-02 13:25:54 +08:00
<br><br>
<a title="Releases" target="_blank" href="https://github.com/siyuan-note/siyuan/releases"><img src="https://img.shields.io/github/release/siyuan-note/siyuan.svg?style=flat-square&color=FF9900"></a>
<a title="Downloads" target="_blank" href="https://github.com/siyuan-note/siyuan/releases"><img src="https://img.shields.io/github/downloads/siyuan-note/siyuan/total.svg?style=flat-square&color=blueviolet"></a>
2021-09-11 09:11:01 +08:00
<a title="Docker Pulls" target="_blank" href="https://hub.docker.com/r/b3log/siyuan"><img src="https://img.shields.io/docker/pulls/b3log/siyuan.svg?style=flat-square&color=99CCFF"></a>
2020-09-02 13:27:06 +08:00
<a title="Hits" target="_blank" href="https://github.com/siyuan-note/siyuan"><img src="https://hits.b3log.org/siyuan-note/siyuan.svg"></a>
2020-09-02 13:25:54 +08:00
</p>
2020-09-10 16:01:59 +08:00
<p align="center">
<a href="README_zh_CN.md">中文</a>
2020-09-10 16:01:59 +08:00
</p>
2020-08-30 23:47:52 +08:00
2022-02-23 00:03:17 +08:00
## 💡 Introduction
2020-09-10 16:01:59 +08:00
2022-02-23 00:03:17 +08:00
SiYuan is a local-first personal knowledge management system, support fine-grained block-level reference and Markdown
WYSIWYG.
2021-09-01 19:44:49 +08:00
2022-05-21 23:20:00 +08:00
![feature0.png](https://b3logfile.com/file/2022/05/feature0-a82bdd3f.png)
2021-02-06 23:50:34 +08:00
2022-05-21 23:20:00 +08:00
![feature1-1.png](https://b3logfile.com/file/2022/05/feature1-1-740d9a02.png)
2020-10-06 09:22:23 +08:00
2022-02-23 00:03:17 +08:00
## ✨ Features
### Free
All local features are free.
* Content block
* Block-level reference and two-way links
* Document relationship diagram, global relationship diagram
* Custom attributes
* SQL query embed
* Protocol `siyuan://`
* Editor
* Block-style
* Markdown WYSIWYG
* List outline
* Block zoom-in
* Block horizontal layout
* Million-word large document editing
* Mathematical formulas, charts, flowcharts, Gantt charts, timing charts, staffs, etc.
* Web clipping
* PDF Annotation link
* Export
* Block ref and embed
* Standard Markdown with assets
* PDF, Word and HTML
* Copy to WeChat MP, Zhihu and Yuque
* Community bazaar
* Themes
* Icons
* Templates
* Widgets
* Hierarchical tag
* Multi-tab, drag and drop to split screen
* Fulltext search
* Template snippet
* Keymap
* Themes and icons
2021-05-14 22:55:14 +08:00
* Android APP
2021-11-17 21:38:15 +08:00
* iOS APP
2022-02-23 00:03:17 +08:00
* Docker deployment
2021-09-17 10:43:28 +08:00
* [API](https://github.com/siyuan-note/siyuan/blob/master/API.md)
2020-08-30 23:49:14 +08:00
2022-02-23 00:03:17 +08:00
### Paid subscription
2021-07-27 23:00:32 +08:00
2022-02-23 00:03:17 +08:00
Cloud services require a paid subscription.
2021-07-27 23:06:15 +08:00
2022-02-23 00:03:17 +08:00
* VIP identity
* End-to-end encrypted data synchronization
* End-to-end encrypted data backup
* Cloud assets serving
* WeChat notification
* Cloud inbox
2021-07-27 23:00:32 +08:00
2022-02-23 00:03:17 +08:00
## 🗺️ Roadmap
2020-09-03 11:46:50 +08:00
2022-06-12 10:30:15 +08:00
* [SiYuan development plan and progress](https://github.com/orgs/siyuan-note/projects/1)
* [SiYuan Change logs](CHANGELOG.md)
2020-09-03 23:13:25 +08:00
2022-02-23 00:03:17 +08:00
## 🛠️ Download Setup
2020-09-10 16:01:59 +08:00
2022-05-21 23:13:04 +08:00
It is recommended to give priority to installing through the application market on the desktop and mobile, so that you can upgrade the version with one click in the future.
### App Market
2022-02-23 00:03:17 +08:00
* [App Store](https://apps.apple.com/us/app/siyuan/id1583226508)
2022-02-14 12:47:00 +08:00
* [Google Play](https://play.google.com/store/apps/details?id=org.b3log.siyuan)
2022-02-25 22:01:32 +08:00
* [Microsoft Store](https://www.microsoft.com/store/apps/9P7HPMXP73K4)
2020-09-10 16:01:59 +08:00
2022-05-21 23:13:04 +08:00
### Docker Hosting
<details>
<summary>Docker Deployment</summary>
#### Overview
The easiest way to serve SiYuan on a server is to deploy it through Docker.
* Image name `b3log/siyuan`
* [Image URL](https://hub.docker.com/r/b3log/siyuan)
#### File structure
The overall program is located under `/opt/siyuan/`, which is basically the structure under the resources folder of the Electron installation package:
* appearance: icon, theme, languages
* guide: user guide document
* stage: interface and static resources
* kernel: kernel program
#### Entrypoint
The entry point is set when building the Docker image: `ENTRYPOINT ["/opt/siyuan/kernel" ]`, use `docker run b3log/siyuan` with parameters to start:
* `--workspace` specifies the workspace folder path, mounted to the container via `-v` on the host
More parameters can refer to `--help`. The following is an example of a startup command: `docker run -v workspace_dir_host:workspace_dir_container -p 6806:6806 b3log/siyuan --workspace=workspace_dir_container`
* `workspace_dir_host`: the workspace folder path on the host
* `workspace_dir_container`: The path of the workspace folder in the container, which is the same as specified in `--workspace`
To simplify, it is recommended to configure the workspace folder path to be consistent on the host and container, such as: `workspace_dir_host` and `workspace_dir_container` are configured as `/siyuan/workspace`, the corresponding startup commands is: `docker run -v /siyuan/workspace:/siyuan/workspace -p 6806:6806 -u 1000:1000 b3log/siyuan --workspace=/siyuan/workspace/`.
#### User permissions
2022-05-21 23:13:04 +08:00
2022-05-21 23:20:00 +08:00
In the image, the normal user `siyuan` (uid 1000/gid 1000) created by default is used to start the kernel process. Therefore, when the host creates a workspace folder, please pay attention to setting the user group of the folder: `chown -R 1000:1000 /siyuan/workspace`. The parameter `-u 1000:1000` is required when starting the container.
2022-05-21 23:13:04 +08:00
#### Hidden port
2022-05-21 23:13:04 +08:00
Use NGINX reverse proxy to hide port 6806, please note:
* Configure WebSocket reverse proxy `/ws`
</details>
### Installation Package
* [B3log](https://b3log.org/siyuan/en/download.html)
* [GitHub](https://github.com/siyuan-note/siyuan/releases)
### Insider Preview
2022-02-23 00:03:17 +08:00
To get the latest Insider Preview, please send an email with your GitHub login name to 845765@qq.com, and we will invite you to join the SiYuan Insider Preview team, thanks.
2021-03-08 09:08:32 +08:00
2022-02-23 00:03:17 +08:00
## 🏘️ Community
2020-09-10 16:01:59 +08:00
2022-06-11 23:40:29 +08:00
* [Issues](https://github.com/siyuan-note/siyuan/issues) Official support channels
* [Discord](https://discord.com/invite/bzfCBwMzdP) A community built by enthusiastic users
* [Awesome SiYuan](https://github.com/siyuan-note/awesome) Resources organized by enthusiastic users
2020-09-03 23:13:25 +08:00
2022-02-23 00:03:17 +08:00
## ❓ FAQ
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
### How does SiYuan store data?
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
The data is saved in the workspace folder (the default is in the user's home directory Documents/SiYuan, which can be modified in <kbd>Settings</kbd> - <kbd>About</kbd>), in the workspace data folder:
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
* `assets` are used to save all inserted asset files
* `templates` are used to save template snippets
* `widgets` are used to save widgets
2022-02-26 13:14:02 +08:00
* `emojis` are used to save emoji images
2022-02-23 00:03:17 +08:00
* The rest of the folders are the notebook folders created by the user, files with the suffix of `.sy` in the notebook folder are used to save the document data, and the data format is JSON
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
### Is SiYuan open source?
2021-11-29 19:36:27 +08:00
SiYuan is completely open source, and contributions are welcome:
2022-02-06 22:17:00 +08:00
* [User Interface and Kernel](https://github.com/siyuan-note/siyuan)
2022-06-15 15:36:21 +08:00
* [User Guide](https://github.com/siyuan-note/user-guide-en_US) and [Appearance](https://github.com/siyuan-note/appearance)
* [Data Parser](https://github.com/88250/protyle) and [Editor Engine](https://github.com/88250/lute)
* [End-to-end encryption](https://github.com/siyuan-note/encryption) and [Data repo](https://github.com/siyuan-note/dejavu)
2022-02-23 00:03:17 +08:00
* [Chrome Clipping Extension](https://github.com/siyuan-note/siyuan-chrome)
2022-06-15 15:36:21 +08:00
* [Android](https://github.com/siyuan-note/siyuan-android) and [iOS](https://github.com/siyuan-note/siyuan-ios)
2022-06-11 23:40:29 +08:00
For more details, please refer to [Development Guide](https://github.com/siyuan-note/siyuan/blob/master/.github/CONTRIBUTING.md).
2021-11-29 19:36:27 +08:00
2022-02-24 19:19:40 +08:00
### Is there any note for deleting docs?
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
After deletion, the doc will not appear in the operating system's recycle bin, but will be deleted directly. When deleted, SiYuan will generate edit history.
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
### How can I just wrap and not start a new paragraph?
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
Please use <kbd>Shift+Enter</kbd>.
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
### How to move the heading and blocks below it?
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
Fold the heading and move it later.
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
### How to select multiple blocks across pages?
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
Click at the beginning, hold down <kbd>Shift</kbd> and click at the end after scrolling the page.
2021-11-29 19:36:27 +08:00
2022-06-11 22:57:15 +08:00
## How to do find and replace?
2021-11-29 19:36:27 +08:00
2022-06-11 22:57:15 +08:00
Press <kbd>Ctrl+R</kbd> after selecting the keyword in the editor.
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
### How to use a third-party sync disk for data synchronization?
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
* Please only synchronize the `workspace/data/`, do not synchronize the entire workspace
* Please suspend third-party synchronization during the operation of SiYuan, otherwise data may be damaged. For details, please refer to [here](https://ld246.com/article/1626537583158)
* The data folder path on the Android is `internal storage device/Android/data/org.b3log.siyuan/files/siyuan/data/`, which is a private path of the application and cannot be read by other programs and can only be copied manually
* There is a conflict between third-party synchronization and SiYuan synchronization, please do not use at the same time
2021-11-29 19:36:27 +08:00
2022-02-24 19:18:34 +08:00
### What should I do if I forget the end-to-end password?
2021-11-29 19:36:27 +08:00
2022-02-24 19:18:34 +08:00
* Use the new workspace on the main device, manually copy the old workspace data folder to the new workspace
* New workspace can reset password
* The cloud uses the new cloud synchronization directory
2022-02-24 19:19:40 +08:00
If it is a mobile-end, uninstall and reinstall it (note: When the mobile-enduninstalls the application, the local workspace data will be deleted together).
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
### Do I need to pay for it?
2021-11-29 19:36:27 +08:00
2022-06-11 22:57:15 +08:00
Local functions are completely free to use, [Cloud services](https://b3log.org/siyuan/en/pricing.html) requires annual subscription, price is $72/year。
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
Users in non-Mainland China regions should not pay for subscriptions, because SiYuan Cloud Server cannot guarantee availability in non-Mainland China regions.
2021-11-29 19:36:27 +08:00
2022-02-23 00:03:17 +08:00
## 💌 Participate in contribution
2020-12-12 23:48:56 +08:00
SiYuan is completely open source, and contributions are welcome:
2020-12-12 23:48:56 +08:00
* [User Interface and Kernel](https://github.com/siyuan-note/siyuan)
2022-02-23 00:03:17 +08:00
* [User Guide](https://github.com/siyuan-note/user-guide-en_US)
* [Appearance](https://github.com/siyuan-note/appearance)
* [Data Parser](https://github.com/88250/protyle)
* [Editor Engine](https://github.com/88250/lute)
* [End-to-end encryption](https://github.com/siyuan-note/encryption)
* [Chrome Clipping Extension](https://github.com/siyuan-note/siyuan-chrome)
* [Android](https://github.com/siyuan-note/siyuan-android)
* [iOS](https://github.com/siyuan-note/siyuan-ios)
2021-01-12 23:08:31 +08:00
2022-06-11 22:57:47 +08:00
For more details, please refer to [Development Guide](https://github.com/siyuan-note/siyuan/blob/master/.github/CONTRIBUTING.md).
2022-02-23 00:03:17 +08:00
## 🙏 Acknowledgement
2021-01-12 23:08:31 +08:00
2022-02-23 00:03:17 +08:00
SiYuan is made possible by the following open source projects.
2021-09-17 10:05:42 +08:00
2021-01-12 23:08:31 +08:00
* [https://github.com/golang/go](https://github.com/golang/go) `BSD-3-Clause License`
2021-09-27 11:47:03 +08:00
* [https://github.com/atotto/clipboard](https://github.com/atotto/clipboard) `BSD-3-Clause License`
2021-01-12 23:08:31 +08:00
* [https://github.com/vanng822/css](https://github.com/vanng822/css) `MIT License`
2022-05-22 10:13:27 +08:00
* [https://github.com/gofrs/flock](https://github.com/gofrs/flock) `BSD-3-Clause License`
2021-01-12 23:08:31 +08:00
* [https://github.com/88250/gulu](https://github.com/88250/gulu) `Mulan PSL v2`
2021-09-17 10:05:42 +08:00
* [https://github.com/88250/lute](https://github.com/88250/lute) `Mulan PSL v2`
2021-01-12 23:08:31 +08:00
* [https://github.com/olahol/melody](https://github.com/olahol/melody) `BSD-2-Clause License`
2021-09-17 10:05:42 +08:00
* [https://github.com/pdfcpu/pdfcpu](https://github.com/pdfcpu/pdfcpu) `Apache-2.0 License`
* [https://github.com/88250/protyle](https://github.com/88250/protyle) `Mulan PSL v2`
2022-05-18 18:10:46 +08:00
* [https://github.com/blastrain/vitess-sqlparser](https://github.com/blastrain/vitess-sqlparser) `Apache-2.0 License`
2021-09-24 16:31:41 +08:00
* [https://github.com/ConradIrwin/font](https://github.com/ConradIrwin/font) `MIT License`
2021-01-12 23:08:31 +08:00
* [https://github.com/Masterminds/sprig](https://github.com/Masterminds/sprig) `MIT License`
2022-05-22 10:13:27 +08:00
* [https://github.com/PuerkitoBio/goquery](https://github.com/PuerkitoBio/goquery) `BSD-3-Clause License`
2021-12-13 12:01:07 +08:00
* [https://github.com/araddon/dateparse](https://github.com/araddon/dateparse) `MIT License`
2021-01-12 23:08:31 +08:00
* [https://github.com/common-nighthawk/go-figure](https://github.com/common-nighthawk/go-figure) `MIT License`
2022-05-11 11:31:45 +08:00
* [https://github.com/denisbrodbeck/machineid](https://github.com/denisbrodbeck/machineid) `MIT License`
* [https://github.com/dgraph-io/ristretto](https://github.com/dgraph-io/ristretto) `Apache-2.0 License`
2021-01-12 23:08:31 +08:00
* [https://github.com/dustin/go-humanize](https://github.com/dustin/go-humanize) `MIT License`
* [https://github.com/emirpasic/gods](https://github.com/emirpasic/gods) `BSD-2-Clause License`
* [https://github.com/facette/natsort](https://github.com/facette/natsort) `BSD-3-Clause License`
2021-09-17 10:05:42 +08:00
* [https://github.com/flopp/go-findfont](https://github.com/flopp/go-findfont) `MIT License`
2021-01-12 23:08:31 +08:00
* [https://github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify) `BSD-3-Clause License`
* [https://github.com/gabriel-vasile/mimetype](https://github.com/gabriel-vasile/mimetype) `MIT License`
2021-09-17 10:05:42 +08:00
* [https://github.com/gin-contrib/cors](https://github.com/gin-contrib/cors) `MIT License`
* [https://github.com/gin-contrib/gzip](https://github.com/gin-contrib/gzip) `MIT License`
* [https://github.com/gin-contrib/sessions](https://github.com/gin-contrib/sessions) `MIT License`
2021-01-12 23:08:31 +08:00
* [https://github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) `MIT License`
* [https://github.com/imroc/req](https://github.com/imroc/req) `MIT License`
2021-09-17 10:05:42 +08:00
* [https://github.com/jinzhu/copier](https://github.com/jinzhu/copier) `MIT License`
* [https://github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) `MIT License`
2021-09-28 10:16:52 +08:00
* [https://github.com/mattn/go-zglob](https://github.com/mattn/go-zglob) `MIT License`
2021-01-12 23:08:31 +08:00
* [https://github.com/mitchellh/go-ps](https://github.com/mitchellh/go-ps) `MIT License`
* [https://github.com/mssola/user_agent](https://github.com/mssola/user_agent) `MIT License`
* [https://github.com/panjf2000/ants](https://github.com/panjf2000/ants) `MIT License`
2022-05-22 10:13:27 +08:00
* [https://github.com/patrickmn/go-cache](https://github.com/patrickmn/go-cache) `MIT License`
* [https://github.com/radovskyb/watcher](https://github.com/radovskyb/watcher) `BSD-3-Clause License`
2021-09-17 10:05:42 +08:00
* [https://github.com/siyuan-note/encryption](https://github.com/siyuan-note/encryption) `Mulan PSL v2`
2022-05-22 10:13:27 +08:00
* [https://github.com/vmihailenco/msgpack](https://github.com/vmihailenco/msgpack) `BSD-2-Clause License`
2021-09-17 10:05:42 +08:00
* [https://github.com/xrash/smetrics](https://github.com/xrash/smetrics) `MIT License`
2021-01-12 23:08:31 +08:00
* [https://github.com/microsoft/TypeScript](https://github.com/microsoft/TypeScript) `Apache-2.0 License`
* [https://github.com/electron/electron](https://github.com/electron/electron) `MIT License`
2021-09-17 10:05:42 +08:00
* [https://github.com/Vanessa219/vditor](https://github.com/Vanessa219/vditor) `MIT License`
2021-04-28 23:34:10 +08:00
* [https://github.com/visjs/vis-network](https://github.com/visjs/vis-network) `Apache-2.0 License`
2021-09-17 10:05:42 +08:00
* [https://github.com/mozilla/pdf.js](https://github.com/mozilla/pdf.js) `Apache-2.0 License`
2021-01-12 23:08:31 +08:00
* [https://github.com/blueimp/JavaScript-MD5](https://github.com/blueimp/JavaScript-MD5) `MIT License`