Recently, I came across a note-taking application called trilium. As stated in its README:
Build your personal knowledge base with Trilium Notes.
Using this software, it is easy to build a personal knowledge base. Its unique design and high extensibility have attracted me.
Features#
There are five main features that attract me to this software:
- Unique directory structure design, where a single note can act as both a "file" and a "folder," making it easy to organize documents.
- Notes support custom icons, viewing edit history, cloning (similar to hard links in a file system), and more.
- WYSIWYG rich text editor with a good editing experience.
- Highly extensible, allowing customization of buttons, page elements, and batch operations on notes through the API.
- Separation of frontend and backend, enabling easy sharing and synchronization of notes across multiple platforms.
Running#
This software has multiple running modes, such as:
- Opening the client locally, where note content is only stored locally.
- Deploying it on a server and setting the server address in the local client, enabling periodic synchronization of note content between the local and cloud.
- Deploying it on a server and accessing the server address directly, allowing direct interaction with the server through a web browser.
I personally recommend using the second method and deploying a backup of notes on a server.
Installation#
To install the client, you can visit trilium - release. If you need Chinese translation, you can install trilium-translation - release.
Deployment#
In general, we can directly deploy the server using the compressed package method. The process is very simple, just follow the steps.
Showcase#
Here are a few typical features showcased.
Documents and Sub-documents#
The right sidebar displays document content and previews of sub-documents.
Note Cloning#
The same note can be organized in different locations within the directory.
Note Editing#
A mature rich text editor.
Custom Buttons#
Custom buttons can be added to the sidebar, which, when clicked, generate today's note and its two sub-notes, "Study" and "Entertainment."
Note Synchronization#
Synchronization of note content with a remote server.
Advanced#
For more advanced requirements, you can refer to Trilium: A Highly Customizable Personal Knowledge Base (Advanced Guide).
If you want to write your own scripts, you can refer to the official API documentation:
- Frontend: Class: FrontendScriptApi
- Backend: Class: BackendScriptApi