mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +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