mirror of
https://github.com/zadam/trilium.git
synced 2025-10-30 01:36:24 +01:00
feat(docs): document some of the technologies used
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
# Technologies used
|
||||
One core aspect of Trilium that allows it to have support for multiple [Note Types](../Note%20Types) is the fact that it makes use of various off-the-shelf or reusable libraries.
|
||||
|
||||
The sub-pages showcase some of the technologies used, for a better understanding of how Trilium works but also to credit the developers of that particular technology.
|
||||
@@ -0,0 +1,34 @@
|
||||
# CKEditor
|
||||
## Editor core
|
||||
|
||||
The CKEditor is the WYSIWYG (standing for What You See Is What You Get) editor behind [Text](../../Note%20Types/Text.md) notes.
|
||||
|
||||
Their website is [ckeditor.com](https://ckeditor.com/).
|
||||
|
||||
CKEditor by itself is a commercial product, but the core is open-source. As described in [its documentation](https://ckeditor.com/docs/ckeditor5/latest/features/index.html), the editor supports quite a large number of features. Do note that not all the features are enabled in Trilium.
|
||||
|
||||
## Premium features
|
||||
|
||||
Some features are marked as premium in the CKEditor feature set. This means that they cannot be used without a license.
|
||||
|
||||
Trilium cannot benefit from any of these premium features as they require a commercial license, however we are in discussions with the CKEditor team to allow us to use a subset of these premium features such as [Slash commands](https://ckeditor.com/docs/ckeditor5/latest/features/slash-commands.html).
|
||||
|
||||
## Plugins
|
||||
|
||||
The CKEditor ecosystem is quite extensible, in the sense that custom plugins can be written to extend the functionality of the editor beyond its original scope.
|
||||
|
||||
Trilium makes use of such features:
|
||||
|
||||
* The math feature is added by a version of [isaul32/ckeditor5-math: Math feature for CKEditor 5.](https://github.com/isaul32/ckeditor5-math) modified by us to fit our needs.
|
||||
* We also make use of modified upstream plugins such as [ckeditor/ckeditor5-mermaid](https://github.com/ckeditor/ckeditor5-mermaid) to allow inline Mermaid code.
|
||||
* [mlewand/ckeditor5-keyboard-marker: Plugin adds support for the keyboard input element (<kbd>) to CKEditor 5.](https://github.com/mlewand/ckeditor5-keyboard-marker)
|
||||
* A modified version of [ThomasAitken/ckeditor5-footnotes: Footnotes plugin for CKEditor5](https://github.com/ThomasAitken/ckeditor5-footnotes) to allow footnotes.
|
||||
|
||||
Apart from that, Trilium also has its own set of specific plugins such as:
|
||||
|
||||
* Cut to note
|
||||
* Include note
|
||||
* Mentions, for linking pages.
|
||||
* Markdown import.
|
||||
* Reference links.
|
||||
* etc.
|
||||
@@ -0,0 +1,4 @@
|
||||
# Excalidraw
|
||||
[Excalidraw](https://excalidraw.com/) is the technology behind the [Canvas](../../Note%20Types/Canvas.md) notes. The source code of the library is available on [GitHub](https://github.com/excalidraw/excalidraw).
|
||||
|
||||
We are using an unmodified version of it, so it shares the same [issues](https://github.com/excalidraw/excalidraw/issues) as the original.
|
||||
@@ -0,0 +1,10 @@
|
||||
# Leaflet
|
||||
Leaflet is the library behind [Geo map](../../Note%20Types/Geo%20map.md) notes.
|
||||
|
||||
## Plugins
|
||||
|
||||
Leaflet is also highly customizable via external plugins.
|
||||
|
||||
Currently we use:
|
||||
|
||||
* [mpetazzoni/leaflet-gpx: A GPX track plugin for Leaflet.js](https://github.com/mpetazzoni/leaflet-gpx)
|
||||
@@ -0,0 +1,12 @@
|
||||
# MindElixir
|
||||
MindElixir is the library we are using for the [Mind Map](../../Note%20Types/Mind%20Map.md) note types.
|
||||
|
||||
The main library is available on [GitHub as mind-elixir-core](https://github.com/SSShooter/mind-elixir-core/issues).
|
||||
|
||||
The library is embedded as-is without additional modifications.
|
||||
|
||||
Issues with its functionality should generally be reported [upstream](https://github.com/ssshooter/mind-elixir-core).
|
||||
|
||||
## Plugins
|
||||
|
||||
MindElixir supports plugins, and one such plugin we are making use of is [SSShooter/node-menu: A node menu plugin of mind-elixir](https://github.com/SSShooter/node-menu), which allows editing the fonts, colors, links of nodes.
|
||||
Reference in New Issue
Block a user