From 80cfd73caec18e0d611baca320a5b16b934248fa Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 29 Mar 2025 12:06:36 +0200 Subject: [PATCH] feat(docs): document some of the technologies used --- docs/User Guide/!!!meta.json | 76 ++++++++++++++++++- .../Advanced Usage/Technologies used.md | 4 + .../Technologies used/CKEditor.md | 34 +++++++++ .../Technologies used/Excalidraw.md | 4 + .../Technologies used/Leaflet.md | 10 +++ .../Technologies used/MindElixir.md | 12 +++ .../app/doc_notes/en/User Guide/!!!meta.json | 76 ++++++++++++++++++- .../Advanced Usage/Technologies used.html | 27 +++++++ .../Technologies used/CKEditor.html | 42 +++++++++- .../Technologies used/Excalidraw.html | 8 +- .../Technologies used/Leaflet.html | 28 +++++++ .../Technologies used/MindElixir.html | 12 ++- .../doc_notes/en/User Guide/navigation.html | 5 +- 13 files changed, 326 insertions(+), 12 deletions(-) create mode 100644 docs/User Guide/User Guide/Advanced Usage/Technologies used.md create mode 100644 docs/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.md create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used.html create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.html diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index a94c30c39..c9272927c 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -1521,8 +1521,24 @@ "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "KSZ04uQ2D1St", + "isInheritable": false, + "position": 10 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bxs-component", + "isInheritable": false, + "position": 20 + } + ], "format": "markdown", + "dataFileName": "Technologies used.md", "attachments": [], "dirFileName": "Technologies used", "children": [ @@ -1541,7 +1557,15 @@ "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "iPIMuisry3hd", + "isInheritable": false, + "position": 10 + } + ], "format": "markdown", "dataFileName": "CKEditor.md", "attachments": [] @@ -1561,7 +1585,15 @@ "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "gBbsAeiuUxI5", + "isInheritable": false, + "position": 10 + } + ], "format": "markdown", "dataFileName": "MindElixir.md", "attachments": [] @@ -1581,10 +1613,46 @@ "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "grjYqerjn243", + "isInheritable": false, + "position": 10 + } + ], "format": "markdown", "dataFileName": "Excalidraw.md", "attachments": [] + }, + { + "isClone": false, + "noteId": "MQHyy2dIFgxS", + "notePath": [ + "pOsGYCXsbNQG", + "tC7s2alapj8V", + "1YeN2MzFUluU", + "MQHyy2dIFgxS" + ], + "title": "Leaflet", + "notePosition": 40, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Leaflet.md", + "attachments": [] } ] } diff --git a/docs/User Guide/User Guide/Advanced Usage/Technologies used.md b/docs/User Guide/User Guide/Advanced Usage/Technologies used.md new file mode 100644 index 000000000..442b589a7 --- /dev/null +++ b/docs/User Guide/User Guide/Advanced Usage/Technologies used.md @@ -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. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.md b/docs/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.md index e69de29bb..8ade8060c 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.md +++ b/docs/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.md @@ -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 () 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. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.md b/docs/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.md index e69de29bb..ab0bb1e39 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.md +++ b/docs/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.md @@ -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. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.md b/docs/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.md new file mode 100644 index 000000000..181bcd9d5 --- /dev/null +++ b/docs/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.md @@ -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) \ No newline at end of file diff --git a/docs/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.md b/docs/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.md index e69de29bb..a969d480a 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.md +++ b/docs/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.md @@ -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. \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index 4f53aaabf..4c9b98201 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -1521,8 +1521,24 @@ "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "KSZ04uQ2D1St", + "isInheritable": false, + "position": 10 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bxs-component", + "isInheritable": false, + "position": 20 + } + ], "format": "html", + "dataFileName": "Technologies used.html", "attachments": [], "dirFileName": "Technologies used", "children": [ @@ -1541,7 +1557,15 @@ "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "iPIMuisry3hd", + "isInheritable": false, + "position": 10 + } + ], "format": "html", "dataFileName": "CKEditor.html", "attachments": [] @@ -1561,7 +1585,15 @@ "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "gBbsAeiuUxI5", + "isInheritable": false, + "position": 10 + } + ], "format": "html", "dataFileName": "MindElixir.html", "attachments": [] @@ -1581,10 +1613,46 @@ "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "grjYqerjn243", + "isInheritable": false, + "position": 10 + } + ], "format": "html", "dataFileName": "Excalidraw.html", "attachments": [] + }, + { + "isClone": false, + "noteId": "MQHyy2dIFgxS", + "notePath": [ + "pOsGYCXsbNQG", + "tC7s2alapj8V", + "1YeN2MzFUluU", + "MQHyy2dIFgxS" + ], + "title": "Leaflet", + "notePosition": 40, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 10 + } + ], + "format": "html", + "dataFileName": "Leaflet.html", + "attachments": [] } ] } diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used.html new file mode 100644 index 000000000..92fbce4d8 --- /dev/null +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used.html @@ -0,0 +1,27 @@ + + + + + + + + Technologies used + + + +
+

Technologies used

+ +
+

One core aspect of Trilium that allows it to have support for multiple  + Note Types 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.

+
+
+ + + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.html index cf23966e6..a363ce374 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.html @@ -12,7 +12,47 @@

CKEditor

-
+
+

Editor core

+

The CKEditor is the WYSIWYG (standing for What You See Is What You Get) + editor behind Text notes.

+

Their website is ckeditor.com.

+

CKEditor by itself is a commercial product, but the core is open-source. + As described in its documentation, + 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.

+

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:

+ +

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.
  • +
+
diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.html index 9548ecbad..6a57ba3ed 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.html @@ -12,7 +12,13 @@

Excalidraw

-
+
+

Excalidraw is the technology behind + the Canvas notes. + The source code of the library is available on GitHub.

+

We are using an unmodified version of it, so it shares the same issues as + the original.

+
diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.html new file mode 100644 index 000000000..e9460fbff --- /dev/null +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.html @@ -0,0 +1,28 @@ + + + + + + + + Leaflet + + + +
+

Leaflet

+ +
+

Leaflet is the library behind Geo map notes.

+

Plugins

+

Leaflet is also highly customizable via external plugins.

+

Currently we use:

+ +
+
+ + + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.html index dd6eab6da..7a2558627 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.html @@ -12,7 +12,17 @@

MindElixir

-
+
+

MindElixir is the library we are using for the Mind Map note types.

+

The main library is available on GitHub as mind-elixir-core.

+

The library is embedded as-is without additional modifications.

+

Issues with its functionality should generally be reported upstream.

+

Plugins

+

MindElixir supports plugins, and one such plugin we are making use of + is SSShooter/node-menu: A node menu plugin of mind-elixir, + which allows editing the fonts, colors, links of nodes.

+
diff --git a/src/public/app/doc_notes/en/User Guide/navigation.html b/src/public/app/doc_notes/en/User Guide/navigation.html index ef6019086..119edae97 100644 --- a/src/public/app/doc_notes/en/User Guide/navigation.html +++ b/src/public/app/doc_notes/en/User Guide/navigation.html @@ -76,7 +76,7 @@
  • Note source
  • -
  • Technologies used +
  • Technologies used