diff --git a/src/public/app/doc_notes/en/User Guide/User Guide.html b/src/public/app/doc_notes/en/User Guide/User Guide.html index 2e335be7f..934ef1e4b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide.html @@ -1,21 +1 @@ - - - - - - - - User Guide - - - -
-

User Guide

- -
-

The sub-children of this note are automatically synced.

-
-
- - - \ No newline at end of file +

The sub-children of this note are automatically synced.

\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases.html index 3dc7a92ca..544ba81bd 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases.html @@ -1,37 +1,17 @@ - - - - - - - - Advanced Showcases - - - -
-

Advanced Showcases

- -
-

Trilium offers advanced functionality through Scripts and - Promoted Attributes. To illustrate these features, we've prepared - several showcases available in the demo notes:

- -

It's important to note that these examples are not natively supported - by Trilium out of the box; instead, they demonstrate what you can build - within Trilium.

-
-
- - - \ No newline at end of file +

Trilium offers advanced functionality through Scripts and + Promoted Attributes. To illustrate these features, we've prepared + several showcases available in the demo notes:

+ +

It's important to note that these examples are not natively supported + by Trilium out of the box; instead, they demonstrate what you can build + within Trilium.

\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes.html index 621717007..9b1b80b2b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes.html @@ -1,166 +1,146 @@ - - - - - - - - Day Notes - - - -
-

Day Notes

- -
-

A common pattern in note-taking is that a lot of notes will be centered - around a certain date - e.g. you have some tasks which needs to be done - on a certain date, you have meeting minutes from a certain date, you have - your thoughts etc. and it all revolves around a date on which they occurred. - For this reason, it makes sense to create a certain "day workspace" which - will centralize all those notes relevant for a certain date.

-

For this, Trilium provides a concept of "day note". Trilium semi-automatically - generates a single note for each day. Under this note you can save all - those relevant notes.

-

Select an existing day note, and the menubar contains a calendar widget. - Select any day to create a note for that day. 

-

- -

-

This pattern works well also because of Cloning Notes functionality - - note can appear in multiple places in the note tree, so besides appearing - under day note, it can also be categorized into other notes.

-

Demo

-

- -

-

You can see the structure of day notes appearing under "Journal" note - - there's a note for the whole year 2025, under it, you have "03 - March" - which then contains "09 - Monday". This is our "day note" which contains - some text in its content and also has some child notes (some of them are - from Task manager).

-

You can also notice how this day note has promoted attribute "weight" - where you can track your daily weight. This data is then used in Weight tracker.

-

Week Note and Quarter Note

-

Week and quarter notes are disabled by default, since it might be too - much for some people. To enable them, you need to set #enableWeekNotes and #enableQuarterNotes attributes - on the root calendar note, which is identified by #calendarRoot label. - Week note is affected by the first week of year option. Be careful when - you already have some week notes created, it will not automatically change - the existing week notes and might lead to some duplicates.

-

Templates

-

Trilium provides template functionality, - and it could be used together with day notes.

-

You can define one of the following relations on the root of the journal - (identified by #calendarRoot label):

- -

All of these are relations. When Trilium creates a new note for year or - month or date, it will take a look at the root and attach a corresponding ~template relation - to the newly created role. Using this, you can e.g. create your daily template - with e.g. checkboxes for daily routine etc.

-

Naming pattern

-

You can customize the title of generated journal notes by defining a #datePattern, #weekPattern, #monthPattern, #quarterPattern and #yearPattern attribute - on a root calendar note (identified by #calendarRoot label). - The naming pattern replacements follow a level-up compatibility - each - level can use replacements from itself and all levels above it. For example, #monthPattern can - use month, quarter and year replacements, while #weekPattern can - use week, month, quarter and year replacements. But it is not possible - to use week replacements in #monthPattern.

-

Date pattern

-

It's possible to customize the title of generated date notes by defining - a #datePattern attribute on a root calendar note (identified - by #calendarRoot label). Following are possible values:

- -

The default is {dateNumberPadded} - {weekDay} -

-

Week pattern

-

It is also possible to customize the title of generated week notes through - the #weekPattern attribute on the root calendar note. The options - are:

- -

The default is Week {weekNumber} -

-

Month pattern

-

It is also possible to customize the title of generated month notes through - the #monthPattern attribute on the root calendar note. The options - are:

- -

The default is {monthNumberPadded} - {month} -

-

Quarter pattern

-

It is also possible to customize the title of generated quarter notes - through the #quarterPattern attribute on the root calendar note. - The options are:

- -

The default is Quarter {quarterNumber} -

-

Year pattern

-

It is also possible to customize the title of generated year notes through - the #yearPattern attribute on the root calendar note. The options - are:

- -

The default is {year} -

-

Implementation

-

Trilium has some special support for day notes in the form of backend Script API - - see e.g. getDayNote() function.

-

Day (and year, month) notes are created with a label - e.g. #dateNote="2025-03-09" this - can then be used by other scripts to add new notes to day note etc.

-

Journal also has relation child:child:child:template=Day template (see - [[attribute inheritance]]) which effectively adds [[template]] to day notes - (grand-grand-grand children of Journal). Please note that, when you enable - week notes or quarter notes, it will not automatically change the relation - for the child level.

-
-
- - - \ No newline at end of file +

A common pattern in note-taking is that a lot of notes will be centered + around a certain date - e.g. you have some tasks which needs to be done + on a certain date, you have meeting minutes from a certain date, you have + your thoughts etc. and it all revolves around a date on which they occurred. + For this reason, it makes sense to create a certain "day workspace" which + will centralize all those notes relevant for a certain date.

+

For this, Trilium provides a concept of "day note". Trilium semi-automatically + generates a single note for each day. Under this note you can save all + those relevant notes.

+

Select an existing day note, and the menubar contains a calendar widget. + Select any day to create a note for that day. 

+

+ +

+

This pattern works well also because of Cloning Notes functionality + - note can appear in multiple places in the note tree, so besides appearing + under day note, it can also be categorized into other notes.

+

Demo

+

+ +

+

You can see the structure of day notes appearing under "Journal" note + - there's a note for the whole year 2025, under it, you have "03 - March" + which then contains "09 - Monday". This is our "day note" which contains + some text in its content and also has some child notes (some of them are + from Task manager).

+

You can also notice how this day note has promoted attribute "weight" + where you can track your daily weight. This data is then used in Weight tracker.

+

Week Note and Quarter Note

+

Week and quarter notes are disabled by default, since it might be too + much for some people. To enable them, you need to set #enableWeekNotes and #enableQuarterNotes attributes + on the root calendar note, which is identified by #calendarRoot label. + Week note is affected by the first week of year option. Be careful when + you already have some week notes created, it will not automatically change + the existing week notes and might lead to some duplicates.

+

Templates

+

Trilium provides template functionality, + and it could be used together with day notes.

+

You can define one of the following relations on the root of the journal + (identified by #calendarRoot label):

+ +

All of these are relations. When Trilium creates a new note for year or + month or date, it will take a look at the root and attach a corresponding ~template relation + to the newly created role. Using this, you can e.g. create your daily template + with e.g. checkboxes for daily routine etc.

+

Naming pattern

+

You can customize the title of generated journal notes by defining a #datePattern, #weekPattern, #monthPattern, #quarterPattern and #yearPattern attribute + on a root calendar note (identified by #calendarRoot label). + The naming pattern replacements follow a level-up compatibility - each + level can use replacements from itself and all levels above it. For example, #monthPattern can + use month, quarter and year replacements, while #weekPattern can + use week, month, quarter and year replacements. But it is not possible + to use week replacements in #monthPattern.

+

Date pattern

+

It's possible to customize the title of generated date notes by defining + a #datePattern attribute on a root calendar note (identified + by #calendarRoot label). Following are possible values:

+ +

The default is {dateNumberPadded} - {weekDay} +

+

Week pattern

+

It is also possible to customize the title of generated week notes through + the #weekPattern attribute on the root calendar note. The options + are:

+ +

The default is Week {weekNumber} +

+

Month pattern

+

It is also possible to customize the title of generated month notes through + the #monthPattern attribute on the root calendar note. The options + are:

+ +

The default is {monthNumberPadded} - {month} +

+

Quarter pattern

+

It is also possible to customize the title of generated quarter notes + through the #quarterPattern attribute on the root calendar note. + The options are:

+ +

The default is Quarter {quarterNumber} +

+

Year pattern

+

It is also possible to customize the title of generated year notes through + the #yearPattern attribute on the root calendar note. The options + are:

+ +

The default is {year} +

+

Implementation

+

Trilium has some special support for day notes in the form of backend Script API - + see e.g. getDayNote() function.

+

Day (and year, month) notes are created with a label - e.g. #dateNote="2025-03-09" this + can then be used by other scripts to add new notes to day note etc.

+

Journal also has relation child:child:child:template=Day template (see + [[attribute inheritance]]) which effectively adds [[template]] to day notes + (grand-grand-grand children of Journal). Please note that, when you enable + week notes or quarter notes, it will not automatically change the relation + for the child level.

\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html index d74071e5e..26dbc620f 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html @@ -1,48 +1,33 @@ - - - - - - - - Task Manager - - - -
-

Task Manager

- -
-

Task Manager is a promoted attributes and - scriptsshowcase present in the demo notes.

-

Demo

-

- -

-

Task Manager manages outstanding (TODO) tasks and finished tasks (non-empty - doneDate attribute). Outstanding tasks are further categorized by location - and arbitrary tags - whenever you change tag attribute in the task note, - this task is then automatically moved to appropriate location.

-

Task Manager also integrates with day notes - - notes are cloned into day note to - both todoDate note and doneDate note (with prefix of - either "TODO" or "DONE").

-

Implementation

-

New tasks are created in the TODO note which has ~child:template - relation(see attribute inheritance) - pointing to the task template.

-

Attributes

-

Task template defines several promoted attributes - - todoDate, doneDate, tags, location. Importantly it also defines ~runOnAttributeChange relation - - event handler which is run on attribute - change. This script handles when e.g. - we fill out the doneDate attribute - meaning the task is done and should - be moved to "Done" note and removed from TODO, locations and tags.

-

New task button

-

There's also "button" note which contains simple script which adds a button - to create new note (task) in the TODO note.

api.addButtonToToolbar({
+

Task Manager is a promoted attributes and + scriptsshowcase present in the demo notes.

+

Demo

+

+ +

+

Task Manager manages outstanding (TODO) tasks and finished tasks (non-empty + doneDate attribute). Outstanding tasks are further categorized by location + and arbitrary tags - whenever you change tag attribute in the task note, + this task is then automatically moved to appropriate location.

+

Task Manager also integrates with day notes - + notes are cloned into day note to + both todoDate note and doneDate note (with prefix of + either "TODO" or "DONE").

+

Implementation

+

New tasks are created in the TODO note which has ~child:template + relation(see attribute inheritance) + pointing to the task template.

+

Attributes

+

Task template defines several promoted attributes - + todoDate, doneDate, tags, location. Importantly it also defines ~runOnAttributeChange relation + - event handler which is run on attribute + change. This script handles when e.g. + we fill out the doneDate attribute - meaning the task is done and should + be moved to "Done" note and removed from TODO, locations and tags.

+

New task button

+

There's also "button" note which contains simple script which adds a button + to create new note (task) in the TODO note.

api.addButtonToToolbar({
     title: 'New task',
     icon: 'check',
     shortcut: 'alt+n',
@@ -60,26 +45,21 @@
         await api.activateNewNote(taskNoteId);
     }
 });
-

CSS

-

In the demo screenshot above you may notice that TODO tasks are in red - color and DONE tasks are green.

-

This is done by having this CSS code note which - defines extra CSS classes:

span.fancytree-node.todo .fancytree-title {
+

CSS

+

In the demo screenshot above you may notice that TODO tasks are in red + color and DONE tasks are green.

+

This is done by having this CSS code note which + defines extra CSS classes:

span.fancytree-node.todo .fancytree-title {
     color: red !important;
 }
 
 span.fancytree-node.done .fancytree-title {
     color: green !important;
 }
-

This code note has #appCss - labelwhich is recognized by Trilium on startup and loaded as CSS into - the application.

-

Second part of this functionality is based in event handler described - above which assigns #cssClass label to the task to either "done" - or "todo" based on the task status.

-
-
- - - \ No newline at end of file +

This code note has #appCss + labelwhich is recognized by Trilium on startup and loaded as CSS into + the application.

+

Second part of this functionality is based in event handler described + above which assigns #cssClass label to the task to either "done" + or "todo" based on the task status.

\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html index 2093984ba..7ffb54d73 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html @@ -1,43 +1,28 @@ - - - - - - - - Weight Tracker - - - -
-

Weight Tracker

- -
-

- -

-

The Weight Tracker is a Script API showcase - present in the demo notes.

-

By adding weight as a promoted attribute in - the template from which day notes are - created, you can aggregate the data and plot weight change over time.

-

Implementation

-

The Weight Tracker note in the screenshot above is of the type Render Note. - That type of note doesn't have any useful content itself. Instead it is - a placeholder where a script can render - its output.

-

Scripts for Render Notes are defined in a relation called ~renderNote. - In this example, it's the Weight Tracker's child Implementation. - The Implementation consists of two code notes that - contain some HTML and JavaScript respectively, which load all the notes - with a weight attribute and display their values in a chart.

-

To actually render the chart, we're using a third party library called - chart.jswhich is imported as an attachment, since it's not built into - Trilium.

-

Code

-

Here's the content of the script which is placed in a code note of - type JS Frontend:

async function getChartData() {
+

+ +

+

The Weight Tracker is a Script API showcase + present in the demo notes.

+

By adding weight as a promoted attribute in + the template from which day notes are + created, you can aggregate the data and plot weight change over time.

+

Implementation

+

The Weight Tracker note in the screenshot above is of the type Render Note. + That type of note doesn't have any useful content itself. Instead it is + a placeholder where a script can render + its output.

+

Scripts for Render Notes are defined in a relation called ~renderNote. + In this example, it's the Weight Tracker's child Implementation. + The Implementation consists of two code notes that + contain some HTML and JavaScript respectively, which load all the notes + with a weight attribute and display their values in a chart.

+

To actually render the chart, we're using a third party library called + chart.jswhich is imported as an attachment, since it's not built into + Trilium.

+

Code

+

Here's the content of the script which is placed in a code note of + type JS Frontend:

async function getChartData() {
     const days = await api.runOnBackend(async () => {
         const notes = api.getNotesWithLabel('weight');
         const days = [];
@@ -82,12 +67,7 @@ new chartjs.Chart(ctx, {
     type: 'line',
     data: await getChartData()
 });
-

How to remove the Weight Tracker button from the top bar

-

In the link map of the Weight Tracker, there is a note called Button. - Open it and delete or comment out its contents. The Weight Tracker button - will disappear after you restart Trilium.

-
-
- - - \ No newline at end of file +

How to remove the Weight Tracker button from the top bar

+

In the link map of the Weight Tracker, there is a note called Button. + Open it and delete or comment out its contents. The Weight Tracker button + will disappear after you restart Trilium.

\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html index 21f01f1f2..8474ade5f 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html @@ -1,64 +1,44 @@ - - - - - - - - Attributes - - - -
-

Attributes

- -
-
- -
-

In Trilium, attributes are key-value pairs assigned to notes, providing - additional metadata or functionality. There are two primary types of attributes:

-
    -
  1. -

    Labels can - be used for a variety of purposes, such as storing metadata or configuring - the behaviour of notes. Labels are also searchable, enhancing note retrieval.

    -

    For more information, including predefined labels, see Labels.

    -
  2. -
  3. -

    Relations define - connections between notes, similar to links. These can be used for metadata - and scripting purposes.

    -

    For more information, including a list of predefined relations, see  - Relations.

    -
  4. -
-

These attributes play a crucial role in organizing, categorising, and - enhancing the functionality of notes.

-

Viewing the list of attributes

-

Both the labels and relations for the current note are displayed in the Owned Attributes section - of the Ribbon, - where they can be viewed and edited. Inherited attributes are displayed - in the Inherited Attributes section of the ribbon, where they can - only be viewed.

-

In the list of attributes, labels are prefixed with the # character - whereas relations are prefixed with the ~ character.

-

Multiplicity

-

Attributes in Trilium can be "multi-valued", meaning multiple attributes - with the same name can co-exist.

-

Attribute Definitions and Promoted Attributes

-

Special labels create "label/attribute" definitions, enhancing the organization - and management of attributes. For more details, see Promoted Attributes.

-

Attribute Inheritance

-

Trilium supports attribute inheritance, allowing child notes to inherit - attributes from their parents. For more information, see Attribute Inheritance.

-
-
- - - \ No newline at end of file +
+ +
+

In Trilium, attributes are key-value pairs assigned to notes, providing + additional metadata or functionality. There are two primary types of attributes:

+
    +
  1. +

    Labels can + be used for a variety of purposes, such as storing metadata or configuring + the behaviour of notes. Labels are also searchable, enhancing note retrieval.

    +

    For more information, including predefined labels, see Labels.

    +
  2. +
  3. +

    Relations define + connections between notes, similar to links. These can be used for metadata + and scripting purposes.

    +

    For more information, including a list of predefined relations, see  + Relations.

    +
  4. +
+

These attributes play a crucial role in organizing, categorising, and + enhancing the functionality of notes.

+

Viewing the list of attributes

+

Both the labels and relations for the current note are displayed in the Owned Attributes section + of the Ribbon, + where they can be viewed and edited. Inherited attributes are displayed + in the Inherited Attributes section of the ribbon, where they can + only be viewed.

+

In the list of attributes, labels are prefixed with the # character + whereas relations are prefixed with the ~ character.

+

Multiplicity

+

Attributes in Trilium can be "multi-valued", meaning multiple attributes + with the same name can co-exist.

+

Attribute Definitions and Promoted Attributes

+

Special labels create "label/attribute" definitions, enhancing the organization + and management of attributes. For more details, see Promoted Attributes.

+

Attribute Inheritance

+

Trilium supports attribute inheritance, allowing child notes to inherit + attributes from their parents. For more information, see Attribute Inheritance.

\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html index f103a2b8f..cb6de109d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html @@ -1,70 +1,50 @@ - - - - - - - - Attribute Inheritance - - - -
-

Attribute Inheritance

- -
-

Inheritance refers to the process of having a label or - a relation shared across multiple - notes, generally in parent-child relations (or anywhere if using templates).

-

Standard Inheritance

-

In Trilium, attributes can be automatically inherited by child notes if - they have the isInheritable flag set to true. This - means the attribute (a key-value pair) is applied to the note and all its - descendants.

-

To make an attribute inheritable, simply use the visual editor for  - Labels or Relations. - Alternatively, the attribute can be manually defined where #myLabel=value becomes #myLabel(inheritable)=value when - inheritable.

-

As an example, the archived label can be set to be inheritable, - allowing you to hide a whole subtree of notes from searches and other dialogs - by applying this label at the top level.

-

Standard inheritance forces all the notes that are children (and sub-children) - of a note to have that particular label or relation. If there is a need - to have some notes not inherit one of the labels, then copying inheritance or template inheritance needs - to be used instead.

-

Copying Inheritance

-

Copying inheritance differs from standard inheritance by using a child: prefix - in the attribute name. This prefix causes new child notes to automatically - receive specific attributes from the parent note. These attributes are - independent of the parent and will persist even if the note is moved elsewhere.

-

If a parent note has the label #child:exampleAttribute, all - newly created child notes (one level deep) will inherit the #exampleAttribute label. - This can be useful for setting default properties for notes in a specific - section.

-

Similarly, for relations use ~child:myRelation.

-

Due to the way it's designed, copying inheritance cannot be used to cascade - infinitely within a hierarchy. For that use case, consider using either - standard inheritance or templates.

-

Chained inheritance

-

It is possible to define labels across multiple levels of depth. For example, #child:child:child:foo applied - to a root note would create:

-
    -
  • #child:child:foo on the first-level children.
  • -
  • #child:foo on the second-level children.
  • -
  • #foo on the third-level children.
  • -
-

Similarly, use ~child:child:child:foo if dealing with relations.

-

Do note that same as simple copying inheritance, the changes will not - apply retroactively to existing notes in the hierarchy, it will only apply - to the newly created notes.

-

Template Inheritance

-

Attributes can also be inherited from Templates. - When a new note is created using a template, it inherits the attributes - defined in that template. This is particularly useful for maintaining consistency - across notes that follow a similar structure or function.

-
-
- - - \ No newline at end of file +

Inheritance refers to the process of having a label or + a relation shared across multiple + notes, generally in parent-child relations (or anywhere if using templates).

+

Standard Inheritance

+

In Trilium, attributes can be automatically inherited by child notes if + they have the isInheritable flag set to true. This + means the attribute (a key-value pair) is applied to the note and all its + descendants.

+

To make an attribute inheritable, simply use the visual editor for  + Labels or Relations. + Alternatively, the attribute can be manually defined where #myLabel=value becomes #myLabel(inheritable)=value when + inheritable.

+

As an example, the archived label can be set to be inheritable, + allowing you to hide a whole subtree of notes from searches and other dialogs + by applying this label at the top level.

+

Standard inheritance forces all the notes that are children (and sub-children) + of a note to have that particular label or relation. If there is a need + to have some notes not inherit one of the labels, then copying inheritance or template inheritance needs + to be used instead.

+

Copying Inheritance

+

Copying inheritance differs from standard inheritance by using a child: prefix + in the attribute name. This prefix causes new child notes to automatically + receive specific attributes from the parent note. These attributes are + independent of the parent and will persist even if the note is moved elsewhere.

+

If a parent note has the label #child:exampleAttribute, all + newly created child notes (one level deep) will inherit the #exampleAttribute label. + This can be useful for setting default properties for notes in a specific + section.

+

Similarly, for relations use ~child:myRelation.

+

Due to the way it's designed, copying inheritance cannot be used to cascade + infinitely within a hierarchy. For that use case, consider using either + standard inheritance or templates.

+

Chained inheritance

+

It is possible to define labels across multiple levels of depth. For example, #child:child:child:foo applied + to a root note would create:

+
    +
  • #child:child:foo on the first-level children.
  • +
  • #child:foo on the second-level children.
  • +
  • #foo on the third-level children.
  • +
+

Similarly, use ~child:child:child:foo if dealing with relations.

+

Do note that same as simple copying inheritance, the changes will not + apply retroactively to existing notes in the hierarchy, it will only apply + to the newly created notes.

+

Template Inheritance

+

Attributes can also be inherited from Templates. + When a new note is created using a template, it inherits the attributes + defined in that template. This is particularly useful for maintaining consistency + across notes that follow a similar structure or function.

\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html index 2b5656b90..866127d3e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html @@ -1,405 +1,385 @@ - - - - - - - - Labels - - - -
-

Labels

- -
-

A label is an attribute of a note - which has a name and optionally a value.

-

Common use cases

-
    -
  • Metadata for personal use: Assign labels with optional - values for categorization, such as #year=1999, #genre="sci-fi", - or #author="Neal Stephenson". This can be combined with  - Promoted Attributes to make their display more user-friendly.
  • -
  • Configuration: Labels can configure advanced features - or settings (see reference below).
  • -
  • Scripts and Plugins: Used to tag notes with special metadata, - such as the "weight" attribute in the Weight Tracker.
  • -
-

Creating a label using the visual editor

-
    -
  1. Go to the Owned Attributes section in the Ribbon.
  2. -
  3. Press the + button (Add new attribute) to the right.
  4. -
  5. Select Add new label for the relation.
  6. -
- -

While in the visual editor:

-
    -
  • Set the desired name
  • -
  • Optionally, set the value of the label. Labels can exist without a value.
  • -
  • Check Inheritable if the label should be inherited by the child - notes as well. See Attribute Inheritance for - more information.
  • -
-

Creating a label manually

-

In the Owned Attributes section in the Ribbon:

-
    -
  • To create a label called myLabel with no value, simply type #myLabel.
  • -
  • To create a label called myLabel with a value value, - simply type #myLabel=value.
  • -
  • If the value contains spaces, then the text must be quoted: #myLabel="Hello world".
  • -
  • If the string contains quotes (regardless of whether it has spaces), then - the text must be quoted with apostrophes instead: #myLabel='Hello "world"'.
  • -
  • To create an inheritable label called myLabel, simply write #myLabel(inheritable) for - no value or #myLabel(inheritable)=value if there is a value.
  • -
-

Predefined labels

-

This is a list of labels that Trilium natively supports.

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LabelDescription
disableVersioning - Disables automatic creation of Note Revisions for - a particular note. Useful for e.g. large, but unimportant notes - e.g. - large JS libraries used for scripting.
versioningLimit - Limits the maximum number of Note Revisions for - a particular note, overriding the global settings.
calendarRoot - Marks the note which should be used as root for Day Notes. Only one should be marked - as such.
archived - Hides notes from default search results and dialogs. Archived notes can - optionally be hidden in the Note Tree.
excludeFromExport - Excludes this note and its children when exporting.
run, runOnInstance, runAtHour - See Events.
disableInclusion - Scripts with this label won't be included into parent script execution.
sorted - -

Keeps child notes sorted by title alphabetically.

-

When given a value, it will sort by the value of another label instead. - If one of the child notes doesn't have the specified label, the title will - be used for them instead.

-
sortDirection - -

If sorted is applied, specifies the direction of the sort:

-
    -
  • ASC, ascending (default)
  • -
  • DESC, descending
  • -
-
sortFoldersFirst - If sorted is applied, folders (notes with children) will be - sorted as a group at the top, and the rest will be sorted.
top - If sorted is applied to the parent note, keeps given note on - top in its parent.
hidePromotedAttributes - Hide Promoted Attributes on - this note. Generally useful when defining inherited attributes, but the - parent note doesn't need them.
readOnly - Marks a note to be always be read-only, - if it's a supported note (text, code, mermaid).
autoReadOnlyDisabled - Disables automatic read-only mode for - the given note.
appCss - Marks CSS notes which are loaded into the Trilium application and can - thus be used to modify Trilium's looks. See Custom app-wide CSS for more info.
appTheme - Marks CSS notes which are full Trilium themes and are thus available in - Trilium options. See Theme development for - more information.
appThemeBase - Set to next, next-light, or next-dark to - use the corresponding TriliumNext theme (auto, light or dark) as the base - for a custom theme, instead of the legacy one. See Customize the Next theme for more - information.
cssClass - Value of this label is then added as CSS class to the node representing - given note in the Note Tree. - This can be useful for advanced theming. Can be used in template notes.
iconClass - value of this label is added as a CSS class to the icon on the tree which - can help visually distinguish the notes in the tree. Example might be bx - bx-home - icons are taken from boxicons. Can be used in template notes.
pageSize - Specifies the number of items per page in Note List.
customRequestHandler - See Custom Request Handler.
customResourceProvider - See Custom Resource Providers.
widget - Marks this note as a custom widget which will be added to the Trilium - component tree. See Custom Widgets for - more information.
searchHome - New search notes will be created as children of this note (see  - Saved Search).
workspace and related attributesSee Workspaces.
inbox - default inbox location for new notes - when you create a note using new note button - in the sidebar, notes will be created as child notes in the note marked - as with #inbox label.
sqlConsoleHome - Default location of SQL Console notes
bookmarked - Indicates this note is a bookmark.
bookmarkFolder - Note with this label will appear in bookmarks as folder (allowing access - to its children). See Bookmarks for - more information.
share* - See the attribute reference in Sharing.
displayRelations, hideRelations - Comma delimited names of relations which should be displayed/hidden in - a Relation Map (both - the note type and the Note Map (Link map, Tree map) general - functionality).
titleTemplate - -

Default title of notes created as children of this note. This value is - evaluated as a JavaScript string and thus can be enriched with dynamic - content via the injected now and parentNote variables.

-

Examples:

-
    -
  • ${parentNote.getLabel('authorName')}'s literary works -
  • -
  • Log for ${now.format('YYYY-MM-DD HH:mm:ss')} -
  • -
  • to mirror the parent's template.
  • -
-

See Default Note Title for - more info.

-
template - This note will appear in the selection of available template when creating - new note. See Templates for - more information.
toc - Controls the display of the Table of contents for - a given note. #toc or #toc=show to always display - the table of contents, #toc=false to always hide it.
color - defines color of the note in note tree, links etc. Use any valid CSS color - value like 'red' or #a13d5f
keyboardShortcut - Defines a keyboard shortcut which will immediately jump to this note. - Example: 'ctrl+alt+e'. Requires frontend reload for the change to take - effect.
keepCurrentHoisting - Opening this link won't change hoisting even if the note is not displayable - in the current hoisted subtree.
executeButton - Title of the button which will execute the current code note
executeDescription - Longer description of the current code note displayed together with the - execute button
excludeFromNoteMap - Notes with this label will be hidden from the Note Map.
newNotesOnTop - New notes will be created at the top of the parent note, not on the bottom.
hideHighlightWidget - Hides the Highlights list widget
hideChildrenOverview - Hides the Note List for - that particular note.
printLandscape - When exporting to PDF, changes the orientation of the page to landscape - instead of portrait.
printPageSize - When exporting to PDF, changes the size of the page. Supported values: A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger.
geolocation - Indicates the latitude and longitude of a note, to be displayed in a  - Geo Map.
calendar:* - Defines specific options for the Calendar View.
viewType - Sets the view of child notes (e.g. grid or list). See Note List for more information.
-
-
-
- - - \ No newline at end of file +

A label is an attribute of a note + which has a name and optionally a value.

+

Common use cases

+
    +
  • Metadata for personal use: Assign labels with optional + values for categorization, such as #year=1999, #genre="sci-fi", + or #author="Neal Stephenson". This can be combined with  + Promoted Attributes to make their display more user-friendly.
  • +
  • Configuration: Labels can configure advanced features + or settings (see reference below).
  • +
  • Scripts and Plugins: Used to tag notes with special metadata, + such as the "weight" attribute in the Weight Tracker.
  • +
+

Creating a label using the visual editor

+
    +
  1. Go to the Owned Attributes section in the Ribbon.
  2. +
  3. Press the + button (Add new attribute) to the right.
  4. +
  5. Select Add new label for the relation.
  6. +
+ +

While in the visual editor:

+
    +
  • Set the desired name
  • +
  • Optionally, set the value of the label. Labels can exist without a value.
  • +
  • Check Inheritable if the label should be inherited by the child + notes as well. See Attribute Inheritance for + more information.
  • +
+

Creating a label manually

+

In the Owned Attributes section in the Ribbon:

+
    +
  • To create a label called myLabel with no value, simply type #myLabel.
  • +
  • To create a label called myLabel with a value value, + simply type #myLabel=value.
  • +
  • If the value contains spaces, then the text must be quoted: #myLabel="Hello world".
  • +
  • If the string contains quotes (regardless of whether it has spaces), then + the text must be quoted with apostrophes instead: #myLabel='Hello "world"'.
  • +
  • To create an inheritable label called myLabel, simply write #myLabel(inheritable) for + no value or #myLabel(inheritable)=value if there is a value.
  • +
+

Predefined labels

+

This is a list of labels that Trilium natively supports.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LabelDescription
disableVersioning + Disables automatic creation of Note Revisions for + a particular note. Useful for e.g. large, but unimportant notes - e.g. + large JS libraries used for scripting.
versioningLimit + Limits the maximum number of Note Revisions for + a particular note, overriding the global settings.
calendarRoot + Marks the note which should be used as root for Day Notes. Only one should be marked + as such.
archived + Hides notes from default search results and dialogs. Archived notes can + optionally be hidden in the Note Tree.
excludeFromExport + Excludes this note and its children when exporting.
run, runOnInstance, runAtHour + See Events.
disableInclusion + Scripts with this label won't be included into parent script execution.
sorted + +

Keeps child notes sorted by title alphabetically.

+

When given a value, it will sort by the value of another label instead. + If one of the child notes doesn't have the specified label, the title will + be used for them instead.

+
sortDirection + +

If sorted is applied, specifies the direction of the sort:

+
    +
  • ASC, ascending (default)
  • +
  • DESC, descending
  • +
+
sortFoldersFirst + If sorted is applied, folders (notes with children) will be + sorted as a group at the top, and the rest will be sorted.
top + If sorted is applied to the parent note, keeps given note on + top in its parent.
hidePromotedAttributes + Hide Promoted Attributes on + this note. Generally useful when defining inherited attributes, but the + parent note doesn't need them.
readOnly + Marks a note to be always be read-only, + if it's a supported note (text, code, mermaid).
autoReadOnlyDisabled + Disables automatic read-only mode for + the given note.
appCss + Marks CSS notes which are loaded into the Trilium application and can + thus be used to modify Trilium's looks. See Custom app-wide CSS for more info.
appTheme + Marks CSS notes which are full Trilium themes and are thus available in + Trilium options. See Theme development for + more information.
appThemeBase + Set to next, next-light, or next-dark to + use the corresponding TriliumNext theme (auto, light or dark) as the base + for a custom theme, instead of the legacy one. See Customize the Next theme for more + information.
cssClass + Value of this label is then added as CSS class to the node representing + given note in the Note Tree. + This can be useful for advanced theming. Can be used in template notes.
iconClass + value of this label is added as a CSS class to the icon on the tree which + can help visually distinguish the notes in the tree. Example might be bx + bx-home - icons are taken from boxicons. Can be used in template notes.
pageSize + Specifies the number of items per page in Note List.
customRequestHandler + See Custom Request Handler.
customResourceProvider + See Custom Resource Providers.
widget + Marks this note as a custom widget which will be added to the Trilium + component tree. See Custom Widgets for + more information.
searchHome + New search notes will be created as children of this note (see  + Saved Search).
workspace and related attributesSee Workspaces.
inbox + default inbox location for new notes - when you create a note using new note button + in the sidebar, notes will be created as child notes in the note marked + as with #inbox label.
sqlConsoleHome + Default location of SQL Console notes
bookmarked + Indicates this note is a bookmark.
bookmarkFolder + Note with this label will appear in bookmarks as folder (allowing access + to its children). See Bookmarks for + more information.
share* + See the attribute reference in Sharing.
displayRelations, hideRelations + Comma delimited names of relations which should be displayed/hidden in + a Relation Map (both + the note type and the Note Map (Link map, Tree map) general + functionality).
titleTemplate + +

Default title of notes created as children of this note. This value is + evaluated as a JavaScript string and thus can be enriched with dynamic + content via the injected now and parentNote variables.

+

Examples:

+
    +
  • ${parentNote.getLabel('authorName')}'s literary works +
  • +
  • Log for ${now.format('YYYY-MM-DD HH:mm:ss')} +
  • +
  • to mirror the parent's template.
  • +
+

See Default Note Title for + more info.

+
template + This note will appear in the selection of available template when creating + new note. See Templates for + more information.
toc + Controls the display of the Table of contents for + a given note. #toc or #toc=show to always display + the table of contents, #toc=false to always hide it.
color + defines color of the note in note tree, links etc. Use any valid CSS color + value like 'red' or #a13d5f
keyboardShortcut + Defines a keyboard shortcut which will immediately jump to this note. + Example: 'ctrl+alt+e'. Requires frontend reload for the change to take + effect.
keepCurrentHoisting + Opening this link won't change hoisting even if the note is not displayable + in the current hoisted subtree.
executeButton + Title of the button which will execute the current code note
executeDescription + Longer description of the current code note displayed together with the + execute button
excludeFromNoteMap + Notes with this label will be hidden from the Note Map.
newNotesOnTop + New notes will be created at the top of the parent note, not on the bottom.
hideHighlightWidget + Hides the Highlights list widget
hideChildrenOverview + Hides the Note List for + that particular note.
printLandscape + When exporting to PDF, changes the orientation of the page to landscape + instead of portrait.
printPageSize + When exporting to PDF, changes the size of the page. Supported values: A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger.
geolocation + Indicates the latitude and longitude of a note, to be displayed in a  + Geo Map.
calendar:* + Defines specific options for the Calendar View.
viewType + Sets the view of child notes (e.g. grid or list). See Note List for more information.
+
\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes.html index 81450f2ff..4f02e8d75 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes.html @@ -1,69 +1,49 @@ - - - - - - - - Promoted Attributes - - - -
-

Promoted Attributes

- -
-

Promoted attributes are attributes which - are considered important and thus are "promoted" onto the main note UI. - See example below:

-

- -

-

You can see the note having kind of form with several fields. Each of - these is just regular attribute, the only difference is that they appear - on the note itself.

-

Attributes can be pretty useful since they allow for querying and script - automation etc. but they are also inconveniently hidden. This allows you - to select few of the important ones and push them to the front of the user.

-

Now, how do we make attribute to appear on the UI?

-

Attribute definition

-

Attribute is always name-value pair where both name and value are strings.

-

Attribute definition specifies how should this value be interpreted - - is it just string, or is it a date? Should we allow multiple values or - note? And importantly, should we promote the attribute or not?

-

- -

-

You can notice tag attribute definition. These "definition" attributes - define how the "value" attributes should behave.

-

So there's one attribute for value and one for definition. But notice - how definition attribute is Inheritable, - meaning that it's also applied to all descendant note. So in a way, this - definition is used for the whole subtree while "value" attributes are applied - only for this note.

-

Inverse relation

-

Some relations always occur in pairs - my favorite example is on the family. - If you have a note representing husband and note representing wife, then - there might be a relation between those two of isPartnerOf. - This is bidirectional relationship - meaning that if a relation is pointing - from husband to wife then there should be always another relation pointing - from wife to husband.

-

Another example is with parent - child relationship. Again these always - occur in pairs, but in this case it's not exact same relation - the one - going from parent to child might be called isParentOf and the - other one going from child to parent might be called isChildOf.

-

Relation definition allows you to specify such "inverse relation" - for - the relation you just define you specify which is the inverse relation. - Note that in the second example we should have two relation definitions - - one for isParentOf which defines isChildOf as inverse - relation and then second relation definition for isChildOf which - defines isParentOf as inverse relation.

-

What this does internally is that whenever we save a relation which has - defined inverse relation, we check that this inverse relation exists on - the relation target note. Similarly, when we delete relation, we also delete - inverse relation on the target note.

-
-
- - - \ No newline at end of file +

Promoted attributes are attributes which + are considered important and thus are "promoted" onto the main note UI. + See example below:

+

+ +

+

You can see the note having kind of form with several fields. Each of + these is just regular attribute, the only difference is that they appear + on the note itself.

+

Attributes can be pretty useful since they allow for querying and script + automation etc. but they are also inconveniently hidden. This allows you + to select few of the important ones and push them to the front of the user.

+

Now, how do we make attribute to appear on the UI?

+

Attribute definition

+

Attribute is always name-value pair where both name and value are strings.

+

Attribute definition specifies how should this value be interpreted + - is it just string, or is it a date? Should we allow multiple values or + note? And importantly, should we promote the attribute or not?

+

+ +

+

You can notice tag attribute definition. These "definition" attributes + define how the "value" attributes should behave.

+

So there's one attribute for value and one for definition. But notice + how definition attribute is Inheritable, + meaning that it's also applied to all descendant note. So in a way, this + definition is used for the whole subtree while "value" attributes are applied + only for this note.

+

Inverse relation

+

Some relations always occur in pairs - my favorite example is on the family. + If you have a note representing husband and note representing wife, then + there might be a relation between those two of isPartnerOf. + This is bidirectional relationship - meaning that if a relation is pointing + from husband to wife then there should be always another relation pointing + from wife to husband.

+

Another example is with parent - child relationship. Again these always + occur in pairs, but in this case it's not exact same relation - the one + going from parent to child might be called isParentOf and the + other one going from child to parent might be called isChildOf.

+

Relation definition allows you to specify such "inverse relation" - for + the relation you just define you specify which is the inverse relation. + Note that in the second example we should have two relation definitions + - one for isParentOf which defines isChildOf as inverse + relation and then second relation definition for isChildOf which + defines isParentOf as inverse relation.

+

What this does internally is that whenever we save a relation which has + defined inverse relation, we check that this inverse relation exists on + the relation target note. Similarly, when we delete relation, we also delete + inverse relation on the target note.

\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html index c80064712..d9c79a998 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html @@ -1,159 +1,139 @@ - - - - - - - - Relations - - - -
-

Relations

- -
-

A relation is similar to a label, - but instead of having a text value it refers to another note.

-

Common use cases

-
    -
  • Metadata Relationships for personal use: For example, - linking a book note to an author note. -
    This can be combined with Promoted Attributes to - make their display more user-friendly.
  • -
  • Configuration: For configuring some notes such as  - Render Note, or configuring Sharing or  - Templates (see the list below).
  • -
  • Scripting: Attaching scripts to events or conditions - related to the note.
  • -
-

Creating a relation using the visual editor

-
    -
  1. Go to the Owned Attributes section in the Ribbon.
  2. -
  3. Press the + button (Add new attribute) to the right.
  4. -
  5. Select Add new relation for the relation.
  6. -
- -

While in the visual editor:

-
    -
  • Set the desired name
  • -
  • Set the Target note (the note to point to). Unlike labels, relations cannot - exist with a target note.
  • -
  • Check Inheritable if the label should be inherited by the child - notes as well. See Attribute Inheritance for - more information.
  • -
-

Creating a relation manually

-

In the Owned Attributes section in the Ribbon:

-
    -
  • To create a relation called myRelation: -
      -
    • First type ~myRelation=@ .
    • -
    • After this, an autocompletion box should appear.
    • -
    • Type the title of the note to point to and press Enter to confirm - (or click the desired note).
    • -
    • Alternatively copy a note from the Note Tree and - paste it after the = sign (without the @ , in this - case).
    • -
    -
  • -
  • To create an inheritable relation, follow the same steps as previously - described but instead of ~myRelation write ~myRelation(inheritable).
  • -
-

Predefined relations

-

These relations are supported and used internally by Trilium.

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LabelDescription
runOn* - See Events -
template - note's attributes will be inherited even without a parent-child relationship, - note's content and subtree will be added to instance notes if empty. See - documentation for details.
inherit - note's attributes will be inherited even without a parent-child relationship. - See Templates for - a similar concept. See Attribute Inheritance in - the documentation.
renderNote - notes of type Render Note will - be rendered using a code note (HTML or script) and it is necessary to point - using this relation to which note should be rendered
widget_relation - target of this relation will be executed and rendered as a widget in the - sidebar
shareCss - CSS note which will be injected into the share page. CSS note must be - in the shared sub-tree as well. Consider using share_hidden_from_tree and share_omit_default_css as - well.
shareJs - JavaScript note which will be injected into the share page. JS note must - be in the shared sub-tree as well. Consider using share_hidden_from_tree.
shareTemplate - Embedded JavaScript note that will be used as the template for displaying - the shared note. Falls back to the default template. Consider using share_hidden_from_tree.
shareFavicon - Favicon note to be set in the shared page. Typically you want to set it - to share root and make it inheritable. Favicon note must be in the shared - sub-tree as well. Consider using share_hidden_from_tree.
-
-
-
- - - \ No newline at end of file +

A relation is similar to a label, + but instead of having a text value it refers to another note.

+

Common use cases

+
    +
  • Metadata Relationships for personal use: For example, + linking a book note to an author note. +
    This can be combined with Promoted Attributes to + make their display more user-friendly.
  • +
  • Configuration: For configuring some notes such as  + Render Note, or configuring Sharing or  + Templates (see the list below).
  • +
  • Scripting: Attaching scripts to events or conditions + related to the note.
  • +
+

Creating a relation using the visual editor

+
    +
  1. Go to the Owned Attributes section in the Ribbon.
  2. +
  3. Press the + button (Add new attribute) to the right.
  4. +
  5. Select Add new relation for the relation.
  6. +
+ +

While in the visual editor:

+
    +
  • Set the desired name
  • +
  • Set the Target note (the note to point to). Unlike labels, relations cannot + exist with a target note.
  • +
  • Check Inheritable if the label should be inherited by the child + notes as well. See Attribute Inheritance for + more information.
  • +
+

Creating a relation manually

+

In the Owned Attributes section in the Ribbon:

+
    +
  • To create a relation called myRelation: +
      +
    • First type ~myRelation=@ .
    • +
    • After this, an autocompletion box should appear.
    • +
    • Type the title of the note to point to and press Enter to confirm + (or click the desired note).
    • +
    • Alternatively copy a note from the Note Tree and + paste it after the = sign (without the @ , in this + case).
    • +
    +
  • +
  • To create an inheritable relation, follow the same steps as previously + described but instead of ~myRelation write ~myRelation(inheritable).
  • +
+

Predefined relations

+

These relations are supported and used internally by Trilium.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LabelDescription
runOn* + See Events +
template + note's attributes will be inherited even without a parent-child relationship, + note's content and subtree will be added to instance notes if empty. See + documentation for details.
inherit + note's attributes will be inherited even without a parent-child relationship. + See Templates for + a similar concept. See Attribute Inheritance in + the documentation.
renderNote + notes of type Render Note will + be rendered using a code note (HTML or script) and it is necessary to point + using this relation to which note should be rendered
widget_relation + target of this relation will be executed and rendered as a widget in the + sidebar
shareCss + CSS note which will be injected into the share page. CSS note must be + in the shared sub-tree as well. Consider using share_hidden_from_tree and share_omit_default_css as + well.
shareJs + JavaScript note which will be injected into the share page. JS note must + be in the shared sub-tree as well. Consider using share_hidden_from_tree.
shareTemplate + Embedded JavaScript note that will be used as the template for displaying + the shared note. Falls back to the default template. Consider using share_hidden_from_tree.
shareFavicon + Favicon note to be set in the shared page. Typically you want to set it + to share root and make it inheritable. Favicon note must be in the shared + sub-tree as well. Consider using share_hidden_from_tree.
+
\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html index 3f354ef4a..f505b9714 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html @@ -1,189 +1,169 @@ - - - - - - - - Bulk Actions - - - -
-

Bulk Actions

- -
-
- -
-

The Bulk Actions dialog makes it easy to apply changes to multiple - notes at once, ranging from simple actions such as adding or removing a - label to being executing custom scripts.

-

Interaction

+
+ +
+

The Bulk Actions dialog makes it easy to apply changes to multiple + notes at once, ranging from simple actions such as adding or removing a + label to being executing custom scripts.

+

Interaction

+
    +
  • The first step is to select the notes in the Note Tree. It's possible to apply bulk + actions to: +
      +
    • A single note (and potentially its child notes) simply by clicking on + it (with a left click or a right click).
    • +
    • Multiple notes. See Multiple selection on + how to do so.
    • +
    +
  • +
  • Right click in the Note Tree and + select AdvancedApply bulk actions.
  • +
  • By default, only the selected notes will be affected. To also include + all the descendants of the notes, check Include descendants of the selected notes. + The number of affected notes at the top of the dialog will update to reflect + the change.
  • +
  • Click on which action to apply from the Available actions section. + A detailed description of each is available in the next section. +
      +
    • For each action selected, the Chosen actions section will update + to reveal the entry. Each action will have its own configuration.
    • +
    • To remove an action, simply press the X button to the right of it.
    • +
    • It is possible to apply multiple actions of the same type, such as adding + multiple types.
    • +
    +
  • +
  • When all the actions are defined, press Execute bulk actions to + trigger all of them at once.
  • +
  • For convenience, the last bulk action configuration is saved for further + use and will be restored when entering the dialog again.
  • +
+

Actions

+

Labels

+

These actions operate the Labels of + a note:

+
    +
  • Add label +
      +
    • For each note, if it doesn't already have a label of + the given name, it will create it. Keep the New value field empty + to create a label without a value, or complete it to assign a value.
    • +
    • If a note already has this label, its value will be updated.
    • +
    +
  • +
  • Update label value +
      +
    • For each note, if it has a label of + the given name, it will change its value to the specified one. Leave New value field + empty to create a label without a value.
    • +
    • Notes without the label will not be affected.
    • +
    +
  • +
  • Rename label +
      +
    • For each note, if it has a label of + the given name, it will be renamed/replaced with a label of the new name. + The value of the label (if present) will be kept intact.
    • +
    • Notes without the label will not be affected.
    • +
    +
  • +
  • Delete label +
      +
    • For each note, if it has a label of a given name, it will be deleted (regardless + of whether it has a value or not).
    • +
    • Notes without the label will not be affected.
    • +
    +
  • +
+

Relations

+

These actions operate the Relations of + a note:

+
    +
  • Add relation +
      +
    • For each note, it will create a relation pointing to the given note.
    • +
    • Notes without this relation will not be affected.
    • +
    +
  • +
  • Update relation target +
      +
    • For each note, it will modify a relation to point to the newly given note.
    • +
    • Notes without this relation will not be affected.
    • +
    +
  • +
  • Rename relation +
      +
    • For each note, if it has a relation of the given name, it will be renamed/replaced + with a relation of the new name. The target note of the relation will be + kept intact.
    • +
    • Notes without this relation will not be affected.
    • +
    +
  • +
  • Delete relation +
      +
    • For each note, if it has a relation of the given name, it will be deleted.
    • +
    • Notes without this relation will not be affected.
    • +
    +
  • +
+

Notes

+
    +
  • Rename note +
      +
    • For each note, it will change the title of the note to the given one.
    • +
    • As a more advanced use case, the note can be a “template string” which + allows for dynamic values with access to the note information via  + FNote, for example: +
        +
      • NEW: ${note.title} will prefix all notes with NEW: .
      • +
      • ${note.dateCreatedObj.format('MM-DD:')}: ${note.title} will + prefix the note titles with each note's creation date (in month-day format).
      • +
      +
    • +
    +
  • +
  • Move note +
      +
    • For each note, it will be moved to the specified parent note.
    • +
    • As an alternative for less complex situations, the notes can be moved + directly from within the Note Tree via + cut → paste or via the contextual menu.
    • +
    +
  • +
  • Delete note +
      +
    • For each note, it will be deleted.
    • +
    • As an alternative for less complex situations, the notes can be removed + directly from within the Note Tree by + selecting them and pressing Delete.
    • +
    +
  • +
  • Delete note revisions + +
  • +
+

Others

+
    +
  • Execute script +
      +
    • For more complex scenarios, it is possible to type in a JavaScript expression + in order to apply the necessary changes.
    • +
    • Examples:
        -
      • The first step is to select the notes in the Note Tree. It's possible to apply bulk - actions to: -
          -
        • A single note (and potentially its child notes) simply by clicking on - it (with a left click or a right click).
        • -
        • Multiple notes. See Multiple selection on - how to do so.
        • -
        +
      • +

        To apply a suffix (- suffix in this example), to the note + title:

        note.title = note.title + " - suffix";
      • -
      • Right click in the Note Tree and - select AdvancedApply bulk actions.
      • -
      • By default, only the selected notes will be affected. To also include - all the descendants of the notes, check Include descendants of the selected notes. - The number of affected notes at the top of the dialog will update to reflect - the change.
      • -
      • Click on which action to apply from the Available actions section. - A detailed description of each is available in the next section. -
          -
        • For each action selected, the Chosen actions section will update - to reveal the entry. Each action will have its own configuration.
        • -
        • To remove an action, simply press the X button to the right of it.
        • -
        • It is possible to apply multiple actions of the same type, such as adding - multiple types.
        • -
        -
      • -
      • When all the actions are defined, press Execute bulk actions to - trigger all of them at once.
      • -
      • For convenience, the last bulk action configuration is saved for further - use and will be restored when entering the dialog again.
      • -
      -

      Actions

      -

      Labels

      -

      These actions operate the Labels of - a note:

      -
        -
      • Add label -
          -
        • For each note, if it doesn't already have a label of - the given name, it will create it. Keep the New value field empty - to create a label without a value, or complete it to assign a value.
        • -
        • If a note already has this label, its value will be updated.
        • -
        -
      • -
      • Update label value -
          -
        • For each note, if it has a label of - the given name, it will change its value to the specified one. Leave New value field - empty to create a label without a value.
        • -
        • Notes without the label will not be affected.
        • -
        -
      • -
      • Rename label -
          -
        • For each note, if it has a label of - the given name, it will be renamed/replaced with a label of the new name. - The value of the label (if present) will be kept intact.
        • -
        • Notes without the label will not be affected.
        • -
        -
      • -
      • Delete label -
          -
        • For each note, if it has a label of a given name, it will be deleted (regardless - of whether it has a value or not).
        • -
        • Notes without the label will not be affected.
        • -
        +
      • +

        To alter attributes of a note based on another attribute, such as setting + the #shareAlias label to the title of the note:

        note.setLabel("shareAlias", note.title)
      -

      Relations

      -

      These actions operate the Relations of - a note:

      -
        -
      • Add relation -
          -
        • For each note, it will create a relation pointing to the given note.
        • -
        • Notes without this relation will not be affected.
        • -
        -
      • -
      • Update relation target -
          -
        • For each note, it will modify a relation to point to the newly given note.
        • -
        • Notes without this relation will not be affected.
        • -
        -
      • -
      • Rename relation -
          -
        • For each note, if it has a relation of the given name, it will be renamed/replaced - with a relation of the new name. The target note of the relation will be - kept intact.
        • -
        • Notes without this relation will not be affected.
        • -
        -
      • -
      • Delete relation -
          -
        • For each note, if it has a relation of the given name, it will be deleted.
        • -
        • Notes without this relation will not be affected.
        • -
        -
      • -
      -

      Notes

      -
        -
      • Rename note -
          -
        • For each note, it will change the title of the note to the given one.
        • -
        • As a more advanced use case, the note can be a “template string” which - allows for dynamic values with access to the note information via  - FNote, for example: -
            -
          • NEW: ${note.title} will prefix all notes with NEW: .
          • -
          • ${note.dateCreatedObj.format('MM-DD:')}: ${note.title} will - prefix the note titles with each note's creation date (in month-day format).
          • -
          -
        • -
        -
      • -
      • Move note -
          -
        • For each note, it will be moved to the specified parent note.
        • -
        • As an alternative for less complex situations, the notes can be moved - directly from within the Note Tree via - cut → paste or via the contextual menu.
        • -
        -
      • -
      • Delete note -
          -
        • For each note, it will be deleted.
        • -
        • As an alternative for less complex situations, the notes can be removed - directly from within the Note Tree by - selecting them and pressing Delete.
        • -
        -
      • -
      • Delete note revisions - -
      • -
      -

      Others

      -
        -
      • Execute script -
          -
        • For more complex scenarios, it is possible to type in a JavaScript expression - in order to apply the necessary changes.
        • -
        • Examples: -
            -
          • -

            To apply a suffix (- suffix in this example), to the note - title:

            note.title = note.title + " - suffix";
            -
          • -
          • -

            To alter attributes of a note based on another attribute, such as setting - the #shareAlias label to the title of the note:

            note.setLabel("shareAlias", note.title)
            -
          • -
          -
        • -
        -
      • -
      -
-
- - - \ No newline at end of file + + + + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.html index 0e595673c..a77f87038 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.html @@ -1,47 +1,27 @@ - - - - - - - - Configuration (config.ini or environment variables) - - - -
-

Configuration (config.ini or environment variables)

- -
-

Trilium supports configuration via a file named config.ini and - environment variables. Please review the file named config-sample.ini in - the Notes repository to - see what values are supported.

-

You can provide the same values via environment variables instead of the config.ini file, - and these environment variables use the following format:

-
    -
  1. Environment variables should be prefixed with TRILIUM_ and - use underscores to represent the INI section structure.
  2. -
  3. The format is: TRILIUM_<SECTION>_<KEY>=<VALUE> -
  4. -
  5. The environment variables will override any matching values from config.ini
  6. -
-

For example, if you have this in your config.ini:

[Network]
+

Trilium supports configuration via a file named config.ini and + environment variables. Please review the file named config-sample.ini in + the Notes repository to + see what values are supported.

+

You can provide the same values via environment variables instead of the config.ini file, + and these environment variables use the following format:

+
    +
  1. Environment variables should be prefixed with TRILIUM_ and + use underscores to represent the INI section structure.
  2. +
  3. The format is: TRILIUM_<SECTION>_<KEY>=<VALUE> +
  4. +
  5. The environment variables will override any matching values from config.ini
  6. +
+

For example, if you have this in your config.ini:

[Network]
 host=localhost
 port=8080
-

You can override these values using environment variables:

TRILIUM_NETWORK_HOST=0.0.0.0
+

You can override these values using environment variables:

TRILIUM_NETWORK_HOST=0.0.0.0
 TRILIUM_NETWORK_PORT=9000
-

The code will:

-
    -
  1. First load the config.ini file as before
  2. -
  3. Then scan all environment variables for ones starting with TRILIUM_ -
  4. -
  5. Parse these variables into section/key pairs
  6. -
  7. Merge them with the config from the file, with environment variables taking - precedence
  8. -
-
-
- - - \ No newline at end of file +

The code will:

+
    +
  1. First load the config.ini file as before
  2. +
  3. Then scan all environment variables for ones starting with TRILIUM_ +
  4. +
  5. Parse these variables into section/key pairs
  6. +
  7. Merge them with the config from the file, with environment variables taking + precedence
  8. +
\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html index 6d35bddce..35fc1d2b8 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html @@ -1,37 +1,17 @@ - - - - - - - - Trilium instance - - - -
-

Trilium instance

- -
-

A Trilium instance represents a server. If Synchronization is set up, since - multiple servers are involved (the one from the desktop client and the - one the synchronisation is set up with), sometimes it can be useful to - distinguish the instance you are running on.

-

Setting the instance name

-

To set up a name for the instance, modify the config.ini:

[General]
+

A Trilium instance represents a server. If Synchronization is set up, since + multiple servers are involved (the one from the desktop client and the + one the synchronisation is set up with), sometimes it can be useful to + distinguish the instance you are running on.

+

Setting the instance name

+

To set up a name for the instance, modify the config.ini:

[General]
 instanceName=Hello
-

Distinguishing the instance on back-end

-

Use api.getInstanceName() to obtain the instance name of the - current server, as specified in the config file or in environment variables.

-

Limiting script runs based on instance

-

For a script that is run periodically or on a certain event, it's possible - to limit it to certain instances without having to change the code. Just - add runOnInstance and set as the value the instance name where - the script should run. To run on multiple named instances, simply add the - label multiple times.

-
-
- - - \ No newline at end of file +

Distinguishing the instance on back-end

+

Use api.getInstanceName() to obtain the instance name of the + current server, as specified in the config file or in environment variables.

+

Limiting script runs based on instance

+

For a script that is run periodically or on a certain event, it's possible + to limit it to certain instances without having to change the code. Just + add runOnInstance and set as the value the instance name where + the script should run. To run on multiple named instances, simply add the + label multiple times.

\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html index c825d72da..d7068f7eb 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html @@ -1,26 +1,11 @@ - - - - - - - - Custom Request Handler - - - -
-

Custom Request Handler

- -
-

Trilium provides a mechanism for scripts to - open a public REST endpoint. This opens a way for various integrations - with other services - a simple example would be creating new note from - Slack by issuing a slash command (e.g. /trilium buy milk).

-

Create note from outside Trilium

-

Let's take a look at an example. The goal is to provide a REST endpoint - to which we can send title and content and Trilium will create a note.

-

We'll start with creating a JavaScript backend code note containing:

const {req, res} = api;
+

Trilium provides a mechanism for scripts to + open a public REST endpoint. This opens a way for various integrations + with other services - a simple example would be creating new note from + Slack by issuing a slash command (e.g. /trilium buy milk).

+

Create note from outside Trilium

+

Let's take a look at an example. The goal is to provide a REST endpoint + to which we can send title and content and Trilium will create a note.

+

We'll start with creating a JavaScript backend code note containing:

const {req, res} = api;
 const {secret, title, content} = req.body;
 
 if (req.method == 'POST' && secret === 'secret-password') {
@@ -37,15 +22,15 @@ if (req.method == 'POST' && secret === 'secret-password') {
 else {
     res.send(400);
 }
-

This script note has also following two attributes:

-
    -
  • label #customRequestHandler with value create-note -
  • -
  • relation ~targetNote pointing to a note where new notes should - be saved
  • -
-

Explanation

-

Let's test this by using an HTTP client to send a request:

POST http://my.trilium.org/custom/create-note
+

This script note has also following two attributes:

+
    +
  • label #customRequestHandler with value create-note +
  • +
  • relation ~targetNote pointing to a note where new notes should + be saved
  • +
+

Explanation

+

Let's test this by using an HTTP client to send a request:

POST http://my.trilium.org/custom/create-note
 Content-Type: application/json
 
 {
@@ -53,43 +38,38 @@ Content-Type: application/json
   "title": "hello",
   "content": "world"
 }+++++++++++++++++++++++++++++++++++++++++++++++
-

Notice the /custom part in the request path - Trilium considers - any request with this prefix as "custom" and tries to find a matching handler - by looking at all notes which have customRequestHandler label. - Value of this label then contains a regular expression which will match - the request path (in our case trivial regex "create-note").

-

Trilium will then find our code note created above and execute it. api.req, api.res are - set to request and - responseobjects from which we can get details of the request and also - respond.

-

In the code note we check the request method and then use trivial authentication - - keep in mind that these endpoints are by default totally unauthenticated, - and you need to take care of this yourself.

-

Once we pass these checks we will just create the desired note using - Script API.

-

Custom resource provider

-

Another common use case is that you want to just expose a file note - - in such case you create label customResourceProvider (value - is again path regex).

-

For more information, see Custom Resource Providers.

-

Advanced concepts

-

api.req and api.res are Express.js objects - you - can always look into its documentation for - details.

-

Parameters

-

REST request paths often contain parameters in the URL, e.g.:

http://my.trilium.org/custom/notes/123
-

The last part is dynamic so the matching of the URL must also be dynamic - - for this reason the matching is done with regular expressions. Following customRequestHandler value - would match it:

notes/([0-9]+)
-

Additionally, this also defines a matching group with the use of parenthesis - which then makes it easier to extract the value. The matched groups are - available in api.pathParams:

const noteId = api.pathParams[0];
-

Often you also need query params (as in e.g. http://my.trilium.org/custom/notes?noteId=123), - you can get those with standard express req.query.noteId.

-
-
- - - \ No newline at end of file +

Notice the /custom part in the request path - Trilium considers + any request with this prefix as "custom" and tries to find a matching handler + by looking at all notes which have customRequestHandler label. + Value of this label then contains a regular expression which will match + the request path (in our case trivial regex "create-note").

+

Trilium will then find our code note created above and execute it. api.req, api.res are + set to request and + responseobjects from which we can get details of the request and also + respond.

+

In the code note we check the request method and then use trivial authentication + - keep in mind that these endpoints are by default totally unauthenticated, + and you need to take care of this yourself.

+

Once we pass these checks we will just create the desired note using + Script API.

+

Custom resource provider

+

Another common use case is that you want to just expose a file note - + in such case you create label customResourceProvider (value + is again path regex).

+

For more information, see Custom Resource Providers.

+

Advanced concepts

+

api.req and api.res are Express.js objects - you + can always look into its documentation for + details.

+

Parameters

+

REST request paths often contain parameters in the URL, e.g.:

http://my.trilium.org/custom/notes/123
+

The last part is dynamic so the matching of the URL must also be dynamic + - for this reason the matching is done with regular expressions. Following customRequestHandler value + would match it:

notes/([0-9]+)
+

Additionally, this also defines a matching group with the use of parenthesis + which then makes it easier to extract the value. The matched groups are + available in api.pathParams:

const noteId = api.pathParams[0];
+

Often you also need query params (as in e.g. http://my.trilium.org/custom/notes?noteId=123), + you can get those with standard express req.query.noteId.

\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Resource Providers.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Resource Providers.html index 888ab5c59..e70528bd5 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Resource Providers.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Resource Providers.html @@ -1,56 +1,36 @@ - - - - - - - - Custom Resource Providers - - - -
-

Custom Resource Providers

- -
-

A custom resource provider allows any file imported into Trilium (images, - fonts, stylesheets) to be publicly accessible via a URL.

-

A potential use case for this is to add embed a custom font alongside - a theme.

-

Steps for creating a custom resource provider

-
    -
  1. Import a file such as an image or a font into Trilium by drag & drop.
  2. -
  3. Select the file and go to the Owned Attributes section.
  4. -
  5. Add the label #customResourceProvider=hello.
  6. -
  7. To test if it is working, use a browser to navigate to <protocol>://<host>/custom/hello (where <protocol> is - either http or https based on your setup, and <host> is - the host or IP to your Trilium server instance). If you are running the - TriliumNext application without a server, use http://localhost:37840 as - the base URL.
  8. -
  9. If everything went well, at the previous step the browser should have - downloaded the file uploaded in the first step.
  10. -
-

Instead of hello, the name can be:

-
    -
  • A path, such as fonts/Roboto.ttf, which would be accessible - via <host>/custom/fonts/Roboto.ttf.
  • -
  • As a more advanced use case, a regular expression to match multiple routes, - such as hello/.* which will be accessible via /custom/hello/1, /custom/hello/2, /custom/hello/world, - etc.
  • -
-

Using it in a theme

-

For example, if you have a custom font to be imported by the theme, first - upload a font file into Trilium and assign it the #customResourceProvider=fonts/myfont.ttf attribute.

-

Then modify the theme CSS to point to:

@font-face {
+

A custom resource provider allows any file imported into Trilium (images, + fonts, stylesheets) to be publicly accessible via a URL.

+

A potential use case for this is to add embed a custom font alongside + a theme.

+

Steps for creating a custom resource provider

+
    +
  1. Import a file such as an image or a font into Trilium by drag & drop.
  2. +
  3. Select the file and go to the Owned Attributes section.
  4. +
  5. Add the label #customResourceProvider=hello.
  6. +
  7. To test if it is working, use a browser to navigate to <protocol>://<host>/custom/hello (where <protocol> is + either http or https based on your setup, and <host> is + the host or IP to your Trilium server instance). If you are running the + TriliumNext application without a server, use http://localhost:37840 as + the base URL.
  8. +
  9. If everything went well, at the previous step the browser should have + downloaded the file uploaded in the first step.
  10. +
+

Instead of hello, the name can be:

+
    +
  • A path, such as fonts/Roboto.ttf, which would be accessible + via <host>/custom/fonts/Roboto.ttf.
  • +
  • As a more advanced use case, a regular expression to match multiple routes, + such as hello/.* which will be accessible via /custom/hello/1, /custom/hello/2, /custom/hello/world, + etc.
  • +
+

Using it in a theme

+

For example, if you have a custom font to be imported by the theme, first + upload a font file into Trilium and assign it the #customResourceProvider=fonts/myfont.ttf attribute.

+

Then modify the theme CSS to point to:

@font-face {
 	font-family: customFont;
 	src: url("/custom/fonts/myfont.ttf");
 }
 
 div {
 	font-family: customFont;
-}
-
-
- - - \ No newline at end of file +} \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database.html index 1abcd2e14..3165b3940 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database.html @@ -1,47 +1,27 @@ - - - - - - - - Database - - - -
-

Database

- -
-

Your Trilium data is stored in a SQLite database - which contains all notes, tree structure, metadata, and most of the configuration. - The database file is named document.db and is stored in the - application's default Data directory.

-

Demo Notes

-

When first starting Trilium, it will provide a set of notes to showcase - various features of the application.

-

For more information see Demo Notes.

-

Manually Modifying the Database

-

Trilium provides a lot of flexibility, and with it, opportunities for - advanced users to tweak it. If you need to explore or modify the database - directly, you can use a tool such as SQLite Browser to - work directly on the database file.

-

See Manually altering the database for - more information.

-

How to Reset the Database

-

If you are experimenting with Trilium and want to return it to its original - state, you can do that by deleting the current database. When you restart - the application, it will generate a new database containing the original - demo notes.

-

To delete the database, simply go to the data directory and - delete the document.db file (and any other files starting with document.db).

-

If you do not need to preserve any configurations that might be stored - in the config.ini file, you can just delete all of the data directory's contents - to fully restore the application to its original state. You can also review - the configuration file to provide - all config.ini values as environment variables instead.

-
-
- - - \ No newline at end of file +

Your Trilium data is stored in a SQLite database + which contains all notes, tree structure, metadata, and most of the configuration. + The database file is named document.db and is stored in the + application's default Data directory.

+

Demo Notes

+

When first starting Trilium, it will provide a set of notes to showcase + various features of the application.

+

For more information see Demo Notes.

+

Manually Modifying the Database

+

Trilium provides a lot of flexibility, and with it, opportunities for + advanced users to tweak it. If you need to explore or modify the database + directly, you can use a tool such as SQLite Browser to + work directly on the database file.

+

See Manually altering the database for + more information.

+

How to Reset the Database

+

If you are experimenting with Trilium and want to return it to its original + state, you can do that by deleting the current database. When you restart + the application, it will generate a new database containing the original + demo notes.

+

To delete the database, simply go to the data directory and + delete the document.db file (and any other files starting with document.db).

+

If you do not need to preserve any configurations that might be stored + in the config.ini file, you can just delete all of the data directory's contents + to fully restore the application to its original state. You can also review + the configuration file to provide + all config.ini values as environment variables instead.

\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Demo Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Demo Notes.html index 236e974bf..73691b220 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Demo Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Demo Notes.html @@ -1,50 +1,30 @@ - - - - - - - - Demo Notes - - - -
-

Demo Notes

- -
-

When you run Trilium for the first time, it will generate a new database - containing demo notes. These notes showcase its many features, such as:

- -

Restoring Demo Notes

-

There are some cases in which you may want to restore the original demo - notes. For example, if you experimented with some of the more advanced - features and want to see the original reference, or if you simply want - to explore the latest version of the demo notes, which might showcase new - features.

-

You can easily restore the demo notes by using Trilium's built-in import - feature by importing them:

-
    -
  • Download this .zip archive with - the latest version of the demo notes
  • -
  • Right click on any note in your tree under which you would like the demo - notes to be imported
  • -
  • Click "Import into note"
  • -
  • Select the .zip archive to import it
  • -
-
-
- - - \ No newline at end of file +

When you run Trilium for the first time, it will generate a new database + containing demo notes. These notes showcase its many features, such as:

+ +

Restoring Demo Notes

+

There are some cases in which you may want to restore the original demo + notes. For example, if you experimented with some of the more advanced + features and want to see the original reference, or if you simply want + to explore the latest version of the demo notes, which might showcase new + features.

+

You can easily restore the demo notes by using Trilium's built-in import + feature by importing them:

+
    +
  • Download this .zip archive with + the latest version of the demo notes
  • +
  • Right click on any note in your tree under which you would like the demo + notes to be imported
  • +
  • Click "Import into note"
  • +
  • Select the .zip archive to import it
  • +
\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database.html index b1316d019..f5abe37d1 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database.html @@ -1,56 +1,36 @@ - - - - - - - - Manually altering the database - - - -
-

Manually altering the database

- -
-

There are some situations where modifying the SQLite database that Trilium - uses is desirable.

-

If you are doing any advanced development or troubleshooting where you - manually modify the database, you might want to consider creating backups - of your document.db file.

-

Modifying it internally using the SQL Console

-

The SQL Console is Trilium's built-in database editor.

-

See SQL Console.

-

Externally modifying the database

-

Sometimes the SQL Console cannot be used (for example if the application - cannot start).

-

When making external modifications, consider closing the desktop application. - If modifying the server database, then stop the service or Docker container.

-

Using DB Browser for SQLite

-

DB Browser for SQLite is a cross-platform editor that can be used to alter - the database using a graphical user interface.

-

To do so:

-
    -
  1. In the main menu, select File → Open database… and navigate to the database - in the Data directory.
  2. -
  3. Select the Execute SQL tab.
  4. -
  5. Type in the desired SQL statement.
  6. -
  7. Press the "Play" button in the toolbar underneath the "Execute SQL" tab - (or F5 key).
  8. -
  9. Press "Write Changes" in the main toolbar.
  10. -
  11. Close the application or close the database.
  12. -
-

- -

-

Using the SQLite CLI

-

First, start the SQLite 3 CLI by specifying the path to the database:

sqlite3 ~/.local/share/trilium-data/document.db
-
    -
  • In the prompt simply type the statement and make sure it ends with a ; character.
  • -
  • To exit, simply type .quit and enter.
  • -
-
-
- - - \ No newline at end of file +

There are some situations where modifying the SQLite database that Trilium + uses is desirable.

+

If you are doing any advanced development or troubleshooting where you + manually modify the database, you might want to consider creating backups + of your document.db file.

+

Modifying it internally using the SQL Console

+

The SQL Console is Trilium's built-in database editor.

+

See SQL Console.

+

Externally modifying the database

+

Sometimes the SQL Console cannot be used (for example if the application + cannot start).

+

When making external modifications, consider closing the desktop application. + If modifying the server database, then stop the service or Docker container.

+

Using DB Browser for SQLite

+

DB Browser for SQLite is a cross-platform editor that can be used to alter + the database using a graphical user interface.

+

To do so:

+
    +
  1. In the main menu, select File → Open database… and navigate to the database + in the Data directory.
  2. +
  3. Select the Execute SQL tab.
  4. +
  5. Type in the desired SQL statement.
  6. +
  7. Press the "Play" button in the toolbar underneath the "Execute SQL" tab + (or F5 key).
  8. +
  9. Press "Write Changes" in the main toolbar.
  10. +
  11. Close the application or close the database.
  12. +
+

+ +

+

Using the SQLite CLI

+

First, start the SQLite 3 CLI by specifying the path to the database:

sqlite3 ~/.local/share/trilium-data/document.db
+
    +
  • In the prompt simply type the statement and make sure it ends with a ; character.
  • +
  • To exit, simply type .quit and enter.
  • +
\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console.html index ea1a5e518..27e27dddb 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console.html @@ -1,56 +1,36 @@ - - - - - - - - SQL Console - - - -
-

SQL Console

- -
-

The SQL Console is Trilium's built-in database editor.

-

It can be accessed by going to the global menu → - Advanced → Open SQL Console.

-

- -

-

Interaction

-
    -
  • -

    Hovering the mouse over one of the tables listed at the top of the document - will show the columns and their data type.

    -
  • -
  • -

    Only one SQL statement can be run at once.

    -
  • -
  • -

    To run the statement, press the - icon.

    -
  • -
  • -

    For queries that return a result, the data will displayed in a table.

    -

    - -

    -
  • -
-

Saved SQL console

-

SQL queries or commands can be saved into a dedicated note.

-

To do so, simply write the query and press the - button. Once saved, the note will appear in Day Notes.

-
    -
  • The SQL expression will not be displayed by default, but it can still - be viewed by going to the note context menu and selecting Note source.
  • -
  • The expression cannot be modified. If needed, recreate it by copying the - statement back into the SQL console and then saving it again.
  • -
-
-
- - - \ No newline at end of file +

The SQL Console is Trilium's built-in database editor.

+

It can be accessed by going to the global menu → + Advanced → Open SQL Console.

+

+ +

+

Interaction

+
    +
  • +

    Hovering the mouse over one of the tables listed at the top of the document + will show the columns and their data type.

    +
  • +
  • +

    Only one SQL statement can be run at once.

    +
  • +
  • +

    To run the statement, press the + icon.

    +
  • +
  • +

    For queries that return a result, the data will displayed in a table.

    +

    + +

    +
  • +
+

Saved SQL console

+

SQL queries or commands can be saved into a dedicated note.

+

To do so, simply write the query and press the + button. Once saved, the note will appear in Day Notes.

+
    +
  • The SQL expression will not be displayed by default, but it can still + be viewed by going to the note context menu and selecting Note source.
  • +
  • The expression cannot be modified. If needed, recreate it by copying the + statement back into the SQL console and then saving it again.
  • +
\ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html index 2bb827d7e..35a783519 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html @@ -1,74 +1,54 @@ - - - - - - - - Default Note Title - - - -
-

Default Note Title

- -
-

When a new note is created, its name is by default "new note". In some - cases, it can be desirable to have a different or even a dynamic default - note title.

-

For this use case, Trilium (since v0.52) supports #titleTemplate - label. You can create such a label for a given note, assign it a value, - and this value will be used as a default title when creating child notes. - As with other labels, you can make it inheritable to apply recursively, - and you can even place it on the root note to have it applied globally - everywhere.

-

As an example use case, imagine you collect books you've read in a given - year like this:

+

When a new note is created, its name is by default "new note". In some + cases, it can be desirable to have a different or even a dynamic default + note title.

+

For this use case, Trilium (since v0.52) supports #titleTemplate + label. You can create such a label for a given note, assign it a value, + and this value will be used as a default title when creating child notes. + As with other labels, you can make it inheritable to apply recursively, + and you can even place it on the root note to have it applied globally + everywhere.

+

As an example use case, imagine you collect books you've read in a given + year like this:

+
    +
  • 2022 Books +
      +
    • Neal Stephenson: Anathem, 2008
    • +
    • Franz Kafka: Die Verwandlung, 1915
    • +
    +
  • +
+

Now, to the parent note "2022 Books" you can assign label #titleTemplate="[Author name]: [Book title], [Publication year]".

+

And all children of "2022 Books" will be created with initial title "[Author + name]: [Book title], [Publication year]". There's no artificial intelligence + here, the idea is to just prompt you to manually fill in the pieces of + information into the note title by yourself.

+

Dynamic value

+

The value of #titleTemplate is evaluated at the point of note's + creation as a JavaScript string, which means it can be enriched with the + help of JS string interpolation with dynamic data.

+

Second variable injected is parentNote which gives access to + the parent FNote.

+

See also Templates which + provides similar capabilities, including default note's content.

+

Examples

+
    +
  • Imagine you collect server outage incidents and write some notes. It looks + like this: +
      +
    • Incidents
        -
      • 2022 Books -
          -
        • Neal Stephenson: Anathem, 2008
        • -
        • Franz Kafka: Die Verwandlung, 1915
        • -
        -
      • +
      • 2022-05-09: System crash
      • +
      • 2022-05-15: Backup delay
      -

      Now, to the parent note "2022 Books" you can assign label #titleTemplate="[Author name]: [Book title], [Publication year]".

      -

      And all children of "2022 Books" will be created with initial title "[Author - name]: [Book title], [Publication year]". There's no artificial intelligence - here, the idea is to just prompt you to manually fill in the pieces of - information into the note title by yourself.

      -

      Dynamic value

      -

      The value of #titleTemplate is evaluated at the point of note's - creation as a JavaScript string, which means it can be enriched with the - help of JS string interpolation with dynamic data.

      -

      Second variable injected is parentNote which gives access to - the parent FNote.

      -

      See also Templates which - provides similar capabilities, including default note's content.

      -

      Examples

      -
        -
      • Imagine you collect server outage incidents and write some notes. It looks - like this: -
          -
        • Incidents -
            -
          • 2022-05-09: System crash
          • -
          • 2022-05-15: Backup delay
          • -
          -
        • -
        • You can automatize the date assignment by assigning a label #titleTemplate="${now.format('YYYY-MM-DD')}: " to - the parent note "Incidents". Whenever a new child note is created, the - title template is evaluated with the injected now object.
        • -
        -
      • -
      • To use a parent's attribute in the title of new notes: #titleTemplate="${parentNote.getLabelValue('authorName')}'s literary works" -
      • -
      • To mirror the parent's note title: ${parentNote.title} -
      • -
      -
-
- - - \ No newline at end of file + +
  • You can automatize the date assignment by assigning a label #titleTemplate="${now.format('YYYY-MM-DD')}: " to + the parent note "Incidents". Whenever a new child note is created, the + title template is evaluated with the injected now object.
  • + + +
  • To use a parent's attribute in the title of new notes: #titleTemplate="${parentNote.getLabelValue('authorName')}'s literary works" +
  • +
  • To mirror the parent's note title: ${parentNote.title} +
  • + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/ETAPI (REST API).html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/ETAPI (REST API).html index 26c1062bf..0aa779d60 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/ETAPI (REST API).html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/ETAPI (REST API).html @@ -1,45 +1,30 @@ - - - - - - - - ETAPI (REST API) - - - -
    -

    ETAPI (REST API)

    - -
    -

    ETAPI is Trilium's public/external REST API. It is available since Trilium - v0.50.

    -

    The documentation is in OpenAPI format, available here.

    -

    API clients

    -

    As an alternative to calling the API directly, there are client libraries - to simplify this

    -
      -
    • trilium-py, you can - use Python to communicate with Trilium.
    • -
    -

    Authentication

    -

    All operations have to be authenticated using a token. You can get this - token either from Options -> ETAPI or programmatically using the /auth/login REST - call (see the spec):

    GET https://myserver.com/etapi/app-info
    +

    ETAPI is Trilium's public/external REST API. It is available since Trilium + v0.50.

    +

    The documentation is in OpenAPI format, available here.

    +

    API clients

    +

    As an alternative to calling the API directly, there are client libraries + to simplify this

    +
      +
    • trilium-py, you can + use Python to communicate with Trilium.
    • +
    +

    Authentication

    +

    All operations have to be authenticated using a token. You can get this + token either from Options -> ETAPI or programmatically using the /auth/login REST + call (see the spec):

    GET https://myserver.com/etapi/app-info
     Authorization: ETAPITOKEN
    -

    Alternatively, since 0.56 you can also use basic auth format:

    GET https://myserver.com/etapi/app-info
    +

    Alternatively, since 0.56 you can also use basic auth format:

    GET https://myserver.com/etapi/app-info
     Authorization: Basic BATOKEN
    -
      -
    • Where BATOKEN = BASE64(username + ':' + password) - this is - a standard Basic Auth serialization
    • -
    • Where username is "etapi"
    • -
    • And password is the generated ETAPI token described above.
    • -
    -

    Basic Auth is meant to be used with tools which support only basic auth.

    -

    Interaction using Bash scripts

    -

    It is possible to write simple Bash scripts to interact with Trilium. - As an example, here's how to obtain the HTML content of a note:

    #!/usr/bin/env bash
    +
      +
    • Where BATOKEN = BASE64(username + ':' + password) - this is + a standard Basic Auth serialization
    • +
    • Where username is "etapi"
    • +
    • And password is the generated ETAPI token described above.
    • +
    +

    Basic Auth is meant to be used with tools which support only basic auth.

    +

    Interaction using Bash scripts

    +

    It is possible to write simple Bash scripts to interact with Trilium. + As an example, here's how to obtain the HTML content of a note:

    #!/usr/bin/env bash
     
     # Configuration
     TOKEN=z1vA4fkGxjOR_ZXLrZeqHEFOv65yV3882iFCRtNIK9k9iWrHliITNSLQ=
    @@ -48,15 +33,10 @@ SERVER=http://localhost:8080
     # Download a note by ID
     NOTE_ID="i6ra4ZshJhgN"
     curl "$SERVER/etapi/notes/$NOTE_ID/content" -H "Authorization: $TOKEN" 
    -

    Make sure to replace the values of:

    -
      -
    • TOKEN with your ETAPI token.
    • -
    • SERVER with the correct protocol, host name and port to your - Trilium instance.
    • -
    • NOTE_ID with an existing note ID to download.
    • -
    -
    -
    - - - \ No newline at end of file +

    Make sure to replace the values of:

    +
      +
    • TOKEN with your ETAPI token.
    • +
    • SERVER with the correct protocol, host name and port to your + Trilium instance.
    • +
    • NOTE_ID with an existing note ID to download.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html index 3e72952d6..8fabb2276 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html @@ -1,202 +1,182 @@ - - - - - - - - Hidden Notes - - - -
    -

    Hidden Notes

    - -
    -
    - -
    -

    For easy extensibility, a lot of features in Trilium make use of actual - notes to store information as opposed to having them stored in a separate - location in the database. This allows some functions such as AttributesRelations or even Search and Links to be able to operate on - them.

    -

    As the name suggests, these notes are hidden to the user by default to - prevent cluttering the note tree and to prevent them from being accidentally - deleted.

    -

    The hidden notes are stored in the user's Database just like normal notes, - but they have a unique Note ID which - allows them to be distinguished from the normal ones.

    -

    Accessing the hidden note tree

    -

    From the Global menu, - select AdvancedShow Hidden Subtree.

    -

    Contents of the hidden note tree

    -

    Here is a brief summary of all the notes within the hidden tree:

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NoteDescription
    Note Map - -

    This note is actually opened when the Note Map feature - that is accessed from the Launch Bar.

    -

    It is possible to create any child notes in it without any additional - meaning. For example, it can be used to store a list of note maps which - can be linked to from other notes or bookmarked.

    -
    SQL Console History - -

    When SQL queries or commands are executed in the SQL Console, they are stored here, - grouped by month. Only the query is stored and not the results.

    -

    This section can be accessed without going to the hidden tree by simply - going to the Global menu and - selecting Advanced → Open SQL Console History.

    -

    Notes can be added as children of this tree, but it's generally not recommended - to do so to not interfere with the normal history process.

    -
    Search History - -

    Whenever a search is executed from the full Search, the query will be stored here, - grouped by month. Only the search parameters are stored and not the results - themselves.

    -

    This section can be accessed without going to the hidden tree by simply - going to the Global menu and - selecting Advanced → Open Search History.

    -

    Notes can be added as children of this tree, but it's generally not recommended - to do so to not interfere with the normal history process.

    -
    Bulk Action - -

    This section is used for Bulk Actions. - The last configuration for bulk actions will be stored as part of this - note, each action in its own action label.

    -

    Notes can be added as children of this tree, but there won't be any benefit - in doing so.

    -
    Backend Log - -

    This note corresponds to the backend log feature (see Error logs).

    -

    This item can be accessed without going to the hidden try by going to - the Global menu and - selecting Advanced → Show backend log.

    -
    User Hidden - This section can be used by scripts to - create their own notes that should not be directly visible to the user. - The note can be identified by scripts by its unique ID: _userHidden -
    Launch Bar Templates - -

    This section contains the templates for the creation of launchers in the  - Launch Bar. It is not possible to create child notes here.

    -

    Theoretically some of the notes here can be customized, but there's not - much benefit to be had in doing so.

    -
    Shared Notes - -

    This tree lists all of the notes that are shared publicly. - It can be useful to track down which notes are shared regardless of their - position in the note tree.

    -

    This section can be accessed without going to the hidden tree simply by - going to the Global menu and - selecting Show Shared Notes Subtree.

    -

    Sub-notes cannot be created here.

    -
    Launch Bar - -

    The tree contains both available and displayed items of the Launch Bar.

    -

    This section can be accessed without going to the hidden tree by:

    -
      -
    • Going to the Global menu and - selecting Configure Launchbar.
    • -
    • Right-clicking an empty space on the Launch Bar and - selecting Configure Launchbar.
    • -
    -

    Sub-notes cannot be created here.

    -
    Options - -

    This section stores the list of Options.

    -

    This section can be accessed without going to the hidden tree by:

    -
      -
    • Going to the Global menu and - selecting Options.
    • -
    • Pressing the dedicated Options icon in the Launch Bar.
    • -
    -
    Mobile Launch Bar - -

    This is very similar to the Launch Bar, but is dedicated for the - mobile UI only.

    -

    Accessing it outside the Launch Bar is the same as the Launch Bar, - but needs to be done so from the mobile interface.

    -
    User Guide - This is where the note structure for the User Guide is actually stored. - Only the metadata is stored, as the help itself is present as actual files - in the application directory.
    -
    -
    -
    - - - \ No newline at end of file +
    + +
    +

    For easy extensibility, a lot of features in Trilium make use of actual + notes to store information as opposed to having them stored in a separate + location in the database. This allows some functions such as AttributesRelations or even Search and Links to be able to operate on + them.

    +

    As the name suggests, these notes are hidden to the user by default to + prevent cluttering the note tree and to prevent them from being accidentally + deleted.

    +

    The hidden notes are stored in the user's Database just like normal notes, + but they have a unique Note ID which + allows them to be distinguished from the normal ones.

    +

    Accessing the hidden note tree

    +

    From the Global menu, + select AdvancedShow Hidden Subtree.

    +

    Contents of the hidden note tree

    +

    Here is a brief summary of all the notes within the hidden tree:

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NoteDescription
    Note Map + +

    This note is actually opened when the Note Map feature + that is accessed from the Launch Bar.

    +

    It is possible to create any child notes in it without any additional + meaning. For example, it can be used to store a list of note maps which + can be linked to from other notes or bookmarked.

    +
    SQL Console History + +

    When SQL queries or commands are executed in the SQL Console, they are stored here, + grouped by month. Only the query is stored and not the results.

    +

    This section can be accessed without going to the hidden tree by simply + going to the Global menu and + selecting Advanced → Open SQL Console History.

    +

    Notes can be added as children of this tree, but it's generally not recommended + to do so to not interfere with the normal history process.

    +
    Search History + +

    Whenever a search is executed from the full Search, the query will be stored here, + grouped by month. Only the search parameters are stored and not the results + themselves.

    +

    This section can be accessed without going to the hidden tree by simply + going to the Global menu and + selecting Advanced → Open Search History.

    +

    Notes can be added as children of this tree, but it's generally not recommended + to do so to not interfere with the normal history process.

    +
    Bulk Action + +

    This section is used for Bulk Actions. + The last configuration for bulk actions will be stored as part of this + note, each action in its own action label.

    +

    Notes can be added as children of this tree, but there won't be any benefit + in doing so.

    +
    Backend Log + +

    This note corresponds to the backend log feature (see Error logs).

    +

    This item can be accessed without going to the hidden try by going to + the Global menu and + selecting Advanced → Show backend log.

    +
    User Hidden + This section can be used by scripts to + create their own notes that should not be directly visible to the user. + The note can be identified by scripts by its unique ID: _userHidden +
    Launch Bar Templates + +

    This section contains the templates for the creation of launchers in the  + Launch Bar. It is not possible to create child notes here.

    +

    Theoretically some of the notes here can be customized, but there's not + much benefit to be had in doing so.

    +
    Shared Notes + +

    This tree lists all of the notes that are shared publicly. + It can be useful to track down which notes are shared regardless of their + position in the note tree.

    +

    This section can be accessed without going to the hidden tree simply by + going to the Global menu and + selecting Show Shared Notes Subtree.

    +

    Sub-notes cannot be created here.

    +
    Launch Bar + +

    The tree contains both available and displayed items of the Launch Bar.

    +

    This section can be accessed without going to the hidden tree by:

    +
      +
    • Going to the Global menu and + selecting Configure Launchbar.
    • +
    • Right-clicking an empty space on the Launch Bar and + selecting Configure Launchbar.
    • +
    +

    Sub-notes cannot be created here.

    +
    Options + +

    This section stores the list of Options.

    +

    This section can be accessed without going to the hidden tree by:

    +
      +
    • Going to the Global menu and + selecting Options.
    • +
    • Pressing the dedicated Options icon in the Launch Bar.
    • +
    +
    Mobile Launch Bar + +

    This is very similar to the Launch Bar, but is dedicated for the + mobile UI only.

    +

    Accessing it outside the Launch Bar is the same as the Launch Bar, + but needs to be done so from the mobile interface.

    +
    User Guide + This is where the note structure for the User Guide is actually stored. + Only the metadata is stored, as the help itself is present as actual files + in the application directory.
    +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note ID.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note ID.html index 7c980c19a..dfcdb4107 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note ID.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note ID.html @@ -1,46 +1,26 @@ - - - - - - - - Note ID - - - -
    -

    Note ID

    - -
    -

    Whereas some applications use file names to uniquely identify notes, Trilium - uses the concept of Note ID.

    -

    Generally, the Note ID is a 12-character long alphanumeric sequence (including - both lower and upper case letter) that is randomly generated for each new - note.

    -

    How does the import/export affect the note IDs

    -

    When notes are exported, their note ID is kept in the metadata of the - export. However when they are imported back in, a new note ID is generated - for all the notes. This also includes other entities that are part of the - import/export process such as Attachments.

    -

    Note collisions

    -

    Since the Note ID is a fixed-width randomly generated number, due to the - pigeonhole principle, there is a possibility that a newly created - note will have the same ID as an existing note.

    -

    Since the note ID is alphanumeric and the length is 12 we have  - \(62^{12}\) unique IDs. However since we are generating them - randomly, we can use a collision calculator such as the one for Nano ID to - determine that we'd need to create 1000 notes per hour every hour for 9 - centuries in order to have at least 1% probability of a note collision.

    -

    As such, Trilium does not take any explicit action against potential note - collisions, similar to other software that makes uses of unique hashes - such as Git. - If one would theoretically occur, what would most likely happen is that - the existing note will be replaced by the new one.

    -
    -
    - - - \ No newline at end of file +

    Whereas some applications use file names to uniquely identify notes, Trilium + uses the concept of Note ID.

    +

    Generally, the Note ID is a 12-character long alphanumeric sequence (including + both lower and upper case letter) that is randomly generated for each new + note.

    +

    How does the import/export affect the note IDs

    +

    When notes are exported, their note ID is kept in the metadata of the + export. However when they are imported back in, a new note ID is generated + for all the notes. This also includes other entities that are part of the + import/export process such as Attachments.

    +

    Note collisions

    +

    Since the Note ID is a fixed-width randomly generated number, due to the + pigeonhole principle, there is a possibility that a newly created + note will have the same ID as an existing note.

    +

    Since the note ID is alphanumeric and the length is 12 we have  + \(62^{12}\) unique IDs. However since we are generating them + randomly, we can use a collision calculator such as the one for Nano ID to + determine that we'd need to create 1000 notes per hour every hour for 9 + centuries in order to have at least 1% probability of a note collision.

    +

    As such, Trilium does not take any explicit action against potential note + collisions, similar to other software that makes uses of unique hashes + such as Git. + If one would theoretically occur, what would most likely happen is that + the existing note will be replaced by the new one.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note Map (Link map, Tree map).html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note Map (Link map, Tree map).html index e7149a4b0..828cb8c65 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note Map (Link map, Tree map).html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note Map (Link map, Tree map).html @@ -1,50 +1,30 @@ - - - - - - - - Note Map (Link map, Tree map) - - - -
    -

    Note Map (Link map, Tree map)

    - -
    -

    Note map is a visualisation of connections between notes.

    -

    This provides an insight into a structure ("web") of notes.

    -

    There are two types of note map:

    -
      -
    • Link Map, which shows relations between notes.
    • -
    • Note Map, which shows the hierarchical tree structure.
    • -
    -

    Link Map

    -

    Shows relations between notes:

    -

    - -

    -

    Tree Map

    -

    Shows hierarchical map of notes:

    -

    - -

    -

    Dedicated note type

    -

    Apart from the note map feature which can be accessed from any note, it - is also possible to create a dedicated note which will display the relations - in full screen. See Note Map for - more information.

    -

    See also

    -

    Relation map is a similar concept, - with some differences:

    -
      -
    • note map is automatically generated while relation map must be created - manually
    • -
    • relation map is a type of note while a link map is just virtual visualization
    • -
    -
    -
    - - - \ No newline at end of file +

    Note map is a visualisation of connections between notes.

    +

    This provides an insight into a structure ("web") of notes.

    +

    There are two types of note map:

    +
      +
    • Link Map, which shows relations between notes.
    • +
    • Note Map, which shows the hierarchical tree structure.
    • +
    +

    Link Map

    +

    Shows relations between notes:

    +

    + +

    +

    Tree Map

    +

    Shows hierarchical map of notes:

    +

    + +

    +

    Dedicated note type

    +

    Apart from the note map feature which can be accessed from any note, it + is also possible to create a dedicated note which will display the relations + in full screen. See Note Map for + more information.

    +

    See also

    +

    Relation map is a similar concept, + with some differences:

    +
      +
    • note map is automatically generated while relation map must be created + manually
    • +
    • relation map is a type of note while a link map is just virtual visualization
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source.html index 85c1bd410..39512ce81 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source.html @@ -1,49 +1,34 @@ - - - - - - - - Note source - - - -
    -

    Note source

    - -
    -

    Understanding the source code of the different notes

    -

    Internally, the structure of the content of each note is different based - on the Note Types.

    -

    For example:

    -
      -
    • Text notes are - represented internally as HTML, using the CKEditor representation. Note - that due to the custom plugins, some HTML elements are specific to Trilium - only, for example the admonitions.
    • -
    • Code notes are - plain text and are represented internally as-is.
    • -
    • Geo Map notes - contain only minimal information (viewport, zoom) as a JSON.
    • -
    • Canvas notes - are represented as JSON, with Trilium's own information alongside with  - Excalidraw's internal JSON representation format.
    • -
    • Mind Map notes - are represented as JSON, with the internal format of MindElixir.
    • -
    -

    Note that some information is also stored as Attachments. For example Canvas notes use the attachments - feature to store the custom libraries, and alongside with Mind Map and other similar note - types it stores an SVG representation of the content for use in other features - such as including in other notes, shared notes, etc.

    -

    Here's part of the HTML representation of this note, as it's stored in - the database (but prettified).

    <h2>
    +

    Understanding the source code of the different notes

    +

    Internally, the structure of the content of each note is different based + on the Note Types.

    +

    For example:

    +
      +
    • Text notes are + represented internally as HTML, using the CKEditor representation. Note + that due to the custom plugins, some HTML elements are specific to Trilium + only, for example the admonitions.
    • +
    • Code notes are + plain text and are represented internally as-is.
    • +
    • Geo Map notes + contain only minimal information (viewport, zoom) as a JSON.
    • +
    • Canvas notes + are represented as JSON, with Trilium's own information alongside with  + Excalidraw's internal JSON representation format.
    • +
    • Mind Map notes + are represented as JSON, with the internal format of MindElixir.
    • +
    +

    Note that some information is also stored as Attachments. For example Canvas notes use the attachments + feature to store the custom libraries, and alongside with Mind Map and other similar note + types it stores an SVG representation of the content for use in other features + such as including in other notes, shared notes, etc.

    +

    Here's part of the HTML representation of this note, as it's stored in + the database (but prettified).

    <h2>
     	Understanding the source code of the different notes
     </h2>
     <p>
    @@ -53,36 +38,31 @@
     	</a>
     	.
     </p>
    -

    Viewing the source code

    -

    It is possible to view the source code of a note by pressing the contextual - menu in Note buttons and - selecting Note source.

    -

    - -

    -

    The source code will be displayed in a new tab.

    -

    For some note types, such as text notes, the source code is also formatted - in order to be more easily readable.

    -

    Modifying the source code

    -

    It is possible to modify the source code of a note directly, however not - via the Note source functionality. 

    -

    To do so:

    -
      -
    1. Change the note type from the real note type (e.g. Canvas, Geo Type) to - Code (plain text) or the corresponding format such as JSON or HTML.
    2. -
    3. Confirm the warning about changing the note type.
    4. -
    5. The source code will appear, make the necessary modifications.
    6. -
    7. Change the note type back to the real note type.
    8. -
    - -
    -
    - - - \ No newline at end of file +

    Viewing the source code

    +

    It is possible to view the source code of a note by pressing the contextual + menu in Note buttons and + selecting Note source.

    +

    + +

    +

    The source code will be displayed in a new tab.

    +

    For some note types, such as text notes, the source code is also formatted + in order to be more easily readable.

    +

    Modifying the source code

    +

    It is possible to modify the source code of a note directly, however not + via the Note source functionality. 

    +

    To do so:

    +
      +
    1. Change the note type from the real note type (e.g. Canvas, Geo Type) to + Code (plain text) or the corresponding format such as JSON or HTML.
    2. +
    3. Confirm the warning about changing the note type.
    4. +
    5. The source code will appear, make the necessary modifications.
    6. +
    7. Change the note type back to the real note type.
    8. +
    + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html index 9a1dc9135..b6f29a2df 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html @@ -1,212 +1,192 @@ - - - - - - - - Sharing - - - -
    -

    Sharing

    - -
    -

    Trilium allows you to share selected notes as publicly accessible read-only - documents. This feature is particularly useful for publishing content directly - from your Trilium notes, making it accessible to others online.

    -

    Prerequisites

    -

    To use the sharing feature, you must have a Server Installation of Trilium. - This is necessary because the notes will be hosted from the server.

    -

    How to Share a Note

    -
      -
    1. -

      Enable Sharing: To share a note, toggle the Shared switch - within the note's interface. Once sharing is enabled, an URL will appear, - which you can click to access the shared note.

      -

      - Share Note -

      -
    2. -
    3. -

      Access the Shared Note: The link provided will open the - note in your browser. If your server is not configured with a public IP, - the URL will refer to localhost (127.0.0.1).

      -

      - Shared Note Example -

      -
    4. -
    -

    Sharing a Note Subtree

    -

    When you share a note, you actually share the entire subtree of notes - beneath it. If the note has child notes, they will also be included in - the shared content. For example, sharing the "Formatting" subtree will - display a page with basic navigation for exploring all the notes within - that subtree.

    -

    - Shared Subtree Example -

    -

    Viewing All Shared Notes

    -

    You can view a list of all shared notes by clicking on "Show Shared Notes - Subtree." This allows you to manage and navigate through all the notes - you have made public.

    -

    Security Considerations

    -

    Shared notes are published on the open internet and can be accessed by - anyone with the URL. The URL's randomness does not provide security, so - it is crucial not to share sensitive information through this feature.

    -

    Password Protection

    -

    To protect shared notes with a username and password, you can use the #shareCredentials attribute. - Add this label to the note with the format #shareCredentials="username:password". - To protect an entire subtree, make sure the label is inheritable.

    -

    Advanced Sharing Options

    -

    Customizing the Appearance of Shared Notes

    -

    The default shared page is basic in design, but you can customize it using - your own CSS:

    -
      -
    • Custom CSS: Link a CSS Code note to the shared page by - adding a ~shareCss relation to the note. If you want this style - to apply to the entire subtree, make the label inheritable. You can hide - the CSS code note from the tree navigation by adding the #shareHiddenFromTree label.
    • -
    • Omitting Default CSS: For extensive styling changes, - use the #shareOmitDefaultCss label to avoid conflicts with Trilium's - default stylesheet.
    • -
    -

    Adding JavaScript

    -

    You can inject custom JavaScript into the shared note using the ~shareJs relation. - This allows you to access note attributes or traverse the note tree using - the fetchNote() API, which retrieves note data based on its - ID.

    -

    Example:

    const currentNote = await fetchNote();
    +

    Trilium allows you to share selected notes as publicly accessible read-only + documents. This feature is particularly useful for publishing content directly + from your Trilium notes, making it accessible to others online.

    +

    Prerequisites

    +

    To use the sharing feature, you must have a Server Installation of Trilium. + This is necessary because the notes will be hosted from the server.

    +

    How to Share a Note

    +
      +
    1. +

      Enable Sharing: To share a note, toggle the Shared switch + within the note's interface. Once sharing is enabled, an URL will appear, + which you can click to access the shared note.

      +

      + Share Note +

      +
    2. +
    3. +

      Access the Shared Note: The link provided will open the + note in your browser. If your server is not configured with a public IP, + the URL will refer to localhost (127.0.0.1).

      +

      + Shared Note Example +

      +
    4. +
    +

    Sharing a Note Subtree

    +

    When you share a note, you actually share the entire subtree of notes + beneath it. If the note has child notes, they will also be included in + the shared content. For example, sharing the "Formatting" subtree will + display a page with basic navigation for exploring all the notes within + that subtree.

    +

    + Shared Subtree Example +

    +

    Viewing All Shared Notes

    +

    You can view a list of all shared notes by clicking on "Show Shared Notes + Subtree." This allows you to manage and navigate through all the notes + you have made public.

    +

    Security Considerations

    +

    Shared notes are published on the open internet and can be accessed by + anyone with the URL. The URL's randomness does not provide security, so + it is crucial not to share sensitive information through this feature.

    +

    Password Protection

    +

    To protect shared notes with a username and password, you can use the #shareCredentials attribute. + Add this label to the note with the format #shareCredentials="username:password". + To protect an entire subtree, make sure the label is inheritable.

    +

    Advanced Sharing Options

    +

    Customizing the Appearance of Shared Notes

    +

    The default shared page is basic in design, but you can customize it using + your own CSS:

    +
      +
    • Custom CSS: Link a CSS Code note to the shared page by + adding a ~shareCss relation to the note. If you want this style + to apply to the entire subtree, make the label inheritable. You can hide + the CSS code note from the tree navigation by adding the #shareHiddenFromTree label.
    • +
    • Omitting Default CSS: For extensive styling changes, + use the #shareOmitDefaultCss label to avoid conflicts with Trilium's + default stylesheet.
    • +
    +

    Adding JavaScript

    +

    You can inject custom JavaScript into the shared note using the ~shareJs relation. + This allows you to access note attributes or traverse the note tree using + the fetchNote() API, which retrieves note data based on its + ID.

    +

    Example:

    const currentNote = await fetchNote();
     const parentNote = await fetchNote(currentNote.parentNoteIds[0]);
     
     for (const attr of parentNote.attributes) {
         console.log(attr.type, attr.name, attr.value);
     }
    -

    Creating Human-Readable URL Aliases

    -

    Shared notes typically have URLs like http://domain.tld/share/knvU8aJy4dJ7, - where the last part is the note's ID. You can make these URLs more user-friendly - by adding the #shareAlias label to individual notes (e.g., #shareAlias=highlighting). - This will change the URL to http://domain.tld/share/highlighting.

    -

    Important:

    -
      -
    1. Ensure that aliases are unique.
    2. -
    3. Using slashes (/) within aliases to create subpaths is not - supported.
    4. -
    -

    Viewing and Managing Shared Notes

    -

    All shared notes are grouped under an automatically managed "Shared Notes" - section. From here, you can view, share, or unshare notes by moving or - cloning them within this section.

    -

    - Shared Notes List -

    -

    Setting a Custom Favicon

    -

    To customize the favicon for your shared pages, create a relation ~shareFavicon pointing - to a file note containing the favicon (e.g., in .ico format).

    -

    Sharing a Note as the Root

    -

    You can designate a specific note or folder as the root of your shared - content by adding the #shareRoot label. This note will be linked - when visiting [http://domain.tld/share](http://domain/share), - making it easier to use Trilium as a fully-fledged website. Consider combining - this with the #shareIndex label, which will display a list of - all shared notes.

    -

    Limitations

    -

    While the sharing feature is powerful, it has some limitations:

    -
      -
    • No Relation Map Support -
    • -
    • Book Notes: Only show a list of child notes.
    • -
    • Code Notes: No syntax highlighting.
    • -
    • Static Note Tree -
    • -
    • Protected Notes: Cannot be shared.
    • -
    • Include Notes: Not supported.
    • -
    -

    Some of these limitations may be addressed in future updates.

    -

    Attribute reference

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AttributeDescription
    shareHiddenFromTree - this note is hidden from left navigation tree, but still accessible with - its URL
    shareExternalLink - note will act as a link to an external website in the share tree
    shareAlias - define an alias using which the note will be available under https://your_trilium_host/share/[your_alias] -
    shareOmitDefaultCss - default share page CSS will be omitted. Use when you make extensive styling - changes.
    shareRoot - marks note which is served on /share root.
    shareDescription - define text to be added to the HTML meta tag for description
    shareRaw - Note will be served in its raw format, without HTML wrapper. See also  - Serving directly the content of a note for an alternative method - without setting an attribute.
    shareDisallowRobotIndexing - -

    Indicates to web crawlers that the page should not be indexed of this - note by:

    -
      -
    • Setting the X-Robots-Tag: noindex HTTP header.
    • -
    • Setting the noindex, follow meta tag.
    • -
    -
    shareCredentials - require credentials to access this shared note. Value is expected to be - in format username:password. Don't forget to make this inheritable - to apply to child-notes/images.
    shareIndex - Note with this label will list all roots of shared notes.
    -
    -
    -
    - - - \ No newline at end of file +

    Creating Human-Readable URL Aliases

    +

    Shared notes typically have URLs like http://domain.tld/share/knvU8aJy4dJ7, + where the last part is the note's ID. You can make these URLs more user-friendly + by adding the #shareAlias label to individual notes (e.g., #shareAlias=highlighting). + This will change the URL to http://domain.tld/share/highlighting.

    +

    Important:

    +
      +
    1. Ensure that aliases are unique.
    2. +
    3. Using slashes (/) within aliases to create subpaths is not + supported.
    4. +
    +

    Viewing and Managing Shared Notes

    +

    All shared notes are grouped under an automatically managed "Shared Notes" + section. From here, you can view, share, or unshare notes by moving or + cloning them within this section.

    +

    + Shared Notes List +

    +

    Setting a Custom Favicon

    +

    To customize the favicon for your shared pages, create a relation ~shareFavicon pointing + to a file note containing the favicon (e.g., in .ico format).

    +

    Sharing a Note as the Root

    +

    You can designate a specific note or folder as the root of your shared + content by adding the #shareRoot label. This note will be linked + when visiting [http://domain.tld/share](http://domain/share), + making it easier to use Trilium as a fully-fledged website. Consider combining + this with the #shareIndex label, which will display a list of + all shared notes.

    +

    Limitations

    +

    While the sharing feature is powerful, it has some limitations:

    +
      +
    • No Relation Map Support +
    • +
    • Book Notes: Only show a list of child notes.
    • +
    • Code Notes: No syntax highlighting.
    • +
    • Static Note Tree +
    • +
    • Protected Notes: Cannot be shared.
    • +
    • Include Notes: Not supported.
    • +
    +

    Some of these limitations may be addressed in future updates.

    +

    Attribute reference

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeDescription
    shareHiddenFromTree + this note is hidden from left navigation tree, but still accessible with + its URL
    shareExternalLink + note will act as a link to an external website in the share tree
    shareAlias + define an alias using which the note will be available under https://your_trilium_host/share/[your_alias] +
    shareOmitDefaultCss + default share page CSS will be omitted. Use when you make extensive styling + changes.
    shareRoot + marks note which is served on /share root.
    shareDescription + define text to be added to the HTML meta tag for description
    shareRaw + Note will be served in its raw format, without HTML wrapper. See also  + Serving directly the content of a note for an alternative method + without setting an attribute.
    shareDisallowRobotIndexing + +

    Indicates to web crawlers that the page should not be indexed of this + note by:

    +
      +
    • Setting the X-Robots-Tag: noindex HTTP header.
    • +
    • Setting the noindex, follow meta tag.
    • +
    +
    shareCredentials + require credentials to access this shared note. Value is expected to be + in format username:password. Don't forget to make this inheritable + to apply to child-notes/images.
    shareIndex + Note with this label will list all roots of shared notes.
    +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.html index 206907ca0..a02f07641 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.html @@ -1,52 +1,32 @@ - - - - - - - - Serving directly the content of a note - - - -
    -

    Serving directly the content of a note

    +

    When accessing a shared note, Trilium will render it as a web page. Sometimes + it's desirable to serve the content directly so that it can be used in + a script or downloaded by the user.

    + + + + + + + + + + + + + +
    A note displayed as a web page (HTML)A note displayed as a raw format
    + + + +
    -
    -

    When accessing a shared note, Trilium will render it as a web page. Sometimes - it's desirable to serve the content directly so that it can be used in - a script or downloaded by the user.

    - - - - - - - - - - - - - -
    A note displayed as a web page (HTML)A note displayed as a raw format
    - - - -
    -

    By adding an attribute to the note

    -

    Simply add the #shareRaw attribute and the note will always - be rendered raw when accessed from the share URL.

    -

    By altering the URL

    -

    Append ?raw to the URL to display a note in its raw format - regardless of whether the #shareRaw attribute is added on the - note.

    -

    - -

    -
    -
    - - - \ No newline at end of file +

    Simply add the #shareRaw attribute and the note will always + be rendered raw when accessed from the share URL.

    +

    By altering the URL

    +

    Append ?raw to the URL to display a note in its raw format + regardless of whether the #shareRaw attribute is added on the + note.

    +

    + +

    \ No newline at end of file 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 index 4b8226d47..191b87d06 100644 --- 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 @@ -1,27 +1,7 @@ - - - - - - - - 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 +

    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 d8a55c783..c6da6762b 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 @@ -1,65 +1,45 @@ - - - - - - - - CKEditor - - - -
    -

    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:

    - -
    -
    - - - \ No newline at end of file +

    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:

    + \ No newline at end of file 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 f416dcb34..78948ebf3 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 @@ -1,25 +1,5 @@ - - - - - - - - Excalidraw - - - -
    -

    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.

    -
    -
    - - - \ No newline at end of file +

    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.

    \ No newline at end of file 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 index 3d8fe8bac..87a201fdb 100644 --- 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 @@ -1,28 +1,8 @@ - - - - - - - - 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 +

    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 d3281f871..64279ce9b 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 @@ -1,29 +1,9 @@ - - - - - - - - MindElixir - - - -
    -

    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.

    -
    -
    - - - \ No newline at end of file +

    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.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html index cc29ee7b2..c0ebf0b9c 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html @@ -1,74 +1,54 @@ - - - - - - - - Templates - - - -
    -

    Templates

    - -
    -

    A template in Trilium serves as a predefined structure for other notes, - referred to as instance notes. Assigning a template to a note brings three - main effects:

    -
      -
    1. Attribute Inheritance: All attributes from the template - note are inherited by the instance - notes. Even attributes with #isInheritable=false are inherited - by the instance notes, although only inheritable attributes are further - inherited by the children of the instance notes.
    2. -
    3. Content Duplication: The content of the template note - is copied to the instance note, provided the instance note is empty at - the time of template assignment.
    4. -
    5. Child Note Duplication: All child notes of the template - are deep-duplicated to the instance note.
    6. -
    -

    Example

    -

    A typical example would be a "Book" template note, which might include:

    -
      -
    • Promoted Attributes: Such as publication year, author, - etc. (see promoted attributes).
    • -
    • Outline: An outline for a book review, including sections - like themes, conclusion, etc.
    • -
    • Child Notes: Additional notes for highlights, summary, - etc.
    • -
    -

    - Template Example -

    -

    Instance Note

    -

    An instance note is a note related to a template note. This relationship - means the instance note's content is initialized from the template, and - all attributes from the template are inherited.

    -

    To create an instance note through the UI:

    -

    - show child note templates -

    -

    For the template to appear in the menu, the template note must have the #template label. - Do not confuse this with the ~template relation, which links - the instance note to the template note. If you use workspaces, - you can also mark templates with #workspaceTemplate to display - them only in the workspace.

    -

    Templates can also be added or changed after note creation by creating - a ~template relation pointing to the desired template note.

    -

    Additional Notes

    -

    From a visual perspective, templates can define #iconClass and #cssClass attributes, - allowing all instance notes (e.g., books) to display a specific icon and - CSS style.

    -

    Explore the concept further in the demo notes, - including examples like the Relation Map, - Task Manager, and Day Notes.

    -

    Additionally, see default note title for - creating title templates. Note templates and title templates can be combined - by creating a #titleTemplate for a template note.

    -
    -
    - - - \ No newline at end of file +

    A template in Trilium serves as a predefined structure for other notes, + referred to as instance notes. Assigning a template to a note brings three + main effects:

    +
      +
    1. Attribute Inheritance: All attributes from the template + note are inherited by the instance + notes. Even attributes with #isInheritable=false are inherited + by the instance notes, although only inheritable attributes are further + inherited by the children of the instance notes.
    2. +
    3. Content Duplication: The content of the template note + is copied to the instance note, provided the instance note is empty at + the time of template assignment.
    4. +
    5. Child Note Duplication: All child notes of the template + are deep-duplicated to the instance note.
    6. +
    +

    Example

    +

    A typical example would be a "Book" template note, which might include:

    +
      +
    • Promoted Attributes: Such as publication year, author, + etc. (see promoted attributes).
    • +
    • Outline: An outline for a book review, including sections + like themes, conclusion, etc.
    • +
    • Child Notes: Additional notes for highlights, summary, + etc.
    • +
    +

    + Template Example +

    +

    Instance Note

    +

    An instance note is a note related to a template note. This relationship + means the instance note's content is initialized from the template, and + all attributes from the template are inherited.

    +

    To create an instance note through the UI:

    +

    + show child note templates +

    +

    For the template to appear in the menu, the template note must have the #template label. + Do not confuse this with the ~template relation, which links + the instance note to the template note. If you use workspaces, + you can also mark templates with #workspaceTemplate to display + them only in the workspace.

    +

    Templates can also be added or changed after note creation by creating + a ~template relation pointing to the desired template note.

    +

    Additional Notes

    +

    From a visual perspective, templates can define #iconClass and #cssClass attributes, + allowing all instance notes (e.g., books) to display a specific icon and + CSS style.

    +

    Explore the concept further in the demo notes, + including examples like the Relation Map, + Task Manager, and Day Notes.

    +

    Additionally, see default note title for + creating title templates. Note templates and title templates can be combined + by creating a #titleTemplate for a template note.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote.html index 2d8457eba..42140ed52 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote.html @@ -1,36 +1,16 @@ - - - - - - - - Evernote - - - -
    -

    Evernote

    - -
    -

    Trilium can import ENEX files which are used by Evernote for backup/export. - One ENEX file represents content (notes and resources) of one notebook.

    -

    Export ENEX from Evernote

    -

    To export ENEX file, you need to have a legacy desktop version - of Evernote (i.e. not web/mobile). Right click on notebook and select export - and follow the wizard.

    -

    Import ENEX in Trilium

    -

    Once you have ENEX file, you can import it to Trilium. Right click on - some note (to which you want to import the file), click on "Import" and - select the ENEX file.

    -

    After importing the ENEX file, go over the imported notes and resources - to be sure the import went well, and you didn't lose any data.

    -

    Limitations

    -

    All resources (except for images) are created as note's attachments.

    -

    HTML inside ENEX files is not exactly valid so some formatting maybe broken - or lost. You can report major problems into Trilium issue tracker.

    -
    -
    - - - \ No newline at end of file +

    Trilium can import ENEX files which are used by Evernote for backup/export. + One ENEX file represents content (notes and resources) of one notebook.

    +

    Export ENEX from Evernote

    +

    To export ENEX file, you need to have a legacy desktop version + of Evernote (i.e. not web/mobile). Right click on notebook and select export + and follow the wizard.

    +

    Import ENEX in Trilium

    +

    Once you have ENEX file, you can import it to Trilium. Right click on + some note (to which you want to import the file), click on "Import" and + select the ENEX file.

    +

    After importing the ENEX file, go over the imported notes and resources + to be sure the import went well, and you didn't lose any data.

    +

    Limitations

    +

    All resources (except for images) are created as note's attachments.

    +

    HTML inside ENEX files is not exactly valid so some formatting maybe broken + or lost. You can report major problems into Trilium issue tracker.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html index 4d635ebe0..e99dddbf4 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html @@ -1,80 +1,60 @@ - - - - - - - - Markdown - - - -
    -

    Markdown

    - -
    -

    Trilium supports Markdown for both import and export, while trying to - keep compatibility as high as possible.

    -

    Import

    -

    Clipboard import

    -

    If you want to import just a chunk of markdown from clipboard, you can - do it from editor block menu:

    -

    - -

    -

    File import

    -

    You can also import Markdown files from files:

    -
      -
    • single markdown file (with .md extension)
    • -
    • whole tree of markdown files (packaged into .zip archive) -
        -
      • Markdown files need to be packaged into ZIP archive because browser can't - read directories, only single files.
      • -
      • You can use e.g. 7-zip to package directory - of markdown files into the ZIP file
      • -
      -
    • -
    -

    [[gifs/markdown-file-import.gif]]

    -

    - -

    -

    Export

    -

    Subtree export

    -

    You can export whole subtree to ZIP archive which will have directory - structured modelled after subtree structure:

    -

    - -

    -

    Single note export

    -

    If you want to export just single note without its subtree, you can do - it from Note actions menu:

    -

    - -

    -

    Exporting protected notes

    -

    If you want to export protected notes, enter a protected session first! - This will export the notes in an unencrypted form, so if you reimport into - Trilium, make sure to re-protect these notes.

    -

    Supported syntax

    -
      -
    • GitHub-Flavored Markdown is - the main syntax that Trilium is following.
    • -
    • Images are supported. When exporting, images are usually kept in the basic - Markdown syntax but will use the HTML syntax if the image has a custom - width. Figures are always embedded as HTML.
    • -
    • Tables are supported with the Markdown syntax. If the table is too complex - or contains elements that would render as HTML, the table is also rendered - as HTML.
    • -
    • Admonitions are - supported using GitHub's format.
    • -
    • Links are supported. “Reference links” (internal links that mirror a note's - title and display its icon) are embedded as HTML in order to preserve the - information on import.
    • -
    • Math equations are supported using $ and $$ syntaxes.
    • -
    -
    -
    - - - \ No newline at end of file +

    Trilium supports Markdown for both import and export, while trying to + keep compatibility as high as possible.

    +

    Import

    +

    Clipboard import

    +

    If you want to import just a chunk of markdown from clipboard, you can + do it from editor block menu:

    +

    + +

    +

    File import

    +

    You can also import Markdown files from files:

    +
      +
    • single markdown file (with .md extension)
    • +
    • whole tree of markdown files (packaged into .zip archive) +
        +
      • Markdown files need to be packaged into ZIP archive because browser can't + read directories, only single files.
      • +
      • You can use e.g. 7-zip to package directory + of markdown files into the ZIP file
      • +
      +
    • +
    +

    [[gifs/markdown-file-import.gif]]

    +

    + +

    +

    Export

    +

    Subtree export

    +

    You can export whole subtree to ZIP archive which will have directory + structured modelled after subtree structure:

    +

    + +

    +

    Single note export

    +

    If you want to export just single note without its subtree, you can do + it from Note actions menu:

    +

    + +

    +

    Exporting protected notes

    +

    If you want to export protected notes, enter a protected session first! + This will export the notes in an unencrypted form, so if you reimport into + Trilium, make sure to re-protect these notes.

    +

    Supported syntax

    +
      +
    • GitHub-Flavored Markdown is + the main syntax that Trilium is following.
    • +
    • Images are supported. When exporting, images are usually kept in the basic + Markdown syntax but will use the HTML syntax if the image has a custom + width. Figures are always embedded as HTML.
    • +
    • Tables are supported with the Markdown syntax. If the table is too complex + or contains elements that would render as HTML, the table is also rendered + as HTML.
    • +
    • Admonitions are + supported using GitHub's format.
    • +
    • Links are supported. “Reference links” (internal links that mirror a note's + title and display its icon) are embedded as HTML in order to preserve the + information on import.
    • +
    • Math equations are supported using $ and $$ syntaxes.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/OneNote.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/OneNote.html index 57c5d2f32..429a2cb67 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/OneNote.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/OneNote.html @@ -1,99 +1,79 @@ - - - - - - - - OneNote - - - -
    -

    OneNote

    - -
    -

    This page describes a method to migrate via EverNote Legacy, but this app is no longer available/working. -

    -

    Prep Onenote notes for best compatibility

    -
      -
    • Remove Onenote Tags and replace with Emoji if possible (Onenote Tags will - get imported into trilium as an image which clutters the Trilium tree somewhat)
    • -
    • Make sure to use Onenote headings where applicable (These will be carried - over correctly into Trilium)
    • -
    • Remove extra whitespace in Onenote (Whitespace seems to be more noticible - in Trilium, so removing it now will make it look nicer in trilium)
    • -
    • If possible, try to avoid very long Onenote pages. Trilium works best - with shorter concise pages with any number of sub or (sub-sub...) pages.
    • -
    • Make sure numbered lists don't have unusual spaces between items in the - list (Sometimes the numbered list will start at 1 again in Trilum if there - is an extra space in the list in OneNote).
    • -
    -

    Migration Procedure

    -

    Import into Evernote from OneNote:

    -
      -
    • Install Evernote Legacy. - Current versions of Evernote do not have this functionality. (Requires - Evernote account, but import works without internet connection - be sure - to NOT sync notes to Evernote!).
    • -
    • In evernote navigate to File > Import > Onenote > Notebook > - Section > OK
    • -
    -

    If exporting all sections at a time, they will not be grouped in folders - - they will all be added to a single folder, but the order will be kept, - so you can re-group into folders after importing to Trilium

    -

    Export from Evernote

    -
      -
    • Right click on the created notebook in Evernote and choose "Export Notes…"
    • -
    • Use the default export format of .enex
    • -
    -

    Cleanup enex file (optional)

    -
      -
    • -

      If the Onenote header (that is at the top of each Onenote page) is not - desired, you can use the following regex to remove them in a text editor - like VsCode:

      -

      Find (using regex): .<div.*><h1 Replace with: <h1 -

      -
    • -
    -

    Import into Trilium

    -
      -
    • In Trilium, right click on the root node and choose Import (all default - options should be fine).
    • -
    • Select the .enex file exported from Evernote
    • -
    • Be patient. Large .enex files may take a few minutes to process
    • -
    • Repeat import for each .enex file
    • -
    -

    Other importing notes:

    -
      -
    • Centered text in Onenote will be left-justified after importing into Trilium
    • -
    • Internal onenote links will obviously be broken, but the link still exists - so you can do a search in Trilium to find all onenote:// links and then - re-link to the proper Trilium page (there is no way to link to a paragraph - in trilium, so it's good to keep trilium pages short so links point to - a small chunk of information instead of a massive note)
    • -
    • Text colors, highlights, and formatting generally carries over well
    • -
    • Revision history will be lost, but any new revisions will be tracked in - Trilium
    • -
    • The structure of notes are not maintained exactly, so if you had sub-notes - in Onenote, you may have to re-arrange the notes accordingly (This is easy - since the order of the notes is preserved).
    • -
    • Evernote tags are created for each "section" in OneNote and these tags - are carried over to Trilium as attributes -
        -
      • If the tags are not desired, you can turn them off in the Evernote export - options.
      • -
      -
    • -
    • If the "Created with OneNote" text is not desired, do a find/replace in - the enex files before importing to Trilium
    • -
    • Some links will be disabled (not clickable) when importing from enex.
    • -
    • Files, screenshots, and attachments are all preserved (This is the only - one-note export option that seems to preserve all of these).
    • -
    -
    -
    - - - \ No newline at end of file +

    This page describes a method to migrate via EverNote Legacy, but this app is no longer available/working. +

    +

    Prep Onenote notes for best compatibility

    +
      +
    • Remove Onenote Tags and replace with Emoji if possible (Onenote Tags will + get imported into trilium as an image which clutters the Trilium tree somewhat)
    • +
    • Make sure to use Onenote headings where applicable (These will be carried + over correctly into Trilium)
    • +
    • Remove extra whitespace in Onenote (Whitespace seems to be more noticible + in Trilium, so removing it now will make it look nicer in trilium)
    • +
    • If possible, try to avoid very long Onenote pages. Trilium works best + with shorter concise pages with any number of sub or (sub-sub...) pages.
    • +
    • Make sure numbered lists don't have unusual spaces between items in the + list (Sometimes the numbered list will start at 1 again in Trilum if there + is an extra space in the list in OneNote).
    • +
    +

    Migration Procedure

    +

    Import into Evernote from OneNote:

    +
      +
    • Install Evernote Legacy. + Current versions of Evernote do not have this functionality. (Requires + Evernote account, but import works without internet connection - be sure + to NOT sync notes to Evernote!).
    • +
    • In evernote navigate to File > Import > Onenote > Notebook > + Section > OK
    • +
    +

    If exporting all sections at a time, they will not be grouped in folders + - they will all be added to a single folder, but the order will be kept, + so you can re-group into folders after importing to Trilium

    +

    Export from Evernote

    +
      +
    • Right click on the created notebook in Evernote and choose "Export Notes…"
    • +
    • Use the default export format of .enex
    • +
    +

    Cleanup enex file (optional)

    +
      +
    • +

      If the Onenote header (that is at the top of each Onenote page) is not + desired, you can use the following regex to remove them in a text editor + like VsCode:

      +

      Find (using regex): .<div.*><h1 Replace with: <h1 +

      +
    • +
    +

    Import into Trilium

    +
      +
    • In Trilium, right click on the root node and choose Import (all default + options should be fine).
    • +
    • Select the .enex file exported from Evernote
    • +
    • Be patient. Large .enex files may take a few minutes to process
    • +
    • Repeat import for each .enex file
    • +
    +

    Other importing notes:

    +
      +
    • Centered text in Onenote will be left-justified after importing into Trilium
    • +
    • Internal onenote links will obviously be broken, but the link still exists + so you can do a search in Trilium to find all onenote:// links and then + re-link to the proper Trilium page (there is no way to link to a paragraph + in trilium, so it's good to keep trilium pages short so links point to + a small chunk of information instead of a massive note)
    • +
    • Text colors, highlights, and formatting generally carries over well
    • +
    • Revision history will be lost, but any new revisions will be tracked in + Trilium
    • +
    • The structure of notes are not maintained exactly, so if you had sub-notes + in Onenote, you may have to re-arrange the notes accordingly (This is easy + since the order of the notes is preserved).
    • +
    • Evernote tags are created for each "section" in OneNote and these tags + are carried over to Trilium as attributes +
        +
      • If the tags are not desired, you can turn them off in the Evernote export + options.
      • +
      +
    • +
    • If the "Created with OneNote" text is not desired, do a find/replace in + the enex files before importing to Trilium
    • +
    • Some links will be disabled (not clickable) when importing from enex.
    • +
    • Files, screenshots, and attachments are all preserved (This is the only + one-note export option that seems to preserve all of these).
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Keyboard Shortcuts.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Keyboard Shortcuts.html index d38351d5e..97629b68b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Keyboard Shortcuts.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Keyboard Shortcuts.html @@ -1,133 +1,113 @@ - - - - - - - - Keyboard Shortcuts - - - -
    -

    Keyboard Shortcuts

    - -
    -

    This is supposed to be a complete list of keyboard shortcuts. Note that - some of these may work only in certain contexts (e.g. in tree pane or note - editor).

    -

    It is also possible to configure most keyboard shortcuts in Options -> - Keyboard shortcuts. Using global: prefix, you can assign a shortcut - which will work even without Trilium being in focus (requires app restart - to take effect).

    -

    Note navigation

    -
      -
    • , - go up/down in the - list of notes, Ctrl + Shift + and Ctrl + Shift +  work - also from editor
    • -
    • , - collapse/expand node
    • -
    • Alt + , Alt + - - go back / forwards in the history
    • -
    • Ctrl + J - show "Jump to" dialog -
    • -
    • Ctrl + . - scroll to current note (useful when you - scroll away from your note or your focus is currently in the editor)
    • -
    • Backspace - jumps to parent note
    • -
    • Alt + C - collapse whole note tree
    • -
    • Alt + - (alt with minus sign) - collapse subtree (if - some subtree takes too much space on tree pane you can collapse it)
    • -
    • you can define a label #keyboardShortcut with - e.g. value Ctrl + I . Pressing this keyboard combination - will then bring you to the note on which it is defined. Note that Trilium - must be reloaded/restarted (Ctrl + R ) for changes to - be in effect.
    • -
    -

    See demo of some of these features in note navigation.

    -

    Tabs

    -
      -
    • Ctrl + 🖱 Left click - (or middle mouse click) on note - link opens note in a new tab
    • -
    -

    Only in desktop (electron build):

    -
      -
    • Ctrl + T - opens empty tab
    • -
    • Ctrl + W - closes active tab
    • -
    • Ctrl + Tab - activates next tab
    • -
    • Ctrl + Shift + Tab - activates previous tab
    • -
    -

    Creating notes

    -
      -
    • CTRL+O - creates new note after the current note
    • -
    • CTRL+P - creates new sub-note into current note
    • -
    • F2 - edit prefix of current - note clone
    • -
    -

    Moving / cloning notes

    -
      -
    • Ctrl + , Ctrl + - - move note up/down in the note list
    • -
    • Ctrl + - move note up in the note tree
    • -
    • Ctrl+ - move note down in the note - tree
    • -
    • Shift+, Shift+ - - multi-select note above/below
    • -
    • Ctrl+A - select all notes in the current level
    • -
    • Shift+🖱 Left click - multi select note which you - clicked on
    • -
    • Ctrl+C - copies current note (or current selection) - into clipboard (used for cloning -
    • -
    • Ctrl+X - cuts current (or current selection) note - into clipboard (used for moving notes)
    • -
    • Ctrl+V - pastes note(s) as sub-note into current - note (which is either move or clone depending on whether it was copied - or cut into clipboard)
    • -
    • Del - delete note / sub-tree
    • -
    -

    Editing notes

    -
      -
    • For Text notes, - refer to Keyboard shortcuts and  - Markdown-like formatting.
    • -
    • Alt-F10 - bring up inline formatting toolbar (arrow - keys , to navigate, Enter to - apply)
    • -
    • Alt-F10 - again to bring up block formatting toolbar
    • -
    • Enter in tree pane switches from tree pane into note title. - Enter from note title switches focus to text editor. Ctrl+. switches - back from editor to tree pane.
    • -
    • Ctrl+K - create / edit external link -
    • -
    • Ctrl+L - create internal (note) link -
    • -
    • Alt+T - inserts current date and time at caret position
    • -
    • Ctrl+. - jump away from the editor to tree pane and - scroll to current note
    • -
    -

    Runtime shortcuts

    -

    These are hooked in Electron to be similar to native browser keyboard - shortcuts.

    -
      -
    • F5, Ctrl-R - reloads Trilium front-end
    • -
    • Ctrl+Shift+I - show developer tools
    • -
    • Ctrl+F - show search dialog
    • -
    • Ctrl+- - zoom out
    • -
    • Ctrl+= - zoom in
    • -
    -

    Other

    -
      -
    • Alt+O - show SQL console (use only if you know what - you're doing)
    • -
    • Alt+M - distraction-free mode - display only note - editor, everything else is hidden
    • -
    • F11 - toggle full screen
    • -
    • Ctrl + S - toggle search form - in tree pane
    • -
    • Alt +A - show note attributes dialog
    • -
    -
    -
    - - - \ No newline at end of file +

    This is supposed to be a complete list of keyboard shortcuts. Note that + some of these may work only in certain contexts (e.g. in tree pane or note + editor).

    +

    It is also possible to configure most keyboard shortcuts in Options -> + Keyboard shortcuts. Using global: prefix, you can assign a shortcut + which will work even without Trilium being in focus (requires app restart + to take effect).

    +

    Note navigation

    +
      +
    • , - go up/down in the + list of notes, Ctrl + Shift + and Ctrl + Shift +  work + also from editor
    • +
    • , - collapse/expand node
    • +
    • Alt + , Alt + - + go back / forwards in the history
    • +
    • Ctrl + J - show "Jump to" dialog +
    • +
    • Ctrl + . - scroll to current note (useful when you + scroll away from your note or your focus is currently in the editor)
    • +
    • Backspace - jumps to parent note
    • +
    • Alt + C - collapse whole note tree
    • +
    • Alt + - (alt with minus sign) - collapse subtree (if + some subtree takes too much space on tree pane you can collapse it)
    • +
    • you can define a label #keyboardShortcut with + e.g. value Ctrl + I . Pressing this keyboard combination + will then bring you to the note on which it is defined. Note that Trilium + must be reloaded/restarted (Ctrl + R ) for changes to + be in effect.
    • +
    +

    See demo of some of these features in note navigation.

    +

    Tabs

    +
      +
    • Ctrl + 🖱 Left click - (or middle mouse click) on note + link opens note in a new tab
    • +
    +

    Only in desktop (electron build):

    +
      +
    • Ctrl + T - opens empty tab
    • +
    • Ctrl + W - closes active tab
    • +
    • Ctrl + Tab - activates next tab
    • +
    • Ctrl + Shift + Tab - activates previous tab
    • +
    +

    Creating notes

    +
      +
    • CTRL+O - creates new note after the current note
    • +
    • CTRL+P - creates new sub-note into current note
    • +
    • F2 - edit prefix of current + note clone
    • +
    +

    Moving / cloning notes

    +
      +
    • Ctrl + , Ctrl + - + move note up/down in the note list
    • +
    • Ctrl + - move note up in the note tree
    • +
    • Ctrl+ - move note down in the note + tree
    • +
    • Shift+, Shift+ - + multi-select note above/below
    • +
    • Ctrl+A - select all notes in the current level
    • +
    • Shift+🖱 Left click - multi select note which you + clicked on
    • +
    • Ctrl+C - copies current note (or current selection) + into clipboard (used for cloning +
    • +
    • Ctrl+X - cuts current (or current selection) note + into clipboard (used for moving notes)
    • +
    • Ctrl+V - pastes note(s) as sub-note into current + note (which is either move or clone depending on whether it was copied + or cut into clipboard)
    • +
    • Del - delete note / sub-tree
    • +
    +

    Editing notes

    +
      +
    • For Text notes, + refer to Keyboard shortcuts and  + Markdown-like formatting.
    • +
    • Alt-F10 - bring up inline formatting toolbar (arrow + keys , to navigate, Enter to + apply)
    • +
    • Alt-F10 - again to bring up block formatting toolbar
    • +
    • Enter in tree pane switches from tree pane into note title. + Enter from note title switches focus to text editor. Ctrl+. switches + back from editor to tree pane.
    • +
    • Ctrl+K - create / edit external link +
    • +
    • Ctrl+L - create internal (note) link +
    • +
    • Alt+T - inserts current date and time at caret position
    • +
    • Ctrl+. - jump away from the editor to tree pane and + scroll to current note
    • +
    +

    Runtime shortcuts

    +

    These are hooked in Electron to be similar to native browser keyboard + shortcuts.

    +
      +
    • F5, Ctrl-R - reloads Trilium front-end
    • +
    • Ctrl+Shift+I - show developer tools
    • +
    • Ctrl+F - show search dialog
    • +
    • Ctrl+- - zoom out
    • +
    • Ctrl+= - zoom in
    • +
    +

    Other

    +
      +
    • Alt+O - show SQL console (use only if you know what + you're doing)
    • +
    • Alt+M - distraction-free mode - display only note + editor, everything else is hidden
    • +
    • F11 - toggle full screen
    • +
    • Ctrl + S - toggle search form + in tree pane
    • +
    • Alt +A - show note attributes dialog
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Bookmarks.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Bookmarks.html index e86588791..494dbaf2b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Bookmarks.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Bookmarks.html @@ -1,32 +1,12 @@ - - - - - - - - Bookmarks - - - -
    -

    Bookmarks

    - -
    -

    To easily access selected notes, you can bookmark them. See demo:

    -

    - -

    -

    Bookmark folder

    -

    Space in the left panel is limited, and you might want to bookmark many - items. One possible solution is to bookmark a folder, so it shows its children:

    -

    - -

    -

    To do this, you need to add a #bookmarkFolder label to the - note.

    -
    -
    - - - \ No newline at end of file +

    To easily access selected notes, you can bookmark them. See demo:

    +

    + +

    +

    Bookmark folder

    +

    Space in the left panel is limited, and you might want to bookmark many + items. One possible solution is to bookmark a folder, so it shows its children:

    +

    + +

    +

    To do this, you need to add a #bookmarkFolder label to the + note.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note.html index af72ea565..448c4cad3 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note.html @@ -1,53 +1,33 @@ - - - - - - - - Jump to Note - - - -
    -

    Jump to Note

    +
    + +
    +

    The Jump to Note function allows easy navigation between notes + by searching for their title. In addition to that, it can also trigger + a full search or create notes.

    +

    Entering jump to note

    +
      +
    • In the Launch Bar, + press + button.
    • +
    • Using the keyboard, press Ctrl + J.
    • +
    +

    Recent notes

    +

    Jump to note also has the ability to show the list of recently viewed + / edited notes and quickly jump to it.

    +

    To access this functionality, click on Jump to button on the + top. By default, (when nothing is entered into autocomplete), this dialog + will show the list of recent notes.

    +

    Alternatively you can click on the "time" icon on the right.

    + -
    -
    - -
    -

    The Jump to Note function allows easy navigation between notes - by searching for their title. In addition to that, it can also trigger - a full search or create notes.

    -

    Entering jump to note

    -
      -
    • In the Launch Bar, - press - button.
    • -
    • Using the keyboard, press Ctrl + J.
    • -
    -

    Recent notes

    -

    Jump to note also has the ability to show the list of recently viewed - / edited notes and quickly jump to it.

    -

    To access this functionality, click on Jump to button on the - top. By default, (when nothing is entered into autocomplete), this dialog - will show the list of recent notes.

    -

    Alternatively you can click on the "time" icon on the right.

    - -

    Interaction

    -
      -
    • By default, when there is no text entered it will display the most recent - notes.
    • -
    • Using the keyboard, use the up or down arrow keys to navigate between - items. Press Enter to open the desired note.
    • -
    • If the note doesn't exist, it's possible to create it by typing the desired - note title and selecting the Create and link child note option.
    • -
    -
    -
    - - - \ No newline at end of file +
      +
    • By default, when there is no text entered it will display the most recent + notes.
    • +
    • Using the keyboard, use the up or down arrow keys to navigate between + items. Press Enter to open the desired note.
    • +
    • If the note doesn't exist, it's possible to create it by typing the desired + note title and selecting the Create and link child note option.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.html index 96f254b8b..201295288 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.html @@ -1,31 +1,11 @@ - - - - - - - - Note Hoisting - - - -
    -

    Note Hoisting

    - -
    -

    Hoisting is a standard outliner feature which allows you to focus on (or - "zoom into") a specific note and its subtree by hiding all parent and sibling - notes. Demo:

    -

    - -

    -

    In addition to showing only this subtree, this also narrows both full - text search and “jump to note” to - just notes present in hoisted subtree.

    -

    See also Workspace which extends - this feature.

    -
    -
    - - - \ No newline at end of file +

    Hoisting is a standard outliner feature which allows you to focus on (or + "zoom into") a specific note and its subtree by hiding all parent and sibling + notes. Demo:

    +

    + +

    +

    In addition to showing only this subtree, this also narrows both full + text search and “jump to note” to + just notes present in hoisted subtree.

    +

    See also Workspace which extends + this feature.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation.html index 4c2d1f72e..7b999c53b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation.html @@ -1,36 +1,16 @@ - - - - - - - - Note Navigation - - - -
    -

    Note Navigation

    - -
    -

    One of the Trilium's goals is to provide fast and comfortable navigation - between notes.

    -

    Backwards and forward

    -

    You can use alt-left and alt-right to move back and forward in history - of viewed pages.

    -

    This works identically to browser backwards / forwards, it's actually - using built-in browser support for this.

    -

    - -

    -

    Jump to note

    -

    This is useful to quickly find and view arbitrary notes - click on Jump to button - on the top or press Ctrl + J . Then type part of the - note name and autocomplete will help you pick the desired note.

    -

    See Jump to Note for - more information.

    -
    -
    - - - \ No newline at end of file +

    One of the Trilium's goals is to provide fast and comfortable navigation + between notes.

    +

    Backwards and forward

    +

    You can use alt-left and alt-right to move back and forward in history + of viewed pages.

    +

    This works identically to browser backwards / forwards, it's actually + using built-in browser support for this.

    +

    + +

    +

    Jump to note

    +

    This is useful to quickly find and view arbitrary notes - click on Jump to button + on the top or press Ctrl + J . Then type part of the + note name and autocomplete will help you pick the desired note.

    +

    See Jump to Note for + more information.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.html index 02ac325dd..f5063bb48 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.html @@ -1,43 +1,23 @@ - - - - - - - - Quick search - - - -
    -

    Quick search

    - -
    -
    - -
    -

    The Quick search function does a full-text search (that is, it - searches through the content of notes and not just the title of a note) - and displays the result in an easy-to-access manner.

    -

    The alternative to the quick search is the Search function, which opens in - a dedicated tab and has support for advanced queries.

    -

    For even faster navigation, it's possible to use Jump to Note which will only search - through the note titles instead of the content.

    -

    Layout

    -

    Based on the Vertical and horizontal layout, - the quick search is placed:

    -
      -
    • On the vertical layout, it is displayed right above the Note Tree.
    • -
    • On the horizontal layout, it is displayed in the Launch Bar, where it can be positioned - just like any other icon.
    • -
    -
    -
    - - - \ No newline at end of file +
    + +
    +

    The Quick search function does a full-text search (that is, it + searches through the content of notes and not just the title of a note) + and displays the result in an easy-to-access manner.

    +

    The alternative to the quick search is the Search function, which opens in + a dedicated tab and has support for advanced queries.

    +

    For even faster navigation, it's possible to use Jump to Note which will only search + through the note titles instead of the content.

    +

    Layout

    +

    Based on the Vertical and horizontal layout, + the quick search is placed:

    +
      +
    • On the vertical layout, it is displayed right above the Note Tree.
    • +
    • On the horizontal layout, it is displayed in the Launch Bar, where it can be positioned + just like any other icon.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note.html index e7c176de2..01091351f 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note.html @@ -1,68 +1,48 @@ - - - - - - - - Search in note - - - -
    -

    Search in note

    - -
    -
    - -
    -

    Local search allows you to search within the currently displayed note. 

    -

    Alternatives

    -
      -
    • Pressing Ctrl+F while in a browser while not focused in a Text or a Code note will trigger the browser's - native search. This will also find text that is part of Trilium's UI.
    • -
    • Pressing Ctrl+F in a Text note - will reveal CKEditor's - search functionality.
    • -
    -

    Accessing the search

    -
      -
    • On desktop, pressCtrl + F -
    • -
    • From the Note buttons, - look for the context menu and select Search in note.
    • -
    -

    Interaction

    -
      -
    • Finding: -
        -
      • Fill in the Find in text… with the text to search for.
      • -
      • The search will be executed automatically in the background.
      • -
      • Use up and down arrows of the text box to navigate between results.
      • -
      -
    • -
    • Replacing: -
        -
      • Fill in the Find in text… field with the text to replace.
      • -
      • Fill in the Replace with… field the text to replace it with.
      • -
      • Press Replace to replace only the current result.
      • -
      • Press Replace all to replace all of them at once.
      • -
      -
    • -
    • Options: -
        -
      • Case sensitive – the search will distinguish upper case characters - from lower case (e.g. searching for Hello will not match hello).
      • -
      • Match words - the search will find only exact word matches (e.g. - searching for Java will not match JavaScript).
      • -
      -
    • -
    -
    -
    - - - \ No newline at end of file +
    + +
    +

    Local search allows you to search within the currently displayed note. 

    +

    Alternatives

    +
      +
    • Pressing Ctrl+F while in a browser while not focused in a Text or a Code note will trigger the browser's + native search. This will also find text that is part of Trilium's UI.
    • +
    • Pressing Ctrl+F in a Text note + will reveal CKEditor's + search functionality.
    • +
    +

    Accessing the search

    +
      +
    • On desktop, pressCtrl + F +
    • +
    • From the Note buttons, + look for the context menu and select Search in note.
    • +
    +

    Interaction

    +
      +
    • Finding: +
        +
      • Fill in the Find in text… with the text to search for.
      • +
      • The search will be executed automatically in the background.
      • +
      • Use up and down arrows of the text box to navigate between results.
      • +
      +
    • +
    • Replacing: +
        +
      • Fill in the Find in text… field with the text to replace.
      • +
      • Fill in the Replace with… field the text to replace it with.
      • +
      • Press Replace to replace only the current result.
      • +
      • Press Replace all to replace all of them at once.
      • +
      +
    • +
    • Options: +
        +
      • Case sensitive – the search will distinguish upper case characters + from lower case (e.g. searching for Hello will not match hello).
      • +
      • Match words - the search will find only exact word matches (e.g. + searching for Java will not match JavaScript).
      • +
      +
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html index 85c05ea0c..0d26a25f3 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html @@ -1,263 +1,243 @@ - - - - - - - - Search - - - -
    -

    Search

    - -
    -
    - -
    -

    Note search enables you to find notes by searching for text in the title, - content, or attributes of the notes. - You also have the option to save your searches, which will create a special - search note which is visible on your navigation tree and contains the search - results as sub-items.

    -

    Accessing the search

    +
    + +
    +

    Note search enables you to find notes by searching for text in the title, + content, or attributes of the notes. + You also have the option to save your searches, which will create a special + search note which is visible on your navigation tree and contains the search + results as sub-items.

    +

    Accessing the search

    +
      +
    • From the Launch Bar, + look for the dedicated search button.
    • +
    • To limit the search to a note and its children, select Search from subtree from + the Note tree contextual menu or + press Ctrl+Shift+S.
    • +
    +

    Interaction

    +

    To search for notes, click on the magnifying glass icon on the toolbar + or press the keyboard shortcut.

    +
      +
    1. Set the text to search for in the Search string field. +
        +
      1. Apart from searching for words ad-literam, there is also the possibility + to search for attributes or properties of notes.
      2. +
      3. See the examples below for more information.
      4. +
      +
    2. +
    3. To limit the search to a note and its sub-children, set a note in Ancestor. +
        +
      1. This value is also pre-filled if the search is triggered from a hoisted note or + a workspace.
      2. +
      3. To search the entire database, keep the value empty.
      4. +
      +
    4. +
    5. To limit the search to only a few levels of hierarchy (e.g. look in sub-children + but not in sub-sub-children of a note), set the depth field to one + of the provided values.
    6. +
    7. In addition to that, the search can be configured via the Add search options buttons, + as described in the follow-up section.
    8. +
    9. Press Search to trigger the search. The results are displayed below + the search configuration pane.
    10. +
    11. The Search & Execute actions button is only relevant if at + least one action has been added (as described in the section below).
    12. +
    13. The Save to note will create a new note with the search configuration. + For more information, see Saved Search.
    14. +
    +

    Search options

    +

    Click on which search option to apply from the Add search option section.

    +
      +
    • For each search option selected, the search configuration will update + to reveal the entry. Each search option will have its own configuration.
    • +
    • To remove a search option, simply press the X button to the right of it.
    • +
    +

    The options available are:

    +
      +
    1. Search script +
        +
      1. This feature allows writing a Code note + that will handle the search on its own.
      2. +
      +
    2. +
    3. Fast search +
        +
      1. The search will not look into the content of the notes, but it will still + look into note titles and attributes, relations (based on the search query).
      2. +
      3. This method can speed up the search considerably for large databases.
      4. +
      +
    4. +
    5. Include archived +
        +
      1. Archived Notes will + also be included in the results, whereas otherwise they would be ignored.
      2. +
      +
    6. +
    7. Order by +
        +
      1. Allows changing the criteria for ordering the results, for example to + order by creation date or alphabetically instead of by relevancy (default).
      2. +
      3. It's also possible to change the order (ascending or descending) of the + results.
      4. +
      +
    8. +
    9. Limit +
        +
      1. Limits the results to a given maximum.
      2. +
      3. This can help if the number of results would otherwise be high, at the + cost of not being able to view all the results.
      4. +
      +
    10. +
    11. Debug +
        +
      1. This will print additional information in the server log (see  + Error logs), regarding how the search expression was parsed.
      2. +
      3. This function is especially useful after understanding the search functionality + in detail, in order to determine why a complex search query is not working + as expected.
      4. +
      +
    12. +
    13. Action +
        +
      1. Apart from just searching, it is also possible to apply actions such as + to add a label or a relation to the notes that have been matched by the + search.
      2. +
      3. Unlike other search configurations, here it's possible to apply the same + action multiple times (i.e. in order to be able to apply multiple labels + to notes).
      4. +
      5. The actions given are the same as the ones in Bulk Actions, which is an alternative + for operating directly with notes within the Note Tree.
      6. +
      7. After defining the actions, first press Search to check the matched + notes and then press Search & Execute actions to trigger the + actions.
      8. +
      +
    14. +
    +

    Simple Note Search Examples

    +
      +
    • rings tolkien: Full-text search to find notes containing + both "rings" and "tolkien".
    • +
    • "The Lord of the Rings" Tolkien: Full-text search where "The + Lord of the Rings" must match exactly.
    • +
    • note.content *=* rings OR note.content *=* tolkien: Find + notes containing "rings" or "tolkien" in their content.
    • +
    • towers #book: Combine full-text and attribute search to find + notes containing "towers" and having the "book" label.
    • +
    • towers #book or #author: Search for notes containing "towers" + and having either the "book" or "author" label.
    • +
    • towers #!book: Search for notes containing "towers" and not + having the "book" label.
    • +
    • #book #publicationYear = 1954: Find notes with the "book" + label and "publicationYear" set to 1954.
    • +
    • #genre *=* fan: Find notes with the "genre" label containing + the substring "fan". Additional operators include *=* for "contains", =* for + "starts with", *= for "ends with", and != for "is + not equal to".
    • +
    • #book #publicationYear >= 1950 #publicationYear < 1960: + Use numeric operators to find all books published in the 1950s.
    • +
    • #dateNote >= TODAY-30: A "smart search" to find notes + with the "dateNote" label within the last 30 days. Supported smart values + include NOW +- seconds, TODAY +- days, MONTH +- months, YEAR +- years.
    • +
    • ~author.title *=* Tolkien: Find notes related to an author + whose title contains "Tolkien".
    • +
    • #publicationYear %= '19[0-9]{2}': Use the '%=' operator to + match a regular expression (regex). This feature has been available since + Trilium 0.52.
    • +
    +

    Advanced Use Cases

    +
      +
    • ~author.relations.son.title = 'Christopher Tolkien': Search + for notes with an "author" relation to a note that has a "son" relation + to "Christopher Tolkien". This can be modeled with the following note structure: +
        +
      • Books
          -
        • From the Launch Bar, - look for the dedicated search button.
        • -
        • To limit the search to a note and its children, select Search from subtree from - the Note tree contextual menu or - press Ctrl+Shift+S.
        • -
        -

        Interaction

        -

        To search for notes, click on the magnifying glass icon on the toolbar - or press the keyboard shortcut.

        -
          -
        1. Set the text to search for in the Search string field. -
            -
          1. Apart from searching for words ad-literam, there is also the possibility - to search for attributes or properties of notes.
          2. -
          3. See the examples below for more information.
          4. -
          -
        2. -
        3. To limit the search to a note and its sub-children, set a note in Ancestor. -
            -
          1. This value is also pre-filled if the search is triggered from a hoisted note or - a workspace.
          2. -
          3. To search the entire database, keep the value empty.
          4. -
          -
        4. -
        5. To limit the search to only a few levels of hierarchy (e.g. look in sub-children - but not in sub-sub-children of a note), set the depth field to one - of the provided values.
        6. -
        7. In addition to that, the search can be configured via the Add search options buttons, - as described in the follow-up section.
        8. -
        9. Press Search to trigger the search. The results are displayed below - the search configuration pane.
        10. -
        11. The Search & Execute actions button is only relevant if at - least one action has been added (as described in the section below).
        12. -
        13. The Save to note will create a new note with the search configuration. - For more information, see Saved Search.
        14. -
        -

        Search options

        -

        Click on which search option to apply from the Add search option section.

        -
          -
        • For each search option selected, the search configuration will update - to reveal the entry. Each search option will have its own configuration.
        • -
        • To remove a search option, simply press the X button to the right of it.
        • -
        -

        The options available are:

        -
          -
        1. Search script -
            -
          1. This feature allows writing a Code note - that will handle the search on its own.
          2. -
          -
        2. -
        3. Fast search -
            -
          1. The search will not look into the content of the notes, but it will still - look into note titles and attributes, relations (based on the search query).
          2. -
          3. This method can speed up the search considerably for large databases.
          4. -
          -
        4. -
        5. Include archived -
            -
          1. Archived Notes will - also be included in the results, whereas otherwise they would be ignored.
          2. -
          -
        6. -
        7. Order by -
            -
          1. Allows changing the criteria for ordering the results, for example to - order by creation date or alphabetically instead of by relevancy (default).
          2. -
          3. It's also possible to change the order (ascending or descending) of the - results.
          4. -
          -
        8. -
        9. Limit -
            -
          1. Limits the results to a given maximum.
          2. -
          3. This can help if the number of results would otherwise be high, at the - cost of not being able to view all the results.
          4. -
          -
        10. -
        11. Debug -
            -
          1. This will print additional information in the server log (see  - Error logs), regarding how the search expression was parsed.
          2. -
          3. This function is especially useful after understanding the search functionality - in detail, in order to determine why a complex search query is not working - as expected.
          4. -
          -
        12. -
        13. Action -
            -
          1. Apart from just searching, it is also possible to apply actions such as - to add a label or a relation to the notes that have been matched by the - search.
          2. -
          3. Unlike other search configurations, here it's possible to apply the same - action multiple times (i.e. in order to be able to apply multiple labels - to notes).
          4. -
          5. The actions given are the same as the ones in Bulk Actions, which is an alternative - for operating directly with notes within the Note Tree.
          6. -
          7. After defining the actions, first press Search to check the matched - notes and then press Search & Execute actions to trigger the - actions.
          8. -
          -
        14. -
        -

        Simple Note Search Examples

        -
          -
        • rings tolkien: Full-text search to find notes containing - both "rings" and "tolkien".
        • -
        • "The Lord of the Rings" Tolkien: Full-text search where "The - Lord of the Rings" must match exactly.
        • -
        • note.content *=* rings OR note.content *=* tolkien: Find - notes containing "rings" or "tolkien" in their content.
        • -
        • towers #book: Combine full-text and attribute search to find - notes containing "towers" and having the "book" label.
        • -
        • towers #book or #author: Search for notes containing "towers" - and having either the "book" or "author" label.
        • -
        • towers #!book: Search for notes containing "towers" and not - having the "book" label.
        • -
        • #book #publicationYear = 1954: Find notes with the "book" - label and "publicationYear" set to 1954.
        • -
        • #genre *=* fan: Find notes with the "genre" label containing - the substring "fan". Additional operators include *=* for "contains", =* for - "starts with", *= for "ends with", and != for "is - not equal to".
        • -
        • #book #publicationYear >= 1950 #publicationYear < 1960: - Use numeric operators to find all books published in the 1950s.
        • -
        • #dateNote >= TODAY-30: A "smart search" to find notes - with the "dateNote" label within the last 30 days. Supported smart values - include NOW +- seconds, TODAY +- days, MONTH +- months, YEAR +- years.
        • -
        • ~author.title *=* Tolkien: Find notes related to an author - whose title contains "Tolkien".
        • -
        • #publicationYear %= '19[0-9]{2}': Use the '%=' operator to - match a regular expression (regex). This feature has been available since - Trilium 0.52.
        • -
        -

        Advanced Use Cases

        -
          -
        • ~author.relations.son.title = 'Christopher Tolkien': Search - for notes with an "author" relation to a note that has a "son" relation - to "Christopher Tolkien". This can be modeled with the following note structure: +
        • Lord of the Rings
            -
          • Books -
              -
            • Lord of the Rings -
                -
              • label: “book”
              • -
              • relation: “author” points to “J. R. R. Tolkien” note
              • -
              -
            • -
            -
          • -
          • People -
              -
            • J. R. R. Tolkien -
                -
              • relation: “son” points to "Christopher Tolkien" note
              • -
              • Christopher Tolkien
              • -
              -
            • -
            -
          • +
          • label: “book”
          • +
          • relation: “author” points to “J. R. R. Tolkien” note
        • -
        • ~author.title *= Tolkien OR (#publicationDate >= 1954 AND #publicationDate <= 1960): - Use boolean expressions and parentheses to group expressions. Note that - expressions starting with a parenthesis need an "expression separator sign" - (# or ~) prepended.
        • -
        • note.parents.title = 'Books': Find notes with a parent named - "Books".
        • -
        • note.parents.parents.title = 'Books': Find notes with a grandparent - named "Books".
        • -
        • note.ancestors.title = 'Books': Find notes with an ancestor - named "Books".
        • -
        • note.children.title = 'sub-note': Find notes with a child - named "sub-note".
        -

        Search with Note Properties

        -

        Notes have properties that can be used in searches, such as noteId, dateModified, dateCreated, isProtected, type, title, text, content, rawContent, ownedLabelCount, labelCount, ownedRelationCount, relationCount, ownedRelationCountIncludingLinks, relationCountIncludingLinks, ownedAttributeCount, attributeCount, targetRelationCount, targetRelationCountIncludingLinks, parentCount, childrenCount, isArchived, contentSize, noteSize, - and revisionCount.

        -

        These properties can be accessed via the note. prefix, e.g., note.type = code AND note.mime = 'application/json'.

        -

        Order by and Limit

        #author=Tolkien orderBy #publicationDate desc, note.title limit 10
        -

        This example will:

        -
          -
        1. Find notes with the author label "Tolkien".
        2. -
        3. Order the results by publicationDate in descending order.
        4. -
        5. Use note.title as a secondary ordering if publication dates - are equal.
        6. -
        7. Limit the results to the first 10 notes.
        8. -
        -

        Negation

        -

        Some queries can only be expressed with negation:

        #book AND not(note.ancestor.title = 'Tolkien')
        -

        This query finds all book notes not in the "Tolkien" subtree.

        -

        Under the Hood

        -

        Label and Relation Shortcuts

        -

        The "full" syntax for searching by labels is:

        note.labels.publicationYear = 1954
        -

        For relations:

        note.relations.author.title *=* Tolkien
        -

        However, common label and relation searches have shortcut syntax:

        #publicationYear = 1954
        +      
      • +
      • People +
          +
        • J. R. R. Tolkien +
            +
          • relation: “son” points to "Christopher Tolkien" note
          • +
          • Christopher Tolkien
          • +
          +
        • +
        +
      • +
      +
    • +
    • ~author.title *= Tolkien OR (#publicationDate >= 1954 AND #publicationDate <= 1960): + Use boolean expressions and parentheses to group expressions. Note that + expressions starting with a parenthesis need an "expression separator sign" + (# or ~) prepended.
    • +
    • note.parents.title = 'Books': Find notes with a parent named + "Books".
    • +
    • note.parents.parents.title = 'Books': Find notes with a grandparent + named "Books".
    • +
    • note.ancestors.title = 'Books': Find notes with an ancestor + named "Books".
    • +
    • note.children.title = 'sub-note': Find notes with a child + named "sub-note".
    • +
    +

    Search with Note Properties

    +

    Notes have properties that can be used in searches, such as noteId, dateModified, dateCreated, isProtected, type, title, text, content, rawContent, ownedLabelCount, labelCount, ownedRelationCount, relationCount, ownedRelationCountIncludingLinks, relationCountIncludingLinks, ownedAttributeCount, attributeCount, targetRelationCount, targetRelationCountIncludingLinks, parentCount, childrenCount, isArchived, contentSize, noteSize, + and revisionCount.

    +

    These properties can be accessed via the note. prefix, e.g., note.type = code AND note.mime = 'application/json'.

    +

    Order by and Limit

    #author=Tolkien orderBy #publicationDate desc, note.title limit 10
    +

    This example will:

    +
      +
    1. Find notes with the author label "Tolkien".
    2. +
    3. Order the results by publicationDate in descending order.
    4. +
    5. Use note.title as a secondary ordering if publication dates + are equal.
    6. +
    7. Limit the results to the first 10 notes.
    8. +
    +

    Negation

    +

    Some queries can only be expressed with negation:

    #book AND not(note.ancestor.title = 'Tolkien')
    +

    This query finds all book notes not in the "Tolkien" subtree.

    +

    Under the Hood

    +

    Label and Relation Shortcuts

    +

    The "full" syntax for searching by labels is:

    note.labels.publicationYear = 1954
    +

    For relations:

    note.relations.author.title *=* Tolkien
    +

    However, common label and relation searches have shortcut syntax:

    #publicationYear = 1954
     #author.title *=* Tolkien
    -

    Separating Full-Text and Attribute Parts

    -

    Search syntax allows combining full-text search with attribute-based search - seamlessly. For example, tolkien #book contains:

    -
      -
    1. Full-text tokens - tolkien -
    2. -
    3. Attribute expressions - #book -
    4. -
    -

    Trilium detects the separation between full text search and attribute/property - search by looking for certain special characters or words that denote attributes - and properties (e.g., #, ~, note.). If you need to include these in full-text - search, escape them with a backslash so they are processed as regular text:

    "note.txt" 
    +

    Separating Full-Text and Attribute Parts

    +

    Search syntax allows combining full-text search with attribute-based search + seamlessly. For example, tolkien #book contains:

    +
      +
    1. Full-text tokens - tolkien +
    2. +
    3. Attribute expressions - #book +
    4. +
    +

    Trilium detects the separation between full text search and attribute/property + search by looking for certain special characters or words that denote attributes + and properties (e.g., #, ~, note.). If you need to include these in full-text + search, escape them with a backslash so they are processed as regular text:

    "note.txt" 
     \#hash 
     #myLabel = 'Say "Hello World"'
    -

    Escaping Special Characters

    -

    Special characters can be enclosed in quotes or escaped with a backslash - to be used in full-text search:

    "note.txt"
    +

    Escaping Special Characters

    +

    Special characters can be enclosed in quotes or escaped with a backslash + to be used in full-text search:

    "note.txt"
     \#hash
     #myLabel = 'Say "Hello World"'
    -

    Three types of quotes are supported: single, double, and backtick.

    -

    Type Coercion

    -

    Label values are technically strings but can be coerced for numeric comparisons:

    note.dateCreated =* '2019-05'
    -

    This finds notes created in May 2019. Numeric operators like #publicationYear >= 1960 convert - string values to numbers for comparison.

    -

    Auto-Trigger Search from URL

    -

    You can open Trilium and automatically trigger a search by including the - search url encoded string - in the URL:

    -

    http://localhost:8080/#?searchString=abc -

    -
    -
    - - - \ No newline at end of file +

    Three types of quotes are supported: single, double, and backtick.

    +

    Type Coercion

    +

    Label values are technically strings but can be coerced for numeric comparisons:

    note.dateCreated =* '2019-05'
    +

    This finds notes created in May 2019. Numeric operators like #publicationYear >= 1960 convert + string values to numbers for comparison.

    +

    Auto-Trigger Search from URL

    +

    You can open Trilium and automatically trigger a search by including the + search url encoded string + in the URL:

    +

    http://localhost:8080/#?searchString=abc +

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Similar Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Similar Notes.html index 42f4f5033..bce15f8d6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Similar Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Similar Notes.html @@ -1,35 +1,15 @@ - - - - - - - - Similar Notes - - - -
    -

    Similar Notes

    - -
    -
    - -
    -

    The Similar Notes feature tries to identify notes that relate to the current - note by looking at the content of the notes, their relationships, as well - as the date they were created.

    -

    To access the list of similar notes, press the “Similar Notes” tab in - the Ribbon.

    -

    Interaction

    -
      -
    • Hover over a note to see a short preview of the note.
    • -
    • Click over a note to open it in the current view.
    • -
    • Ctrl + click a note to open it in a separate tab.
    • -
    -
    -
    - - - \ No newline at end of file +
    + +
    +

    The Similar Notes feature tries to identify notes that relate to the current + note by looking at the content of the notes, their relationships, as well + as the date they were created.

    +

    To access the list of similar notes, press the “Similar Notes” tab in + the Ribbon.

    +

    Interaction

    +
      +
    • Hover over a note to see a short preview of the note.
    • +
    • Click over a note to open it in the current view.
    • +
    • Ctrl + click a note to open it in a separate tab.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Tree Concepts.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Tree Concepts.html index 0e87256b5..b7d39b9e6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Tree Concepts.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Tree Concepts.html @@ -1,46 +1,26 @@ - - - - - - - - Tree Concepts - - - -
    -

    Tree Concepts

    - -
    -

    This page explains the basic concepts related to the tree structure of - notes in TriliumNext.

    -

    Note

    -

    A note is the central entity in TriliumNext. For more details, see Note.

    -

    Branch

    -

    A branch describes the placement of a note within the note tree. Essentially, - it is a tuple of parentNoteId and noteId, indicating - that the given note is placed as a child under the specified parent note.

    -

    Each note can have multiple branches, meaning any note can be placed in - multiple locations within the tree. This concept is referred to as " - cloning."

    -

    Prefix

    -

    A prefix is a branch-specific title modifier for a note. If you place - your note in two different locations within the tree and want to alter - the title slightly in one of those placements, you can use a prefix.

    -

    To edit a prefix, right-click on the note in the tree pane and select - "Edit branch prefix."

    -

    The prefix is not part of the note itself and is not encrypted when the - note is protected. This can be useful if you want part of the title to - remain visible in the tree for easier navigation, even when the note is - protected.

    -

    Subtree

    -

    A subtree consists of a particular note (the subtree root) and all its - children and descendants. Some operations, such as exporting, work on entire - subtrees.

    -
    -
    - - - \ No newline at end of file +

    This page explains the basic concepts related to the tree structure of + notes in TriliumNext.

    +

    Note

    +

    A note is the central entity in TriliumNext. For more details, see Note.

    +

    Branch

    +

    A branch describes the placement of a note within the note tree. Essentially, + it is a tuple of parentNoteId and noteId, indicating + that the given note is placed as a child under the specified parent note.

    +

    Each note can have multiple branches, meaning any note can be placed in + multiple locations within the tree. This concept is referred to as " + cloning."

    +

    Prefix

    +

    A prefix is a branch-specific title modifier for a note. If you place + your note in two different locations within the tree and want to alter + the title slightly in one of those placements, you can use a prefix.

    +

    To edit a prefix, right-click on the note in the tree pane and select + "Edit branch prefix."

    +

    The prefix is not part of the note itself and is not encrypted when the + note is protected. This can be useful if you want part of the title to + remain visible in the tree for easier navigation, even when the note is + protected.

    +

    Subtree

    +

    A subtree consists of a particular note (the subtree root) and all its + children and descendants. Some operations, such as exporting, work on entire + subtrees.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.html index 4dd0e9316..b40da258a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.html @@ -1,100 +1,80 @@ - - - - - - - - Workspaces - - - -
    -

    Workspaces

    - -
    -

    Workspace is a concept built up on top of note hoisting. - It is based on the idea that a user has several distinct spheres of interest. - An example might be "Personal" and "Work", these two spheres are quite - distinct and don't interact together. When I focus on Work, I don't really - care about personal notes.

    -

    So far workspace consists of these features:

    -
      -
    • -

      note hoisting - you can "zoom" into - a workspace subtree to focus only on the relevant notes

      -
    • -
    • -

      easy entering of workspace: 

      -

      - -

      -
    • -
    • -

      visual identification of workspace in tabs: -
      - -

      -
    • -
    -

    Configuration

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    LabelDescription
    workspace - Marks this note as a workspace, button to enter the workspace is controlled - by this
    workspaceIconClass - defines box icon CSS class which will be used in tab when hoisted to this - note
    workspaceTabBackgroundColor - CSS color used in the note tab when hoisted to this note, use any CSS - color format, e.g. "lightblue" or "#ddd". See https://www.w3schools.com/cssref/css_colors.asp.
    workspaceCalendarRoot - Marking a note with this label will define a new per-workspace calendar - for Day Notes. - If there's no such note, the global calendar will be used.
    workspaceTemplate - This note will appear in the selection of available template when creating - new note, but only when hoisted into a workspace containing this template
    workspaceSearchHome - new search notes will be created as children of this note when hoisted - to some ancestor of this workspace note
    workspaceInbox - default inbox location for new notes when hoisted to some ancestor of - this workspace note
    -
    -
    -
    - - - \ No newline at end of file +

    Workspace is a concept built up on top of note hoisting. + It is based on the idea that a user has several distinct spheres of interest. + An example might be "Personal" and "Work", these two spheres are quite + distinct and don't interact together. When I focus on Work, I don't really + care about personal notes.

    +

    So far workspace consists of these features:

    +
      +
    • +

      note hoisting - you can "zoom" into + a workspace subtree to focus only on the relevant notes

      +
    • +
    • +

      easy entering of workspace: 

      +

      + +

      +
    • +
    • +

      visual identification of workspace in tabs: +
      + +

      +
    • +
    +

    Configuration

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    LabelDescription
    workspace + Marks this note as a workspace, button to enter the workspace is controlled + by this
    workspaceIconClass + defines box icon CSS class which will be used in tab when hoisted to this + note
    workspaceTabBackgroundColor + CSS color used in the note tab when hoisted to this note, use any CSS + color format, e.g. "lightblue" or "#ddd". See https://www.w3schools.com/cssref/css_colors.asp.
    workspaceCalendarRoot + Marking a note with this label will define a new per-workspace calendar + for Day Notes. + If there's no such note, the global calendar will be used.
    workspaceTemplate + This note will appear in the selection of available template when creating + new note, but only when hoisted into a workspace containing this template
    workspaceSearchHome + new search notes will be created as children of this note when hoisted + to some ancestor of this workspace note
    workspaceInbox + default inbox location for new notes when hoisted to some ancestor of + this workspace note
    +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes.html index 120195603..1ec3fef9d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes.html @@ -1,70 +1,50 @@ - - - - - - - - Notes - - - -
    -

    Notes

    - -
    -

    Note is a central entity in Trilium. Main attributes of note are title - and content.

    -

    Note types

    -

    The main note type is a rich-text note type called Text. For diagrams and drawing there - is Canvas and  - Mermaid Diagrams.

    -

    There are also more complex note types such as Saved SearchRender Note that usually go hand-in-hand - with Scripting.

    -

    In Trilium there's no specific "folder" note type. Any note can have children - and thus be a folder.

    -

    Root note

    -

    There's one special note called "root note" which is root of the note - tree. All other notes are placed below it in the structure.

    -

    Tree structure

    -

    Importantly, note itself doesn't carry information on its placement in - note tree. See Cloning Notes for - details.

    -

    Tree structure of notes can resemble file system - but compared to that - notes in Trilium can act as both file and directory - meaning that note - can both have its own content and have children. "Leaf note" is a note - which doesn't have any children.

    -

    Deleting / undeleting notes

    -

    When you delete a note in Trilium, it is actually only marked for deletion - (soft-delete) - the actual content, title, attributes etc. are not deleted, - only hidden.

    -

    Within (by default) 7 days, it is possible to undelete these soft-deleted - notes - open the Recent Changes dialog, - and you will see a list of all modified notes including the deleted ones. - Notes available for undeletion have a link to do so. This is kind of "trash - can" functionality known from e.g. Windows.

    -

    Clicking an undelete will recover the note, it's content and attributes - - note should be just as before being deleted. This action will also undelete - note's children which have been deleted in the same action.

    -

    To be able to undelete a note, it is necessary that deleted note's parent - must be undeleted (otherwise there's no place where we can undelete it - to). This might become a problem when you delete more notes in succession - - the solution is then undelete in the reverse order of your deletion.

    -

    After the 7 days (configurable) the notes will be "erased" - their title, - content, revisions and attributes will be erased, and it will not be possible - anymore to recover them (unless you restore a Backup).

    -

    See also

    - -
    -
    - - - \ No newline at end of file +

    Note is a central entity in Trilium. Main attributes of note are title + and content.

    +

    Note types

    +

    The main note type is a rich-text note type called Text. For diagrams and drawing there + is Canvas and  + Mermaid Diagrams.

    +

    There are also more complex note types such as Saved SearchRender Note that usually go hand-in-hand + with Scripting.

    +

    In Trilium there's no specific "folder" note type. Any note can have children + and thus be a folder.

    +

    Root note

    +

    There's one special note called "root note" which is root of the note + tree. All other notes are placed below it in the structure.

    +

    Tree structure

    +

    Importantly, note itself doesn't carry information on its placement in + note tree. See Cloning Notes for + details.

    +

    Tree structure of notes can resemble file system - but compared to that + notes in Trilium can act as both file and directory - meaning that note + can both have its own content and have children. "Leaf note" is a note + which doesn't have any children.

    +

    Deleting / undeleting notes

    +

    When you delete a note in Trilium, it is actually only marked for deletion + (soft-delete) - the actual content, title, attributes etc. are not deleted, + only hidden.

    +

    Within (by default) 7 days, it is possible to undelete these soft-deleted + notes - open the Recent Changes dialog, + and you will see a list of all modified notes including the deleted ones. + Notes available for undeletion have a link to do so. This is kind of "trash + can" functionality known from e.g. Windows.

    +

    Clicking an undelete will recover the note, it's content and attributes + - note should be just as before being deleted. This action will also undelete + note's children which have been deleted in the same action.

    +

    To be able to undelete a note, it is necessary that deleted note's parent + must be undeleted (otherwise there's no place where we can undelete it + to). This might become a problem when you delete more notes in succession + - the solution is then undelete in the reverse order of your deletion.

    +

    After the 7 days (configurable) the notes will be "erased" - their title, + content, revisions and attributes will be erased, and it will not be possible + anymore to recover them (unless you restore a Backup).

    +

    See also

    + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Archived Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Archived Notes.html index e8a34d6ea..21b42f2f0 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Archived Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Archived Notes.html @@ -1,31 +1,11 @@ - - - - - - - - Archived Notes - - - -
    -

    Archived Notes

    - -
    -

    Archived notes are notes which have archived attribute - - either directly or inherited.

    -

    Such notes are then by default not shown in the autocomplete and in the - full text search.

    -

    This can be useful for notes which are no longer very useful but still - valuable enough to keep around without them getting too much in the way.

    -

    You can control whether archived notes are displayed in the note tree - with a setting:

    -

    - -

    -
    -
    - - - \ No newline at end of file +

    Archived notes are notes which have archived attribute - + either directly or inherited.

    +

    Such notes are then by default not shown in the autocomplete and in the + full text search.

    +

    This can be useful for notes which are no longer very useful but still + valuable enough to keep around without them getting too much in the way.

    +

    You can control whether archived notes are displayed in the note tree + with a setting:

    +

    + +

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Attachments.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Attachments.html index 277fd6326..c07b654d0 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Attachments.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Attachments.html @@ -1,50 +1,30 @@ - - - - - - - - Attachments - - - -
    -

    Attachments

    - -
    -

    A note in Trilium can own one - or more attachments, which can be either images or files. These attachments - can be displayed or linked within the note that owns them.

    -

    This can be especially useful to include dependencies for your scripts. - The Weight Tracker shows - how to use chartjs which is attached to - the script note.

    -

    Each note exclusively owns its attachments, meaning attachments cannot - be shared or linked from one note to another. If an attachment link is - copied to a different note, the attachment itself is duplicated, and the - copies are managed independently thereafter.

    -

    Attachments, especially image files, are the recommended method for embedding - visuals in notes. It is important to link image attachments within the - text of the owning note; otherwise, they will be automatically deleted - after a configurable timeout period if not referenced.

    -

    Converting notes to attachments

    -

    File notes - can be easily converted to attachments of the parent note.

    -

    To do so:

    -
      -
    • For a single note, press the context menu from the Note buttons and select Convert into attachment.
    • -
    • For multiple notes, select the given notes in the Note Tree, right click → Advanced → - Convert to attachment.
    • -
    -

    Attachment previews

    -

    Attachments share the same content preview for images, videos, PDFs, etc. - as the File note - type.

    -
    -
    - - - \ No newline at end of file +

    A note in Trilium can own one + or more attachments, which can be either images or files. These attachments + can be displayed or linked within the note that owns them.

    +

    This can be especially useful to include dependencies for your scripts. + The Weight Tracker shows + how to use chartjs which is attached to + the script note.

    +

    Each note exclusively owns its attachments, meaning attachments cannot + be shared or linked from one note to another. If an attachment link is + copied to a different note, the attachment itself is duplicated, and the + copies are managed independently thereafter.

    +

    Attachments, especially image files, are the recommended method for embedding + visuals in notes. It is important to link image attachments within the + text of the owning note; otherwise, they will be automatically deleted + after a configurable timeout period if not referenced.

    +

    Converting notes to attachments

    +

    File notes + can be easily converted to attachments of the parent note.

    +

    To do so:

    +
      +
    • For a single note, press the context menu from the Note buttons and select Convert into attachment.
    • +
    • For multiple notes, select the given notes in the Note Tree, right click → Advanced → + Convert to attachment.
    • +
    +

    Attachment previews

    +

    Attachments share the same content preview for images, videos, PDFs, etc. + as the File note + type.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html index 7df321b92..c26c2baa1 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html @@ -1,122 +1,102 @@ - - - - - - - - Cloning Notes - - - -
    -

    Cloning Notes

    - -
    -

    Motivation

    -

    Trilium's core feature is the ability to structure your notes into hierarchical - tree-like structure.

    -

    It is expected then that you'll have an elaborate and deep note hierarchy - - each subtree will represent a more refined and specialized view of your - knowledge base.

    -

    This is a pretty powerful approach, but it also carries a hidden assumption - that each "subtopic" is "owned" by one parent. I'll illustrate this with - an example - let's say my basic structure is this:

    +

    Motivation

    +

    Trilium's core feature is the ability to structure your notes into hierarchical + tree-like structure.

    +

    It is expected then that you'll have an elaborate and deep note hierarchy + - each subtree will represent a more refined and specialized view of your + knowledge base.

    +

    This is a pretty powerful approach, but it also carries a hidden assumption + that each "subtopic" is "owned" by one parent. I'll illustrate this with + an example - let's say my basic structure is this:

    +
      +
    • Technology +
        +
      • Programming
          -
        • Technology +
        • Kotlin
        • +
        • JavaScript
        • +
        +
      • +
      • Operating systems +
          +
        • Linux
        • +
        • Windows
        • +
        +
      • +
      +
    • +
    +

    Now, I'm starting to learn about Bash and + would like to create notes related to this topic. But now I'm facing a + problem of where to categorize this. The issue here is that Bash is both + a programming language and a tool (shell) very much tied into Linux. It + seems it belongs to both of these, I can't (and don't want to) choose one + over the other.

    +

    Solution

    +

    The solution to the problem shown above is to allow notes to have multiple + parents.

    +

    I call these "clones", but that is a bit misleading - there's no original + and cloned note - the notes in both of the parents categories are identical.

    +

    Another misleading thing about "cloning" is that it suggests that a copy + of the note has been made. That's not really true, the note itself stays + in just one original, it is just referenced in multiple places in the tree + hierarchy. So changing it in one category changes it in all the others, + because they're all the same note.

    +

    Here's the final structure with cloning:

    +
      +
    • Technology +
        +
      • Programming +
          +
        • Kotlin
        • +
        • JavaScript
        • +
        • Bash
            -
          • Programming -
              -
            • Kotlin
            • -
            • JavaScript
            • -
            -
          • -
          • Operating systems -
              -
            • Linux
            • -
            • Windows
            • -
            -
          • +
          • some sub-notes ...
        -

        Now, I'm starting to learn about Bash and - would like to create notes related to this topic. But now I'm facing a - problem of where to categorize this. The issue here is that Bash is both - a programming language and a tool (shell) very much tied into Linux. It - seems it belongs to both of these, I can't (and don't want to) choose one - over the other.

        -

        Solution

        -

        The solution to the problem shown above is to allow notes to have multiple - parents.

        -

        I call these "clones", but that is a bit misleading - there's no original - and cloned note - the notes in both of the parents categories are identical.

        -

        Another misleading thing about "cloning" is that it suggests that a copy - of the note has been made. That's not really true, the note itself stays - in just one original, it is just referenced in multiple places in the tree - hierarchy. So changing it in one category changes it in all the others, - because they're all the same note.

        -

        Here's the final structure with cloning:

        +
      • +
      • Operating systems
          -
        • Technology +
        • Linux
            -
          • Programming +
          • Bash
              -
            • Kotlin
            • -
            • JavaScript
            • -
            • Bash -
                -
              • some sub-notes ...
              • -
              -
            • -
            -
          • -
          • Operating systems -
              -
            • Linux -
                -
              • Bash -
                  -
                • some sub-notes ...
                • -
                -
              • -
              -
            • -
            • Windows
            • +
            • some sub-notes ...
        • +
        • Windows
        -

        So now the "Bash" subtree appears on multiple locations in the hierarchy. - Both the Bash subtrees are the same and contain the same sub-categories - and notes.

        -

        Demo

        -

        - -

        -

        In the demo, you can see how a clone can be created using the context - menu. It's possible to do this also using the Add Link dialog or with Ctrl+C and Ctrl+V - keyboard shortcuts.

        -

        As seen in the demo, you can view the list of all available clones in - the "Note Paths" tab in the Ribbon toolbar.

        -

        Titles of cloned notes in the tree view have an asterisk to the right - to easily see that the note is also placed into some other location.

        -

        Deleting notes/clones

        -

        With clones, it might not be immediately obvious how deleting works.

        -

        If you try to delete a note, it works like this:

        -
          -
        1. if the note has multiple clones, delete just this clone and leave the - actual note (and its other clones) as it is.
        2. -
        3. if this note doesn't have any other clones, delete the note -
            -
          • Run the whole process starting with 1. on all note's children notes
          • -
          -
        4. -
        -
    -
    - - - \ No newline at end of file + + + + +

    So now the "Bash" subtree appears on multiple locations in the hierarchy. + Both the Bash subtrees are the same and contain the same sub-categories + and notes.

    +

    Demo

    +

    + +

    +

    In the demo, you can see how a clone can be created using the context + menu. It's possible to do this also using the Add Link dialog or with Ctrl+C and Ctrl+V + keyboard shortcuts.

    +

    As seen in the demo, you can view the list of all available clones in + the "Note Paths" tab in the Ribbon toolbar.

    +

    Titles of cloned notes in the tree view have an asterisk to the right + to easily see that the note is also placed into some other location.

    +

    Deleting notes/clones

    +

    With clones, it might not be immediately obvious how deleting works.

    +

    If you try to delete a note, it works like this:

    +
      +
    1. if the note has multiple clones, delete just this clone and leave the + actual note (and its other clones) as it is.
    2. +
    3. if this note doesn't have any other clones, delete the note +
        +
      • Run the whole process starting with 1. on all note's children notes
      • +
      +
    4. +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.html index 9b67e3486..5f1310333 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.html @@ -1,29 +1,9 @@ - - - - - - - - Branch prefix - - - -
    -

    Branch prefix

    - -
    -

    Since a single note can appear into multiple places in the Note Tree via a process called  - Cloning Notes, it's recommended to choose a generalized name that - fits into all locations instead of something more specific to avoid confusion.

    -

    In some cases this isn't possible so Trilium provides "branch prefixes", - which is shown before the note name in the tree and as such provides a - specific kind of context.

    -

    The prefix is location-specific, so it's displayed only in the note tree.

    -
    -
    - - - \ No newline at end of file +

    Since a single note can appear into multiple places in the Note Tree via a process called  + Cloning Notes, it's recommended to choose a generalized name that + fits into all locations instead of something more specific to avoid confusion.

    +

    In some cases this isn't possible so Trilium provides "branch prefixes", + which is shown before the note name in the tree and as such provides a + specific kind of context.

    +

    The prefix is location-specific, so it's displayed only in the note tree.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Export as PDF.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Export as PDF.html index fc4d9eb4b..491c4ad6e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Export as PDF.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Export as PDF.html @@ -1,62 +1,42 @@ - - - - - - - - Export as PDF - - - -
    -

    Export as PDF

    - -
    -

    - -

    -

    Screenshot of the note contextual menu indicating the “Export as PDF” - option.

    -

    On the desktop application of Trilium it is possible to export a note - as PDF. On the server or PWA (mobile), the option is not available due - to technical constraints and it will be hidden.

    -

    To print a note, select the - button to the right of the note and select Export as PDF.

    -

    Afterwards you will be prompted to select where to save the PDF file.

    -

    Automatic opening of the file

    -

    When the PDF is exported, it is automatically opened with the system default - application for easy preview.

    -

    Note that if you are using Linux with the GNOME desktop environment, sometimes - the default application might seem incorrect (such as opening in GIMP). - This is because it uses Gnome's “Recommended applications” list.

    -

    To solve this, you can change the recommended application for PDFs via - this command line. First, list the available applications via gio mime application/pdf and - then set the desired one. For example to use GNOME's Evince:

    gio mime application/pdf
    -

    Reporting issues with the rendering

    -

    Should you encounter any visual issues in the resulting PDF file (e.g. - a table does not fit properly, there is cut off text, etc.) feel free to - report the issue. In this case, it's best to offer a sample note (click - on the - button, select Export note → This note and all of its descendants → HTML - in ZIP archive). Make sure not to accidentally leak any personal information.

    -

    Landscape mode

    -

    When exporting to PDF, there are no customizable settings such as page - orientation, size, etc. However, it is possible to specify a given note - to be printed as a PDF in landscape mode by adding the #printLandscape attribute - to it (see Attributes).

    -

    Page size

    -

    By default, the resulting PDF will be in Letter format. It is possible - to adjust it to another page size via the #printPageSize attribute, - with one of the following values: A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger.

    -

    Keyboard shortcut

    -

    It's possible to trigger the export to PDF from the keyboard by going - to Keyboard shortcuts in Options and assigning a key combination - for the exportAsPdf action.

    -
    -
    - - - \ No newline at end of file +

    + +

    +

    Screenshot of the note contextual menu indicating the “Export as PDF” + option.

    +

    On the desktop application of Trilium it is possible to export a note + as PDF. On the server or PWA (mobile), the option is not available due + to technical constraints and it will be hidden.

    +

    To print a note, select the + button to the right of the note and select Export as PDF.

    +

    Afterwards you will be prompted to select where to save the PDF file.

    +

    Automatic opening of the file

    +

    When the PDF is exported, it is automatically opened with the system default + application for easy preview.

    +

    Note that if you are using Linux with the GNOME desktop environment, sometimes + the default application might seem incorrect (such as opening in GIMP). + This is because it uses Gnome's “Recommended applications” list.

    +

    To solve this, you can change the recommended application for PDFs via + this command line. First, list the available applications via gio mime application/pdf and + then set the desired one. For example to use GNOME's Evince:

    gio mime application/pdf
    +

    Reporting issues with the rendering

    +

    Should you encounter any visual issues in the resulting PDF file (e.g. + a table does not fit properly, there is cut off text, etc.) feel free to + report the issue. In this case, it's best to offer a sample note (click + on the + button, select Export note → This note and all of its descendants → HTML + in ZIP archive). Make sure not to accidentally leak any personal information.

    +

    Landscape mode

    +

    When exporting to PDF, there are no customizable settings such as page + orientation, size, etc. However, it is possible to specify a given note + to be printed as a PDF in landscape mode by adding the #printLandscape attribute + to it (see Attributes).

    +

    Page size

    +

    By default, the resulting PDF will be in Letter format. It is possible + to adjust it to another page size via the #printPageSize attribute, + with one of the following values: A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger.

    +

    Keyboard shortcut

    +

    It's possible to trigger the export to PDF from the keyboard by going + to Keyboard shortcuts in Options and assigning a key combination + for the exportAsPdf action.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note Icons.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note Icons.html index 886700a62..54c380162 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note Icons.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note Icons.html @@ -1,32 +1,12 @@ - - - - - - - - Note Icons - - - -
    -

    Note Icons

    - -
    -

    Icons are useful for distinguishing notes. At the technical level, they - are set by the iconClass attribute which adds a CSS class to - the note. For example #iconClass="bx bx-calendar" will show - a calendar instead of the default page or folder icon. Looking up and remembering - the css class names is not necessary. While editing a note, click on the - icon next to the title to bring up a chooser gallery:

    -

    - change note icon -

    -

    - note icon gallery -

    -
    -
    - - - \ No newline at end of file +

    Icons are useful for distinguishing notes. At the technical level, they + are set by the iconClass attribute which adds a CSS class to + the note. For example #iconClass="bx bx-calendar" will show + a calendar instead of the default page or folder icon. Looking up and remembering + the css class names is not necessary. While editing a note, click on the + icon next to the title to bring up a chooser gallery:

    +

    + change note icon +

    +

    + note icon gallery +

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html index 922ba55c5..4f7609ca8 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html @@ -1,77 +1,57 @@ - - - - - - - - Note List - - - -
    -

    Note List

    - -
    -

    When a note has one or more child notes, they will be listed at the end - of the note for easy navigation.

    -

    Configuration

    -
      -
    • To hide the note list for a particular note, simply apply the hideChildrenOverview - label.
    • -
    • For some view types, such as Grid view, only a subset of notes will be - displayed and pagination can be used to navigate through all of them for - performance reasons. To adjust the number of notes per page, set pageSize to - the desired number.
    • -
    -

    View types

    -

    By default, the notes will be displayed in a grid, however there are also - some other view types available.

    - -

    Grid view

    -
    - -
    -

    This view presents the child notes in a grid format, allowing for a more - visual navigation experience.

    -
      -
    • For Text notes, - the text can be slighly scrollable via the mouse wheel to reveal more context.
    • -
    • For Code notes, - syntax highlighting is applied.
    • -
    • For File notes, - a preview is made available for audio, video and PDF notes.
    • -
    • If the note does not have a content, a list of its child notes will be - displayed instead.
    • -
    -

    This is the default view type.

    -

    List view

    -
    - -
    -

    In the list view mode, each note is displayed in a single row with only - the title and the icon of the note being visible by the default. By pressing - the expand button it's possible to view the content of the note, as well - as the children of the note (recursively).

    -

    Calendar view

    -
    - -
    -

    In the calendar view, child notes are represented as events, with a start - date and optionally an end date. The view also has interaction support - such as moving or creating new events. See Calendar View for more information.

    -
    -
    - - - \ No newline at end of file +

    When a note has one or more child notes, they will be listed at the end + of the note for easy navigation.

    +

    Configuration

    +
      +
    • To hide the note list for a particular note, simply apply the hideChildrenOverview + label.
    • +
    • For some view types, such as Grid view, only a subset of notes will be + displayed and pagination can be used to navigate through all of them for + performance reasons. To adjust the number of notes per page, set pageSize to + the desired number.
    • +
    +

    View types

    +

    By default, the notes will be displayed in a grid, however there are also + some other view types available.

    + +

    Grid view

    +
    + +
    +

    This view presents the child notes in a grid format, allowing for a more + visual navigation experience.

    +
      +
    • For Text notes, + the text can be slighly scrollable via the mouse wheel to reveal more context.
    • +
    • For Code notes, + syntax highlighting is applied.
    • +
    • For File notes, + a preview is made available for audio, video and PDF notes.
    • +
    • If the note does not have a content, a list of its child notes will be + displayed instead.
    • +
    +

    This is the default view type.

    +

    List view

    +
    + +
    +

    In the list view mode, each note is displayed in a single row with only + the title and the icon of the note being visible by the default. By pressing + the expand button it's possible to view the content of the note, as well + as the children of the note (recursively).

    +

    Calendar view

    +
    + +
    +

    In the calendar view, child notes are represented as events, with a start + date and optionally an end date. The view also has interaction support + such as moving or creating new events. See Calendar View for more information.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View.html index 7c93342be..6435f8d4f 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View.html @@ -1,387 +1,367 @@ - - - - - - - - Calendar View - - - -
    -

    Calendar View

    +
    + +
    +

    The Calendar view of Book notes will display each child note in a calendar + that has a start date and optionally an end date, as an event.

    +

    The Calendar view has multiple display modes:

    +
      +
    • Week view, where all the 7 days of the week (or 5 if the weekends are + hidden) are displayed in columns. This mode allows entering and displaying + time-specific events, not just all-day events.
    • +
    • Month view, where the entire month is displayed and all-day events can + be inserted. Both time-specific events and all-day events are listed.
    • +
    • Year view, which displays the entire year for quick reference.
    • +
    • List view, which displays all the events of a given month in sequence.
    • +
    +

    Unlike other Book view types, the Calendar view also allows some kind + of interaction, such as moving events around as well as creating new ones.

    +

    Creating a calendar

    +
    + + + + + + + + + + + + + + + + + + + + +
       
    1 + + The Calendar View works only for Book note types. To create a new note, + right click on the note tree on the left and select Insert note after, + or Insert child note and then select Book.
    2 + + Once created, the “View type” of the Book needs changed to “Calendar”, + by selecting the “Book Properties” tab in the ribbon.
    +
    -
    -
    - -
    -

    The Calendar view of Book notes will display each child note in a calendar - that has a start date and optionally an end date, as an event.

    -

    The Calendar view has multiple display modes:

    -
      -
    • Week view, where all the 7 days of the week (or 5 if the weekends are - hidden) are displayed in columns. This mode allows entering and displaying - time-specific events, not just all-day events.
    • -
    • Month view, where the entire month is displayed and all-day events can - be inserted. Both time-specific events and all-day events are listed.
    • -
    • Year view, which displays the entire year for quick reference.
    • -
    • List view, which displays all the events of a given month in sequence.
    • -
    -

    Unlike other Book view types, the Calendar view also allows some kind - of interaction, such as moving events around as well as creating new ones.

    -

    Creating a calendar

    -
    - - - - - - - - - - - - - - - - - - - - -
       
    1 - - The Calendar View works only for Book note types. To create a new note, - right click on the note tree on the left and select Insert note after, - or Insert child note and then select Book.
    2 - - Once created, the “View type” of the Book needs changed to “Calendar”, - by selecting the “Book Properties” tab in the ribbon.
    -
    -

    Creating a new event/note

    -
      -
    • Clicking on a day will create a new child note and assign it to that particular - day. -
        -
      • You will be asked for the name of the new note. If the popup is dismissed - by pressing the close button or escape, then the note will not be created.
      • -
      -
    • -
    • It's possible to drag across multiple days to set both the start and end - date of a particular note. -
      - -
    • -
    • Creating new notes from the calendar will respect the ~child:template relation - if set on the book note.
    • -
    -

    Interacting with events

    -
      -
    • Hovering the mouse over an event will display information about the note. -
      - -
    • -
    • Left clicking the event will go to that note. Middle clicking will open - the note in a new tab and right click will offer more options including - opening the note in a new split or window.
    • -
    • Drag and drop an event on the calendar to move it to another day.
    • -
    • The length of an event can be changed by placing the mouse to the right - edge of the event and dragging the mouse around.
    • -
    -

    Configuring the calendar

    -

    The following attributes can be added to the book type:

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescription
    #calendar:hideWeekends - When present (regardless of value), it will hide Saturday and Sundays - from the calendar.
    #calendar:weekNumbers - When present (regardless of value), it will show the number of the week - on the calendar.
    #calendar:view - -

    Which view to display in the calendar:

    -
      -
    • timeGridWeek for the week view;
    • -
    • dayGridMonth for the month view;
    • -
    • multiMonthYear for the year view;
    • -
    • listMonth for the list view.
    • -
    -

    Any other value will be dismissed and the default view (month) will be - used instead.

    -

    The value of this label is automatically updated when changing the view - using the UI buttons.

    -
    ~child:template - Defines the template for newly created notes in the calendar (via dragging - or clicking).
    -
    -

    In addition, the first day of the week can be either Sunday or Monday - and can be adjusted from the application settings.

    -

    Configuring the calendar events

    -

    For each note of the calendar, the following attributes can be used:

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescription
    #startDate - The date the event starts, which will display it in the calendar. The - format is YYYY-MM-DD (year, month and day separated by a minus - sign).
    #endDate - Similar to startDate, mentions the end date if the event spans - across multiple days. The date is inclusive, so the end day is also considered. - The attribute can be missing for single-day events.
    #startTime - The time the event starts at. If this value is missing, then the event - is considered a full-day event. The format is HH:MM (hours in - 24-hour format and minutes).
    #endTime - Similar to startTime, it mentions the time at which the event - ends (in relation with endDate if present, or startDate).
    #color - Displays the event with a specified color (named such as red, gray or - hex such as #FF0000). This will also change the color of the - note in other places such as the note tree.
    #calendar:color - Similar to #color, but applies the color only for the event - in the calendar and not for other places such as the note tree.
    #iconClass - If present, the icon of the note will be displayed to the left of the - event title.
    #calendar:title - Changes the title of an event to point to an attribute of the note other - than the title, can either a label or a relation (without the # or ~ symbol). - See Use-cases for more information.
    #calendar:displayedAttributes - Allows displaying the value of one or more attributes in the calendar - like this:     -
    -
    -    -
    -
    #weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"   -
    -
    It can also be used with relations, case in which it will display the - title of the target note:    -
    -
    ~assignee=@My assignee #calendar:displayedAttributes="assignee" -
    #calendar:startDate - Allows using a different label to represent the start date, other than startDate (e.g. expiryDate). - The label name must not be prefixed with #. - If the label is not defined for a note, the default will be used instead.
    #calendar:endDate - Similar to #calendar:startDate, allows changing the attribute - which is being used to read the end date.
    #calendar:startTime - Similar to #calendar:startDate, allows changing the attribute - which is being used to read the start time.
    #calendar:endTime - Similar to #calendar:startDate, allows changing the attribute - which is being used to read the end time.
    -
    - +
      +
    • Clicking on a day will create a new child note and assign it to that particular + day. +
        +
      • You will be asked for the name of the new note. If the popup is dismissed + by pressing the close button or escape, then the note will not be created.
      • +
      +
    • +
    • It's possible to drag across multiple days to set both the start and end + date of a particular note. +
      + +
    • +
    • Creating new notes from the calendar will respect the ~child:template relation + if set on the book note.
    • +
    +

    Interacting with events

    +
      +
    • Hovering the mouse over an event will display information about the note. +
      + +
    • +
    • Left clicking the event will go to that note. Middle clicking will open + the note in a new tab and right click will offer more options including + opening the note in a new split or window.
    • +
    • Drag and drop an event on the calendar to move it to another day.
    • +
    • The length of an event can be changed by placing the mouse to the right + edge of the event and dragging the mouse around.
    • +
    +

    Configuring the calendar

    +

    The following attributes can be added to the book type:

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    #calendar:hideWeekends + When present (regardless of value), it will hide Saturday and Sundays + from the calendar.
    #calendar:weekNumbers + When present (regardless of value), it will show the number of the week + on the calendar.
    #calendar:view + +

    Which view to display in the calendar:

    +
      +
    • timeGridWeek for the week view;
    • +
    • dayGridMonth for the month view;
    • +
    • multiMonthYear for the year view;
    • +
    • listMonth for the list view.
    • +
    +

    Any other value will be dismissed and the default view (month) will be + used instead.

    +

    The value of this label is automatically updated when changing the view + using the UI buttons.

    +
    ~child:template + Defines the template for newly created notes in the calendar (via dragging + or clicking).
    +
    +

    In addition, the first day of the week can be either Sunday or Monday + and can be adjusted from the application settings.

    +

    Configuring the calendar events

    +

    For each note of the calendar, the following attributes can be used:

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    #startDate + The date the event starts, which will display it in the calendar. The + format is YYYY-MM-DD (year, month and day separated by a minus + sign).
    #endDate + Similar to startDate, mentions the end date if the event spans + across multiple days. The date is inclusive, so the end day is also considered. + The attribute can be missing for single-day events.
    #startTime + The time the event starts at. If this value is missing, then the event + is considered a full-day event. The format is HH:MM (hours in + 24-hour format and minutes).
    #endTime + Similar to startTime, it mentions the time at which the event + ends (in relation with endDate if present, or startDate).
    #color + Displays the event with a specified color (named such as red, gray or + hex such as #FF0000). This will also change the color of the + note in other places such as the note tree.
    #calendar:color + Similar to #color, but applies the color only for the event + in the calendar and not for other places such as the note tree.
    #iconClass + If present, the icon of the note will be displayed to the left of the + event title.
    #calendar:title + Changes the title of an event to point to an attribute of the note other + than the title, can either a label or a relation (without the # or ~ symbol). + See Use-cases for more information.
    #calendar:displayedAttributes + Allows displaying the value of one or more attributes in the calendar + like this:     +
    +
    +    +
    +
    #weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"   +
    +
    It can also be used with relations, case in which it will display the + title of the target note:    +
    +
    ~assignee=@My assignee #calendar:displayedAttributes="assignee" +
    #calendar:startDate + Allows using a different label to represent the start date, other than startDate (e.g. expiryDate). + The label name must not be prefixed with #. + If the label is not defined for a note, the default will be used instead.
    #calendar:endDate + Similar to #calendar:startDate, allows changing the attribute + which is being used to read the end date.
    #calendar:startTime + Similar to #calendar:startDate, allows changing the attribute + which is being used to read the start time.
    #calendar:endTime + Similar to #calendar:startDate, allows changing the attribute + which is being used to read the end time.
    +
    +

    How the calendar works

    -

    - -

    -

    The calendar displays all the child notes of the book that have a #startDate. - An #endDate can optionally be added.

    -

    If editing the start date and end date from the note itself is desirable, - the following attributes can be added to the book note:

    #viewType=calendar #label:startDate(inheritable)="promoted,alias=Start Date,single,date"
    +  

    + +

    +

    The calendar displays all the child notes of the book that have a #startDate. + An #endDate can optionally be added.

    +

    If editing the start date and end date from the note itself is desirable, + the following attributes can be added to the book note:

    #viewType=calendar #label:startDate(inheritable)="promoted,alias=Start Date,single,date"
     #label:endDate(inheritable)="promoted,alias=End Date,single,date"
     #hidePromotedAttributes 
    -

    This will result in:

    -

    - -

    -

    When not used in a Journal, the calendar is recursive. That is, it will - look for events not just in its child notes but also in the children of - these child notes.

    -

    Use-cases

    -

    Using with the Journal / calendar

    -

    It is possible to integrate the calendar view into the Journal with day - notes. In order to do so change the note type of the Journal note (calendar - root) to Book and then select the Calendar View.

    -

    Based on the #calendarRoot (or #workspaceCalendarRoot) - attribute, the calendar will know that it's in a calendar and apply the - following:

    -
      -
    • The calendar events are now rendered based on their dateNote attribute - rather than startDate.
    • -
    • Interactive editing such as dragging over an empty era or resizing an - event is no longer possible.
    • -
    • Clicking on the empty space on a date will automatically open that day's - note or create it if it does not exist.
    • -
    • Direct children of a day note will be displayed on the calendar despite - not having a dateNote attribute. Children of the child notes - will not be displayed.
    • -
    - - +

    This will result in:

    +

    + +

    +

    When not used in a Journal, the calendar is recursive. That is, it will + look for events not just in its child notes but also in the children of + these child notes.

    +

    Use-cases

    +

    Using with the Journal / calendar

    +

    It is possible to integrate the calendar view into the Journal with day + notes. In order to do so change the note type of the Journal note (calendar + root) to Book and then select the Calendar View.

    +

    Based on the #calendarRoot (or #workspaceCalendarRoot) + attribute, the calendar will know that it's in a calendar and apply the + following:

    +
      +
    • The calendar events are now rendered based on their dateNote attribute + rather than startDate.
    • +
    • Interactive editing such as dragging over an empty era or resizing an + event is no longer possible.
    • +
    • Clicking on the empty space on a date will automatically open that day's + note or create it if it does not exist.
    • +
    • Direct children of a day note will be displayed on the calendar despite + not having a dateNote attribute. Children of the child notes + will not be displayed.
    • +
    + +

    Using a different attribute as event title

    -

    By default, events are displayed on the calendar by their note title. - However, it is possible to configure a different attribute to be displayed - instead.

    -

    To do so, assign #calendar:title to the child note (not the - calendar/book note), with the value being name where name can - be any label (make not to add the # prefix). The attribute can - also come through inheritance such as a template attribute. If the note - does not have the requested label, the title of the note will be used instead.

    -
    - - - - - - - - - - - - - -
      
    #startDate=2025-02-11 #endDate=2025-02-13 #name="My vacation" #calendar:title="name"
    -
    -

     

    -
    - -
    -
    +

    By default, events are displayed on the calendar by their note title. + However, it is possible to configure a different attribute to be displayed + instead.

    +

    To do so, assign #calendar:title to the child note (not the + calendar/book note), with the value being name where name can + be any label (make not to add the # prefix). The attribute can + also come through inheritance such as a template attribute. If the note + does not have the requested label, the title of the note will be used instead.

    +
    + + + + + + + + + + + + + +
      
    #startDate=2025-02-11 #endDate=2025-02-13 #name="My vacation" #calendar:title="name"
    +
    +

     

    +
    +
    - +
    +
    +

    Using a relation attribute as event title

    -

    Similarly to using an attribute, use #calendar:title and set - it to name where name is the name of the relation - to use.

    -

    Moreover, if there are more relations of the same name, they will be displayed - as multiple events coming from the same note.

    -
    - - - - - - - - - - - - - -
      
    #startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"
    -
    - -
    -
    -

    Note that it's even possible to have a #calendar:title on the - target note (e.g. “John Smith”) which will try to render an attribute of - it. Note that it's not possible to use a relation here as well for safety - reasons (an accidental recursion  of attributes could cause the application - to loop infinitely).

    -
    - - - - - - - - - - - - - -
      
    #calendar:title="shortName" #shortName="John S."
    -
    -
    - -
    -
    -
    -
    -
    - - - \ No newline at end of file +

    Similarly to using an attribute, use #calendar:title and set + it to name where name is the name of the relation + to use.

    +

    Moreover, if there are more relations of the same name, they will be displayed + as multiple events coming from the same note.

    +
    + + + + + + + + + + + + + +
      
    #startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"
    +
    + +
    +
    +

    Note that it's even possible to have a #calendar:title on the + target note (e.g. “John Smith”) which will try to render an attribute of + it. Note that it's not possible to use a relation here as well for safety + reasons (an accidental recursion  of attributes could cause the application + to loop infinitely).

    +
    + + + + + + + + + + + + + +
      
    #calendar:title="shortName" #shortName="John S."
    +
    +
    + +
    +
    +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note Revisions.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note Revisions.html index 5d3252d03..4f13200d0 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note Revisions.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note Revisions.html @@ -1,44 +1,24 @@ - - - - - - - - Note Revisions - - - -
    -

    Note Revisions

    - -
    -

    Trilium supports seamless versioning of notes by storing snapshots ("revisions") - of notes at regular intervals.

    -

    Note Revisions Snapshot Interval

    -

    Time interval of taking note snapshot is configurable in the Options -> - Other dialog. This provides a tradeoff between more revisions and more - data to store.

    -

    To turn off note versioning for a particular note (or subtree), add disableVersioning - labelto the note.

    -

    Note Revision Snapshots Limit

    -

    The limit on the number of note snapshots can be configured in the Options - -> Other dialog. The note revision snapshot number limit refers to the - maximum number of revisions that can be saved for each note. Where -1 means - no limit, 0 means delete all revisions. You can set the maximum revisions - for a single note through the versioningLimit=X label.

    -

    The note limit will not take effect immediately; it will only apply when - the note is modified.

    -

    You can click the Erase excess revision snapshots now button - to apply the changes immediately.

    -

    Note revisions can be accessed through the button on the right of ribbon - toolbar.

    -

    - -

    -
    -
    - - - \ No newline at end of file +

    Trilium supports seamless versioning of notes by storing snapshots ("revisions") + of notes at regular intervals.

    +

    Note Revisions Snapshot Interval

    +

    Time interval of taking note snapshot is configurable in the Options -> + Other dialog. This provides a tradeoff between more revisions and more + data to store.

    +

    To turn off note versioning for a particular note (or subtree), add disableVersioning + labelto the note.

    +

    Note Revision Snapshots Limit

    +

    The limit on the number of note snapshots can be configured in the Options + -> Other dialog. The note revision snapshot number limit refers to the + maximum number of revisions that can be saved for each note. Where -1 means + no limit, 0 means delete all revisions. You can set the maximum revisions + for a single note through the versioningLimit=X label.

    +

    The note limit will not take effect immediately; it will only apply when + the note is modified.

    +

    You can click the Erase excess revision snapshots now button + to apply the changes immediately.

    +

    Note revisions can be accessed through the button on the right of ribbon + toolbar.

    +

    + +

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Protected Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Protected Notes.html index 0e7c9eae7..f5d5c0cf4 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Protected Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Protected Notes.html @@ -1,109 +1,89 @@ - - - - - - - - Protected Notes - - - -
    -

    Protected Notes

    - -
    -

    Trilium is designed to store a wide variety of data, including sensitive - information such as personal journals, credentials, or confidential documents. - To safeguard this type of content, Trilium offers the option to protect - notes, which involves the following measures:

    -
      -
    • Encryption: Protected notes are encrypted using a key - derived from your password. This ensures that without the correct password, - protected notes remain indecipherable. Even if someone gains access to - your Trilium database, they won't - be able to read your encrypted notes.
    • -
    • Time-limited access: To access protected notes, you must - first enter your password, which decrypts the note for reading and writing. - However, after a specified period of inactivity (10 minutes by default), - the note is unloaded from memory, requiring you to re-enter your password - to access it again. -
        -
      • The session timeout is extended automatically while you're interacting - with the protected note, so if you're actively editing, the session remains - open. However, if you switch to an unprotected note, the session timer - starts, and the session expires after 10 minutes of inactivity unless you - return to the protected notes.
      • -
      -
    • -
    • Protection scope: Protected notes ensure the confidentiality - of their content and partially their integrity. While unauthorized users - cannot read or edit protected notes, they can still delete or move them - outside of the protected session.
    • -
    -

    Using Protected Notes

    -

    By default, notes are unprotected. To protect a note, simply click on - the shield icon next to the note's title, as shown here:

    -

    - example animation of unlocking protected notes -

    -

    What is Encrypted?

    -

    Trilium encrypts the data within protected notes but not their metadata. - Specifically:

    -

    Encrypted: -

    -
      -
    • Note title
    • -
    • Note content
    • -
    • Images
    • -
    • File attachments
    • -
    -

    Not encrypted: -

    -
      -
    • Note structure (i.e., it remains visible that there are protected notes)
    • -
    • Metadata, such as the last modified date
    • -
    • Attributes -
    • -
    -

    Encryption Details

    -

    The following steps outline how encryption and decryption work in Trilium:

    -
      -
    1. The user enters a password.
    2. -
    3. The password is passed through the scrypt algorithm - along with a "password verification" salt to - confirm that the password is correct.
    4. -
    5. The password is then processed again through scrypt with an "encryption" - salt, which generates a hash. -
        -
      • Scrypt is used for key stretching to - make the password harder to guess.
      • -
      -
    6. -
    7. The generated hash is used to decrypt the actual data encryption key. -
        -
      • The data encryption key is encrypted using AES-128 with - a random IV.
      • -
      • The data encryption key is randomly generated during the database initialization - and remains constant throughout the document’s lifetime. When the password - is changed, only this key is re-encrypted.
      • -
      -
    8. -
    9. The data encryption key is then used to decrypt the actual content of - the note, including its title and body. -
        -
      • The encryption algorithm used is AES-128 with CBC mode, - where a unique IV is generated for each encryption operation and stored - with the cipher text.
      • -
      -
    10. -
    -

    Sharing Protected Notes

    -

    Protected notes cannot be shared in the same way as regular notes. Their - encryption ensures that only authorized users with the correct password - can access them.

    -
    -
    - - - \ No newline at end of file +

    Trilium is designed to store a wide variety of data, including sensitive + information such as personal journals, credentials, or confidential documents. + To safeguard this type of content, Trilium offers the option to protect + notes, which involves the following measures:

    +
      +
    • Encryption: Protected notes are encrypted using a key + derived from your password. This ensures that without the correct password, + protected notes remain indecipherable. Even if someone gains access to + your Trilium database, they won't + be able to read your encrypted notes.
    • +
    • Time-limited access: To access protected notes, you must + first enter your password, which decrypts the note for reading and writing. + However, after a specified period of inactivity (10 minutes by default), + the note is unloaded from memory, requiring you to re-enter your password + to access it again. +
        +
      • The session timeout is extended automatically while you're interacting + with the protected note, so if you're actively editing, the session remains + open. However, if you switch to an unprotected note, the session timer + starts, and the session expires after 10 minutes of inactivity unless you + return to the protected notes.
      • +
      +
    • +
    • Protection scope: Protected notes ensure the confidentiality + of their content and partially their integrity. While unauthorized users + cannot read or edit protected notes, they can still delete or move them + outside of the protected session.
    • +
    +

    Using Protected Notes

    +

    By default, notes are unprotected. To protect a note, simply click on + the shield icon next to the note's title, as shown here:

    +

    + example animation of unlocking protected notes +

    +

    What is Encrypted?

    +

    Trilium encrypts the data within protected notes but not their metadata. + Specifically:

    +

    Encrypted: +

    +
      +
    • Note title
    • +
    • Note content
    • +
    • Images
    • +
    • File attachments
    • +
    +

    Not encrypted: +

    +
      +
    • Note structure (i.e., it remains visible that there are protected notes)
    • +
    • Metadata, such as the last modified date
    • +
    • Attributes +
    • +
    +

    Encryption Details

    +

    The following steps outline how encryption and decryption work in Trilium:

    +
      +
    1. The user enters a password.
    2. +
    3. The password is passed through the scrypt algorithm + along with a "password verification" salt to + confirm that the password is correct.
    4. +
    5. The password is then processed again through scrypt with an "encryption" + salt, which generates a hash. +
        +
      • Scrypt is used for key stretching to + make the password harder to guess.
      • +
      +
    6. +
    7. The generated hash is used to decrypt the actual data encryption key. +
        +
      • The data encryption key is encrypted using AES-128 with + a random IV.
      • +
      • The data encryption key is randomly generated during the database initialization + and remains constant throughout the document’s lifetime. When the password + is changed, only this key is re-encrypted.
      • +
      +
    8. +
    9. The data encryption key is then used to decrypt the actual content of + the note, including its title and body. +
        +
      • The encryption algorithm used is AES-128 with CBC mode, + where a unique IV is generated for each encryption operation and stored + with the cipher text.
      • +
      +
    10. +
    +

    Sharing Protected Notes

    +

    Protected notes cannot be shared in the same way as regular notes. Their + encryption ensures that only authorized users with the correct password + can access them.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.html index 8c5701a00..f07452571 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.html @@ -1,77 +1,57 @@ - - - - - - - - Read-Only Notes - - - -
    -

    Read-Only Notes

    - -
    -

    Some note types such as Text and  - Code notes in Trilium can be set to read-only. When a note is - in read-only mode, it is presented to the user in a non-editable view, - with the option to switch to editing mode if needed.

    -

    Automatic read-only mode

    -

    For optimization purposes, Trilium will automatically set very large notes - to read-only. Displaying such lengthy notes in editing mode can slow down - performance, especially when editing is unnecessary.

    -

    This behavior can be disabled on a per-note basis, by following the instructions - of the next section.

    -

    In addition, it's possible to change the number of characters at which - the automatic read-only mode will trigger in Options by going to the options - for Text Notes and  - Code Notes.

    -

    Changing a note's read-only behavior

    -

    Via the Ribbon, - by going to the Basic Properties tab and looking for the Editable selection. - The following options are possible:

    -
      -
    • Auto -
      This is the default behavior in which the note will be editable by default, - unless it becomes large enough to trigger read-only mode.
    • -
    • Read-only -
      The note will be always marked as read-only, regardless of its size. Nevertheless, - it's still possible to temporarily edit the note if needed. This is generally - useful for notes that are not prone to change.
    • -
    • Always Editable -
      This option will bypass the automatic read-only activation for this particular - note. It's useful for large notes that are frequently edited.
    • -
    -

    If the Editable section is missing from the ribbon, then the note - type does not support read-only mode.

    -

    Manually setting the options

    -

    Apart from using the ribbon as previously mentioned, it's also possible - to use labels to change the behavior:

    -
      -
    • To set as read-only, apply the readOnly label to the note.
    • -
    • To disable automatic read-only (always editable), apply the autoReadOnlyDisabled label.
    • -
    -

    Temporarily editing a read-only note

    -

    When accessing a read-only note, it's possible to temporarily edit it - by using the - button in the Floating buttons area.

    -

    When pressed, the note will become editable but will become read-only - again after navigating to a different note.

    -

    Special read-only behavior

    -

    Some note types have a special behavior based on whether the read-only - mode is enabled:

    -
      -
    • Mermaid Diagrams will - hide the Mermaid source code and display the diagram preview in full-size. - In this case, the read-only mode can be easily toggled on or off via a - dedicated button in the Floating buttons area.
    • -
    -
    -
    - - - \ No newline at end of file +

    Some note types such as Text and  + Code notes in Trilium can be set to read-only. When a note is + in read-only mode, it is presented to the user in a non-editable view, + with the option to switch to editing mode if needed.

    +

    Automatic read-only mode

    +

    For optimization purposes, Trilium will automatically set very large notes + to read-only. Displaying such lengthy notes in editing mode can slow down + performance, especially when editing is unnecessary.

    +

    This behavior can be disabled on a per-note basis, by following the instructions + of the next section.

    +

    In addition, it's possible to change the number of characters at which + the automatic read-only mode will trigger in Options by going to the options + for Text Notes and  + Code Notes.

    +

    Changing a note's read-only behavior

    +

    Via the Ribbon, + by going to the Basic Properties tab and looking for the Editable selection. + The following options are possible:

    +
      +
    • Auto +
      This is the default behavior in which the note will be editable by default, + unless it becomes large enough to trigger read-only mode.
    • +
    • Read-only +
      The note will be always marked as read-only, regardless of its size. Nevertheless, + it's still possible to temporarily edit the note if needed. This is generally + useful for notes that are not prone to change.
    • +
    • Always Editable +
      This option will bypass the automatic read-only activation for this particular + note. It's useful for large notes that are frequently edited.
    • +
    +

    If the Editable section is missing from the ribbon, then the note + type does not support read-only mode.

    +

    Manually setting the options

    +

    Apart from using the ribbon as previously mentioned, it's also possible + to use labels to change the behavior:

    +
      +
    • To set as read-only, apply the readOnly label to the note.
    • +
    • To disable automatic read-only (always editable), apply the autoReadOnlyDisabled label.
    • +
    +

    Temporarily editing a read-only note

    +

    When accessing a read-only note, it's possible to temporarily edit it + by using the + button in the Floating buttons area.

    +

    When pressed, the note will become editable but will become read-only + again after navigating to a different note.

    +

    Special read-only behavior

    +

    Some note types have a special behavior based on whether the read-only + mode is enabled:

    +
      +
    • Mermaid Diagrams will + hide the Mermaid source code and display the diagram preview in full-size. + In this case, the read-only mode can be easily toggled on or off via a + dedicated button in the Floating buttons area.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.html index 274ac59cc..f1348efcb 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.html @@ -1,72 +1,52 @@ - - - - - - - - Sorting Notes - - - -
    -

    Sorting Notes

    - -
    -

    Manual sorting

    -

    You can sort notes by right-clicking the parent note in the Note Tree and selecting Advanced - -> Sort notes by ... This will sort existing notes, but will not automatically - sort future notes added to this parent note.

    -

    The sorting dialog allows:

    -
      -
    • Sorting by title, creation or modification date.
    • -
    • Changing sorting direction can also be adjusted (ascending or descending).
    • -
    • Ensuring folders are displayed at the top.
    • -
    • Natural sort, based on the sorting rules of a particular language.
    • -
    -

    Automatic/Permanent Sorting

    -

    Child notes can be automatically sorted by attaching specific labels to - the parent note:

    -
      -
    • #sorted: Enables sorting. Can optionally include the name - of the note's property/label for sorting criteria (details below).
    • -
    • #sortDirection: By default, sorting is ascending. Set this - to desc to sort in descending order.
    • -
    • #sortFoldersFirst: Notes with children will be sorted to - the top.
    • -
    -

    Sorting is done by comparing note properties or specific labels on child - notes. There are four sorting levels, with the first having the highest - priority. Lower priority levels are applied only if higher priority comparisons - result in equality.

    -
      -
    1. Top Label Sorting: Child notes with the #top label - will appear at the top of the folder.
    2. -
    3. Bottom Label Sorting: (Introduced in Trilium 0.62) Child - notes with the #bottom label will appear at the bottom of the - folder.
    4. -
    5. Property/Label-Based Sorting: Sorting is based on the - parent note's #sorted label: -
        -
      • Default Sorting: If #sorted has no value, - notes are sorted alphabetically.
      • -
      • Property Sorting: If #sorted is set to title, dateModified, - or dateCreated, notes are sorted based on the specified property.
      • -
      • Label Sorting: If #sorted has any other value, - this value is treated as the name of a child note's label, and sorting - is based on the values of this label. For example, setting #sorted=myOrder on - the parent note and using #myOrder=001, #myOrder=002, - etc., on child notes.
      • -
      -
    6. -
    7. Alphabetical Sorting: Used as a last resort when other - criteria result in equality.
    8. -
    -

    All comparisons are made string-wise (e.g., "1" < "2" or "2020-10-10" - < "2021-01-15", but also "2" > "10").

    -
    -
    - - - \ No newline at end of file +

    Manual sorting

    +

    You can sort notes by right-clicking the parent note in the Note Tree and selecting Advanced + -> Sort notes by ... This will sort existing notes, but will not automatically + sort future notes added to this parent note.

    +

    The sorting dialog allows:

    +
      +
    • Sorting by title, creation or modification date.
    • +
    • Changing sorting direction can also be adjusted (ascending or descending).
    • +
    • Ensuring folders are displayed at the top.
    • +
    • Natural sort, based on the sorting rules of a particular language.
    • +
    +

    Automatic/Permanent Sorting

    +

    Child notes can be automatically sorted by attaching specific labels to + the parent note:

    +
      +
    • #sorted: Enables sorting. Can optionally include the name + of the note's property/label for sorting criteria (details below).
    • +
    • #sortDirection: By default, sorting is ascending. Set this + to desc to sort in descending order.
    • +
    • #sortFoldersFirst: Notes with children will be sorted to + the top.
    • +
    +

    Sorting is done by comparing note properties or specific labels on child + notes. There are four sorting levels, with the first having the highest + priority. Lower priority levels are applied only if higher priority comparisons + result in equality.

    +
      +
    1. Top Label Sorting: Child notes with the #top label + will appear at the top of the folder.
    2. +
    3. Bottom Label Sorting: (Introduced in Trilium 0.62) Child + notes with the #bottom label will appear at the bottom of the + folder.
    4. +
    5. Property/Label-Based Sorting: Sorting is based on the + parent note's #sorted label: +
        +
      • Default Sorting: If #sorted has no value, + notes are sorted alphabetically.
      • +
      • Property Sorting: If #sorted is set to title, dateModified, + or dateCreated, notes are sorted based on the specified property.
      • +
      • Label Sorting: If #sorted has any other value, + this value is treated as the name of a child note's label, and sorting + is based on the values of this label. For example, setting #sorted=myOrder on + the parent note and using #myOrder=001, #myOrder=002, + etc., on child notes.
      • +
      +
    6. +
    7. Alphabetical Sorting: Used as a last resort when other + criteria result in equality.
    8. +
    +

    All comparisons are made string-wise (e.g., "1" < "2" or "2020-10-10" + < "2021-01-15", but also "2" > "10").

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes.html index 456d44b5a..bba1f6562 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes.html @@ -1,37 +1,22 @@ - - - - - - - - Themes - - - -
    -

    Themes

    - -
    -

    Default Themes

    -

    Trilium comes with a couple pre-installed color themes, with the default - being a light theme. To switch to a dark theme or any other available theme, - navigate to the Options menu (accessible via the app icon in the top-left - corner), select the Appearance tab, and choose your preferred theme.

    -

    - Dark Theme -

    -

    Creating Custom CSS Themes

    -

    Trilium supports custom user themes, allowing you to personalize the application's - appearance. To create a custom theme, follow these steps:

    -
      -
    1. Create a CSS Code Note: Start by creating a new code note with - the CSS type.
    2. -
    3. Annotate with #appTheme: Add the attribute #appTheme=my-theme-name to - your note, where my-theme-name is the name of your custom theme.
    4. -
    5. Define Your Styles: Write your custom CSS within the - note. Below is an example of a custom theme:
    6. -
    @font-face {
    +

    Default Themes

    +

    Trilium comes with a couple pre-installed color themes, with the default + being a light theme. To switch to a dark theme or any other available theme, + navigate to the Options menu (accessible via the app icon in the top-left + corner), select the Appearance tab, and choose your preferred theme.

    +

    + Dark Theme +

    +

    Creating Custom CSS Themes

    +

    Trilium supports custom user themes, allowing you to personalize the application's + appearance. To create a custom theme, follow these steps:

    +
      +
    1. Create a CSS Code Note: Start by creating a new code note with + the CSS type.
    2. +
    3. Annotate with #appTheme: Add the attribute #appTheme=my-theme-name to + your note, where my-theme-name is the name of your custom theme.
    4. +
    5. Define Your Styles: Write your custom CSS within the + note. Below is an example of a custom theme:
    6. +
    @font-face {
       font-family: 'Raleway';
       font-style: normal;
       font-weight: 400;
    @@ -84,74 +69,69 @@ body .note-detail-text {
     body .CodeMirror {
         filter: invert(100%) hue-rotate(180deg);
     }
    -

    Activating Your Custom Theme

    -

    Once you've created your custom theme:

    -
      -
    1. Go to "Menu" -> "Options" -> "Appearance."
    2. -
    3. In the theme selection dropdown, you should see your custom theme listed - under the name you provided with the #appTheme label.
    4. -
    5. Select your custom theme to activate it.
    6. -
    -

    If you make changes to your theme, press Ctrl + R to - reload the frontend and apply your updates.

    -

    Sharing and Importing Themes

    -

    Custom themes can be exported as .tar archives, which can be - shared with other users. However, be cautious when importing themes from - untrusted sources, as they may contain executable scripts that could pose - security risks.

    -

    An example user theme, Steel Blue, is available in the demo document.

    -

    - Steel Blue Theme -

    -

    Using Custom CSS for Specific Purposes

    -

    In addition to full themes, Trilium allows for custom CSS that isn't tied - to a theme. This can be particularly useful in scripting contexts, where - you might want to modify specific UI elements, such as changing the colors - of notes in the tree view.

    -

    Applying Custom CSS

    -

    To use custom CSS:

    -
      -
    1. Create a CSS Code Note: Create a new Code note with the CSS type.
    2. -
    3. Add the appCss Label: Annotate - the note with the #appCss label.
    4. -
    5. Write Your CSS: Add your custom CSS rules to the note.
    6. -
    -

    For example:

    /* Custom CSS to style specific elements */
    +

    Activating Your Custom Theme

    +

    Once you've created your custom theme:

    +
      +
    1. Go to "Menu" -> "Options" -> "Appearance."
    2. +
    3. In the theme selection dropdown, you should see your custom theme listed + under the name you provided with the #appTheme label.
    4. +
    5. Select your custom theme to activate it.
    6. +
    +

    If you make changes to your theme, press Ctrl + R to + reload the frontend and apply your updates.

    +

    Sharing and Importing Themes

    +

    Custom themes can be exported as .tar archives, which can be + shared with other users. However, be cautious when importing themes from + untrusted sources, as they may contain executable scripts that could pose + security risks.

    +

    An example user theme, Steel Blue, is available in the demo document.

    +

    + Steel Blue Theme +

    +

    Using Custom CSS for Specific Purposes

    +

    In addition to full themes, Trilium allows for custom CSS that isn't tied + to a theme. This can be particularly useful in scripting contexts, where + you might want to modify specific UI elements, such as changing the colors + of notes in the tree view.

    +

    Applying Custom CSS

    +

    To use custom CSS:

    +
      +
    1. Create a CSS Code Note: Create a new Code note with the CSS type.
    2. +
    3. Add the appCss Label: Annotate + the note with the #appCss label.
    4. +
    5. Write Your CSS: Add your custom CSS rules to the note.
    6. +
    +

    For example:

    /* Custom CSS to style specific elements */
     .tree-item {
         color: #ff6347; /* Change tree item color */
     }
    -

    When Trilium's frontend starts, all notes labeled with appCss are - automatically included in the style element of the HTML page.

    -

    After making changes, press Ctrl + R to reload the frontend - and apply your new styles.

    -

    - -

    -

    Styling Specific Notes in the Tree

    -

    To apply specific styles to certain notes in the tree:

    -
      -
    • Use the cssClass Attribute: - Add the cssClass attribute to - a note, and assign it a value representing the desired CSS class.
    • -
    • Define an iconClass: You can also define - a custom icon for a note using the iconClass attribute, selecting - from Box Icons or your own custom classes.
    • -
    -

    For example, if you want to style notes of a specific type, such as notes - containing PNG images, you can target them with classes like type-image mime-image-png.

    -

    User-Provided Themes

    -

    A gallery of user-created themes is available, showcasing the variety - of customizations that the Trilium community has developed. For more information, - check the Theme Gallery.

    -

    Asset Path Management

    -

    When referencing built-in assets like images in your custom themes or - CSS, you can avoid hardcoding version numbers by using the vX alias. - For example, instead of specifying /assets/v0.57.0-beta/images/icon-grey.png, - you can use /assets/vX/images/icon-grey.png to keep your theme - compatible with future versions of Trilium.

    -
    -
    - - - \ No newline at end of file +

    When Trilium's frontend starts, all notes labeled with appCss are + automatically included in the style element of the HTML page.

    +

    After making changes, press Ctrl + R to reload the frontend + and apply your new styles.

    +

    + +

    +

    Styling Specific Notes in the Tree

    +

    To apply specific styles to certain notes in the tree:

    +
      +
    • Use the cssClass Attribute: + Add the cssClass attribute to + a note, and assign it a value representing the desired CSS class.
    • +
    • Define an iconClass: You can also define + a custom icon for a note using the iconClass attribute, selecting + from Box Icons or your own custom classes.
    • +
    +

    For example, if you want to style notes of a specific type, such as notes + containing PNG images, you can target them with classes like type-image mime-image-png.

    +

    User-Provided Themes

    +

    A gallery of user-created themes is available, showcasing the variety + of customizations that the Trilium community has developed. For more information, + check the Theme Gallery.

    +

    Asset Path Management

    +

    When referencing built-in assets like images in your custom themes or + CSS, you can avoid hardcoding version numbers by using the vX alias. + For example, instead of specifying /assets/v0.57.0-beta/images/icon-grey.png, + you can use /assets/vX/images/icon-grey.png to keep your theme + compatible with future versions of Trilium.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.html index f624a9e4a..0e7f7d56a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.html @@ -1,146 +1,126 @@ - - - - - - - - Theme Gallery - - - -
    -

    Theme Gallery

    - -
    -

    These are user-created themes which were made publicly available:

    -

    Legacy Themes

    -

    These themes may or may not be compatible with the latest versions of - TriliumNext and are based on the original/legacy theme.

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ThemeAuthor
    Midnight - tobealive -
    EOTE - tobealive -
    Trilium Themes - Abourass -
    MaterialDark - ZMonk91 -
    lightslategray - jaroet -
    melon-4 - raphwriter -
    Neon_Dark - Engr-AllanG -
    Coder_Dark - Engr-AllanG -
    velvet - idelem -
    Dark Plus - SADAVA -
    Solarized - WKSu -
    Nord - en3r0 -
    Bear Note Light - AllanZyne -
    Bear Note Dark - AllanZyne -
    Miku Hatsune - Sebiann -
    Midnight - cwilliams5 -
    Blue (light)SiriusXT -
    Blue (dark)SiriusXT -
    -
    - -
    -
    - - - \ No newline at end of file +

    These are user-created themes which were made publicly available:

    +

    Legacy Themes

    +

    These themes may or may not be compatible with the latest versions of + TriliumNext and are based on the original/legacy theme.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ThemeAuthor
    Midnight + tobealive +
    EOTE + tobealive +
    Trilium Themes + Abourass +
    MaterialDark + ZMonk91 +
    lightslategray + jaroet +
    melon-4 + raphwriter +
    Neon_Dark + Engr-AllanG +
    Coder_Dark + Engr-AllanG +
    velvet + idelem +
    Dark Plus + SADAVA +
    Solarized + WKSu +
    Nord + en3r0 +
    Bear Note Light + AllanZyne +
    Bear Note Dark + AllanZyne +
    Miku Hatsune + Sebiann +
    Midnight + cwilliams5 +
    Blue (light)SiriusXT +
    Blue (dark)SiriusXT +
    +
    + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Floating buttons.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Floating buttons.html index 71c0ca462..c432d5ae5 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Floating buttons.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Floating buttons.html @@ -1,41 +1,21 @@ - - - - - - - - Floating buttons - - - -
    -

    Floating buttons

    - -
    -
    - -
    -

    Depending on the current note, a panel will appear near the top-right - of the note, right underneath the Ribbon. - These buttons offer additional interaction that is specific to that particular - note.

    -

    For example:

    -
      -
    • For Mermaid Diagrams and  - Canvas, there are buttons to download the SVG representation of the - note, or to copy a reference to the note for pasting it a Text note.
    • -
    • For read-only notes, there is a - button to temporarily edit the note for quick modifications.
    • -
    -

    Interaction

    -

    The floating button area can be collapsed by pressing the two right arrows - at the end of the section.

    -
    -
    - - - \ No newline at end of file +
    + +
    +

    Depending on the current note, a panel will appear near the top-right + of the note, right underneath the Ribbon. + These buttons offer additional interaction that is specific to that particular + note.

    +

    For example:

    +
      +
    • For Mermaid Diagrams and  + Canvas, there are buttons to download the SVG representation of the + note, or to copy a reference to the note for pasting it a Text note.
    • +
    • For read-only notes, there is a + button to temporarily edit the note for quick modifications.
    • +
    +

    Interaction

    +

    The floating button area can be collapsed by pressing the two right arrows + at the end of the section.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Global menu.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Global menu.html index b63aae59a..2d9a80994 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Global menu.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Global menu.html @@ -1,29 +1,9 @@ - - - - - - - - Global menu - - - -
    -

    Global menu

    - -
    -

    The global menu configures the current window (zoom, keeping the window - on top) and offers access to some more advanced options.

    -

    - -

    -

    Accessing the global menu

    -

    See Vertical and horizontal layout since - the position of the global menu is changed based on which layout has been - selected.

    -
    -
    - - - \ No newline at end of file +

    The global menu configures the current window (zoom, keeping the window + on top) and offers access to some more advanced options.

    +

    + +

    +

    Accessing the global menu

    +

    See Vertical and horizontal layout since + the position of the global menu is changed based on which layout has been + selected.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.html index 37137327f..6908b39bd 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.html @@ -1,111 +1,91 @@ - - - - - - - - Launch Bar - - - -
    -

    Launch Bar

    - -
    -

    Position of the Launch bar

    -

    Depending on the layout selected, the launcher bar will either be on the - left side of the screen with buttons displayed vertically or at the top - of the screen. See Vertical and horizontal layout for - more information.

    -

    Terminology

    -
      -
    • Launcher: a button that can be (or is) displayed on the - launch bar.
    • -
    • Available Launcher: a launcher that is not displayed - on the launch bar, but can be added.
    • -
    • Visible Launcher: a launcher that is currently displayed - on the launch bar.
    • -
    -

    Configuring the Launch bar

    -

    There are two ways to configure the launch bar:

    -
      -
    • Right click in the empty space between launchers on the launch bar and - select Configure Launchbar. -
    • -
    • Click on the Global menu and - select Configure Launchbar.
    • -
    -

    This will open a new tab with the Note Tree listing - the launchers.

    -

    - -

    -

    Expanding Available Launchers section will show the list of launchers - that are not displayed on the launch bar. The Visible Launchers will - show the ones that are currently displayed.

    -

    Adding/removing and reordering launchers

    -

    To display a new launcher in the launch bar, first look for it in the Available Launchers section. - Then right click it and select Move to visible launchers. It is - also possible to drag and drop the item manually.

    -

    Similarly, to remove it from the launch bar, simply look for it in Visible Launchers then - right click it and select Move to available launchers or use drag-and-drop.

    -

    Drag-and-drop the items in the tree in order to change their - order. See Note Tree for - more interaction options, including using keyboard shortcuts.

    -

    Customizing the launcher

    -
      -
    • The icon of a launcher can be changed just like a normal note. See  - Note Icons for more information.
    • -
    • The title of the launcher can also be changed.
    • -
    -

    Resetting

    -

    Resetting allows restoring the original configuration of Trilium for the - launcher bar, or for a portion of it. Simply right click a launcher (or - even the entire Launch Bar section) and select Reset to bring - it back to the original state.

    -

    Creating new launchers / types of launchers

    -

    Right click either the Available launchers or Visible launchers sections - and select one of the options:

    -
      -
    1. -

      Note Launcher -
      A note launcher will simply navigate to a specified note.

      -
        -
      1. Set the target promoted attribute to the note to navigate to.
      2. -
      3. Optionally, set hoistedNote to hoist a particular note. See  - Note Hoisting for more information.
      4. -
      5. Optionally, set a keyboardShortcut to trigger the launcher.
      6. -
      -
    2. -
    3. -

      Script Launcher -
      An advanced launcher which will run a script upon pressing. See  - Scripts for more information.

      -
        -
      1. Set script to point to the desired script to run.
      2. -
      3. Optionally, set a keyboardShortcut to trigger the launcher.
      4. -
      -
    4. -
    5. -

      Custom Widget -

      -

      Allows defining a custom widget to be rendered inside the launcher. See  - Widget Basics for more information.

      -
    6. -
    7. -

      Spacers -
      Launchers that create some distance between other launchers for better - visual distinction.

      -
    8. -
    -

    Launchers are configured via predefined Promoted Attributes.

    -
    -
    - - - \ No newline at end of file +

    Position of the Launch bar

    +

    Depending on the layout selected, the launcher bar will either be on the + left side of the screen with buttons displayed vertically or at the top + of the screen. See Vertical and horizontal layout for + more information.

    +

    Terminology

    +
      +
    • Launcher: a button that can be (or is) displayed on the + launch bar.
    • +
    • Available Launcher: a launcher that is not displayed + on the launch bar, but can be added.
    • +
    • Visible Launcher: a launcher that is currently displayed + on the launch bar.
    • +
    +

    Configuring the Launch bar

    +

    There are two ways to configure the launch bar:

    +
      +
    • Right click in the empty space between launchers on the launch bar and + select Configure Launchbar. +
    • +
    • Click on the Global menu and + select Configure Launchbar.
    • +
    +

    This will open a new tab with the Note Tree listing + the launchers.

    +

    + +

    +

    Expanding Available Launchers section will show the list of launchers + that are not displayed on the launch bar. The Visible Launchers will + show the ones that are currently displayed.

    +

    Adding/removing and reordering launchers

    +

    To display a new launcher in the launch bar, first look for it in the Available Launchers section. + Then right click it and select Move to visible launchers. It is + also possible to drag and drop the item manually.

    +

    Similarly, to remove it from the launch bar, simply look for it in Visible Launchers then + right click it and select Move to available launchers or use drag-and-drop.

    +

    Drag-and-drop the items in the tree in order to change their + order. See Note Tree for + more interaction options, including using keyboard shortcuts.

    +

    Customizing the launcher

    +
      +
    • The icon of a launcher can be changed just like a normal note. See  + Note Icons for more information.
    • +
    • The title of the launcher can also be changed.
    • +
    +

    Resetting

    +

    Resetting allows restoring the original configuration of Trilium for the + launcher bar, or for a portion of it. Simply right click a launcher (or + even the entire Launch Bar section) and select Reset to bring + it back to the original state.

    +

    Creating new launchers / types of launchers

    +

    Right click either the Available launchers or Visible launchers sections + and select one of the options:

    +
      +
    1. +

      Note Launcher +
      A note launcher will simply navigate to a specified note.

      +
        +
      1. Set the target promoted attribute to the note to navigate to.
      2. +
      3. Optionally, set hoistedNote to hoist a particular note. See  + Note Hoisting for more information.
      4. +
      5. Optionally, set a keyboardShortcut to trigger the launcher.
      6. +
      +
    2. +
    3. +

      Script Launcher +
      An advanced launcher which will run a script upon pressing. See  + Scripts for more information.

      +
        +
      1. Set script to point to the desired script to run.
      2. +
      3. Optionally, set a keyboardShortcut to trigger the launcher.
      4. +
      +
    4. +
    5. +

      Custom Widget +

      +

      Allows defining a custom widget to be rendered inside the launcher. See  + Widget Basics for more information.

      +
    6. +
    7. +

      Spacers +
      Launchers that create some distance between other launchers for better + visual distinction.

      +
    8. +
    +

    Launchers are configured via predefined Promoted Attributes.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html index 723dabd75..b3ef4588e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html @@ -1,54 +1,34 @@ - - - - - - - - Note Tree - - - -
    -

    Note Tree

    - -
    -

    This page explains how to manipulate the note tree in TriliumNext, focusing - on moving notes.

    -

    - -

    -

    Drag and Drop

    -

    - Drag and drop example -

    -

    You can easily rearrange the note tree by dragging and dropping notes, - as demonstrated in the example above.

    -

    Keyboard Manipulation

    -

    - Example of using keyboard keys to move a noteTrilium offers efficient keyboard-based manipulation using the following - shortcuts:

    -
      -
    • Ctrl + and Ctrl +: - Move the note up or down in the order.
    • -
    • Ctrl+: Move the note up in the hierarchy - by changing its parent to the note's grandparent.
    • -
    • Ctrl+: Move the note down in the hierarchy - by setting its parent to the note currently above it (this action is best - understood through a demo or hands-on experience).
    • -
    • and : Expand and collapse - a sub-tree.
    • -
    -

    Context Menu

    -

    You can also move notes using the familiar cut and paste functions available - in the context menu, or with the associated keyboard shortcuts: CTRL-C ( - copy), Ctrl + X (cut) and Ctrl + V (paste).

    -

    See Note Tree Menu for - more information.

    -
    -
    - - - \ No newline at end of file +

    This page explains how to manipulate the note tree in TriliumNext, focusing + on moving notes.

    +

    + +

    +

    Drag and Drop

    +

    + Drag and drop example +

    +

    You can easily rearrange the note tree by dragging and dropping notes, + as demonstrated in the example above.

    +

    Keyboard Manipulation

    +

    + Example of using keyboard keys to move a noteTrilium offers efficient keyboard-based manipulation using the following + shortcuts:

    +
      +
    • Ctrl + and Ctrl +: + Move the note up or down in the order.
    • +
    • Ctrl+: Move the note up in the hierarchy + by changing its parent to the note's grandparent.
    • +
    • Ctrl+: Move the note down in the hierarchy + by setting its parent to the note currently above it (this action is best + understood through a demo or hands-on experience).
    • +
    • and : Expand and collapse + a sub-tree.
    • +
    +

    Context Menu

    +

    You can also move notes using the familiar cut and paste functions available + in the context menu, or with the associated keyboard shortcuts: CTRL-C ( + copy), Ctrl + X (cut) and Ctrl + V (paste).

    +

    See Note Tree Menu for + more information.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.html index 5389d65d6..ca0caf73e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.html @@ -1,32 +1,12 @@ - - - - - - - - Multiple selection - - - -
    -

    Multiple selection

    - -
    -

    It is possible to select multiple notes at one time.

    -

    To do so, first select the note to start the selection with. Then hold - Shift and click on the note to end the selection with. All the notes between - the start and the end note will be selected as well.

    -

    - -

    -

    In the right-click menu, operations such as Cut, Copy, Move to, Clone - to or Delete will apply to all the selected notes. It is also possible - to apply Bulk Actions to - them. The rest of the options will not be available and will appear disabled - in the menu.

    -
    -
    - - - \ No newline at end of file +

    It is possible to select multiple notes at one time.

    +

    To do so, first select the note to start the selection with. Then hold + Shift and click on the note to end the selection with. All the notes between + the start and the end note will be selected as well.

    +

    + +

    +

    In the right-click menu, operations such as Cut, Copy, Move to, Clone + to or Delete will apply to all the selected notes. It is also possible + to apply Bulk Actions to + them. The rest of the options will not be available and will appear disabled + in the menu.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html index 664642ec3..2b14b33a7 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html @@ -1,242 +1,222 @@ - - - - - - - - Note tree contextual menu - - - -
    -

    Note tree contextual menu

    - -
    -
    - -
    -

    The note tree menu can be accessed by right-clicking in the  - Note Tree.

    -

    Interaction

    -

    The contextual menu can operate:

    +
    + +
    +

    The note tree menu can be accessed by right-clicking in the  + Note Tree.

    +

    Interaction

    +

    The contextual menu can operate:

    +
      +
    • On a single note, by right clicking it in the note tree.
    • +
    • On multiple notes, by selecting them first. See Multiple selection on how to do + so. +
        +
      • When right clicking, do note that usually the note being right clicked + is also included in the affected notes, regardless of whether it was selected + or not.
      • +
      +
    • +
    +

    Available options

    + +
      +
    • Open in a new tab +
        +
      • Will open a single note in a new tab.
      • +
      +
    • +
    • Open in a new split +
        +
      • Will open a split to the right with the given note within the current + tab.
      • +
      +
    • +
    • Hoist note +
        +
      • Will focus the note tree on this note. See Note Hoisting for more information.
      • +
      +
    • +
    • Insert note after +
        +
      • Allows easy creation of a note with a specified note type.
      • +
      • Templates will + also be present (if any) at the end of the list.
      • +
      • The note will be added on the same level of hierarchy as the note selected.
      • +
      +
    • +
    • Insert child note +
        +
      • Same as Insert note after, but the note will be created as a child + of the selected note.
      • +
      +
    • +
    • Protect subtree +
        +
      • Will mark this note and all of its descendents as protected. See  + Protected Notes for more information.
      • +
      +
    • +
    • Unprotect subtree +
        +
      • Will unprotect this note and all of its descendents.
      • +
      +
    • +
    • Cut +
        +
      • Will place the given notes in clipboard.
      • +
      • Use one of the two paste functions (or the keyboard shortcuts) to move + them to the desired location.
      • +
      +
    • +
    • Copy / clone +
        +
      • Will place the given notes in clipboard.
      • +
      • Use one of the two paste functions (or the keyboard shortcuts) to copy + them to the desired location.
      • +
      • Note that the copy function here works according to the Cloning Notes functionality (i.e. + the note itself will be present in two locations at once, and editing it + in one place will edit it everywhere).
      • +
      • To simply create a duplicate note that can be modified independently, + look for Duplicate subtree.
      • +
      +
    • +
    • Paste into +
        +
      • If there are any notes in clipboard, they will be pasted as child notes + to the right-clicked one.
      • +
      +
    • +
    • Paste after +
        +
      • If there are any notes in clipboard, they will be pasted underneath the + right-clicked one.
      • +
      +
    • +
    • Move to… +
        +
      • Will display a modal to specify where to move the desired notes.
      • +
      +
    • +
    • Clone to… +
        +
      • Will display a modal to specify where to clone the + desired notes.
      • +
      +
    • +
    • Delete +
        +
      • Will delete the given notes, asking for confirmation first.
      • +
      • In the dialog, the following options can be configured:
          -
        • On a single note, by right clicking it in the note tree.
        • -
        • On multiple notes, by selecting them first. See Multiple selection on how to do - so. -
            -
          • When right clicking, do note that usually the note being right clicked - is also included in the affected notes, regardless of whether it was selected - or not.
          • -
          -
        • +
        • Delete also all clones to ensure that the note will be deleted + everywhere if it has been placed into multiple locations (see Cloning Notes).
        • +
        • Erase notes permanently will ensure that the note cannot be recovered + from Recent Changes.
        -

        Available options

        - -
          -
        • Open in a new tab -
            -
          • Will open a single note in a new tab.
          • -
          -
        • -
        • Open in a new split -
            -
          • Will open a split to the right with the given note within the current - tab.
          • -
          -
        • -
        • Hoist note -
            -
          • Will focus the note tree on this note. See Note Hoisting for more information.
          • -
          -
        • -
        • Insert note after -
            -
          • Allows easy creation of a note with a specified note type.
          • -
          • Templates will - also be present (if any) at the end of the list.
          • -
          • The note will be added on the same level of hierarchy as the note selected.
          • -
          -
        • -
        • Insert child note -
            -
          • Same as Insert note after, but the note will be created as a child - of the selected note.
          • -
          -
        • -
        • Protect subtree -
            -
          • Will mark this note and all of its descendents as protected. See  - Protected Notes for more information.
          • -
          -
        • -
        • Unprotect subtree -
            -
          • Will unprotect this note and all of its descendents.
          • -
          -
        • -
        • Cut -
            -
          • Will place the given notes in clipboard.
          • -
          • Use one of the two paste functions (or the keyboard shortcuts) to move - them to the desired location.
          • -
          -
        • -
        • Copy / clone -
            -
          • Will place the given notes in clipboard.
          • -
          • Use one of the two paste functions (or the keyboard shortcuts) to copy - them to the desired location.
          • -
          • Note that the copy function here works according to the Cloning Notes functionality (i.e. - the note itself will be present in two locations at once, and editing it - in one place will edit it everywhere).
          • -
          • To simply create a duplicate note that can be modified independently, - look for Duplicate subtree.
          • -
          -
        • -
        • Paste into -
            -
          • If there are any notes in clipboard, they will be pasted as child notes - to the right-clicked one.
          • -
          -
        • -
        • Paste after -
            -
          • If there are any notes in clipboard, they will be pasted underneath the - right-clicked one.
          • -
          -
        • -
        • Move to… -
            -
          • Will display a modal to specify where to move the desired notes.
          • -
          -
        • -
        • Clone to… -
            -
          • Will display a modal to specify where to clone the - desired notes.
          • -
          -
        • -
        • Delete -
            -
          • Will delete the given notes, asking for confirmation first.
          • -
          • In the dialog, the following options can be configured: -
              -
            • Delete also all clones to ensure that the note will be deleted - everywhere if it has been placed into multiple locations (see Cloning Notes).
            • -
            • Erase notes permanently will ensure that the note cannot be recovered - from Recent Changes.
            • -
            -
          • -
          -
        • -
        • Import into note -
            -
          • Opens the import dialog and places - the imported notes as child notes of the selected one.
          • -
          -
        • -
        • Export -
            -
          • Opens the export dialog for the selected - notes.
          • -
          -
        • -
        • Search in subtree -
            -
          • Opens a full Search with - it preconfigured to only look into this note and its descendants (the Ancestor field).
          • -
          -
        • -
        -

        Advanced options

        -
        - -
        -

        The advanced options menu offers some of the less frequently used actions - for notes.

        -

        To access these options, first look for the Advanced option in - the contextual menu to reveal a sub-menu with:

        -
          -
        • Apply bulk actions -
            -
          • Opens the Bulk Actions dialog, - to apply actions such as adding labels or moving notes to multiple notes - at once (see Multiple selection).
          • -
          -
        • -
        • Edit branch prefix -
            -
          • Opens a dialog to assign a name to be able to distinguish clones, - see Branch prefix for - more information.
          • -
          -
        • -
        • Convert to attachment -
            -
          • Converts the selected notes to Attachments of - their parent notes.
          • -
          • This functional is most useful when dealing with image File notes that were imported - from an external source or an older version of Trilium.
          • -
          -
        • -
        • Duplicate subtree -
            -
          • Creates a copy of the note and its descendants.
          • -
          • This process is different from Cloning Notes since - the duplicated note can be edited independently from the original.
          • -
          • An alternative to this, if done regularly, would be Templates.
          • -
          -
        • -
        • Expand subtree -
            -
          • Expands all the child notes in the Note Tree.
          • -
          -
        • -
        • Collapse subtree -
            -
          • Collapses all the child notes in the note tree.
          • -
          -
        • -
        • Sort by… -
            -
          • Opens a dialog to sort all the child notes of the selected note.
          • -
          • The sorting is done only once, there is an automatic sorting mechanism - as well that can be set using Attributes.
          • -
          • See Sorting Notes for - more information.
          • -
          -
        • -
        • Copy note path to clipboard -
            -
          • Copies a URL fragment representing the full path to this branch for a - note, such as #root/Hb2E70L7HPuf/4sRFgMZhYFts/2IVuShedRJ3U/LJVMvKXOFv7n.
          • -
          • The URL to manually create Links within - notes, or for note Navigation.
          • -
          -
        • -
        • Recent changes in subtree -
            -
          • This will open Recent Changes, - but filtered to only the changes related to this note or one of its descendants.
          • -
          -
        • -
        -
    -
    - - - \ No newline at end of file + + + +
  • Import into note +
      +
    • Opens the import dialog and places + the imported notes as child notes of the selected one.
    • +
    +
  • +
  • Export +
      +
    • Opens the export dialog for the selected + notes.
    • +
    +
  • +
  • Search in subtree +
      +
    • Opens a full Search with + it preconfigured to only look into this note and its descendants (the Ancestor field).
    • +
    +
  • + +

    Advanced options

    +
    + +
    +

    The advanced options menu offers some of the less frequently used actions + for notes.

    +

    To access these options, first look for the Advanced option in + the contextual menu to reveal a sub-menu with:

    +
      +
    • Apply bulk actions +
        +
      • Opens the Bulk Actions dialog, + to apply actions such as adding labels or moving notes to multiple notes + at once (see Multiple selection).
      • +
      +
    • +
    • Edit branch prefix +
        +
      • Opens a dialog to assign a name to be able to distinguish clones, + see Branch prefix for + more information.
      • +
      +
    • +
    • Convert to attachment +
        +
      • Converts the selected notes to Attachments of + their parent notes.
      • +
      • This functional is most useful when dealing with image File notes that were imported + from an external source or an older version of Trilium.
      • +
      +
    • +
    • Duplicate subtree +
        +
      • Creates a copy of the note and its descendants.
      • +
      • This process is different from Cloning Notes since + the duplicated note can be edited independently from the original.
      • +
      • An alternative to this, if done regularly, would be Templates.
      • +
      +
    • +
    • Expand subtree +
        +
      • Expands all the child notes in the Note Tree.
      • +
      +
    • +
    • Collapse subtree +
        +
      • Collapses all the child notes in the note tree.
      • +
      +
    • +
    • Sort by… +
        +
      • Opens a dialog to sort all the child notes of the selected note.
      • +
      • The sorting is done only once, there is an automatic sorting mechanism + as well that can be set using Attributes.
      • +
      • See Sorting Notes for + more information.
      • +
      +
    • +
    • Copy note path to clipboard +
        +
      • Copies a URL fragment representing the full path to this branch for a + note, such as #root/Hb2E70L7HPuf/4sRFgMZhYFts/2IVuShedRJ3U/LJVMvKXOFv7n.
      • +
      • The URL to manually create Links within + notes, or for note Navigation.
      • +
      +
    • +
    • Recent changes in subtree +
        +
      • This will open Recent Changes, + but filtered to only the changes related to this note or one of its descendants.
      • +
      +
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note buttons.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note buttons.html index 50fcabfca..0f3209d34 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note buttons.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note buttons.html @@ -1,32 +1,12 @@ - - - - - - - - Note buttons - - - -
    -

    Note buttons

    - -
    -

    To the right of the Ribbon there - are a few more buttons: - -

    -
      -
    • The Note Revisions button displays the Note Revisions for - that particular note.
    • -
    • The contextual menu offers commands for the note or its subtree, such - as import, export, viewing the Note source code or  - Attachments.
    • -
    -
    -
    - - - \ No newline at end of file +

    To the right of the Ribbon there + are a few more buttons: + +

    +
      +
    • The Note Revisions button displays the Note Revisions for + that particular note.
    • +
    • The contextual menu offers commands for the note or its subtree, such + as import, export, viewing the Note source code or  + Attachments.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Options.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Options.html index f68e0375d..a45f1009c 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Options.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Options.html @@ -1,50 +1,30 @@ - - - - - - - - Options - - - -
    -

    Options

    - -
    -
    - -
    -

    The Options section allows the configuration of the TriliumNext client - and server.

    -

    Entering options

    -

    The Options can be accessed via:

    -
      -
    • The Global menu, by selecting - the Options item.
    • -
    • The - button in the Launch Bar which - can optionally be hidden if not desirable.
    • -
    • Optionally, a keyboard shortcut can be defined, but it is not assigned - by default.
    • -
    • By clicking on this link: Options.
    • -
    -

    Once in the options section, simply select one of the option categories - using the Note Tree.

    -

    Exiting options

    -

    When entering the options, they are opened in a new tab. - To close them, simply close the tab.

    -

    Options when using sync

    -

    When using Synchronization, - some of the options will be kept in sync across all the devices while others - can be changed independently.

    -

    Generally, the options that relate to appearance are intentionally kept - not synced in order to allow per-client customization (layout orientation, - theme, vertical/horizontal layout, code block themes).

    -
    -
    - - - \ No newline at end of file +
    + +
    +

    The Options section allows the configuration of the TriliumNext client + and server.

    +

    Entering options

    +

    The Options can be accessed via:

    +
      +
    • The Global menu, by selecting + the Options item.
    • +
    • The + button in the Launch Bar which + can optionally be hidden if not desirable.
    • +
    • Optionally, a keyboard shortcut can be defined, but it is not assigned + by default.
    • +
    • By clicking on this link: Options.
    • +
    +

    Once in the options section, simply select one of the option categories + using the Note Tree.

    +

    Exiting options

    +

    When entering the options, they are opened in a new tab. + To close them, simply close the tab.

    +

    Options when using sync

    +

    When using Synchronization, + some of the options will be kept in sync across all the devices while others + can be changed independently.

    +

    Generally, the options that relate to appearance are intentionally kept + not synced in order to allow per-client customization (layout orientation, + theme, vertical/horizontal layout, code block themes).

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html index cc127eb88..c0ee07abe 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html @@ -1,51 +1,31 @@ - - - - - - - - Recent Changes - - - -
    -

    Recent Changes

    +
    + +
    -
    -
    - -
    -

    Accessing the recent changes

    -
      -
    • For an overview of the changes across all documents, press the - button in the Launch Bar. -
        -
      • If there is a hoisted note or a - workspace, the list of recent changes will be limited to the descendents - of the hoisted note, or the workspace.
      • -
      -
    • -
    • To limit the list of recent changes to a note and its descendants, look - for the corresponding option in the Note tree contextual menu → - Advanced.
    • -
    -

    Interaction

    -
      -
    • Notes which were changed will appear in reverse chronological order (latest - update first).
    • -
    • The title of the note is displayed, as well as the note path. Clicking - on the note title will dismiss the dialog and navigate to that particular - note.
    • -
    • Deleted notes will also be listed here, at their time of deletion. Press - the Undelete link next to them in order to recover them.
    • -
    -
    -
    - - - \ No newline at end of file +
      +
    • For an overview of the changes across all documents, press the + button in the Launch Bar. +
        +
      • If there is a hoisted note or a + workspace, the list of recent changes will be limited to the descendents + of the hoisted note, or the workspace.
      • +
      +
    • +
    • To limit the list of recent changes to a note and its descendants, look + for the corresponding option in the Note tree contextual menu → + Advanced.
    • +
    +

    Interaction

    +
      +
    • Notes which were changed will appear in reverse chronological order (latest + update first).
    • +
    • The title of the note is displayed, as well as the note path. Clicking + on the note title will dismiss the dialog and navigate to that particular + note.
    • +
    • Deleted notes will also be listed here, at their time of deletion. Press + the Undelete link next to them in order to recover them.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.html index 65654b7cd..31b5908d9 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.html @@ -1,114 +1,94 @@ - - - - - - - - Ribbon - - - -
    -

    Ribbon

    - -
    -

    - -

    -

    The ribbon allows changing options, attributes and viewing information - about the current note.

    -

    Settings

    -

    It is possible to change whether some ribbon items will be automatically - open when navigating to a new note. To do so, in Settings, - go to Appearance and look for the Ribbon widgets section.

    -

    Formatting

    -

    If you are using the Fixed formatting toolbar, all the formatting - buttons for text notes will appear here. See Formatting toolbar for - more information.

    -

    Tabs

    -

    Basic Properties

    -
      -
    • Note type allows changing the note type of - a note. -
        -
      • Generally this is desirable only if the note is empty.
      • -
      • As a more advanced use, it's possible to change the note type in order - to modify the source code of a note.
      • -
      -
    • -
    • Protect the note toggles whether the current - note is encrypted and accessible only by entering the protected session. - See Protected Notes for - more information.
    • -
    • Editable changes whether the current note: -
        -
      • Enters read-only mode automatically - if the note is too big (default behaviour).
      • -
      • Is always in read-only mode (however it can still be edited temporarily).
      • -
      • Is always editable, regardless of its size.
      • -
      -
    • -
    • Bookmark toggles the display of the current note - into the Launch Bar for - easy access. See Bookmarks for - more information.
    • -
    • Shared toggles whether the current note is publicly - accessible if you have a server instance set - up. See Sharing for more - information.
    • -
    • Template toggles whether the current note is - considered a template and can be used to easily create notes with the same - content. See Template for - more information.
    • -
    • Language changes the main language of the current - note, mostly useful for spell checking or right-to-left support. See  - Content language & Right-to-left support for more information.
    • -
    -

    Owned Attributes

    -

    This section allows editing the labels and relations of a note. For more - information, see Attributes.

    -

    The plus button to the right offers a simplified way to insert labels - and relations, via a graphical input. From this menu, it's also possible - to define label and relation definitions (see Promoted Attributes).

    -

    Inherited Attributes

    -

    This section displays the attributes which are applied to this note via  - Attribute Inheritance. It is not possible to alter the attributes - from this section.

    -

    Note Paths

    -

    This section displays all the places where the current note has been cloned - to. Here the current note can also be cloned to a new location (similar - to the Note Tree) See  - Cloning Notes for more information.

    -

    Note Map

    -

    The note map displays all the relations of the current note to other notes, - as well as the subtree structure. See Note Tree for - more information.

    -

    Similar Notes

    -

    This section lists all the notes that are similar to the current one. - See Similar Notes for - more information.

    -

    Note Info

    -

    This section displays information about the current note:

    -
      -
    • The internal ID of the note.
    • -
    • The type of the note, as well as - its MIME type (used mostly for exporting notes).
    • -
    • The created and modification dates.
    • -
    • The estimated size of the note in the Database, - as well as its children count and size.
    • -
    -

    Edited notes

    -

    This section pops automatically when entering a day note and - shows the notes that were edited that day.

    -

    It is possible to disable this behavior from settings, by going to  - Appearance settings and looking for the Ribbon widgets section.

    -
    -
    - - - \ No newline at end of file +

    + +

    +

    The ribbon allows changing options, attributes and viewing information + about the current note.

    +

    Settings

    +

    It is possible to change whether some ribbon items will be automatically + open when navigating to a new note. To do so, in Settings, + go to Appearance and look for the Ribbon widgets section.

    +

    Formatting

    +

    If you are using the Fixed formatting toolbar, all the formatting + buttons for text notes will appear here. See Formatting toolbar for + more information.

    +

    Tabs

    +

    Basic Properties

    +
      +
    • Note type allows changing the note type of + a note. +
        +
      • Generally this is desirable only if the note is empty.
      • +
      • As a more advanced use, it's possible to change the note type in order + to modify the source code of a note.
      • +
      +
    • +
    • Protect the note toggles whether the current + note is encrypted and accessible only by entering the protected session. + See Protected Notes for + more information.
    • +
    • Editable changes whether the current note: +
        +
      • Enters read-only mode automatically + if the note is too big (default behaviour).
      • +
      • Is always in read-only mode (however it can still be edited temporarily).
      • +
      • Is always editable, regardless of its size.
      • +
      +
    • +
    • Bookmark toggles the display of the current note + into the Launch Bar for + easy access. See Bookmarks for + more information.
    • +
    • Shared toggles whether the current note is publicly + accessible if you have a server instance set + up. See Sharing for more + information.
    • +
    • Template toggles whether the current note is + considered a template and can be used to easily create notes with the same + content. See Template for + more information.
    • +
    • Language changes the main language of the current + note, mostly useful for spell checking or right-to-left support. See  + Content language & Right-to-left support for more information.
    • +
    +

    Owned Attributes

    +

    This section allows editing the labels and relations of a note. For more + information, see Attributes.

    +

    The plus button to the right offers a simplified way to insert labels + and relations, via a graphical input. From this menu, it's also possible + to define label and relation definitions (see Promoted Attributes).

    +

    Inherited Attributes

    +

    This section displays the attributes which are applied to this note via  + Attribute Inheritance. It is not possible to alter the attributes + from this section.

    +

    Note Paths

    +

    This section displays all the places where the current note has been cloned + to. Here the current note can also be cloned to a new location (similar + to the Note Tree) See  + Cloning Notes for more information.

    +

    Note Map

    +

    The note map displays all the relations of the current note to other notes, + as well as the subtree structure. See Note Tree for + more information.

    +

    Similar Notes

    +

    This section lists all the notes that are similar to the current one. + See Similar Notes for + more information.

    +

    Note Info

    +

    This section displays information about the current note:

    +
      +
    • The internal ID of the note.
    • +
    • The type of the note, as well as + its MIME type (used mostly for exporting notes).
    • +
    • The created and modification dates.
    • +
    • The estimated size of the note in the Database, + as well as its children count and size.
    • +
    +

    Edited notes

    +

    This section pops automatically when entering a day note and + shows the notes that were edited that day.

    +

    It is possible to disable this behavior from settings, by going to  + Appearance settings and looking for the Ribbon widgets section.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Right Sidebar.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Right Sidebar.html index ad9b84471..f3e1b9aee 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Right Sidebar.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Right Sidebar.html @@ -1,45 +1,25 @@ - - - - - - - - Right Sidebar - - - -
    -

    Right Sidebar

    - -
    -
    - -
    -

    The right sidebar displays specific content for the current note. Currently - it includes:

    - -

    Note that the sidebar is not displayed if it would otherwise be empty, - for example if there are too few headings and there are no highlights.

    -

    Toggling the right sidebar

    -

    The sidebar can be hidden or shown by using the toggleRightPane keyboard - shortcut, which is not assigned by default.

    -

    Relation with splits

    -

    When using Split View, - there is a single sidebar serving all the open splits for the current - tab.

    -

    Clicking on a note within the split view will display the sidebar for - that note. If there are no items to display in the sidebar, it will remain - closed.

    -
    -
    - - - \ No newline at end of file +
    + +
    +

    The right sidebar displays specific content for the current note. Currently + it includes:

    + +

    Note that the sidebar is not displayed if it would otherwise be empty, + for example if there are too few headings and there are no highlights.

    +

    Toggling the right sidebar

    +

    The sidebar can be hidden or shown by using the toggleRightPane keyboard + shortcut, which is not assigned by default.

    +

    Relation with splits

    +

    When using Split View, + there is a single sidebar serving all the open splits for the current + tab.

    +

    Clicking on a note within the split view will display the sidebar for + that note. If there are no items to display in the sidebar, it will remain + closed.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Split View.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Split View.html index 85a460b2e..b73d3bcef 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Split View.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Split View.html @@ -1,66 +1,46 @@ - +

    In Trilium, is possible to work with two or more notes side-by-side.

    +
    + +
    - - - - - - Split View - - - -
    -

    Split View

    - -
    -

    In Trilium, is possible to work with two or more notes side-by-side.

    -
    - -
    -

    Interactions

    -
      -
    • Press the - button to the right of a note's title to open a new split to the right - of it. -
        -
      • It is possible to have as many splits as desired, simply press again the - button.
      • -
      • Only horizontal splits are possible, vertical or drag & dropping is - not supported.
      • -
      -
    • -
    • When at least one split is open, press the - button next to it to close it.
    • -
    • Use the - or the - button to move around the splits.
    • -
    • Each tab has its own split view configuration - (e.g. one tab can have two notes in a split view, whereas the others are - one-note views). -
        -
      • The tab will indicate only the title of the main note (the first one in - the list).
      • -
      -
    • -
    -

    Splits and the note tree & hoisting

    -

    Clicking on the content of a split will focus that split. While focused, - the Note Tree will - also indicate the note that is being edited.

    -

    It is possible for each of the splits to have their own Note Hoisting.

    -

    When a new split is created, it will share the same note hoisting as the - previous one. An easy solution to this is to simply hoist the notes after - the split is created.

    -

    This is generally quite useful for reorganizing notes from one place to - the other, by hoisting the old place in the first split and hoisting the - new place to the second one. This will allow easy cut and paste without - the tree jumping around from switching between notes.

    -
    -
    - - - \ No newline at end of file +
      +
    • Press the + button to the right of a note's title to open a new split to the right + of it. +
        +
      • It is possible to have as many splits as desired, simply press again the + button.
      • +
      • Only horizontal splits are possible, vertical or drag & dropping is + not supported.
      • +
      +
    • +
    • When at least one split is open, press the + button next to it to close it.
    • +
    • Use the + or the + button to move around the splits.
    • +
    • Each tab has its own split view configuration + (e.g. one tab can have two notes in a split view, whereas the others are + one-note views). +
        +
      • The tab will indicate only the title of the main note (the first one in + the list).
      • +
      +
    • +
    +

    Splits and the note tree & hoisting

    +

    Clicking on the content of a split will focus that split. While focused, + the Note Tree will + also indicate the note that is being edited.

    +

    It is possible for each of the splits to have their own Note Hoisting.

    +

    When a new split is created, it will share the same note hoisting as the + previous one. An easy solution to this is to simply hoist the notes after + the split is created.

    +

    This is generally quite useful for reorganizing notes from one place to + the other, by hoisting the old place in the first split and hoisting the + new place to the second one. This will allow easy cut and paste without + the tree jumping around from switching between notes.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Tabs.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Tabs.html index 0215dec12..45eac8857 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Tabs.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Tabs.html @@ -1,62 +1,42 @@ - - - - - - - - Tabs - - - -
    -

    Tabs

    - -
    -
    - -
    -

    In Trilium, tabs allow easy switching between notes.

    -

    Layout

    -

    Depending on the Vertical and horizontal layout:

    -
      -
    • For the vertical layout, the tabs will be placed at the top but to the - right of the Note Tree.
    • -
    • For the horizontal layout, the tabs will be placed at the top in full-width, - above the note tree, allowing - for more tabs to be comfortably displayed.
    • -
    -

    Interaction

    -
      -
    • To create a new tab, press the - button that is to the right of the last tab.
    • -
    • To close a tab, press the corresponding - button.
    • -
    • For multitasking, tabs can be used alongside Split View. Each tab can have one or - more notes, displayed horizontally.
    • -
    • Tabs can be reordered by drag-and-dropping it into a new position.
    • -
    • An existing tab can be displayed in a new window by dragging the tab upwards - or downwards. It is not possible to combine tabs back into another window.
    • -
    -

    Keyboard interaction

    -

    Since tabs are a commonly used feature, there are multiple keyboard shortcuts - that can be used:

    -
      -
    • Ctrl+T to open a new tab.
    • -
    • Ctrl+W to close the current tab.
    • -
    • Ctrl+Shift+T to reopen the last closed - tab.
    • -
    • Ctrl+Tab and Ctrl+Shift+Tab to - go to the next or previous tab.
    • -
    • Ctrl+1, Ctrl+2, up to Ctrl+9 to - activate the first, second and up til ninth tab.
    • -
    • There is also a shortcut to go to the last tab, but it is not assigned - a key by default.
    • -
    -
    -
    - - - \ No newline at end of file +
    + +
    +

    In Trilium, tabs allow easy switching between notes.

    +

    Layout

    +

    Depending on the Vertical and horizontal layout:

    +
      +
    • For the vertical layout, the tabs will be placed at the top but to the + right of the Note Tree.
    • +
    • For the horizontal layout, the tabs will be placed at the top in full-width, + above the note tree, allowing + for more tabs to be comfortably displayed.
    • +
    +

    Interaction

    +
      +
    • To create a new tab, press the + button that is to the right of the last tab.
    • +
    • To close a tab, press the corresponding + button.
    • +
    • For multitasking, tabs can be used alongside Split View. Each tab can have one or + more notes, displayed horizontally.
    • +
    • Tabs can be reordered by drag-and-dropping it into a new position.
    • +
    • An existing tab can be displayed in a new window by dragging the tab upwards + or downwards. It is not possible to combine tabs back into another window.
    • +
    +

    Keyboard interaction

    +

    Since tabs are a commonly used feature, there are multiple keyboard shortcuts + that can be used:

    +
      +
    • Ctrl+T to open a new tab.
    • +
    • Ctrl+W to close the current tab.
    • +
    • Ctrl+Shift+T to reopen the last closed + tab.
    • +
    • Ctrl+Tab and Ctrl+Shift+Tab to + go to the next or previous tab.
    • +
    • Ctrl+1, Ctrl+2, up to Ctrl+9 to + activate the first, second and up til ninth tab.
    • +
    • There is also a shortcut to go to the last tab, but it is not assigned + a key by default.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Vertical and horizontal layout.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Vertical and horizontal layout.html index bcf3a6d1a..beb63f3a1 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Vertical and horizontal layout.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Vertical and horizontal layout.html @@ -1,69 +1,49 @@ - - - - - - - - Vertical and horizontal layout - - - -
    -

    Vertical and horizontal layout

    - -
    -

    Layouts

    -

    Trilium supports two different layouts, based on your preference.

    -

    Vertical layout

    -

    The vertical layout is Trilium's original layout:

    -
      -
    • The Launch Bar is - positioned on the left side of the screen, with buttons being laid out - vertically.
    • -
    • The tab bar is at the top, but to the right of the Note Tree.
    • -
    • The Quick search is - at the top of the Note Tree.
    • -
    • The Note Tree can - be collapsed by pressing the - button at the bottom of the Launch Bar.
    • -
    • The Global menu can - be accessed via the - icon at the top of the Launch Bar.
    • -
    -

    - -

    -

    Horizontal layout

    -

    The horizontal layout is a more traditional layout, since it bears similarity - with other applications. In this mode:

    -
      -
    • The Launch Bar is - at the top of the screen, with the buttons laid horizontally.
    • -
    • The tab bar is at the top of the screen, but now covers the entirety of - the width, allowing for more tabs to be displayed at once.
    • -
    • The Quick search is - now part of the Launch Bar. - It can be moved around according to preference and even removed if needed.
    • -
    • The Note Tree can - be collapsed by pressing the small - button to the left of the first tab.
    • -
    • The Global menu can - be accessed via the - button at the end of the Launch Bar.
    • -
    -

    - -

    -

    Changing the layout

    -

    Go to Options and - look for the Appearance option on the left. Then look for the Layout section, - where there is the possibility to switch between the two available layouts.

    -

    Selecting an option will immediately apply the new layout by reloading - the window.

    -
    -
    - - - \ No newline at end of file +

    Layouts

    +

    Trilium supports two different layouts, based on your preference.

    +

    Vertical layout

    +

    The vertical layout is Trilium's original layout:

    +
      +
    • The Launch Bar is + positioned on the left side of the screen, with buttons being laid out + vertically.
    • +
    • The tab bar is at the top, but to the right of the Note Tree.
    • +
    • The Quick search is + at the top of the Note Tree.
    • +
    • The Note Tree can + be collapsed by pressing the + button at the bottom of the Launch Bar.
    • +
    • The Global menu can + be accessed via the + icon at the top of the Launch Bar.
    • +
    +

    + +

    +

    Horizontal layout

    +

    The horizontal layout is a more traditional layout, since it bears similarity + with other applications. In this mode:

    +
      +
    • The Launch Bar is + at the top of the screen, with the buttons laid horizontally.
    • +
    • The tab bar is at the top of the screen, but now covers the entirety of + the width, allowing for more tabs to be displayed at once.
    • +
    • The Quick search is + now part of the Launch Bar. + It can be moved around according to preference and even removed if needed.
    • +
    • The Note Tree can + be collapsed by pressing the small + button to the left of the first tab.
    • +
    • The Global menu can + be accessed via the + button at the end of the Launch Bar.
    • +
    +

    + +

    +

    Changing the layout

    +

    Go to Options and + look for the Appearance option on the left. Then look for the Layout section, + where there is the possibility to switch between the two available layouts.

    +

    Selecting an option will immediately apply the new layout by reloading + the window.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Zoom.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Zoom.html index 91bcf1d07..e69de29bb 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Zoom.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Zoom.html @@ -1,19 +0,0 @@ - - - - - - - - Zoom - - - -
    -

    Zoom

    - -
    -
    - - - \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Zen mode.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Zen mode.html index 4678fd559..7d10cb786 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Zen mode.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Zen mode.html @@ -1,67 +1,47 @@ - - - - - - - - Zen mode - - - -
    -

    Zen mode

    - -
    -

    - -

    -

    Screenshot of Zen Mode activated on a Windows 11 system with native title - bar off and background effects on.

    -

    When Zen Mode is activated (pictured on the side), most of the user interface - of Trilium is hidden away in order to be able to focus on the content, - whether it's for reading or writing.

    -

    - -

    -

    Screenshot of the Zen Mode option in the global menu.

    -

    Activating & deactivating

    -

    The Zen Mode can be activated by accessing the global menu and selecting - the “Zen Mode” option:

    -

    Aside from the global menu, it's also possible to activate this mode by - using a keyboard shortcut (which is F9 since TriliumNext 0.92.5 - and Alt+Z for older versions). Look for toggleZenMode in - the shortcut configuration.

    -

    Once Zen Mode is activated, all the UI elements of the application will - be hidden away, including the global menu. In that case, the Zen Mode can - be deactivated either by pressing the - icon in the top-right corner of the window or by pressing the keyboard - combination again.

    -

    Do note that, by design, activating or deactivating the Zen Mode applies - only to the current window. Restarting the application will also disable - the Zen Mode.

    -

    Moving the window around

    -

    If “Native title bar” is activated, then the operating system's default - title bar can be used to drag the window around. If deactivated, the window - can still be moved by dragging the mouse across the top part of the window - where the note titles are.

    -

    - -

    -

    Screenshot of two notes side-by-side while Zen Mode is active, on Windows - 11 with background effects off.

    -

    Split windows and tabs

    -

    Tabs are completely hidden, however it's still possible to use keyboard - shortcuts such as firstTab (Ctrl+1 by default), secondTab (Ctrl+2 by - default). There are also some newer shortcuts such as activateNextTab (Ctrl+Tab) - or activatePreviousTab (Ctrl+Shift+Tab) - that allow easy navigation, however make sure that they are configured - properly in the settings.

    -

    For the split view of notes, there are no keyboard shortcuts at the time - of writing, but it's still possible to have them in Zen Mode by creating - the split while the Zen Mode is off and then reactivating it afterwards.

    -
    -
    - - - \ No newline at end of file +

    + +

    +

    Screenshot of Zen Mode activated on a Windows 11 system with native title + bar off and background effects on.

    +

    When Zen Mode is activated (pictured on the side), most of the user interface + of Trilium is hidden away in order to be able to focus on the content, + whether it's for reading or writing.

    +

    + +

    +

    Screenshot of the Zen Mode option in the global menu.

    +

    Activating & deactivating

    +

    The Zen Mode can be activated by accessing the global menu and selecting + the “Zen Mode” option:

    +

    Aside from the global menu, it's also possible to activate this mode by + using a keyboard shortcut (which is F9 since TriliumNext 0.92.5 + and Alt+Z for older versions). Look for toggleZenMode in + the shortcut configuration.

    +

    Once Zen Mode is activated, all the UI elements of the application will + be hidden away, including the global menu. In that case, the Zen Mode can + be deactivated either by pressing the + icon in the top-right corner of the window or by pressing the keyboard + combination again.

    +

    Do note that, by design, activating or deactivating the Zen Mode applies + only to the current window. Restarting the application will also disable + the Zen Mode.

    +

    Moving the window around

    +

    If “Native title bar” is activated, then the operating system's default + title bar can be used to drag the window around. If deactivated, the window + can still be moved by dragging the mouse across the top part of the window + where the note titles are.

    +

    + +

    +

    Screenshot of two notes side-by-side while Zen Mode is active, on Windows + 11 with background effects off.

    +

    Split windows and tabs

    +

    Tabs are completely hidden, however it's still possible to use keyboard + shortcuts such as firstTab (Ctrl+1 by default), secondTab (Ctrl+2 by + default). There are also some newer shortcuts such as activateNextTab (Ctrl+Tab) + or activatePreviousTab (Ctrl+Shift+Tab) + that allow easy navigation, however make sure that they are configured + properly in the settings.

    +

    For the split view of notes, there are no keyboard shortcuts at the time + of writing, but it's still possible to have them in Zen Mode by creating + the split while the Zen Mode is off and then reactivating it afterwards.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/FAQ.html b/src/public/app/doc_notes/en/User Guide/User Guide/FAQ.html index 92069df9e..24dfa9332 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/FAQ.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/FAQ.html @@ -1,93 +1,73 @@ - - - - - - - - FAQ - - - -
    -

    FAQ

    - -
    -

    macOS support

    -

    Originally, Trilium Notes considered the macOS build unsupported. TriliumNext - commits to make the experience on macOS as good as possible.

    -

    if you find any platform-specific issues, feel free to report them.

    -

    Translation / localisation support

    -

    The original Trilium Notes application did not support multiple languages. - Since we believe that internationalisation is a core part of an application, - we have added support for it.

    -

    Contributions to translations are welcome.

    -

    Multi-user support

    -

    Common request is to allow multiple users collaborate, share notes etc. - So far I'm resisting this because of these reasons:

    -
      -
    • it's a huge feature, or rather a Pandora's box of collaboration features - like user management, permissions, conflict resolution, real-time editing - of a note by multiple people etc. This would be a huge amount of work. - Trilium Notes is project made mostly by one person in free time and that's - unlikely to change in the future.
    • -
    • given its size it would probably pivot the attention away from my main - focus which is a personal note-taking
    • -
    • the assumption that only single person has access to the app simplifies - many things, or just outright makes them possible. In multi-user app, our - scriptingsupport would be a XSS security hole, while with the single - user assumption it's an endless customizable tool.
    • -
    -

    How to open multiple documents in one Trilium instance

    -

    This is normally not supported - one Trilium process can open only a single - instance of a database. However, - you can run two Trilium processes (from one installation), each connected - to a separate document. To achieve this, you need to set a location for - the data directory in the TRILIUM_DATA_DIR environment - variable and separate port on TRILIUM_PORT environment variable. - How to do that depends on the platform, in Unix-based systems you can achieve - that by running command such as this:

    TRILIUM_DATA_DIR=/home/me/path/to/data/dir TRILIUM_PORT=12345 trilium 
    -

    You can save this command into a .sh script file or make an - alias. Do this similarly for a second instance with different data directory - and port.

    -

    Can I use Dropbox / Google Drive / OneDrive to sync data across multiple computers.

    -

    No.

    -

    These general purpose sync apps are not suitable to sync database files - which are open and being worked on by another application. The result is - that they will corrupt the database file, resulting in data loss and this - message in the Trilium logs:

    SqliteError: database disk image is malformed
    -

    The only supported way to sync Trilium's data across the network is to - use a sync/web server.

    -

    Why database instead of flat files?

    -

    Trilium stores notes in a database which - is an SQLite database. People often ask why doesn't Trilium rather use - flat files for note storage - it's fair question since flat files are easily - interoperable, work with SCM/git etc.

    -

    Short answer is that file systems are simply not powerful enough for what - we want to achieve with Trilium. Using filesystem would mean fewer features - with probably more problems.

    -

    More detailed answer:

    -
      -
    • clones are what you might call "hard - directory link" in filesystem lingo, but this concept is not implemented - in any filesystem
    • -
    • filesystems make a distinction between directory and file while there's - intentionally no such difference in Trilium
    • -
    • files are stored in no particular order and user can't change this
    • -
    • Trilium allows storing note attributes which - could be represented in extended user attributes but their support differs - greatly among different filesystems / operating systems
    • -
    • Trilium makes links / relations between different notes which can be quickly - retrieved / navigated (e.g. for note map). - There's no such support in file systems which means these would have to - be stored in some kind of side-car files (mini-databases).
    • -
    • Filesystems are generally not transactional. While this is not completely - required for a note-taking application, having transactions make it way - easier to keep notes and their metadata in predictable and consistent state.
    • -
    -
    -
    - - - \ No newline at end of file +

    macOS support

    +

    Originally, Trilium Notes considered the macOS build unsupported. TriliumNext + commits to make the experience on macOS as good as possible.

    +

    if you find any platform-specific issues, feel free to report them.

    +

    Translation / localisation support

    +

    The original Trilium Notes application did not support multiple languages. + Since we believe that internationalisation is a core part of an application, + we have added support for it.

    +

    Contributions to translations are welcome.

    +

    Multi-user support

    +

    Common request is to allow multiple users collaborate, share notes etc. + So far I'm resisting this because of these reasons:

    +
      +
    • it's a huge feature, or rather a Pandora's box of collaboration features + like user management, permissions, conflict resolution, real-time editing + of a note by multiple people etc. This would be a huge amount of work. + Trilium Notes is project made mostly by one person in free time and that's + unlikely to change in the future.
    • +
    • given its size it would probably pivot the attention away from my main + focus which is a personal note-taking
    • +
    • the assumption that only single person has access to the app simplifies + many things, or just outright makes them possible. In multi-user app, our + scriptingsupport would be a XSS security hole, while with the single + user assumption it's an endless customizable tool.
    • +
    +

    How to open multiple documents in one Trilium instance

    +

    This is normally not supported - one Trilium process can open only a single + instance of a database. However, + you can run two Trilium processes (from one installation), each connected + to a separate document. To achieve this, you need to set a location for + the data directory in the TRILIUM_DATA_DIR environment + variable and separate port on TRILIUM_PORT environment variable. + How to do that depends on the platform, in Unix-based systems you can achieve + that by running command such as this:

    TRILIUM_DATA_DIR=/home/me/path/to/data/dir TRILIUM_PORT=12345 trilium 
    +

    You can save this command into a .sh script file or make an + alias. Do this similarly for a second instance with different data directory + and port.

    +

    Can I use Dropbox / Google Drive / OneDrive to sync data across multiple computers.

    +

    No.

    +

    These general purpose sync apps are not suitable to sync database files + which are open and being worked on by another application. The result is + that they will corrupt the database file, resulting in data loss and this + message in the Trilium logs:

    SqliteError: database disk image is malformed
    +

    The only supported way to sync Trilium's data across the network is to + use a sync/web server.

    +

    Why database instead of flat files?

    +

    Trilium stores notes in a database which + is an SQLite database. People often ask why doesn't Trilium rather use + flat files for note storage - it's fair question since flat files are easily + interoperable, work with SCM/git etc.

    +

    Short answer is that file systems are simply not powerful enough for what + we want to achieve with Trilium. Using filesystem would mean fewer features + with probably more problems.

    +

    More detailed answer:

    +
      +
    • clones are what you might call "hard + directory link" in filesystem lingo, but this concept is not implemented + in any filesystem
    • +
    • filesystems make a distinction between directory and file while there's + intentionally no such difference in Trilium
    • +
    • files are stored in no particular order and user can't change this
    • +
    • Trilium allows storing note attributes which + could be represented in extended user attributes but their support differs + greatly among different filesystems / operating systems
    • +
    • Trilium makes links / relations between different notes which can be quickly + retrieved / navigated (e.g. for note map). + There's no such support in file systems which means these would have to + be stored in some kind of side-car files (mini-databases).
    • +
    • Filesystems are generally not transactional. While this is not completely + required for a note-taking application, having transactions make it way + easier to keep notes and their metadata in predictable and consistent state.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Backup.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Backup.html index e36855cd3..754946d1c 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Backup.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Backup.html @@ -1,73 +1,53 @@ - - - - - - - - Backup - - - -
    -

    Backup

    - -
    -

    Trilium supports simple backup scheme where it saves copy of the  - Database on these events:

    -
      -
    • once a day
    • -
    • once a week
    • -
    • once a month
    • -
    • before DB migration to newer version
    • -
    -

    So in total you'll have at most 4 backups from different points in time - which should protect you from various problems. These backups are stored - by default in backup directory placed in the data directory.

    -

    This is only very basic backup solution, and you're encouraged to add - some better backup solution - e.g. backing up the Database to cloud / different - computer etc.

    -

    Note that Synchronization provides - also some backup capabilities by its nature of distributing the data to - other computers.

    -

    Restoring backup

    -

    Let's assume you want to restore the weekly backup, here's how to do it:

    -
      -
    • find data directory Trilium uses - - easy way is to open "About Trilium Notes" from "Menu" in upper left corner - and looking at "data directory" -
        -
      • I'll refer to ~/trilium-data as data directory from now on
      • -
      -
    • -
    • find ~/trilium-data/backup/backup-weekly.db - this is the  - Database backup
    • -
    • at this point stop/kill Trilium
    • -
    • delete ~/trilium-data/document.db, ~/trilium-data/document.db-wal and ~/trilium-data/document.db-shm (latter - two files are auto generated)
    • -
    • copy and rename this ~/trilium-data/backup/backup-weekly.db to ~/trilium-data/document.db -
    • -
    • make sure that the file is writable, e.g. with chmod 600 document.db -
    • -
    • start Trilium again
    • -
    -

    If you have configured sync then you need to do it across all members - of the sync cluster, otherwise older version (restored backup) of the document - will be detected and synced to the newer version.

    -

    Disabling backup

    -

    Although this is not recommended, it is possible to disable backup in config.ini in - the data directory:

    [General]
    +

    Trilium supports simple backup scheme where it saves copy of the  + Database on these events:

    +
      +
    • once a day
    • +
    • once a week
    • +
    • once a month
    • +
    • before DB migration to newer version
    • +
    +

    So in total you'll have at most 4 backups from different points in time + which should protect you from various problems. These backups are stored + by default in backup directory placed in the data directory.

    +

    This is only very basic backup solution, and you're encouraged to add + some better backup solution - e.g. backing up the Database to cloud / different + computer etc.

    +

    Note that Synchronization provides + also some backup capabilities by its nature of distributing the data to + other computers.

    +

    Restoring backup

    +

    Let's assume you want to restore the weekly backup, here's how to do it:

    +
      +
    • find data directory Trilium uses + - easy way is to open "About Trilium Notes" from "Menu" in upper left corner + and looking at "data directory" +
        +
      • I'll refer to ~/trilium-data as data directory from now on
      • +
      +
    • +
    • find ~/trilium-data/backup/backup-weekly.db - this is the  + Database backup
    • +
    • at this point stop/kill Trilium
    • +
    • delete ~/trilium-data/document.db, ~/trilium-data/document.db-wal and ~/trilium-data/document.db-shm (latter + two files are auto generated)
    • +
    • copy and rename this ~/trilium-data/backup/backup-weekly.db to ~/trilium-data/document.db +
    • +
    • make sure that the file is writable, e.g. with chmod 600 document.db +
    • +
    • start Trilium again
    • +
    +

    If you have configured sync then you need to do it across all members + of the sync cluster, otherwise older version (restored backup) of the document + will be detected and synced to the newer version.

    +

    Disabling backup

    +

    Although this is not recommended, it is possible to disable backup in config.ini in + the data directory:

    [General]
     ... some other configs
     # set to true to disable backups (e.g. because of limited space on server)
     noBackup=true
    -

    You can also review the configuration file - to provide all config.ini values as environment variables instead.

    -

    See sample config.

    -
    -
    - - - \ No newline at end of file +

    You can also review the configuration file + to provide all config.ini values as environment variables instead.

    +

    See sample config.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html index 64d0b1e73..60589b51e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html @@ -1,57 +1,42 @@ - - - - - - - - Data directory - - - -
    -

    Data directory

    - -
    -

    Data directory contains:

    -
      -
    • document.db - database -
    • -
    • config.ini - instance level settings like port on which the - Trilium application runs
    • -
    • backup - contains automatically backup of - documents
    • -
    • log - contains application log files
    • -
    -

    Location

    -

    Easy way how to find out which data directory Trilium uses is to look - at the "About Trilium Notes" dialog (from "Menu" in upper left corner):

    -

    - -

    -

    Here's how the location is decided:

    -

    Data directory is normally named trilium-data and it is stored - in:

    -
      -
    • /home/[user]/.local/share for Linux
    • -
    • C:\Users\[user]\AppData\Roaming for Windows Vista and up
    • -
    • /Users/[user]/Library/Application Support for Mac OS
    • -
    • user's home is a fallback if some of the paths above don't exist
    • -
    • user's home is also a default setup for [[docker|Docker server installation]]
    • -
    -

    If you want to back up your Trilium data, just backup this single directory - - it contains everything you need.

    -

    Changing the location of data directory

    -

    If you want to use some other location for the data directory than the - default one, you may change it via TRILIUM_DATA_DIR environment variable - to some other location:

    -

    Linux

    export TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data
    -

    Mac OS X

    -

    You need to create a .plist file under ~/Library/LaunchAgents to - load it properly each login.

    -

    To load it manually, you need to use launchctl setenv TRILIUM_DATA_DIR <yourpath> -

    -

    Here is a pre-defined template, where you just need to add your path to:

    
    +

    Data directory contains:

    +
      +
    • document.db - database +
    • +
    • config.ini - instance level settings like port on which the + Trilium application runs
    • +
    • backup - contains automatically backup of + documents
    • +
    • log - contains application log files
    • +
    +

    Location

    +

    Easy way how to find out which data directory Trilium uses is to look + at the "About Trilium Notes" dialog (from "Menu" in upper left corner):

    +

    + +

    +

    Here's how the location is decided:

    +

    Data directory is normally named trilium-data and it is stored + in:

    +
      +
    • /home/[user]/.local/share for Linux
    • +
    • C:\Users\[user]\AppData\Roaming for Windows Vista and up
    • +
    • /Users/[user]/Library/Application Support for Mac OS
    • +
    • user's home is a fallback if some of the paths above don't exist
    • +
    • user's home is also a default setup for [[docker|Docker server installation]]
    • +
    +

    If you want to back up your Trilium data, just backup this single directory + - it contains everything you need.

    +

    Changing the location of data directory

    +

    If you want to use some other location for the data directory than the + default one, you may change it via TRILIUM_DATA_DIR environment variable + to some other location:

    +

    Linux

    export TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data
    +

    Mac OS X

    +

    You need to create a .plist file under ~/Library/LaunchAgents to + load it properly each login.

    +

    To load it manually, you need to use launchctl setenv TRILIUM_DATA_DIR <yourpath> +

    +

    Here is a pre-defined template, where you just need to add your path to:

    
     
     
     
    @@ -69,33 +54,28 @@
             
         
     
    -

    Create a script to run with specific data directory

    -

    An alternative to globally setting environment variable is to run only - the Trilium Notes with this environment variable. This then allows for - different setup styles like two database instances - or "portable" installation.

    -

    To do this in unix based systems simply run trilium like this:

    TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data trilium
    -

    You can then save the above command as a shell script on your path for - convenience.

    -

    Fine-grained directory/path location

    -

    It's possible to configure e.g. backup and log directories separately, - with following environment variables:

    -
      -
    • TRILIUM_DOCUMENT_PATH -
    • -
    • TRILIUM_BACKUP_DIR -
    • -
    • TRILIUM_LOG_DIR -
    • -
    • TRILIUM_ANONYMIZED_DB_DIR -
    • -
    • TRILIUM_CONFIG_INI_PATH -
    • -
    -

    If these are not set, default paths within the data directory will be - used.

    -
    -
    - - - \ No newline at end of file +

    Create a script to run with specific data directory

    +

    An alternative to globally setting environment variable is to run only + the Trilium Notes with this environment variable. This then allows for + different setup styles like two database instances + or "portable" installation.

    +

    To do this in unix based systems simply run trilium like this:

    TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data trilium
    +

    You can then save the above command as a shell script on your path for + convenience.

    +

    Fine-grained directory/path location

    +

    It's possible to configure e.g. backup and log directories separately, + with following environment variables:

    +
      +
    • TRILIUM_DOCUMENT_PATH +
    • +
    • TRILIUM_BACKUP_DIR +
    • +
    • TRILIUM_LOG_DIR +
    • +
    • TRILIUM_ANONYMIZED_DB_DIR +
    • +
    • TRILIUM_CONFIG_INI_PATH +
    • +
    +

    If these are not set, default paths within the data directory will be + used.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Desktop Installation.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Desktop Installation.html index f6cd78715..6057d513f 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Desktop Installation.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Desktop Installation.html @@ -1,52 +1,32 @@ - - - - - - - - Desktop Installation - - - -
    -

    Desktop Installation

    - -
    -

    To install Trilium on your desktop, follow these steps:

    -
      -
    1. Download the Latest Release: Obtain the appropriate binary - release for your operating system from the latest release page on - GitHub.
    2. -
    3. Extract the Package: Unzip the downloaded package to - a location of your choice.
    4. -
    5. Run the Application: Launch Trilium by executing the trilium executable - found within the unzipped folder.
    6. -
    -

    Startup Scripts

    -

    Trilium offers various startup scripts to customize your experience:

    -
      -
    • trilium-no-cert-check: Starts Trilium without validating - TLS certificates, useful if connecting to a server with a self-signed - certificate. -
        -
      • Alternatively, set the NODE_TLS_REJECT_UNAUTHORIZED=0 environment - variable before starting Trilium.
      • -
      -
    • -
    • trilium-portable: Launches Trilium in portable mode, where - the data directory is created within - the application's directory, making it easy to move the entire setup.
    • -
    • trilium-safe-mode: Boots Trilium in "safe mode," disabling - any startup scripts that might cause the application to crash.
    • -
    -

    Synchronization

    -

    For Trilium desktp users who wish to synchronize their data with a server - instance, refer to the Synchronization guide - for detailed instructions.

    -
    -
    - - - \ No newline at end of file +

    To install Trilium on your desktop, follow these steps:

    +
      +
    1. Download the Latest Release: Obtain the appropriate binary + release for your operating system from the latest release page on + GitHub.
    2. +
    3. Extract the Package: Unzip the downloaded package to + a location of your choice.
    4. +
    5. Run the Application: Launch Trilium by executing the trilium executable + found within the unzipped folder.
    6. +
    +

    Startup Scripts

    +

    Trilium offers various startup scripts to customize your experience:

    +
      +
    • trilium-no-cert-check: Starts Trilium without validating + TLS certificates, useful if connecting to a server with a self-signed + certificate. +
        +
      • Alternatively, set the NODE_TLS_REJECT_UNAUTHORIZED=0 environment + variable before starting Trilium.
      • +
      +
    • +
    • trilium-portable: Launches Trilium in portable mode, where + the data directory is created within + the application's directory, making it easy to move the entire setup.
    • +
    • trilium-safe-mode: Boots Trilium in "safe mode," disabling + any startup scripts that might cause the application to crash.
    • +
    +

    Synchronization

    +

    For Trilium desktp users who wish to synchronize their data with a server + instance, refer to the Synchronization guide + for detailed instructions.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Mobile Frontend.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Mobile Frontend.html index 3922d9bbf..6446279a9 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Mobile Frontend.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Mobile Frontend.html @@ -1,57 +1,37 @@ - - - - - - - - Mobile Frontend - - - -
    -

    Mobile Frontend

    - -
    -

    Trilium (server edition) has a - mobile web frontend which is optimized for touch based devices - smartphones - and tablets. It is activated automatically during login process based on - browser detection.

    -

    Mobile frontend is limited in features compared to full desktop frontend. - See below for more details on this.

    -

    Note that this is not an Android/iOS app, this is just mobile friendly - web page served on the server edition.

    -

    Screenshots

    -

    Mobile phone

    -

    - -

    -

    Tablet

    -

    - -

    -

    Limitations

    -

    Mobile frontend provides only some of the features of the full desktop - frontend:

    -
      -
    • it is possible to browse the whole note tree, read and edit all types - of notes, but you can create only text notes
    • -
    • reading and editing protected notes is - possible, but creating them is not supported
    • -
    • editing options is not supported
    • -
    • cloning notes is not supported
    • -
    • uploading file attachments is not supported
    • -
    -

    Forcing mobile/desktop frontend

    -

    Trilium decides automatically whether to use mobile or desktop frontend. - If this is not appropriate, you can use ?mobile or ?desktop query - param on login page (Note: you might need to log out).

    -

    Scripting

    -

    You can alter the behavior with scripts just - like for normal frontend. For script notes to be executed, they need to - have labeled #run=mobileStartup.

    -
    -
    - - - \ No newline at end of file +

    Trilium (server edition) has a + mobile web frontend which is optimized for touch based devices - smartphones + and tablets. It is activated automatically during login process based on + browser detection.

    +

    Mobile frontend is limited in features compared to full desktop frontend. + See below for more details on this.

    +

    Note that this is not an Android/iOS app, this is just mobile friendly + web page served on the server edition.

    +

    Screenshots

    +

    Mobile phone

    +

    + +

    +

    Tablet

    +

    + +

    +

    Limitations

    +

    Mobile frontend provides only some of the features of the full desktop + frontend:

    +
      +
    • it is possible to browse the whole note tree, read and edit all types + of notes, but you can create only text notes
    • +
    • reading and editing protected notes is + possible, but creating them is not supported
    • +
    • editing options is not supported
    • +
    • cloning notes is not supported
    • +
    • uploading file attachments is not supported
    • +
    +

    Forcing mobile/desktop frontend

    +

    Trilium decides automatically whether to use mobile or desktop frontend. + If this is not appropriate, you can use ?mobile or ?desktop query + param on login page (Note: you might need to log out).

    +

    Scripting

    +

    You can alter the behavior with scripts just + like for normal frontend. For script notes to be executed, they need to + have labeled #run=mobileStartup.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation.html index 62d4637d5..b82d3b1c7 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation.html @@ -1,67 +1,52 @@ - - - - - - - - Server Installation - - - -
    -

    Server Installation

    - -
    -

    This guide outlines the steps to install Trilium on your own server. You - might consider this option if you want to set up synchronization or - use Trilium in a browser - accessible from anywhere.

    -

    Installation Options

    -

    There are several ways to install Trilium on a server, each with its own - advantages:

    - -

    The server installation includes both web and mobile frontends.

    -

    Configuration

    -

    After setting up your server installation, you may want to configure settings - such as the port or enable TLS. Configuration - is managed via the Trilium config.ini file, which is located - in the data directory by default. - To begin customizing your setup, copy the provided config-sample.ini file - with default values to config.ini.

    -

    You can also review the configuration file - to provide all config.ini values as environment variables instead.

    -

    Config Location

    -

    By default, config.ini, the database, - and other important Trilium data files are stored in the data directory. - If you prefer a different location, you can change it by setting the TRILIUM_DATA_DIR environment - variable:

    export TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data
    -

    Disabling Authentication

    -

    If you are running Trilium on localhost only or if authentication is handled - by another component, you can disable Trilium’s authentication by adding - the following to config.ini:

    [General]
    +

    This guide outlines the steps to install Trilium on your own server. You + might consider this option if you want to set up synchronization or + use Trilium in a browser - accessible from anywhere.

    +

    Installation Options

    +

    There are several ways to install Trilium on a server, each with its own + advantages:

    + +

    The server installation includes both web and mobile frontends.

    +

    Configuration

    +

    After setting up your server installation, you may want to configure settings + such as the port or enable TLS. Configuration + is managed via the Trilium config.ini file, which is located + in the data directory by default. + To begin customizing your setup, copy the provided config-sample.ini file + with default values to config.ini.

    +

    You can also review the configuration file + to provide all config.ini values as environment variables instead.

    +

    Config Location

    +

    By default, config.ini, the database, + and other important Trilium data files are stored in the data directory. + If you prefer a different location, you can change it by setting the TRILIUM_DATA_DIR environment + variable:

    export TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data
    +

    Disabling Authentication

    +

    If you are running Trilium on localhost only or if authentication is handled + by another component, you can disable Trilium’s authentication by adding + the following to config.ini:

    [General]
     noAuthentication=true
    -

    Reverse Proxy Setup

    -

    To configure a reverse proxy for Trilium, you can use either nginx or Apache.

    -

    nginx

    -

    Add the following configuration to your nginx setup to proxy - requests to Trilium:

    location /trilium/ {
    +

    Reverse Proxy Setup

    +

    To configure a reverse proxy for Trilium, you can use either nginx or Apache.

    +

    nginx

    +

    Add the following configuration to your nginx setup to proxy + requests to Trilium:

    location /trilium/ {
         proxy_pass http://127.0.0.1:8080/;
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
    @@ -69,12 +54,7 @@ noAuthentication=true
    proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }
    -

    To avoid limiting the size of payloads, include this in the server {} block:

    # Set to 0 for unlimited. Default is 1M.
    +

    To avoid limiting the size of payloads, include this in the server {} block:

    # Set to 0 for unlimited. Default is 1M.
     client_max_body_size 0;
    -

    Apache

    -

    For an Apache setup, refer to the Apache proxy setup guide.

    -
    -
    - - - \ No newline at end of file +

    Apache

    +

    For an Apache setup, refer to the Apache proxy setup guide.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually.html index 7dd7062d8..8c9b34051 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually.html @@ -1,42 +1,27 @@ - - - - - - - - Manually - - - -
    -

    Manually

    - -
    - -

    Requirements

    -

    Trilium is a node.js application. Supported (tested) version of node.js - is latest 14.X.X and 16.X.X. Trilium might work with older versions as - well.

    -

    You can check your node version with this command (node.js needs to be - installed):

    node --version
    -

    If your Linux distribution has only an outdated version of node.js, you - can take a look at the installation instruction on node.js website, which - covers most popular distributions.

    -

    Dependencies

    -

    There are some dependencies required. You can see command for Debian and - its derivatives (like Ubuntu) below:

    sudo apt install libpng16-16 libpng-dev pkg-config autoconf libtool build-essential nasm libx11-dev libxkbfile-dev
    -

    Installation

    -

    Download

    -

    You can either download source code zip/tar from https://github.com/TriliumNext/Notes/releases/latest.

    -

    For the latest version including betas, clone Git repository from master branch with:

    git clone -b master https://github.com/triliumnext/notes.git
    -

    Installation

    cd trilium
    +
    +

    Requirements

    +

    Trilium is a node.js application. Supported (tested) version of node.js + is latest 14.X.X and 16.X.X. Trilium might work with older versions as + well.

    +

    You can check your node version with this command (node.js needs to be + installed):

    node --version
    +

    If your Linux distribution has only an outdated version of node.js, you + can take a look at the installation instruction on node.js website, which + covers most popular distributions.

    +

    Dependencies

    +

    There are some dependencies required. You can see command for Debian and + its derivatives (like Ubuntu) below:

    sudo apt install libpng16-16 libpng-dev pkg-config autoconf libtool build-essential nasm libx11-dev libxkbfile-dev
    +

    Installation

    +

    Download

    +

    You can either download source code zip/tar from https://github.com/TriliumNext/Notes/releases/latest.

    +

    For the latest version including betas, clone Git repository from master branch with:

    git clone -b master https://github.com/triliumnext/notes.git
    +

    Installation

    cd trilium
     
     # download all node dependencies
     npm install
    @@ -46,18 +31,13 @@ npm rebuild
     
     # bundles & minifies frontend JavaScript
     npm run webpack
    -

    Run

    cd trilium
    +

    Run

    cd trilium
     
     # using nohup to make sure trilium keeps running after user logs out
     nohup TRILIUM_ENV=dev node src/www &
    -

    The application by default starts up on port 8080, so you can open your - browser and navigate to http://localhost:8080 to - access Trilium (replace "localhost" with your hostname).

    -

    TLS

    -

    Don't forget to configure TLS which - is required for secure usage!

    -
    -
    - - - \ No newline at end of file +

    The application by default starts up on port 8080, so you can open your + browser and navigate to http://localhost:8080 to + access Trilium (replace "localhost" with your hostname).

    +

    TLS

    +

    Don't forget to configure TLS which + is required for secure usage!

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Multiple server instances.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Multiple server instances.html index 12dd63e38..91a0d2241 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Multiple server instances.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Multiple server instances.html @@ -1,45 +1,25 @@ - - - - - - - - Multiple server instances - - - -
    -

    Multiple server instances

    - -
    -

    Trilium does not support multiple users. In order to have two or more - persons with their own set of notes, multiple server instances must be - set up. It is also not possible to use multiple sync servers.

    -

    To allow multiple server instances on a single physical server:

    -
      -
    • -

      For Packaged version for Linux or  - Manually, if starting the server manually just specify a different - port and data directory per instance:

      TRILIUM_NETWORK_PORT=8080 TRILIUM_DATA_DIR=/path/to/your/data-dir-A /opt/trilium/trilium.sh
      -

      For a second instance:

      TRILIUM_NETWORK_PORT=8081 TRILIUM_DATA_DIR=/path/to/your/data-dir-B /opt/trilium/trilium.sh
      -

      If using systemd, then set the environment variables in the service configuration.

      -
    • -
    • -

      For Using Docker, - simply use two different containers, each with their own port binding and - data directory.

      -
    • -
    • -

      For On NixOS, - the only possible way is to use Docker OCI containers or at least one NixOS - container with its own service definition.

      -
    • -
    -

    For support or additional context, see the related GitHub Discussion.

    -
    -
    - - - \ No newline at end of file +

    Trilium does not support multiple users. In order to have two or more + persons with their own set of notes, multiple server instances must be + set up. It is also not possible to use multiple sync servers.

    +

    To allow multiple server instances on a single physical server:

    +
      +
    • +

      For Packaged version for Linux or  + Manually, if starting the server manually just specify a different + port and data directory per instance:

      TRILIUM_NETWORK_PORT=8080 TRILIUM_DATA_DIR=/path/to/your/data-dir-A /opt/trilium/trilium.sh
      +

      For a second instance:

      TRILIUM_NETWORK_PORT=8081 TRILIUM_DATA_DIR=/path/to/your/data-dir-B /opt/trilium/trilium.sh
      +

      If using systemd, then set the environment variables in the service configuration.

      +
    • +
    • +

      For Using Docker, + simply use two different containers, each with their own port binding and + data directory.

      +
    • +
    • +

      For On NixOS, + the only possible way is to use Docker OCI containers or at least one NixOS + container with its own service definition.

      +
    • +
    +

    For support or additional context, see the related GitHub Discussion.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/On NixOS.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/On NixOS.html index d77e076ab..b965f62fc 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/On NixOS.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/On NixOS.html @@ -1,23 +1,8 @@ - - - - - - - - On NixOS - - - -
    -

    On NixOS

    - -
    -

    This page describes configuring the Trilium module included in NixOS.

    -

    Requirements

    -

    NixOS installation.

    -

    Configuration

    -

    Add this to your configuration.nix:

    services.trilium-server.enable = true;
    +

    This page describes configuring the Trilium module included in NixOS.

    +

    Requirements

    +

    NixOS installation.

    +

    Configuration

    +

    Add this to your configuration.nix:

    services.trilium-server.enable = true;
     
     # default data directory: /var/lib/trilium
     #services.trilium-server.dataDir = "/var/lib/trilium-sync-server";
    @@ -25,11 +10,6 @@
     # default bind address: 127.0.0.1, port 8080
     #services.trilium-server.host = "0.0.0.0";
     #services.trilium-server.port = 12783;
    -

    Uncomment any option you would like to change.

    -

    See the NixOS options list for - more options (including nginx reverse proxy configuration).

    -
    -
    - - - \ No newline at end of file +

    Uncomment any option you would like to change.

    +

    See the NixOS options list for + more options (including nginx reverse proxy configuration).

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux.html index 57cfa4168..fb75e87d3 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux.html @@ -1,52 +1,37 @@ - - - - - - - - Packaged version for Linux - - - -
    -

    Packaged version for Linux

    - -
    -

    This is essentially Trilium sources + node modules + node.js runtime packaged - into one 7z file.

    -

    Steps

    -
      -
    • SSH into your server
    • -
    • use wget (or curl) to download latest TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz (notice -Server suffix) - on your server.
    • -
    • unpack the archive, e.g. using tar -xf -d TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz -
    • -
    • cd trilium-linux-x64-server -
    • -
    • ./trilium.sh -
    • -
    • you can open the browser and open http://[your-server-hostname]:8080 and - you should see Trilium initialization page
    • -
    -

    The problem with above steps is that once you close the SSH connection, - the Trilium process is terminated. To avoid that, you have two options:

    -
      -
    • Kill it (with e.g. Ctrl + C) and run again like this: nohup ./trilium &.
    • -
    • Configure systemd to automatically run Trilium in the background on every - boot
    • -
    -

    Configure Trilium to auto-run on boot with systemd

    -
      -
    • After downloading, extract and move Trilium:
    • -
    tar -xvf TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz
    +

    This is essentially Trilium sources + node modules + node.js runtime packaged + into one 7z file.

    +

    Steps

    +
      +
    • SSH into your server
    • +
    • use wget (or curl) to download latest TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz (notice -Server suffix) + on your server.
    • +
    • unpack the archive, e.g. using tar -xf -d TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz +
    • +
    • cd trilium-linux-x64-server +
    • +
    • ./trilium.sh +
    • +
    • you can open the browser and open http://[your-server-hostname]:8080 and + you should see Trilium initialization page
    • +
    +

    The problem with above steps is that once you close the SSH connection, + the Trilium process is terminated. To avoid that, you have two options:

    +
      +
    • Kill it (with e.g. Ctrl + C) and run again like this: nohup ./trilium &.
    • +
    • Configure systemd to automatically run Trilium in the background on every + boot
    • +
    +

    Configure Trilium to auto-run on boot with systemd

    +
      +
    • After downloading, extract and move Trilium:
    • +
    tar -xvf TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz
     sudo mv trilium-linux-x64-server /opt/trilium
    -
      -
    • Create the service:
    • -
    sudo nano /etc/systemd/system/trilium.service
    -
      -
    • Paste this into the file (replace the user and group as needed):
    • -
    [Unit]
    +
      +
    • Create the service:
    • +
    sudo nano /etc/systemd/system/trilium.service
    +
      +
    • Paste this into the file (replace the user and group as needed):
    • +
    [Unit]
     Description=Trilium Daemon
     After=syslog.target network.target
     
    @@ -63,26 +48,21 @@ Restart=always
     
     [Install]
     WantedBy=multi-user.target
    -
      -
    • Save the file (CTRL-S) and exit (CTRL-X)
    • -
    • Enable and launch the service:
    • -
    sudo systemctl enable --now -q trilium
    -
      -
    • You can now open a browser to http://[your-server-hostname]:8080 and you - should see the Trilium initialization page.
    • -
    -

    Common issues

    -

    Outdated glibc

    Error: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /var/www/virtual/.../node_modules/@mlink/scrypt/build/Release/scrypt.node)
    +
      +
    • Save the file (CTRL-S) and exit (CTRL-X)
    • +
    • Enable and launch the service:
    • +
    sudo systemctl enable --now -q trilium
    +
      +
    • You can now open a browser to http://[your-server-hostname]:8080 and you + should see the Trilium initialization page.
    • +
    +

    Common issues

    +

    Outdated glibc

    Error: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /var/www/virtual/.../node_modules/@mlink/scrypt/build/Release/scrypt.node)
         at Object.Module._extensions..node (module.js:681:18)
         at Module.load (module.js:565:32)
         at tryModuleLoad (module.js:505:12)
    -

    If you get an error like this, you need to either upgrade your glibc (typically - by upgrading to up-to-date distribution version) or use some other server installation method.

    -

    TLS

    -

    Don't forget to configure TLS, which - is required for secure usage!

    -
    -
    - - - \ No newline at end of file +

    If you get an error like this, you need to either upgrade your glibc (typically + by upgrading to up-to-date distribution version) or use some other server installation method.

    +

    TLS

    +

    Don't forget to configure TLS, which + is required for secure usage!

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.html index 1ce6b7dc1..72b77aef3 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.html @@ -1,99 +1,79 @@ - - - - - - - - Using Docker - - - -
    -

    Using Docker

    - -
    -

    Official docker images are published on docker hub for AMD64, ARMv7 and ARM64/v8: - https://hub.docker.com/r/triliumnext/notes/ -

    -

    Prerequisites

    -

    Ensure Docker is installed on your system.

    -

    If you need help installing Docker, reference the Docker Installation Docs -

    -

    Note: Trilium's Docker container requires root privileges - to operate correctly.

    - -

    Running with Docker Compose

    -

    Grab the latest docker-compose.yml:

    wget https://raw.githubusercontent.com/TriliumNext/Notes/master/docker-compose.yml
    -

    Optionally, edit the docker-compose.yml file to configure the - container settings prior to starting it. Unless configured otherwise, the - data directory will be ~/trilium-data and the container will - be accessible at port 8080.

    -

    Start the container:

    -

    Run the following command to start the container in the background:

    docker compose up -d
    -

    Running without Docker Compose / Further Configuration

    -

    Pulling the Docker Image

    -

    To pull the image, use the following command, replacing [VERSION] with - the desired version or tag, such as v0.91.6 or just latest. - (See published tag names at https://hub.docker.com/r/triliumnext/notes/tags.):

    docker pull triliumnext/notes:v0.91.6
    -

    Warning: Avoid using the "latest" tag, as it may automatically - upgrade your instance to a new minor version, potentially disrupting sync - setups or causing other issues.

    -

    Preparing the Data Directory

    -

    Trilium requires a directory on the host system to store its data. This - directory must be mounted into the Docker container with write permissions.

    -

    Running the Docker Container

    -

    Local Access Only

    -

    Run the container to make it accessible only from the localhost. This - setup is suitable for testing or when using a prox ay server like Nginx - or Apache.

    sudo docker run -t -i -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION]
    -
      -
    1. Verify the container is running using docker ps.
    2. -
    3. Access Trilium via a web browser at 127.0.0.1:8080.
    4. -
    -

    Local Network Access

    -

    To make the container accessible only on your local network, first create - a new Docker network:

    docker network create -d macvlan -o parent=eth0 --subnet 192.168.2.0/24 --gateway 192.168.2.254 --ip-range 192.168.2.252/27 mynet
    -

    Then, run the container with the network settings:

    docker run --net=mynet -d -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:-latest
    -

    To set a different user ID (UID) and group ID (GID) for the saved data, - use the USER_UID and USER_GID environment variables:

    docker run --net=mynet -d -p 127.0.0.1:8080:8080 -e "USER_UID=1001" -e "USER_GID=1001" -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:-latest
    -

    Find the local IP address using docker inspect [container_name] and - access the service from devices on the local network.

    docker ps
    +

    Official docker images are published on docker hub for AMD64, ARMv7 and ARM64/v8: + https://hub.docker.com/r/triliumnext/notes/ +

    +

    Prerequisites

    +

    Ensure Docker is installed on your system.

    +

    If you need help installing Docker, reference the Docker Installation Docs +

    +

    Note: Trilium's Docker container requires root privileges + to operate correctly.

    + +

    Running with Docker Compose

    +

    Grab the latest docker-compose.yml:

    wget https://raw.githubusercontent.com/TriliumNext/Notes/master/docker-compose.yml
    +

    Optionally, edit the docker-compose.yml file to configure the + container settings prior to starting it. Unless configured otherwise, the + data directory will be ~/trilium-data and the container will + be accessible at port 8080.

    +

    Start the container:

    +

    Run the following command to start the container in the background:

    docker compose up -d
    +

    Running without Docker Compose / Further Configuration

    +

    Pulling the Docker Image

    +

    To pull the image, use the following command, replacing [VERSION] with + the desired version or tag, such as v0.91.6 or just latest. + (See published tag names at https://hub.docker.com/r/triliumnext/notes/tags.):

    docker pull triliumnext/notes:v0.91.6
    +

    Warning: Avoid using the "latest" tag, as it may automatically + upgrade your instance to a new minor version, potentially disrupting sync + setups or causing other issues.

    +

    Preparing the Data Directory

    +

    Trilium requires a directory on the host system to store its data. This + directory must be mounted into the Docker container with write permissions.

    +

    Running the Docker Container

    +

    Local Access Only

    +

    Run the container to make it accessible only from the localhost. This + setup is suitable for testing or when using a prox ay server like Nginx + or Apache.

    sudo docker run -t -i -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION]
    +
      +
    1. Verify the container is running using docker ps.
    2. +
    3. Access Trilium via a web browser at 127.0.0.1:8080.
    4. +
    +

    Local Network Access

    +

    To make the container accessible only on your local network, first create + a new Docker network:

    docker network create -d macvlan -o parent=eth0 --subnet 192.168.2.0/24 --gateway 192.168.2.254 --ip-range 192.168.2.252/27 mynet
    +

    Then, run the container with the network settings:

    docker run --net=mynet -d -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:-latest
    +

    To set a different user ID (UID) and group ID (GID) for the saved data, + use the USER_UID and USER_GID environment variables:

    docker run --net=mynet -d -p 127.0.0.1:8080:8080 -e "USER_UID=1001" -e "USER_GID=1001" -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:-latest
    +

    Find the local IP address using docker inspect [container_name] and + access the service from devices on the local network.

    docker ps
     docker inspect [container_name]
    -

    Global Access

    -

    To allow access from any IP address, run the container as follows:

    docker run -d -p 0.0.0.0:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION]
    -

    Stop the container with docker stop <CONTAINER ID>, - where the container ID is obtained from docker ps.

    -

    Custom Data Directory

    -

    For a custom data directory, use:

    -v ~/YourOwnDirectory:/home/node/trilium-data triliumnext/notes:[VERSION]
    -

    If you want to run your instance in a non-default way, please use the - volume switch as follows: -v ~/YourOwnDirectory:/home/node/trilium-data triliumnext/notes:<VERSION>. - It is important to be aware of how Docker works for volumes, with the first - path being your own and the second the one to virtually bind to. https://docs.docker.com/storage/volumes/ The - path before the colon is the host directory, and the path after the colon - is the container's path. More details can be found in the Docker Volumes Documentation.

    -

    Reverse Proxy

    -
      -
    1. Nginx -
    2. -
    3. Apache -
    4. -
    -

    Note on --user Directive

    -

    The --user directive is unsupported. Instead, use the USER_UID and USER_GID environment - variables to set the appropriate user and group IDs.

    -

    Note on timezones

    -

    If you are having timezone issues and you are not using docker-compose, - you may need to add a TZ environment variable with the TZ identifier of - your local timezone.

    -
    -
    - - - \ No newline at end of file +

    Global Access

    +

    To allow access from any IP address, run the container as follows:

    docker run -d -p 0.0.0.0:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION]
    +

    Stop the container with docker stop <CONTAINER ID>, + where the container ID is obtained from docker ps.

    +

    Custom Data Directory

    +

    For a custom data directory, use:

    -v ~/YourOwnDirectory:/home/node/trilium-data triliumnext/notes:[VERSION]
    +

    If you want to run your instance in a non-default way, please use the + volume switch as follows: -v ~/YourOwnDirectory:/home/node/trilium-data triliumnext/notes:<VERSION>. + It is important to be aware of how Docker works for volumes, with the first + path being your own and the second the one to virtually bind to. https://docs.docker.com/storage/volumes/ The + path before the colon is the host directory, and the path after the colon + is the container's path. More details can be found in the Docker Volumes Documentation.

    +

    Reverse Proxy

    +
      +
    1. Nginx +
    2. +
    3. Apache +
    4. +
    +

    Note on --user Directive

    +

    The --user directive is unsupported. Instead, use the USER_UID and USER_GID environment + variables to set the appropriate user and group IDs.

    +

    Note on timezones

    +

    If you are having timezone issues and you are not using docker-compose, + you may need to add a TZ environment variable with the TZ identifier of + your local timezone.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Kubernetes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Kubernetes.html index 4bef27067..0fb29eb7e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Kubernetes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Kubernetes.html @@ -1,53 +1,33 @@ - - - - - - - - Using Kubernetes - - - -
    -

    Using Kubernetes

    - -
    -

    As Trilium can be run in Docker it also can be deployed in Kubernetes. - You can either use our Helm chart, a community Helm chart, or roll your - own Kubernetes deployment.

    -

    The recommended way is to use a Helm chart.

    -

    Root privileges

    - -

    The Trilium docker container needs to be run with root privileges. The - node process inside the container will be started with reduced privileges - (uid:gid 1000:1000) after some initialization logic. Please make sure that - you don't use a security context (PodSecurityContext) which changes the - user ID. To use a different uid:gid for file storage and the application, - please use the USER_UID & USER_GID environment - variables.

    -

    The docker image will also fix the permissions of /home/node so - you don't have to use an init container.

    -

    Helm Charts

    -

    Official Helm chart from - TriliumNext Unofficial helm chart by ohdearaugustin: - https://github.com/ohdearaugustin/charts -

    -

    Adding a Helm repository

    -

    Below is an example of how

    helm repo add trilium https://triliumnext.github.io/helm-charts
    +

    As Trilium can be run in Docker it also can be deployed in Kubernetes. + You can either use our Helm chart, a community Helm chart, or roll your + own Kubernetes deployment.

    +

    The recommended way is to use a Helm chart.

    +

    Root privileges

    + +

    The Trilium docker container needs to be run with root privileges. The + node process inside the container will be started with reduced privileges + (uid:gid 1000:1000) after some initialization logic. Please make sure that + you don't use a security context (PodSecurityContext) which changes the + user ID. To use a different uid:gid for file storage and the application, + please use the USER_UID & USER_GID environment + variables.

    +

    The docker image will also fix the permissions of /home/node so + you don't have to use an init container.

    +

    Helm Charts

    +

    Official Helm chart from + TriliumNext Unofficial helm chart by ohdearaugustin: + https://github.com/ohdearaugustin/charts +

    +

    Adding a Helm repository

    +

    Below is an example of how

    helm repo add trilium https://triliumnext.github.io/helm-charts
     "trilium" has been added to your repositories
    -

    How to install a chart

    -

    After reviewing the values.yaml from - the Helm chart, modifying as required and then creating your own:

    helm install --create-namespace --namespace trilium trilium trilium/trilium -f values.yaml
    -

    For more information on using Helm, please refer to the Helm documentation, - or create a Discussion in the TriliumNext GitHub Organization.

    -
    -
    - - - \ No newline at end of file +

    How to install a chart

    +

    After reviewing the values.yaml from + the Helm chart, modifying as required and then creating your own:

    helm install --create-namespace --namespace trilium trilium trilium/trilium -f values.yaml
    +

    For more information on using Helm, please refer to the Helm documentation, + or create a Discussion in the TriliumNext GitHub Organization.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache.html index e90b4f6fd..ffb2f921d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache.html @@ -1,43 +1,28 @@ - - - - - - - - Apache - - - -
    -

    Apache

    - -
    -

    I've assumed you have created a DNS A record for trilium.yourdomain.com that - you want to use for your Trilium server.

    -
      -
    1. -

      Download docker image and create container

       docker pull triliumnext/notes:[VERSION]
      +

      I've assumed you have created a DNS A record for trilium.yourdomain.com that + you want to use for your Trilium server.

      +
        +
      1. +

        Download docker image and create container

         docker pull triliumnext/notes:[VERSION]
          docker create --name trilium -t -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION]
        -
      2. -
      3. -

        Configure Apache proxy and websocket proxy

        -
          -
        1. -

          Enable apache proxy modules

           a2enmod ssl
          +  
        2. +
        3. +

          Configure Apache proxy and websocket proxy

          +
            +
          1. +

            Enable apache proxy modules

             a2enmod ssl
              a2enmod proxy
              a2enmod proxy_http
              a2enmod proxy_wstunnel
            -
          2. -
          3. -

            Create a new let's encrypt certificate

             sudo certbot certonly -d trilium.mydomain.com
            -

            Choose standalone (2) and note the location of the created certificates - (typically /etc/letsencrypt/live/...)

            -
          4. -
          5. -

            Create a new virtual host file for apache (you may want to use apachectl -S to - determine the server root location, mine is /etc/apache2)

             sudo nano /etc/apache2/sites-available/trilium.yourdomain.com.conf
            -

            Paste (and customize) the following text into the configuration file

             
            +      
          6. +
          7. +

            Create a new let's encrypt certificate

             sudo certbot certonly -d trilium.mydomain.com
            +

            Choose standalone (2) and note the location of the created certificates + (typically /etc/letsencrypt/live/...)

            +
          8. +
          9. +

            Create a new virtual host file for apache (you may want to use apachectl -S to + determine the server root location, mine is /etc/apache2)

             sudo nano /etc/apache2/sites-available/trilium.yourdomain.com.conf
            +

            Paste (and customize) the following text into the configuration file

             
                  ServerName http://trilium.yourdomain.com
                  RewriteEngine on
                      RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
            @@ -55,23 +40,23 @@
                  SSLCertificateKeyFile /etc/letsencrypt/live/trilium.yourdomain.com/privkey.pem
                  Include /etc/letsencrypt/options-ssl-apache.conf
              
            -
          10. -
          11. -

            Enable the virtual host with sudo a2ensite trilium.yourdomain.com.conf -

            -
          12. -
          13. -

            Reload apache2 with sudo systemctl reload apache2 -

            -
          14. -
          -
        4. -
        5. -

          Create and enable a systemd service to start the docker container on boot

          -
            -
          1. -

            Create a new empty file called /lib/systemd/system/trilium.service with - the contents

             [Unit]
            +      
          2. +
          3. +

            Enable the virtual host with sudo a2ensite trilium.yourdomain.com.conf +

            +
          4. +
          5. +

            Reload apache2 with sudo systemctl reload apache2 +

            +
          6. +
          +
        6. +
        7. +

          Create and enable a systemd service to start the docker container on boot

          +
            +
          1. +

            Create a new empty file called /lib/systemd/system/trilium.service with + the contents

             [Unit]
              Description=Trilium Server
              Requires=docker.service
              After=docker.service
            @@ -83,17 +68,12 @@
             
              [Install]
              WantedBy=local.target
            -
          2. -
          3. -

            Install, enable and start service

             sudo systemctl daemon-reload
            +      
          4. +
          5. +

            Install, enable and start service

             sudo systemctl daemon-reload
              sudo systemctl enable trilium.service
              sudo systemctl start trilium.service
            -
          6. -
          -
        8. -
        -
    -
    - - - \ No newline at end of file + + + + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx.html index e31b49b8f..3ff97eb6a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx.html @@ -1,31 +1,16 @@ - - - - - - - - Nginx - - - -
    -

    Nginx

    - -
    -

    Configure Nginx proxy and HTTPS. The operating system here is Ubuntu 18.04.

    -
      -
    1. -

      Download Nginx and remove Apache2

      sudo apt-get install nginx
      +

      Configure Nginx proxy and HTTPS. The operating system here is Ubuntu 18.04.

      +
        +
      1. +

        Download Nginx and remove Apache2

        sudo apt-get install nginx
         sudo apt-get remove apache2
        -
      2. -
      3. -

        Create configure file

        cd /etc/nginx/conf.d
        +  
      4. +
      5. +

        Create configure file

        cd /etc/nginx/conf.d
         vim default.conf
        -
      6. -
      7. -

        Fill the file with the context shown below, part of the setting show be - changed. Then you can enjoy your web with HTTPS forced and proxy.

        # This part is for proxy and HTTPS configure
        +  
      8. +
      9. +

        Fill the file with the context shown below, part of the setting show be + changed. Then you can enjoy your web with HTTPS forced and proxy.

        # This part is for proxy and HTTPS configure
         server {
             listen 443 ssl;
             server_name trilium.example.net; #change trilium.example.net to your domain without HTTPS or HTTP.
        @@ -55,10 +40,5 @@ server {
                     server_name trilium.example.net; # change to your domain
                     return 301 https://$server_name$request_uri;
         }
        -
      10. -
      -
    -
    - - - \ No newline at end of file + + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.html index c06d38345..f9a809a86 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.html @@ -1,106 +1,86 @@ - - - - - - - - Multi-Factor Authentication - - - -
    -

    Multi-Factor Authentication

    - -
    -

    Note: This feature has not been merged yet, so it is not available. -

    -

    Multi-factor authentication (MFA) is a security process that requires - users to provide two or more verification factors to gain access to a system, - application, or account. This adds an extra layer of protection beyond - just using a password.

    -

    By requiring more than one verification method, MFA helps reduce the risk - of unauthorized access, even if someone has obtained your password. It’s - highly recommended for securing sensitive information stored in your notes.

    -

    Warning! OpenID and TOTP cannot be both used at the same time!

    -

    Log in with your Google Account with OpenID!

    -

    OpenID is a standardized way to let you log into websites using an account - from another service, like Google, to verify your identity.

    -

    Why Time-based One Time Passwords?

    -

    TOTP (Time-Based One-Time Password) is a security feature that generates - a unique, temporary code on your device, like a smartphone, which changes - every 30 seconds. You use this code, along with your password, to log into - your account, making it much harder for anyone else to access them.

    -

    Setup

    -

    TOTP

    -
      -
    1. -

      Start Trilium Notes normally.

      -
    2. -
    3. -

      Go to "Menu" -> "Options" -> "MFA"

      -
    4. -
    5. -

      Click the "Generate TOTP Secret" button

      -
    6. -
    7. -

      Copy the generated secret to your authentication app/extension

      -
    8. -
    9. -

      Set an environment variable "TOTP_SECRET" as the generated secret. Environment - variables can be set with a .env file in the root directory, by defining - them in the command line, or with a docker container.

      # .env in the project root directory
      +

      Note: This feature has not been merged yet, so it is not available. +

      +

      Multi-factor authentication (MFA) is a security process that requires + users to provide two or more verification factors to gain access to a system, + application, or account. This adds an extra layer of protection beyond + just using a password.

      +

      By requiring more than one verification method, MFA helps reduce the risk + of unauthorized access, even if someone has obtained your password. It’s + highly recommended for securing sensitive information stored in your notes.

      +

      Warning! OpenID and TOTP cannot be both used at the same time!

      +

      Log in with your Google Account with OpenID!

      +

      OpenID is a standardized way to let you log into websites using an account + from another service, like Google, to verify your identity.

      +

      Why Time-based One Time Passwords?

      +

      TOTP (Time-Based One-Time Password) is a security feature that generates + a unique, temporary code on your device, like a smartphone, which changes + every 30 seconds. You use this code, along with your password, to log into + your account, making it much harder for anyone else to access them.

      +

      Setup

      +

      TOTP

      +
        +
      1. +

        Start Trilium Notes normally.

        +
      2. +
      3. +

        Go to "Menu" -> "Options" -> "MFA"

        +
      4. +
      5. +

        Click the "Generate TOTP Secret" button

        +
      6. +
      7. +

        Copy the generated secret to your authentication app/extension

        +
      8. +
      9. +

        Set an environment variable "TOTP_SECRET" as the generated secret. Environment + variables can be set with a .env file in the root directory, by defining + them in the command line, or with a docker container.

        # .env in the project root directory
         TOTP_ENABLED="true"
         TOTP_SECRET="secret"
        # Terminal/CLI
         export TOTP_ENABLED="true"
         export TOTP_SECRET="secret"
        # Docker
         docker run -p 8080:8080 -v ~/trilium-data:/home/node/trilium-data -e TOTP_ENABLED="true" -e TOTP_SECRET="secret" triliumnext/notes:[VERSION]
        -
      10. -
      11. -

        Restart Trilium

        -
      12. -
      13. -

        Go to "Options" -> "MFA"

        -
      14. -
      15. -

        Click the "Generate Recovery Codes" button

        -
      16. -
      17. -

        Save the recovery codes. Recovery codes can be used once in place of the - TOTP if you loose access to your authenticator. After a rerecovery code - is used, it will show the unix timestamp when it was used in the MFA options - tab.

        -
      18. -
      19. -

        Load the secret into an authentication app like google authenticator

        -
      20. -
      -

      OpenID

      -

      Currently only compatible with Google. Other services like Authentik and Auth0 are planned on being added. -

      -

      In order to setup OpenID, you will need to setup a authentication provider. - This requires a bit of extra setup. Follow these instructions to - setup an OpenID service through google.

      -

      Set an environment variable "SSO_ENABLED" to true and add the client ID - and secret you obtained from google. Environment variables can be set with - a .env file in the root directory, by defining them in the command line, - or with a docker container.

      -

      .env File

      # .env in the project root directory
      +  
    10. +
    11. +

      Restart Trilium

      +
    12. +
    13. +

      Go to "Options" -> "MFA"

      +
    14. +
    15. +

      Click the "Generate Recovery Codes" button

      +
    16. +
    17. +

      Save the recovery codes. Recovery codes can be used once in place of the + TOTP if you loose access to your authenticator. After a rerecovery code + is used, it will show the unix timestamp when it was used in the MFA options + tab.

      +
    18. +
    19. +

      Load the secret into an authentication app like google authenticator

      +
    20. +
    +

    OpenID

    +

    Currently only compatible with Google. Other services like Authentik and Auth0 are planned on being added. +

    +

    In order to setup OpenID, you will need to setup a authentication provider. + This requires a bit of extra setup. Follow these instructions to + setup an OpenID service through google.

    +

    Set an environment variable "SSO_ENABLED" to true and add the client ID + and secret you obtained from google. Environment variables can be set with + a .env file in the root directory, by defining them in the command line, + or with a docker container.

    +

    .env File

    # .env in the project root directory
     SSO_ENABLED="true"
     BASE_URL="http://localhost:8080"
     CLIENT_ID=
     SECRET=
    -

    Environment variable (linux)

    export SSO_ENABLED="true"
    +

    Environment variable (linux)

    export SSO_ENABLED="true"
     export BASE_URL="http://localhost:8080"
     export CLIENT_ID=
     export SECRET=
    -

    Docker

    docker run -d -p 8080:8080 -v ~/trilium-data:/home/node/trilium-data -e SSO_ENABLED="true" -e BASE_URL="http://localhost:8080" -e CLIENT_ID= -e SECRET= triliumnext/notes:[VERSION]
    -

    After you restart Trilium Notes, you will be redirected to Google's account - selection page. Login to an account and Trilium Next will bind to that - account, allowing you to login with it.

    -

    You can now login using your google account.

    -
    -
    - - - \ No newline at end of file +

    Docker

    docker run -d -p 8080:8080 -v ~/trilium-data:/home/node/trilium-data -e SSO_ENABLED="true" -e BASE_URL="http://localhost:8080" -e CLIENT_ID= -e SECRET= triliumnext/notes:[VERSION]
    +

    After you restart Trilium Notes, you will be redirected to Google's account + selection page. Login to an account and Trilium Next will bind to that + account, allowing you to login with it.

    +

    You can now login using your google account.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.html index 573d07e7e..ead34359c 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.html @@ -1,38 +1,23 @@ - - - - - - - - TLS Configuration - - - -
    -

    TLS Configuration

    - -
    -

    Configuring TLS is essential for server installation in - Trilium. This guide details the steps to set up TLS within Trilium itself.

    -

    For a more robust solution, consider using TLS termination with a reverse - proxy (recommended, e.g., Nginx). You can follow a guide like this for - such setups.

    -

    Obtaining a TLS Certificate

    -

    You have two options for obtaining a TLS certificate:

    -
      -
    • Recommended: Obtain a TLS certificate signed by a root - certificate authority. For personal use, Let's Encrypt is - an excellent choice. It is free, automated, and straightforward. Certbot - can facilitate automatic TLS setup.
    • -
    • Generate a self-signed certificate. This option is not recommended due - to the additional complexity of importing the certificate into all machines - connecting to the server.
    • -
    -

    Modifying config.ini

    -

    Once you have your certificate, modify the config.ini file - in the data directory to configure - Trilium to use it:

    [Network]
    +

    Configuring TLS is essential for server installation in + Trilium. This guide details the steps to set up TLS within Trilium itself.

    +

    For a more robust solution, consider using TLS termination with a reverse + proxy (recommended, e.g., Nginx). You can follow a guide like this for + such setups.

    +

    Obtaining a TLS Certificate

    +

    You have two options for obtaining a TLS certificate:

    +
      +
    • Recommended: Obtain a TLS certificate signed by a root + certificate authority. For personal use, Let's Encrypt is + an excellent choice. It is free, automated, and straightforward. Certbot + can facilitate automatic TLS setup.
    • +
    • Generate a self-signed certificate. This option is not recommended due + to the additional complexity of importing the certificate into all machines + connecting to the server.
    • +
    +

    Modifying config.ini

    +

    Once you have your certificate, modify the config.ini file + in the data directory to configure + Trilium to use it:

    [Network]
     port=8080
     # Set to true for TLS/SSL/HTTPS (secure), false for HTTP (insecure).
     https=true
    @@ -40,26 +25,21 @@ https=true
     # Relevant only if https=true
     certPath=/[username]/.acme.sh/[hostname]/fullchain.cer
     keyPath=/[username]/.acme.sh/[hostname]/example.com.key
    -

    You can also review the configuration file - to provide all config.ini values as environment variables instead.

    -

    The above example shows how this is set up in an environment where the - certificate was generated using Let's Encrypt's ACME utility. Your paths - may differ. For Docker installations, ensure these paths are within a volume - or another directory accessible by the Docker container, such as /home/node/trilium-data/[DIR IN DATA DIRECTORY].

    -

    After configuring config.ini, restart Trilium and access the - hostname using "https".

    -

    Self-Signed Certificate

    -

    If you opt to use a self-signed certificate for your server instance, - note that the desktop instance will not trust it by default.

    -

    To bypass this, disable certificate validation by setting the following - environment variable (for Linux):

    export NODE_TLS_REJECT_UNAUTHORIZED=0
    +

    You can also review the configuration file + to provide all config.ini values as environment variables instead.

    +

    The above example shows how this is set up in an environment where the + certificate was generated using Let's Encrypt's ACME utility. Your paths + may differ. For Docker installations, ensure these paths are within a volume + or another directory accessible by the Docker container, such as /home/node/trilium-data/[DIR IN DATA DIRECTORY].

    +

    After configuring config.ini, restart Trilium and access the + hostname using "https".

    +

    Self-Signed Certificate

    +

    If you opt to use a self-signed certificate for your server instance, + note that the desktop instance will not trust it by default.

    +

    To bypass this, disable certificate validation by setting the following + environment variable (for Linux):

    export NODE_TLS_REJECT_UNAUTHORIZED=0
     trilium
    -

    Trilium provides scripts to start in this mode, such as trilium-no-cert-check.bat for - Windows.

    -

    Warning: Disabling TLS certificate validation is insecure. - Proceed only if you fully understand the implications.

    -
    -
    - - - \ No newline at end of file +

    Trilium provides scripts to start in this mode, such as trilium-no-cert-check.bat for + Windows.

    +

    Warning: Disabling TLS certificate validation is insecure. + Proceed only if you fully understand the implications.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Synchronization.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Synchronization.html index 0946bc6a7..d277c52e8 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Synchronization.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Synchronization.html @@ -1,110 +1,90 @@ - - - - - - - - Synchronization - - - -
    -

    Synchronization

    - -
    -

    Trilium is an offline-first note-taking application that stores all data - locally on the desktop client. However, it also offers the option to set - up synchronization with a server instance, allowing multiple desktop clients - to sync with a central server. This creates a star-shaped topology:

    -

    - -

    -

    In this setup, a central server (referred to as the sync server) - and multiple client (or desktop) instances synchronize with - the sync server. Once configured, synchronization is automatic and ongoing, - requiring no manual intervention.

    -

    Setting Up Synchronization

    -

    Security Considerations

    -

    Setting up the server securely is critical and can be complex. It is crucial - to use a valid TLS certificate (HTTPS) - rather than an unencrypted HTTP connection to ensure security and avoid - potential vulnerabilities.

    -

    Synchronizing a Desktop Instance with a Sync Server

    -

    This method is used when you already have a desktop instance of Trilium - and want to set up a sync server on your web host.

    -
      -
    1. Server Deployment: Ensure your server instance is deployed - but uninitialized.
    2. -
    3. Desktop Configuration: Open your desktop instance, navigate - to Options -> Sync tab -> Sync configuration, and set the "Server - instance address" to your sync server's address. Click Save.
    4. -
    -

    - screenshot of the sync settings options modal -

    -
      -
    1. Testing Sync: Click the "Test sync" button to verify - the connection to the sync server. If successful, the client will start - pushing all data to the server instance. This process may take some time, - but you can continue using Trilium. Periodically check the server instance - to confirm when the sync is complete. Once finished, you should see the - login screen on the server.
    2. -
    -

    Synchronizing a Desktop Instance from a Sync Server

    -

    This method is used when you already have a sync server and want to configure - a new desktop instance to sync with it.

    -
      -
    1. Desktop Setup: Follow the desktop installation page.
    2. -
    3. Initial Configuration: When prompted, choose the option - to set up sync with a sync server.
    4. -
    -

    - screenshot of the sync from server setup page -

    -
      -
    1. Server Details: Configure the Trilium server address - and enter the correct username and password for authentication.
    2. -
    3. Finish Setup: Click the "Finish setup" button. If successful, - you will see the following screen:
    4. -
    -

    - screenshot of the sync page -

    -

    Once synchronization is complete, you will be automatically redirected - to the Trilium application.

    -

    Proxy Configuration

    -

    Two proxy setups are supported:

    -
      -
    • Explicit Proxy Configuration: Set the proxy server in - Options / Sync. Only unauthenticated proxy servers are supported.
    • -
    • System Proxy Settings: If no proxy server is explicitly - configured, Trilium will use the system proxy settings.
    • -
    -

    Troubleshooting

    -

    Date/Time Synchronization

    -

    For successful synchronization, both client and server must have the same - date and time, with a tolerance of up to five minutes.

    -

    Certificate Issues

    -

    When using TLS, Trilium will verify the server certificate. If verification - fails (e.g., due to self-signed certificates or certain corporate proxies), - you can run the Trilium client with the NODE_TLS_REJECT_UNAUTHORIZED environment - variable set to 0:

    export NODE_TLS_REJECT_UNAUTHORIZED=0
    -

    This will disable TLS certificate verification, significantly reducing - security and exposing the setup to MITM attacks. It is strongly recommended - to use a valid signed server certificate. Newer Trilium versions include - a script called trilium-no-cert-check.sh for this purpose.

    -

    Conflict Resolution

    -

    If you edit the same note on multiple instances before synchronization, - Trilium resolves conflicts by retaining the newer change and discarding - the older one. The older version remains accessible in note revisions, - allowing data recovery if needed.

    -

    Hash Check

    -

    After each synchronization, Trilium computes a hash of all synced data - on both the client and the sync server. If there is a discrepancy, Trilium - will automatically initiate a recovery mechanism to resolve the issue.

    -
    -
    - - - \ No newline at end of file +

    Trilium is an offline-first note-taking application that stores all data + locally on the desktop client. However, it also offers the option to set + up synchronization with a server instance, allowing multiple desktop clients + to sync with a central server. This creates a star-shaped topology:

    +

    + +

    +

    In this setup, a central server (referred to as the sync server) + and multiple client (or desktop) instances synchronize with + the sync server. Once configured, synchronization is automatic and ongoing, + requiring no manual intervention.

    +

    Setting Up Synchronization

    +

    Security Considerations

    +

    Setting up the server securely is critical and can be complex. It is crucial + to use a valid TLS certificate (HTTPS) + rather than an unencrypted HTTP connection to ensure security and avoid + potential vulnerabilities.

    +

    Synchronizing a Desktop Instance with a Sync Server

    +

    This method is used when you already have a desktop instance of Trilium + and want to set up a sync server on your web host.

    +
      +
    1. Server Deployment: Ensure your server instance is deployed + but uninitialized.
    2. +
    3. Desktop Configuration: Open your desktop instance, navigate + to Options -> Sync tab -> Sync configuration, and set the "Server + instance address" to your sync server's address. Click Save.
    4. +
    +

    + screenshot of the sync settings options modal +

    +
      +
    1. Testing Sync: Click the "Test sync" button to verify + the connection to the sync server. If successful, the client will start + pushing all data to the server instance. This process may take some time, + but you can continue using Trilium. Periodically check the server instance + to confirm when the sync is complete. Once finished, you should see the + login screen on the server.
    2. +
    +

    Synchronizing a Desktop Instance from a Sync Server

    +

    This method is used when you already have a sync server and want to configure + a new desktop instance to sync with it.

    +
      +
    1. Desktop Setup: Follow the desktop installation page.
    2. +
    3. Initial Configuration: When prompted, choose the option + to set up sync with a sync server.
    4. +
    +

    + screenshot of the sync from server setup page +

    +
      +
    1. Server Details: Configure the Trilium server address + and enter the correct username and password for authentication.
    2. +
    3. Finish Setup: Click the "Finish setup" button. If successful, + you will see the following screen:
    4. +
    +

    + screenshot of the sync page +

    +

    Once synchronization is complete, you will be automatically redirected + to the Trilium application.

    +

    Proxy Configuration

    +

    Two proxy setups are supported:

    +
      +
    • Explicit Proxy Configuration: Set the proxy server in + Options / Sync. Only unauthenticated proxy servers are supported.
    • +
    • System Proxy Settings: If no proxy server is explicitly + configured, Trilium will use the system proxy settings.
    • +
    +

    Troubleshooting

    +

    Date/Time Synchronization

    +

    For successful synchronization, both client and server must have the same + date and time, with a tolerance of up to five minutes.

    +

    Certificate Issues

    +

    When using TLS, Trilium will verify the server certificate. If verification + fails (e.g., due to self-signed certificates or certain corporate proxies), + you can run the Trilium client with the NODE_TLS_REJECT_UNAUTHORIZED environment + variable set to 0:

    export NODE_TLS_REJECT_UNAUTHORIZED=0
    +

    This will disable TLS certificate verification, significantly reducing + security and exposing the setup to MITM attacks. It is strongly recommended + to use a valid signed server certificate. Newer Trilium versions include + a script called trilium-no-cert-check.sh for this purpose.

    +

    Conflict Resolution

    +

    If you edit the same note on multiple instances before synchronization, + Trilium resolves conflicts by retaining the newer change and discarding + the older one. The older version remains accessible in note revisions, + allowing data recovery if needed.

    +

    Hash Check

    +

    After each synchronization, Trilium computes a hash of all synced data + on both the client and the sync server. If there is a discrepancy, Trilium + will automatically initiate a recovery mechanism to resolve the issue.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.html index 5b3406a72..224885034 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.html @@ -1,45 +1,25 @@ - - - - - - - - Upgrading TriliumNext - - - -
    -

    Upgrading TriliumNext

    - -
    -

    This document outlines the steps required to upgrade Trilium to a new - release version.

    -

    How to Upgrade

    -

    Trilium does not support built-in automatic upgrades; all updates must - be performed manually. The upgrade process varies depending on the installation - method:

    -
      -
    • Docker Server Installation: - Pull the new image and restart the container.
    • -
    • Other Installations: Download the latest version from - the release page and - replace the existing application files.
    • -
    -

    Database Compatibility and Migration

    -

    Upon startup, Trilium will automatically migrate the database to - the new version. Note that after migration, older versions of Trilium will - be unable to read the database. If you need to revert to a previous version - of Trilium and its database, you can restore the backup that - is created prior to migration.

    -

    Sync Compatibility

    -

    The synchronization protocol used - by Trilium is versioned, requiring all members of the sync cluster to use - the same protocol version. Therefore, when upgrading to a new version, - you may need to upgrade all instances in the sync cluster. Changes to the - sync protocol version are typically indicated on the release page.

    -
    -
    - - - \ No newline at end of file +

    This document outlines the steps required to upgrade Trilium to a new + release version.

    +

    How to Upgrade

    +

    Trilium does not support built-in automatic upgrades; all updates must + be performed manually. The upgrade process varies depending on the installation + method:

    +
      +
    • Docker Server Installation: + Pull the new image and restart the container.
    • +
    • Other Installations: Download the latest version from + the release page and + replace the existing application files.
    • +
    +

    Database Compatibility and Migration

    +

    Upon startup, Trilium will automatically migrate the database to + the new version. Note that after migration, older versions of Trilium will + be unable to read the database. If you need to revert to a previous version + of Trilium and its database, you can restore the backup that + is created prior to migration.

    +

    Sync Compatibility

    +

    The synchronization protocol used + by Trilium is versioned, requiring all members of the sync cluster to use + the same protocol version. Therefore, when upgrading to a new version, + you may need to upgrade all instances in the sync cluster. Changes to the + sync protocol version are typically indicated on the release page.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Web Clipper.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Web Clipper.html index e40e3847d..64c7b080a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Web Clipper.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Web Clipper.html @@ -1,62 +1,42 @@ - - - - - - - - Web Clipper - - - -
    -

    Web Clipper

    - -
    -

    - -

    -

    Trilium Web Clipper is a web browser extension which allows user to clip - text, screenshots, whole pages and short notes and save them directly to - Trilium Notes.

    -

    Project is hosted here.

    -

    Firefox and Chrome are supported browsers, but the chrome build should - work on other chromium based browsers as well.

    -

    Functionality

    -
      -
    • select text and clip it with the right-click context menu
    • -
    • click on an image or link and save it through context menu
    • -
    • save whole page from the popup or context menu
    • -
    • save screenshot (with crop tool) from either popup or context menu
    • -
    • create short text note from popup
    • -
    -

    Trilium will save these clippings as a new child note under a "clipper - inbox" note.

    -

    By default, that's the day note but - you can override that by setting the label clipperInbox, - on any other note.

    -

    If there's multiple clippings from the same page (and on the same day), - then they will be added to the same note.

    -

    Extension is available from: -

    - -

    Configuration

    -

    The extension needs to connect to a running Trilium instance. By default, - it scans a port range on the local computer to find a desktop Trilium instance.

    -

    It's also possible to configure the server address - if you don't run the desktop application, or want it to work without the - desktop application running.

    -

    Username

    -

    Older versions of Trilium (before 0.50) required username & password - to authenticate, but this is no longer the case. You may enter anything - in that field, it will not have any effect.

    -
    -
    - - - \ No newline at end of file +

    + +

    +

    Trilium Web Clipper is a web browser extension which allows user to clip + text, screenshots, whole pages and short notes and save them directly to + Trilium Notes.

    +

    Project is hosted here.

    +

    Firefox and Chrome are supported browsers, but the chrome build should + work on other chromium based browsers as well.

    +

    Functionality

    +
      +
    • select text and clip it with the right-click context menu
    • +
    • click on an image or link and save it through context menu
    • +
    • save whole page from the popup or context menu
    • +
    • save screenshot (with crop tool) from either popup or context menu
    • +
    • create short text note from popup
    • +
    +

    Trilium will save these clippings as a new child note under a "clipper + inbox" note.

    +

    By default, that's the day note but + you can override that by setting the label clipperInbox, + on any other note.

    +

    If there's multiple clippings from the same page (and on the same day), + then they will be added to the same note.

    +

    Extension is available from: +

    + +

    Configuration

    +

    The extension needs to connect to a running Trilium instance. By default, + it scans a port range on the local computer to find a desktop Trilium instance.

    +

    It's also possible to configure the server address + if you don't run the desktop application, or want it to work without the + desktop application running.

    +

    Username

    +

    Older versions of Trilium (before 0.50) required username & password + to authenticate, but this is no longer the case. You may enter anything + in that field, it will not have any effect.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types.html index 39729f2b9..711607951 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types.html @@ -1,152 +1,132 @@ - - - - - - - - Note Types - - - -
    -

    Note Types

    - -
    -

    One core features of Trilium is that it supports multiple types of notes, - depending on the need.

    -

    Creating a new note with a different type via the note tree

    -

    The default note type in Trilium (e.g. when creating a new note) is  - Text, since it's for general use.

    -

    To create a new note of a different type, head to the Note Tree and right click an existing - note where to place the new one and select:

    -
      -
    • Insert note after, to put the new note underneath the one selected.
    • -
    • Insert child note, to insert the note as a child of the selected - note.
    • -
    -

    - -

    -

    Creating a new note of a different type via add link or new tab

    -
      -
    • When adding a link in a Text note, type the desired title - of the new note and press Enter. Afterwards the type of the note will be - asked.
    • -
    • Similarly, when creating a new tab, type the desired title and press Enter.
    • -
    -

    Changing the type of a note

    -

    It is possible to change the type of a note after it has been created - via the Basic Properties tab in the Ribbon. Note that it's generally a - good idea to change the note type only if the note is empty. Can also be - used to edit the source of a note.

    -

    Supported note types

    -

    The following note types are supported by Trilium:

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Note TypeDescription
    Text - The default note type, which allows for rich text formatting, images, - admonitions and right-to-left support.
    Code - Uses a mono-space font and can be used to store larger chunks of code - or plain text than a text note, and has better syntax highlighting.
    Saved Search - Stores the information about a search (the search text, criteria, etc.) - for later use. Can be used for quick filtering of a large amount of notes, - for example. The search can easily be triggered.
    Relation Map - Allows easy creation of notes and relations between them. Can be used - for mainly relational data such as a family tree.
    Note Map - Displays the relationships between the notes, whether via relations or - their hierarchical structure.
    Render Note - Used in Scripting, - it displays the HTML content of another note. This allows displaying any - kind of content, provided there is a script behind it to generate it.
    Book - -

    Displays the children of the note either as a grid, a list, or for a more - specialized case: a calendar.

    -

    Generally useful for easy reading of short notes.

    -
    Mermaid Diagrams - Displays diagrams such as bar charts, flow charts, state diagrams, etc. - Requires a bit of technical knowledge since the diagrams are written in - a specialized format.
    Canvas - Allows easy drawing of sketches, diagrams, handwritten content. Uses the - same technology behind excalidraw.com.
    Web View - Displays the content of an external web page, similar to a browser.
    Mind Map - Easy for brainstorming ideas, by placing them in a hierarchical layout.
    Geo Map - Displays the children of the note as a geographical map, one use-case - would be to plan vacations. It even has basic support for tracks. Notes - can also be created from it.
    File - Represents an uploaded file such as PDFs, images, video or audio files.
    -
    -
    -
    - - - \ No newline at end of file +

    One core features of Trilium is that it supports multiple types of notes, + depending on the need.

    +

    Creating a new note with a different type via the note tree

    +

    The default note type in Trilium (e.g. when creating a new note) is  + Text, since it's for general use.

    +

    To create a new note of a different type, head to the Note Tree and right click an existing + note where to place the new one and select:

    +
      +
    • Insert note after, to put the new note underneath the one selected.
    • +
    • Insert child note, to insert the note as a child of the selected + note.
    • +
    +

    + +

    +

    Creating a new note of a different type via add link or new tab

    +
      +
    • When adding a link in a Text note, type the desired title + of the new note and press Enter. Afterwards the type of the note will be + asked.
    • +
    • Similarly, when creating a new tab, type the desired title and press Enter.
    • +
    +

    Changing the type of a note

    +

    It is possible to change the type of a note after it has been created + via the Basic Properties tab in the Ribbon. Note that it's generally a + good idea to change the note type only if the note is empty. Can also be + used to edit the source of a note.

    +

    Supported note types

    +

    The following note types are supported by Trilium:

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Note TypeDescription
    Text + The default note type, which allows for rich text formatting, images, + admonitions and right-to-left support.
    Code + Uses a mono-space font and can be used to store larger chunks of code + or plain text than a text note, and has better syntax highlighting.
    Saved Search + Stores the information about a search (the search text, criteria, etc.) + for later use. Can be used for quick filtering of a large amount of notes, + for example. The search can easily be triggered.
    Relation Map + Allows easy creation of notes and relations between them. Can be used + for mainly relational data such as a family tree.
    Note Map + Displays the relationships between the notes, whether via relations or + their hierarchical structure.
    Render Note + Used in Scripting, + it displays the HTML content of another note. This allows displaying any + kind of content, provided there is a script behind it to generate it.
    Book + +

    Displays the children of the note either as a grid, a list, or for a more + specialized case: a calendar.

    +

    Generally useful for easy reading of short notes.

    +
    Mermaid Diagrams + Displays diagrams such as bar charts, flow charts, state diagrams, etc. + Requires a bit of technical knowledge since the diagrams are written in + a specialized format.
    Canvas + Allows easy drawing of sketches, diagrams, handwritten content. Uses the + same technology behind excalidraw.com.
    Web View + Displays the content of an external web page, similar to a browser.
    Mind Map + Easy for brainstorming ideas, by placing them in a hierarchical layout.
    Geo Map + Displays the children of the note as a geographical map, one use-case + would be to plan vacations. It even has basic support for tracks. Notes + can also be created from it.
    File + Represents an uploaded file such as PDFs, images, video or audio files.
    +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Book.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Book.html index c6789cd5f..3a89cb666 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Book.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Book.html @@ -1,40 +1,20 @@ - - - - - - - - Book - - - -
    -

    Book

    - -
    -

    A Book Note in Trilium is a special type of note designed - to display the contents of its child notes sequentially, creating a linear, - book-like reading experience. This format is particularly useful for viewing - multiple smaller notes in a cohesive, continuous manner.

    -

    - -

    -

    In the example above, the "node.js" note on the left panel contains several - child notes. The right panel displays the content of these child notes - as a single continuous document.

    -

    Features

    -

    The Book Note format compiles the contents of all child notes into one - continuous view. This makes it ideal for reading extensive information - broken into smaller, manageable segments.

    -

    It uses the Note List mechanism - to display the child notes, allowing the use of any of the view types (grid, - list, calendar).

    -

    To adjust the view type, see the dedicated Book tab in the  - Ribbon.

    -
    -
    - - - \ No newline at end of file +

    A Book Note in Trilium is a special type of note designed + to display the contents of its child notes sequentially, creating a linear, + book-like reading experience. This format is particularly useful for viewing + multiple smaller notes in a cohesive, continuous manner.

    +

    + +

    +

    In the example above, the "node.js" note on the left panel contains several + child notes. The right panel displays the content of these child notes + as a single continuous document.

    +

    Features

    +

    The Book Note format compiles the contents of all child notes into one + continuous view. This makes it ideal for reading extensive information + broken into smaller, manageable segments.

    +

    It uses the Note List mechanism + to display the child notes, allowing the use of any of the view types (grid, + list, calendar).

    +

    To adjust the view type, see the dedicated Book tab in the  + Ribbon.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Canvas.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Canvas.html index 70125bc6e..430c7ed66 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Canvas.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Canvas.html @@ -1,27 +1,7 @@ - - - - - - - - Canvas - - - -
    -

    Canvas

    - -
    -

    Available since Trilium v0.52.

    -

    Canvas notes use the Excalidraw library to allow handwritten notes with - mouse, pen or touch on an infinite canvas. It also supports basic diagramming, - text and graphics input.

    -

    - grafik -

    -
    -
    - - - \ No newline at end of file +

    Available since Trilium v0.52.

    +

    Canvas notes use the Excalidraw library to allow handwritten notes with + mouse, pen or touch on an infinite canvas. It also supports basic diagramming, + text and graphics input.

    +

    + grafik +

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code.html index c7a4599af..6f645e8fb 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code.html @@ -1,59 +1,39 @@ - - - - - - - - Code - - - -
    -

    Code

    - -
    -

    Trilium supports creating "code" notes, i.e. notes which contain some - sort of formal code - be it programming language (C++, JavaScript), structured - data (JSON, XML) or other types of codes (CSS etc.).

    -

    This can be useful for a few things:

    -
      -
    • computer programmers can store code snippets as notes with syntax highlighting
    • -
    • JavaScript code notes can be executed inside Trilium for some extra functionality -
        -
      • we call such JavaScript code notes "scripts" - see Scripting -
      • -
      -
    • -
    • JSON, XML etc. can be used as storage for structured data (typically used - in conjunction with scripting)
    • -
    -

    For shorter snippets of code that can be embedded in Text notes, - see Code blocks.

    -

    - -

    -

    Adjusting the language of a code note

    -

    In the Ribbon, look for the Note type selector - and click it to reveal the possible note types. Inside of it there will - be a section called Code, select any one of the languages.

    -

    - -

    -

    Adjusting the list of languages

    -

    Trilium supports syntax highlighting for many languages, but by default - displays only some of them. The supported languages can be adjusted by - going to Options, then Code Notes and - looking for the Available MIME types in the dropdown section. Simply - check any of the items to add them to the list, or un-check them to remove - them from the list.

    -

    Note that the list of languages is not immediately refreshed, you'd have - to manually refresh the application.

    -

    The list of languages is also shared with the Code blocks feature - of Text notes.

    -
    -
    - - - \ No newline at end of file +

    Trilium supports creating "code" notes, i.e. notes which contain some + sort of formal code - be it programming language (C++, JavaScript), structured + data (JSON, XML) or other types of codes (CSS etc.).

    +

    This can be useful for a few things:

    +
      +
    • computer programmers can store code snippets as notes with syntax highlighting
    • +
    • JavaScript code notes can be executed inside Trilium for some extra functionality +
        +
      • we call such JavaScript code notes "scripts" - see Scripting +
      • +
      +
    • +
    • JSON, XML etc. can be used as storage for structured data (typically used + in conjunction with scripting)
    • +
    +

    For shorter snippets of code that can be embedded in Text notes, + see Code blocks.

    +

    + +

    +

    Adjusting the language of a code note

    +

    In the Ribbon, look for the Note type selector + and click it to reveal the possible note types. Inside of it there will + be a section called Code, select any one of the languages.

    +

    + +

    +

    Adjusting the list of languages

    +

    Trilium supports syntax highlighting for many languages, but by default + displays only some of them. The supported languages can be adjusted by + going to Options, then Code Notes and + looking for the Available MIME types in the dropdown section. Simply + check any of the items to add them to the list, or un-check them to remove + them from the list.

    +

    Note that the list of languages is not immediately refreshed, you'd have + to manually refresh the application.

    +

    The list of languages is also shared with the Code blocks feature + of Text notes.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/File.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/File.html index 64493c0b3..104d8dd6a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/File.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/File.html @@ -1,158 +1,138 @@ - - - - - - - - File - - - -
    -

    File

    - -
    -

    The File note type can be used to attach various external files - such as images, videos or PDF documents.

    -

    Uploading a file

    -

    Since these files come from an external source, it is not possible to - create a File note type directly:

    -
      -
    • Drag a file into the Note Tree.
    • -
    • Right click a note and select Import into note and point it to - one of the supported files.
    • -
    -

    Supported file types

    -

    PDFs

    -
    - -
    -

    PDFs can be browsed directly from Trilium.

    -

    Interaction:

    -
      -
    • Press the menu icon at the top-left to see a preview (thumbnail) of all - the pages, as well as a table of contents (if the PDF has this information).
    • -
    • See or edit the page number at the top.
    • -
    • Adjust the zoom using the buttons at the top or manually editing the value.
    • -
    • Rotate the document if it's in the wrong orientation.
    • -
    • In the contextual menu: -
        -
      • View two pages at once (great for books).
      • -
      • Toggle annotations (if present in the document).
      • -
      • View document properties.
      • -
      -
    • -
    -

    Images

    -
    - -
    -

    Interaction:

    -
      -
    • Copy reference to clipboard, for embedding the image within  - Text notes. See Image references for - more information.
    • -
    -

    Videos

    -
    - -
    -

    Video files can be added in as well. The file is streamed directly, so - when accessing the note from a server it doesn't have to download the entire - video to start playing it.

    - -

    Audio

    -
    - -
    -

    Adding a supported audio file will reveal a basic audio player that can - be used to play it.

    -

    Interactions:

    -
      -
    • The audio can be played/paused using the dedicated button.
    • -
    • Dragging the mouse across, or clicking the progress bar will seek through - the song.
    • -
    • The volume can be set.
    • -
    • The playback speed can be adjusted via the contextual menu next to the - volume.
    • -
    -

    Text files

    -
    - -
    -

    Files that are identified as containing text will show a preview of their - content. One common use case for this type of file is to embed text files - whose content is not necessarily of interest to the user, such as third-party - libraries or generated content, that can then be downloaded if needed.

    -

    Note that generally text files will be imported as - either Text or  - Code notes. To bypass this behavior and create a File note - type, use the Import into note feature and uncheck Import HTML, Markdown and TXT as text notes, - as well as Import recognized code files as code notes

    -

    Since one of the use cases for having files instead of notes is to display - large files, the content preview is limited to a relatively small amount - of characters. To view the full file, consider opening it in an external - application.

    -

    Unknown file types

    -
    - -
    -

    If the file could not be identified as any of the supported file types - from above, it will be treated as an unknown file. In this case, all the - default interactions will be available such as downloading or opening the - file externally, but there will be no preview of the content.

    -

    Interaction

    -
      -
    • Regardless of the file type, a series of buttons will be displayed in - the Image or File tab in the Ribbon. -
        -
      • Download, which will download the file for local use.
      • -
      • Open, will will open the file with the system-default application.
      • -
      • Upload new revision to replace the file with a new one.
      • -
      -
    • -
    • It is not possible to change the note type of a File note.
    • -
    • Convert into an attachment from the - note menu.
    • -
    -

    Relation with other notes

    -
      -
    • -

      Files are also displayed in the Note List based - on their type:

      - -
    • -
    • -

      Non-image files can be embedded into text notes as read-only widgets via - the Include Note functionality.

      -
    • -
    • -

      Image files can be embedded into text notes like normal images via  - Image references.

      -
    • -
    -
    -
    - - - \ No newline at end of file +

    The File note type can be used to attach various external files + such as images, videos or PDF documents.

    +

    Uploading a file

    +

    Since these files come from an external source, it is not possible to + create a File note type directly:

    +
      +
    • Drag a file into the Note Tree.
    • +
    • Right click a note and select Import into note and point it to + one of the supported files.
    • +
    +

    Supported file types

    +

    PDFs

    +
    + +
    +

    PDFs can be browsed directly from Trilium.

    +

    Interaction:

    +
      +
    • Press the menu icon at the top-left to see a preview (thumbnail) of all + the pages, as well as a table of contents (if the PDF has this information).
    • +
    • See or edit the page number at the top.
    • +
    • Adjust the zoom using the buttons at the top or manually editing the value.
    • +
    • Rotate the document if it's in the wrong orientation.
    • +
    • In the contextual menu: +
        +
      • View two pages at once (great for books).
      • +
      • Toggle annotations (if present in the document).
      • +
      • View document properties.
      • +
      +
    • +
    +

    Images

    +
    + +
    +

    Interaction:

    +
      +
    • Copy reference to clipboard, for embedding the image within  + Text notes. See Image references for + more information.
    • +
    +

    Videos

    +
    + +
    +

    Video files can be added in as well. The file is streamed directly, so + when accessing the note from a server it doesn't have to download the entire + video to start playing it.

    + +

    Audio

    +
    + +
    +

    Adding a supported audio file will reveal a basic audio player that can + be used to play it.

    +

    Interactions:

    +
      +
    • The audio can be played/paused using the dedicated button.
    • +
    • Dragging the mouse across, or clicking the progress bar will seek through + the song.
    • +
    • The volume can be set.
    • +
    • The playback speed can be adjusted via the contextual menu next to the + volume.
    • +
    +

    Text files

    +
    + +
    +

    Files that are identified as containing text will show a preview of their + content. One common use case for this type of file is to embed text files + whose content is not necessarily of interest to the user, such as third-party + libraries or generated content, that can then be downloaded if needed.

    +

    Note that generally text files will be imported as + either Text or  + Code notes. To bypass this behavior and create a File note + type, use the Import into note feature and uncheck Import HTML, Markdown and TXT as text notes, + as well as Import recognized code files as code notes

    +

    Since one of the use cases for having files instead of notes is to display + large files, the content preview is limited to a relatively small amount + of characters. To view the full file, consider opening it in an external + application.

    +

    Unknown file types

    +
    + +
    +

    If the file could not be identified as any of the supported file types + from above, it will be treated as an unknown file. In this case, all the + default interactions will be available such as downloading or opening the + file externally, but there will be no preview of the content.

    +

    Interaction

    +
      +
    • Regardless of the file type, a series of buttons will be displayed in + the Image or File tab in the Ribbon. +
        +
      • Download, which will download the file for local use.
      • +
      • Open, will will open the file with the system-default application.
      • +
      • Upload new revision to replace the file with a new one.
      • +
      +
    • +
    • It is not possible to change the note type of a File note.
    • +
    • Convert into an attachment from the + note menu.
    • +
    +

    Relation with other notes

    +
      +
    • +

      Files are also displayed in the Note List based + on their type:

      + +
    • +
    • +

      Non-image files can be embedded into text notes as read-only widgets via + the Include Note functionality.

      +
    • +
    • +

      Image files can be embedded into text notes like normal images via  + Image references.

      +
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Geo Map.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Geo Map.html index d1616e183..4a5860659 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Geo Map.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Geo Map.html @@ -1,350 +1,330 @@ - - - - - - - - Geo Map - - - -
    -

    Geo Map

    +
    + +
    +

    This note type displays the children notes on a geographical map, based + on an attribute. It is also possible to add new notes at a specific location + using the built-in interface.

    +

    Creating a new geo map

    +
    + + + + + + + + + + + + + + + + + + + + +
       
    1 +
    + +
    +
    Right click on any note on the note tree and select Insert child noteGeo Map (beta).
    2 +
    + +
    +
    By default the map will be empty and will show the entire world.
    +
    -
    -
    - -
    -

    This note type displays the children notes on a geographical map, based - on an attribute. It is also possible to add new notes at a specific location - using the built-in interface.

    -

    Creating a new geo map

    -
    - - - - - - - - - - - - - - - - - - - - -
       
    1 -
    - -
    -
    Right click on any note on the note tree and select Insert child noteGeo Map (beta).
    2 -
    - -
    -
    By default the map will be empty and will show the entire world.
    -
    -

    Repositioning the map

    -
      -
    • Click and drag the map in order to move across the map.
    • -
    • Use the mouse wheel, two-finger gesture on a touchpad or the +/- buttons - on the top-left to adjust the zoom.
    • -
    -

    The position on the map and the zoom are saved inside the map note and - restored when visiting again the note.

    -

    Adding a marker using the map

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
       
    1To create a marker, first navigate to the desired point on the map. Then - press the - button in the Floating buttons (top-right) - area.  -
    -
    If the button is not visible, make sure the button section is visible - by pressing the chevron button ( - ) in the top-right of the map.
     
    2 - - Once pressed, the map will enter in the insert mode, as illustrated by - the notification.     -
    -
    Simply click the point on the map where to place the marker, or the Escape - key to cancel.
    3 - - Enter the name of the marker/note to be created.
    4 - - Once confirmed, the marker will show up on the map and it will also be - displayed as a child note of the map.
    -
    - -

    How the location of the markers is stored

    -

    The location of a marker is stored in the #geolocation attribute - of the child notes:

    - -

    This value can be added manually if needed. The value of the attribute - is made up of the latitude and longitude separated by a comma.

    -

    Repositioning markers

    -

    It's possible to reposition existing markers by simply drag and dropping - them to the new destination.

    -

    As soon as the mouse is released, the new position is saved.

    -

    If moved by mistake, there is currently no way to undo the change. If - the mouse was not yet released, it's possible to force a refresh of the - page (Ctrl+R ) to cancel it.

    -

    Interaction with the markers

    -
      -
    • Hovering over a marker will display the content of the note it belongs - to. -
        -
      • Clicking on the note title in the tooltip will navigate to the note in - the current view.
      • -
      -
    • -
    • Middle-clicking the marker will open the note in a new tab.
    • -
    • Right-clicking the marker will open a contextual menu allowing: -
        -
      • Opening the note in a new tab, split or window.
      • -
      • Opening the location using an external application (if the operating system - supports it).
      • -
      • Removing the marker from the map, which will remove the #geolocation attribute - of the note. To add it back again, the coordinates have to be manually - added back in.
      • -
      -
    • -
    -

    Icon and color of the markers

    -
    - image -
    -

    The markers will have the same icon as the note.

    -

    It's possible to add a custom color to a marker by assigning them a #color attribute - such as #color=green.

    -

    Adding the coordinates manually

    -

    In a nutshell, create a child note and set the #geolocation attribute - to the coordinates.

    -

    The value of the attribute is made up of the latitude and longitude separated - by a comma.

    -

    Adding from Google Maps

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
       
    1 -
    - -
    -
    Go to Google Maps on the web and look for a desired location, right click - on it and a context menu will show up.     -
    -
    Simply click on the first item displaying the coordinates and they will - be copied to clipboard.     -
    -
    Then paste the value inside the text box into the #geolocation attribute - of a child note of the map (don't forget to surround the value with a " character).
    2 -
    - -
    -
    In Trilium, create a child note under the map.
    3 -
    - -
    -
    And then go to Owned Attributes and type #geolocation=", then - paste from the clipboard as-is and then add the ending " character. - Press Enter to confirm and the map should now be updated to contain the - new note.
    -
    - -

    Adding from OpenStreetMap

    -

    Similarly to the Google Maps approach:

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
       
    1 - - Go to any location on openstreetmap.org and right click to bring up the - context menu. Select the “Show address” item.
    2 - - The address will be visible in the top-left of the screen, in the place - of the search bar.     -
    -
    Select the coordinates and copy them into the clipboard.
    3 - - Simply paste the value inside the text box into the #geolocation attribute - of a child note of the map and then it should be displayed on the map.
    -
    - -

    Adding GPS tracks (.gpx)

    -

    Trilium has basic support for displaying GPS tracks on the geo map.

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
       
    1 -
    - -
    -
    To add a track, simply drag & drop a .gpx file inside the geo map - in the note tree.
    2 -
    - -
    -
    In order for the file to be recognized as a GPS track, it needs to show - up as application/gpx+xml in the File type field.
    3 -
    - -
    -
    When going back to the map, the track should now be visible.     -
    -
    The start and end points of the track are indicated by the two blue markers.
    -
    - -

    Troubleshooting

    -
    - -
    - -

    Grid-like artifacts on the map

    -

    This occurs if the application is not at 100% zoom which causes the pixels - of the map to not render correctly due to fractional scaling. The only - possible solution is to set the UI zoom at 100% (default keyboard shortcut - is Ctrl+0).

    -
    -
    - +
      +
    • Click and drag the map in order to move across the map.
    • +
    • Use the mouse wheel, two-finger gesture on a touchpad or the +/- buttons + on the top-left to adjust the zoom.
    • +
    +

    The position on the map and the zoom are saved inside the map note and + restored when visiting again the note.

    +

    Adding a marker using the map

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
       
    1To create a marker, first navigate to the desired point on the map. Then + press the + button in the Floating buttons (top-right) + area.  +
    +
    If the button is not visible, make sure the button section is visible + by pressing the chevron button ( + ) in the top-right of the map.
     
    2 + + Once pressed, the map will enter in the insert mode, as illustrated by + the notification.     +
    +
    Simply click the point on the map where to place the marker, or the Escape + key to cancel.
    3 + + Enter the name of the marker/note to be created.
    4 + + Once confirmed, the marker will show up on the map and it will also be + displayed as a child note of the map.
    +
    - \ No newline at end of file +

    How the location of the markers is stored

    +

    The location of a marker is stored in the #geolocation attribute + of the child notes:

    + +

    This value can be added manually if needed. The value of the attribute + is made up of the latitude and longitude separated by a comma.

    +

    Repositioning markers

    +

    It's possible to reposition existing markers by simply drag and dropping + them to the new destination.

    +

    As soon as the mouse is released, the new position is saved.

    +

    If moved by mistake, there is currently no way to undo the change. If + the mouse was not yet released, it's possible to force a refresh of the + page (Ctrl+R ) to cancel it.

    +

    Interaction with the markers

    +
      +
    • Hovering over a marker will display the content of the note it belongs + to. +
        +
      • Clicking on the note title in the tooltip will navigate to the note in + the current view.
      • +
      +
    • +
    • Middle-clicking the marker will open the note in a new tab.
    • +
    • Right-clicking the marker will open a contextual menu allowing: +
        +
      • Opening the note in a new tab, split or window.
      • +
      • Opening the location using an external application (if the operating system + supports it).
      • +
      • Removing the marker from the map, which will remove the #geolocation attribute + of the note. To add it back again, the coordinates have to be manually + added back in.
      • +
      +
    • +
    +

    Icon and color of the markers

    +
    + image +
    +

    The markers will have the same icon as the note.

    +

    It's possible to add a custom color to a marker by assigning them a #color attribute + such as #color=green.

    +

    Adding the coordinates manually

    +

    In a nutshell, create a child note and set the #geolocation attribute + to the coordinates.

    +

    The value of the attribute is made up of the latitude and longitude separated + by a comma.

    +

    Adding from Google Maps

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
       
    1 +
    + +
    +
    Go to Google Maps on the web and look for a desired location, right click + on it and a context menu will show up.     +
    +
    Simply click on the first item displaying the coordinates and they will + be copied to clipboard.     +
    +
    Then paste the value inside the text box into the #geolocation attribute + of a child note of the map (don't forget to surround the value with a " character).
    2 +
    + +
    +
    In Trilium, create a child note under the map.
    3 +
    + +
    +
    And then go to Owned Attributes and type #geolocation=", then + paste from the clipboard as-is and then add the ending " character. + Press Enter to confirm and the map should now be updated to contain the + new note.
    +
    + +

    Adding from OpenStreetMap

    +

    Similarly to the Google Maps approach:

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
       
    1 + + Go to any location on openstreetmap.org and right click to bring up the + context menu. Select the “Show address” item.
    2 + + The address will be visible in the top-left of the screen, in the place + of the search bar.     +
    +
    Select the coordinates and copy them into the clipboard.
    3 + + Simply paste the value inside the text box into the #geolocation attribute + of a child note of the map and then it should be displayed on the map.
    +
    + +

    Adding GPS tracks (.gpx)

    +

    Trilium has basic support for displaying GPS tracks on the geo map.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
       
    1 +
    + +
    +
    To add a track, simply drag & drop a .gpx file inside the geo map + in the note tree.
    2 +
    + +
    +
    In order for the file to be recognized as a GPS track, it needs to show + up as application/gpx+xml in the File type field.
    3 +
    + +
    +
    When going back to the map, the track should now be visible.     +
    +
    The start and end points of the track are indicated by the two blue markers.
    +
    + +

    Troubleshooting

    +
    + +
    + +

    Grid-like artifacts on the map

    +

    This occurs if the application is not at 100% zoom which causes the pixels + of the map to not render correctly due to fractional scaling. The only + possible solution is to set the UI zoom at 100% (default keyboard shortcut + is Ctrl+0).

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams.html index 2702c6f6d..44850ab53 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams.html @@ -1,87 +1,67 @@ - - - - - - - - Mermaid Diagrams - - - -
    -

    Mermaid Diagrams

    - -
    -
    - -
    -

    Trilium supports Mermaid, which adds support for various diagrams such - as flowchart, sequence diagram, class diagram, state diagram, pie charts, - etc., all using a text description of the chart instead of manually drawing - the diagram.

    -

    For the official documentation of Mermaid.js see mermaid.js.org/intro/.

    -

    Layouts

    -

    Depending on the chart being edited and user preference, there are two - layouts supported by the Mermaid note type:

    -
      -
    • Horizontal, where the source code (editable part) is on the left side - of the screen and the preview is to the right.
    • -
    • Vertical, where the source code is at the bottom of the screen and the - preview is at the top.
    • -
    -

    It's possible to switch between the two layouts at any time by pressing - the - icon in the Floating buttons area.

    -

    Interaction

    -
      -
    • The source code of the diagram (in Mermaid format) is displayed on the - left or bottom side of the note (depending on the layout). -
        -
      • Changing the diagram code will refresh automatically the diagram.
      • -
      -
    • -
    • The preview of the diagram is displayed at the right or top side of the - note (depending on the layout): -
        -
      • There are dedicated buttons at the bottom-right of the preview to control - the zoom in, zoom out or re-center the diagram: - -
      • -
      • The preview can be moved around by holding the left mouse button and dragging.
      • -
      • Zooming can also be done by using the scroll wheel.
      • -
      • The zoom and position on the preview will remain fixed as the diagram - changes, to be able to work more easily with large diagrams.
      • -
      -
    • -
    • The size of the source/preview panes can be adjusted by hovering over - the border between them and dragging it with the mouse.
    • -
    • In the Floating buttons area: -
        -
      • The source/preview can be laid out left-right or bottom-top via the Move editing pane to the left / bottom option.
      • -
      • Press Lock editing to automatically mark the note as read-only. - In this mode, the code pane is hidden and the diagram is displayed full-size. - Similarly, press Unlock editing to mark a read-only note as editable.
      • -
      • Press the Copy image reference to the clipboard to be able to insert - the image representation of the diagram into a text note. See Image references for more information.
      • -
      • Press the Export diagram as SVG to download a scalable/vector rendering - of the diagram. Can be used to present the diagram without degrading when - zooming.
      • -
      • Press the Export diagram as PNG to download a normal image (at - 1x scale, raster) of the diagram. Can be used to send the diagram in more - traditional channels such as e-mail.
      • -
      -
    • -
    -

    Errors in the diagram

    -

    If there is an error in the source code, the error will be displayed in - an information pane.

    -

    During the state of an error, the diagram will no longer be rendered and - the previously working diagram will remain in the preview section.

    -
    -
    - - - \ No newline at end of file +
    + +
    +

    Trilium supports Mermaid, which adds support for various diagrams such + as flowchart, sequence diagram, class diagram, state diagram, pie charts, + etc., all using a text description of the chart instead of manually drawing + the diagram.

    +

    For the official documentation of Mermaid.js see mermaid.js.org/intro/.

    +

    Layouts

    +

    Depending on the chart being edited and user preference, there are two + layouts supported by the Mermaid note type:

    +
      +
    • Horizontal, where the source code (editable part) is on the left side + of the screen and the preview is to the right.
    • +
    • Vertical, where the source code is at the bottom of the screen and the + preview is at the top.
    • +
    +

    It's possible to switch between the two layouts at any time by pressing + the + icon in the Floating buttons area.

    +

    Interaction

    +
      +
    • The source code of the diagram (in Mermaid format) is displayed on the + left or bottom side of the note (depending on the layout). +
        +
      • Changing the diagram code will refresh automatically the diagram.
      • +
      +
    • +
    • The preview of the diagram is displayed at the right or top side of the + note (depending on the layout): +
        +
      • There are dedicated buttons at the bottom-right of the preview to control + the zoom in, zoom out or re-center the diagram: + +
      • +
      • The preview can be moved around by holding the left mouse button and dragging.
      • +
      • Zooming can also be done by using the scroll wheel.
      • +
      • The zoom and position on the preview will remain fixed as the diagram + changes, to be able to work more easily with large diagrams.
      • +
      +
    • +
    • The size of the source/preview panes can be adjusted by hovering over + the border between them and dragging it with the mouse.
    • +
    • In the Floating buttons area: +
        +
      • The source/preview can be laid out left-right or bottom-top via the Move editing pane to the left / bottom option.
      • +
      • Press Lock editing to automatically mark the note as read-only. + In this mode, the code pane is hidden and the diagram is displayed full-size. + Similarly, press Unlock editing to mark a read-only note as editable.
      • +
      • Press the Copy image reference to the clipboard to be able to insert + the image representation of the diagram into a text note. See Image references for more information.
      • +
      • Press the Export diagram as SVG to download a scalable/vector rendering + of the diagram. Can be used to present the diagram without degrading when + zooming.
      • +
      • Press the Export diagram as PNG to download a normal image (at + 1x scale, raster) of the diagram. Can be used to send the diagram in more + traditional channels such as e-mail.
      • +
      +
    • +
    +

    Errors in the diagram

    +

    If there is an error in the source code, the error will be displayed in + an information pane.

    +

    During the state of an error, the diagram will no longer be rendered and + the previously working diagram will remain in the preview section.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout.html index c40226ac4..6ea404077 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout.html @@ -1,46 +1,26 @@ - - - - - - - - ELK layout - - - -
    -

    ELK layout

    - -
    -

    Mermaid supports a different layout engine which supports slightly more - complex diagrams, called the Eclipse Layout Kernel (ELK). - Trilium has support for these as well, but it's not enabled by default.

    -

    In order to activate ELK for any diagram, insert the following YAML frontmatter - right at the beginning of the diagram:

    ---
    +

    Mermaid supports a different layout engine which supports slightly more + complex diagrams, called the Eclipse Layout Kernel (ELK). + Trilium has support for these as well, but it's not enabled by default.

    +

    In order to activate ELK for any diagram, insert the following YAML frontmatter + right at the beginning of the diagram:

    ---
     config:
       layout: elk
     ---
    - - - - - - - - - - - - - -
    With ELK offWith ELK on
    - - - -
    -
    -
    - - - \ No newline at end of file + + + + + + + + + + + + + +
    With ELK offWith ELK on
    + + + +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mind Map.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mind Map.html index c0b6aeb38..48766db0c 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mind Map.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mind Map.html @@ -1,59 +1,39 @@ - - - - - - - - Mind Map - - - -
    -

    Mind Map

    - -
    -
    - -
    -

    The mindmap allows for easy jotting down of ideas and storing them in - a hierarchical fashion.

    -

    Terminology

    -
      -
    • A node is a single idea, represented differently based - on depth (filled rounded rectangle for the root note, unfilled rectangles - for sub-ideas, lines only for sub-sub-ideas).
    • -
    • The root node is the top-most node from which all other - nodes derive, displayed as a filled rectangle. There can only be a single - root node.
    • -
    -

    Interaction

    -
      -
    • To create a new node at the same level as the current one, press Enter, - enter the desired text and then press Enter once again to confirm.
    • -
    • Similarly, to create a sub-node, press Tab, enter the desired - text and then press Enter.
    • -
    • To create a parent, use Ctrl+Enter instead.
    • -
    • To remove a node, press Delete.
    • -
    • To move a node up or down, press Page Up or Page Down.
    • -
    • To adjust the font size, color of the text or background or to add a link, - click on a node and use the floating panel that appears to the right.
    • -
    • To select one or more notes, drag and drop across the map.
    • -
    • Right click the node to bring a contextual menu with options such as creating - new nodes, focusing on a particular notes or creating links between them.
    • -
    • Use the buttons at the top-left to change the positioning of the nodes - relative to the root node (to the left, to the right, or to both sides).
    • -
    • In the Floating buttons area: -
        -
      • An image reference can be copied, - to paste the mind map in a text note.
      • -
      • The diagram can be exported either as SVG (vectorial) or PNG (raster).
      • -
      -
    • -
    -
    -
    - - - \ No newline at end of file +
    + +
    +

    The mindmap allows for easy jotting down of ideas and storing them in + a hierarchical fashion.

    +

    Terminology

    +
      +
    • A node is a single idea, represented differently based + on depth (filled rounded rectangle for the root note, unfilled rectangles + for sub-ideas, lines only for sub-sub-ideas).
    • +
    • The root node is the top-most node from which all other + nodes derive, displayed as a filled rectangle. There can only be a single + root node.
    • +
    +

    Interaction

    +
      +
    • To create a new node at the same level as the current one, press Enter, + enter the desired text and then press Enter once again to confirm.
    • +
    • Similarly, to create a sub-node, press Tab, enter the desired + text and then press Enter.
    • +
    • To create a parent, use Ctrl+Enter instead.
    • +
    • To remove a node, press Delete.
    • +
    • To move a node up or down, press Page Up or Page Down.
    • +
    • To adjust the font size, color of the text or background or to add a link, + click on a node and use the floating panel that appears to the right.
    • +
    • To select one or more notes, drag and drop across the map.
    • +
    • Right click the node to bring a contextual menu with options such as creating + new nodes, focusing on a particular notes or creating links between them.
    • +
    • Use the buttons at the top-left to change the positioning of the nodes + relative to the root node (to the left, to the right, or to both sides).
    • +
    • In the Floating buttons area: +
        +
      • An image reference can be copied, + to paste the mind map in a text note.
      • +
      • The diagram can be exported either as SVG (vectorial) or PNG (raster).
      • +
      +
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html index 0037c8528..d7954bcd2 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html @@ -1,29 +1,9 @@ - - - - - - - - Note Map - - - -
    -

    Note Map

    - -
    -
    - -
    -

    A Note map is a note type which displays a standalone version of the feature - of the same name: Note Map (Link map, Tree map).

    -

    Once created, the note map will display the relations between notes. Only - the notes that are part of the parent of the note map will be displayed - (including their children).

    -
    -
    - - - \ No newline at end of file +
    + +
    +

    A Note map is a note type which displays a standalone version of the feature + of the same name: Note Map (Link map, Tree map).

    +

    Once created, the note map will display the relations between notes. Only + the notes that are part of the parent of the note map will be displayed + (including their children).

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html index 21d76a7c4..957acc574 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html @@ -1,95 +1,75 @@ - - - - - - - - Relation Map - - - -
    -

    Relation Map

    - -
    -

    Relation map is a type of Note which - visualizes notes and their relations. - See an example:

    -

    Development process demo

    -

    This is a basic example how you can create simple diagram using relation - maps:

    -

    - -

    -

    And this is how you can create it:

    -

    - -

    -

    We start completely from scratch by first creating new note called "Development - process" and changing its type to "Relation map". After that we create - new notes one by one and place them by clicking into the map. We also drag - relationsbetween notes and name them. That's all!

    -

    Items on the map - "Specification", "Development", "Testing" and "Demo" - are actually notes which have been created under "Development process" - note - you can click on them and write some content. Connections between - notes are called "relations".

    -

    Family demo

    -

    This is more complicated demo using some advanced concepts. Resulting - diagram is here:

    -

    - -

    -

    This is how you get to it:

    -

    - -

    -

    There are several steps here:

    -
      -
    • we start with empty relation map and two existing notes representing Prince - Philip and Queen Elizabeth II. These two notes already have "isPartnerOf" - relationsdefined. -
        -
      • There are actually two "inverse" relations (one from Philip to Elizabeth - and one from Elizabeth to Philip)
      • -
      -
    • -
    • we drag both notes to relation map and place to suitable position. Notice - how the existing "isPartnerOf" relations are displayed.
    • -
    • now we create new note - we name it "Prince Charles" and place it on the - relation map by clicking on the desired position. The note is by default - created under the relation map note (visible in the note tree on the left).
    • -
    • we create two new relations "isChildOf" targeting both Philip and Elizabeth -
        -
      • now there's something unexpected - we can also see the relation to display - another "hasChild" relation. This is because there's a relation definition which - puts "isChildOf" as an "inverse" - relation of "hasChildOf" (and vice versa) and thus it is created automatically.
      • -
      -
    • -
    • we create another note for Princess Diana and create "isPartnerOf" relation - from Charles. Again notice how the relation has arrows both ways - this - is because "isPartnerOf" definition specifies its inverse relation as again - "isPartnerOf" so the opposite relation is created automatically.
    • -
    • as the last step we pan & zoom the map to fit better to window dimensions.
    • -
    -

    Relation definitions mentioned above come from "Person template" note - which is assigned to any child of "My Family Tree" relation note. You can - play with the whole thing in the demo notes.

    -

    Details

    -

    You can specify which relations should be displayed with comma delimited - names of relations in displayRelations label.

    -

    Alternatively, you can specify comma delimited list of relation names - in hideRelations which will display all relations, except for - the ones defined in the label.

    -

    See also

    - -
    -
    - - - \ No newline at end of file +

    Relation map is a type of Note which + visualizes notes and their relations. + See an example:

    +

    Development process demo

    +

    This is a basic example how you can create simple diagram using relation + maps:

    +

    + +

    +

    And this is how you can create it:

    +

    + +

    +

    We start completely from scratch by first creating new note called "Development + process" and changing its type to "Relation map". After that we create + new notes one by one and place them by clicking into the map. We also drag + relationsbetween notes and name them. That's all!

    +

    Items on the map - "Specification", "Development", "Testing" and "Demo" + are actually notes which have been created under "Development process" + note - you can click on them and write some content. Connections between + notes are called "relations".

    +

    Family demo

    +

    This is more complicated demo using some advanced concepts. Resulting + diagram is here:

    +

    + +

    +

    This is how you get to it:

    +

    + +

    +

    There are several steps here:

    +
      +
    • we start with empty relation map and two existing notes representing Prince + Philip and Queen Elizabeth II. These two notes already have "isPartnerOf" + relationsdefined. +
        +
      • There are actually two "inverse" relations (one from Philip to Elizabeth + and one from Elizabeth to Philip)
      • +
      +
    • +
    • we drag both notes to relation map and place to suitable position. Notice + how the existing "isPartnerOf" relations are displayed.
    • +
    • now we create new note - we name it "Prince Charles" and place it on the + relation map by clicking on the desired position. The note is by default + created under the relation map note (visible in the note tree on the left).
    • +
    • we create two new relations "isChildOf" targeting both Philip and Elizabeth +
        +
      • now there's something unexpected - we can also see the relation to display + another "hasChild" relation. This is because there's a relation definition which + puts "isChildOf" as an "inverse" + relation of "hasChildOf" (and vice versa) and thus it is created automatically.
      • +
      +
    • +
    • we create another note for Princess Diana and create "isPartnerOf" relation + from Charles. Again notice how the relation has arrows both ways - this + is because "isPartnerOf" definition specifies its inverse relation as again + "isPartnerOf" so the opposite relation is created automatically.
    • +
    • as the last step we pan & zoom the map to fit better to window dimensions.
    • +
    +

    Relation definitions mentioned above come from "Person template" note + which is assigned to any child of "My Family Tree" relation note. You can + play with the whole thing in the demo notes.

    +

    Details

    +

    You can specify which relations should be displayed with comma delimited + names of relations in displayRelations label.

    +

    Alternatively, you can specify comma delimited list of relation names + in hideRelations which will display all relations, except for + the ones defined in the label.

    +

    See also

    + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Render Note.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Render Note.html index 948943a35..0d8f4200a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Render Note.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Render Note.html @@ -1,60 +1,40 @@ - - - - - - - - Render Note - - - -
    -

    Render Note

    - -
    -
    - -
    -

    Render Note is used in Scripting. - It works by displaying the HTML of a Code note, - via an attribute.

    -

    Creating a render note

    -
      -
    1. Create a Code note - with the HTML language, with what needs to be displayed (for example <p>Hello world.</p>).
    2. -
    3. Create a Render Note.
    4. -
    5. Assign the renderNote relation to - point at the previously created code note.
    6. -
    -

    Dynamic content

    -

    A static HTML is generally not enough for Scripting. The next step is to automatically - change parts of the note using JavaScript.

    -

    For a simple example, we are going to create a render note that displays - the current date in a field.

    -

    To do so, first create an HTML code note with the following content:

    <h1>Current date & time</h1>
    +
    + +
    +

    Render Note is used in Scripting. + It works by displaying the HTML of a Code note, + via an attribute.

    +

    Creating a render note

    +
      +
    1. Create a Code note + with the HTML language, with what needs to be displayed (for example <p>Hello world.</p>).
    2. +
    3. Create a Render Note.
    4. +
    5. Assign the renderNote relation to + point at the previously created code note.
    6. +
    +

    Dynamic content

    +

    A static HTML is generally not enough for Scripting. The next step is to automatically + change parts of the note using JavaScript.

    +

    For a simple example, we are going to create a render note that displays + the current date in a field.

    +

    To do so, first create an HTML code note with the following content:

    <h1>Current date & time</h1>
     The current date & time is <span class="date"></span>
    -

    Now we need to add the script. Create another Code, but this time of JavaScript (frontend) - language. Make sure the newly created note is a direct child of the HTML - note created previously; with the following content:

    const $dateEl = api.$container.find(".date");
    +

    Now we need to add the script. Create another Code, but this time of JavaScript (frontend) + language. Make sure the newly created note is a direct child of the HTML + note created previously; with the following content:

    const $dateEl = api.$container.find(".date");
     $dateEl.text(new Date());
    -

    Now create a render note at any place and set its ~renderNote relation - to point to the HTML note. When the render note is accessed it will display:

    -
    -

    Current date & time -
    The current date & time is Sun Apr 06 2025 15:26:29 GMT+0300 (Eastern - European Summer Time)

    -
    -

    Examples

    - -
    -
    - - - \ No newline at end of file +

    Now create a render note at any place and set its ~renderNote relation + to point to the HTML note. When the render note is accessed it will display:

    +
    +

    Current date & time +
    The current date & time is Sun Apr 06 2025 15:26:29 GMT+0300 (Eastern + European Summer Time)

    +
    +

    Examples

    + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html index 342965915..6d6794743 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html @@ -1,35 +1,15 @@ - - - - - - - - Saved Search - - - -
    -

    Saved Search

    +

    Trilium allows you to save common searches as notes within the note tree. + The search results will appear as sub-notes under these "saved search" + notes. Here is an example of how it works:

    +
    + +
    -
    -

    Trilium allows you to save common searches as notes within the note tree. - The search results will appear as sub-notes under these "saved search" - notes. Here is an example of how it works:

    -
    - -
    -

    Location

    -

    By default, saved searches are stored in the day note. However, you can - designate a different note to store saved searches by marking it with the #searchHome label. - Additionally, for workspaces, you - can use the #workspaceSearchHome label to specify a storage - location for saved searches within that workspace.

    -
    -
    - - - \ No newline at end of file +

    By default, saved searches are stored in the day note. However, you can + designate a different note to store saved searches by marking it with the #searchHome label. + Additionally, for workspaces, you + can use the #workspaceSearchHome label to specify a storage + location for saved searches within that workspace.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text.html index 82dedd8b2..37ee6a6d1 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text.html @@ -1,192 +1,172 @@ - +

    The default note type in Trilium, text notes allow for rich formatting, + tables, images, admonitions and a handful of other features.

    +

    Formatting bars

    +

    Most of the interaction with text notes is done via the built-in toolbars. + Depending on preference, there are two different layouts:

    +
      +
    • The Floating toolbar is hidden by default and only appears when + needed. In this mode there are actually two different toolbars: +
      + + +
    • +
    • A toolbar that appears when text is selected. This provides text-level + formatting such as bold, italic, text colors, inline code, etc. +
      +
    • +
    +

    Fore more information see Formatting toolbar.

    +

    Features and formatting

    +

    Here's a list of various features supported by text notes:

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Dedicated articleFeature
    General formatting + +
      +
    • Headings (section titles, paragraph)
    • +
    • Font size
    • +
    • Bold, italic, underline, strike-through
    • +
    • Superscript, subscript
    • +
    • Font color & background color
    • +
    • Remove formatting
    • +
    +
    Lists + +
      +
    • Bulleted lists
    • +
    • Numbered lists
    • +
    • To-do lists
    • +
    +
    Block quotes & admonitions + +
      +
    • Block quotes
    • +
    • Admonitions
    • +
    +
    Tables + +
      +
    • Basic tables
    • +
    • Merging cells
    • +
    • Styling tables and cells.
    • +
    • Table captions
    • +
    +
    Developer-specific formatting + +
      +
    • Inline code
    • +
    • Code blocks
    • +
    • Keyboard shortcuts
    • +
    +
    Footnotes + +
      +
    • Footnotes
    • +
    +
    Images + +
      +
    • Images
    • +
    +
    Links + +
      +
    • External links
    • +
    • Internal Trilium links
    • +
    +
    Include Note + +
      +
    • Include note
    • +
    +
    Insert buttons + +
      +
    • Symbols
    • +
    • Math Equations +
    • +
    • Mermaid diagrams
    • +
    • Horizontal ruler
    • +
    • Page break
    • +
    +
    Other features + + +
    +
    - - - - - - Text - - - -
    -

    Text

    - -
    -

    The default note type in Trilium, text notes allow for rich formatting, - tables, images, admonitions and a handful of other features.

    -

    Formatting bars

    -

    Most of the interaction with text notes is done via the built-in toolbars. - Depending on preference, there are two different layouts:

    -
      -
    • The Floating toolbar is hidden by default and only appears when - needed. In this mode there are actually two different toolbars: -
      - - -
    • -
    • A toolbar that appears when text is selected. This provides text-level - formatting such as bold, italic, text colors, inline code, etc. -
      -
    • -
    -

    Fore more information see Formatting toolbar.

    -

    Features and formatting

    -

    Here's a list of various features supported by text notes:

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Dedicated articleFeature
    General formatting - -
      -
    • Headings (section titles, paragraph)
    • -
    • Font size
    • -
    • Bold, italic, underline, strike-through
    • -
    • Superscript, subscript
    • -
    • Font color & background color
    • -
    • Remove formatting
    • -
    -
    Lists - -
      -
    • Bulleted lists
    • -
    • Numbered lists
    • -
    • To-do lists
    • -
    -
    Block quotes & admonitions - -
      -
    • Block quotes
    • -
    • Admonitions
    • -
    -
    Tables - -
      -
    • Basic tables
    • -
    • Merging cells
    • -
    • Styling tables and cells.
    • -
    • Table captions
    • -
    -
    Developer-specific formatting - -
      -
    • Inline code
    • -
    • Code blocks
    • -
    • Keyboard shortcuts
    • -
    -
    Footnotes - -
      -
    • Footnotes
    • -
    -
    Images - -
      -
    • Images
    • -
    -
    Links - -
      -
    • External links
    • -
    • Internal Trilium links
    • -
    -
    Include Note - -
      -
    • Include note
    • -
    -
    Insert buttons - -
      -
    • Symbols
    • -
    • Math Equations -
    • -
    • Mermaid diagrams
    • -
    • Horizontal ruler
    • -
    • Page break
    • -
    -
    Other features - - -
    -
    -

    Read-Only vs. Editing Mode

    -

    Text notes are usually opened in edit mode. However, they may open in - read-only mode if the note is too big or the note is explicitly marked - as read-only. For more information, see Read-Only Notes.

    -

    Keyboard shortcuts

    -

    There are numerous keyboard shortcuts to format the text without having - to use the mouse. For a reference of all the key combinations, see  - Keyboard Shortcuts. In addition, see Markdown-like formatting as an - alternative to the keyboard shortcuts.

    -

    Technical details

    -

    For the text editing functionality, Trilium uses a commercial product - (with an open-source base) called CKEditor. - This brings the benefit of having a powerful WYSIWYG (What You See Is What - You Get) editor.

    -
    -
    - - - \ No newline at end of file +

    Text notes are usually opened in edit mode. However, they may open in + read-only mode if the note is too big or the note is explicitly marked + as read-only. For more information, see Read-Only Notes.

    +

    Keyboard shortcuts

    +

    There are numerous keyboard shortcuts to format the text without having + to use the mouse. For a reference of all the key combinations, see  + Keyboard Shortcuts. In addition, see Markdown-like formatting as an + alternative to the keyboard shortcuts.

    +

    Technical details

    +

    For the text editing functionality, Trilium uses a commercial product + (with an open-source base) called CKEditor. + This brings the benefit of having a powerful WYSIWYG (What You See Is What + You Get) editor.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.html index 0427ea82a..e775bcb7c 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.html @@ -1,84 +1,69 @@ - - - - - - - - Block quotes & admonitions - - - -
    -

    Block quotes & admonitions

    - -
    -

    Block quotes

    -

    As the name suggests, block quotes can be useful to cite one or more paragraphs.

    -

    To create a block quote, press - from the Formatting toolbar. - It's also possible to type >, followed by a space to create - one (but only if the cursor is at the beginning of a line).

    -

    Inside the quote block, other block items can be inserted such as tables, - images, or even other block quotes or admonitions.

    -

    Admonitions

    -

    Admonitions are a way to highlight information to the reader. Other names - for it include call-outs and info/warning/alert boxes.

    -
    - -
    -

    From a functional point of view, admonitions act very similarly to a block - quote, just with different styling. This includes the ability to insert - other elements in it such as headings, tables, images, etc.

    -

    Inserting a new admonition

    -

    In the Formatting toolbar:

    -

    - -

    -

    It's possible to insert an admonition simply by typing:

    -
      -
    • !!! note -
    • -
    • !!! tip -
    • -
    • !!! important -
    • -
    • !!! caution -
    • -
    • !!! warning -
    • -
    -

    In addition to that, it's also possible to type !!!  - followed by any text, case in which a default admonition type will appear - (note) with the entered text inside it.

    -

    Interaction

    -

    By design, admonitions act very similar to block quotes.

    -
      -
    • Selecting a text and pressing the admonition button will turn that text - into an admonition.
    • -
    • If selecting multiple admonitions, pressing the admonition button will - automatically merge them into one.
    • -
    -

    Inside an admonition:

    -
      -
    • Pressing Backspace while the admonition is empty will remove - it.
    • -
    • Pressing Enter will start a new paragraph. Pressing it twice - will exit out of the admonition.
    • -
    • Headings and other block content including tables can be inserted inside - the admonition.
    • -
    -

    Types of admonitions

    -

    There are currently five types of admonitions: Note, Tip, Important, Caution, Warning.

    -

    These types were inspired by GitHub's support for this feature and there - are currently no plans for adjusting it or allowing the user to customize - them.

    -

    Markdown support

    -

    The Markdown syntax for admonitions as supported by Trilium is the one - that GitHub uses, which is as follows:

    > [!NOTE]
    +

    Block quotes

    +

    As the name suggests, block quotes can be useful to cite one or more paragraphs.

    +

    To create a block quote, press + from the Formatting toolbar. + It's also possible to type >, followed by a space to create + one (but only if the cursor is at the beginning of a line).

    +

    Inside the quote block, other block items can be inserted such as tables, + images, or even other block quotes or admonitions.

    +

    Admonitions

    +

    Admonitions are a way to highlight information to the reader. Other names + for it include call-outs and info/warning/alert boxes.

    +
    + +
    +

    From a functional point of view, admonitions act very similarly to a block + quote, just with different styling. This includes the ability to insert + other elements in it such as headings, tables, images, etc.

    +

    Inserting a new admonition

    +

    In the Formatting toolbar:

    +

    + +

    +

    It's possible to insert an admonition simply by typing:

    +
      +
    • !!! note +
    • +
    • !!! tip +
    • +
    • !!! important +
    • +
    • !!! caution +
    • +
    • !!! warning +
    • +
    +

    In addition to that, it's also possible to type !!!  + followed by any text, case in which a default admonition type will appear + (note) with the entered text inside it.

    +

    Interaction

    +

    By design, admonitions act very similar to block quotes.

    +
      +
    • Selecting a text and pressing the admonition button will turn that text + into an admonition.
    • +
    • If selecting multiple admonitions, pressing the admonition button will + automatically merge them into one.
    • +
    +

    Inside an admonition:

    +
      +
    • Pressing Backspace while the admonition is empty will remove + it.
    • +
    • Pressing Enter will start a new paragraph. Pressing it twice + will exit out of the admonition.
    • +
    • Headings and other block content including tables can be inserted inside + the admonition.
    • +
    +

    Types of admonitions

    +

    There are currently five types of admonitions: Note, Tip, Important, Caution, Warning.

    +

    These types were inspired by GitHub's support for this feature and there + are currently no plans for adjusting it or allowing the user to customize + them.

    +

    Markdown support

    +

    The Markdown syntax for admonitions as supported by Trilium is the one + that GitHub uses, which is as follows:

    > [!NOTE]
     > This is a note.
     
     > [!TIP]
    @@ -89,10 +74,5 @@
     
     > [!CAUTION]
     > This is a caution.
    -

    There are currently no plans of supporting alternative admonition syntaxes - such as !!! note.

    -
    -
    - - - \ No newline at end of file +

    There are currently no plans of supporting alternative admonition syntaxes + such as !!! note.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Content language & Right-to-le.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Content language & Right-to-le.html index 187ac7227..6f0462213 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Content language & Right-to-le.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Content language & Right-to-le.html @@ -1,35 +1,15 @@ - - - - - - - - Content language & Right-to-left support - - - -
    -

    Content language & Right-to-left support

    - -
    -

    - -

    -

    A language hint can be provided for text notes. This option informs the - browser or the desktop application about the language the note is written - in (for example this might help with spellchecking), and it also determines - whether the text is displayed from right-to-left for languages such as - Arabic, Hebrew, etc.

    -

    Setting the language

    -

    To set the language of the content, go to “Basic Properties” and look - for the “Language” field.

    -

    Adjusting the list of languages

    -

    By default there will be no language configured, they can be configured - by going to settings or by selecting the “Configure languages” item when - setting the language.

    -
    -
    - - - \ No newline at end of file +

    + +

    +

    A language hint can be provided for text notes. This option informs the + browser or the desktop application about the language the note is written + in (for example this might help with spellchecking), and it also determines + whether the text is displayed from right-to-left for languages such as + Arabic, Hebrew, etc.

    +

    Setting the language

    +

    To set the language of the content, go to “Basic Properties” and look + for the “Language” field.

    +

    Adjusting the list of languages

    +

    By default there will be no language configured, they can be configured + by going to settings or by selecting the “Configure languages” item when + setting the language.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Cut to subnote.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Cut to subnote.html index 01b99d541..853088334 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Cut to subnote.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Cut to subnote.html @@ -1,37 +1,17 @@ - - - - - - - - Cut to subnote - - - -
    -

    Cut to subnote

    - -
    -
    - -
    -

    When editing a document that becomes too large, you can split it into - sub-notes:

    -
      -
    1. Select the desired text and cut it to the clipboard.
    2. -
    3. Create a new sub-note and name it.
    4. -
    5. Paste the content from the clipboard into the sub-note.
    6. -
    -

    Trilium can automate this process. Select some text within the note, and - in the selection toolbar, click the scissors icon for the "cut & pasted - selection to sub-note" action. The heading is automatically detected and - the new sub-note is named accordingly. You can also assign a keyboard shortcut - for this action. This functionality is available through the block toolbar - icon.

    -
    -
    - - - \ No newline at end of file +
    + +
    +

    When editing a document that becomes too large, you can split it into + sub-notes:

    +
      +
    1. Select the desired text and cut it to the clipboard.
    2. +
    3. Create a new sub-note and name it.
    4. +
    5. Paste the content from the clipboard into the sub-note.
    6. +
    +

    Trilium can automate this process. Select some text within the note, and + in the selection toolbar, click the scissors icon for the "cut & pasted + selection to sub-note" action. The heading is automatically detected and + the new sub-note is named accordingly. You can also assign a keyboard shortcut + for this action. This functionality is available through the block toolbar + icon.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting.html index 46358d962..be60556c4 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting.html @@ -1,62 +1,42 @@ - - - - - - - - Developer-specific formatting - - - -
    -

    Developer-specific formatting

    - -
    -

    Inline code

    -

    Inline code formats text using a monospace font to indicate technical - content in a sentence such as code, paths, etc.

    -

    - -

    -

    Example of inline code being used to illustrate file system paths as well - as shell commands (git in this case).

    -

    To insert an inline code:

    -
      -
    • Via the Formatting toolbar, - look for the - button.
    • -
    • Type `code` where code is the desired text to be automatically - formatted as inline code.
    • -
    -

    Code blocks

    -

    Code blocks display a snippet of code as a dedicated block:

    -

    - -

    -

    A code block with JavaScript syntax highlight enabled.

    -

    Note that these are not meant for very large portions of code. Use the - dedicated Code note type - instead.

    -

    See the dedicated documentation for more information: Code blocks -

    -

    Keyboard shortcuts

    -

    This allows marking a portion of text as a shortcut key.

    -

    - -

    -

    To apply this style, press the - button in - group from the Formatting toolbar. - On the floating toolbar, the buttons appear when selecting a text.

    -

    Alternatively, press the Ctrl+Alt+K combination - to apply keyboard shortcut formatting to the current text selection.

    -

    The formatting can be removed by pressing again the button (from the UI - or from the keyboard), or by using the - Remove formatting button.

    -
    -
    - - - \ No newline at end of file +

    Inline code

    +

    Inline code formats text using a monospace font to indicate technical + content in a sentence such as code, paths, etc.

    +

    + +

    +

    Example of inline code being used to illustrate file system paths as well + as shell commands (git in this case).

    +

    To insert an inline code:

    +
      +
    • Via the Formatting toolbar, + look for the + button.
    • +
    • Type `code` where code is the desired text to be automatically + formatted as inline code.
    • +
    +

    Code blocks

    +

    Code blocks display a snippet of code as a dedicated block:

    +

    + +

    +

    A code block with JavaScript syntax highlight enabled.

    +

    Note that these are not meant for very large portions of code. Use the + dedicated Code note type + instead.

    +

    See the dedicated documentation for more information: Code blocks +

    +

    Keyboard shortcuts

    +

    This allows marking a portion of text as a shortcut key.

    +

    + +

    +

    To apply this style, press the + button in + group from the Formatting toolbar. + On the floating toolbar, the buttons appear when selecting a text.

    +

    Alternatively, press the Ctrl+Alt+K combination + to apply keyboard shortcut formatting to the current text selection.

    +

    The formatting can be removed by pressing again the button (from the UI + or from the keyboard), or by using the + Remove formatting button.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks.html index 2a20b5984..ac999ac76 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks.html @@ -1,112 +1,92 @@ - - - - - - - - Code blocks - - - -
    -

    Code blocks

    - -
    -

    - -

    -

    The code blocks feature allows entering pieces of code in text notes.

    -

    Note that this feature is meant for generally small snippets of code. - For larger files such as an entire log, see the Code note type instead.

    -

    Inserting a code block

    -
      -
    • Via the Formatting toolbar, - look for the - button. -
        -
      • Pressing directly on the icon will insert a code block with the language - that was selected most recently. If this is the first time a code block - is inserted, the language will be “Auto-detected” by default.
      • -
      • Pressing the arrow next to the icon, which will show a popup with the - available languages.
      • -
      -
    • -
    • Type ``` (as in Markdown). -
        -
      • Note that it's not possible to specify the language, as it will default - to the last selected language.
      • -
      -
    • -
    -

    Syntax highlighting

    -

    Since TriliumNext v0.90.12, Trilium will try to offer syntax highlighting - to the code block. Note that the syntax highlighting mechanism is slightly - different than the one in Code notes - as different technologies are involved.

    -

    Interaction:

    -
      -
    • When the language is set to Auto-detected (by default), Trilium - will try to identify the programming language (or similar) that corresponds - to the given snippet of text and highlight it. If this is problematic, - consider changing the language of the code block manually.
    • -
    • When the language is set to Plain text, there will be no syntax - highlighting.
    • -
    -

    Note that when editing a text note, syntax highlighting is automatically - disabled if the code block is too big (somewhere around 500 lines). This - value is currently not configurable. For Read-Only Notes, this limitation is - not applied.

    -

    In order to configure this new feature, a section has been added in Options - → Appearance to control the syntax highlighting. There the color scheme - can be chosen, from a builtin selection of themes from Highlight.js.

    -
      -
    • It is possible to disable the syntax highlighting for all the notes by - selecting “No syntax highlighting” in the “Color scheme” option.
    • -
    • Word wrapping is disabled by default, but can be configured from the same - section.
    • -
    - -

    Migrating from existing syntax highlight plugins

    -

    If you are already using a syntax highlighting plugin such as the Trilium-SyntaxHighlightWidget we - are basing off of, it is important to disable that plugin before upgrading - in order for it not to conflict with our implementation.

    -

    Should you encounter any issues after the migration, try running Trilium - in safe mode.

    -

    Changing the language of a code block

    -

    Simply click anywhere inside the code block and press again the code block - button in the Formatting toolbar: -
    - -

    -

    Adjusting the list of languages

    -

    The code blocks feature shares the list of languages with the  - Code note type.

    -

    The supported languages can be adjusted by going to Options, then Code Notes and - looking for the Available MIME types in the dropdown section. Simply - check any of the items to add them to the list, or uncheck them to remove - them from the list.

    -

    Note that the list of languages is not immediately refreshed, you'd have - to manually refresh the application.

    -
    -
    - - - \ No newline at end of file +

    + +

    +

    The code blocks feature allows entering pieces of code in text notes.

    +

    Note that this feature is meant for generally small snippets of code. + For larger files such as an entire log, see the Code note type instead.

    +

    Inserting a code block

    +
      +
    • Via the Formatting toolbar, + look for the + button. +
        +
      • Pressing directly on the icon will insert a code block with the language + that was selected most recently. If this is the first time a code block + is inserted, the language will be “Auto-detected” by default.
      • +
      • Pressing the arrow next to the icon, which will show a popup with the + available languages.
      • +
      +
    • +
    • Type ``` (as in Markdown). +
        +
      • Note that it's not possible to specify the language, as it will default + to the last selected language.
      • +
      +
    • +
    +

    Syntax highlighting

    +

    Since TriliumNext v0.90.12, Trilium will try to offer syntax highlighting + to the code block. Note that the syntax highlighting mechanism is slightly + different than the one in Code notes + as different technologies are involved.

    +

    Interaction:

    +
      +
    • When the language is set to Auto-detected (by default), Trilium + will try to identify the programming language (or similar) that corresponds + to the given snippet of text and highlight it. If this is problematic, + consider changing the language of the code block manually.
    • +
    • When the language is set to Plain text, there will be no syntax + highlighting.
    • +
    +

    Note that when editing a text note, syntax highlighting is automatically + disabled if the code block is too big (somewhere around 500 lines). This + value is currently not configurable. For Read-Only Notes, this limitation is + not applied.

    +

    In order to configure this new feature, a section has been added in Options + → Appearance to control the syntax highlighting. There the color scheme + can be chosen, from a builtin selection of themes from Highlight.js.

    +
      +
    • It is possible to disable the syntax highlighting for all the notes by + selecting “No syntax highlighting” in the “Color scheme” option.
    • +
    • Word wrapping is disabled by default, but can be configured from the same + section.
    • +
    + +

    Migrating from existing syntax highlight plugins

    +

    If you are already using a syntax highlighting plugin such as the Trilium-SyntaxHighlightWidget we + are basing off of, it is important to disable that plugin before upgrading + in order for it not to conflict with our implementation.

    +

    Should you encounter any issues after the migration, try running Trilium + in safe mode.

    +

    Changing the language of a code block

    +

    Simply click anywhere inside the code block and press again the code block + button in the Formatting toolbar: +
    + +

    +

    Adjusting the list of languages

    +

    The code blocks feature shares the list of languages with the  + Code note type.

    +

    The supported languages can be adjusted by going to Options, then Code Notes and + looking for the Available MIME types in the dropdown section. Simply + check any of the items to add them to the list, or uncheck them to remove + them from the list.

    +

    Note that the list of languages is not immediately refreshed, you'd have + to manually refresh the application.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Footnotes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Footnotes.html index 973ea6109..dc63ed511 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Footnotes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Footnotes.html @@ -1,41 +1,21 @@ - - - - - - - - Footnotes - - - -
    -

    Footnotes

    - -
    -
    - -
    -

    Footnotes are a good place to insert references to a paragraph or details - that are displayed at the bottom of the note.

    -

    Interaction

    -
      -
    • To insert a new footnote, press - (or press the right arrow and select New footnote).
    • -
    • To insert a reference to an existing footnote, press the right arrow and - select Insert footnote, followed by the number of the footnote - to insert.
    • -
    • Hovering over a reference (e.g. [1]) will display the content - of the footnote in a tooltip for easy reference.
    • -
    • Clicking on a reference in the text (e.g. [1]) will navigate - to the corresponding footnote.
    • -
    • Similarly, clicking on the ^ button of a footnote will navigate - to the corresponding reference in the text.
    • -
    -
    -
    - - - \ No newline at end of file +
    + +
    +

    Footnotes are a good place to insert references to a paragraph or details + that are displayed at the bottom of the note.

    +

    Interaction

    +
      +
    • To insert a new footnote, press + (or press the right arrow and select New footnote).
    • +
    • To insert a reference to an existing footnote, press the right arrow and + select Insert footnote, followed by the number of the footnote + to insert.
    • +
    • Hovering over a reference (e.g. [1]) will display the content + of the footnote in a tooltip for easy reference.
    • +
    • Clicking on a reference in the text (e.g. [1]) will navigate + to the corresponding footnote.
    • +
    • Similarly, clicking on the ^ button of a footnote will navigate + to the corresponding reference in the text.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar.html index 227eede0f..72e18f740 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar.html @@ -1,59 +1,39 @@ - - - - - - - - Formatting toolbar - - - -
    -

    Formatting toolbar

    - -
    -

    Trilium allows two different editing experiences for text notes, based - on your preference.

    -

    The type of formatting toolbar can be changed by going to Options and then looking for the  - Text Notes section. In it, look for the Formatting toolbar category.

    -

    Floating

    -

    The floating bar is a more minimalist option, in which the formatting - is hidden behind two different popups.

    -

    Block-level popup

    -

    The first popup is the block-level popup. This will appear to the left - of the current paragraph you are currently editing, as a sequence of dots: -
    - -

    -

    Clicking this popup will reveal the formatting options that are specific - to the entire paragraph, such as setting a heading, lists, tables, etc.

    -

    - -

    -

    Inline popup

    -

    The inline popup appears automatically when selecting a text:

    -

    - -

    -

    All the options here apply only to the selected portion of text, such - as changing the font size, or making the text bold.

    -

    Fixed

    -

    The fixed formatting offers a more traditional editing paradigm, usually - useful if a lot of formatting is needed.

    -

    All the options are combined into a single toolbar that will appear as - part of the Ribbon.

    -

    - -

    -

    By default, if the toolbar does not fit on the screen, the rest of the - options will be grouped into a single option at the end. It is possible - to display items on multiple lines by checking the corresponding option - in the Formatting toolbar section.

    -
    -
    - - - \ No newline at end of file +

    Trilium allows two different editing experiences for text notes, based + on your preference.

    +

    The type of formatting toolbar can be changed by going to Options and then looking for the  + Text Notes section. In it, look for the Formatting toolbar category.

    +

    Floating

    +

    The floating bar is a more minimalist option, in which the formatting + is hidden behind two different popups.

    +

    Block-level popup

    +

    The first popup is the block-level popup. This will appear to the left + of the current paragraph you are currently editing, as a sequence of dots: +
    + +

    +

    Clicking this popup will reveal the formatting options that are specific + to the entire paragraph, such as setting a heading, lists, tables, etc.

    +

    + +

    +

    Inline popup

    +

    The inline popup appears automatically when selecting a text:

    +

    + +

    +

    All the options here apply only to the selected portion of text, such + as changing the font size, or making the text bold.

    +

    Fixed

    +

    The fixed formatting offers a more traditional editing paradigm, usually + useful if a lot of formatting is needed.

    +

    All the options are combined into a single toolbar that will appear as + part of the Ribbon.

    +

    + +

    +

    By default, if the toolbar does not fit on the screen, the rest of the + options will be grouped into a single option at the end. It is possible + to display items on multiple lines by checking the corresponding option + in the Formatting toolbar section.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/General formatting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/General formatting.html index e3f7e38e6..8ee8f6989 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/General formatting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/General formatting.html @@ -1,114 +1,94 @@ - - - - - - - - General formatting - - - -
    -

    General formatting

    - -
    -

    Headings

    -
    - -
    -

    Trilium provides headings to define sections within text. Headings are - numbered from 2 to 6.

    -

    The reason why Heading 1 is missing from the list is that it is being - reserved for the title of note.

    -

    To turn a heading back into a normal text, select Paragraph from - the list.

    -

    Apart from using the UI, it is also possible to quickly insert headings - using the Markdown-like shortcuts:

    -
      -
    • ## for Heading 2
    • -
    • ### for Heading 3
    • -
    • #### for Heading 4
    • -
    • ##### for Heading 5
    • -
    • ###### for Heading 6
    • -
    -

    Font size

    -
    - -
    -

    One way to highlight a portion of text is to increase the size of the - font.

    -

    To do so, select some text and choose an option from the Font size selector - (as pictured to the right).

    -

    Unlike other text editors such as Microsoft Word, the font size is relative - (i.e. “Tiny”, “Small” instead of a number like 12).

    -

    Avoid using this feature just to simply make all text bigger. In that - case it's generally better to adjust the font size for all notes in  - Options or by zooming.

    -

    Bold, italic, underline, strike-through

    -
    - -
    -

    Text can be formatted as Bold, Italic, Underline - or Strike-through via the dedicated buttons in the formatting - toolbar.

    -

    This formatting can be easily removed using the Remove formatting item.

    -

    The following keyboard shortcuts can be used here:

    -
      -
    • Ctrl+B for bold
    • -
    • Ctrl+I for italic
    • -
    • Ctrl+U for underline
    • -
    -

    Alternatively, Markdown-like formatting can be used:

    -
      -
    • Bold: Type **text** or __text__ -
    • -
    • Italic: Type *text* or _text_ -
    • -
    • Strikethrough: Type ~~text~~ -
    • -
    -

    Superscript, subscript

    -

    This allows writing superscript or subscript text.

    -

    This is mostly useful for units of measure (e.g. cm3 for cubic centimeters) - and chemical notations (e.g. NaHCO3)

    -

    For mathematical formulas, prefer the Math Equations feature - instead.

    -

    Font color and background color

    -
    - -
    -

    Selected text can be colored with one of the predefined colors from a - palette or any color can be selected using the color picker.

    -

    Once there is at least one color defined in the document, it will appear - in the list for easy reuse.

    -

    When selecting a foreground or a background color, consider the contrast - if switching between a dark theme or a light theme.

    -

    To remove either the background or foreground color of a text, select - the corresponding formatting button and press Remove color or use - the Remove formatting toolbar item.

    -

    Remove formatting

    -

    The - Remove formatting button is a quick way to eliminate the general - formatting styling of a particular text.

    -

    Simply select the text and press the button to remove the formatting (bold, - italic, colors, sizes, etc.). If the text does not have any removable formatting, - the button will appear disabled.

    -

    Note that heading styles are not taken into consideration, these must - be manually changed back to a paragraph according to the Headings section.

    -

    When pasting content that comes with undesired formatting, an alternative - to pasting and then removing formatting is pasting as plain text via Ctrl+Shift+V.

    -

    Support for Markdown

    -

    When exported to Markdown, - most of the general formatting is maintained such as headings, bold, italic, - underline, etc.

    -
    -
    - - - \ No newline at end of file +

    Headings

    +
    + +
    +

    Trilium provides headings to define sections within text. Headings are + numbered from 2 to 6.

    +

    The reason why Heading 1 is missing from the list is that it is being + reserved for the title of note.

    +

    To turn a heading back into a normal text, select Paragraph from + the list.

    +

    Apart from using the UI, it is also possible to quickly insert headings + using the Markdown-like shortcuts:

    +
      +
    • ## for Heading 2
    • +
    • ### for Heading 3
    • +
    • #### for Heading 4
    • +
    • ##### for Heading 5
    • +
    • ###### for Heading 6
    • +
    +

    Font size

    +
    + +
    +

    One way to highlight a portion of text is to increase the size of the + font.

    +

    To do so, select some text and choose an option from the Font size selector + (as pictured to the right).

    +

    Unlike other text editors such as Microsoft Word, the font size is relative + (i.e. “Tiny”, “Small” instead of a number like 12).

    +

    Avoid using this feature just to simply make all text bigger. In that + case it's generally better to adjust the font size for all notes in  + Options or by zooming.

    +

    Bold, italic, underline, strike-through

    +
    + +
    +

    Text can be formatted as Bold, Italic, Underline + or Strike-through via the dedicated buttons in the formatting + toolbar.

    +

    This formatting can be easily removed using the Remove formatting item.

    +

    The following keyboard shortcuts can be used here:

    +
      +
    • Ctrl+B for bold
    • +
    • Ctrl+I for italic
    • +
    • Ctrl+U for underline
    • +
    +

    Alternatively, Markdown-like formatting can be used:

    +
      +
    • Bold: Type **text** or __text__ +
    • +
    • Italic: Type *text* or _text_ +
    • +
    • Strikethrough: Type ~~text~~ +
    • +
    +

    Superscript, subscript

    +

    This allows writing superscript or subscript text.

    +

    This is mostly useful for units of measure (e.g. cm3 for cubic centimeters) + and chemical notations (e.g. NaHCO3)

    +

    For mathematical formulas, prefer the Math Equations feature + instead.

    +

    Font color and background color

    +
    + +
    +

    Selected text can be colored with one of the predefined colors from a + palette or any color can be selected using the color picker.

    +

    Once there is at least one color defined in the document, it will appear + in the list for easy reuse.

    +

    When selecting a foreground or a background color, consider the contrast + if switching between a dark theme or a light theme.

    +

    To remove either the background or foreground color of a text, select + the corresponding formatting button and press Remove color or use + the Remove formatting toolbar item.

    +

    Remove formatting

    +

    The + Remove formatting button is a quick way to eliminate the general + formatting styling of a particular text.

    +

    Simply select the text and press the button to remove the formatting (bold, + italic, colors, sizes, etc.). If the text does not have any removable formatting, + the button will appear disabled.

    +

    Note that heading styles are not taken into consideration, these must + be manually changed back to a paragraph according to the Headings section.

    +

    When pasting content that comes with undesired formatting, an alternative + to pasting and then removing formatting is pasting as plain text via Ctrl+Shift+V.

    +

    Support for Markdown

    +

    When exported to Markdown, + most of the general formatting is maintained such as headings, bold, italic, + underline, etc.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list.html index 20e4060fe..b492c7cc0 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list.html @@ -1,52 +1,32 @@ - - - - - - - - Highlights list - - - -
    -

    Highlights list

    - -
    -
    - -
    -

    Similar to the Table of contents, - but instead of headings this feature will list highlighted text from a - text note and allow easy navigation to them. The list will be displayed - in the Right Sidebar, - provided there is at least one highlighted text.

    -

    Highlighted text is defined as:

    -
      -
    • Bold text.
    • -
    • Italic text.
    • -
    • Underlined text.
    • -
    • Text with a foreground color set.
    • -
    • Text with a background color/highlight set.
    • -
    -

    Interaction

    -
      -
    • Clicking on a highlighted text will scroll the document to its position.
    • -
    • Pressing the close button will dismiss the list of highlights but it can - be shown again from the Floating buttons section.
    • -
    -

    Global configuration

    -

    It's possible to toggle the display of each category of highlighted text - (as defined above) in the highlights list by going to Text Notes settings - and looking for the Highlights List section.

    -

    Per-note configuration

    -

    To suppress the display of highlighted text for one specific note, use  - Attributes to add the #hideHighlightWidget label.

    -
    -
    - - - \ No newline at end of file +
    + +
    +

    Similar to the Table of contents, + but instead of headings this feature will list highlighted text from a + text note and allow easy navigation to them. The list will be displayed + in the Right Sidebar, + provided there is at least one highlighted text.

    +

    Highlighted text is defined as:

    +
      +
    • Bold text.
    • +
    • Italic text.
    • +
    • Underlined text.
    • +
    • Text with a foreground color set.
    • +
    • Text with a background color/highlight set.
    • +
    +

    Interaction

    +
      +
    • Clicking on a highlighted text will scroll the document to its position.
    • +
    • Pressing the close button will dismiss the list of highlights but it can + be shown again from the Floating buttons section.
    • +
    +

    Global configuration

    +

    It's possible to toggle the display of each category of highlighted text + (as defined above) in the highlights list by going to Text Notes settings + and looking for the Highlights List section.

    +

    Per-note configuration

    +

    To suppress the display of highlighted text for one specific note, use  + Attributes to add the #hideHighlightWidget label.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html index 293251c96..3ac99f8af 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html @@ -1,126 +1,106 @@ - +

    Trilium supports storing and displaying images. Supported formats are + JPEG, PNG and GIF.

    +

    An image can be uploaded in the form of note's attachment or + as a standalone note placed into the + note tree. Its reference can be copied into a text note, in order + to display it in the text itself.

    +

    Uploading images

    +

    To add an image to the note, simply drag it from file explorer onto the + note editor inside Trilium and the image will be uploaded.

    +

    + +

    +

    Alternatively you can click on block toolbar and then on "Insert image":

    +

    + +

    +

    You can also copy and paste an image from web - the image will be (asynchronously) + downloaded and embedded.

    +

    Configuring the images

    +

    Clicking on an image will reveal a popup with multiple options: +
    + +

    +

    Alignment

    +

    The first set of options configure the alignment are, in order:

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    IconOptionPreviewDescription
    + + Inline + + As the name suggests, the name can be put inside a paragraph and moved + around similarly as if it was a block of text. Use drag & drop or cut-paste + to move it around.
    + + Centered image + + The image will be displayed as a block and centered, not allowing text + in either the left or right of it.
    + + Wrap text + + The image will be displayed to the left or the right of the text.
    + + Block align + + Similarly to Centered image, the image will be displayed as a + block and aligned either to the left or to the right, but not allowing + text to flow on either of its sides.
    +
    - - - - - - Images - - - -
    -

    Images

    - -
    -

    Trilium supports storing and displaying images. Supported formats are - JPEG, PNG and GIF.

    -

    An image can be uploaded in the form of note's attachment or - as a standalone note placed into the - note tree. Its reference can be copied into a text note, in order - to display it in the text itself.

    -

    Uploading images

    -

    To add an image to the note, simply drag it from file explorer onto the - note editor inside Trilium and the image will be uploaded.

    -

    - -

    -

    Alternatively you can click on block toolbar and then on "Insert image":

    -

    - -

    -

    You can also copy and paste an image from web - the image will be (asynchronously) - downloaded and embedded.

    -

    Configuring the images

    -

    Clicking on an image will reveal a popup with multiple options: -
    - -

    -

    Alignment

    -

    The first set of options configure the alignment are, in order:

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    IconOptionPreviewDescription
    - - Inline - - As the name suggests, the name can be put inside a paragraph and moved - around similarly as if it was a block of text. Use drag & drop or cut-paste - to move it around.
    - - Centered image - - The image will be displayed as a block and centered, not allowing text - in either the left or right of it.
    - - Wrap text - - The image will be displayed to the left or the right of the text.
    - - Block align - - Similarly to Centered image, the image will be displayed as a - block and aligned either to the left or to the right, but not allowing - text to flow on either of its sides.
    -
    -

    Compression

    -

    Since Trilium isn't really meant to be primary storage for image data, - it attempts to compress and resize (with pretty aggressive settings) uploaded - images before storing them to the database. You may then notice some quality - degradation. Basic quality settings is available in Options → Other.

    -

    If you want to save images in their original resolution, it is recommended - to save them as attachment to note (look for the contextual menu in  - Note buttons → Import files).

    -

    Aligning images side-by-side

    -

    There are generally two ways to display images side by side:

    -
      -
    • If they are roughly the same size, simply make the two images in-line, - according to the alignment section above. The images can be dragged & - dropped onto the same line.
    • -
    • If they are on different size, create a table with - invisible borders.
    • -
    -
    -
    - - - \ No newline at end of file +

    Since Trilium isn't really meant to be primary storage for image data, + it attempts to compress and resize (with pretty aggressive settings) uploaded + images before storing them to the database. You may then notice some quality + degradation. Basic quality settings is available in Options → Other.

    +

    If you want to save images in their original resolution, it is recommended + to save them as attachment to note (look for the contextual menu in  + Note buttons → Import files).

    +

    Aligning images side-by-side

    +

    There are generally two ways to display images side by side:

    +
      +
    • If they are roughly the same size, simply make the two images in-line, + according to the alignment section above. The images can be dragged & + dropped onto the same line.
    • +
    • If they are on different size, create a table with + invisible borders.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references.html index 053848f3b..c9b26fc84 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references.html @@ -1,51 +1,31 @@ - - - - - - - - Image references - - - -
    -

    Image references

    - -
    -
    - -
    -

    Image references are an easy way to embed the preview of another note - type into a Text note.

    -

    Supported note types

    - -

    Steps

    -
      -
    1. Go to one of the supported notes (listed above) and look for the - button in the Floating buttons area.
    2. -
    3. Go to a Text note - and use the Paste function to insert the reference to that note.
    4. -
    -

    Interaction

    -
      -
    • Double-clicking an image reference from a text note will automatically - open the target note.
    • -
    • Clicking an image reference while Ctrl is pressed will open the - target note in a new tab.
    • -
    • Modifying the target note should also update the image reference. If that - doesn't happen, consider Refreshing the application.
    • -
    -
    -
    - - - \ No newline at end of file +
    + +
    +

    Image references are an easy way to embed the preview of another note + type into a Text note.

    +

    Supported note types

    + +

    Steps

    +
      +
    1. Go to one of the supported notes (listed above) and look for the + button in the Floating buttons area.
    2. +
    3. Go to a Text note + and use the Paste function to insert the reference to that note.
    4. +
    +

    Interaction

    +
      +
    • Double-clicking an image reference from a text note will automatically + open the target note.
    • +
    • Clicking an image reference while Ctrl is pressed will open the + target note in a new tab.
    • +
    • Modifying the target note should also update the image reference. If that + doesn't happen, consider Refreshing the application.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note.html index d0e9afb33..84adc92de 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note.html @@ -1,28 +1,8 @@ - - - - - - - - Include Note - - - -
    -

    Include Note

    - -
    -

    Text notes can "include" another note as a read-only widget. This can - be useful for e.g. including a dynamically generated chart (from scripts - & "render HTML" note) or other more advanced use cases.

    -

    Including a note

    -

    In the Formatting toolbar, - look for the - button. There is also a keyboard shortcut defined for it but it is not - allocated by default.

    -
    -
    - - - \ No newline at end of file +

    Text notes can "include" another note as a read-only widget. This can + be useful for e.g. including a dynamically generated chart (from scripts + & "render HTML" note) or other more advanced use cases.

    +

    Including a note

    +

    In the Formatting toolbar, + look for the + button. There is also a keyboard shortcut defined for it but it is not + allocated by default.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons.html index c11303b76..a230123bf 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons.html @@ -1,80 +1,60 @@ - - - - - - - - Insert buttons - - - -
    -

    Insert buttons

    +

    Press the + button in the Formatting toolbar to + reveal special inserable items and blocks such as symbols, Math expressions + and separators.

    +

    Symbols

    +
    + +
    +

    Pressing the + button will reveal a popup window displaying a list of characters that + are generally more difficult to insert directly from the keyboard, such + as a subset of emojis, quotation characters, etc.

    +

    Interaction:

    +
      +
    • Click on a character to insert it at the current cursor position.
    • +
    • The window can be dragged around by the top bar where the title is, to + avoid it getting in the way of the text.
    • +
    • Click on the Category selector to filter the characters.
    • +
    +

    Math equations

    +

    See the dedicated Math Equations page.

    +

    Mermaid diagram

    +

    Press the + button to create an inline Mermaid diagram.

    +

    This feature is quite similar to the Mermaid Diagrams note + types and is meant as an alternative to it for simple diagrams. For more + complex diagrams, use the Include Note feature + for a dedicated Mermaid note.

    +
    + +
    -
    -

    Press the - button in the Formatting toolbar to - reveal special inserable items and blocks such as symbols, Math expressions - and separators.

    -

    Symbols

    -
    - -
    -

    Pressing the - button will reveal a popup window displaying a list of characters that - are generally more difficult to insert directly from the keyboard, such - as a subset of emojis, quotation characters, etc.

    -

    Interaction:

    -
      -
    • Click on a character to insert it at the current cursor position.
    • -
    • The window can be dragged around by the top bar where the title is, to - avoid it getting in the way of the text.
    • -
    • Click on the Category selector to filter the characters.
    • -
    -

    Math equations

    -

    See the dedicated Math Equations page.

    -

    Mermaid diagram

    -

    Press the - button to create an inline Mermaid diagram.

    -

    This feature is quite similar to the Mermaid Diagrams note - types and is meant as an alternative to it for simple diagrams. For more - complex diagrams, use the Include Note feature - for a dedicated Mermaid note.

    -
    - -
    -

    Horizontal ruler

    -

    This feature will display a horizontal line, generally useful to separate - different sections of the text. To do so, press the - button in the Formatting toolbar.

    - -

    Alternatively, it's possible to insert a horizontal ruler by typing ---.

    -

    Page break

    -
    - -
    -

    Page breaks provide a way to force the next paragraph or block (table, - image, etc.) to be displayed onto the next page when printing (either to - a real printer to when exporting to PDF).

    -

    Page breaks are marked in the editor with the words Page break, - but they will not actually be shown when printed.

    -
      -
    • To insert a page break, press the - in the formatting toolbar.
    • -
    • To insert many page breaks at once, insert a page break first, click on - it and press Ctrl+C. Then use Ctrl+V, - to paste as many times as needed.
    • -
    -
    -
    - - - \ No newline at end of file +

    This feature will display a horizontal line, generally useful to separate + different sections of the text. To do so, press the + button in the Formatting toolbar.

    + +

    Alternatively, it's possible to insert a horizontal ruler by typing ---.

    +

    Page break

    +
    + +
    +

    Page breaks provide a way to force the next paragraph or block (table, + image, etc.) to be displayed onto the next page when printing (either to + a real printer to when exporting to PDF).

    +

    Page breaks are marked in the editor with the words Page break, + but they will not actually be shown when printed.

    +
      +
    • To insert a page break, press the + in the formatting toolbar.
    • +
    • To insert many page breaks at once, insert a page break first, click on + it and press Ctrl+C. Then use Ctrl+V, + to paste as many times as needed.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.html index 2ccbdb65f..3c18e673d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.html @@ -1,357 +1,337 @@ - - - - - - - - Keyboard shortcuts - - - -
    -

    Keyboard shortcuts

    + +

    Content editing

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ActionPCMac
    Insert a hard break (a new paragraph)Enter +  
    Insert a soft break (a <br> element)Shift+Enter + ⇧Enter +
    Copy selected contentCtrl+C + ⌘C +
    Paste contentCtrl+V + ⌘V +
    Paste content as plain textCtrl+Shift+V + ⌘⇧V +
    UndoCtrl+Z + ⌘Z +
    RedoCtrl+Y, Ctrl+Shift+Z + ⌘Y, ⌘⇧Z +
    Bold textCtrl+B + ⌘B +
    Change text caseShift+F3 + ⇧F3 (may require Fn)
    Create linkCtrl+K + ⌘K +
    Move out of a link←←, →→ +  
    Move out of an inline code style←←, →→ +  
    Select allCtrl+A + ⌘A +
    Find in the documentCtrl+F + ⌘F +
    Copy text formattingCtrl+Shift+C + ⌘⇧C +
    Paste text formattingCtrl+Shift+V + ⌘⇧V +
    Italic textCtrl+I + ⌘I +
    Strikethrough textCtrl+Shift+X + ⌘⇧X +
    Underline textCtrl+U + ⌘U +
    Revert autoformatting actionBackspace +  
    +
    -
    - -

    Content editing

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ActionPCMac
    Insert a hard break (a new paragraph)Enter -  
    Insert a soft break (a <br> element)Shift+Enter - ⇧Enter -
    Copy selected contentCtrl+C - ⌘C -
    Paste contentCtrl+V - ⌘V -
    Paste content as plain textCtrl+Shift+V - ⌘⇧V -
    UndoCtrl+Z - ⌘Z -
    RedoCtrl+Y, Ctrl+Shift+Z - ⌘Y, ⌘⇧Z -
    Bold textCtrl+B - ⌘B -
    Change text caseShift+F3 - ⇧F3 (may require Fn)
    Create linkCtrl+K - ⌘K -
    Move out of a link←←, →→ -  
    Move out of an inline code style←←, →→ -  
    Select allCtrl+A - ⌘A -
    Find in the documentCtrl+F - ⌘F -
    Copy text formattingCtrl+Shift+C - ⌘⇧C -
    Paste text formattingCtrl+Shift+V - ⌘⇧V -
    Italic textCtrl+I - ⌘I -
    Strikethrough textCtrl+Shift+X - ⌘⇧X -
    Underline textCtrl+U - ⌘U -
    Revert autoformatting actionBackspace -  
    -
    -

    Interacting with blocks

    -

    Blocks are images, tables, blockquotes, annotations.

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ActionPCMac
    Insert a new paragraph directly after a widgetEnter -  
    Insert a new paragraph directly before a widgetShift+Enter - ⇧Enter -
    Move the caret to allow typing directly before a widget, -  
    Move the caret to allow typing directly after a widget, -  
    After entering a nested editable, move the selection to the closest ancestor - widget. For example: move from an image caption to the whole image widget.Tab then Esc -  
    -
    -

    Specifically for lists:

    -
    - - - - - - - - - - - - - - - - - - - - -
    ActionPCMac
    Increase list item indent -  
    Decrease list item indentShift+ - ⇧⇥ -
    -
    -

    In tables:

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ActionPCMac
    Move the selection to the next cell -  
    Move the selection to the previous cellShift+ - ⇧⇥ -
    Insert a new table row (when in the last cell of a table) -  
    Navigate through the table, , , -  
    -
    - -

    General UI shortcuts

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ActionPCMac
    Close contextual balloons, dropdowns, and dialogsEsc -  
    Open the accessibility help dialogAlt+0 - ⌥0 -
    Move focus between form fields (inputs, buttons, etc.), Shift+ - , ⇧⇥ -
    Move focus to the toolbar, navigate between toolbarsAlt+F10 - ⌥F10 (may require Fn)
    Navigate through the toolbar or menu bar, , , -  
    Navigate to the next focusable field or an element outside the editorTab, Shift+Tab -  
    Execute the currently focused button. Executing buttons that interact - with the editor content moves the focus back to the content.Enter, Space -  
    Move focus in and out of an active dialog windowCtrl+F6 - ⌘F6 (may require Fn)
    -
    -
    -
    - +

    Blocks are images, tables, blockquotes, annotations.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ActionPCMac
    Insert a new paragraph directly after a widgetEnter +  
    Insert a new paragraph directly before a widgetShift+Enter + ⇧Enter +
    Move the caret to allow typing directly before a widget, +  
    Move the caret to allow typing directly after a widget, +  
    After entering a nested editable, move the selection to the closest ancestor + widget. For example: move from an image caption to the whole image widget.Tab then Esc +  
    +
    +

    Specifically for lists:

    +
    + + + + + + + + + + + + + + + + + + + + +
    ActionPCMac
    Increase list item indent +  
    Decrease list item indentShift+ + ⇧⇥ +
    +
    +

    In tables:

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ActionPCMac
    Move the selection to the next cell +  
    Move the selection to the previous cellShift+ + ⇧⇥ +
    Insert a new table row (when in the last cell of a table) +  
    Navigate through the table, , , +  
    +
    - \ No newline at end of file +

    General UI shortcuts

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ActionPCMac
    Close contextual balloons, dropdowns, and dialogsEsc +  
    Open the accessibility help dialogAlt+0 + ⌥0 +
    Move focus between form fields (inputs, buttons, etc.), Shift+ + , ⇧⇥ +
    Move focus to the toolbar, navigate between toolbarsAlt+F10 + ⌥F10 (may require Fn)
    Navigate through the toolbar or menu bar, , , +  
    Navigate to the next focusable field or an element outside the editorTab, Shift+Tab +  
    Execute the currently focused button. Executing buttons that interact + with the editor content moves the focus back to the content.Enter, Space +  
    Move focus in and out of an active dialog windowCtrl+F6 + ⌘F6 (may require Fn)
    +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html index 357a19455..8f7bca47d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html @@ -1,59 +1,39 @@ - - - - - - - - Links - - - -
    -

    Links

    - -
    -

    External links

    -

    External link is general web link targeting some external web resource - - e.g. https://en.wikipedia.org/wiki/South_China_Sea is - an external link to one Wikipedia page.

    -

    External links are done through CKEditor native links. To create an external - link, select text and press Ctrl + K or wait for the - "balloon" to appear and click link icon there.

    -

    - -

    -

    You can follow external link by either double clicking (will open new - tab/window) it or right clicking on them and choosing "Open in new tab".

    -

    Internal links to notes

    -

    Links to internal notes are created a bit differently. To create link - to note at current cursor position, press Ctrl + L.

    -

    In the dialog you can see radio button to choose from different types - of linking:

    -
      -
    • link title mirrors the note's current title - this is sometimes also called - "reference link". Title of such links cannot be changed, instead it is - always mirroring the title of linked note. This way the link title is never - outdated
    • -
    • link title can be changed arbitrarily - this is the traditional hyperlink - - you link to a particular note and can choose the link title
    • -
    -

    - -

    -

    You can follow the note link by double clicking it.

    -

    Alternatively if you only wish to quickly preview the content, you can - hover over the link and will see read only preview.

    -

    In-place linking

    -

    Trilium also provides "inline" linking - type @ and you'll - see an autocomplete, just type few characters from the desired note title, - press enter and you have a link.

    -

    Note map

    -

    Trilium provides a visualisation of incoming and outgoing links for a - particular note. See note map for - details.

    -
    -
    - - - \ No newline at end of file +

    External links

    +

    External link is general web link targeting some external web resource + - e.g. https://en.wikipedia.org/wiki/South_China_Sea is + an external link to one Wikipedia page.

    +

    External links are done through CKEditor native links. To create an external + link, select text and press Ctrl + K or wait for the + "balloon" to appear and click link icon there.

    +

    + +

    +

    You can follow external link by either double clicking (will open new + tab/window) it or right clicking on them and choosing "Open in new tab".

    +

    Internal links to notes

    +

    Links to internal notes are created a bit differently. To create link + to note at current cursor position, press Ctrl + L.

    +

    In the dialog you can see radio button to choose from different types + of linking:

    +
      +
    • link title mirrors the note's current title - this is sometimes also called + "reference link". Title of such links cannot be changed, instead it is + always mirroring the title of linked note. This way the link title is never + outdated
    • +
    • link title can be changed arbitrarily - this is the traditional hyperlink + - you link to a particular note and can choose the link title
    • +
    +

    + +

    +

    You can follow the note link by double clicking it.

    +

    Alternatively if you only wish to quickly preview the content, you can + hover over the link and will see read only preview.

    +

    In-place linking

    +

    Trilium also provides "inline" linking - type @ and you'll + see an autocomplete, just type few characters from the desired note title, + press enter and you have a link.

    +

    Note map

    +

    Trilium provides a visualisation of incoming and outgoing links for a + particular note. See note map for + details.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists.html index f5f8255ff..50dfcf4a2 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists.html @@ -1,118 +1,98 @@ - - - - - - - - Lists - - - -
    -

    Lists

    - -
    -

    There are three types of lists supported by text notes:

    -
      -
    • - Bulleted lists (also known as unordered lists).
    • -
    • - Numbered lists (or ordered lists).
    • -
    • - To-do lists
    • -
    -

    For bulleted and numbered lists, it's possible to configure an alternative - marker such as squares or Roman numbering by pressing the - icon. For numbered lists, it's also possible to specify the number to - start at or whether to count in reverse order.

    -

    Keyboard interaction

    -
      -
    • To create a new list: -
        -
      • Bulleted list: Start a line with * or - followed - by a space;
      • -
      • Numbered list: Start a line with 1. or 1) followed - by a space;
      • -
      • To-do list: Start a line with [ ] for an unchecked item or [x] for - a checked item.
      • -
      -
    • -
    • To create a new item in the list, press Enter.
    • -
    • To create a blank line within a list item, press Shift+Enter.
    • -
    • To exit out of the list, press Enter twice.
    • -
    • To merge two lists, simply delete the gap between them.
    • -
    • To create nested lists, simply use the - button (see Indentation in Other features) - or the Tab key. To decrease the nesting level for the current - element, press Shift+Tab.
    • -
    -

    Headings, code blocks within lists

    -

    It possible to add content-level blocks such as headings, code blocks, - tables within lists, as follows:

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1 - - First, create a list.
    2 - - Press Enter to create a new list item.
    3 - - Press Backspace to get rid of the bullet point. Notice the cursor position.
    4 - - At this point, insert any desired block-level item such as a code block.
    5 - - To continue with a new bullet point, press Enter until the cursor moves - to a new blank position.
    6 - - Press Enter once more to create the new bullet.
    -
    -

    The same principle applies to all three list types (bullet, numbered and - to-do).

    -
    -
    - - - \ No newline at end of file +

    There are three types of lists supported by text notes:

    +
      +
    • + Bulleted lists (also known as unordered lists).
    • +
    • + Numbered lists (or ordered lists).
    • +
    • + To-do lists
    • +
    +

    For bulleted and numbered lists, it's possible to configure an alternative + marker such as squares or Roman numbering by pressing the + icon. For numbered lists, it's also possible to specify the number to + start at or whether to count in reverse order.

    +

    Keyboard interaction

    +
      +
    • To create a new list: +
        +
      • Bulleted list: Start a line with * or - followed + by a space;
      • +
      • Numbered list: Start a line with 1. or 1) followed + by a space;
      • +
      • To-do list: Start a line with [ ] for an unchecked item or [x] for + a checked item.
      • +
      +
    • +
    • To create a new item in the list, press Enter.
    • +
    • To create a blank line within a list item, press Shift+Enter.
    • +
    • To exit out of the list, press Enter twice.
    • +
    • To merge two lists, simply delete the gap between them.
    • +
    • To create nested lists, simply use the + button (see Indentation in Other features) + or the Tab key. To decrease the nesting level for the current + element, press Shift+Tab.
    • +
    +

    Headings, code blocks within lists

    +

    It possible to add content-level blocks such as headings, code blocks, + tables within lists, as follows:

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    1 + + First, create a list.
    2 + + Press Enter to create a new list item.
    3 + + Press Backspace to get rid of the bullet point. Notice the cursor position.
    4 + + At this point, insert any desired block-level item such as a code block.
    5 + + To continue with a new bullet point, press Enter until the cursor moves + to a new blank position.
    6 + + Press Enter once more to create the new bullet.
    +
    +

    The same principle applies to all three list types (bullet, numbered and + to-do).

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Markdown-like formatting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Markdown-like formatting.html index 85e2e843e..ae76dec35 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Markdown-like formatting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Markdown-like formatting.html @@ -1,84 +1,64 @@ - - - - - - - - Markdown-like formatting - - - -
    -

    Markdown-like formatting

    - -
    -

    Markdown-like formatting allows inserting some basic formatting by typing - the Markdown equivalent. Note that this does not mean that Text notes supports Markdown, - these are just some convenience shortcuts.

    -

    To import more complex formatting into text notes, consider using the - Import from Markdown - function. For fully-fleged Markdown notes imports, consider using the - dedicated import function.

    -
      -
    • For headings: -
        -
      • ## for Heading 2 (the first-level heading is reserved for - the note title).
      • -
      • ### for Heading 3
      • -
      • #### for Heading 4
      • -
      • ##### for Heading 5
      • -
      • ###### for Heading 6
      • -
      -
    • -
    • For General formatting: -
        -
      • Bold: Type **text** or __text__ -
      • -
      • Italic: Type *text* or _text_ -
      • -
      • Strikethrough: Type ~~text~~ -
      • -
      -
    • -
    • For Lists: -
        -
      • Bulleted list: Start a line with * or - followed - by a space;
      • -
      • Numbered list: Start a line with 1. or 1) followed - by a space;
      • -
      • To-do list: Start a line with [ ] for an unchecked item or [x] for - a checked item.
      • -
      -
    • -
    • For block quotes, press >, - followed by a space.
    • -
    • For Code blocks, - type ```.
    • -
    • For a horizontal line, type ---.
    • -
    • For admonitions: -
        -
      • !!! note -
      • -
      • !!! tip -
      • -
      • !!! important -
      • -
      • !!! caution -
      • -
      • !!! warning -
      • -
      • Starting any other text with !!! will insert a note admonition - with the text inside of it.
      • -
      -
    • -
    -

    If auto-formatting is not desirable, press Ctrl + Z to - revert the text to its original form.

    -
    -
    - - - \ No newline at end of file +

    Markdown-like formatting allows inserting some basic formatting by typing + the Markdown equivalent. Note that this does not mean that Text notes supports Markdown, + these are just some convenience shortcuts.

    +

    To import more complex formatting into text notes, consider using the + Import from Markdown + function. For fully-fleged Markdown notes imports, consider using the + dedicated import function.

    +
      +
    • For headings: +
        +
      • ## for Heading 2 (the first-level heading is reserved for + the note title).
      • +
      • ### for Heading 3
      • +
      • #### for Heading 4
      • +
      • ##### for Heading 5
      • +
      • ###### for Heading 6
      • +
      +
    • +
    • For General formatting: +
        +
      • Bold: Type **text** or __text__ +
      • +
      • Italic: Type *text* or _text_ +
      • +
      • Strikethrough: Type ~~text~~ +
      • +
      +
    • +
    • For Lists: +
        +
      • Bulleted list: Start a line with * or - followed + by a space;
      • +
      • Numbered list: Start a line with 1. or 1) followed + by a space;
      • +
      • To-do list: Start a line with [ ] for an unchecked item or [x] for + a checked item.
      • +
      +
    • +
    • For block quotes, press >, + followed by a space.
    • +
    • For Code blocks, + type ```.
    • +
    • For a horizontal line, type ---.
    • +
    • For admonitions: +
        +
      • !!! note +
      • +
      • !!! tip +
      • +
      • !!! important +
      • +
      • !!! caution +
      • +
      • !!! warning +
      • +
      • Starting any other text with !!! will insert a note admonition + with the text inside of it.
      • +
      +
    • +
    +

    If auto-formatting is not desirable, press Ctrl + Z to + revert the text to its original form.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Math Equations.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Math Equations.html index ea3db0f85..b9a4eeb35 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Math Equations.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Math Equations.html @@ -1,53 +1,33 @@ - - - - - - - - Math Equations - - - -
    -

    Math Equations

    - -
    -
    - -
    -

    Within text notes, it's possible to enter mathematical equations using - the - button from the Formatting toolbar (generally - found under the Insert buttons).

    -

    If inserting equations frequently, using the Ctrl+M keyboard - shortcut can be more comfortable.

    -

    There is currently no quick way to insert an equation, such as surrounding - it with $ or pressing Ctrl+M on an already - typed-out equation.

    -

    The mathematical expression must be written in the TeX format. There is - no visual editor for the math equations, only a preview. 

    -

    Enabling Display mode will render the equation slightly bigger - (especially if using big operators such as summation, or fractions) and - center it. Display mode equations will act as blocks (i.e. like paragraphs, - or tables) and can be inserted for example in lists. Non-display equations - can be part of the text.

    -

    Supported math features

    -

    Technically we are using the KaTeX library which allows for a subset of - the TeX format. To see the full list of supported features, consult the - Supported Functionsand the Support Table from - the official documentation.

    -

    Markdown support

    -

    Math equations will be preserved when exporting to or importing from Markdown, - surrounded by \( characters for inline math expressions, and $\) for - display mode.

    -

    If you notice any issue with the Markdown import/export for equations, - feel free to report it while providing - the equation that causes issues.

    -
    -
    - - - \ No newline at end of file +
    + +
    +

    Within text notes, it's possible to enter mathematical equations using + the + button from the Formatting toolbar (generally + found under the Insert buttons).

    +

    If inserting equations frequently, using the Ctrl+M keyboard + shortcut can be more comfortable.

    +

    There is currently no quick way to insert an equation, such as surrounding + it with $ or pressing Ctrl+M on an already + typed-out equation.

    +

    The mathematical expression must be written in the TeX format. There is + no visual editor for the math equations, only a preview. 

    +

    Enabling Display mode will render the equation slightly bigger + (especially if using big operators such as summation, or fractions) and + center it. Display mode equations will act as blocks (i.e. like paragraphs, + or tables) and can be inserted for example in lists. Non-display equations + can be part of the text.

    +

    Supported math features

    +

    Technically we are using the KaTeX library which allows for a subset of + the TeX format. To see the full list of supported features, consult the + Supported Functionsand the Support Table from + the official documentation.

    +

    Markdown support

    +

    Math equations will be preserved when exporting to or importing from Markdown, + surrounded by \( characters for inline math expressions, and $\) for + display mode.

    +

    If you notice any issue with the Markdown import/export for equations, + feel free to report it while providing + the equation that causes issues.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Other features.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Other features.html index 018591962..fe16dc603 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Other features.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Other features.html @@ -1,71 +1,51 @@ - - - - - - - - Other features - - - -
    -

    Other features

    - -
    -

    Indentation

    -
    - -
    -

    Paragraphs can be indented to the right using the  button from the  - Formatting toolbar.

    -
      -
    • Press - to increase the indentation of the current paragraph by one. Can be pressed - multiple times if needed.
    • -
    • Press - to decrease the indentation of a current paragraph. The button will be - disabled if it is already at the minimum indentation level.
    • -
    • For convenience, keyboard shortcuts are also available. Press Tab to - indent or Shift+Tab to decrease the indentation. These - shortcuts work even if the cursor is not at the beginning of a paragraph - or a list.
    • -
    • Apart from paragraphs, the indent button is also enabled in Lists, where it can be used to create - nested lists.
    • -
    -

    Markdown import

    -

    If the clipboard contains Markdown text, it can be easily imported into - text notes. Simply copy a Markdown-formatted text and press the - to insert its visual representation.

    -

    Note that this only works with raw Markdown (e.g. # Heading 1 to - generate a heading) and not the visual representation of the Markdown (e.g. - as in the preview pane of an application). In that case, simply use the - paste function which already accepts HTML-formatted content.

    -

    This is mostly useful for snippets of text, for entire Markdown documents - use the dedicated Markdown import/export - function.

    -

    If accessing Trilium with a web browser, the Markdown import action will - ask for the content to be inserted into a dedicated screen since it does - not have access to the clipboard.

    -

    Cut to subnote

    -

    The - button will create a child note with the selected text. For more information, - see Cut to subnote.

    -

    Find and replace

    -
    - -
    -

    The - button will open the editor's dedicated search and replace functionality.

    -

    Alternatively, the Ctrl+F combination can be pressed - to show the dialog.

    -
    -
    - - - \ No newline at end of file +

    Indentation

    +
    + +
    +

    Paragraphs can be indented to the right using the  button from the  + Formatting toolbar.

    +
      +
    • Press + to increase the indentation of the current paragraph by one. Can be pressed + multiple times if needed.
    • +
    • Press + to decrease the indentation of a current paragraph. The button will be + disabled if it is already at the minimum indentation level.
    • +
    • For convenience, keyboard shortcuts are also available. Press Tab to + indent or Shift+Tab to decrease the indentation. These + shortcuts work even if the cursor is not at the beginning of a paragraph + or a list.
    • +
    • Apart from paragraphs, the indent button is also enabled in Lists, where it can be used to create + nested lists.
    • +
    +

    Markdown import

    +

    If the clipboard contains Markdown text, it can be easily imported into + text notes. Simply copy a Markdown-formatted text and press the + to insert its visual representation.

    +

    Note that this only works with raw Markdown (e.g. # Heading 1 to + generate a heading) and not the visual representation of the Markdown (e.g. + as in the preview pane of an application). In that case, simply use the + paste function which already accepts HTML-formatted content.

    +

    This is mostly useful for snippets of text, for entire Markdown documents + use the dedicated Markdown import/export + function.

    +

    If accessing Trilium with a web browser, the Markdown import action will + ask for the content to be inserted into a dedicated screen since it does + not have access to the clipboard.

    +

    Cut to subnote

    +

    The + button will create a child note with the selected text. For more information, + see Cut to subnote.

    +

    Find and replace

    +
    + +
    +

    The + button will open the editor's dedicated search and replace functionality.

    +

    Alternatively, the Ctrl+F combination can be pressed + to show the dialog.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents.html index b93723e19..e1f806133 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents.html @@ -1,52 +1,32 @@ - - - - - - - - Table of contents - - - -
    -

    Table of contents

    - -
    -
    - -
    -

    The table of contents appears in the Right Sidebar automatically - when there are multiple headings in a text note.

    -

    Interaction

    -
      -
    • Clicking on a heading will scroll the document to the position of the - heading.
    • -
    • Pressing the close button will dismiss the table of contents but it can - be shown again from the Floating buttons section.
    • -
    -

    Global configuration

    -

    In Text Notes options, - look for the Table of Contents section and configure the minimum - amount of headings that need to be present in the current note in order - for the table of contents to show:

    -
      -
    • To always hide it, set the value to a really large number (e.g. 10000).
    • -
    • To always display it if there's at least a single heading, set the value - to 1.
    • -
    -

    Per-note configuration

    -

    Use Attributes to - configure the table of contents for a particular note:

    -
      -
    • #toc=show will show the table of contents for that note regardless - of the global settings.
    • -
    • Similarly, #toc=hide will always hide the table of contents - for that note.
    • -
    -
    -
    - - - \ No newline at end of file +
    + +
    +

    The table of contents appears in the Right Sidebar automatically + when there are multiple headings in a text note.

    +

    Interaction

    +
      +
    • Clicking on a heading will scroll the document to the position of the + heading.
    • +
    • Pressing the close button will dismiss the table of contents but it can + be shown again from the Floating buttons section.
    • +
    +

    Global configuration

    +

    In Text Notes options, + look for the Table of Contents section and configure the minimum + amount of headings that need to be present in the current note in order + for the table of contents to show:

    +
      +
    • To always hide it, set the value to a really large number (e.g. 10000).
    • +
    • To always display it if there's at least a single heading, set the value + to 1.
    • +
    +

    Per-note configuration

    +

    Use Attributes to + configure the table of contents for a particular note:

    +
      +
    • #toc=show will show the table of contents for that note regardless + of the global settings.
    • +
    • Similarly, #toc=hide will always hide the table of contents + for that note.
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Tables.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Tables.html index e51416bcb..feee331e6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Tables.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Tables.html @@ -1,168 +1,148 @@ - +

    Tables are a powerful feature for Text notes, + since editing them is generally easy.

    +
    + +
    +

    To create a table, simply press the table button and select with the mouse + the desired amount of columns and rows, as indicated in the adjacent figure.

    +

    Formatting toolbar

    +

    When a table is selected, a special formatting toolbar will appear:

    + - - - - - - Tables - - - -
    -

    Tables

    - -
    -

    Tables are a powerful feature for Text notes, - since editing them is generally easy.

    -
    - -
    -

    To create a table, simply press the table button and select with the mouse - the desired amount of columns and rows, as indicated in the adjacent figure.

    -

    Formatting toolbar

    -

    When a table is selected, a special formatting toolbar will appear:

    - -

    Navigating a table

    -
      -
    • Using the mouse: -
        -
      • Click on a cell to focus it.
      • -
      • Click the - button at the top or the bottom of a table to insert an empty paragraph - near it.
      • -
      • Click the - button at the top-left of the table to select it entirely (for easy copy-pasting - or cutting) or drag and drop it to relocate the table.
      • -
      -
    • -
    • Using the keyboard: -
        -
      • Use the arrow keys on the keyboard to easily navigate between cells.
      • -
      • It's also possible to use Tab to go to the next cell and Shift+Tab - to go to the previous cell.
      • -
      • Unlike arrow keys, pressing Tab at the end of the table (last - row, last column) will create a new row automatically.
      • -
      • To select multiple cells, hold Shift while using the arrow keys.
      • -
      -
    • -
    -

    Resizing cells

    -
      -
    • Columns can be resized by hovering the mouse over the border of two adjacent - cells and dragging it.
    • -
    • By default, the row height is not adjustable using the mouse, but it can - be configured from the cell settings (see below).
    • -
    • To adjust exactly the width (in pixels or percentages) of a cell, select - the - button.
    • -
    -

    Inserting new rows and new columns

    -
      -
    • To insert a new column, click on a desired location, then press the - button from the formatting toolbar and select Insert column left or right. -
    • -
    • To insert a new row, click on a desired location, then press the - button and select Insert row above or below. -
        -
      • A quicker alternative to creating a new row while at the end of the table - is to press the Tab key.
      • -
      -
    • -
    -

    Merging cells

    -

    To merge two or more cells together, simply select them via drag & - drop and press the - button from the formatting toolbar.

    -

    More options are available by pressing the arrow next to it:

    -
      -
    • Click on a single cell and select Merge cell up/down/right/left to merge - with an adjacent cell.
    • -
    • Select Split cell vertically or horizontally, to split - a cell into multiple cells (can also be used to undo a merge).
    • -
    -

    Table properties

    -
    - -
    -

    The table properties can be accessed via the - button and allows for the following adjustments:

    -
      -
    • Border (not the border of the cells, but the outer rim of the table), - which includes the style (single, double), color and width.
    • -
    • The background color, with none set by default.
    • -
    • The width and height of the table in percentage (must end with %) - or pixels (must end with px).
    • -
    • The alignment of the table. -
        -
      • Left or right-aligned, case in which the text will flow next to it.
      • -
      • Centered, case in which text will avoid the table, regardless of the table - width.
      • -
      -
    • -
    -

    The table will immediately update to reflect the changes, but the Save button - must be pressed for the changes to persist.

    -

    Cell properties

    -
    - -
    -

    Similarly to table properties, the - button opens a popup which adjusts the styling of one or more cells (based - on the user's selection).

    -

    The following options can be adjusted:

    -
      -
    • The border style, color and width (same as table properties), but applying - to the current cell only.
    • -
    • The background color, with none set by default.
    • -
    • The width and height of the cell in percentage (must end with %) - or pixels (must end with px).
    • -
    • The padding (the distance of the text compared to the cell's borders).
    • -
    • The alignment of the text, both horizontally (left, centered, right, justified) - and vertically (top, middle or bottom).
    • -
    -

    The cell will immediately update to reflect the changes, but the Save button - must be pressed for the changes to persist.

    -

    Caption

    -

    Press the - button to insert a caption or a text description of the table, which is - going to be displayed above the table.

    -

    Tables with invisible borders

    -

    Tables can be set to have invisible borders in order to allow for basic - layouts (columns, grids) of text or images without - the distraction of their border:

    -
      -
    1. First insert a table with the desired number of columns and rows.
    2. -
    3. Select the entire table.
    4. -
    5. In Table properties, set: -
        -
      1. Style to Single -
      2. -
      3. Color to transparent -
      4. -
      5. Width to 1px.
      6. -
      -
    6. -
    7. In Cell Properties, set the same as on the previous step.
    8. -
    -

    Markdown import/export

    -

    Simple tables are exported in GitHub-flavored Markdown format (e.g. a - series of | items). If the table is found to be more complex - (it contains HTML elements, has custom sizes or images), the table is converted - to a HTML one instead.

    -

    Generally formatting loss should be minimal when exported to Markdown - due to the fallback to HTML formatting.

    -
    -
    - - - \ No newline at end of file +
      +
    • Using the mouse: +
        +
      • Click on a cell to focus it.
      • +
      • Click the + button at the top or the bottom of a table to insert an empty paragraph + near it.
      • +
      • Click the + button at the top-left of the table to select it entirely (for easy copy-pasting + or cutting) or drag and drop it to relocate the table.
      • +
      +
    • +
    • Using the keyboard: +
        +
      • Use the arrow keys on the keyboard to easily navigate between cells.
      • +
      • It's also possible to use Tab to go to the next cell and Shift+Tab + to go to the previous cell.
      • +
      • Unlike arrow keys, pressing Tab at the end of the table (last + row, last column) will create a new row automatically.
      • +
      • To select multiple cells, hold Shift while using the arrow keys.
      • +
      +
    • +
    +

    Resizing cells

    +
      +
    • Columns can be resized by hovering the mouse over the border of two adjacent + cells and dragging it.
    • +
    • By default, the row height is not adjustable using the mouse, but it can + be configured from the cell settings (see below).
    • +
    • To adjust exactly the width (in pixels or percentages) of a cell, select + the + button.
    • +
    +

    Inserting new rows and new columns

    +
      +
    • To insert a new column, click on a desired location, then press the + button from the formatting toolbar and select Insert column left or right. +
    • +
    • To insert a new row, click on a desired location, then press the + button and select Insert row above or below. +
        +
      • A quicker alternative to creating a new row while at the end of the table + is to press the Tab key.
      • +
      +
    • +
    +

    Merging cells

    +

    To merge two or more cells together, simply select them via drag & + drop and press the + button from the formatting toolbar.

    +

    More options are available by pressing the arrow next to it:

    +
      +
    • Click on a single cell and select Merge cell up/down/right/left to merge + with an adjacent cell.
    • +
    • Select Split cell vertically or horizontally, to split + a cell into multiple cells (can also be used to undo a merge).
    • +
    +

    Table properties

    +
    + +
    +

    The table properties can be accessed via the + button and allows for the following adjustments:

    +
      +
    • Border (not the border of the cells, but the outer rim of the table), + which includes the style (single, double), color and width.
    • +
    • The background color, with none set by default.
    • +
    • The width and height of the table in percentage (must end with %) + or pixels (must end with px).
    • +
    • The alignment of the table. +
        +
      • Left or right-aligned, case in which the text will flow next to it.
      • +
      • Centered, case in which text will avoid the table, regardless of the table + width.
      • +
      +
    • +
    +

    The table will immediately update to reflect the changes, but the Save button + must be pressed for the changes to persist.

    +

    Cell properties

    +
    + +
    +

    Similarly to table properties, the + button opens a popup which adjusts the styling of one or more cells (based + on the user's selection).

    +

    The following options can be adjusted:

    +
      +
    • The border style, color and width (same as table properties), but applying + to the current cell only.
    • +
    • The background color, with none set by default.
    • +
    • The width and height of the cell in percentage (must end with %) + or pixels (must end with px).
    • +
    • The padding (the distance of the text compared to the cell's borders).
    • +
    • The alignment of the text, both horizontally (left, centered, right, justified) + and vertically (top, middle or bottom).
    • +
    +

    The cell will immediately update to reflect the changes, but the Save button + must be pressed for the changes to persist.

    +

    Caption

    +

    Press the + button to insert a caption or a text description of the table, which is + going to be displayed above the table.

    +

    Tables with invisible borders

    +

    Tables can be set to have invisible borders in order to allow for basic + layouts (columns, grids) of text or images without + the distraction of their border:

    +
      +
    1. First insert a table with the desired number of columns and rows.
    2. +
    3. Select the entire table.
    4. +
    5. In Table properties, set: +
        +
      1. Style to Single +
      2. +
      3. Color to transparent +
      4. +
      5. Width to 1px.
      6. +
      +
    6. +
    7. In Cell Properties, set the same as on the previous step.
    8. +
    +

    Markdown import/export

    +

    Simple tables are exported in GitHub-flavored Markdown format (e.g. a + series of | items). If the table is found to be more complex + (it contains HTML elements, has custom sizes or images), the table is converted + to a HTML one instead.

    +

    Generally formatting loss should be minimal when exported to Markdown + due to the fallback to HTML formatting.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Web View.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Web View.html index de93125df..c8cb12d29 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Web View.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Web View.html @@ -1,46 +1,26 @@ - - - - - - - - Web View - - - -
    -

    Web View

    - -
    -

    Configuration

    -

    A webview needs to know which URL to render, and it can be provided by - setting the webViewSrc label, - such as:

    #webViewSrc="https://www.wikipedia.org"
    -

    Web view on the server vs. Electron

    -

    When accessing Trilium via a browser instead of the desktop application, - the web view will still try to render the content of the desired webpage. - However, since it's running in a browser there are quite a few limitations - as opposed to the desktop one.

    -

    More specifically, quite a few websites oppose being embedded in another - website (technically they have a non-permisive X-Frame-Options header). - This is not bypassable by Trilium so the page will simply fail to render.

    -

    You can diagnose this by right clicking the Trilium web page → Inspect - (element) and looking in the “Console” tab for errors such as:

    -
      -
    • Refused to display 'https://www.google.com/' in a frame because it set 'X-Frame-Options' to 'sameorigin'. -
    • -
    • Refused to frame 'https://duckduckgo.com/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self' https://html.duckduckgo.com". -
    • -
    -

    There are a few websites that do render such as wikipedia.org.

    -

    Do note that we are also applying some sandboxing constraints on the server - side, so if you have any issues other than the unresolvable X-Frame-Options described - above, feel free to report them.

    -

    On the desktop side, a different technology is used which bypasses the - constraints of an iframe (webview).

    -
    -
    - - - \ No newline at end of file +

    Configuration

    +

    A webview needs to know which URL to render, and it can be provided by + setting the webViewSrc label, + such as:

    #webViewSrc="https://www.wikipedia.org"
    +

    Web view on the server vs. Electron

    +

    When accessing Trilium via a browser instead of the desktop application, + the web view will still try to render the content of the desired webpage. + However, since it's running in a browser there are quite a few limitations + as opposed to the desktop one.

    +

    More specifically, quite a few websites oppose being embedded in another + website (technically they have a non-permisive X-Frame-Options header). + This is not bypassable by Trilium so the page will simply fail to render.

    +

    You can diagnose this by right clicking the Trilium web page → Inspect + (element) and looking in the “Console” tab for errors such as:

    +
      +
    • Refused to display 'https://www.google.com/' in a frame because it set 'X-Frame-Options' to 'sameorigin'. +
    • +
    • Refused to frame 'https://duckduckgo.com/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self' https://html.duckduckgo.com". +
    • +
    +

    There are a few websites that do render such as wikipedia.org.

    +

    Do note that we are also applying some sandboxing constraints on the server + side, so if you have any issues other than the unresolvable X-Frame-Options described + above, feel free to report them.

    +

    On the desktop side, a different technology is used which bypasses the + constraints of an iframe (webview).

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Quick Start.html b/src/public/app/doc_notes/en/User Guide/User Guide/Quick Start.html index bc73adeb3..be555159e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Quick Start.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Quick Start.html @@ -1,52 +1,32 @@ - - - - - - - - Quick Start - - - -
    -

    Quick Start

    - -
    -

    Choose the setup

    -

    Local only desktop/laptop - Allows a single instance on - a desktop and will save the notes locally on that desktop.

    -
      -
    1. Desktop installation -
    2. -
    -

    Server with web only access - Installs the application - on the server and allows access from any web browser on any device, including - mobile.

    -
      -
    1. Server installation -
    2. -
    3. Mobile frontend (optional)
    4. -
    5. PikaPods managed hosting -
    6. -
    -

    Combination of server and desktop/laptop - Install the - application on both a server, for web access and data synchronisation, - and desktop instance(s). This allows all the data to be stored on the server - and either accessed from the web browser, or the desktop application. The - desktop application will sync and store the data locally so that it can - be used when offline.

    -
      -
    1. Server installation -
    2. -
    3. Mobile frontend (optional)
    4. -
    5. Desktop installation -
    6. -
    7. Synchronization -
    8. -
    -
    -
    - - - \ No newline at end of file +

    Choose the setup

    +

    Local only desktop/laptop - Allows a single instance on + a desktop and will save the notes locally on that desktop.

    +
      +
    1. Desktop installation +
    2. +
    +

    Server with web only access - Installs the application + on the server and allows access from any web browser on any device, including + mobile.

    +
      +
    1. Server installation +
    2. +
    3. Mobile frontend (optional)
    4. +
    5. PikaPods managed hosting +
    6. +
    +

    Combination of server and desktop/laptop - Install the + application on both a server, for web access and data synchronisation, + and desktop instance(s). This allows all the data to be stored on the server + and either accessed from the web browser, or the desktop application. The + desktop application will sync and store the data locally so that it can + be used when offline.

    +
      +
    1. Server installation +
    2. +
    3. Mobile frontend (optional)
    4. +
    5. Desktop installation +
    6. +
    7. Synchronization +
    8. +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting.html index 8395938bd..9d8077cad 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting.html @@ -1,68 +1,48 @@ - - - - - - - - Scripting - - - -
    -

    Scripting

    - -
    -

    Trilium supports creating Code notes, - i.e. notes which allow you to store some programming code and highlight - it. Special case is JavaScript code notes which can also be executed inside - Trilium which can in conjunction with Script API provide - extra functionality.

    -

    Scripting

    -

    To go further I must explain basic architecture of Trilium - in its essence - it is a classic web application - it has these two main components:

    -
      -
    • frontend running in the browser (using HTML, CSS, JavaScript) - this is - mainly used to interact with the user, display notes etc.
    • -
    • backend running JavaScript code in node.js runtime - this is responsible - for e.g. storing notes, encrypting them etc.
    • -
    -

    So we have frontend and backend, each with their own set of responsibilities, - but their common feature is that they both run JavaScript code. Add to - this the fact, that we're able to create JavaScript [[code notes]] and - we're onto something.

    -

    Use cases

    - -

    Action handler

    -

    Saving the note to the database is backend's responsibility, so we immediately - pass control to the backend and ask it to create a note. Once this is done, - we show the newly created note so that the user can set the task title - and maybe some attributes.

    -

    Script execution

    -

    So we have a script which will add the button to the toolbar. But how - can we execute it? One possibility is to click on "play" icon (marked by - red circle). The problem with this is that this UI change is time bound - by Trilium runtime so when we restart Trilium, button won't be there.

    -

    We need to execute it every time Trilium starts up, but we probably don't - want to have to manually click on play button on every start up.

    -

    The solution is marked by red circle at the bottom - this note has label #run=frontendStartup - - this is one of the "system" labels which Trilium understands. As you might - guess, this will cause all such labeled script notes to be executed once - Trilium frontend starts up.

    -

    (#run=frontendStartup does not work for Mobile frontend - - if you want to have scripts running there, give the script #run=mobileStartup label)

    -

    More showcases

    -

    You can see more scripting with explanation in Advanced Showcases.

    -

    Events

    -

    See Events.

    -

    Script API

    -

    See Script API.

    -
    -
    - - - \ No newline at end of file +

    Trilium supports creating Code notes, + i.e. notes which allow you to store some programming code and highlight + it. Special case is JavaScript code notes which can also be executed inside + Trilium which can in conjunction with Script API provide + extra functionality.

    +

    Scripting

    +

    To go further I must explain basic architecture of Trilium - in its essence + it is a classic web application - it has these two main components:

    +
      +
    • frontend running in the browser (using HTML, CSS, JavaScript) - this is + mainly used to interact with the user, display notes etc.
    • +
    • backend running JavaScript code in node.js runtime - this is responsible + for e.g. storing notes, encrypting them etc.
    • +
    +

    So we have frontend and backend, each with their own set of responsibilities, + but their common feature is that they both run JavaScript code. Add to + this the fact, that we're able to create JavaScript [[code notes]] and + we're onto something.

    +

    Use cases

    + +

    Action handler

    +

    Saving the note to the database is backend's responsibility, so we immediately + pass control to the backend and ask it to create a note. Once this is done, + we show the newly created note so that the user can set the task title + and maybe some attributes.

    +

    Script execution

    +

    So we have a script which will add the button to the toolbar. But how + can we execute it? One possibility is to click on "play" icon (marked by + red circle). The problem with this is that this UI change is time bound + by Trilium runtime so when we restart Trilium, button won't be there.

    +

    We need to execute it every time Trilium starts up, but we probably don't + want to have to manually click on play button on every start up.

    +

    The solution is marked by red circle at the bottom - this note has label #run=frontendStartup - + this is one of the "system" labels which Trilium understands. As you might + guess, this will cause all such labeled script notes to be executed once + Trilium frontend starts up.

    +

    (#run=frontendStartup does not work for Mobile frontend - + if you want to have scripts running there, give the script #run=mobileStartup label)

    +

    More showcases

    +

    You can see more scripting with explanation in Advanced Showcases.

    +

    Events

    +

    See Events.

    +

    Script API

    +

    See Script API.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets.html index 240eeb80d..a3c74131e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets.html @@ -1,33 +1,13 @@ - - - - - - - - Custom Widgets - - - -
    -

    Custom Widgets

    - -
    -

    It's possible to create custom widget in three possible locations where - you can display your custom content.

    -

    Positions are:

    -
      -
    • left-pane -
    • -
    • center-pane -
    • -
    • note-detail-pane - located within center-pane, - but specific to note (split)
    • -
    • right-pane -
    • -
    -
    -
    - - - \ No newline at end of file +

    It's possible to create custom widget in three possible locations where + you can display your custom content.

    +

    Positions are:

    +
      +
    • left-pane +
    • +
    • center-pane +
    • +
    • note-detail-pane - located within center-pane, + but specific to note (split)
    • +
    • right-pane +
    • +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html index e921c5b16..273dbaae6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html @@ -1,24 +1,9 @@ - - - - - - - - Widget Basics - - - -
    -

    Widget Basics

    - -
    -

    This guide will walk you through creating a basic widget inside Trilium. - By following these steps, you'll learn how to build a simple UI element - that interacts with the user.

    -

    Step 1: The Basic Widget Structure

    -

    To start, we'll create the most basic widget possible. Here's a simple - example:

    class MyWidget extends api.BasicWidget {
    +

    This guide will walk you through creating a basic widget inside Trilium. + By following these steps, you'll learn how to build a simple UI element + that interacts with the user.

    +

    Step 1: The Basic Widget Structure

    +

    To start, we'll create the most basic widget possible. Here's a simple + example:

    class MyWidget extends api.BasicWidget {
         get position() { return 1; }
         get parentWidget() { return "left-pane"; }
         
    @@ -29,21 +14,21 @@
     }
     
     module.exports = new MyWidget();
    -

    To implement this widget:

    -
      -
    1. Create a new JS Frontend note in Trilium and paste in the code - above.
    2. -
    3. Assign the #widget attribute to - the note.
    4. -
    5. Restart Trilium or reload the window.
    6. -
    -

    To verify that the widget is working, open the developer tools (Cmd + Shift + I) - and run document.querySelector("#my-widget"). If the element - is found, the widget is functioning correctly. If undefined is - returned, double-check that the note has - the #widget attribute.

    -

    Step 2: Adding an UI Element

    -

    Next, let's improve the widget by adding a button to it.

    const template = ``;
    +

    To implement this widget:

    +
      +
    1. Create a new JS Frontend note in Trilium and paste in the code + above.
    2. +
    3. Assign the #widget attribute to + the note.
    4. +
    5. Restart Trilium or reload the window.
    6. +
    +

    To verify that the widget is working, open the developer tools (Cmd + Shift + I) + and run document.querySelector("#my-widget"). If the element + is found, the widget is functioning correctly. If undefined is + returned, double-check that the note has + the #widget attribute.

    +

    Step 2: Adding an UI Element

    +

    Next, let's improve the widget by adding a button to it.

    const template = ``;
     
     class MyWidget extends api.BasicWidget {
         get position() {return 1;}
    @@ -56,14 +41,14 @@ class MyWidget extends api.BasicWidget {
     }
     
     module.exports = new MyWidget();
    -

    After making this change, reload Trilium. You should now see a button - in the top-left corner of the left pane.

    -

    Step 3: Styling the Widget

    -

    To make the button more visually appealing and position it correctly, - we'll apply some custom styling. Trilium includes Box Icons, - which we'll use to replace the button text with an icon. For example the bx bxs-magic-wand icon.

    -

    Here's the updated template:

    const template = ``;
    -

    Next, we'll adjust the button's position using CSS:

    class MyWidget extends api.BasicWidget {
    +

    After making this change, reload Trilium. You should now see a button + in the top-left corner of the left pane.

    +

    Step 3: Styling the Widget

    +

    To make the button more visually appealing and position it correctly, + we'll apply some custom styling. Trilium includes Box Icons, + which we'll use to replace the button text with an icon. For example the bx bxs-magic-wand icon.

    +

    Here's the updated template:

    const template = ``;
    +

    Next, we'll adjust the button's position using CSS:

    class MyWidget extends api.BasicWidget {
         get position() { return 1; }
         get parentWidget() { return "left-pane"; }
         
    @@ -80,11 +65,11 @@ module.exports = new MyWidget();
    } module.exports = new MyWidget();
    -

    After reloading Trilium, the button should now appear at the bottom left - of the left pane, alongside other action buttons.

    -

    Step 4: Adding User Interaction

    -

    Let’s make the button interactive by showing a message when it’s clicked. - We'll use the api.showMessage method from the Script API.

    class MyWidget extends api.BasicWidget {
    +

    After reloading Trilium, the button should now appear at the bottom left + of the left pane, alongside other action buttons.

    +

    Step 4: Adding User Interaction

    +

    Let’s make the button interactive by showing a message when it’s clicked. + We'll use the api.showMessage method from the Script API.

    class MyWidget extends api.BasicWidget {
         get position() { return 1; }
         get parentWidget() { return "left-pane"; }
         
    @@ -102,10 +87,5 @@ module.exports = new MyWidget();
    } module.exports = new MyWidget();
    -

    Reload the application one last time. When you click the button, a "Hello - World!" message should appear, confirming that your widget is fully functional.

    -
    -
    - - - \ No newline at end of file +

    Reload the application one last time. When you click the button, a "Hello + World!" message should appear, confirming that your widget is fully functional.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html index 188598fba..c627056c8 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html @@ -1,24 +1,9 @@ - - - - - - - - Word count widget - - - -
    -

    Word count widget

    - -
    - -

    Create a Code note - of type JS frontend and give it a #widget label.

    /*
    +
    +

    Create a Code note + of type JS frontend and give it a #widget label.

    /*
      * This defines a custom widget which displays number of words and characters in a current text note.
      * To be activated for a given note, add label 'wordCount' to the note, you can also make it inheritable and thus activate it for the whole subtree.
      * 
    @@ -93,16 +78,11 @@ class WordCountWidget extends api.NoteContextAwareWidget {
     }
     
     module.exports = new WordCountWidget();
    -

    After you make changes it is necessary to restart Trilium so - that the layout can be rebuilt.

    -

    At the bottom of the note you can see the resulting widget:

    -
    - -
    -
    -
    - - - \ No newline at end of file +

    After you make changes it is necessary to restart Trilium so + that the layout can be rebuilt.

    +

    At the bottom of the note you can see the resulting widget:

    +
    + +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Events.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Events.html index 20edff3cb..f8b02d626 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Events.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Events.html @@ -1,150 +1,130 @@ - - - - - - - - Events - - - -
    -

    Events

    +

    Script notes can be triggered by + events. Note that these are backend events and thus relation need to point + to the "JS backend" code note.

    +

    Global events

    +

    Global events are attached to the script note via label. Simply create + e.g. "run" label with some of these values and script note will be executed + once the event occurs.

    +
    + + + + + + + + + + + + + + + + + + + + + +
    LabelDescription
    run + +

    Defines on which events script should run. Possible values are:

    +
      +
    • frontendStartup - when Trilium frontend starts up (or is refreshed), + but not on mobile.
    • +
    • mobileStartup - when Trilium frontend starts up (or is refreshed), + on mobile.
    • +
    • backendStartup - when Trilium backend starts up
    • +
    • hourly - run once an hour. You can use additional label runAtHour to + specify at which hour, on the back-end.
    • +
    • daily - run once a day, on the back-end
    • +
    +
    runOnInstance + Specifies that the script should only run on a particular Trilium instance.
    runAtHour + On which hour should this run. Should be used together with #run=hourly. + Can be defined multiple times for more runs during the day.
    +
    -
    -

    Script notes can be triggered by - events. Note that these are backend events and thus relation need to point - to the "JS backend" code note.

    -

    Global events

    -

    Global events are attached to the script note via label. Simply create - e.g. "run" label with some of these values and script note will be executed - once the event occurs.

    -
    - - - - - - - - - - - - - - - - - - - - - -
    LabelDescription
    run - -

    Defines on which events script should run. Possible values are:

    -
      -
    • frontendStartup - when Trilium frontend starts up (or is refreshed), - but not on mobile.
    • -
    • mobileStartup - when Trilium frontend starts up (or is refreshed), - on mobile.
    • -
    • backendStartup - when Trilium backend starts up
    • -
    • hourly - run once an hour. You can use additional label runAtHour to - specify at which hour, on the back-end.
    • -
    • daily - run once a day, on the back-end
    • -
    -
    runOnInstance - Specifies that the script should only run on a particular Trilium instance.
    runAtHour - On which hour should this run. Should be used together with #run=hourly. - Can be defined multiple times for more runs during the day.
    -
    -

    Entity events

    -

    Other events are bound to some entity, these are defined as relations - - meaning that script is triggered only if note has this script attached - to it through relations (or it can inherit it).

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    RelationDescription
    runOnNoteCreation - executes when note is created on backend. Use this relation if you want - to run the script for all notes created under a specific subtree. In that - case, create it on the subtree root note and make it inheritable. A new - note created within the subtree (any depth) will trigger the script.
    runOnChildNoteCreation - executes when new note is created under the note where this relation is - defined
    runOnNoteTitleChange - executes when note title is changed (includes note creation as well)
    runOnNoteContentChange - executes when note content is changed (includes note creation as well).
    runOnNoteChange - executes when note is changed (includes note creation as well). Does not - include content changes
    runOnNoteDeletion - executes when note is being deleted
    runOnBranchCreation - executes when a branch is created. Branch is a link between parent note - and child note and is created e.g. when cloning or moving note.
    runOnBranchChange - executes when a branch is updated. (since v0.62)
    runOnBranchDeletion - executes when a branch is deleted. Branch is a link between parent note - and child note and is deleted e.g. when moving note (old branch/link is - deleted).
    runOnAttributeCreation - executes when new attribute is created for the note which defines this - relation
    runOnAttributeChange - executes when the attribute is changed of a note which defines this relation. - This is triggered also when the attribute is deleted
    -
    -
    -
    - - - \ No newline at end of file +

    Other events are bound to some entity, these are defined as relations - + meaning that script is triggered only if note has this script attached + to it through relations (or it can inherit it).

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    RelationDescription
    runOnNoteCreation + executes when note is created on backend. Use this relation if you want + to run the script for all notes created under a specific subtree. In that + case, create it on the subtree root note and make it inheritable. A new + note created within the subtree (any depth) will trigger the script.
    runOnChildNoteCreation + executes when new note is created under the note where this relation is + defined
    runOnNoteTitleChange + executes when note title is changed (includes note creation as well)
    runOnNoteContentChange + executes when note content is changed (includes note creation as well).
    runOnNoteChange + executes when note is changed (includes note creation as well). Does not + include content changes
    runOnNoteDeletion + executes when note is being deleted
    runOnBranchCreation + executes when a branch is created. Branch is a link between parent note + and child note and is created e.g. when cloning or moving note.
    runOnBranchChange + executes when a branch is updated. (since v0.62)
    runOnBranchDeletion + executes when a branch is deleted. Branch is a link between parent note + and child note and is deleted e.g. when moving note (old branch/link is + deleted).
    runOnAttributeCreation + executes when new attribute is created for the note which defines this + relation
    runOnAttributeChange + executes when the attribute is changed of a note which defines this relation. + This is triggered also when the attribute is deleted
    +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/Downloading responses from Goo.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/Downloading responses from Goo.html index a0c4a4c85..c6911fb88 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/Downloading responses from Goo.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/Downloading responses from Goo.html @@ -1,36 +1,21 @@ - - - - - - - - Downloading responses from Google Forms - - - -
    -

    Downloading responses from Google Forms

    - -
    -

    This tutorial showcases a basic integration with Google Forms, where we - are able to download the responses of a form using the “Link to Sheets" - functionality.

    -

    Note that the link will be publicly accessible to everyone (however the - link is in a hard-to-guess format such as https://docs.google.com/spreadsheets/d/e/2PACX-1vTA8NU2_eZFhc8TFadCZPreBfvP7un8IHd6J0SchrLLw3ueGmntNZjwRmsH2ZRcp1pJYDAzMz1FmFaj/pub?output=csv). - Make sure you are not accidentally publishing sensitive information.

    -

    Obtaining the CSV link

    -
      -
    1. Open the Google Forms in a browser.
    2. -
    3. Select the “Responses” tab and click on “Link to Sheets”.
    4. -
    5. Select “Create a new spreadsheet” and press “Create”.
    6. -
    7. In Google Sheets, select File → Share → Publish to web.
    8. -
    9. In the “Publish to the web” screen, make sure the “Link” tab is selected - and instead of “Web page”, select “Comma-separated values (.csv)”.
    10. -
    11. Copy the given link which will be used for the upcoming script.
    12. -
    -

    Creating the script

    -

    Create a “JS Frontend” script:

    const CSV_URL = "https://docs.google.com/spreadsheets/d/e/2PACX-1vTiwooLV2whjCSVa49dJ99p_G3_qhqHHRqttMjYCJVfLXVdTgUSNJu5K0rpqmaHYF2k7Vofi3o7gW82/pub?output=csv";
    +

    This tutorial showcases a basic integration with Google Forms, where we + are able to download the responses of a form using the “Link to Sheets" + functionality.

    +

    Note that the link will be publicly accessible to everyone (however the + link is in a hard-to-guess format such as https://docs.google.com/spreadsheets/d/e/2PACX-1vTA8NU2_eZFhc8TFadCZPreBfvP7un8IHd6J0SchrLLw3ueGmntNZjwRmsH2ZRcp1pJYDAzMz1FmFaj/pub?output=csv). + Make sure you are not accidentally publishing sensitive information.

    +

    Obtaining the CSV link

    +
      +
    1. Open the Google Forms in a browser.
    2. +
    3. Select the “Responses” tab and click on “Link to Sheets”.
    4. +
    5. Select “Create a new spreadsheet” and press “Create”.
    6. +
    7. In Google Sheets, select File → Share → Publish to web.
    8. +
    9. In the “Publish to the web” screen, make sure the “Link” tab is selected + and instead of “Web page”, select “Comma-separated values (.csv)”.
    10. +
    11. Copy the given link which will be used for the upcoming script.
    12. +
    +

    Creating the script

    +

    Create a “JS Frontend” script:

    const CSV_URL = "https://docs.google.com/spreadsheets/d/e/2PACX-1vTiwooLV2whjCSVa49dJ99p_G3_qhqHHRqttMjYCJVfLXVdTgUSNJu5K0rpqmaHYF2k7Vofi3o7gW82/pub?output=csv";
     
     async function fetchData() {
         try {
    @@ -44,14 +29,9 @@ async function fetchData() {
     const data = await fetchData();
     console.log(data);
     // Do something with the data.
    -

    Note that the data will be received as a string and there is no library - to do the CSV parsing for us. To do a very simple parsing of CSV:

    const content = data
    +

    Note that the data will be received as a string and there is no library + to do the CSV parsing for us. To do a very simple parsing of CSV:

    const content = data
     	.split("\n")
     	.slice(1)
     	.map((row) => row.split(","));
    -

    This will return the data as an array of arrays.

    -
    -
    - - - \ No newline at end of file +

    This will return the data as an array of arrays.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button.html index 5ce1b1aab..aae9e6f6f 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button.html @@ -1,32 +1,17 @@ - - - - - - - - "New Task" launcher button - - - -
    -

    "New Task" launcher button

    - -
    -

    In this example we are going to extend the functionality of Task Manager showcase (which comes - by default with Trilium) by adding a button in the Launch Bar  ( - ) to create a new task automatically and open it.

    -

    Creating the note

    -
      -
    1. First, create a new Code note - type with the JS frontend language.
    2. -
    3. Define the #run=frontendStartup label in Attributes.
    4. -
    -

    Content of the script

    -

    Copy-paste the following script:

    api.addButtonToToolbar({
    +

    In this example we are going to extend the functionality of Task Manager showcase (which comes + by default with Trilium) by adding a button in the Launch Bar  ( + ) to create a new task automatically and open it.

    +

    Creating the note

    +
      +
    1. First, create a new Code note + type with the JS frontend language.
    2. +
    3. Define the #run=frontendStartup label in Attributes.
    4. +
    +

    Content of the script

    +

    Copy-paste the following script:

    api.addButtonToToolbar({
     	title: "New task",
         icon: "task",
         shortcut: "alt+n",
    @@ -41,19 +26,19 @@
             await api.activateNewNote(taskNoteId);
         }
     });
    -

    Testing the functionality

    -

    Since we set the script to be run on start-up, all we need to do is to - refresh the application.

    -

    Understanding how the script works

    - - - - - - - - + + + + + + + + + + + + + + + + + + + +
    api.addButtonToToolbar({
    +

    Testing the functionality

    +

    Since we set the script to be run on start-up, all we need to do is to + refresh the application.

    +

    Understanding how the script works

    + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - -
    api.addButtonToToolbar({
     	title: "New task",
         icon: "task",
         shortcut: "alt+n",
    @@ -61,86 +46,81 @@
         	// [...]
         }
     });
    -
    -

    This uses the Front-end API to create - a icon in the Launch Bar, - by specifying:

    -
      -
    • A title
    • -
    • A corresponding boxicons icon (without the bx- prefix).
    • -
    • Optionally, a keyboard shortcut to assign to it.
    • -
    • The action, which will be executed when the button is pressed.
    • -
    -
    const taskNoteId = await api.runOnBackend(() => {
    +      
    +

    This uses the Front-end API to create + a icon in the Launch Bar, + by specifying:

    +
      +
    • A title
    • +
    • A corresponding boxicons icon (without the bx- prefix).
    • +
    • Optionally, a keyboard shortcut to assign to it.
    • +
    • The action, which will be executed when the button is pressed.
    • +
    +
    const taskNoteId = await api.runOnBackend(() => {
         // Shown below.           
         return resp.note.noteId;
     });
    -
    -
      -
    • This portion of code is actually executed on the server (backend) and - not on the client (i.e. browser). -
        -
      • The reason is that the creating notes is the responsibility of the server.
      • -
      -
    • -
    • Here we can also see that it is possible to return results from the server - execution and read them in the client (taskNoteId).
    • -
    -
    const todoRootNote = api.getNoteWithLabel("taskTodoRoot");
    -
    -
      -
    • Here we identify a note with the label #taskTodoRoot. - This is how the Task Manager showcase - knows where to place all the different tasks.
    • -
    • Normally this might return a null value if no such note could - be identified, but error handling is outside the scope of this example. 
    • -
    -
    const resp = api.createTextNote(todoRootNote.noteId, "New task", "")
    -
    -
      -
    • We create a new child note within the to-do root note (first argument) - with the title “New task" (second argument) and no content by default (third - argument).
    • -
    -
    await api.waitUntilSynced();
    -
    -
      -
    • Back on the client, since we created a new note on the server, we now - need to wait for the change to be reflected in the client.
    • -
    -
    await api.activateNewNote(taskNoteId);
    -
    -
      -
    • Since we know the ID of the newly - created note, all we have to do now is to show this note to the user.
    • -
    -
    - - - - - \ No newline at end of file +
    +
      +
    • This portion of code is actually executed on the server (backend) and + not on the client (i.e. browser). +
        +
      • The reason is that the creating notes is the responsibility of the server.
      • +
      +
    • +
    • Here we can also see that it is possible to return results from the server + execution and read them in the client (taskNoteId).
    • +
    +
    const todoRootNote = api.getNoteWithLabel("taskTodoRoot");
    +
    +
      +
    • Here we identify a note with the label #taskTodoRoot. + This is how the Task Manager showcase + knows where to place all the different tasks.
    • +
    • Normally this might return a null value if no such note could + be identified, but error handling is outside the scope of this example. 
    • +
    +
    const resp = api.createTextNote(todoRootNote.noteId, "New task", "")
    +
    +
      +
    • We create a new child note within the to-do root note (first argument) + with the title “New task" (second argument) and no content by default (third + argument).
    • +
    +
    await api.waitUntilSynced();
    +
    +
      +
    • Back on the client, since we created a new note on the server, we now + need to wait for the change to be reflected in the client.
    • +
    +
    await api.activateNewNote(taskNoteId);
    +
    +
      +
    • Since we know the ID of the newly + created note, all we have to do now is to show this note to the user.
    • +
    +
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/Using promoted attributes to c.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/Using promoted attributes to c.html index 228a43606..c76d5d93a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/Using promoted attributes to c.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/Using promoted attributes to c.html @@ -1,40 +1,25 @@ - - - - - - - - Using promoted attributes to configure scripts - - - -
    -

    Using promoted attributes to configure scripts

    - -
    -

    A good use case of promoted attributes is to easily define the various - parameters a script might need, for example an input and output note if - it's processing data, or a checkbox to define a particular change in behavior - for the script.

    -

    - -

    -

    Using check boxes to toggle flags

    -

    Instead of asking the user to modify a boolean value in the script, it's - much more intuitive to use a checkbox for it as a promoted attribute.

    -

    To do so, first define the promoted attribute:

    #label:groupByExtension="promoted,alias=Group by extension,single,boolean"
    -

    Then use it:

    const byExtension = api.currentNote.getLabelValue("groupByExtension") === "true";
    +

    A good use case of promoted attributes is to easily define the various + parameters a script might need, for example an input and output note if + it's processing data, or a checkbox to define a particular change in behavior + for the script.

    +

    + +

    +

    Using check boxes to toggle flags

    +

    Instead of asking the user to modify a boolean value in the script, it's + much more intuitive to use a checkbox for it as a promoted attribute.

    +

    To do so, first define the promoted attribute:

    #label:groupByExtension="promoted,alias=Group by extension,single,boolean"
    +

    Then use it:

    const byExtension = api.currentNote.getLabelValue("groupByExtension") === "true";
     if (byExtension) {
     	// Do something.
     }
    -

    This will work equally well in both front-end and back-end scripts.

    -

    Using relations to select notes

    -

    One common use case for a script is to read data from another note and - perhaps output its result in another note. To do so we need to define the - following promoted attributes:

    #relation:input="promoted,alias=Input,single" #relation:output="promoted,alias=Output,single"
    -

    Once we have this, we can add some basic error handling to ensure that - the fields are completed by the user:

    const inputNoteId = api.currentNote.getRelationValue("input");
    +

    This will work equally well in both front-end and back-end scripts.

    +

    Using relations to select notes

    +

    One common use case for a script is to read data from another note and + perhaps output its result in another note. To do so we need to define the + following promoted attributes:

    #relation:input="promoted,alias=Input,single" #relation:output="promoted,alias=Output,single"
    +

    Once we have this, we can add some basic error handling to ensure that + the fields are completed by the user:

    const inputNoteId = api.currentNote.getRelationValue("input");
     if (!inputNoteId) {
     	api.showError("Missing input.");
         return;
    @@ -45,16 +30,11 @@ if (!outputNoteId) {
         api.showError("Missing output.");
         return;
     }
    -

    Note that here we are using api.showError which is only available - for frontend notes. If you are writing a backend note, simply remove api.showError but - the user will no feedback on why the script did not execute properly.

    -

    Afterwards we can simply read the note and do something with it:

    const note = api.getNote(inputNoteId);
    +

    Note that here we are using api.showError which is only available + for frontend notes. If you are writing a backend note, simply remove api.showError but + the user will no feedback on why the script did not execute properly.

    +

    Afterwards we can simply read the note and do something with it:

    const note = api.getNote(inputNoteId);
     if (!note) {
     	return;
     }
    -const content = note.getContent().toString("utf-8");
    -
    -
    - - - \ No newline at end of file +const content = note.getContent().toString("utf-8");
    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html index 8dd622642..1113d7587 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html @@ -1,103 +1,83 @@ - - - - - - - - Frontend Basics - - - -
    -

    Frontend Basics

    - -
    -

    Frontend API

    -

    The frontend api supports two styles, regular scripts that are run with - the current app and note context, and widgets that export an object to - Trilium to be used in the UI. In both cases, the frontend api of Trilium - is available to scripts running in the frontend context as global variable api. - The members and methods of the api can be seen on the Script API page.

    -

    Scripts

    -

    Scripts don't have any special requirements. They can be run at will using - the execute button in the UI or they can be configured to run at certain - times using Attributes on the note - containing the script.

    -

    Global Events

    -

    This attribute is called #run and it can have any of the following - values:

    -
      -
    • frontendStartup - executes on frontend upon startup.
    • -
    • mobileStartup - executes on mobile frontend upon startup.
    • -
    • backendStartup - executes on backend upon startup.
    • -
    • hourly - executes once an hour on backend.
    • -
    • daily - executes once a day on backend.
    • -
    -

    Entity Events

    -

    These events are triggered by certain relations to - other notes. Meaning that the script is triggered only if the note has - this script attached to it through relations (or it can inherit it).

    -
      -
    • runOnNoteCreation - executes when note is created on backend.
    • -
    • runOnNoteTitleChange - executes when note title is changed - (includes note creation as well).
    • -
    • runOnNoteContentChange - executes when note content is changed - (includes note creation as well).
    • -
    • runOnNoteChange - executes when note is changed (includes - note creation as well).
    • -
    • runOnNoteDeletion - executes when note is being deleted.
    • -
    • runOnBranchCreation - executes when a branch is created. Branch - is a link between parent note and child note and is created e.g. when cloning - or moving note.
    • -
    • runOnBranchDeletion - executes when a branch is delete. Branch - is a link between parent note and child note and is deleted e.g. when moving - note (old branch/link is deleted).
    • -
    • runOnChildNoteCreation - executes when new note is created - under this note.
    • -
    • runOnAttributeCreation - executes when new attribute is created - under this note.
    • -
    • runOnAttributeChange - executes when attribute is changed - under this note.
    • -
    -

    Widgets

    -

    Conversely to scripts, widgets do have some specific requirements in order - to work. A widget must:

    -
      -
    • Extend BasicWidget or - one of it's subclasses.
    • -
    • Create a new instance and assign it to module.exports.
    • -
    • Define a parentWidget member to determine where it should be - displayed.
    • -
    • Define a position (integer) that determines the location via - sort order.
    • -
    • Have a #widget attribute on the containing note.
    • -
    • Create, render, and return your element in the render function. -
        -
      • For BasicWidget and - NoteContextAwareWidgetyou should create this.$widget and - render it in doRender().
      • -
      • For RightPanelWidget the this.$widget and doRender() are - already handled and you should instead return the value in doRenderBody().
      • -
      -
    • -
    -

    parentWidget

    -
      -
    • left-pane - This renders the widget on the left side of the - screen where the note tree lives.
    • -
    • center-pane - This renders the widget in the center of the - layout in the same location that notes and splits appear.
    • -
    • note-detail-pane - This renders the widget with the - note in the center pane. This means it can appear multiple times with splits.
    • -
    • right-pane - This renders the widget to the right of any opened - notes.
    • -
    -

    Tutorial

    -

    For more information on building widgets, take a look at Widget Basics.

    -
    -
    - - - \ No newline at end of file +

    Frontend API

    +

    The frontend api supports two styles, regular scripts that are run with + the current app and note context, and widgets that export an object to + Trilium to be used in the UI. In both cases, the frontend api of Trilium + is available to scripts running in the frontend context as global variable api. + The members and methods of the api can be seen on the Script API page.

    +

    Scripts

    +

    Scripts don't have any special requirements. They can be run at will using + the execute button in the UI or they can be configured to run at certain + times using Attributes on the note + containing the script.

    +

    Global Events

    +

    This attribute is called #run and it can have any of the following + values:

    +
      +
    • frontendStartup - executes on frontend upon startup.
    • +
    • mobileStartup - executes on mobile frontend upon startup.
    • +
    • backendStartup - executes on backend upon startup.
    • +
    • hourly - executes once an hour on backend.
    • +
    • daily - executes once a day on backend.
    • +
    +

    Entity Events

    +

    These events are triggered by certain relations to + other notes. Meaning that the script is triggered only if the note has + this script attached to it through relations (or it can inherit it).

    +
      +
    • runOnNoteCreation - executes when note is created on backend.
    • +
    • runOnNoteTitleChange - executes when note title is changed + (includes note creation as well).
    • +
    • runOnNoteContentChange - executes when note content is changed + (includes note creation as well).
    • +
    • runOnNoteChange - executes when note is changed (includes + note creation as well).
    • +
    • runOnNoteDeletion - executes when note is being deleted.
    • +
    • runOnBranchCreation - executes when a branch is created. Branch + is a link between parent note and child note and is created e.g. when cloning + or moving note.
    • +
    • runOnBranchDeletion - executes when a branch is delete. Branch + is a link between parent note and child note and is deleted e.g. when moving + note (old branch/link is deleted).
    • +
    • runOnChildNoteCreation - executes when new note is created + under this note.
    • +
    • runOnAttributeCreation - executes when new attribute is created + under this note.
    • +
    • runOnAttributeChange - executes when attribute is changed + under this note.
    • +
    +

    Widgets

    +

    Conversely to scripts, widgets do have some specific requirements in order + to work. A widget must:

    +
      +
    • Extend BasicWidget or + one of it's subclasses.
    • +
    • Create a new instance and assign it to module.exports.
    • +
    • Define a parentWidget member to determine where it should be + displayed.
    • +
    • Define a position (integer) that determines the location via + sort order.
    • +
    • Have a #widget attribute on the containing note.
    • +
    • Create, render, and return your element in the render function. +
        +
      • For BasicWidget and + NoteContextAwareWidgetyou should create this.$widget and + render it in doRender().
      • +
      • For RightPanelWidget the this.$widget and doRender() are + already handled and you should instead return the value in doRenderBody().
      • +
      +
    • +
    +

    parentWidget

    +
      +
    • left-pane - This renders the widget on the left side of the + screen where the note tree lives.
    • +
    • center-pane - This renders the widget in the center of the + layout in the same location that notes and splits appear.
    • +
    • note-detail-pane - This renders the widget with the + note in the center pane. This means it can appear multiple times with splits.
    • +
    • right-pane - This renders the widget to the right of any opened + notes.
    • +
    +

    Tutorial

    +

    For more information on building widgets, take a look at Widget Basics.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API.html index a95a5ed74..72aa7b85d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API.html @@ -1,30 +1,10 @@ - - - - - - - - Script API - - - -
    -

    Script API

    - -
    -

    Trilium offers a "Script API" that enables scripts to perform various - useful functions. There are two main APIs available:

    - -

    Please note that the Script API is currently experimental and may undergo - changes in future updates.

    -
    -
    - - - \ No newline at end of file +

    Trilium offers a "Script API" that enables scripts to perform various + useful functions. There are two main APIs available:

    + +

    Please note that the Script API is currently experimental and may undergo + changes in future updates.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Backend API.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Backend API.html index edc416b3e..e69de29bb 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Backend API.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Backend API.html @@ -1,19 +0,0 @@ - - - - - - - - Backend API - - - -
    -

    Backend API

    - -
    -
    - - - \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.html index e869af459..e69de29bb 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.html @@ -1,19 +0,0 @@ - - - - - - - - FNote - - - -
    -

    FNote

    - -
    -
    - - - \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme.html b/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme.html index 9f205bce6..f54e2f9e9 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme.html @@ -1,86 +1,66 @@ - - - - - - - - Creating a custom theme - - - -
    -

    Creating a custom theme

    +

    Step 1. Find a place to place the themes

    +

    Organization is an important aspect of managing a knowledge base. When + developing a new theme or importing an existing one it's a good idea to + keep them into one place.

    +

    As such, the first step is to create a new note to gather all the themes.

    +

    + +

    +

    Step 2. Create the theme

    + + + + + + + + + + + + + + + + + + + + + +
    + + Themes are code notes with a special attribute. Start by creating a new + code note.
    + + Then change the note type to a CSS code.
    + + In the Owned Attributes section define the #appTheme attribute + to point to any desired name. This is the name that will show up in the + appearance section in settings.
    -
    -

    Step 1. Find a place to place the themes

    -

    Organization is an important aspect of managing a knowledge base. When - developing a new theme or importing an existing one it's a good idea to - keep them into one place.

    -

    As such, the first step is to create a new note to gather all the themes.

    -

    - -

    -

    Step 2. Create the theme

    - - - - - - - - - - - - - - - - - - - - - -
    - - Themes are code notes with a special attribute. Start by creating a new - code note.
    - - Then change the note type to a CSS code.
    - - In the Owned Attributes section define the #appTheme attribute - to point to any desired name. This is the name that will show up in the - appearance section in settings.
    -

    Step 3. Define the theme's CSS

    -

    As a very simple example we will change the background color of the launcher - pane to a shade of blue.

    -

    To alter the different variables of the theme:

    :root {
    +

    As a very simple example we will change the background color of the launcher + pane to a shade of blue.

    +

    To alter the different variables of the theme:

    :root {
     	--launcher-pane-background-color: #0d6efd;
     }
    -

    Step 4. Activating the theme

    -

    Refresh the application (Ctrl+Shift+R is a good way to do so) and go to - settings. You should see the newly created theme:

    -

    - -

    -

    Afterwards the application will refresh itself with the new theme:

    -

    - -

    -

    Do note that the theme will be based off of the legacy theme. To override - that and base the theme on the new TriliumNext theme, see: Theme base (legacy vs. next) -

    -

    Step 5. Making changes

    -

    Simply go back to the note and change according to needs. To apply the - changes to the current window, press Ctrl+Shift+R to - refresh.

    -

    It's a good idea to keep two windows, one for editing and the other one - for previewing the changes.

    -
    -
    - - - \ No newline at end of file +

    Step 4. Activating the theme

    +

    Refresh the application (Ctrl+Shift+R is a good way to do so) and go to + settings. You should see the newly created theme:

    +

    + +

    +

    Afterwards the application will refresh itself with the new theme:

    +

    + +

    +

    Do note that the theme will be based off of the legacy theme. To override + that and base the theme on the new TriliumNext theme, see: Theme base (legacy vs. next) +

    +

    Step 5. Making changes

    +

    Simply go back to the note and change according to needs. To apply the + changes to the current window, press Ctrl+Shift+R to + refresh.

    +

    It's a good idea to keep two windows, one for editing and the other one + for previewing the changes.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Custom app-wide CSS.html b/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Custom app-wide CSS.html index 409059af1..8e27cd82b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Custom app-wide CSS.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Custom app-wide CSS.html @@ -1,61 +1,46 @@ - - - - - - - - Custom app-wide CSS - - - -
    -

    Custom app-wide CSS

    +

    It is possible to provide a CSS file to be used regardless of the theme + set by the user.

    + + + + + + + + + + + + + + + + + + + + + +
    + + Start by creating a new note and changing the note type to CSS
    + + In the ribbon, press the “Owned Attributes” section and type #appCss.
    + + Type the desired CSS. +
    +
    Generally it's a good idea to append !important for the styles + that are being changed, in order to prevent other
    -
    -

    It is possible to provide a CSS file to be used regardless of the theme - set by the user.

    - - - - - - - - - - - - - - - - - - - - - -
    - - Start by creating a new note and changing the note type to CSS
    - - In the ribbon, press the “Owned Attributes” section and type #appCss.
    - - Type the desired CSS. -
    -
    Generally it's a good idea to append !important for the styles - that are being changed, in order to prevent other
    -

    Seeing the changes

    -

    Adding a new app CSS note or modifying an existing one does not - immediately apply changes. To see the changes, press Ctrl+Shift+R to refresh - the page first.

    -

    Example use-case: customizing the printing stylesheet

    -

    When printing a document or exporting as PDF, it is possible to adjust - the style by creating a CSS note that uses the @media selector.

    -

    For example, to change the font of the document from the one defined by - the theme or the user to a serif one:

    @media print {
    +

    Adding a new app CSS note or modifying an existing one does not + immediately apply changes. To see the changes, press Ctrl+Shift+R to refresh + the page first.

    +

    Example use-case: customizing the printing stylesheet

    +

    When printing a document or exporting as PDF, it is possible to adjust + the style by creating a CSS note that uses the @media selector.

    +

    For example, to change the font of the document from the one defined by + the theme or the user to a serif one:

    @media print {
     
     	body {
     
    @@ -65,9 +50,4 @@
     
         }
     
    -}
    -
    -
    - - - \ No newline at end of file +} \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Customize the Next theme.html b/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Customize the Next theme.html index fc66cb689..bcd4ddad7 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Customize the Next theme.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Customize the Next theme.html @@ -1,40 +1,20 @@ - - - - - - - - Customize the Next theme - - - -
    -

    Customize the Next theme

    - -
    -

    By default, any custom theme will be based on the legacy light theme. - To use the TriliumNext theme instead, add the #appThemeBase=next attribute - onto the existing theme. The appTheme attribute must also be - present.

    -

    - -

    -

    The appThemeBase label can be set to one of the following values:

    -
      -
    • next, for the TriliumNext (auto light or dark mode).
    • -
    • next-light, for the always light mode of the TriliumNext.
    • -
    • next-dark, for the always dark mode of the TriliumNext.
    • -
    • Any other value is ignored and will use the legacy white theme instead.
    • -
    -

    Overrides

    -

    Do note that the TriliumNext theme has a few more overrides than the legacy - theme, so you might need to suffix !important if the style changes - are not applied.

    :root {
    +

    By default, any custom theme will be based on the legacy light theme. + To use the TriliumNext theme instead, add the #appThemeBase=next attribute + onto the existing theme. The appTheme attribute must also be + present.

    +

    + +

    +

    The appThemeBase label can be set to one of the following values:

    +
      +
    • next, for the TriliumNext (auto light or dark mode).
    • +
    • next-light, for the always light mode of the TriliumNext.
    • +
    • next-dark, for the always dark mode of the TriliumNext.
    • +
    • Any other value is ignored and will use the legacy white theme instead.
    • +
    +

    Overrides

    +

    Do note that the TriliumNext theme has a few more overrides than the legacy + theme, so you might need to suffix !important if the style changes + are not applied.

    :root {
     	--launcher-pane-background-color: #0d6efd !important;
    -}
    -
    -
    - - - \ No newline at end of file +} \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Reference.html b/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Reference.html index 11b001cf6..c62f3dec7 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Reference.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Reference.html @@ -1,29 +1,14 @@ - - - - - - - - Reference - - - -
    -

    Reference

    - -
    -

    Detecting mobile vs. desktop

    -

    The mobile layout is different than the one on the desktop. Use body.mobile and body.desktop to - differentiate between them.

    body.mobile #root-widget {
    +

    Detecting mobile vs. desktop

    +

    The mobile layout is different than the one on the desktop. Use body.mobile and body.desktop to + differentiate between them.

    body.mobile #root-widget {
     	/* Do something on mobile */
     }
     
     body.desktop #root-widget {
     	/* Do something on desktop */
     }
    -

    Do note that there is also a “tablet mode” in the mobile layout. For that - particular case media queries are required:

    @media (max-width: 991px) {
    +

    Do note that there is also a “tablet mode” in the mobile layout. For that + particular case media queries are required:

    @media (max-width: 991px) {
     
         #launcher-pane {
     
    @@ -44,97 +29,97 @@ body.desktop #root-widget {
         }
     
     }
    -

    Detecting horizontal vs. vertical layout

    -

    The user can select between vertical layout (the classical one, where - the launcher bar is on the left) and a horizontal layout (where the launcher - bar is on the top and tabs are full-width).

    -

    Different styles can be applied by using classes at body level:

    body.layout-vertical #left-pane {
    +

    Detecting horizontal vs. vertical layout

    +

    The user can select between vertical layout (the classical one, where + the launcher bar is on the left) and a horizontal layout (where the launcher + bar is on the top and tabs are full-width).

    +

    Different styles can be applied by using classes at body level:

    body.layout-vertical #left-pane {
     	/* Do something */
     }
     
     body.layout-horizontal #center-pane {
     	/* Do something else */	
     }
    -

    The two different layouts use different containers (but they are present - in the DOM regardless of the user's choice), for example #horizontal-main-container and #vertical-main-container can - be used to customize the background of the content section.

    -

    Detecting platform (Windows, macOS) or Electron

    -

    It is possible to add particular styles that only apply to a given platform - by using the classes in body:

    - - - - - - - - - - - - - -
    WindowsmacOS
    <br>body.platform-win32 {<br> background: red;<br>}<br> - <br>body.platform-darwin {<br> background: red;<br>}<br> -
    -

    It is also possible to only apply a style if running under Electron (desktop - application):

    body.electron {
    +

    The two different layouts use different containers (but they are present + in the DOM regardless of the user's choice), for example #horizontal-main-container and #vertical-main-container can + be used to customize the background of the content section.

    +

    Detecting platform (Windows, macOS) or Electron

    +

    It is possible to add particular styles that only apply to a given platform + by using the classes in body:

    + + + + + + + + + + + + + +
    WindowsmacOS
    <br>body.platform-win32 {<br> background: red;<br>}<br> + <br>body.platform-darwin {<br> background: red;<br>}<br> +
    +

    It is also possible to only apply a style if running under Electron (desktop + application):

    body.electron {
     	background: blue;
     }
    -

    Native title bar

    -

    It's possible to detect if the user has selected the native title bar - or the custom title bar by querying against body:

    body.electron.native-titlebar {
    +

    Native title bar

    +

    It's possible to detect if the user has selected the native title bar + or the custom title bar by querying against body:

    body.electron.native-titlebar {
     	/* Do something */
     }
     
     body.electron:not(.native-titlebar) {
     	/* Do something else */
     }
    -

    Native window buttons

    -

    When running under Electron with native title bar off, a feature was introduced - to use the platform-specific window buttons such as the semaphore on macOS.

    -

    See Native title bar buttons by eliandoran · Pull Request #702 · TriliumNext/Notes for - the original implementation of this feature, including screenshots.

    -

    On Windows

    -

    The colors of the native window button area can be adjusted using a RGB - hex color:

    body {
    +

    Native window buttons

    +

    When running under Electron with native title bar off, a feature was introduced + to use the platform-specific window buttons such as the semaphore on macOS.

    +

    See Native title bar buttons by eliandoran · Pull Request #702 · TriliumNext/Notes for + the original implementation of this feature, including screenshots.

    +

    On Windows

    +

    The colors of the native window button area can be adjusted using a RGB + hex color:

    body {
     	--native-titlebar-foreground: #ffffff;
     	--native-titlebar-background: #ff0000;
     }
    -

    It is also possible to use transparency at the cost of reduced hover colors - using a RGBA hex color:

    body {
    +

    It is also possible to use transparency at the cost of reduced hover colors + using a RGBA hex color:

    body {
     	--native-titlebar-background: #ff0000aa;
     }
    -

    Note that the value is read when the window is initialized and then it - is refreshed only when the user changes their light/dark mode preference.

    -

    On macOS

    -

    On macOS the semaphore window buttons are enabled by default when the - native title bar is disabled. The offset of the buttons can be adjusted - using:

    body {
    +

    Note that the value is read when the window is initialized and then it + is refreshed only when the user changes their light/dark mode preference.

    +

    On macOS

    +

    On macOS the semaphore window buttons are enabled by default when the + native title bar is disabled. The offset of the buttons can be adjusted + using:

    body {
         --native-titlebar-darwin-x-offset: 12;
         --native-titlebar-darwin-y-offset: 14 !important;
     }
    -

    Background/transparency effects on Windows (Mica)

    -

    Windows 11 offers a special background/transparency effect called Mica, - which can be enabled by themes by setting the --background-material variable - at body level:

    body.electron.platform-win32 {
    +

    Background/transparency effects on Windows (Mica)

    +

    Windows 11 offers a special background/transparency effect called Mica, + which can be enabled by themes by setting the --background-material variable + at body level:

    body.electron.platform-win32 {
     	--background-material: tabbed; 
     }
    -

    The value can be either tabbed (especially useful for the horizontal - layout) or mica (ideal for the vertical layout).

    -

    Do note that the Mica effect is applied at body level and the - theme needs to make the entire hierarchy (semi-)transparent in order for - it to be visible. Use the TrilumNext theme as an inspiration.

    -

    Note icons, tab workspace accent color

    -

    Theme capabilities are small adjustments done through CSS variables that - can affect the layout or the visual aspect of the application.

    -

    In the tab bar, to display the icons of notes instead of the icon of the - workspace:

    :root {
    +

    The value can be either tabbed (especially useful for the horizontal + layout) or mica (ideal for the vertical layout).

    +

    Do note that the Mica effect is applied at body level and the + theme needs to make the entire hierarchy (semi-)transparent in order for + it to be visible. Use the TrilumNext theme as an inspiration.

    +

    Note icons, tab workspace accent color

    +

    Theme capabilities are small adjustments done through CSS variables that + can affect the layout or the visual aspect of the application.

    +

    In the tab bar, to display the icons of notes instead of the icon of the + workspace:

    :root {
     	--tab-note-icons: true;
     }
    -

    When a workspace is hoisted for a given tab, it is possible to get the - background color of that workspace, for example to apply a small strip - on the tab instead of the whole background color:

    .note-tab .note-tab-wrapper {
    +

    When a workspace is hoisted for a given tab, it is possible to get the + background color of that workspace, for example to apply a small strip + on the tab instead of the whole background color:

    .note-tab .note-tab-wrapper {
         --tab-background-color: initial !important;
     }
     
    @@ -147,27 +132,22 @@ body.electron:not(.native-titlebar) {
         height: 3px;
         background-color: var(--workspace-tab-background-color);
     }
    -

    Custom fonts

    -

    Currently the only way to include a custom font is to use Custom resource providers. - Basically import a font into Trilium and assign it #customResourceProvider=fonts/myfont.ttf and - then import the font in CSS via /custom/fonts/myfont.ttf.

    -

    Dark and light themes

    -

    A light theme needs to have the following CSS:

    :root {
    +

    Custom fonts

    +

    Currently the only way to include a custom font is to use Custom resource providers. + Basically import a font into Trilium and assign it #customResourceProvider=fonts/myfont.ttf and + then import the font in CSS via /custom/fonts/myfont.ttf.

    +

    Dark and light themes

    +

    A light theme needs to have the following CSS:

    :root {
     	--theme-style: light;
     }
    -

    if the theme is dark, then --theme-style needs to be dark.

    -

    If the theme is auto (e.g. supports both light or dark based on prefers-color-scheme) - it must also declare (in addition to setting --theme-style to - either light or dark):

    :root {
    +

    if the theme is dark, then --theme-style needs to be dark.

    +

    If the theme is auto (e.g. supports both light or dark based on prefers-color-scheme) + it must also declare (in addition to setting --theme-style to + either light or dark):

    :root {
     
         --theme-style-auto: true;
     
     }
    -

    This will affect the behavior of the Electron application by informing - the operating system of the color preference (e.g. background effects will - appear correct on Windows).

    -
    -
    - - - \ No newline at end of file +

    This will affect the behavior of the Electron application by informing + the operating system of the color preference (e.g. background effects will + appear correct on Windows).

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting.html index da121ac67..77d1aa2dc 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting.html @@ -1,81 +1,61 @@ - - - - - - - - Troubleshooting - - - -
    -

    Troubleshooting

    - -
    -

    As Trilium is currently in beta, encountering bugs is to be expected.

    -

    General Quick Fix

    -

    The first step in troubleshooting is often a restart.

    -

    If you experience an UI issue, the frontend may have entered an inconsistent - state. Reload the application by pressing Ctrl + R. - This will reload the frontend.

    -

    If the issue persists or appears to be a backend problem, restart the - entire application. For the desktop (Electron) build, simply close and - reopen the window. If you're using a Docker build, restart the container.

    -

    Broken Note Crashes Trilium

    -

    Certain problems, such as rendering a note with a faulty script, can cause - Trilium to crash. If Trilium attempts to reload the problematic note upon - restart, it will continue to crash.

    -

    To resolve this, use the TRILIUM_START_NOTE_ID environment - variable to reset the open tabs to a single specified note ID (e.g., root). - In Linux, you can set it as follows:

    TRILIUM_START_NOTE_ID=root ./trilium
    -

    Broken Script Prevents Application Startup

    -

    If a custom script causes Triliumto crash, and it is set as a startup - script or in an active custom widget, - start Triliumin "safe mode" to prevent any custom scripts from executing:

    TRILIUM_SAFE_MODE=true ./trilium
    -

    Depending on your Trilium distribution, you may have pre-made scripts - available: trilium-safe-mode.bat and trilium-safe-mode.sh.

    -

    Once Trilium starts, locate and fix or delete the problematic note.

    -

    Sync and Consistency Checks

    -

    Trilium periodically verifies the logical consistency of the database - (e.g., ensuring every note has a parent). If inconsistencies are detected, - you will be notified via the UI.

    -

    In such cases, file a bug report and attach an anonymized database if - necessary.

    -

    Restoring Backup

    -

    Trilium makes regular automatic backups. If issues become severe, you - can restore from a backup.

    -

    Forgotten Password

    -

    If you forget your password:

    -
      -
    • Protected notes are irretrievable without the password.
    • -
    • Unprotected notes can be recovered. Follow these steps:
    • -
    -

    Access the database file in the - data directory. Open the document.db file with an SQLite - client (e.g., DB Browser) and execute - the following queries:

    UPDATE options SET value = '77/twC5O00cuQgNC63VK32qOKKYwj21ev3jZDXoytVU=' WHERE name = 'passwordVerificationSalt';
    +

    As Trilium is currently in beta, encountering bugs is to be expected.

    +

    General Quick Fix

    +

    The first step in troubleshooting is often a restart.

    +

    If you experience an UI issue, the frontend may have entered an inconsistent + state. Reload the application by pressing Ctrl + R. + This will reload the frontend.

    +

    If the issue persists or appears to be a backend problem, restart the + entire application. For the desktop (Electron) build, simply close and + reopen the window. If you're using a Docker build, restart the container.

    +

    Broken Note Crashes Trilium

    +

    Certain problems, such as rendering a note with a faulty script, can cause + Trilium to crash. If Trilium attempts to reload the problematic note upon + restart, it will continue to crash.

    +

    To resolve this, use the TRILIUM_START_NOTE_ID environment + variable to reset the open tabs to a single specified note ID (e.g., root). + In Linux, you can set it as follows:

    TRILIUM_START_NOTE_ID=root ./trilium
    +

    Broken Script Prevents Application Startup

    +

    If a custom script causes Triliumto crash, and it is set as a startup + script or in an active custom widget, + start Triliumin "safe mode" to prevent any custom scripts from executing:

    TRILIUM_SAFE_MODE=true ./trilium
    +

    Depending on your Trilium distribution, you may have pre-made scripts + available: trilium-safe-mode.bat and trilium-safe-mode.sh.

    +

    Once Trilium starts, locate and fix or delete the problematic note.

    +

    Sync and Consistency Checks

    +

    Trilium periodically verifies the logical consistency of the database + (e.g., ensuring every note has a parent). If inconsistencies are detected, + you will be notified via the UI.

    +

    In such cases, file a bug report and attach an anonymized database if + necessary.

    +

    Restoring Backup

    +

    Trilium makes regular automatic backups. If issues become severe, you + can restore from a backup.

    +

    Forgotten Password

    +

    If you forget your password:

    +
      +
    • Protected notes are irretrievable without the password.
    • +
    • Unprotected notes can be recovered. Follow these steps:
    • +
    +

    Access the database file in the + data directory. Open the document.db file with an SQLite + client (e.g., DB Browser) and execute + the following queries:

    UPDATE options SET value = '77/twC5O00cuQgNC63VK32qOKKYwj21ev3jZDXoytVU=' WHERE name = 'passwordVerificationSalt';
     UPDATE options SET value = '710BMasZCAgibzIc07X4P9Q4TeBd4ONnqJOho+pWcBM=' WHERE name = 'passwordDerivedKeySalt';
     UPDATE options SET value = 'Eb8af1/T57b89lCRuS97tPEl4CwxsAWAU7YNJ77oY+s=' WHERE name = 'passwordVerificationHash';
     UPDATE options SET value = 'QpC8XoiYYeqHPtHKRtbNxfTHsk+pEBqVBODYp0FkPBa22tlBBKBMigdLu5GNX8Uu' WHERE name = 'encryptedDataKey';
    -

    After executing the changes, commit/write the changes. This sets the password to "password," allowing you to log in again. -

    -

    For pre-existing protected notes (now unrecoverable), consider deleting - them or exporting the unprotected notes. Then, delete document.db and - start fresh.

    -

    If you continue using the existing document file, change your password - (Options -> Change Password).

    -

    Reporting Bugs

    -

    Reporting bugs is highly valuable. Here are some tips:

    - -
    -
    - - - \ No newline at end of file +

    After executing the changes, commit/write the changes. This sets the password to "password," allowing you to log in again. +

    +

    For pre-existing protected notes (now unrecoverable), consider deleting + them or exporting the unprotected notes. Then, delete document.db and + start fresh.

    +

    If you continue using the existing document file, change your password + (Options -> Change Password).

    +

    Reporting Bugs

    +

    Reporting bugs is highly valuable. Here are some tips:

    + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database.html b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database.html index c25b0a682..1ae7334bf 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database.html @@ -1,49 +1,29 @@ - - - - - - - - Anonymized Database - - - -
    -

    Anonymized Database

    - -
    -

    - -

    -

    In certain scenarios, understanding the structure of a database is crucial - for troubleshooting issues. However, sharing your actual database file - with personal notes is not advisable. To address this, Trilium offers a - feature to anonymize the database. This feature can be accessed via Menu - -> Options -> Advanced tab.

    -

    This feature creates a copy of your database with all sensitive data removed. - Specifically, it strips out note titles, contents, revisions, history, - and some non-system attributes while retaining the overall structure and - metadata, such as modification dates. After anonymization, the database - undergoes a vacuuming process to - ensure no sensitive data remnants remain in the file. The anonymized database - is saved in the anonymized directory within the data directory, - making it safe to share with bug reports.

    -

    This will create a copy of your document and remove all sensitive data - (currently note titles, contents, revisions, history and some of the options, - and non-system attributes) while leaving all structure and metadata (e.g. - date of last change). After this is done, the database is VACUUMed to - make sure there's no stale sensitive data in the document file. The resulting - file is stored in anonymized directory (placed in the data directory). - You can safely attach it to a bug report.

    -

    Command Line Anonymization

    -

    If your database is corrupted to - the point where Trilium cannot start, the anonymization process can still - be executed via the command line:

    node src/anonymize.js
    -

    Run this command from the directory containing Trilium's source files, - typically found in the resources/app directory for desktop builds.

    -
    -
    - - - \ No newline at end of file +

    + +

    +

    In certain scenarios, understanding the structure of a database is crucial + for troubleshooting issues. However, sharing your actual database file + with personal notes is not advisable. To address this, Trilium offers a + feature to anonymize the database. This feature can be accessed via Menu + -> Options -> Advanced tab.

    +

    This feature creates a copy of your database with all sensitive data removed. + Specifically, it strips out note titles, contents, revisions, history, + and some non-system attributes while retaining the overall structure and + metadata, such as modification dates. After anonymization, the database + undergoes a vacuuming process to + ensure no sensitive data remnants remain in the file. The anonymized database + is saved in the anonymized directory within the data directory, + making it safe to share with bug reports.

    +

    This will create a copy of your document and remove all sensitive data + (currently note titles, contents, revisions, history and some of the options, + and non-system attributes) while leaving all structure and metadata (e.g. + date of last change). After this is done, the database is VACUUMed to + make sure there's no stale sensitive data in the document file. The resulting + file is stored in anonymized directory (placed in the data directory). + You can safely attach it to a bug report.

    +

    Command Line Anonymization

    +

    If your database is corrupted to + the point where Trilium cannot start, the anonymization process can still + be executed via the command line:

    node src/anonymize.js
    +

    Run this command from the directory containing Trilium's source files, + typically found in the resources/app directory for desktop builds.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html index f2c6f03bf..362ec507b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html @@ -1,65 +1,45 @@ - - - - - - - - Error logs - - - -
    -

    Error logs

    - -
    -

    It's important to provide all available error logs together with bug reports. - This page will show you how to do it.

    -

    Backend logs

    -

    Open data directory, go to log subdirectory - and find the latest log file, e.g. trilium-2022-12-14.log. - You can attach the whole file to the bug report (preferable) or open it - and copy-paste only the last lines / lines you believe are relevant.

    -

    If you have trouble finding it the log files, there's also an in-app option - in top-left menu button -> Advanced -> Show backend log.

    -

    Frontend logs

    -

    To provide frontend logs, we need to open the Developer Console. Often - the easiest way is to press Ctrl-Shift-I which - should work in most browsers (and desktop app). Make sure that the error - producing action happened right before you copy&paste the errors, the - console is cleared on app restart.

    -

    If that doesn't work, then:

    -
      -
    • in Trilium desktop app, go to top-left menu button -> Advanced -> - Open Dev Tools
    • -
    • In Firefox/Chrome right-click anywhere in the page and click Inspect:
    • -
    -

    - -

    -

    Once you have Dev Tools open, click on "Console" tab:

    -

    - -

    -

    Copy-paste (or screenshot) the logs. It's better to provide not just errors, - but the whole log, which might provide context while analyzing the bug.

    -

    Providing sensitive data

    -

    If you don't feel comfortable attaching the logs or anything sensitive - to the public GitHub issues, feel free to contact the devs in our Matrix - support channel.

    -

    Use this email to also provide anything which could assist in analysing - the bug - e.g. files/images/ZIPs being imported or anonymized database.

    -

    Exporting note subtree for reproduction

    -

    Often times, bugs manifest themselves in specific notes and having them - would greatly ease reproduction and fixing.

    -

    In such case, please export the relevant note subtree by right-clicking - it on the left tree, choosing Export - HTML as ZIP:

    -

    - -

    -
    -
    - - - \ No newline at end of file +

    It's important to provide all available error logs together with bug reports. + This page will show you how to do it.

    +

    Backend logs

    +

    Open data directory, go to log subdirectory + and find the latest log file, e.g. trilium-2022-12-14.log. + You can attach the whole file to the bug report (preferable) or open it + and copy-paste only the last lines / lines you believe are relevant.

    +

    If you have trouble finding it the log files, there's also an in-app option + in top-left menu button -> Advanced -> Show backend log.

    +

    Frontend logs

    +

    To provide frontend logs, we need to open the Developer Console. Often + the easiest way is to press Ctrl-Shift-I which + should work in most browsers (and desktop app). Make sure that the error + producing action happened right before you copy&paste the errors, the + console is cleared on app restart.

    +

    If that doesn't work, then:

    +
      +
    • in Trilium desktop app, go to top-left menu button -> Advanced -> + Open Dev Tools
    • +
    • In Firefox/Chrome right-click anywhere in the page and click Inspect:
    • +
    +

    + +

    +

    Once you have Dev Tools open, click on "Console" tab:

    +

    + +

    +

    Copy-paste (or screenshot) the logs. It's better to provide not just errors, + but the whole log, which might provide context while analyzing the bug.

    +

    Providing sensitive data

    +

    If you don't feel comfortable attaching the logs or anything sensitive + to the public GitHub issues, feel free to contact the devs in our Matrix + support channel.

    +

    Use this email to also provide anything which could assist in analysing + the bug - e.g. files/images/ZIPs being imported or anonymized database.

    +

    Exporting note subtree for reproduction

    +

    Often times, bugs manifest themselves in specific notes and having them + would greatly ease reproduction and fixing.

    +

    In such case, please export the relevant note subtree by right-clicking + it on the left tree, choosing Export - HTML as ZIP:

    +

    + +

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Refreshing the application.html b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Refreshing the application.html index 2bf313557..1eace412d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Refreshing the application.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Refreshing the application.html @@ -1,23 +1,3 @@ - - - - - - - - Refreshing the application - - - -
    -

    Refreshing the application

    - -
    -

    Some changes to the application will not take effect immediately and as - such it might require to manually reload or refresh the application.

    -

    To do so, simply press Ctrl+Shift+R.

    -
    -
    - - - \ No newline at end of file +

    Some changes to the application will not take effect immediately and as + such it might require to manually reload or refresh the application.

    +

    To do so, simply press Ctrl+Shift+R.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Reporting issues.html b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Reporting issues.html index 000fd752e..4af29831e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Reporting issues.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Reporting issues.html @@ -1,23 +1,3 @@ - - - - - - - - Reporting issues - - - -
    -

    Reporting issues

    - -
    -

    Go to Issues · TriliumNext/Notes and - press “New issue”.

    -

    If you are reporting a bug, select “Bug Report” and fill in the details.

    -
    -
    - - - \ No newline at end of file +

    Go to Issues · TriliumNext/Notes and + press “New issue”.

    +

    If you are reporting a bug, select “Bug Report” and fill in the details.

    \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Synchronization fails with 504.html b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Synchronization fails with 504.html index fcd6a2533..0799b33f1 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Synchronization fails with 504.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Synchronization fails with 504.html @@ -1,33 +1,13 @@ - - - - - - - - Synchronization fails with 504 Gateway Timeout - - - -
    -

    Synchronization fails with 504 Gateway Timeout

    - -
    -

    Synchronization can sometimes take a long amount of time in order to compute - the items that require update. When running behind a reverse proxy, the - request can time out.

    -

    The solution is to increase the timeout at proxy level.

    -

    Nginx

    -

    Add the following to the configuration file:

    proxy_connect_timeout 300;
    +

    Synchronization can sometimes take a long amount of time in order to compute + the items that require update. When running behind a reverse proxy, the + request can time out.

    +

    The solution is to increase the timeout at proxy level.

    +

    Nginx

    +

    Add the following to the configuration file:

    proxy_connect_timeout 300;
     proxy_send_timeout 300;
     proxy_read_timeout 300;
     send_timeout 300;
    -

    And restart the server.

    -

    See Nginx Proxy Setup for - more information about the Nginx setup.

    -

    If it still doesn't work, try increasing the timeout.

    -
    -
    - - - \ No newline at end of file +

    And restart the server.

    +

    See Nginx Proxy Setup for + more information about the Nginx setup.

    +

    If it still doesn't work, try increasing the timeout.

    \ No newline at end of file