chore(docs): remove HTML wrapper

This commit is contained in:
Elian Doran
2025-04-12 00:32:54 +03:00
parent 8ecefa4eec
commit c9dba8c0e7
156 changed files with 8916 additions and 12033 deletions

View File

@@ -1,21 +1 @@
<html> <p>The sub-children of this note are automatically synced.</p>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="style.css">
<base target="_parent">
<title data-trilium-title>User Guide</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>User Guide</h1>
<div class="ck-content">
<p>The sub-children of this note are automatically synced.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,37 +1,17 @@
<html> <p>Trilium offers advanced functionality through <a href="#root/_help_CdNpE2pqjmI6">Scripts</a> and
<a
<head> href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>. To illustrate these features, we've prepared
<meta charset="utf-8"> several showcases available in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>:</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <ul>
<link rel="stylesheet" href="../../style.css"> <li><a href="#root/_help_iRwzGnHPzonm">Relation Map</a>
<base target="_parent"> </li>
<title data-trilium-title>Advanced Showcases</title> <li><a href="#root/_help_l0tKav7yLHGF">Day Notes</a>
</head> </li>
<li><a href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a>
<body> </li>
<div class="content"> <li><a href="#root/_help_xYjQUYhpbUEW">Task Manager</a>
<h1 data-trilium-h1>Advanced Showcases</h1> </li>
</ul>
<div class="ck-content"> <p>It's important to note that these examples are not natively supported
<p>Trilium offers advanced functionality through <a href="#root/_help_CdNpE2pqjmI6">Scripts</a> and by Trilium out of the box; instead, they demonstrate what you can build
<a within Trilium.</p>
href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>. To illustrate these features, we've prepared
several showcases available in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>:</p>
<ul>
<li><a href="#root/_help_iRwzGnHPzonm">Relation Map</a>
</li>
<li><a href="#root/_help_l0tKav7yLHGF">Day Notes</a>
</li>
<li><a href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a>
</li>
<li><a href="#root/_help_xYjQUYhpbUEW">Task Manager</a>
</li>
</ul>
<p>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.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,166 +1,146 @@
<html> <p>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
<head> on a certain date, you have meeting minutes from a certain date, you have
<meta charset="utf-8"> your thoughts etc. and it all revolves around a date on which they occurred.
<meta name="viewport" content="width=device-width, initial-scale=1"> For this reason, it makes sense to create a certain "day workspace" which
<link rel="stylesheet" href="../../../style.css"> will centralize all those notes relevant for a certain date.</p>
<base target="_parent"> <p>For this, Trilium provides a concept of "day note". Trilium semi-automatically
<title data-trilium-title>Day Notes</title> generates a single note for each day. Under this note you can save all
</head> those relevant notes.</p>
<p>Select an existing day note, and the menubar contains a calendar widget.
<body> Select any day to create a note for that day.&nbsp;</p>
<div class="content"> <p>
<h1 data-trilium-h1>Day Notes</h1> <img src="1_Day Notes_image.png">
</p>
<div class="ck-content"> <p>This pattern works well also because of <a href="#root/_help_IakOLONlIfGI">Cloning Notes</a> functionality
<p>A common pattern in note-taking is that a lot of notes will be centered - note can appear in multiple places in the note tree, so besides appearing
around a certain date - e.g. you have some tasks which needs to be done under day note, it can also be categorized into other notes.</p>
on a certain date, you have meeting minutes from a certain date, you have <h2>Demo</h2>
your thoughts etc. and it all revolves around a date on which they occurred. <p>
For this reason, it makes sense to create a certain "day workspace" which <img src="Day Notes_image.png">
will centralize all those notes relevant for a certain date.</p> </p>
<p>For this, Trilium provides a concept of "day note". Trilium semi-automatically <p>You can see the structure of day notes appearing under "Journal" note
generates a single note for each day. Under this note you can save all - there's a note for the whole year 2025, under it, you have "03 - March"
those relevant notes.</p> which then contains "09 - Monday". This is our "day note" which contains
<p>Select an existing day note, and the menubar contains a calendar widget. some text in its content and also has some child notes (some of them are
Select any day to create a note for that day.&nbsp;</p> from <a href="#root/_help_xYjQUYhpbUEW">Task manager</a>).</p>
<p> <p>You can also notice how this day note has <a href="#root/_help_OFXdgB2nNk1F">promoted attribute</a> "weight"
<img src="1_Day Notes_image.png"> where you can track your daily weight. This data is then used in <a href="#root/_help_R7abl2fc6Mxi">Weight tracker</a>.</p>
</p> <h2>Week Note and Quarter Note</h2>
<p>This pattern works well also because of <a href="#root/_help_IakOLONlIfGI">Cloning Notes</a> functionality <p>Week and quarter notes are disabled by default, since it might be too
- note can appear in multiple places in the note tree, so besides appearing much for some people. To enable them, you need to set <code>#enableWeekNotes</code> and <code>#enableQuarterNotes</code> attributes
under day note, it can also be categorized into other notes.</p> on the root calendar note, which is identified by <code>#calendarRoot</code> label.
<h2>Demo</h2> Week note is affected by the first week of year option. Be careful when
<p> you already have some week notes created, it will not automatically change
<img src="Day Notes_image.png"> the existing week notes and might lead to some duplicates.</p>
</p> <h2>Templates</h2>
<p>You can see the structure of day notes appearing under "Journal" note <p>Trilium provides <a href="#root/_help_KC1HB96bqqHX">template</a> functionality,
- there's a note for the whole year 2025, under it, you have "03 - March" and it could be used together with day notes.</p>
which then contains "09 - Monday". This is our "day note" which contains <p>You can define one of the following relations on the root of the journal
some text in its content and also has some child notes (some of them are (identified by <code>#calendarRoot</code> label):</p>
from <a href="#root/_help_xYjQUYhpbUEW">Task manager</a>).</p> <ul>
<p>You can also notice how this day note has <a href="#root/_help_OFXdgB2nNk1F">promoted attribute</a> "weight" <li>yearTemplate</li>
where you can track your daily weight. This data is then used in <a href="#root/_help_R7abl2fc6Mxi">Weight tracker</a>.</p> <li>quarterTemplate (if <code>#enableQuarterNotes</code> is set)</li>
<h2>Week Note and Quarter Note</h2> <li>monthTemplate</li>
<p>Week and quarter notes are disabled by default, since it might be too <li>weekTemplate (if <code>#enableWeekNotes</code> is set)</li>
much for some people. To enable them, you need to set <code>#enableWeekNotes</code> and <code>#enableQuarterNotes</code> attributes <li>dateTemplate</li>
on the root calendar note, which is identified by <code>#calendarRoot</code> label. </ul>
Week note is affected by the first week of year option. Be careful when <p>All of these are relations. When Trilium creates a new note for year or
you already have some week notes created, it will not automatically change month or date, it will take a look at the root and attach a corresponding <code>~template</code> relation
the existing week notes and might lead to some duplicates.</p> to the newly created role. Using this, you can e.g. create your daily template
<h2>Templates</h2> with e.g. checkboxes for daily routine etc.</p>
<p>Trilium provides <a href="#root/_help_KC1HB96bqqHX">template</a> functionality, <h2>Naming pattern</h2>
and it could be used together with day notes.</p> <p>You can customize the title of generated journal notes by defining a <code>#datePattern</code>, <code>#weekPattern</code>, <code>#monthPattern</code>, <code>#quarterPattern</code> and <code>#yearPattern</code> attribute
<p>You can define one of the following relations on the root of the journal on a root calendar note (identified by <code>#calendarRoot</code> label).
(identified by <code>#calendarRoot</code> label):</p> The naming pattern replacements follow a level-up compatibility - each
<ul> level can use replacements from itself and all levels above it. For example, <code>#monthPattern</code> can
<li>yearTemplate</li> use month, quarter and year replacements, while <code>#weekPattern</code> can
<li>quarterTemplate (if <code>#enableQuarterNotes</code> is set)</li> use week, month, quarter and year replacements. But it is not possible
<li>monthTemplate</li> to use week replacements in <code>#monthPattern</code>.</p>
<li>weekTemplate (if <code>#enableWeekNotes</code> is set)</li> <h3>Date pattern</h3>
<li>dateTemplate</li> <p>It's possible to customize the title of generated date notes by defining
</ul> a <code>#datePattern</code> attribute on a root calendar note (identified
<p>All of these are relations. When Trilium creates a new note for year or by <code>#calendarRoot</code> label). Following are possible values:</p>
month or date, it will take a look at the root and attach a corresponding <code>~template</code> relation <ul>
to the newly created role. Using this, you can e.g. create your daily template <li><code>{isoDate}</code> results in an ISO 8061 formatted date (e.g. "2025-03-09"
with e.g. checkboxes for daily routine etc.</p> for March 9, 2025)</li>
<h2>Naming pattern</h2> <li><code>{dateNumber}</code> results in a number like <code>9</code> for the
<p>You can customize the title of generated journal notes by defining a <code>#datePattern</code>, <code>#weekPattern</code>, <code>#monthPattern</code>, <code>#quarterPattern</code> and <code>#yearPattern</code> attribute 9th day of the month, <code>11</code> for the 11th day of the month</li>
on a root calendar note (identified by <code>#calendarRoot</code> label). <li><code>{dateNumberPadded}</code> results in a number like <code>09</code> for
The naming pattern replacements follow a level-up compatibility - each the 9th day of the month, <code>11</code> for the 11th day of the month</li>
level can use replacements from itself and all levels above it. For example, <code>#monthPattern</code> can <li><code>{ordinal}</code> is replaced with the ordinal date (e.g. 1st, 2nd,
use month, quarter and year replacements, while <code>#weekPattern</code> can 3rd) etc.</li>
use week, month, quarter and year replacements. But it is not possible <li><code>{weekDay}</code> results in the full day name (e.g. <code>Monday</code>)</li>
to use week replacements in <code>#monthPattern</code>.</p> <li><code>{weekDay3}</code> is replaced with the first 3 letters of the day,
<h3>Date pattern</h3> e.g. Mon, Tue, etc.</li>
<p>It's possible to customize the title of generated date notes by defining <li><code>{weekDay2}</code> is replaced with the first 2 letters of the day,
a <code>#datePattern</code> attribute on a root calendar note (identified e.g. Mo, Tu, etc.</li>
by <code>#calendarRoot</code> label). Following are possible values:</p> </ul>
<ul> <p>The default is <code>{dateNumberPadded} - {weekDay}</code>
<li><code>{isoDate}</code> results in an ISO 8061 formatted date (e.g. "2025-03-09" </p>
for March 9, 2025)</li> <h3>Week pattern</h3>
<li><code>{dateNumber}</code> results in a number like <code>9</code> for the <p>It is also possible to customize the title of generated week notes through
9th day of the month, <code>11</code> for the 11th day of the month</li> the <code>#weekPattern</code> attribute on the root calendar note. The options
<li><code>{dateNumberPadded}</code> results in a number like <code>09</code> for are:</p>
the 9th day of the month, <code>11</code> for the 11th day of the month</li> <ul>
<li><code>{ordinal}</code> is replaced with the ordinal date (e.g. 1st, 2nd, <li><code>{weekNumber}</code> results in a number like <code>9</code> for the
3rd) etc.</li> 9th week of the year, <code>11</code> for the 11th week of the year</li>
<li><code>{weekDay}</code> results in the full day name (e.g. <code>Monday</code>)</li> <li><code>{weekNumberPadded}</code> results in a number like <code>09</code> for
<li><code>{weekDay3}</code> is replaced with the first 3 letters of the day, the 9th week of the year, <code>11</code> for the 11th week of the year</li>
e.g. Mon, Tue, etc.</li> <li><code>{shortWeek}</code> results in a short week string like <code>W9</code> for
<li><code>{weekDay2}</code> is replaced with the first 2 letters of the day, the 9th week of the year, <code>W11</code> for the 11th week of the year</li>
e.g. Mo, Tu, etc.</li> <li><code>{shortWeek3}</code> results in a short week string like <code>W09</code> for
</ul> the 9th week of the year, <code>W11</code> for the 11th week of the year</li>
<p>The default is <code>{dateNumberPadded} - {weekDay}</code> </ul>
</p> <p>The default is <code>Week {weekNumber}</code>
<h3>Week pattern</h3> </p>
<p>It is also possible to customize the title of generated week notes through <h3>Month pattern</h3>
the <code>#weekPattern</code> attribute on the root calendar note. The options <p>It is also possible to customize the title of generated month notes through
are:</p> the <code>#monthPattern</code> attribute on the root calendar note. The options
<ul> are:</p>
<li><code>{weekNumber}</code> results in a number like <code>9</code> for the <ul>
9th week of the year, <code>11</code> for the 11th week of the year</li> <li><code>{isoMonth}</code> results in an ISO 8061 formatted month (e.g. "2025-03"
<li><code>{weekNumberPadded}</code> results in a number like <code>09</code> for for March 2025)</li>
the 9th week of the year, <code>11</code> for the 11th week of the year</li> <li><code>{monthNumber}</code> results in a number like <code>9</code> for September,
<li><code>{shortWeek}</code> results in a short week string like <code>W9</code> for and <code>11</code> for November</li>
the 9th week of the year, <code>W11</code> for the 11th week of the year</li> <li><code>{monthNumberPadded}</code> results in a number like <code>09</code> for
<li><code>{shortWeek3}</code> results in a short week string like <code>W09</code> for September, and <code>11</code> for November</li>
the 9th week of the year, <code>W11</code> for the 11th week of the year</li> <li><code>{month}</code> results in the full month name (e.g. <code>September</code> or <code>October</code>)</li>
</ul> <li><code>{shortMonth3}</code> is replaced with the first 3 letters of the
<p>The default is <code>Week {weekNumber}</code> month, e.g. Jan, Feb, etc.</li>
</p> <li><code>{shortMonth4}</code> is replaced with the first 4 letters of the
<h3>Month pattern</h3> month, e.g. Sept, Octo, etc.</li>
<p>It is also possible to customize the title of generated month notes through </ul>
the <code>#monthPattern</code> attribute on the root calendar note. The options <p>The default is <code>{monthNumberPadded} - {month}</code>
are:</p> </p>
<ul> <h3>Quarter pattern</h3>
<li><code>{isoMonth}</code> results in an ISO 8061 formatted month (e.g. "2025-03" <p>It is also possible to customize the title of generated quarter notes
for March 2025)</li> through the <code>#quarterPattern</code> attribute on the root calendar note.
<li><code>{monthNumber}</code> results in a number like <code>9</code> for September, The options are:</p>
and <code>11</code> for November</li> <ul>
<li><code>{monthNumberPadded}</code> results in a number like <code>09</code> for <li><code>{quarterNumber}</code> results in a number like <code>1</code> for
September, and <code>11</code> for November</li> the 1st quarter of the year</li>
<li><code>{month}</code> results in the full month name (e.g. <code>September</code> or <code>October</code>)</li> <li><code>{shortQuarter}</code> results in a short quarter string like <code>Q1</code> for
<li><code>{shortMonth3}</code> is replaced with the first 3 letters of the the 1st quarter of the year</li>
month, e.g. Jan, Feb, etc.</li> </ul>
<li><code>{shortMonth4}</code> is replaced with the first 4 letters of the <p>The default is <code>Quarter {quarterNumber}</code>
month, e.g. Sept, Octo, etc.</li> </p>
</ul> <h3>Year pattern</h3>
<p>The default is <code>{monthNumberPadded} - {month}</code> <p>It is also possible to customize the title of generated year notes through
</p> the <code>#yearPattern</code> attribute on the root calendar note. The options
<h3>Quarter pattern</h3> are:</p>
<p>It is also possible to customize the title of generated quarter notes <ul>
through the <code>#quarterPattern</code> attribute on the root calendar note. <li><code>{year}</code> results in the full year (e.g. <code>2025</code>)</li>
The options are:</p> </ul>
<ul> <p>The default is <code>{year}</code>
<li><code>{quarterNumber}</code> results in a number like <code>1</code> for </p>
the 1st quarter of the year</li> <h2>Implementation</h2>
<li><code>{shortQuarter}</code> results in a short quarter string like <code>Q1</code> for <p>Trilium has some special support for day notes in the form of <a href="https://triliumnext.github.io/Notes/backend_api/BackendScriptApi.html">backend Script API</a> -
the 1st quarter of the year</li> see e.g. getDayNote() function.</p>
</ul> <p>Day (and year, month) notes are created with a label - e.g. <code>#dateNote="2025-03-09"</code> this
<p>The default is <code>Quarter {quarterNumber}</code> can then be used by other scripts to add new notes to day note etc.</p>
</p> <p>Journal also has relation <code>child:child:child:template=Day template</code> (see
<h3>Year pattern</h3> [[attribute inheritance]]) which effectively adds [[template]] to day notes
<p>It is also possible to customize the title of generated year notes through (grand-grand-grand children of Journal). Please note that, when you enable
the <code>#yearPattern</code> attribute on the root calendar note. The options week notes or quarter notes, it will not automatically change the relation
are:</p> for the child level.</p>
<ul>
<li><code>{year}</code> results in the full year (e.g. <code>2025</code>)</li>
</ul>
<p>The default is <code>{year}</code>
</p>
<h2>Implementation</h2>
<p>Trilium has some special support for day notes in the form of <a href="https://triliumnext.github.io/Notes/backend_api/BackendScriptApi.html">backend Script API</a> -
see e.g. getDayNote() function.</p>
<p>Day (and year, month) notes are created with a label - e.g. <code>#dateNote="2025-03-09"</code> this
can then be used by other scripts to add new notes to day note etc.</p>
<p>Journal also has relation <code>child:child:child:template=Day template</code> (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.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,48 +1,33 @@
<html> <p>Task Manager is a <a href="#root/_help_OFXdgB2nNk1F">promoted attributes</a> and
<a
<head> href="#root/_help_CdNpE2pqjmI6">scripts</a>showcase present in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>.</p>
<meta charset="utf-8"> <h2>Demo</h2>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>
<link rel="stylesheet" href="../../../style.css"> <img src="Task Manager_task-manager.png">
<base target="_parent"> </p>
<title data-trilium-title>Task Manager</title> <p>Task Manager manages outstanding (TODO) tasks and finished tasks (non-empty
</head> doneDate attribute). Outstanding tasks are further categorized by location
and arbitrary tags - whenever you change tag attribute in the task note,
<body> this task is then automatically moved to appropriate location.</p>
<div class="content"> <p>Task Manager also integrates with <a href="#root/_help_l0tKav7yLHGF">day notes</a> -
<h1 data-trilium-h1>Task Manager</h1> notes are <a href="#root/_help_IakOLONlIfGI">cloned</a> into day note to
both todoDate note and doneDate note (with <a href="#root/_help_kBrnXNG3Hplm">prefix</a> of
<div class="ck-content"> either "TODO" or "DONE").</p>
<p>Task Manager is a <a href="#root/_help_OFXdgB2nNk1F">promoted attributes</a> and <h2>Implementation</h2>
<a <p>New tasks are created in the TODO note which has <code>~child:template</code>
href="#root/_help_CdNpE2pqjmI6">scripts</a>showcase present in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>.</p> <a
<h2>Demo</h2> href="#root/_help_zEY4DaJG4YT5">relation</a>(see <a href="#root/_help_bwZpz2ajCEwO">attribute inheritance</a>)
<p> pointing to the task template.</p>
<img src="Task Manager_task-manager.png"> <h3>Attributes</h3>
</p> <p>Task template defines several <a href="#root/_help_OFXdgB2nNk1F">promoted attributes</a> -
<p>Task Manager manages outstanding (TODO) tasks and finished tasks (non-empty todoDate, doneDate, tags, location. Importantly it also defines <code>~runOnAttributeChange</code> relation
doneDate attribute). Outstanding tasks are further categorized by location - <a href="#root/_help_GPERMystNGTB">event</a> handler which is run on attribute
and arbitrary tags - whenever you change tag attribute in the task note, change. This <a href="#root/_help_CdNpE2pqjmI6">script</a> handles when e.g.
this task is then automatically moved to appropriate location.</p> we fill out the doneDate attribute - meaning the task is done and should
<p>Task Manager also integrates with <a href="#root/_help_l0tKav7yLHGF">day notes</a> - be moved to "Done" note and removed from TODO, locations and tags.</p>
notes are <a href="#root/_help_IakOLONlIfGI">cloned</a> into day note to <h3>New task button</h3>
both todoDate note and doneDate note (with <a href="#root/_help_kBrnXNG3Hplm">prefix</a> of <p>There's also "button" note which contains simple script which adds a button
either "TODO" or "DONE").</p> to create new note (task) in the TODO note.</p><pre><code class="language-text-x-trilium-auto">api.addButtonToToolbar({
<h2>Implementation</h2>
<p>New tasks are created in the TODO note which has <code>~child:template</code>
<a
href="#root/_help_zEY4DaJG4YT5">relation</a>(see <a href="#root/_help_bwZpz2ajCEwO">attribute inheritance</a>)
pointing to the task template.</p>
<h3>Attributes</h3>
<p>Task template defines several <a href="#root/_help_OFXdgB2nNk1F">promoted attributes</a> -
todoDate, doneDate, tags, location. Importantly it also defines <code>~runOnAttributeChange</code> relation
- <a href="#root/_help_GPERMystNGTB">event</a> handler which is run on attribute
change. This <a href="#root/_help_CdNpE2pqjmI6">script</a> 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.</p>
<h3>New task button</h3>
<p>There's also "button" note which contains simple script which adds a button
to create new note (task) in the TODO note.</p><pre><code class="language-text-x-trilium-auto">api.addButtonToToolbar({
title: 'New task', title: 'New task',
icon: 'check', icon: 'check',
shortcut: 'alt+n', shortcut: 'alt+n',
@@ -60,26 +45,21 @@
await api.activateNewNote(taskNoteId); await api.activateNewNote(taskNoteId);
} }
});</code></pre> });</code></pre>
<h3>CSS</h3> <h3>CSS</h3>
<p>In the demo screenshot above you may notice that TODO tasks are in red <p>In the demo screenshot above you may notice that TODO tasks are in red
color and DONE tasks are green.</p> color and DONE tasks are green.</p>
<p>This is done by having this CSS <a href="#root/_help_6f9hih2hXXZk">code note</a> which <p>This is done by having this CSS <a href="#root/_help_6f9hih2hXXZk">code note</a> which
defines extra CSS classes:</p><pre><code class="language-text-x-trilium-auto">span.fancytree-node.todo .fancytree-title { defines extra CSS classes:</p><pre><code class="language-text-x-trilium-auto">span.fancytree-node.todo .fancytree-title {
color: red !important; color: red !important;
} }
span.fancytree-node.done .fancytree-title { span.fancytree-node.done .fancytree-title {
color: green !important; color: green !important;
}</code></pre> }</code></pre>
<p>This <a href="#root/_help_6f9hih2hXXZk">code note</a> has <code>#appCss</code> <p>This <a href="#root/_help_6f9hih2hXXZk">code note</a> has <code>#appCss</code>
<a <a
href="#root/_help_zEY4DaJG4YT5">label</a>which is recognized by Trilium on startup and loaded as CSS into href="#root/_help_zEY4DaJG4YT5">label</a>which is recognized by Trilium on startup and loaded as CSS into
the application.</p> the application.</p>
<p>Second part of this functionality is based in event handler described <p>Second part of this functionality is based in event handler described
above which assigns <code>#cssClass</code> label to the task to either "done" above which assigns <code>#cssClass</code> label to the task to either "done"
or "todo" based on the task status.</p> or "todo" based on the task status.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,43 +1,28 @@
<html> <p>
<img src="Weight Tracker_image.png">
<head> </p>
<meta charset="utf-8"> <p>The <code>Weight Tracker</code> is a <a href="#root/_help_GLks18SNjxmC">Script API</a> showcase
<meta name="viewport" content="width=device-width, initial-scale=1"> present in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>.</p>
<link rel="stylesheet" href="../../../style.css"> <p>By adding <code>weight</code> as a <a href="#root/_help_OFXdgB2nNk1F">promoted attribute</a> in
<base target="_parent"> the <a href="#root/_help_KC1HB96bqqHX">template</a> from which <a href="#root/_help_l0tKav7yLHGF">day notes</a> are
<title data-trilium-title>Weight Tracker</title> created, you can aggregate the data and plot weight change over time.</p>
</head> <h2>Implementation</h2>
<p>The <code>Weight Tracker</code> note in the screenshot above is of the type <code>Render Note</code>.
<body> That type of note doesn't have any useful content itself. Instead it is
<div class="content"> a placeholder where a <a href="#root/_help_CdNpE2pqjmI6">script</a> can render
<h1 data-trilium-h1>Weight Tracker</h1> its output.</p>
<p>Scripts for <code>Render Notes</code> are defined in a <a href="#root/_help_zEY4DaJG4YT5">relation</a> called <code>~renderNote</code>.
<div class="ck-content"> In this example, it's the <code>Weight Tracker</code>'s child <code>Implementation</code>.
<p> The Implementation consists of two <a href="#root/_help_6f9hih2hXXZk">code notes</a> that
<img src="Weight Tracker_image.png"> contain some HTML and JavaScript respectively, which load all the notes
</p> with a <code>weight</code> attribute and display their values in a chart.</p>
<p>The <code>Weight Tracker</code> is a <a href="#root/_help_GLks18SNjxmC">Script API</a> showcase <p>To actually render the chart, we're using a third party library called
present in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>.</p> <a
<p>By adding <code>weight</code> as a <a href="#root/_help_OFXdgB2nNk1F">promoted attribute</a> in href="https://www.chartjs.org/">chart.js</a>which is imported as an attachment, since it's not built into
the <a href="#root/_help_KC1HB96bqqHX">template</a> from which <a href="#root/_help_l0tKav7yLHGF">day notes</a> are Trilium.</p>
created, you can aggregate the data and plot weight change over time.</p> <h3>Code</h3>
<h2>Implementation</h2> <p>Here's the content of the script which is placed in a <a href="#root/_help_6f9hih2hXXZk">code note</a> of
<p>The <code>Weight Tracker</code> note in the screenshot above is of the type <code>Render Note</code>. type <code>JS Frontend</code>:</p><pre><code class="language-text-x-trilium-auto">async function getChartData() {
That type of note doesn't have any useful content itself. Instead it is
a placeholder where a <a href="#root/_help_CdNpE2pqjmI6">script</a> can render
its output.</p>
<p>Scripts for <code>Render Notes</code> are defined in a <a href="#root/_help_zEY4DaJG4YT5">relation</a> called <code>~renderNote</code>.
In this example, it's the <code>Weight Tracker</code>'s child <code>Implementation</code>.
The Implementation consists of two <a href="#root/_help_6f9hih2hXXZk">code notes</a> that
contain some HTML and JavaScript respectively, which load all the notes
with a <code>weight</code> attribute and display their values in a chart.</p>
<p>To actually render the chart, we're using a third party library called
<a
href="https://www.chartjs.org/">chart.js</a>which is imported as an attachment, since it's not built into
Trilium.</p>
<h3>Code</h3>
<p>Here's the content of the script which is placed in a <a href="#root/_help_6f9hih2hXXZk">code note</a> of
type <code>JS Frontend</code>:</p><pre><code class="language-text-x-trilium-auto">async function getChartData() {
const days = await api.runOnBackend(async () =&gt; { const days = await api.runOnBackend(async () =&gt; {
const notes = api.getNotesWithLabel('weight'); const notes = api.getNotesWithLabel('weight');
const days = []; const days = [];
@@ -82,12 +67,7 @@ new chartjs.Chart(ctx, {
type: 'line', type: 'line',
data: await getChartData() data: await getChartData()
});</code></pre> });</code></pre>
<h2>How to remove the Weight Tracker button from the top bar</h2> <h2>How to remove the Weight Tracker button from the top bar</h2>
<p>In the link map of the <code>Weight Tracker</code>, there is a note called <code>Button</code>. <p>In the link map of the <code>Weight Tracker</code>, there is a note called <code>Button</code>.
Open it and delete or comment out its contents. The <code>Weight Tracker</code> button Open it and delete or comment out its contents. The <code>Weight Tracker</code> button
will disappear after you restart Trilium.</p> will disappear after you restart Trilium.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,64 +1,44 @@
<html> <figure class="image">
<img style="aspect-ratio:1071/146;" src="Attributes_image.png" width="1071"
<head> height="146">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>In Trilium, attributes are key-value pairs assigned to notes, providing
<link rel="stylesheet" href="../../style.css"> additional metadata or functionality. There are two primary types of attributes:</p>
<base target="_parent"> <ol>
<title data-trilium-title>Attributes</title> <li>
</head> <p><a class="reference-link" href="#root/_help_HI6GBBIduIgv">Labels</a>&nbsp;can
be used for a variety of purposes, such as storing metadata or configuring
<body> the behaviour of notes. Labels are also searchable, enhancing note retrieval.</p>
<div class="content"> <p>For more information, including predefined labels, see&nbsp;<a class="reference-link"
<h1 data-trilium-h1>Attributes</h1> href="#root/_help_HI6GBBIduIgv">Labels</a>.</p>
</li>
<div class="ck-content"> <li>
<figure class="image"> <p><a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>&nbsp;define
<img style="aspect-ratio:1071/146;" src="Attributes_image.png" width="1071" connections between notes, similar to links. These can be used for metadata
height="146"> and scripting purposes.</p>
</figure> <p>For more information, including a list of predefined relations, see&nbsp;
<p>In Trilium, attributes are key-value pairs assigned to notes, providing <a
additional metadata or functionality. There are two primary types of attributes:</p> class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>.</p>
<ol> </li>
<li> </ol>
<p><a class="reference-link" href="#root/_help_HI6GBBIduIgv">Labels</a>&nbsp;can <p>These attributes play a crucial role in organizing, categorising, and
be used for a variety of purposes, such as storing metadata or configuring enhancing the functionality of notes.</p>
the behaviour of notes. Labels are also searchable, enhancing note retrieval.</p> <h2>Viewing the list of attributes</h2>
<p>For more information, including predefined labels, see&nbsp;<a class="reference-link" <p>Both the labels and relations for the current note are displayed in the <em>Owned Attributes</em> section
href="#root/_help_HI6GBBIduIgv">Labels</a>.</p> of the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>,
</li> where they can be viewed and edited. Inherited attributes are displayed
<li> in the <em>Inherited Attributes</em> section of the ribbon, where they can
<p><a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>&nbsp;define only be viewed.</p>
connections between notes, similar to links. These can be used for metadata <p>In the list of attributes, labels are prefixed with the <code>#</code> character
and scripting purposes.</p> whereas relations are prefixed with the <code>~</code> character.</p>
<p>For more information, including a list of predefined relations, see&nbsp; <h2>Multiplicity</h2>
<a <p>Attributes in Trilium can be "multi-valued", meaning multiple attributes
class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>.</p> with the same name can co-exist.</p>
</li> <h2>Attribute Definitions and Promoted Attributes</h2>
</ol> <p>Special labels create "label/attribute" definitions, enhancing the organization
<p>These attributes play a crucial role in organizing, categorising, and and management of attributes. For more details, see&nbsp;<a class="reference-link"
enhancing the functionality of notes.</p> href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>.</p>
<h2>Viewing the list of attributes</h2> <h2>Attribute Inheritance</h2>
<p>Both the labels and relations for the current note are displayed in the <em>Owned Attributes</em> section <p>Trilium supports attribute inheritance, allowing child notes to inherit
of the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>, attributes from their parents. For more information, see&nbsp;<a class="reference-link"
where they can be viewed and edited. Inherited attributes are displayed href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>.</p>
in the <em>Inherited Attributes</em> section of the ribbon, where they can
only be viewed.</p>
<p>In the list of attributes, labels are prefixed with the <code>#</code> character
whereas relations are prefixed with the <code>~</code> character.</p>
<h2>Multiplicity</h2>
<p>Attributes in Trilium can be "multi-valued", meaning multiple attributes
with the same name can co-exist.</p>
<h2>Attribute Definitions and Promoted Attributes</h2>
<p>Special labels create "label/attribute" definitions, enhancing the organization
and management of attributes. For more details, see&nbsp;<a class="reference-link"
href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>.</p>
<h2>Attribute Inheritance</h2>
<p>Trilium supports attribute inheritance, allowing child notes to inherit
attributes from their parents. For more information, see&nbsp;<a class="reference-link"
href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,70 +1,50 @@
<html> <p>Inheritance refers to the process of having a <a href="#root/_help_HI6GBBIduIgv">label</a> or
a <a href="#root/_help_Cq5X6iKQop6R">relation</a> shared across multiple
<head> notes, generally in parent-child relations (or anywhere if using templates).</p>
<meta charset="utf-8"> <h2>Standard Inheritance</h2>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>In Trilium, attributes can be automatically inherited by child notes if
<link rel="stylesheet" href="../../../style.css"> they have the <code>isInheritable</code> flag set to <code>true</code>. This
<base target="_parent"> means the attribute (a key-value pair) is applied to the note and all its
<title data-trilium-title>Attribute Inheritance</title> descendants.</p>
</head> <p>To make an attribute inheritable, simply use the visual editor for&nbsp;
<a
<body> class="reference-link" href="#root/_help_HI6GBBIduIgv">Labels</a>&nbsp;or&nbsp;<a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>.
<div class="content"> Alternatively, the attribute can be manually defined where <code>#myLabel=value</code> becomes <code>#myLabel(inheritable)=value</code> when
<h1 data-trilium-h1>Attribute Inheritance</h1> inheritable.</p>
<p>As an example, the <code>archived</code> label can be set to be inheritable,
<div class="ck-content"> allowing you to hide a whole subtree of notes from searches and other dialogs
<p>Inheritance refers to the process of having a <a href="#root/_help_HI6GBBIduIgv">label</a> or by applying this label at the top level.</p>
a <a href="#root/_help_Cq5X6iKQop6R">relation</a> shared across multiple <p>Standard inheritance forces all the notes that are children (and sub-children)
notes, generally in parent-child relations (or anywhere if using templates).</p> of a note to have that particular label or relation. If there is a need
<h2>Standard Inheritance</h2> to have some notes not inherit one of the labels, then <em>copying inheritance</em> or <em>template inheritance</em> needs
<p>In Trilium, attributes can be automatically inherited by child notes if to be used instead.</p>
they have the <code>isInheritable</code> flag set to <code>true</code>. This <h2>Copying Inheritance</h2>
means the attribute (a key-value pair) is applied to the note and all its <p>Copying inheritance differs from standard inheritance by using a <code>child:</code> prefix
descendants.</p> in the attribute name. This prefix causes new child notes to automatically
<p>To make an attribute inheritable, simply use the visual editor for&nbsp; receive specific attributes from the parent note. These attributes are
<a independent of the parent and will persist even if the note is moved elsewhere.</p>
class="reference-link" href="#root/_help_HI6GBBIduIgv">Labels</a>&nbsp;or&nbsp;<a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>. <p>If a parent note has the label <code>#child:exampleAttribute</code>, all
Alternatively, the attribute can be manually defined where <code>#myLabel=value</code> becomes <code>#myLabel(inheritable)=value</code> when newly created child notes (one level deep) will inherit the <code>#exampleAttribute</code> label.
inheritable.</p> This can be useful for setting default properties for notes in a specific
<p>As an example, the <code>archived</code> label can be set to be inheritable, section.</p>
allowing you to hide a whole subtree of notes from searches and other dialogs <p>Similarly, for relations use <code>~child:myRelation</code>.</p>
by applying this label at the top level.</p> <p>Due to the way it's designed, copying inheritance cannot be used to cascade
<p>Standard inheritance forces all the notes that are children (and sub-children) infinitely within a hierarchy. For that use case, consider using either
of a note to have that particular label or relation. If there is a need standard inheritance or templates.</p>
to have some notes not inherit one of the labels, then <em>copying inheritance</em> or <em>template inheritance</em> needs <h3>Chained inheritance</h3>
to be used instead.</p> <p>It is possible to define labels across multiple levels of depth. For example, <code>#child:child:child:foo</code> applied
<h2>Copying Inheritance</h2> to a root note would create:</p>
<p>Copying inheritance differs from standard inheritance by using a <code>child:</code> prefix <ul>
in the attribute name. This prefix causes new child notes to automatically <li><code>#child:child:foo</code> on the first-level children.</li>
receive specific attributes from the parent note. These attributes are <li><code>#child:foo</code> on the second-level children.</li>
independent of the parent and will persist even if the note is moved elsewhere.</p> <li><code>#foo</code> on the third-level children.</li>
<p>If a parent note has the label <code>#child:exampleAttribute</code>, all </ul>
newly created child notes (one level deep) will inherit the <code>#exampleAttribute</code> label. <p>Similarly, use <code>~child:child:child:foo</code> if dealing with relations.</p>
This can be useful for setting default properties for notes in a specific <p>Do note that same as simple copying inheritance, the changes will not
section.</p> apply retroactively to existing notes in the hierarchy, it will only apply
<p>Similarly, for relations use <code>~child:myRelation</code>.</p> to the newly created notes.</p>
<p>Due to the way it's designed, copying inheritance cannot be used to cascade <h2>Template Inheritance</h2>
infinitely within a hierarchy. For that use case, consider using either <p>Attributes can also be inherited from&nbsp;<a class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>.
standard inheritance or templates.</p> When a new note is created using a template, it inherits the attributes
<h3>Chained inheritance</h3> defined in that template. This is particularly useful for maintaining consistency
<p>It is possible to define labels across multiple levels of depth. For example, <code>#child:child:child:foo</code> applied across notes that follow a similar structure or function.</p>
to a root note would create:</p>
<ul>
<li><code>#child:child:foo</code> on the first-level children.</li>
<li><code>#child:foo</code> on the second-level children.</li>
<li><code>#foo</code> on the third-level children.</li>
</ul>
<p>Similarly, use <code>~child:child:child:foo</code> if dealing with relations.</p>
<p>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.</p>
<h2>Template Inheritance</h2>
<p>Attributes can also be inherited from&nbsp;<a class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>.
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.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,405 +1,385 @@
<html> <p>A label is an <a href="#root/_help_zEY4DaJG4YT5">attribute</a> of a note
which has a name and optionally a value.</p>
<head> <h2>Common use cases</h2>
<meta charset="utf-8"> <ul>
<meta name="viewport" content="width=device-width, initial-scale=1"> <li><strong>Metadata for personal use</strong>: Assign labels with optional
<link rel="stylesheet" href="../../../style.css"> values for categorization, such as <code>#year=1999</code>, <code>#genre="sci-fi"</code>,
<base target="_parent"> or <code>#author="Neal Stephenson"</code>. This can be combined with&nbsp;
<title data-trilium-title>Labels</title> <a
</head> class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;to make their display more user-friendly.</li>
<li><strong>Configuration</strong>: Labels can configure advanced features
<body> or settings (see reference below).</li>
<div class="content"> <li><strong>Scripts and Plugins</strong>: Used to tag notes with special metadata,
<h1 data-trilium-h1>Labels</h1> such as the "weight" attribute in the&nbsp;<a class="reference-link" href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a>.</li>
</ul>
<div class="ck-content"> <h2>Creating a label using the visual editor</h2>
<p>A label is an <a href="#root/_help_zEY4DaJG4YT5">attribute</a> of a note <ol>
which has a name and optionally a value.</p> <li>Go to the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link"
<h2>Common use cases</h2> href="#root/_help_BlN9DFI679QC">Ribbon</a>.</li>
<ul> <li>Press the + button (<em>Add new attribute</em>) to the right.</li>
<li><strong>Metadata for personal use</strong>: Assign labels with optional <li>Select <em>Add new label</em> for the relation.</li>
values for categorization, such as <code>#year=1999</code>, <code>#genre="sci-fi"</code>, </ol>
or <code>#author="Neal Stephenson"</code>. This can be combined with&nbsp; <aside class="admonition tip">
<a <p>If you prefer keyboard shortcuts, press <kbd>Alt</kbd>+<kbd>L</kbd> while
class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;to make their display more user-friendly.</li> focused on a note or in the <em>Owned Attributes</em> section to display
<li><strong>Configuration</strong>: Labels can configure advanced features the visual editor.</p>
or settings (see reference below).</li> </aside>
<li><strong>Scripts and Plugins</strong>: Used to tag notes with special metadata, <p>While in the visual editor:</p>
such as the "weight" attribute in the&nbsp;<a class="reference-link" href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a>.</li> <ul>
</ul> <li>Set the desired name</li>
<h2>Creating a label using the visual editor</h2> <li>Optionally, set the value of the label. Labels can exist without a value.</li>
<ol> <li>Check <em>Inheritable</em> if the label should be inherited by the child
<li>Go to the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link" notes as well. See&nbsp;<a class="reference-link" href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>&nbsp;for
href="#root/_help_BlN9DFI679QC">Ribbon</a>.</li> more information.</li>
<li>Press the + button (<em>Add new attribute</em>) to the right.</li> </ul>
<li>Select <em>Add new label</em> for the relation.</li> <h2>Creating a label manually</h2>
</ol> <p>In the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link"
<aside class="admonition tip"> href="#root/_help_BlN9DFI679QC">Ribbon</a>:</p>
<p>If you prefer keyboard shortcuts, press <kbd>Alt</kbd>+<kbd>L</kbd> while <ul>
focused on a note or in the <em>Owned Attributes</em> section to display <li>To create a label called <code>myLabel</code> with no value, simply type <code>#myLabel</code>.</li>
the visual editor.</p> <li>To create a label called <code>myLabel</code> with a value <code>value</code>,
</aside> simply type <code>#myLabel=value</code>.</li>
<p>While in the visual editor:</p> <li>If the value contains spaces, then the text must be quoted: <code>#myLabel="Hello world"</code>.</li>
<ul> <li>If the string contains quotes (regardless of whether it has spaces), then
<li>Set the desired name</li> the text must be quoted with apostrophes instead: <code>#myLabel='Hello "world"'</code>.</li>
<li>Optionally, set the value of the label. Labels can exist without a value.</li> <li>To create an inheritable label called <code>myLabel</code>, simply write <code>#myLabel(inheritable)</code> for
<li>Check <em>Inheritable</em> if the label should be inherited by the child no value or <code>#myLabel(inheritable)=value</code> if there is a value.</li>
notes as well. See&nbsp;<a class="reference-link" href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>&nbsp;for </ul>
more information.</li> <h2>Predefined labels</h2>
</ul> <p>This is a list of labels that Trilium natively supports.</p>
<h2>Creating a label manually</h2> <aside class="admonition tip">
<p>In the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link" <p>Some labels presented here end with a <code>*</code>. That means that there
href="#root/_help_BlN9DFI679QC">Ribbon</a>:</p> are multiple labels with the same prefix, consult the specific page linked
<ul> in the description of that label for more information.</p>
<li>To create a label called <code>myLabel</code> with no value, simply type <code>#myLabel</code>.</li> </aside>
<li>To create a label called <code>myLabel</code> with a value <code>value</code>, <figure class="table" style="width:100%;">
simply type <code>#myLabel=value</code>.</li> <table class="ck-table-resized">
<li>If the value contains spaces, then the text must be quoted: <code>#myLabel="Hello world"</code>.</li> <colgroup>
<li>If the string contains quotes (regardless of whether it has spaces), then <col style="width:33.82%;">
the text must be quoted with apostrophes instead: <code>#myLabel='Hello "world"'</code>.</li> <col style="width:66.18%;">
<li>To create an inheritable label called <code>myLabel</code>, simply write <code>#myLabel(inheritable)</code> for </colgroup>
no value or <code>#myLabel(inheritable)=value</code> if there is a value.</li> <thead>
</ul> <tr>
<h2>Predefined labels</h2> <th>Label</th>
<p>This is a list of labels that Trilium natively supports.</p> <th>Description</th>
<aside class="admonition tip"> </tr>
<p>Some labels presented here end with a <code>*</code>. That means that there </thead>
are multiple labels with the same prefix, consult the specific page linked <tbody>
in the description of that label for more information.</p> <tr>
</aside> <td><code>disableVersioning</code>
<figure class="table" style="width:100%;"> </td>
<table class="ck-table-resized"> <td>Disables automatic creation of&nbsp;<a class="reference-link" href="#root/_help_vZWERwf8U3nx">Note Revisions</a>&nbsp;for
<colgroup> a particular note. Useful for e.g. large, but unimportant notes - e.g.
<col style="width:33.82%;"> large JS libraries used for scripting.</td>
<col style="width:66.18%;"> </tr>
</colgroup> <tr>
<thead> <td><code>versioningLimit</code>
<tr> </td>
<th>Label</th> <td>Limits the maximum number of&nbsp;<a class="reference-link" href="#root/_help_vZWERwf8U3nx">Note Revisions</a>&nbsp;for
<th>Description</th> a particular note, overriding the global settings.</td>
</tr> </tr>
</thead> <tr>
<tbody> <td><code>calendarRoot</code>
<tr> </td>
<td><code>disableVersioning</code> <td>Marks the note which should be used as root for&nbsp;<a class="reference-link"
</td> href="#root/_help_l0tKav7yLHGF">Day Notes</a>. Only one should be marked
<td>Disables automatic creation of&nbsp;<a class="reference-link" href="#root/_help_vZWERwf8U3nx">Note Revisions</a>&nbsp;for as such.</td>
a particular note. Useful for e.g. large, but unimportant notes - e.g. </tr>
large JS libraries used for scripting.</td> <tr>
</tr> <td><code>archived</code>
<tr> </td>
<td><code>versioningLimit</code> <td>Hides notes from default search results and dialogs. Archived notes can
</td> optionally be hidden in the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</td>
<td>Limits the maximum number of&nbsp;<a class="reference-link" href="#root/_help_vZWERwf8U3nx">Note Revisions</a>&nbsp;for </tr>
a particular note, overriding the global settings.</td> <tr>
</tr> <td><code>excludeFromExport</code>
<tr> </td>
<td><code>calendarRoot</code> <td>Excludes this note and its children when exporting.</td>
</td> </tr>
<td>Marks the note which should be used as root for&nbsp;<a class="reference-link" <tr>
href="#root/_help_l0tKav7yLHGF">Day Notes</a>. Only one should be marked <td><code>run</code>, <code>runOnInstance</code>, <code>runAtHour</code>
as such.</td> </td>
</tr> <td>See&nbsp;<a class="reference-link" href="#root/_help_GPERMystNGTB">Events</a>.</td>
<tr> </tr>
<td><code>archived</code> <tr>
</td> <td><code>disableInclusion</code>
<td>Hides notes from default search results and dialogs. Archived notes can </td>
optionally be hidden in the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</td> <td>Scripts with this label won't be included into parent script execution.</td>
</tr> </tr>
<tr> <tr>
<td><code>excludeFromExport</code> <td><code>sorted</code>
</td> </td>
<td>Excludes this note and its children when exporting.</td> <td>
</tr> <p>Keeps child notes sorted by title alphabetically.</p>
<tr> <p>When given a value, it will sort by the value of another label instead.
<td><code>run</code>, <code>runOnInstance</code>, <code>runAtHour</code> If one of the child notes doesn't have the specified label, the title will
</td> be used for them instead.</p>
<td>See&nbsp;<a class="reference-link" href="#root/_help_GPERMystNGTB">Events</a>.</td> </td>
</tr> </tr>
<tr> <tr>
<td><code>disableInclusion</code> <td><code>sortDirection</code>
</td> </td>
<td>Scripts with this label won't be included into parent script execution.</td> <td>
</tr> <p>If <code>sorted</code> is applied, specifies the direction of the sort:</p>
<tr> <ul>
<td><code>sorted</code> <li><code>ASC</code>, ascending (default)</li>
</td> <li><code>DESC</code>, descending</li>
<td> </ul>
<p>Keeps child notes sorted by title alphabetically.</p> </td>
<p>When given a value, it will sort by the value of another label instead. </tr>
If one of the child notes doesn't have the specified label, the title will <tr>
be used for them instead.</p> <td><code>sortFoldersFirst</code>
</td> </td>
</tr> <td>If <code>sorted</code> is applied, folders (notes with children) will be
<tr> sorted as a group at the top, and the rest will be sorted.</td>
<td><code>sortDirection</code> </tr>
</td> <tr>
<td> <td><code>top</code>
<p>If <code>sorted</code> is applied, specifies the direction of the sort:</p> </td>
<ul> <td>If <code>sorted</code> is applied to the parent note, keeps given note on
<li><code>ASC</code>, ascending (default)</li> top in its parent.</td>
<li><code>DESC</code>, descending</li> </tr>
</ul> <tr>
</td> <td><code>hidePromotedAttributes</code>
</tr> </td>
<tr> <td>Hide&nbsp;<a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;on
<td><code>sortFoldersFirst</code> this note. Generally useful when defining inherited attributes, but the
</td> parent note doesn't need them.</td>
<td>If <code>sorted</code> is applied, folders (notes with children) will be </tr>
sorted as a group at the top, and the rest will be sorted.</td> <tr>
</tr> <td><code>readOnly</code>
<tr> </td>
<td><code>top</code> <td>Marks a note to be always be <a href="#root/_help_CoFPLs3dRlXc">read-only</a>,
</td> if it's a supported note (text, code, mermaid).</td>
<td>If <code>sorted</code> is applied to the parent note, keeps given note on </tr>
top in its parent.</td> <tr>
</tr> <td><code>autoReadOnlyDisabled</code>
<tr> </td>
<td><code>hidePromotedAttributes</code> <td>Disables automatic <a href="#root/_help_CoFPLs3dRlXc">read-only mode</a> for
</td> the given note.</td>
<td>Hide&nbsp;<a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;on </tr>
this note. Generally useful when defining inherited attributes, but the <tr>
parent note doesn't need them.</td> <td><code>appCss</code>
</tr> </td>
<tr> <td>Marks CSS notes which are loaded into the Trilium application and can
<td><code>readOnly</code> thus be used to modify Trilium's looks. See&nbsp;<a class="reference-link"
</td> href="#root/_help_AlhDUqhENtH7">Custom app-wide CSS</a>&nbsp;for more info.</td>
<td>Marks a note to be always be <a href="#root/_help_CoFPLs3dRlXc">read-only</a>, </tr>
if it's a supported note (text, code, mermaid).</td> <tr>
</tr> <td><code>appTheme</code>
<tr> </td>
<td><code>autoReadOnlyDisabled</code> <td>Marks CSS notes which are full Trilium themes and are thus available in
</td> Trilium options. See&nbsp;<a class="reference-link" href="#root/_help_pKK96zzmvBGf">Theme development</a>&nbsp;for
<td>Disables automatic <a href="#root/_help_CoFPLs3dRlXc">read-only mode</a> for more information.</td>
the given note.</td> </tr>
</tr> <tr>
<tr> <td><code>appThemeBase</code>
<td><code>appCss</code> </td>
</td> <td>Set to <code>next</code>, <code>next-light</code>, or <code>next-dark</code> to
<td>Marks CSS notes which are loaded into the Trilium application and can use the corresponding TriliumNext theme (auto, light or dark) as the base
thus be used to modify Trilium's looks. See&nbsp;<a class="reference-link" for a custom theme, instead of the legacy one. See&nbsp;<a class="reference-link"
href="#root/_help_AlhDUqhENtH7">Custom app-wide CSS</a>&nbsp;for more info.</td> href="#root/_help_WFGzWeUK6arS">Customize the Next theme</a>&nbsp;for more
</tr> information.</td>
<tr> </tr>
<td><code>appTheme</code> <tr>
</td> <td><code>cssClass</code>
<td>Marks CSS notes which are full Trilium themes and are thus available in </td>
Trilium options. See&nbsp;<a class="reference-link" href="#root/_help_pKK96zzmvBGf">Theme development</a>&nbsp;for <td>Value of this label is then added as CSS class to the node representing
more information.</td> given note in the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.
</tr> This can be useful for advanced theming. Can be used in template notes.</td>
<tr> </tr>
<td><code>appThemeBase</code> <tr>
</td> <td><code>iconClass</code>
<td>Set to <code>next</code>, <code>next-light</code>, or <code>next-dark</code> to </td>
use the corresponding TriliumNext theme (auto, light or dark) as the base <td>value of this label is added as a CSS class to the icon on the tree which
for a custom theme, instead of the legacy one. See&nbsp;<a class="reference-link" can help visually distinguish the notes in the tree. Example might be bx
href="#root/_help_WFGzWeUK6arS">Customize the Next theme</a>&nbsp;for more bx-home - icons are taken from boxicons. Can be used in template notes.</td>
information.</td> </tr>
</tr> <tr>
<tr> <td><code>pageSize</code>
<td><code>cssClass</code> </td>
</td> <td>Specifies the number of items per page in&nbsp;<a class="reference-link"
<td>Value of this label is then added as CSS class to the node representing href="#root/_help_0ESUbbAxVnoK">Note List</a>.</td>
given note in the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>. </tr>
This can be useful for advanced theming. Can be used in template notes.</td> <tr>
</tr> <td><code>customRequestHandler</code>
<tr> </td>
<td><code>iconClass</code> <td>See&nbsp;<a class="reference-link" href="#root/_help_J5Ex1ZrMbyJ6">Custom Request Handler</a>.</td>
</td> </tr>
<td>value of this label is added as a CSS class to the icon on the tree which <tr>
can help visually distinguish the notes in the tree. Example might be bx <td><code>customResourceProvider</code>
bx-home - icons are taken from boxicons. Can be used in template notes.</td> </td>
</tr> <td>See&nbsp;<a class="reference-link" href="#root/_help_d3fAXQ2diepH">Custom Resource Providers</a>.</td>
<tr> </tr>
<td><code>pageSize</code> <tr>
</td> <td><code>widget</code>
<td>Specifies the number of items per page in&nbsp;<a class="reference-link" </td>
href="#root/_help_0ESUbbAxVnoK">Note List</a>.</td> <td>Marks this note as a custom widget which will be added to the Trilium
</tr> component tree. See&nbsp;<a class="reference-link" href="#root/_help_MgibgPcfeuGz">Custom Widgets</a>&nbsp;for
<tr> more information.</td>
<td><code>customRequestHandler</code> </tr>
</td> <tr>
<td>See&nbsp;<a class="reference-link" href="#root/_help_J5Ex1ZrMbyJ6">Custom Request Handler</a>.</td> <td><code>searchHome</code>
</tr> </td>
<tr> <td>New search notes will be created as children of this note (see&nbsp;
<td><code>customResourceProvider</code> <a
</td> class="reference-link" href="#root/_help_m523cpzocqaD">Saved Search</a>).</td>
<td>See&nbsp;<a class="reference-link" href="#root/_help_d3fAXQ2diepH">Custom Resource Providers</a>.</td> </tr>
</tr> <tr>
<tr> <td><code>workspace</code> and related attributes</td>
<td><code>widget</code> <td>See&nbsp;<a class="reference-link" href="#root/_help_9sRHySam5fXb">Workspaces</a>.</td>
</td> </tr>
<td>Marks this note as a custom widget which will be added to the Trilium <tr>
component tree. See&nbsp;<a class="reference-link" href="#root/_help_MgibgPcfeuGz">Custom Widgets</a>&nbsp;for <td><code>inbox</code>
more information.</td> </td>
</tr> <td>default inbox location for new notes - when you create a note using <em>new note</em> button
<tr> in the sidebar, notes will be created as child notes in the note marked
<td><code>searchHome</code> as with <code>#inbox</code> label.</td>
</td> </tr>
<td>New search notes will be created as children of this note (see&nbsp; <tr>
<a <td><code>sqlConsoleHome</code>
class="reference-link" href="#root/_help_m523cpzocqaD">Saved Search</a>).</td> </td>
</tr> <td>Default location of&nbsp;<a class="reference-link" href="#root/_hidden/_help/_help_tC7s2alapj8V/_help_wX4HbRucYSDD/_help_oyIAJ9PvvwHX/_help__help_YKWqdJhzi2VY">SQL Console</a>&nbsp;notes</td>
<tr> </tr>
<td><code>workspace</code> and related attributes</td> <tr>
<td>See&nbsp;<a class="reference-link" href="#root/_help_9sRHySam5fXb">Workspaces</a>.</td> <td><code>bookmarked</code>
</tr> </td>
<tr> <td>Indicates this note is a <a href="#root/_help_u3YFHC9tQlpm">bookmark</a>.</td>
<td><code>inbox</code> </tr>
</td> <tr>
<td>default inbox location for new notes - when you create a note using <em>new note</em> button <td><code>bookmarkFolder</code>
in the sidebar, notes will be created as child notes in the note marked </td>
as with <code>#inbox</code> label.</td> <td>Note with this label will appear in bookmarks as folder (allowing access
</tr> to its children). See&nbsp;<a class="reference-link" href="#root/_help_u3YFHC9tQlpm">Bookmarks</a>&nbsp;for
<tr> more information.</td>
<td><code>sqlConsoleHome</code> </tr>
</td> <tr>
<td>Default location of&nbsp;<a class="reference-link" href="#root/_hidden/_help/_help_tC7s2alapj8V/_help_wX4HbRucYSDD/_help_oyIAJ9PvvwHX/_help__help_YKWqdJhzi2VY">SQL Console</a>&nbsp;notes</td> <td><code>share*</code>
</tr> </td>
<tr> <td>See the attribute reference in&nbsp;<a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a>.</td>
<td><code>bookmarked</code> </tr>
</td> <tr>
<td>Indicates this note is a <a href="#root/_help_u3YFHC9tQlpm">bookmark</a>.</td> <td><code>displayRelations</code>, <code>hideRelations</code>
</tr> </td>
<tr> <td>Comma delimited names of relations which should be displayed/hidden in
<td><code>bookmarkFolder</code> a&nbsp;<a class="reference-link" href="#root/_help_iRwzGnHPzonm">Relation Map</a>&nbsp;(both
</td> the note type and the&nbsp;<a class="reference-link" href="#root/_help_BCkXAVs63Ttv">Note Map (Link map, Tree map)</a>&nbsp;general
<td>Note with this label will appear in bookmarks as folder (allowing access functionality).</td>
to its children). See&nbsp;<a class="reference-link" href="#root/_help_u3YFHC9tQlpm">Bookmarks</a>&nbsp;for </tr>
more information.</td> <tr>
</tr> <td><code>titleTemplate</code>
<tr> </td>
<td><code>share*</code> <td>
</td> <p>Default title of notes created as children of this note. This value is
<td>See the attribute reference in&nbsp;<a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a>.</td> evaluated as a JavaScript string and thus can be enriched with dynamic
</tr> content via the injected <code>now</code> and <code>parentNote</code> variables.</p>
<tr> <p>Examples:</p>
<td><code>displayRelations</code>, <code>hideRelations</code> <ul>
</td> <li><code>${parentNote.getLabel('authorName')}'s literary works</code>
<td>Comma delimited names of relations which should be displayed/hidden in </li>
a&nbsp;<a class="reference-link" href="#root/_help_iRwzGnHPzonm">Relation Map</a>&nbsp;(both <li><code>Log for ${now.format('YYYY-MM-DD HH:mm:ss')}</code>
the note type and the&nbsp;<a class="reference-link" href="#root/_help_BCkXAVs63Ttv">Note Map (Link map, Tree map)</a>&nbsp;general </li>
functionality).</td> <li>to mirror the parent's template.</li>
</tr> </ul>
<tr> <p>See&nbsp;<a class="reference-link" href="#root/_help_47ZrP6FNuoG8">Default Note Title</a>&nbsp;for
<td><code>titleTemplate</code> more info.</p>
</td> </td>
<td> </tr>
<p>Default title of notes created as children of this note. This value is <tr>
evaluated as a JavaScript string and thus can be enriched with dynamic <td><code>template</code>
content via the injected <code>now</code> and <code>parentNote</code> variables.</p> </td>
<p>Examples:</p> <td>This note will appear in the selection of available template when creating
<ul> new note. See&nbsp;<a class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>&nbsp;for
<li><code>${parentNote.getLabel('authorName')}'s literary works</code> more information.</td>
</li> </tr>
<li><code>Log for ${now.format('YYYY-MM-DD HH:mm:ss')}</code> <tr>
</li> <td><code>toc</code>
<li>to mirror the parent's template.</li> </td>
</ul> <td>Controls the display of the&nbsp;<a class="reference-link" href="#root/_help_BFvAtE74rbP6">Table of contents</a>&nbsp;for
<p>See&nbsp;<a class="reference-link" href="#root/_help_47ZrP6FNuoG8">Default Note Title</a>&nbsp;for a given note. <code>#toc</code> or <code>#toc=show</code> to always display
more info.</p> the table of contents, <code>#toc=false</code> to always hide it.</td>
</td> </tr>
</tr> <tr>
<tr> <td><code>color</code>
<td><code>template</code> </td>
</td> <td>defines color of the note in note tree, links etc. Use any valid CSS color
<td>This note will appear in the selection of available template when creating value like 'red' or #a13d5f</td>
new note. See&nbsp;<a class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>&nbsp;for </tr>
more information.</td> <tr>
</tr> <td><code>keyboardShortcut</code>
<tr> </td>
<td><code>toc</code> <td>Defines a keyboard shortcut which will immediately jump to this note.
</td> Example: 'ctrl+alt+e'. Requires frontend reload for the change to take
<td>Controls the display of the&nbsp;<a class="reference-link" href="#root/_help_BFvAtE74rbP6">Table of contents</a>&nbsp;for effect.</td>
a given note. <code>#toc</code> or <code>#toc=show</code> to always display </tr>
the table of contents, <code>#toc=false</code> to always hide it.</td> <tr>
</tr> <td><code>keepCurrentHoisting</code>
<tr> </td>
<td><code>color</code> <td>Opening this link won't change hoisting even if the note is not displayable
</td> in the current hoisted subtree.</td>
<td>defines color of the note in note tree, links etc. Use any valid CSS color </tr>
value like 'red' or #a13d5f</td> <tr>
</tr> <td><code>executeButton</code>
<tr> </td>
<td><code>keyboardShortcut</code> <td>Title of the button which will execute the current code note</td>
</td> </tr>
<td>Defines a keyboard shortcut which will immediately jump to this note. <tr>
Example: 'ctrl+alt+e'. Requires frontend reload for the change to take <td><code>executeDescription</code>
effect.</td> </td>
</tr> <td>Longer description of the current code note displayed together with the
<tr> execute button</td>
<td><code>keepCurrentHoisting</code> </tr>
</td> <tr>
<td>Opening this link won't change hoisting even if the note is not displayable <td><code>excludeFromNoteMap</code>
in the current hoisted subtree.</td> </td>
</tr> <td>Notes with this label will be hidden from the&nbsp;<a class="reference-link"
<tr> href="#root/_help_bdUJEHsAPYQR">Note Map</a>.</td>
<td><code>executeButton</code> </tr>
</td> <tr>
<td>Title of the button which will execute the current code note</td> <td><code>newNotesOnTop</code>
</tr> </td>
<tr> <td>New notes will be created at the top of the parent note, not on the bottom.</td>
<td><code>executeDescription</code> </tr>
</td> <tr>
<td>Longer description of the current code note displayed together with the <td><code>hideHighlightWidget</code>
execute button</td> </td>
</tr> <td>Hides the&nbsp;<a class="reference-link" href="#root/_help_AxshuNRegLAv">Highlights list</a>&nbsp;widget</td>
<tr> </tr>
<td><code>excludeFromNoteMap</code> <tr>
</td> <td><code>hideChildrenOverview</code>
<td>Notes with this label will be hidden from the&nbsp;<a class="reference-link" </td>
href="#root/_help_bdUJEHsAPYQR">Note Map</a>.</td> <td>Hides the&nbsp;<a class="reference-link" href="#root/_help_0ESUbbAxVnoK">Note List</a>&nbsp;for
</tr> that particular note.</td>
<tr> </tr>
<td><code>newNotesOnTop</code> <tr>
</td> <td><code>printLandscape</code>
<td>New notes will be created at the top of the parent note, not on the bottom.</td> </td>
</tr> <td>When exporting to PDF, changes the orientation of the page to landscape
<tr> instead of portrait.</td>
<td><code>hideHighlightWidget</code> </tr>
</td> <tr>
<td>Hides the&nbsp;<a class="reference-link" href="#root/_help_AxshuNRegLAv">Highlights list</a>&nbsp;widget</td> <td><code>printPageSize</code>
</tr> </td>
<tr> <td>When exporting to PDF, changes the size of the page. Supported values: <code>A0</code>, <code>A1</code>, <code>A2</code>, <code>A3</code>, <code>A4</code>, <code>A5</code>, <code>A6</code>, <code>Legal</code>, <code>Letter</code>, <code>Tabloid</code>, <code>Ledger</code>.</td>
<td><code>hideChildrenOverview</code> </tr>
</td> <tr>
<td>Hides the&nbsp;<a class="reference-link" href="#root/_help_0ESUbbAxVnoK">Note List</a>&nbsp;for <td><code>geolocation</code>
that particular note.</td> </td>
</tr> <td>Indicates the latitude and longitude of a note, to be displayed in a&nbsp;
<tr> <a
<td><code>printLandscape</code> class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>.</td>
</td> </tr>
<td>When exporting to PDF, changes the orientation of the page to landscape <tr>
instead of portrait.</td> <td><code>calendar:*</code>
</tr> </td>
<tr> <td>Defines specific options for the&nbsp;<a class="reference-link" href="#root/_help_xWbu3jpNWapp">Calendar View</a>.</td>
<td><code>printPageSize</code> </tr>
</td> <tr>
<td>When exporting to PDF, changes the size of the page. Supported values: <code>A0</code>, <code>A1</code>, <code>A2</code>, <code>A3</code>, <code>A4</code>, <code>A5</code>, <code>A6</code>, <code>Legal</code>, <code>Letter</code>, <code>Tabloid</code>, <code>Ledger</code>.</td> <td><code>viewType</code>
</tr> </td>
<tr> <td>Sets the view of child notes (e.g. grid or list). See&nbsp;<a class="reference-link"
<td><code>geolocation</code> href="#root/_help_0ESUbbAxVnoK">Note List</a>&nbsp;for more information.</td>
</td> </tr>
<td>Indicates the latitude and longitude of a note, to be displayed in a&nbsp; </tbody>
<a </table>
class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>.</td> </figure>
</tr>
<tr>
<td><code>calendar:*</code>
</td>
<td>Defines specific options for the&nbsp;<a class="reference-link" href="#root/_help_xWbu3jpNWapp">Calendar View</a>.</td>
</tr>
<tr>
<td><code>viewType</code>
</td>
<td>Sets the view of child notes (e.g. grid or list). See&nbsp;<a class="reference-link"
href="#root/_help_0ESUbbAxVnoK">Note List</a>&nbsp;for more information.</td>
</tr>
</tbody>
</table>
</figure>
</div>
</div>
</body>
</html>

View File

@@ -1,69 +1,49 @@
<html> <p>Promoted attributes are <a href="#root/_help_zEY4DaJG4YT5">attributes</a> which
are considered important and thus are "promoted" onto the main note UI.
<head> See example below:</p>
<meta charset="utf-8"> <p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <img src="Promoted Attributes_promot.png">
<link rel="stylesheet" href="../../../style.css"> </p>
<base target="_parent"> <p>You can see the note having kind of form with several fields. Each of
<title data-trilium-title>Promoted Attributes</title> these is just regular attribute, the only difference is that they appear
</head> on the note itself.</p>
<p>Attributes can be pretty useful since they allow for querying and script
<body> automation etc. but they are also inconveniently hidden. This allows you
<div class="content"> to select few of the important ones and push them to the front of the user.</p>
<h1 data-trilium-h1>Promoted Attributes</h1> <p>Now, how do we make attribute to appear on the UI?</p>
<h2>Attribute definition</h2>
<div class="ck-content"> <p>Attribute is always name-value pair where both name and value are strings.</p>
<p>Promoted attributes are <a href="#root/_help_zEY4DaJG4YT5">attributes</a> which <p><em>Attribute definition</em> specifies how should this value be interpreted
are considered important and thus are "promoted" onto the main note UI. - is it just string, or is it a date? Should we allow multiple values or
See example below:</p> note? And importantly, should we <em>promote</em> the attribute or not?</p>
<p> <p>
<img src="Promoted Attributes_promot.png"> <img src="Promoted Attributes_image.png">
</p> </p>
<p>You can see the note having kind of form with several fields. Each of <p>You can notice tag attribute definition. These "definition" attributes
these is just regular attribute, the only difference is that they appear define how the "value" attributes should behave.</p>
on the note itself.</p> <p>So there's one attribute for value and one for definition. But notice
<p>Attributes can be pretty useful since they allow for querying and script how definition attribute is <a href="#root/_help_bwZpz2ajCEwO">Inheritable</a>,
automation etc. but they are also inconveniently hidden. This allows you meaning that it's also applied to all descendant note. So in a way, this
to select few of the important ones and push them to the front of the user.</p> definition is used for the whole subtree while "value" attributes are applied
<p>Now, how do we make attribute to appear on the UI?</p> only for this note.</p>
<h2>Attribute definition</h2> <h3>Inverse relation</h3>
<p>Attribute is always name-value pair where both name and value are strings.</p> <p>Some relations always occur in pairs - my favorite example is on the family.
<p><em>Attribute definition</em> specifies how should this value be interpreted If you have a note representing husband and note representing wife, then
- is it just string, or is it a date? Should we allow multiple values or there might be a relation between those two of <code>isPartnerOf</code>.
note? And importantly, should we <em>promote</em> the attribute or not?</p> This is bidirectional relationship - meaning that if a relation is pointing
<p> from husband to wife then there should be always another relation pointing
<img src="Promoted Attributes_image.png"> from wife to husband.</p>
</p> <p>Another example is with parent - child relationship. Again these always
<p>You can notice tag attribute definition. These "definition" attributes occur in pairs, but in this case it's not exact same relation - the one
define how the "value" attributes should behave.</p> going from parent to child might be called <code>isParentOf</code> and the
<p>So there's one attribute for value and one for definition. But notice other one going from child to parent might be called <code>isChildOf</code>.</p>
how definition attribute is <a href="#root/_help_bwZpz2ajCEwO">Inheritable</a>, <p>Relation definition allows you to specify such "inverse relation" - for
meaning that it's also applied to all descendant note. So in a way, this the relation you just define you specify which is the inverse relation.
definition is used for the whole subtree while "value" attributes are applied Note that in the second example we should have two relation definitions
only for this note.</p> - one for <code>isParentOf</code> which defines <code>isChildOf</code> as inverse
<h3>Inverse relation</h3> relation and then second relation definition for <code>isChildOf</code> which
<p>Some relations always occur in pairs - my favorite example is on the family. defines <code>isParentOf</code> as inverse relation.</p>
If you have a note representing husband and note representing wife, then <p>What this does internally is that whenever we save a relation which has
there might be a relation between those two of <code>isPartnerOf</code>. defined inverse relation, we check that this inverse relation exists on
This is bidirectional relationship - meaning that if a relation is pointing the relation target note. Similarly, when we delete relation, we also delete
from husband to wife then there should be always another relation pointing inverse relation on the target note.</p>
from wife to husband.</p>
<p>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 <code>isParentOf</code> and the
other one going from child to parent might be called <code>isChildOf</code>.</p>
<p>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 <code>isParentOf</code> which defines <code>isChildOf</code> as inverse
relation and then second relation definition for <code>isChildOf</code> which
defines <code>isParentOf</code> as inverse relation.</p>
<p>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.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,159 +1,139 @@
<html> <p>A relation is similar to a <a href="#root/_help_HI6GBBIduIgv">label</a>,
but instead of having a text value it refers to another note.</p>
<head> <h2>Common use cases</h2>
<meta charset="utf-8"> <ul>
<meta name="viewport" content="width=device-width, initial-scale=1"> <li><strong>Metadata Relationships for personal use</strong>: For example,
<link rel="stylesheet" href="../../../style.css"> linking a book note to an author note.
<base target="_parent"> <br>This can be combined with&nbsp;<a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;to
<title data-trilium-title>Relations</title> make their display more user-friendly.</li>
</head> <li><strong>Configuration</strong>: For configuring some notes such as&nbsp;
<a
<body> class="reference-link" href="#root/_help_HcABDtFCkbFN">Render Note</a>, or configuring&nbsp;<a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a>&nbsp;or&nbsp;
<div class="content"> <a
<h1 data-trilium-h1>Relations</h1> class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>&nbsp;(see the list below).</li>
<li><strong>Scripting</strong>: Attaching scripts to events or conditions
<div class="ck-content"> related to the note.</li>
<p>A relation is similar to a <a href="#root/_help_HI6GBBIduIgv">label</a>, </ul>
but instead of having a text value it refers to another note.</p> <h2>Creating a relation using the visual editor</h2>
<h2>Common use cases</h2> <ol>
<ul> <li>Go to the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link"
<li><strong>Metadata Relationships for personal use</strong>: For example, href="#root/_help_BlN9DFI679QC">Ribbon</a>.</li>
linking a book note to an author note. <li>Press the + button (<em>Add new attribute</em>) to the right.</li>
<br>This can be combined with&nbsp;<a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;to <li>Select <em>Add new relation</em> for the relation.</li>
make their display more user-friendly.</li> </ol>
<li><strong>Configuration</strong>: For configuring some notes such as&nbsp; <aside class="admonition tip">
<a <p>If you prefer keyboard shortcuts, press <kbd>Alt</kbd>+<kbd>L</kbd> while
class="reference-link" href="#root/_help_HcABDtFCkbFN">Render Note</a>, or configuring&nbsp;<a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a>&nbsp;or&nbsp; focused on a note or in the <em>Owned Attributes</em> section to display
<a the visual editor.</p>
class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>&nbsp;(see the list below).</li> </aside>
<li><strong>Scripting</strong>: Attaching scripts to events or conditions <p>While in the visual editor:</p>
related to the note.</li> <ul>
</ul> <li>Set the desired name</li>
<h2>Creating a relation using the visual editor</h2> <li>Set the Target note (the note to point to). Unlike labels, relations cannot
<ol> exist with a target note.</li>
<li>Go to the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link" <li>Check <em>Inheritable</em> if the label should be inherited by the child
href="#root/_help_BlN9DFI679QC">Ribbon</a>.</li> notes as well. See&nbsp;<a class="reference-link" href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>&nbsp;for
<li>Press the + button (<em>Add new attribute</em>) to the right.</li> more information.</li>
<li>Select <em>Add new relation</em> for the relation.</li> </ul>
</ol> <h2>Creating a relation manually</h2>
<aside class="admonition tip"> <p>In the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link"
<p>If you prefer keyboard shortcuts, press <kbd>Alt</kbd>+<kbd>L</kbd> while href="#root/_help_BlN9DFI679QC">Ribbon</a>:</p>
focused on a note or in the <em>Owned Attributes</em> section to display <ul>
the visual editor.</p> <li>To create a relation called <code>myRelation</code>:
</aside> <ul>
<p>While in the visual editor:</p> <li>First type <code>~myRelation=@</code>.</li>
<ul> <li>After this, an autocompletion box should appear.</li>
<li>Set the desired name</li> <li>Type the title of the note to point to and press <kbd>Enter</kbd> to confirm
<li>Set the Target note (the note to point to). Unlike labels, relations cannot (or click the desired note).</li>
exist with a target note.</li> <li>Alternatively copy a note from the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and
<li>Check <em>Inheritable</em> if the label should be inherited by the child paste it after the <code>=</code> sign (without the <code>@</code>, in this
notes as well. See&nbsp;<a class="reference-link" href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>&nbsp;for case).</li>
more information.</li> </ul>
</ul> </li>
<h2>Creating a relation manually</h2> <li>To create an inheritable relation, follow the same steps as previously
<p>In the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link" described but instead of <code>~myRelation</code> write <code>~myRelation(inheritable)</code>.</li>
href="#root/_help_BlN9DFI679QC">Ribbon</a>:</p> </ul>
<ul> <h2>Predefined relations</h2>
<li>To create a relation called <code>myRelation</code>: <p>These relations are supported and used internally by Trilium.</p>
<ul> <aside
<li>First type <code>~myRelation=@</code>.</li> class="admonition tip">
<li>After this, an autocompletion box should appear.</li> <p>Some relations presented here end with a <code>*</code>. That means that
<li>Type the title of the note to point to and press <kbd>Enter</kbd> to confirm there are multiple relations with the same prefix, consult the specific
(or click the desired note).</li> page linked in the description of that relation for more information.</p>
<li>Alternatively copy a note from the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and </aside>
paste it after the <code>=</code> sign (without the <code>@</code>, in this <figure class="table" style="width:100%;">
case).</li> <table class="ck-table-resized">
</ul> <colgroup>
</li> <col style="width:33.95%;">
<li>To create an inheritable relation, follow the same steps as previously <col style="width:66.05%;">
described but instead of <code>~myRelation</code> write <code>~myRelation(inheritable)</code>.</li> </colgroup>
</ul> <thead>
<h2>Predefined relations</h2> <tr>
<p>These relations are supported and used internally by Trilium.</p> <th>Label</th>
<aside <th>Description</th>
class="admonition tip"> </tr>
<p>Some relations presented here end with a <code>*</code>. That means that </thead>
there are multiple relations with the same prefix, consult the specific <tbody>
page linked in the description of that relation for more information.</p> <tr>
</aside> <td><code>runOn*</code>
<figure class="table" style="width:100%;"> </td>
<table class="ck-table-resized"> <td>See&nbsp;<a class="reference-link" href="#root/_help_GPERMystNGTB">Events</a>
<colgroup> </td>
<col style="width:33.95%;"> </tr>
<col style="width:66.05%;"> <tr>
</colgroup> <td><code>template</code>
<thead> </td>
<tr> <td>note's attributes will be inherited even without a parent-child relationship,
<th>Label</th> note's content and subtree will be added to instance notes if empty. See
<th>Description</th> documentation for details.</td>
</tr> </tr>
</thead> <tr>
<tbody> <td><code>inherit</code>
<tr> </td>
<td><code>runOn*</code> <td>note's attributes will be inherited even without a parent-child relationship.
</td> See&nbsp;<a class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>&nbsp;for
<td>See&nbsp;<a class="reference-link" href="#root/_help_GPERMystNGTB">Events</a> a similar concept. See&nbsp;<a class="reference-link" href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>&nbsp;in
</td> the documentation.</td>
</tr> </tr>
<tr> <tr>
<td><code>template</code> <td><code>renderNote</code>
</td> </td>
<td>note's attributes will be inherited even without a parent-child relationship, <td>notes of type&nbsp;<a class="reference-link" href="#root/_help_HcABDtFCkbFN">Render Note</a>&nbsp;will
note's content and subtree will be added to instance notes if empty. See be rendered using a code note (HTML or script) and it is necessary to point
documentation for details.</td> using this relation to which note should be rendered</td>
</tr> </tr>
<tr> <tr>
<td><code>inherit</code> <td><code>widget_relation</code>
</td> </td>
<td>note's attributes will be inherited even without a parent-child relationship. <td>target of this relation will be executed and rendered as a widget in the
See&nbsp;<a class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>&nbsp;for sidebar</td>
a similar concept. See&nbsp;<a class="reference-link" href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>&nbsp;in </tr>
the documentation.</td> <tr>
</tr> <td><code>shareCss</code>
<tr> </td>
<td><code>renderNote</code> <td>CSS note which will be injected into the share page. CSS note must be
</td> in the shared sub-tree as well. Consider using <code>share_hidden_from_tree</code> and <code>share_omit_default_css</code> as
<td>notes of type&nbsp;<a class="reference-link" href="#root/_help_HcABDtFCkbFN">Render Note</a>&nbsp;will well.</td>
be rendered using a code note (HTML or script) and it is necessary to point </tr>
using this relation to which note should be rendered</td> <tr>
</tr> <td><code>shareJs</code>
<tr> </td>
<td><code>widget_relation</code> <td>JavaScript note which will be injected into the share page. JS note must
</td> be in the shared sub-tree as well. Consider using <code>share_hidden_from_tree</code>.</td>
<td>target of this relation will be executed and rendered as a widget in the </tr>
sidebar</td> <tr>
</tr> <td><code>shareTemplate</code>
<tr> </td>
<td><code>shareCss</code> <td>Embedded JavaScript note that will be used as the template for displaying
</td> the shared note. Falls back to the default template. Consider using <code>share_hidden_from_tree</code>.</td>
<td>CSS note which will be injected into the share page. CSS note must be </tr>
in the shared sub-tree as well. Consider using <code>share_hidden_from_tree</code> and <code>share_omit_default_css</code> as <tr>
well.</td> <td><code>shareFavicon</code>
</tr> </td>
<tr> <td>Favicon note to be set in the shared page. Typically you want to set it
<td><code>shareJs</code> to share root and make it inheritable. Favicon note must be in the shared
</td> sub-tree as well. Consider using <code>share_hidden_from_tree</code>.</td>
<td>JavaScript note which will be injected into the share page. JS note must </tr>
be in the shared sub-tree as well. Consider using <code>share_hidden_from_tree</code>.</td> </tbody>
</tr> </table>
<tr> </figure>
<td><code>shareTemplate</code>
</td>
<td>Embedded JavaScript note that will be used as the template for displaying
the shared note. Falls back to the default template. Consider using <code>share_hidden_from_tree</code>.</td>
</tr>
<tr>
<td><code>shareFavicon</code>
</td>
<td>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 <code>share_hidden_from_tree</code>.</td>
</tr>
</tbody>
</table>
</figure>
</div>
</div>
</body>
</html>

View File

@@ -1,189 +1,169 @@
<html> <figure class="image">
<img style="aspect-ratio:1425/654;" src="Bulk Actions_image.png" width="1425"
<head> height="654">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>The <em>Bulk Actions</em> dialog makes it easy to apply changes to multiple
<link rel="stylesheet" href="../../style.css"> notes at once, ranging from simple actions such as adding or removing a
<base target="_parent"> label to being executing custom scripts.</p>
<title data-trilium-title>Bulk Actions</title> <h2>Interaction</h2>
</head> <ul>
<li>The first step is to select the notes in the&nbsp;<a class="reference-link"
<body> href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>. It's possible to apply bulk
<div class="content"> actions to:
<h1 data-trilium-h1>Bulk Actions</h1> <ul>
<li>A single note (and potentially its child notes) simply by clicking on
<div class="ck-content"> it (with a left click or a right click).</li>
<figure class="image"> <li>Multiple notes. See&nbsp;<a class="reference-link" href="#root/_help_yTjUdsOi4CIE">Multiple selection</a>&nbsp;on
<img style="aspect-ratio:1425/654;" src="Bulk Actions_image.png" width="1425" how to do so.</li>
height="654"> </ul>
</figure> </li>
<p>The <em>Bulk Actions</em> dialog makes it easy to apply changes to multiple <li>Right click in the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and
notes at once, ranging from simple actions such as adding or removing a select <em>Advanced</em><em>Apply bulk actions</em>.</li>
label to being executing custom scripts.</p> <li>By default, only the selected notes will be affected. To also include
<h2>Interaction</h2> all the descendants of the notes, check <em>Include descendants of the selected notes</em>.
The number of affected notes at the top of the dialog will update to reflect
the change.</li>
<li>Click on which action to apply from the <em>Available actions</em> section.
A detailed description of each is available in the next section.
<ul>
<li>For each action selected, the <em>Chosen actions</em> section will update
to reveal the entry. Each action will have its own configuration.</li>
<li>To remove an action, simply press the X button to the right of it.</li>
<li>It is possible to apply multiple actions of the same type, such as adding
multiple types.</li>
</ul>
</li>
<li>When all the actions are defined, press <em>Execute bulk actions</em> to
trigger all of them at once.</li>
<li>For convenience, the last bulk action configuration is saved for further
use and will be restored when entering the dialog again.</li>
</ul>
<h2>Actions</h2>
<h3>Labels</h3>
<p>These actions operate the&nbsp;<a class="reference-link" href="#root/_help_HI6GBBIduIgv">Labels</a>&nbsp;of
a note:</p>
<ul>
<li><strong>Add label</strong>
<ul>
<li>For each note, if it doesn't already have a <a href="#root/_help_HI6GBBIduIgv">label</a> of
the given name, it will create it. Keep the <em>New value</em> field empty
to create a label without a value, or complete it to assign a value.</li>
<li>If a note already has this label, its value will be updated.</li>
</ul>
</li>
<li><strong>Update label value</strong>
<ul>
<li>For each note, if it has a <a href="#root/_help_HI6GBBIduIgv">label</a> of
the given name, it will change its value to the specified one. Leave <em>New value</em> field
empty to create a label without a value.</li>
<li>Notes without the label will not be affected.</li>
</ul>
</li>
<li><em><strong>Rename label</strong></em>
<ul>
<li>For each note, if it has a <a href="#root/_help_HI6GBBIduIgv">label</a> 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.</li>
<li>Notes without the label will not be affected.</li>
</ul>
</li>
<li><strong>Delete label</strong>
<ul>
<li>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).</li>
<li>Notes without the label will not be affected.</li>
</ul>
</li>
</ul>
<h3>Relations</h3>
<p>These actions operate the&nbsp;<a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>&nbsp;of
a note:</p>
<ul>
<li><strong>Add relation</strong>
<ul>
<li>For each note, it will create a relation pointing to the given note.</li>
<li>Notes without this relation will not be affected.</li>
</ul>
</li>
<li><strong>Update relation target</strong>
<ul>
<li>For each note, it will modify a relation to point to the newly given note.</li>
<li>Notes without this relation will not be affected.</li>
</ul>
</li>
<li><strong>Rename relation</strong>
<ul>
<li>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.</li>
<li>Notes without this relation will not be affected.</li>
</ul>
</li>
<li><strong>Delete relation</strong>
<ul>
<li>For each note, if it has a relation of the given name, it will be deleted.</li>
<li>Notes without this relation will not be affected.</li>
</ul>
</li>
</ul>
<h3>Notes</h3>
<ul>
<li><strong>Rename note</strong>
<ul>
<li>For each note, it will change the title of the note to the given one.</li>
<li>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&nbsp;
<a
class="reference-link" href="#root/_help_habiZ3HU8Kw8">FNote</a>, for example:
<ul>
<li><code>NEW: ${note.title}</code> will prefix all notes with <code>NEW:</code> .</li>
<li><code>${note.dateCreatedObj.format('MM-DD:')}: ${note.title}</code> will
prefix the note titles with each note's creation date (in month-day format).</li>
</ul>
</li>
</ul>
</li>
<li><strong>Move note</strong>
<ul>
<li>For each note, it will be moved to the specified parent note.</li>
<li>As an alternative for less complex situations, the notes can be moved
directly from within the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;via
cut → paste or via the contextual menu.</li>
</ul>
</li>
<li><strong>Delete note</strong>
<ul>
<li>For each note, it will be deleted.</li>
<li>As an alternative for less complex situations, the notes can be removed
directly from within the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;by
selecting them and pressing <kbd>Delete</kbd>.</li>
</ul>
</li>
<li><strong>Delete note revisions</strong>
<ul>
<li>This will delete all the&nbsp;<a class="reference-link" href="#root/_help_vZWERwf8U3nx">Note Revisions</a>&nbsp;of
the notes.</li>
</ul>
</li>
</ul>
<h3>Others</h3>
<ul>
<li><strong>Execute script</strong>
<ul>
<li>For more complex scenarios, it is possible to type in a JavaScript expression
in order to apply the necessary changes.</li>
<li>Examples:
<ul> <ul>
<li>The first step is to select the notes in the&nbsp;<a class="reference-link" <li>
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>. It's possible to apply bulk <p>To apply a suffix (<code>- suffix</code> in this example), to the note
actions to: title:</p><pre><code class="language-application-javascript-env-backend">note.title = note.title + " - suffix";</code></pre>
<ul>
<li>A single note (and potentially its child notes) simply by clicking on
it (with a left click or a right click).</li>
<li>Multiple notes. See&nbsp;<a class="reference-link" href="#root/_help_yTjUdsOi4CIE">Multiple selection</a>&nbsp;on
how to do so.</li>
</ul>
</li> </li>
<li>Right click in the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and <li>
select <em>Advanced</em><em>Apply bulk actions</em>.</li> <p>To alter attributes of a note based on another attribute, such as setting
<li>By default, only the selected notes will be affected. To also include the <code>#shareAlias</code> label to the title of the note:</p><pre><code class="language-application-javascript-env-backend">note.setLabel("shareAlias", note.title)</code></pre>
all the descendants of the notes, check <em>Include descendants of the selected notes</em>.
The number of affected notes at the top of the dialog will update to reflect
the change.</li>
<li>Click on which action to apply from the <em>Available actions</em> section.
A detailed description of each is available in the next section.
<ul>
<li>For each action selected, the <em>Chosen actions</em> section will update
to reveal the entry. Each action will have its own configuration.</li>
<li>To remove an action, simply press the X button to the right of it.</li>
<li>It is possible to apply multiple actions of the same type, such as adding
multiple types.</li>
</ul>
</li>
<li>When all the actions are defined, press <em>Execute bulk actions</em> to
trigger all of them at once.</li>
<li>For convenience, the last bulk action configuration is saved for further
use and will be restored when entering the dialog again.</li>
</ul>
<h2>Actions</h2>
<h3>Labels</h3>
<p>These actions operate the&nbsp;<a class="reference-link" href="#root/_help_HI6GBBIduIgv">Labels</a>&nbsp;of
a note:</p>
<ul>
<li><strong>Add label</strong>
<ul>
<li>For each note, if it doesn't already have a <a href="#root/_help_HI6GBBIduIgv">label</a> of
the given name, it will create it. Keep the <em>New value</em> field empty
to create a label without a value, or complete it to assign a value.</li>
<li>If a note already has this label, its value will be updated.</li>
</ul>
</li>
<li><strong>Update label value</strong>
<ul>
<li>For each note, if it has a <a href="#root/_help_HI6GBBIduIgv">label</a> of
the given name, it will change its value to the specified one. Leave <em>New value</em> field
empty to create a label without a value.</li>
<li>Notes without the label will not be affected.</li>
</ul>
</li>
<li><em><strong>Rename label</strong></em>
<ul>
<li>For each note, if it has a <a href="#root/_help_HI6GBBIduIgv">label</a> 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.</li>
<li>Notes without the label will not be affected.</li>
</ul>
</li>
<li><strong>Delete label</strong>
<ul>
<li>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).</li>
<li>Notes without the label will not be affected.</li>
</ul>
</li> </li>
</ul> </ul>
<h3>Relations</h3> </li>
<p>These actions operate the&nbsp;<a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>&nbsp;of </ul>
a note:</p> </li>
<ul> </ul>
<li><strong>Add relation</strong>
<ul>
<li>For each note, it will create a relation pointing to the given note.</li>
<li>Notes without this relation will not be affected.</li>
</ul>
</li>
<li><strong>Update relation target</strong>
<ul>
<li>For each note, it will modify a relation to point to the newly given note.</li>
<li>Notes without this relation will not be affected.</li>
</ul>
</li>
<li><strong>Rename relation</strong>
<ul>
<li>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.</li>
<li>Notes without this relation will not be affected.</li>
</ul>
</li>
<li><strong>Delete relation</strong>
<ul>
<li>For each note, if it has a relation of the given name, it will be deleted.</li>
<li>Notes without this relation will not be affected.</li>
</ul>
</li>
</ul>
<h3>Notes</h3>
<ul>
<li><strong>Rename note</strong>
<ul>
<li>For each note, it will change the title of the note to the given one.</li>
<li>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&nbsp;
<a
class="reference-link" href="#root/_help_habiZ3HU8Kw8">FNote</a>, for example:
<ul>
<li><code>NEW: ${note.title}</code> will prefix all notes with <code>NEW:</code> .</li>
<li><code>${note.dateCreatedObj.format('MM-DD:')}: ${note.title}</code> will
prefix the note titles with each note's creation date (in month-day format).</li>
</ul>
</li>
</ul>
</li>
<li><strong>Move note</strong>
<ul>
<li>For each note, it will be moved to the specified parent note.</li>
<li>As an alternative for less complex situations, the notes can be moved
directly from within the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;via
cut → paste or via the contextual menu.</li>
</ul>
</li>
<li><strong>Delete note</strong>
<ul>
<li>For each note, it will be deleted.</li>
<li>As an alternative for less complex situations, the notes can be removed
directly from within the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;by
selecting them and pressing <kbd>Delete</kbd>.</li>
</ul>
</li>
<li><strong>Delete note revisions</strong>
<ul>
<li>This will delete all the&nbsp;<a class="reference-link" href="#root/_help_vZWERwf8U3nx">Note Revisions</a>&nbsp;of
the notes.</li>
</ul>
</li>
</ul>
<h3>Others</h3>
<ul>
<li><strong>Execute script</strong>
<ul>
<li>For more complex scenarios, it is possible to type in a JavaScript expression
in order to apply the necessary changes.</li>
<li>Examples:
<ul>
<li>
<p>To apply a suffix (<code>- suffix</code> in this example), to the note
title:</p><pre><code class="language-application-javascript-env-backend">note.title = note.title + " - suffix";</code></pre>
</li>
<li>
<p>To alter attributes of a note based on another attribute, such as setting
the <code>#shareAlias</code> label to the title of the note:</p><pre><code class="language-application-javascript-env-backend">note.setLabel("shareAlias", note.title)</code></pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,47 +1,27 @@
<html> <p>Trilium supports configuration via a file named <code>config.ini</code> and
environment variables. Please review the file named <a href="https://github.com/TriliumNext/Notes/blob/develop/config-sample.ini">config-sample.ini</a> in
<head> the <a href="https://github.com/TriliumNext/Notes">Notes</a> repository to
<meta charset="utf-8"> see what values are supported.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>You can provide the same values via environment variables instead of the <code>config.ini</code> file,
<link rel="stylesheet" href="../../style.css"> and these environment variables use the following format:</p>
<base target="_parent"> <ol>
<title data-trilium-title>Configuration (config.ini or environment variables)</title> <li>Environment variables should be prefixed with <code>TRILIUM_</code> and
</head> use underscores to represent the INI section structure.</li>
<li>The format is: <code>TRILIUM_&lt;SECTION&gt;_&lt;KEY&gt;=&lt;VALUE&gt;</code>
<body> </li>
<div class="content"> <li>The environment variables will override any matching values from config.ini</li>
<h1 data-trilium-h1>Configuration (config.ini or environment variables)</h1> </ol>
<p>For example, if you have this in your config.ini:</p><pre><code class="language-text-x-trilium-auto">[Network]
<div class="ck-content">
<p>Trilium supports configuration via a file named <code>config.ini</code> and
environment variables. Please review the file named <a href="https://github.com/TriliumNext/Notes/blob/develop/config-sample.ini">config-sample.ini</a> in
the <a href="https://github.com/TriliumNext/Notes">Notes</a> repository to
see what values are supported.</p>
<p>You can provide the same values via environment variables instead of the <code>config.ini</code> file,
and these environment variables use the following format:</p>
<ol>
<li>Environment variables should be prefixed with <code>TRILIUM_</code> and
use underscores to represent the INI section structure.</li>
<li>The format is: <code>TRILIUM_&lt;SECTION&gt;_&lt;KEY&gt;=&lt;VALUE&gt;</code>
</li>
<li>The environment variables will override any matching values from config.ini</li>
</ol>
<p>For example, if you have this in your config.ini:</p><pre><code class="language-text-x-trilium-auto">[Network]
host=localhost host=localhost
port=8080</code></pre> port=8080</code></pre>
<p>You can override these values using environment variables:</p><pre><code class="language-text-x-trilium-auto">TRILIUM_NETWORK_HOST=0.0.0.0 <p>You can override these values using environment variables:</p><pre><code class="language-text-x-trilium-auto">TRILIUM_NETWORK_HOST=0.0.0.0
TRILIUM_NETWORK_PORT=9000</code></pre> TRILIUM_NETWORK_PORT=9000</code></pre>
<p>The code will:</p> <p>The code will:</p>
<ol> <ol>
<li>First load the <code>config.ini</code> file as before</li> <li>First load the <code>config.ini</code> file as before</li>
<li>Then scan all environment variables for ones starting with <code>TRILIUM_</code> <li>Then scan all environment variables for ones starting with <code>TRILIUM_</code>
</li> </li>
<li>Parse these variables into section/key pairs</li> <li>Parse these variables into section/key pairs</li>
<li>Merge them with the config from the file, with environment variables taking <li>Merge them with the config from the file, with environment variables taking
precedence</li> precedence</li>
</ol> </ol>
</div>
</div>
</body>
</html>

View File

@@ -1,37 +1,17 @@
<html> <p>A Trilium instance represents a server. If&nbsp;<a class="reference-link"
href="#root/_help_cbkrhQjrkKrh">Synchronization</a>&nbsp;is set up, since
<head> multiple servers are involved (the one from the desktop client and the
<meta charset="utf-8"> one the synchronisation is set up with), sometimes it can be useful to
<meta name="viewport" content="width=device-width, initial-scale=1"> distinguish the instance you are running on.</p>
<link rel="stylesheet" href="../../../style.css"> <h2>Setting the instance name</h2>
<base target="_parent"> <p>To set up a name for the instance, modify the <code>config.ini</code>:</p><pre><code class="language-text-x-trilium-auto">[General]
<title data-trilium-title>Trilium instance</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Trilium instance</h1>
<div class="ck-content">
<p>A Trilium instance represents a server. If&nbsp;<a class="reference-link"
href="#root/_help_cbkrhQjrkKrh">Synchronization</a>&nbsp;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.</p>
<h2>Setting the instance name</h2>
<p>To set up a name for the instance, modify the <code>config.ini</code>:</p><pre><code class="language-text-x-trilium-auto">[General]
instanceName=Hello</code></pre> instanceName=Hello</code></pre>
<h2>Distinguishing the instance on back-end</h2> <h2>Distinguishing the instance on back-end</h2>
<p>Use <code>api.getInstanceName()</code> to obtain the instance name of the <p>Use <code>api.getInstanceName()</code> to obtain the instance name of the
current server, as specified in the config file or in environment variables.</p> current server, as specified in the config file or in environment variables.</p>
<h2>Limiting script runs based on instance</h2> <h2>Limiting script runs based on instance</h2>
<p>For a script that is run periodically or on a certain event, it's possible <p>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 to limit it to certain instances without having to change the code. Just
add <code>runOnInstance</code> and set as the value the instance name where add <code>runOnInstance</code> and set as the value the instance name where
the script should run. To run on multiple named instances, simply add the the script should run. To run on multiple named instances, simply add the
label multiple times.</p> label multiple times.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,26 +1,11 @@
<html> <p>Trilium provides a mechanism for <a href="#root/_help_CdNpE2pqjmI6">scripts</a> to
open a public REST endpoint. This opens a way for various integrations
<head> with other services - a simple example would be creating new note from
<meta charset="utf-8"> Slack by issuing a slash command (e.g. <code>/trilium buy milk</code>).</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <h2>Create note from outside Trilium</h2>
<link rel="stylesheet" href="../../style.css"> <p>Let's take a look at an example. The goal is to provide a REST endpoint
<base target="_parent"> to which we can send title and content and Trilium will create a note.</p>
<title data-trilium-title>Custom Request Handler</title> <p>We'll start with creating a JavaScript backend <a href="#root/_help_6f9hih2hXXZk">code note</a> containing:</p><pre><code class="language-text-x-trilium-auto">const {req, res} = api;
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Custom Request Handler</h1>
<div class="ck-content">
<p>Trilium provides a mechanism for <a href="#root/_help_CdNpE2pqjmI6">scripts</a> 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. <code>/trilium buy milk</code>).</p>
<h2>Create note from outside Trilium</h2>
<p>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.</p>
<p>We'll start with creating a JavaScript backend <a href="#root/_help_6f9hih2hXXZk">code note</a> containing:</p><pre><code class="language-text-x-trilium-auto">const {req, res} = api;
const {secret, title, content} = req.body; const {secret, title, content} = req.body;
if (req.method == 'POST' &amp;&amp; secret === 'secret-password') { if (req.method == 'POST' &amp;&amp; secret === 'secret-password') {
@@ -37,15 +22,15 @@ if (req.method == 'POST' &amp;&amp; secret === 'secret-password') {
else { else {
res.send(400); res.send(400);
}</code></pre> }</code></pre>
<p>This script note has also following two attributes:</p> <p>This script note has also following two attributes:</p>
<ul> <ul>
<li>label <code>#customRequestHandler</code> with value <code>create-note</code> <li>label <code>#customRequestHandler</code> with value <code>create-note</code>
</li> </li>
<li>relation <code>~targetNote</code> pointing to a note where new notes should <li>relation <code>~targetNote</code> pointing to a note where new notes should
be saved</li> be saved</li>
</ul> </ul>
<h3>Explanation</h3> <h3>Explanation</h3>
<p>Let's test this by using an HTTP client to send a request:</p><pre><code class="language-text-x-trilium-auto">POST http://my.trilium.org/custom/create-note <p>Let's test this by using an HTTP client to send a request:</p><pre><code class="language-text-x-trilium-auto">POST http://my.trilium.org/custom/create-note
Content-Type: application/json Content-Type: application/json
{ {
@@ -53,43 +38,38 @@ Content-Type: application/json
"title": "hello", "title": "hello",
"content": "world" "content": "world"
}+++++++++++++++++++++++++++++++++++++++++++++++</code></pre> }+++++++++++++++++++++++++++++++++++++++++++++++</code></pre>
<p>Notice the <code>/custom</code> part in the request path - Trilium considers <p>Notice the <code>/custom</code> part in the request path - Trilium considers
any request with this prefix as "custom" and tries to find a matching handler any request with this prefix as "custom" and tries to find a matching handler
by looking at all notes which have <code>customRequestHandler</code> <a href="#root/_help_zEY4DaJG4YT5">label</a>. by looking at all notes which have <code>customRequestHandler</code> <a href="#root/_help_zEY4DaJG4YT5">label</a>.
Value of this label then contains a regular expression which will match Value of this label then contains a regular expression which will match
the request path (in our case trivial regex "create-note").</p> the request path (in our case trivial regex "create-note").</p>
<p>Trilium will then find our code note created above and execute it. <code>api.req</code>, <code>api.res</code> are <p>Trilium will then find our code note created above and execute it. <code>api.req</code>, <code>api.res</code> are
set to <a href="https://expressjs.com/en/api.html#req">request</a> and set to <a href="https://expressjs.com/en/api.html#req">request</a> and
<a <a
href="https://expressjs.com/en/api.html#res">response</a>objects from which we can get details of the request and also href="https://expressjs.com/en/api.html#res">response</a>objects from which we can get details of the request and also
respond.</p> respond.</p>
<p>In the code note we check the request method and then use trivial authentication <p>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, - keep in mind that these endpoints are by default totally unauthenticated,
and you need to take care of this yourself.</p> and you need to take care of this yourself.</p>
<p>Once we pass these checks we will just create the desired note using <p>Once we pass these checks we will just create the desired note using
<a <a
href="#root/_help_GLks18SNjxmC">Script API</a>.</p> href="#root/_help_GLks18SNjxmC">Script API</a>.</p>
<h2>Custom resource provider</h2> <h2>Custom resource provider</h2>
<p>Another common use case is that you want to just expose a file note - <p>Another common use case is that you want to just expose a file note -
in such case you create label <code>customResourceProvider</code> (value in such case you create label <code>customResourceProvider</code> (value
is again path regex).</p> is again path regex).</p>
<p>For more information, see&nbsp;<a href="#root/_help_d3fAXQ2diepH">Custom Resource Providers</a>.</p> <p>For more information, see&nbsp;<a href="#root/_help_d3fAXQ2diepH">Custom Resource Providers</a>.</p>
<h2>Advanced concepts</h2> <h2>Advanced concepts</h2>
<p><code>api.req</code> and <code>api.res</code> are Express.js objects - you <p><code>api.req</code> and <code>api.res</code> are Express.js objects - you
can always look into its <a href="https://expressjs.com/en/api.html">documentation</a> for can always look into its <a href="https://expressjs.com/en/api.html">documentation</a> for
details.</p> details.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<p>REST request paths often contain parameters in the URL, e.g.:</p><pre><code class="language-text-x-trilium-auto">http://my.trilium.org/custom/notes/123</code></pre> <p>REST request paths often contain parameters in the URL, e.g.:</p><pre><code class="language-text-x-trilium-auto">http://my.trilium.org/custom/notes/123</code></pre>
<p>The last part is dynamic so the matching of the URL must also be dynamic <p>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 <code>customRequestHandler</code> value - for this reason the matching is done with regular expressions. Following <code>customRequestHandler</code> value
would match it:</p><pre><code class="language-text-x-trilium-auto">notes/([0-9]+)</code></pre> would match it:</p><pre><code class="language-text-x-trilium-auto">notes/([0-9]+)</code></pre>
<p>Additionally, this also defines a matching group with the use of parenthesis <p>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 which then makes it easier to extract the value. The matched groups are
available in <code>api.pathParams</code>:</p><pre><code class="language-text-x-trilium-auto">const noteId = api.pathParams[0];</code></pre> available in <code>api.pathParams</code>:</p><pre><code class="language-text-x-trilium-auto">const noteId = api.pathParams[0];</code></pre>
<p>Often you also need query params (as in e.g. <code>http://my.trilium.org/custom/notes?noteId=123</code>), <p>Often you also need query params (as in e.g. <code>http://my.trilium.org/custom/notes?noteId=123</code>),
you can get those with standard express <code>req.query.noteId</code>.</p> you can get those with standard express <code>req.query.noteId</code>.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,47 +1,32 @@
<html> <p>A custom resource provider allows any file imported into Trilium (images,
fonts, stylesheets) to be publicly accessible via a URL.</p>
<head> <p>A potential use case for this is to add embed a custom font alongside
<meta charset="utf-8"> a theme.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <h2>Steps for creating a custom resource provider</h2>
<link rel="stylesheet" href="../../style.css"> <ol>
<base target="_parent"> <li>Import a file such as an image or a font into Trilium by drag &amp; drop.</li>
<title data-trilium-title>Custom Resource Providers</title> <li>Select the file and go to the <em>Owned Attributes</em> section.</li>
</head> <li>Add the label <code>#customResourceProvider=hello</code>.</li>
<li>To test if it is working, use a browser to navigate to <code>&lt;protocol&gt;://&lt;host&gt;/custom/hello</code> (where <code>&lt;protocol&gt;</code> is
<body> either <code>http</code> or <code>https</code> based on your setup, and <code>&lt;host&gt;</code> is
<div class="content"> the host or IP to your Trilium server instance). If you are running the
<h1 data-trilium-h1>Custom Resource Providers</h1> TriliumNext application without a server, use <code>http://localhost:37840</code> as
the base URL.</li>
<div class="ck-content"> <li>If everything went well, at the previous step the browser should have
<p>A custom resource provider allows any file imported into Trilium (images, downloaded the file uploaded in the first step.</li>
fonts, stylesheets) to be publicly accessible via a URL.</p> </ol>
<p>A potential use case for this is to add embed a custom font alongside <p>Instead of <code>hello</code>, the name can be:</p>
a theme.</p> <ul>
<h2>Steps for creating a custom resource provider</h2> <li>A path, such as <code>fonts/Roboto.ttf</code>, which would be accessible
<ol> via <code>&lt;host&gt;/custom/fonts/Roboto.ttf</code>.</li>
<li>Import a file such as an image or a font into Trilium by drag &amp; drop.</li> <li>As a more advanced use case, a regular expression to match multiple routes,
<li>Select the file and go to the <em>Owned Attributes</em> section.</li> such as <code>hello/.*</code> which will be accessible via <code>/custom/hello/1</code>, <code>/custom/hello/2</code>, <code>/custom/hello/world</code>,
<li>Add the label <code>#customResourceProvider=hello</code>.</li> etc.</li>
<li>To test if it is working, use a browser to navigate to <code>&lt;protocol&gt;://&lt;host&gt;/custom/hello</code> (where <code>&lt;protocol&gt;</code> is </ul>
either <code>http</code> or <code>https</code> based on your setup, and <code>&lt;host&gt;</code> is <h2>Using it in a theme</h2>
the host or IP to your Trilium server instance). If you are running the <p>For example, if you have a custom font to be imported by the theme, first
TriliumNext application without a server, use <code>http://localhost:37840</code> as upload a font file into Trilium and assign it the <code>#customResourceProvider=fonts/myfont.ttf</code> attribute.</p>
the base URL.</li> <p>Then modify the theme CSS to point to:</p><pre><code class="language-text-css">@font-face {
<li>If everything went well, at the previous step the browser should have
downloaded the file uploaded in the first step.</li>
</ol>
<p>Instead of <code>hello</code>, the name can be:</p>
<ul>
<li>A path, such as <code>fonts/Roboto.ttf</code>, which would be accessible
via <code>&lt;host&gt;/custom/fonts/Roboto.ttf</code>.</li>
<li>As a more advanced use case, a regular expression to match multiple routes,
such as <code>hello/.*</code> which will be accessible via <code>/custom/hello/1</code>, <code>/custom/hello/2</code>, <code>/custom/hello/world</code>,
etc.</li>
</ul>
<h2>Using it in a theme</h2>
<p>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 <code>#customResourceProvider=fonts/myfont.ttf</code> attribute.</p>
<p>Then modify the theme CSS to point to:</p><pre><code class="language-text-css">@font-face {
font-family: customFont; font-family: customFont;
src: url("/custom/fonts/myfont.ttf"); src: url("/custom/fonts/myfont.ttf");
} }
@@ -49,8 +34,3 @@
div { div {
font-family: customFont; font-family: customFont;
}</code></pre> }</code></pre>
</div>
</div>
</body>
</html>

View File

@@ -1,47 +1,27 @@
<html> <p>Your Trilium data is stored in a <a href="https://www.sqlite.org">SQLite</a> database
which contains all notes, tree structure, metadata, and most of the configuration.
<head> The database file is named <code>document.db</code> and is stored in the
<meta charset="utf-8"> application's default&nbsp;<a href="#root/_help_tAassRL4RSQL">Data directory</a>.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <h2>Demo Notes</h2>
<link rel="stylesheet" href="../../style.css"> <p>When first starting Trilium, it will provide a set of notes to showcase
<base target="_parent"> various features of the application.</p>
<title data-trilium-title>Database</title> <p>For more information see&nbsp;<a class="reference-link" href="#root/_help_6tZeKvSHEUiB">Demo Notes</a>.</p>
</head> <h2>Manually Modifying the Database</h2>
<p>Trilium provides a lot of flexibility, and with it, opportunities for
<body> advanced users to tweak it. If you need to explore or modify the database
<div class="content"> directly, you can use a tool such as <a href="https://sqlitebrowser.org/">SQLite Browser</a> to
<h1 data-trilium-h1>Database</h1> work directly on the database file.</p>
<p>See&nbsp;<a href="#root/_help_oyIAJ9PvvwHX">Manually altering the database</a>&nbsp;for
<div class="ck-content"> more information.</p>
<p>Your Trilium data is stored in a <a href="https://www.sqlite.org">SQLite</a> database <h2>How to Reset the Database</h2>
which contains all notes, tree structure, metadata, and most of the configuration. <p>If you are experimenting with Trilium and want to return it to its original
The database file is named <code>document.db</code> and is stored in the state, you can do that by deleting the current database. When you restart
application's default&nbsp;<a href="#root/_help_tAassRL4RSQL">Data directory</a>.</p> the application, it will generate a new database containing the original
<h2>Demo Notes</h2> demo notes.</p>
<p>When first starting Trilium, it will provide a set of notes to showcase <p>To delete the database, simply go to the <a href="#root/_help_tAassRL4RSQL">data directory</a> and
various features of the application.</p> delete the <code>document.db</code> file (and any other files starting with <code>document.db</code>).</p>
<p>For more information see&nbsp;<a class="reference-link" href="#root/_help_6tZeKvSHEUiB">Demo Notes</a>.</p> <p>If you do not need to preserve any configurations that might be stored
<h2>Manually Modifying the Database</h2> in the <code>config.ini</code> file, you can just delete all of the <a href="#root/_help_tAassRL4RSQL">data directory's</a> contents
<p>Trilium provides a lot of flexibility, and with it, opportunities for to fully restore the application to its original state. You can also review
advanced users to tweak it. If you need to explore or modify the database the <a href="#root/_help_Gzjqa934BdH4">configuration</a> file to provide
directly, you can use a tool such as <a href="https://sqlitebrowser.org/">SQLite Browser</a> to all <code>config.ini</code> values as environment variables instead.</p>
work directly on the database file.</p>
<p>See&nbsp;<a href="#root/_help_oyIAJ9PvvwHX">Manually altering the database</a>&nbsp;for
more information.</p>
<h2>How to Reset the Database</h2>
<p>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.</p>
<p>To delete the database, simply go to the <a href="#root/_help_tAassRL4RSQL">data directory</a> and
delete the <code>document.db</code> file (and any other files starting with <code>document.db</code>).</p>
<p>If you do not need to preserve any configurations that might be stored
in the <code>config.ini</code> file, you can just delete all of the <a href="#root/_help_tAassRL4RSQL">data directory's</a> contents
to fully restore the application to its original state. You can also review
the <a href="#root/_help_Gzjqa934BdH4">configuration</a> file to provide
all <code>config.ini</code> values as environment variables instead.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,50 +1,30 @@
<html> <p>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:</p>
<head> <ul>
<meta charset="utf-8"> <li><a class="reference-link" href="#root/_help_iRwzGnHPzonm">Relation Map</a>
<meta name="viewport" content="width=device-width, initial-scale=1"> </li>
<link rel="stylesheet" href="../../../style.css"> <li><a class="reference-link" href="#root/_help_l0tKav7yLHGF">Day Notes</a>
<base target="_parent"> </li>
<title data-trilium-title>Demo Notes</title> <li><a class="reference-link" href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a>
</head> </li>
<li><a class="reference-link" href="#root/_help_xYjQUYhpbUEW">Task Manager</a>
<body> </li>
<div class="content"> <li><a class="reference-link" href="#root/_help_Wy267RK4M69c">Themes</a>
<h1 data-trilium-h1>Demo Notes</h1> </li>
</ul>
<div class="ck-content"> <h3>Restoring Demo Notes</h3>
<p>When you run Trilium for the first time, it will generate a new database <p>There are some cases in which you may want to restore the original demo
containing demo notes. These notes showcase its many features, such as:</p> notes. For example, if you experimented with some of the more advanced
<ul> features and want to see the original reference, or if you simply want
<li><a class="reference-link" href="#root/_help_iRwzGnHPzonm">Relation Map</a> to explore the latest version of the demo notes, which might showcase new
</li> features.</p>
<li><a class="reference-link" href="#root/_help_l0tKav7yLHGF">Day Notes</a> <p>You can easily restore the demo notes by using Trilium's built-in import
</li> feature by importing them:</p>
<li><a class="reference-link" href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a> <ul>
</li> <li>Download <a href="https://github.com/TriliumNext/Notes/raw/develop/db/demo.zip">this .zip archive</a> with
<li><a class="reference-link" href="#root/_help_xYjQUYhpbUEW">Task Manager</a> the latest version of the demo notes</li>
</li> <li>Right click on any note in your tree under which you would like the demo
<li><a class="reference-link" href="#root/_help_Wy267RK4M69c">Themes</a> notes to be imported</li>
</li> <li>Click "Import into note"</li>
</ul> <li>Select the .zip archive to import it</li>
<h3>Restoring Demo Notes</h3> </ul>
<p>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.</p>
<p>You can easily restore the demo notes by using Trilium's built-in import
feature by importing them:</p>
<ul>
<li>Download <a href="https://github.com/TriliumNext/Notes/raw/develop/db/demo.zip">this .zip archive</a> with
the latest version of the demo notes</li>
<li>Right click on any note in your tree under which you would like the demo
notes to be imported</li>
<li>Click "Import into note"</li>
<li>Select the .zip archive to import it</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,56 +1,36 @@
<html> <p>There are some situations where modifying the SQLite database that Trilium
uses is desirable.</p>
<head> <p>If you are doing any advanced development or troubleshooting where you
<meta charset="utf-8"> manually modify the database, you might want to consider creating backups
<meta name="viewport" content="width=device-width, initial-scale=1"> of your <code>document.db</code> file.</p>
<link rel="stylesheet" href="../../../style.css"> <h2>Modifying it internally using the SQL Console</h2>
<base target="_parent"> <p>The SQL Console is Trilium's built-in database editor.</p>
<title data-trilium-title>Manually altering the database</title> <p>See&nbsp;<a class="reference-link" href="#root/_help_YKWqdJhzi2VY">SQL Console</a>.</p>
</head> <h2>Externally modifying the database</h2>
<p>Sometimes the SQL Console cannot be used (for example if the application
<body> cannot start).</p>
<div class="content"> <p>When making external modifications, consider closing the desktop application.
<h1 data-trilium-h1>Manually altering the database</h1> If modifying the server database, then stop the service or Docker container.</p>
<h3>Using DB Browser for SQLite</h3>
<div class="ck-content"> <p>DB Browser for SQLite is a cross-platform editor that can be used to alter
<p>There are some situations where modifying the SQLite database that Trilium the database using a graphical user interface.</p>
uses is desirable.</p> <p>To do so:</p>
<p>If you are doing any advanced development or troubleshooting where you <ol>
manually modify the database, you might want to consider creating backups <li>In the main menu, select File → Open database… and navigate to the database
of your <code>document.db</code> file.</p> in the&nbsp;<a href="#root/_help_tAassRL4RSQL">Data directory</a>.</li>
<h2>Modifying it internally using the SQL Console</h2> <li>Select the <em>Execute SQL</em> tab.</li>
<p>The SQL Console is Trilium's built-in database editor.</p> <li>Type in the desired SQL statement.</li>
<p>See&nbsp;<a class="reference-link" href="#root/_help_YKWqdJhzi2VY">SQL Console</a>.</p> <li>Press the "Play" button in the toolbar underneath the "Execute SQL" tab
<h2>Externally modifying the database</h2> (or F5 key).</li>
<p>Sometimes the SQL Console cannot be used (for example if the application <li>Press "Write Changes" in the main toolbar.</li>
cannot start).</p> <li>Close the application or close the database.</li>
<p>When making external modifications, consider closing the desktop application. </ol>
If modifying the server database, then stop the service or Docker container.</p> <p>
<h3>Using DB Browser for SQLite</h3> <img src="Manually altering the data.png">
<p>DB Browser for SQLite is a cross-platform editor that can be used to alter </p>
the database using a graphical user interface.</p> <h3>Using the SQLite CLI</h3>
<p>To do so:</p> <p>First, start the SQLite 3 CLI by specifying the path to the database:</p><pre><code class="language-text-x-trilium-auto">sqlite3 ~/.local/share/trilium-data/document.db</code></pre>
<ol> <ul>
<li>In the main menu, select File → Open database… and navigate to the database <li>In the prompt simply type the statement and make sure it ends with a <code>;</code> character.</li>
in the&nbsp;<a href="#root/_help_tAassRL4RSQL">Data directory</a>.</li> <li>To exit, simply type <code>.quit</code> and enter.</li>
<li>Select the <em>Execute SQL</em> tab.</li> </ul>
<li>Type in the desired SQL statement.</li>
<li>Press the "Play" button in the toolbar underneath the "Execute SQL" tab
(or F5 key).</li>
<li>Press "Write Changes" in the main toolbar.</li>
<li>Close the application or close the database.</li>
</ol>
<p>
<img src="Manually altering the data.png">
</p>
<h3>Using the SQLite CLI</h3>
<p>First, start the SQLite 3 CLI by specifying the path to the database:</p><pre><code class="language-text-x-trilium-auto">sqlite3 ~/.local/share/trilium-data/document.db</code></pre>
<ul>
<li>In the prompt simply type the statement and make sure it ends with a <code>;</code> character.</li>
<li>To exit, simply type <code>.quit</code> and enter.</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,56 +1,36 @@
<html> <p>The SQL Console is Trilium's built-in database editor.</p>
<p>It can be accessed by going to the <a href="#root/_help_Vc8PjrjAGuOp">global menu</a>
<head> Advanced → Open SQL Console.</p>
<meta charset="utf-8"> <p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <img src="SQL Console_image.png">
<link rel="stylesheet" href="../../../../style.css"> </p>
<base target="_parent"> <h3>Interaction</h3>
<title data-trilium-title>SQL Console</title> <ul>
</head> <li>
<p>Hovering the mouse over one of the tables listed at the top of the document
<body> will show the columns and their data type.</p>
<div class="content"> </li>
<h1 data-trilium-h1>SQL Console</h1> <li>
<p>Only one SQL statement can be run at once.</p>
<div class="ck-content"> </li>
<p>The SQL Console is Trilium's built-in database editor.</p> <li>
<p>It can be accessed by going to the <a href="#root/_help_Vc8PjrjAGuOp">global menu</a> <p>To run the statement, press the
Advanced → Open SQL Console.</p> <img src="3_SQL Console_image.png">icon.</p>
<p> </li>
<img src="SQL Console_image.png"> <li>
</p> <p>For queries that return a result, the data will displayed in a table.</p>
<h3>Interaction</h3> <p>
<ul> <img src="1_SQL Console_image.png">
<li> </p>
<p>Hovering the mouse over one of the tables listed at the top of the document </li>
will show the columns and their data type.</p> </ul>
</li> <h3>Saved SQL console</h3>
<li> <p>SQL queries or commands can be saved into a dedicated note.</p>
<p>Only one SQL statement can be run at once.</p> <p>To do so, simply write the query and press the
</li> <img src="2_SQL Console_image.png">button. Once saved, the note will appear in&nbsp;<a href="#root/_help_l0tKav7yLHGF">Day Notes</a>.</p>
<li> <ul>
<p>To run the statement, press the <li>The SQL expression will not be displayed by default, but it can still
<img src="3_SQL Console_image.png">icon.</p> be viewed by going to the note context menu and selecting <em>Note source</em>.</li>
</li> <li>The expression cannot be modified. If needed, recreate it by copying the
<li> statement back into the SQL console and then saving it again.</li>
<p>For queries that return a result, the data will displayed in a table.</p> </ul>
<p>
<img src="1_SQL Console_image.png">
</p>
</li>
</ul>
<h3>Saved SQL console</h3>
<p>SQL queries or commands can be saved into a dedicated note.</p>
<p>To do so, simply write the query and press the
<img src="2_SQL Console_image.png">button. Once saved, the note will appear in&nbsp;<a href="#root/_help_l0tKav7yLHGF">Day Notes</a>.</p>
<ul>
<li>The SQL expression will not be displayed by default, but it can still
be viewed by going to the note context menu and selecting <em>Note source</em>.</li>
<li>The expression cannot be modified. If needed, recreate it by copying the
statement back into the SQL console and then saving it again.</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,74 +1,54 @@
<html> <p>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
<head> note title.</p>
<meta charset="utf-8"> <p>For this use case, Trilium (since v0.52) supports <code>#titleTemplate</code>
<meta name="viewport" content="width=device-width, initial-scale=1"> <a
<link rel="stylesheet" href="../../style.css"> href="#root/_help_zEY4DaJG4YT5">label</a>. You can create such a label for a given note, assign it a value,
<base target="_parent"> and this value will be used as a default title when creating child notes.
<title data-trilium-title>Default Note Title</title> As with other labels, you can make it inheritable to apply recursively,
</head> and you can even place it on the root note to have it applied globally
everywhere.</p>
<body> <p>As an example use case, imagine you collect books you've read in a given
<div class="content"> year like this:</p>
<h1 data-trilium-h1>Default Note Title</h1> <ul>
<li>2022 Books
<div class="ck-content"> <ul>
<p>When a new note is created, its name is by default "new note". In some <li>Neal Stephenson: Anathem, 2008</li>
cases, it can be desirable to have a different or even a dynamic default <li>Franz Kafka: Die Verwandlung, 1915</li>
note title.</p> </ul>
<p>For this use case, Trilium (since v0.52) supports <code>#titleTemplate</code> </li>
<a </ul>
href="#root/_help_zEY4DaJG4YT5">label</a>. You can create such a label for a given note, assign it a value, <p>Now, to the parent note "2022 Books" you can assign label <code>#titleTemplate="[Author name]: [Book title], [Publication year]"</code>.</p>
and this value will be used as a default title when creating child notes. <p>And all children of "2022 Books" will be created with initial title "[Author
As with other labels, you can make it inheritable to apply recursively, name]: [Book title], [Publication year]". There's no artificial intelligence
and you can even place it on the root note to have it applied globally here, the idea is to just prompt you to manually fill in the pieces of
everywhere.</p> information into the note title by yourself.</p>
<p>As an example use case, imagine you collect books you've read in a given <h2>Dynamic value</h2>
year like this:</p> <p>The value of <code>#titleTemplate</code> 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.</p>
<p>Second variable injected is <code>parentNote</code> which gives access to
the parent <a href="#root/_help_habiZ3HU8Kw8"><code>FNote</code></a>.</p>
<p>See also&nbsp;<a class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>&nbsp;which
provides similar capabilities, including default note's content.</p>
<h3>Examples</h3>
<ul>
<li>Imagine you collect server outage incidents and write some notes. It looks
like this:
<ul>
<li>Incidents
<ul> <ul>
<li>2022 Books <li>2022-05-09: System crash</li>
<ul> <li>2022-05-15: Backup delay</li>
<li>Neal Stephenson: Anathem, 2008</li>
<li>Franz Kafka: Die Verwandlung, 1915</li>
</ul>
</li>
</ul> </ul>
<p>Now, to the parent note "2022 Books" you can assign label <code>#titleTemplate="[Author name]: [Book title], [Publication year]"</code>.</p> </li>
<p>And all children of "2022 Books" will be created with initial title "[Author <li>You can automatize the date assignment by assigning a label <code>#titleTemplate="${now.format('YYYY-MM-DD')}: "</code> to
name]: [Book title], [Publication year]". There's no artificial intelligence the parent note "Incidents". Whenever a new child note is created, the
here, the idea is to just prompt you to manually fill in the pieces of title template is evaluated with the injected <a href="https://day.js.org/docs/en/display/format">now</a> object.</li>
information into the note title by yourself.</p> </ul>
<h2>Dynamic value</h2> </li>
<p>The value of <code>#titleTemplate</code> is evaluated at the point of note's <li>To use a parent's attribute in the title of new notes: <code>#titleTemplate="${parentNote.getLabelValue('authorName')}'s literary works"</code>
creation as a JavaScript string, which means it can be enriched with the </li>
help of JS string interpolation with dynamic data.</p> <li>To mirror the parent's note title: <code>${parentNote.title}</code>
<p>Second variable injected is <code>parentNote</code> which gives access to </li>
the parent <a href="#root/_help_habiZ3HU8Kw8"><code>FNote</code></a>.</p> </ul>
<p>See also&nbsp;<a class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>&nbsp;which
provides similar capabilities, including default note's content.</p>
<h3>Examples</h3>
<ul>
<li>Imagine you collect server outage incidents and write some notes. It looks
like this:
<ul>
<li>Incidents
<ul>
<li>2022-05-09: System crash</li>
<li>2022-05-15: Backup delay</li>
</ul>
</li>
<li>You can automatize the date assignment by assigning a label <code>#titleTemplate="${now.format('YYYY-MM-DD')}: "</code> to
the parent note "Incidents". Whenever a new child note is created, the
title template is evaluated with the injected <a href="https://day.js.org/docs/en/display/format">now</a> object.</li>
</ul>
</li>
<li>To use a parent's attribute in the title of new notes: <code>#titleTemplate="${parentNote.getLabelValue('authorName')}'s literary works"</code>
</li>
<li>To mirror the parent's note title: <code>${parentNote.title}</code>
</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,45 +1,30 @@
<html> <p>ETAPI is Trilium's public/external REST API. It is available since Trilium
v0.50.</p>
<head> <p>The documentation is in OpenAPI format, available <a href="https://github.com/TriliumNext/Notes/blob/master/src/etapi/etapi.openapi.yaml">here</a>.</p>
<meta charset="utf-8"> <h2>API clients</h2>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>As an alternative to calling the API directly, there are client libraries
<link rel="stylesheet" href="../../style.css"> to simplify this</p>
<base target="_parent"> <ul>
<title data-trilium-title>ETAPI (REST API)</title> <li><a href="https://github.com/Nriver/trilium-py">trilium-py</a>, you can
</head> use Python to communicate with Trilium.</li>
</ul>
<body> <h2>Authentication</h2>
<div class="content"> <p>All operations have to be authenticated using a token. You can get this
<h1 data-trilium-h1>ETAPI (REST API)</h1> token either from Options -&gt; ETAPI or programmatically using the <code>/auth/login</code> REST
call (see the <a href="https://github.com/TriliumNext/Notes/blob/master/src/etapi/etapi.openapi.yaml">spec</a>):</p><pre><code class="language-text-x-trilium-auto">GET https://myserver.com/etapi/app-info
<div class="ck-content">
<p>ETAPI is Trilium's public/external REST API. It is available since Trilium
v0.50.</p>
<p>The documentation is in OpenAPI format, available <a href="https://github.com/TriliumNext/Notes/blob/master/src/etapi/etapi.openapi.yaml">here</a>.</p>
<h2>API clients</h2>
<p>As an alternative to calling the API directly, there are client libraries
to simplify this</p>
<ul>
<li><a href="https://github.com/Nriver/trilium-py">trilium-py</a>, you can
use Python to communicate with Trilium.</li>
</ul>
<h2>Authentication</h2>
<p>All operations have to be authenticated using a token. You can get this
token either from Options -&gt; ETAPI or programmatically using the <code>/auth/login</code> REST
call (see the <a href="https://github.com/TriliumNext/Notes/blob/master/src/etapi/etapi.openapi.yaml">spec</a>):</p><pre><code class="language-text-x-trilium-auto">GET https://myserver.com/etapi/app-info
Authorization: ETAPITOKEN</code></pre> Authorization: ETAPITOKEN</code></pre>
<p>Alternatively, since 0.56 you can also use basic auth format:</p><pre><code class="language-text-x-trilium-auto">GET https://myserver.com/etapi/app-info <p>Alternatively, since 0.56 you can also use basic auth format:</p><pre><code class="language-text-x-trilium-auto">GET https://myserver.com/etapi/app-info
Authorization: Basic BATOKEN</code></pre> Authorization: Basic BATOKEN</code></pre>
<ul> <ul>
<li>Where <code>BATOKEN = BASE64(username + ':' + password)</code> - this is <li>Where <code>BATOKEN = BASE64(username + ':' + password)</code> - this is
a standard Basic Auth serialization</li> a standard Basic Auth serialization</li>
<li>Where <code>username</code> is "etapi"</li> <li>Where <code>username</code> is "etapi"</li>
<li>And <code>password</code> is the generated ETAPI token described above.</li> <li>And <code>password</code> is the generated ETAPI token described above.</li>
</ul> </ul>
<p>Basic Auth is meant to be used with tools which support only basic auth.</p> <p>Basic Auth is meant to be used with tools which support only basic auth.</p>
<h2>Interaction using Bash scripts</h2> <h2>Interaction using Bash scripts</h2>
<p>It is possible to write simple Bash scripts to interact with Trilium. <p>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:</p><pre><code class="language-text-x-trilium-auto">#!/usr/bin/env bash As an example, here's how to obtain the HTML content of a note:</p><pre><code class="language-text-x-trilium-auto">#!/usr/bin/env bash
# Configuration # Configuration
TOKEN=z1vA4fkGxjOR_ZXLrZeqHEFOv65yV3882iFCRtNIK9k9iWrHliITNSLQ= TOKEN=z1vA4fkGxjOR_ZXLrZeqHEFOv65yV3882iFCRtNIK9k9iWrHliITNSLQ=
@@ -48,15 +33,10 @@ SERVER=http://localhost:8080
# Download a note by ID # Download a note by ID
NOTE_ID="i6ra4ZshJhgN" NOTE_ID="i6ra4ZshJhgN"
curl "$SERVER/etapi/notes/$NOTE_ID/content" -H "Authorization: $TOKEN" </code></pre> curl "$SERVER/etapi/notes/$NOTE_ID/content" -H "Authorization: $TOKEN" </code></pre>
<p>Make sure to replace the values of:</p> <p>Make sure to replace the values of:</p>
<ul> <ul>
<li><code>TOKEN</code> with your ETAPI token.</li> <li><code>TOKEN</code> with your ETAPI token.</li>
<li><code>SERVER</code> with the correct protocol, host name and port to your <li><code>SERVER</code> with the correct protocol, host name and port to your
Trilium instance.</li> Trilium instance.</li>
<li><code>NOTE_ID</code> with an existing note ID to download.</li> <li><code>NOTE_ID</code> with an existing note ID to download.</li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,202 +1,182 @@
<html> <figure class="image image-style-align-right">
<img style="aspect-ratio:263/445;" src="Hidden Notes_image.png" width="263"
<head> height="445">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>For easy extensibility, a lot of features in Trilium make use of actual
<link rel="stylesheet" href="../../style.css"> notes to store information as opposed to having them stored in a separate
<base target="_parent"> location in the database. This allows some functions such as&nbsp;<a class="reference-link"
<title data-trilium-title>Hidden Notes</title> href="#root/_help_zEY4DaJG4YT5">Attributes</a>,&nbsp;<a class="reference-link"
</head> href="#root/_help_Cq5X6iKQop6R">Relations</a>&nbsp;or even&nbsp;<a class="reference-link"
href="#root/_help_eIg8jdvaoNNd">Search</a>&nbsp;and&nbsp;<a class="reference-link"
<body> href="#root/_help_QEAPj01N5f7w">Links</a>&nbsp;to be able to operate on
<div class="content"> them.</p>
<h1 data-trilium-h1>Hidden Notes</h1> <p>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
<div class="ck-content"> deleted.</p>
<figure class="image image-style-align-right"> <p>The hidden notes are stored in the user's&nbsp;<a class="reference-link"
<img style="aspect-ratio:263/445;" src="Hidden Notes_image.png" width="263" href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;just like normal notes,
height="445"> but they have a unique&nbsp;<a class="reference-link" href="#root/_help_m1lbrzyKDaRB">Note ID</a>&nbsp;which
</figure> allows them to be distinguished from the normal ones.</p>
<p>For easy extensibility, a lot of features in Trilium make use of actual <h2>Accessing the hidden note tree</h2>
notes to store information as opposed to having them stored in a separate <p>From the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>,
location in the database. This allows some functions such as&nbsp;<a class="reference-link" select <em>Advanced</em><em>Show Hidden Subtree</em>.</p>
href="#root/_help_zEY4DaJG4YT5">Attributes</a>,&nbsp;<a class="reference-link" <h2>Contents of the hidden note tree</h2>
href="#root/_help_Cq5X6iKQop6R">Relations</a>&nbsp;or even&nbsp;<a class="reference-link" <p>Here is a brief summary of all the notes within the hidden tree:</p>
href="#root/_help_eIg8jdvaoNNd">Search</a>&nbsp;and&nbsp;<a class="reference-link" <figure
href="#root/_help_QEAPj01N5f7w">Links</a>&nbsp;to be able to operate on class="table" style="width:100%;">
them.</p> <table class="ck-table-resized">
<p>As the name suggests, these notes are hidden to the user by default to <colgroup>
prevent cluttering the note tree and to prevent them from being accidentally <col style="width:19.93%;">
deleted.</p> <col style="width:80.07%;">
<p>The hidden notes are stored in the user's&nbsp;<a class="reference-link" </colgroup>
href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;just like normal notes, <thead>
but they have a unique&nbsp;<a class="reference-link" href="#root/_help_m1lbrzyKDaRB">Note ID</a>&nbsp;which <tr>
allows them to be distinguished from the normal ones.</p> <th>Note</th>
<h2>Accessing the hidden note tree</h2> <th>Description</th>
<p>From the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>, </tr>
select <em>Advanced</em><em>Show Hidden Subtree</em>.</p> </thead>
<h2>Contents of the hidden note tree</h2> <tbody>
<p>Here is a brief summary of all the notes within the hidden tree:</p> <tr>
<figure <td><a class="reference-link" href="#root/_hidden/_help__globalNoteMap">Note Map</a>
class="table" style="width:100%;"> </td>
<table class="ck-table-resized"> <td>
<colgroup> <p>This note is actually opened when the&nbsp;<a class="reference-link" href="#root/_help_bdUJEHsAPYQR">Note Map</a>&nbsp;feature
<col style="width:19.93%;"> that is accessed from the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</p>
<col style="width:80.07%;"> <p>It is possible to create any child notes in it without any additional
</colgroup> meaning. For example, it can be used to store a list of note maps which
<thead> can be linked to from other notes or <a href="#root/_help_u3YFHC9tQlpm">bookmarked</a>.</p>
<tr> </td>
<th>Note</th> </tr>
<th>Description</th> <tr>
</tr> <td><a class="reference-link" href="#root/_hidden/_help__sqlConsole">SQL Console History</a>
</thead> </td>
<tbody> <td>
<tr> <p>When SQL queries or commands are executed in the&nbsp;<a class="reference-link"
<td><a class="reference-link" href="#root/_hidden/_help__globalNoteMap">Note Map</a> href="#root/_help_YKWqdJhzi2VY">SQL Console</a>, they are stored here,
</td> grouped by month. Only the query is stored and not the results.</p>
<td> <p>This section can be accessed without going to the hidden tree by simply
<p>This note is actually opened when the&nbsp;<a class="reference-link" href="#root/_help_bdUJEHsAPYQR">Note Map</a>&nbsp;feature going to the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and
that is accessed from the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</p> selecting Advanced → Open SQL Console History.</p>
<p>It is possible to create any child notes in it without any additional <p>Notes can be added as children of this tree, but it's generally not recommended
meaning. For example, it can be used to store a list of note maps which to do so to not interfere with the normal history process.</p>
can be linked to from other notes or <a href="#root/_help_u3YFHC9tQlpm">bookmarked</a>.</p> </td>
</td> </tr>
</tr> <tr>
<tr> <td><a class="reference-link" href="#root/_hidden/_help__search">Search History</a>
<td><a class="reference-link" href="#root/_hidden/_help__sqlConsole">SQL Console History</a> </td>
</td> <td>
<td> <p>Whenever a search is executed from the full&nbsp;<a class="reference-link"
<p>When SQL queries or commands are executed in the&nbsp;<a class="reference-link" href="#root/_help_eIg8jdvaoNNd">Search</a>, the query will be stored here,
href="#root/_help_YKWqdJhzi2VY">SQL Console</a>, they are stored here, grouped by month. Only the search parameters are stored and not the results
grouped by month. Only the query is stored and not the results.</p> themselves.</p>
<p>This section can be accessed without going to the hidden tree by simply <p>This section can be accessed without going to the hidden tree by simply
going to the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and going to the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and
selecting Advanced → Open SQL Console History.</p> selecting Advanced → Open Search History.</p>
<p>Notes can be added as children of this tree, but it's generally not recommended <p>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.</p> to do so to not interfere with the normal history process.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><a class="reference-link" href="#root/_hidden/_help__search">Search History</a> <td><a class="reference-link" href="#root/_hidden/_help__bulkAction">Bulk Action</a>
</td> </td>
<td> <td>
<p>Whenever a search is executed from the full&nbsp;<a class="reference-link" <p>This section is used for&nbsp;<a class="reference-link" href="#root/_help_ivYnonVFBxbQ">Bulk Actions</a>.
href="#root/_help_eIg8jdvaoNNd">Search</a>, the query will be stored here, The last configuration for bulk actions will be stored as part of this
grouped by month. Only the search parameters are stored and not the results note, each action in its own <code>action</code> label.</p>
themselves.</p> <p>Notes can be added as children of this tree, but there won't be any benefit
<p>This section can be accessed without going to the hidden tree by simply in doing so.</p>
going to the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and </td>
selecting Advanced → Open Search History.</p> </tr>
<p>Notes can be added as children of this tree, but it's generally not recommended <tr>
to do so to not interfere with the normal history process.</p> <td><a class="reference-link" href="#root/_hidden/_help__backendLog">Backend Log</a>
</td> </td>
</tr> <td>
<tr> <p>This note corresponds to the backend log feature (see&nbsp;<a class="reference-link"
<td><a class="reference-link" href="#root/_hidden/_help__bulkAction">Bulk Action</a> href="#root/_help_qzNzp9LYQyPT">Error logs</a>).</p>
</td> <p>This item can be accessed without going to the hidden try by going to
<td> the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and
<p>This section is used for&nbsp;<a class="reference-link" href="#root/_help_ivYnonVFBxbQ">Bulk Actions</a>. selecting Advanced → Show backend log.</p>
The last configuration for bulk actions will be stored as part of this </td>
note, each action in its own <code>action</code> label.</p> </tr>
<p>Notes can be added as children of this tree, but there won't be any benefit <tr>
in doing so.</p> <td><a class="reference-link" href="#root/_hidden/_help__userHidden">User Hidden</a>
</td> </td>
</tr> <td>This section can be used by <a href="#root/_help_CdNpE2pqjmI6">scripts</a> to
<tr> create their own notes that should not be directly visible to the user.
<td><a class="reference-link" href="#root/_hidden/_help__backendLog">Backend Log</a> The note can be identified by scripts by its unique ID: <code>_userHidden</code>
</td> </td>
<td> </tr>
<p>This note corresponds to the backend log feature (see&nbsp;<a class="reference-link" <tr>
href="#root/_help_qzNzp9LYQyPT">Error logs</a>).</p> <td><a class="reference-link" href="#root/_hidden/_help__lbTplRoot">Launch Bar Templates</a>
<p>This item can be accessed without going to the hidden try by going to </td>
the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and <td>
selecting Advanced → Show backend log.</p> <p>This section contains the templates for the creation of launchers in the&nbsp;
</td> <a
</tr> class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>. It is not possible to create child notes here.</p>
<tr> <p>Theoretically some of the notes here can be customized, but there's not
<td><a class="reference-link" href="#root/_hidden/_help__userHidden">User Hidden</a> much benefit to be had in doing so.</p>
</td> </td>
<td>This section can be used by <a href="#root/_help_CdNpE2pqjmI6">scripts</a> to </tr>
create their own notes that should not be directly visible to the user. <tr>
The note can be identified by scripts by its unique ID: <code>_userHidden</code> <td><a class="reference-link" href="#root/_hidden/_help__share">Shared Notes</a>
</td> </td>
</tr> <td>
<tr> <p>This tree lists all of the notes that are <a href="#root/_help_R9pX4DGra2Vt">shared</a> publicly.
<td><a class="reference-link" href="#root/_hidden/_help__lbTplRoot">Launch Bar Templates</a> It can be useful to track down which notes are shared regardless of their
</td> position in the note tree.</p>
<td> <p>This section can be accessed without going to the hidden tree simply by
<p>This section contains the templates for the creation of launchers in the&nbsp; going to the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and
<a selecting <em>Show Shared Notes Subtree</em>.</p>
class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>. It is not possible to create child notes here.</p> <p>Sub-notes cannot be created here.</p>
<p>Theoretically some of the notes here can be customized, but there's not </td>
much benefit to be had in doing so.</p> </tr>
</td> <tr>
</tr> <td><a class="reference-link" href="#root/_hidden/_help__lbRoot">Launch Bar</a>
<tr> </td>
<td><a class="reference-link" href="#root/_hidden/_help__share">Shared Notes</a> <td>
</td> <p>The tree contains both available and displayed items of the&nbsp;<a class="reference-link"
<td> href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</p>
<p>This tree lists all of the notes that are <a href="#root/_help_R9pX4DGra2Vt">shared</a> publicly. <p>This section can be accessed without going to the hidden tree by:</p>
It can be useful to track down which notes are shared regardless of their <ul>
position in the note tree.</p> <li>Going to the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and
<p>This section can be accessed without going to the hidden tree simply by selecting <em>Configure Launchbar</em>.</li>
going to the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and <li>Right-clicking an empty space on the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>&nbsp;and
selecting <em>Show Shared Notes Subtree</em>.</p> selecting <em>Configure Launchbar</em>.</li>
<p>Sub-notes cannot be created here.</p> </ul>
</td> <p>Sub-notes cannot be created here.</p>
</tr> </td>
<tr> </tr>
<td><a class="reference-link" href="#root/_hidden/_help__lbRoot">Launch Bar</a> <tr>
</td> <td><a class="reference-link" href="#root/_hidden/_help__options">Options</a>
<td> </td>
<p>The tree contains both available and displayed items of the&nbsp;<a class="reference-link" <td>
href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</p> <p>This section stores the list of&nbsp;<a class="reference-link" href="#root/_help_4TIF1oA4VQRO">Options</a>.</p>
<p>This section can be accessed without going to the hidden tree by:</p> <p>This section can be accessed without going to the hidden tree by:</p>
<ul> <ul>
<li>Going to the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and <li>Going to the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and
selecting <em>Configure Launchbar</em>.</li> selecting <em>Options</em>.</li>
<li>Right-clicking an empty space on the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>&nbsp;and <li>Pressing the dedicated Options icon in the&nbsp;<a class="reference-link"
selecting <em>Configure Launchbar</em>.</li> href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</li>
</ul> </ul>
<p>Sub-notes cannot be created here.</p> </td>
</td> </tr>
</tr> <tr>
<tr> <td><a class="reference-link" href="#root/_hidden/_help__lbMobileRoot">Mobile Launch Bar</a>
<td><a class="reference-link" href="#root/_hidden/_help__options">Options</a> </td>
</td> <td>
<td> <p>This is very similar to the <em>Launch Bar</em>, but is dedicated for the
<p>This section stores the list of&nbsp;<a class="reference-link" href="#root/_help_4TIF1oA4VQRO">Options</a>.</p> mobile UI only.</p>
<p>This section can be accessed without going to the hidden tree by:</p> <p>Accessing it outside the <em>Launch Bar</em> is the same as the Launch Bar,
<ul> but needs to be done so from the mobile interface.</p>
<li>Going to the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and </td>
selecting <em>Options</em>.</li> </tr>
<li>Pressing the dedicated Options icon in the&nbsp;<a class="reference-link" <tr>
href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</li> <td><a class="reference-link" href="#root/_hidden/_help__help">User Guide</a>
</ul> </td>
</td> <td>This is where the note structure for the User Guide is actually stored.
</tr> Only the metadata is stored, as the help itself is present as actual files
<tr> in the application directory.</td>
<td><a class="reference-link" href="#root/_hidden/_help__lbMobileRoot">Mobile Launch Bar</a> </tr>
</td> </tbody>
<td> </table>
<p>This is very similar to the <em>Launch Bar</em>, but is dedicated for the </figure>
mobile UI only.</p>
<p>Accessing it outside the <em>Launch Bar</em> is the same as the Launch Bar,
but needs to be done so from the mobile interface.</p>
</td>
</tr>
<tr>
<td><a class="reference-link" href="#root/_hidden/_help__help">User Guide</a>
</td>
<td>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.</td>
</tr>
</tbody>
</table>
</figure>
</div>
</div>
</body>
</html>

View File

@@ -1,46 +1,26 @@
<html> <p>Whereas some applications use file names to uniquely identify notes, Trilium
uses the concept of Note ID.</p>
<head> <p>Generally, the Note ID is a 12-character long alphanumeric sequence (including
<meta charset="utf-8"> both lower and upper case letter) that is randomly generated for each new
<meta name="viewport" content="width=device-width, initial-scale=1"> note.</p>
<link rel="stylesheet" href="../../style.css"> <h2>How does the import/export affect the note IDs</h2>
<base target="_parent"> <p>When notes are exported, their note ID is kept in the metadata of the
<title data-trilium-title>Note ID</title> export. However when they are imported back in, a new note ID is generated
</head> for all the notes. This also includes other entities that are part of the
import/export process such as&nbsp;<a class="reference-link" href="#root/_help_0vhv7lsOLy82">Attachments</a>.</p>
<body> <h2>Note collisions</h2>
<div class="content"> <p>Since the Note ID is a fixed-width randomly generated number, due to the
<h1 data-trilium-h1>Note ID</h1> <a
href="https://en.wikipedia.org/wiki/Pigeonhole_principle">pigeonhole principle</a>, there is a possibility that a newly created
<div class="ck-content"> note will have the same ID as an existing note.</p>
<p>Whereas some applications use file names to uniquely identify notes, Trilium <p>Since the note ID is alphanumeric and the length is 12 we have&nbsp;
uses the concept of Note ID.</p> <span
<p>Generally, the Note ID is a 12-character long alphanumeric sequence (including class="math-tex">\(62^{12}\)</span>&nbsp;unique IDs. However since we are generating them
both lower and upper case letter) that is randomly generated for each new randomly, we can use a collision calculator such as the one for <a href="https://alex7kom.github.io/nano-nanoid-cc/?alphabet=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&amp;size=12&amp;speed=1000&amp;speedUnit=hour">Nano ID</a> to
note.</p> determine that we'd need to create 1000 notes per hour every hour for 9
<h2>How does the import/export affect the note IDs</h2> centuries in order to have at least 1% probability of a note collision.</p>
<p>When notes are exported, their note ID is kept in the metadata of the <p>As such, Trilium does not take any explicit action against potential note
export. However when they are imported back in, a new note ID is generated collisions, similar to other software that makes uses of unique hashes
for all the notes. This also includes other entities that are part of the such as <a href="https://stackoverflow.com/questions/10434326/hash-collision-in-git">Git</a>.
import/export process such as&nbsp;<a class="reference-link" href="#root/_help_0vhv7lsOLy82">Attachments</a>.</p> If one would theoretically occur, what would most likely happen is that
<h2>Note collisions</h2> the existing note will be replaced by the new one.</p>
<p>Since the Note ID is a fixed-width randomly generated number, due to the
<a
href="https://en.wikipedia.org/wiki/Pigeonhole_principle">pigeonhole principle</a>, there is a possibility that a newly created
note will have the same ID as an existing note.</p>
<p>Since the note ID is alphanumeric and the length is 12 we have&nbsp;
<span
class="math-tex">\(62^{12}\)</span>&nbsp;unique IDs. However since we are generating them
randomly, we can use a collision calculator such as the one for <a href="https://alex7kom.github.io/nano-nanoid-cc/?alphabet=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&amp;size=12&amp;speed=1000&amp;speedUnit=hour">Nano ID</a> 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.</p>
<p>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 <a href="https://stackoverflow.com/questions/10434326/hash-collision-in-git">Git</a>.
If one would theoretically occur, what would most likely happen is that
the existing note will be replaced by the new one.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,50 +1,30 @@
<html> <p>Note map is a visualisation of connections between notes.</p>
<p>This provides an insight into a structure ("web") of notes.</p>
<head> <p>There are two types of note map:</p>
<meta charset="utf-8"> <ul>
<meta name="viewport" content="width=device-width, initial-scale=1"> <li>Link Map, which shows relations between notes.</li>
<link rel="stylesheet" href="../../style.css"> <li>Note Map, which shows the hierarchical tree structure.</li>
<base target="_parent"> </ul>
<title data-trilium-title>Note Map (Link map, Tree map)</title> <h2>Link Map</h2>
</head> <p>Shows <a href="#root/_help_zEY4DaJG4YT5">relations</a> between notes:</p>
<p>
<body> <img src="1_Note Map (Link map, Tree m.png">
<div class="content"> </p>
<h1 data-trilium-h1>Note Map (Link map, Tree map)</h1> <h2>Tree Map</h2>
<p>Shows hierarchical map of notes:</p>
<div class="ck-content"> <p>
<p>Note map is a visualisation of connections between notes.</p> <img src="Note Map (Link map, Tree m.png">
<p>This provides an insight into a structure ("web") of notes.</p> </p>
<p>There are two types of note map:</p> <h2>Dedicated note type</h2>
<ul> <p>Apart from the note map feature which can be accessed from any note, it
<li>Link Map, which shows relations between notes.</li> is also possible to create a dedicated note which will display the relations
<li>Note Map, which shows the hierarchical tree structure.</li> in full screen. See&nbsp;<a href="#root/_help_bdUJEHsAPYQR">Note Map</a>&nbsp;for
</ul> more information.</p>
<h2>Link Map</h2> <h2>See also</h2>
<p>Shows <a href="#root/_help_zEY4DaJG4YT5">relations</a> between notes:</p> <p><a href="#root/_help_iRwzGnHPzonm">Relation map</a> is a similar concept,
<p> with some differences:</p>
<img src="1_Note Map (Link map, Tree m.png"> <ul>
</p> <li>note map is automatically generated while relation map must be created
<h2>Tree Map</h2> manually</li>
<p>Shows hierarchical map of notes:</p> <li>relation map is a type of note while a link map is just virtual visualization</li>
<p> </ul>
<img src="Note Map (Link map, Tree m.png">
</p>
<h2>Dedicated note type</h2>
<p>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&nbsp;<a href="#root/_help_bdUJEHsAPYQR">Note Map</a>&nbsp;for
more information.</p>
<h2>See also</h2>
<p><a href="#root/_help_iRwzGnHPzonm">Relation map</a> is a similar concept,
with some differences:</p>
<ul>
<li>note map is automatically generated while relation map must be created
manually</li>
<li>relation map is a type of note while a link map is just virtual visualization</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,49 +1,34 @@
<html> <h2>Understanding the source code of the different notes</h2>
<p>Internally, the structure of the content of each note is different based
<head> on the&nbsp;<a class="reference-link" href="#root/_help_KSZ04uQ2D1St">Note Types</a>.</p>
<meta charset="utf-8"> <p>For example:</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <ul>
<link rel="stylesheet" href="../../style.css"> <li><a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes&nbsp;are
<base target="_parent"> represented internally as HTML, using the&nbsp;<a class="reference-link"
<title data-trilium-title>Note source</title> href="#root/_help_MI26XDLSAlCD">CKEditor</a>&nbsp;representation. Note
</head> that due to the custom plugins, some HTML elements are specific to Trilium
only, for example the admonitions.</li>
<body> <li><a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;notes&nbsp;are
<div class="content"> plain text and are represented internally as-is.</li>
<h1 data-trilium-h1>Note source</h1> <li><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>&nbsp;notes
contain only minimal information (viewport, zoom) as a JSON.</li>
<div class="ck-content"> <li><a class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a>&nbsp;notes
<h2>Understanding the source code of the different notes</h2> are represented as JSON, with Trilium's own information alongside with&nbsp;
<p>Internally, the structure of the content of each note is different based <a
on the&nbsp;<a class="reference-link" href="#root/_help_KSZ04uQ2D1St">Note Types</a>.</p> class="reference-link" href="#root/_help_H0mM1lTxF9JI">Excalidraw</a>'s internal JSON representation format.</li>
<p>For example:</p> <li><a class="reference-link" href="#root/_help_gBbsAeiuUxI5">Mind Map</a>&nbsp;notes
<ul> are represented as JSON, with the internal format of&nbsp;<a class="reference-link"
<li><a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes&nbsp;are href="#root/_help_N4IDkixaDG9C">MindElixir</a>.</li>
represented internally as HTML, using the&nbsp;<a class="reference-link" </ul>
href="#root/_help_MI26XDLSAlCD">CKEditor</a>&nbsp;representation. Note <p>Note that some information is also stored as&nbsp;<a class="reference-link"
that due to the custom plugins, some HTML elements are specific to Trilium href="#root/_help_0vhv7lsOLy82">Attachments</a>. For example&nbsp;<a class="reference-link"
only, for example the admonitions.</li> href="#root/_help_grjYqerjn243">Canvas</a>&nbsp;notes use the attachments
<li><a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;notes&nbsp;are feature to store the custom libraries, and alongside with&nbsp;<a class="reference-link"
plain text and are represented internally as-is.</li> href="#root/_help_gBbsAeiuUxI5">Mind Map</a>&nbsp;and other similar note
<li><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>&nbsp;notes types it stores an SVG representation of the content for use in other features
contain only minimal information (viewport, zoom) as a JSON.</li> such as including in other notes, shared notes, etc.</p>
<li><a class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a>&nbsp;notes <p>Here's part of the HTML representation of this note, as it's stored in
are represented as JSON, with Trilium's own information alongside with&nbsp; the database (but prettified).</p><pre><code class="language-text-x-trilium-auto">&lt;h2&gt;
<a
class="reference-link" href="#root/_help_H0mM1lTxF9JI">Excalidraw</a>'s internal JSON representation format.</li>
<li><a class="reference-link" href="#root/_help_gBbsAeiuUxI5">Mind Map</a>&nbsp;notes
are represented as JSON, with the internal format of&nbsp;<a class="reference-link"
href="#root/_help_N4IDkixaDG9C">MindElixir</a>.</li>
</ul>
<p>Note that some information is also stored as&nbsp;<a class="reference-link"
href="#root/_help_0vhv7lsOLy82">Attachments</a>. For example&nbsp;<a class="reference-link"
href="#root/_help_grjYqerjn243">Canvas</a>&nbsp;notes use the attachments
feature to store the custom libraries, and alongside with&nbsp;<a class="reference-link"
href="#root/_help_gBbsAeiuUxI5">Mind Map</a>&nbsp;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.</p>
<p>Here's part of the HTML representation of this note, as it's stored in
the database (but prettified).</p><pre><code class="language-text-x-trilium-auto">&lt;h2&gt;
Understanding the source code of the different notes Understanding the source code of the different notes
&lt;/h2&gt; &lt;/h2&gt;
&lt;p&gt; &lt;p&gt;
@@ -53,36 +38,31 @@
&lt;/a&gt; &lt;/a&gt;
. .
&lt;/p&gt;</code></pre> &lt;/p&gt;</code></pre>
<h2>Viewing the source code</h2> <h2>Viewing the source code</h2>
<p>It is possible to view the source code of a note by pressing the contextual <p>It is possible to view the source code of a note by pressing the contextual
menu in&nbsp;<a class="reference-link" href="#root/_help_8YBEPzcpUgxw">Note buttons</a>&nbsp;and menu in&nbsp;<a class="reference-link" href="#root/_help_8YBEPzcpUgxw">Note buttons</a>&nbsp;and
selecting <em>Note source</em>.</p> selecting <em>Note source</em>.</p>
<p> <p>
<img src="Note source_image.png"> <img src="Note source_image.png">
</p> </p>
<p>The source code will be displayed in a new tab.</p> <p>The source code will be displayed in a new tab.</p>
<p>For some note types, such as text notes, the source code is also formatted <p>For some note types, such as text notes, the source code is also formatted
in order to be more easily readable.</p> in order to be more easily readable.</p>
<h2>Modifying the source code</h2> <h2>Modifying the source code</h2>
<p>It is possible to modify the source code of a note directly, however not <p>It is possible to modify the source code of a note directly, however not
via the <em>Note source</em> functionality.&nbsp;</p> via the <em>Note source</em> functionality.&nbsp;</p>
<p>To do so:</p> <p>To do so:</p>
<ol> <ol>
<li>Change the note type from the real note type (e.g. Canvas, Geo Type) to <li>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.</li> Code (plain text) or the corresponding format such as JSON or HTML.</li>
<li>Confirm the warning about changing the note type.</li> <li>Confirm the warning about changing the note type.</li>
<li>The source code will appear, make the necessary modifications.</li> <li>The source code will appear, make the necessary modifications.</li>
<li>Change the note type back to the real note type.</li> <li>Change the note type back to the real note type.</li>
</ol> </ol>
<aside class="admonition warning"> <aside class="admonition warning">
<p>Depending on the changes made, there is a risk that the note will not <p>Depending on the changes made, there is a risk that the note will not
render properly. It's best to save a revision before making any big changes.</p> render properly. It's best to save a revision before making any big changes.</p>
<p>If the note does not render properly, modify the source code again or <p>If the note does not render properly, modify the source code again or
revert to a prior revision. Since the error handling for unexpected changes revert to a prior revision. Since the error handling for unexpected changes
might not always be perfect, it be required to refresh the application.</p> might not always be perfect, it be required to refresh the application.</p>
</aside> </aside>
</div>
</div>
</body>
</html>

View File

@@ -1,212 +1,192 @@
<html> <p>Trilium allows you to share selected notes as <strong>publicly accessible</strong> read-only
documents. This feature is particularly useful for publishing content directly
<head> from your Trilium notes, making it accessible to others online.</p>
<meta charset="utf-8"> <h2>Prerequisites</h2>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>To use the sharing feature, you must have a&nbsp;<a class="reference-link"
<link rel="stylesheet" href="../../style.css"> href="#root/_help_WOcw2SLH6tbX">Server Installation</a>&nbsp;of Trilium.
<base target="_parent"> This is necessary because the notes will be hosted from the server.</p>
<title data-trilium-title>Sharing</title> <h2>How to Share a Note</h2>
</head> <ol>
<li>
<body> <p><strong>Enable Sharing</strong>: To share a note, toggle the <code>Shared</code> switch
<div class="content"> within the note's interface. Once sharing is enabled, an URL will appear,
<h1 data-trilium-h1>Sharing</h1> which you can click to access the shared note.</p>
<p>
<div class="ck-content"> <img src="Sharing_share-single-note.png" alt="Share Note">
<p>Trilium allows you to share selected notes as <strong>publicly accessible</strong> read-only </p>
documents. This feature is particularly useful for publishing content directly </li>
from your Trilium notes, making it accessible to others online.</p> <li>
<h2>Prerequisites</h2> <p><strong>Access the Shared Note</strong>: The link provided will open the
<p>To use the sharing feature, you must have a&nbsp;<a class="reference-link" note in your browser. If your server is not configured with a public IP,
href="#root/_help_WOcw2SLH6tbX">Server Installation</a>&nbsp;of Trilium. the URL will refer to <code>localhost (127.0.0.1)</code>.</p>
This is necessary because the notes will be hosted from the server.</p> <p>
<h2>How to Share a Note</h2> <img src="Sharing_share-single-note-.png" alt="Shared Note Example">
<ol> </p>
<li> </li>
<p><strong>Enable Sharing</strong>: To share a note, toggle the <code>Shared</code> switch </ol>
within the note's interface. Once sharing is enabled, an URL will appear, <h2>Sharing a Note Subtree</h2>
which you can click to access the shared note.</p> <p>When you share a note, you actually share the entire subtree of notes
<p> beneath it. If the note has child notes, they will also be included in
<img src="Sharing_share-single-note.png" alt="Share Note"> the shared content. For example, sharing the "Formatting" subtree will
</p> display a page with basic navigation for exploring all the notes within
</li> that subtree.</p>
<li> <p>
<p><strong>Access the Shared Note</strong>: The link provided will open the <img src="Sharing_share-multiple-not.png" alt="Shared Subtree Example">
note in your browser. If your server is not configured with a public IP, </p>
the URL will refer to <code>localhost (127.0.0.1)</code>.</p> <h2>Viewing All Shared Notes</h2>
<p> <p>You can view a list of all shared notes by clicking on "Show Shared Notes
<img src="Sharing_share-single-note-.png" alt="Shared Note Example"> Subtree." This allows you to manage and navigate through all the notes
</p> you have made public.</p>
</li> <h2>Security Considerations</h2>
</ol> <p>Shared notes are published on the open internet and can be accessed by
<h2>Sharing a Note Subtree</h2> anyone with the URL. The URL's randomness does not provide security, so
<p>When you share a note, you actually share the entire subtree of notes it is crucial not to share sensitive information through this feature.</p>
beneath it. If the note has child notes, they will also be included in <h3>Password Protection</h3>
the shared content. For example, sharing the "Formatting" subtree will <p>To protect shared notes with a username and password, you can use the <code>#shareCredentials</code> attribute.
display a page with basic navigation for exploring all the notes within Add this label to the note with the format <code>#shareCredentials="username:password"</code>.
that subtree.</p> To protect an entire subtree, make sure the label is <a href="#root/_help_bwZpz2ajCEwO">inheritable</a>.</p>
<p> <h2>Advanced Sharing Options</h2>
<img src="Sharing_share-multiple-not.png" alt="Shared Subtree Example"> <h3>Customizing the Appearance of Shared Notes</h3>
</p> <p>The default shared page is basic in design, but you can customize it using
<h2>Viewing All Shared Notes</h2> your own CSS:</p>
<p>You can view a list of all shared notes by clicking on "Show Shared Notes <ul>
Subtree." This allows you to manage and navigate through all the notes <li><strong>Custom CSS</strong>: Link a CSS&nbsp;<a class="reference-link"
you have made public.</p> href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note to the shared page by
<h2>Security Considerations</h2> adding a <code>~shareCss</code> relation to the note. If you want this style
<p>Shared notes are published on the open internet and can be accessed by to apply to the entire subtree, make the label inheritable. You can hide
anyone with the URL. The URL's randomness does not provide security, so the CSS code note from the tree navigation by adding the <code>#shareHiddenFromTree</code> label.</li>
it is crucial not to share sensitive information through this feature.</p> <li><strong>Omitting Default CSS</strong>: For extensive styling changes,
<h3>Password Protection</h3> use the <code>#shareOmitDefaultCss</code> label to avoid conflicts with Trilium's
<p>To protect shared notes with a username and password, you can use the <code>#shareCredentials</code> attribute. <a
Add this label to the note with the format <code>#shareCredentials="username:password"</code>. href="#root/_help_Wy267RK4M69c">default stylesheet</a>.</li>
To protect an entire subtree, make sure the label is <a href="#root/_help_bwZpz2ajCEwO">inheritable</a>.</p> </ul>
<h2>Advanced Sharing Options</h2> <h3>Adding JavaScript</h3>
<h3>Customizing the Appearance of Shared Notes</h3> <p>You can inject custom JavaScript into the shared note using the <code>~shareJs</code> relation.
<p>The default shared page is basic in design, but you can customize it using This allows you to access note attributes or traverse the note tree using
your own CSS:</p> the <code>fetchNote()</code> API, which retrieves note data based on its
<ul> ID.</p>
<li><strong>Custom CSS</strong>: Link a CSS&nbsp;<a class="reference-link" <p>Example:</p><pre><code class="language-application-javascript-env-backend">const currentNote = await fetchNote();
href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note to the shared page by
adding a <code>~shareCss</code> 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 <code>#shareHiddenFromTree</code> label.</li>
<li><strong>Omitting Default CSS</strong>: For extensive styling changes,
use the <code>#shareOmitDefaultCss</code> label to avoid conflicts with Trilium's
<a
href="#root/_help_Wy267RK4M69c">default stylesheet</a>.</li>
</ul>
<h3>Adding JavaScript</h3>
<p>You can inject custom JavaScript into the shared note using the <code>~shareJs</code> relation.
This allows you to access note attributes or traverse the note tree using
the <code>fetchNote()</code> API, which retrieves note data based on its
ID.</p>
<p>Example:</p><pre><code class="language-application-javascript-env-backend">const currentNote = await fetchNote();
const parentNote = await fetchNote(currentNote.parentNoteIds[0]); const parentNote = await fetchNote(currentNote.parentNoteIds[0]);
for (const attr of parentNote.attributes) { for (const attr of parentNote.attributes) {
console.log(attr.type, attr.name, attr.value); console.log(attr.type, attr.name, attr.value);
}</code></pre> }</code></pre>
<h3>Creating Human-Readable URL Aliases</h3> <h3>Creating Human-Readable URL Aliases</h3>
<p>Shared notes typically have URLs like <code>http://domain.tld/share/knvU8aJy4dJ7</code>, <p>Shared notes typically have URLs like <code>http://domain.tld/share/knvU8aJy4dJ7</code>,
where the last part is the note's ID. You can make these URLs more user-friendly where the last part is the note's ID. You can make these URLs more user-friendly
by adding the <code>#shareAlias</code> label to individual notes (e.g., <code>#shareAlias=highlighting</code>). by adding the <code>#shareAlias</code> label to individual notes (e.g., <code>#shareAlias=highlighting</code>).
This will change the URL to <code>http://domain.tld/share/highlighting</code>.</p> This will change the URL to <code>http://domain.tld/share/highlighting</code>.</p>
<p><strong>Important</strong>:</p> <p><strong>Important</strong>:</p>
<ol> <ol>
<li>Ensure that aliases are unique.</li> <li>Ensure that aliases are unique.</li>
<li>Using slashes (<code>/</code>) within aliases to create subpaths is not <li>Using slashes (<code>/</code>) within aliases to create subpaths is not
supported.</li> supported.</li>
</ol> </ol>
<h3>Viewing and Managing Shared Notes</h3> <h3>Viewing and Managing Shared Notes</h3>
<p>All shared notes are grouped under an automatically managed "Shared Notes" <p>All shared notes are grouped under an automatically managed "Shared Notes"
section. From here, you can view, share, or unshare notes by moving or section. From here, you can view, share, or unshare notes by moving or
cloning them within this section.</p> cloning them within this section.</p>
<p> <p>
<img src="Sharing_shared-list.png" alt="Shared Notes List"> <img src="Sharing_shared-list.png" alt="Shared Notes List">
</p> </p>
<h3>Setting a Custom Favicon</h3> <h3>Setting a Custom Favicon</h3>
<p>To customize the favicon for your shared pages, create a relation <code>~shareFavicon</code> pointing <p>To customize the favicon for your shared pages, create a relation <code>~shareFavicon</code> pointing
to a file note containing the favicon (e.g., in <code>.ico</code> format).</p> to a file note containing the favicon (e.g., in <code>.ico</code> format).</p>
<h3>Sharing a Note as the Root</h3> <h3>Sharing a Note as the Root</h3>
<p>You can designate a specific note or folder as the root of your shared <p>You can designate a specific note or folder as the root of your shared
content by adding the <code>#shareRoot</code> label. This note will be linked content by adding the <code>#shareRoot</code> label. This note will be linked
when visiting <code>[http://domain.tld/share](http://domain/share)</code>, when visiting <code>[http://domain.tld/share](http://domain/share)</code>,
making it easier to use Trilium as a fully-fledged website. Consider combining making it easier to use Trilium as a fully-fledged website. Consider combining
this with the <code>#shareIndex</code> label, which will display a list of this with the <code>#shareIndex</code> label, which will display a list of
all shared notes.</p> all shared notes.</p>
<h2>Limitations</h2> <h2>Limitations</h2>
<p>While the sharing feature is powerful, it has some limitations:</p> <p>While the sharing feature is powerful, it has some limitations:</p>
<ul> <ul>
<li><strong>No Relation Map Support</strong> <li><strong>No Relation Map Support</strong>
</li> </li>
<li><strong>Book Notes</strong>: Only show a list of child notes.</li> <li><strong>Book Notes</strong>: Only show a list of child notes.</li>
<li><strong>Code Notes</strong>: No syntax highlighting.</li> <li><strong>Code Notes</strong>: No syntax highlighting.</li>
<li><strong>Static Note Tree</strong> <li><strong>Static Note Tree</strong>
</li> </li>
<li><strong>Protected Notes</strong>: Cannot be shared.</li> <li><strong>Protected Notes</strong>: Cannot be shared.</li>
<li><strong>Include Notes</strong>: Not supported.</li> <li><strong>Include Notes</strong>: Not supported.</li>
</ul> </ul>
<p>Some of these limitations may be addressed in future updates.</p> <p>Some of these limitations may be addressed in future updates.</p>
<h2>Attribute reference</h2> <h2>Attribute reference</h2>
<figure class="table"> <figure class="table">
<table> <table>
<thead> <thead>
<tr> <tr>
<th>Attribute</th> <th>Attribute</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td><code>shareHiddenFromTree</code> <td><code>shareHiddenFromTree</code>
</td> </td>
<td>this note is hidden from left navigation tree, but still accessible with <td>this note is hidden from left navigation tree, but still accessible with
its URL</td> its URL</td>
</tr> </tr>
<tr> <tr>
<td><code>shareExternalLink</code> <td><code>shareExternalLink</code>
</td> </td>
<td>note will act as a link to an external website in the share tree</td> <td>note will act as a link to an external website in the share tree</td>
</tr> </tr>
<tr> <tr>
<td><code>shareAlias</code> <td><code>shareAlias</code>
</td> </td>
<td>define an alias using which the note will be available under <code>https://your_trilium_host/share/[your_alias]</code> <td>define an alias using which the note will be available under <code>https://your_trilium_host/share/[your_alias]</code>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><code>shareOmitDefaultCss</code> <td><code>shareOmitDefaultCss</code>
</td> </td>
<td>default share page CSS will be omitted. Use when you make extensive styling <td>default share page CSS will be omitted. Use when you make extensive styling
changes.</td> changes.</td>
</tr> </tr>
<tr> <tr>
<td><code>shareRoot</code> <td><code>shareRoot</code>
</td> </td>
<td>marks note which is served on /share root.</td> <td>marks note which is served on /share root.</td>
</tr> </tr>
<tr> <tr>
<td><code>shareDescription</code> <td><code>shareDescription</code>
</td> </td>
<td>define text to be added to the HTML meta tag for description</td> <td>define text to be added to the HTML meta tag for description</td>
</tr> </tr>
<tr> <tr>
<td><code>shareRaw</code> <td><code>shareRaw</code>
</td> </td>
<td>Note will be served in its raw format, without HTML wrapper. See also&nbsp; <td>Note will be served in its raw format, without HTML wrapper. See also&nbsp;
<a <a
class="reference-link" href="#root/_help_Qjt68inQ2bRj">Serving directly the content of a note</a>&nbsp;for an alternative method class="reference-link" href="#root/_help_Qjt68inQ2bRj">Serving directly the content of a note</a>&nbsp;for an alternative method
without setting an attribute.</td> without setting an attribute.</td>
</tr> </tr>
<tr> <tr>
<td><code>shareDisallowRobotIndexing</code> <td><code>shareDisallowRobotIndexing</code>
</td> </td>
<td> <td>
<p>Indicates to web crawlers that the page should not be indexed of this <p>Indicates to web crawlers that the page should not be indexed of this
note by:</p> note by:</p>
<ul> <ul>
<li>Setting the <code>X-Robots-Tag: noindex</code> HTTP header.</li> <li>Setting the <code>X-Robots-Tag: noindex</code> HTTP header.</li>
<li>Setting the <code>noindex, follow</code> meta tag.</li> <li>Setting the <code>noindex, follow</code> meta tag.</li>
</ul> </ul>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><code>shareCredentials</code> <td><code>shareCredentials</code>
</td> </td>
<td>require credentials to access this shared note. Value is expected to be <td>require credentials to access this shared note. Value is expected to be
in format <code>username:password</code>. Don't forget to make this inheritable in format <code>username:password</code>. Don't forget to make this inheritable
to apply to child-notes/images.</td> to apply to child-notes/images.</td>
</tr> </tr>
<tr> <tr>
<td><code>shareIndex</code> <td><code>shareIndex</code>
</td> </td>
<td>Note with this label will list all roots of shared notes.</td> <td>Note with this label will list all roots of shared notes.</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</figure> </figure>
</div>
</div>
</body>
</html>

View File

@@ -1,52 +1,32 @@
<html> <p>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
<head> a script or downloaded by the user.</p>
<meta charset="utf-8"> <table>
<meta name="viewport" content="width=device-width, initial-scale=1"> <thead>
<link rel="stylesheet" href="../../../style.css"> <tr>
<base target="_parent"> <th>A note displayed as a web page (HTML)</th>
<title data-trilium-title>Serving directly the content of a note</title> <th>A note displayed as a raw format</th>
</head> </tr>
</thead>
<body> <tbody>
<div class="content"> <tr>
<h1 data-trilium-h1>Serving directly the content of a note</h1> <td>
<img src="1_Serving directly the conte.png">
<div class="ck-content"> </td>
<p>When accessing a shared note, Trilium will render it as a web page. Sometimes <td>
it's desirable to serve the content directly so that it can be used in <img src="Serving directly the conte.png">
a script or downloaded by the user.</p> </td>
<table> </tr>
<thead> </tbody>
<tr> </table>
<th>A note displayed as a web page (HTML)</th>
<th>A note displayed as a raw format</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="1_Serving directly the conte.png">
</td>
<td>
<img src="Serving directly the conte.png">
</td>
</tr>
</tbody>
</table>
<h2>By adding an attribute to the note</h2> <h2>By adding an attribute to the note</h2>
<p>Simply add the <code>#shareRaw</code> attribute and the note will always <p>Simply add the <code>#shareRaw</code> attribute and the note will always
be rendered <em>raw</em> when accessed from the share URL.</p> be rendered <em>raw</em> when accessed from the share URL.</p>
<h2>By altering the URL</h2> <h2>By altering the URL</h2>
<p>Append <code>?raw</code> to the URL to display a note in its raw format <p>Append <code>?raw</code> to the URL to display a note in its raw format
regardless of whether the <code>#shareRaw</code> attribute is added on the regardless of whether the <code>#shareRaw</code> attribute is added on the
note.</p> note.</p>
<p> <p>
<img src="Serving directly the conte.png"> <img src="Serving directly the conte.png">
</p> </p>
</div>
</div>
</body>
</html>

View File

@@ -1,27 +1,7 @@
<html> <p>One core aspect of Trilium that allows it to have support for multiple&nbsp;
<a
<head> href="#root/_help_KSZ04uQ2D1St">Note Types</a>&nbsp;is the fact that it makes use of various off-the-shelf
<meta charset="utf-8"> or reusable libraries.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>The sub-pages showcase some of the technologies used, for a better understanding
<link rel="stylesheet" href="../../style.css"> of how Trilium works but also to credit the developers of that particular
<base target="_parent"> technology.</p>
<title data-trilium-title>Technologies used</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Technologies used</h1>
<div class="ck-content">
<p>One core aspect of Trilium that allows it to have support for multiple&nbsp;
<a
href="#root/_help_KSZ04uQ2D1St">Note Types</a>&nbsp;is the fact that it makes use of various off-the-shelf
or reusable libraries.</p>
<p>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.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,65 +1,45 @@
<html> <h2>Editor core</h2>
<p>The CKEditor is the WYSIWYG (standing for What You See Is What You Get)
<head> editor behind&nbsp;<a href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes.</p>
<meta charset="utf-8"> <p>Their website is <a href="https://ckeditor.com/">ckeditor.com</a>.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>CKEditor by itself is a commercial product, but the core is open-source.
<link rel="stylesheet" href="../../../style.css"> As described in <a href="https://ckeditor.com/docs/ckeditor5/latest/features/index.html">its documentation</a>,
<base target="_parent"> the editor supports quite a large number of features. Do note that not
<title data-trilium-title>CKEditor</title> all the features are enabled in Trilium.</p>
</head> <h2>Premium features</h2>
<p>Some features are marked as premium in the CKEditor feature set. This
<body> means that they cannot be used without a license.</p>
<div class="content"> <p>Trilium cannot benefit from any of these premium features as they require
<h1 data-trilium-h1>CKEditor</h1> 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 <a href="https://ckeditor.com/docs/ckeditor5/latest/features/slash-commands.html">Slash commands</a>.</p>
<div class="ck-content"> <h2>Plugins</h2>
<h2>Editor core</h2> <p>The CKEditor ecosystem is quite extensible, in the sense that custom plugins
<p>The CKEditor is the WYSIWYG (standing for What You See Is What You Get) can be written to extend the functionality of the editor beyond its original
editor behind&nbsp;<a href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes.</p> scope.</p>
<p>Their website is <a href="https://ckeditor.com/">ckeditor.com</a>.</p> <p>Trilium makes use of such features:</p>
<p>CKEditor by itself is a commercial product, but the core is open-source. <ul>
As described in <a href="https://ckeditor.com/docs/ckeditor5/latest/features/index.html">its documentation</a>, <li>The math feature is added by a version of <a href="https://github.com/isaul32/ckeditor5-math">isaul32/ckeditor5-math: Math feature for CKEditor 5.</a> modified
the editor supports quite a large number of features. Do note that not by us to fit our needs.</li>
all the features are enabled in Trilium.</p> <li>We also make use of modified upstream plugins such as <a href="https://github.com/ckeditor/ckeditor5-mermaid">ckeditor/ckeditor5-mermaid</a> to
<h2>Premium features</h2> allow inline Mermaid code.</li>
<p>Some features are marked as premium in the CKEditor feature set. This <li><a href="https://github.com/mlewand/ckeditor5-keyboard-marker">mlewand/ckeditor5-keyboard-marker: Plugin adds support for the keyboard input element (<code>&lt;kbd&gt;</code>) to CKEditor 5.</a>
means that they cannot be used without a license.</p> </li>
<p>Trilium cannot benefit from any of these premium features as they require <li>A modified version of <a href="https://github.com/ThomasAitken/ckeditor5-footnotes">ThomasAitken/ckeditor5-footnotes: Footnotes plugin for CKEditor5</a> to
a commercial license, however we are in discussions with the CKEditor team allow footnotes.</li>
to allow us to use a subset of these premium features such as <a href="https://ckeditor.com/docs/ckeditor5/latest/features/slash-commands.html">Slash commands</a>.</p> </ul>
<h2>Plugins</h2> <p>Apart from that, Trilium also has its own set of specific plugins such
<p>The CKEditor ecosystem is quite extensible, in the sense that custom plugins as:</p>
can be written to extend the functionality of the editor beyond its original <ul>
scope.</p> <li><a class="reference-link" href="#root/_help_2x0ZAX9ePtzV">Cut to subnote</a>
<p>Trilium makes use of such features:</p> </li>
<ul> <li><a class="reference-link" href="#root/_help_nBAXQFj20hS1">Include Note</a>
<li>The math feature is added by a version of <a href="https://github.com/isaul32/ckeditor5-math">isaul32/ckeditor5-math: Math feature for CKEditor 5.</a> modified </li>
by us to fit our needs.</li> <li>Mentions, for linking pages.</li>
<li>We also make use of modified upstream plugins such as <a href="https://github.com/ckeditor/ckeditor5-mermaid">ckeditor/ckeditor5-mermaid</a> to <li><a class="reference-link" href="#root/_help_Oau6X9rCuegd">Markdown</a>
allow inline Mermaid code.</li> </li>
<li><a href="https://github.com/mlewand/ckeditor5-keyboard-marker">mlewand/ckeditor5-keyboard-marker: Plugin adds support for the keyboard input element (<code>&lt;kbd&gt;</code>) to CKEditor 5.</a> <li><a href="#root/_help_QEAPj01N5f7w">Reference links</a>
</li> </li>
<li>A modified version of <a href="https://github.com/ThomasAitken/ckeditor5-footnotes">ThomasAitken/ckeditor5-footnotes: Footnotes plugin for CKEditor5</a> to <li><a href="#root/_help_NwBbFdNZ9h7O">Admonitions</a>, we ended up creating
allow footnotes.</li> our own plugin but <a href="https://github.com/aarkue/ckeditor5-admonition">aarkue/ckeditor5-admonition</a> was
</ul> a good inspiration (including the toolbar icon).</li>
<p>Apart from that, Trilium also has its own set of specific plugins such </ul>
as:</p>
<ul>
<li><a class="reference-link" href="#root/_help_2x0ZAX9ePtzV">Cut to subnote</a>
</li>
<li><a class="reference-link" href="#root/_help_nBAXQFj20hS1">Include Note</a>
</li>
<li>Mentions, for linking pages.</li>
<li><a class="reference-link" href="#root/_help_Oau6X9rCuegd">Markdown</a>
</li>
<li><a href="#root/_help_QEAPj01N5f7w">Reference links</a>
</li>
<li><a href="#root/_help_NwBbFdNZ9h7O">Admonitions</a>, we ended up creating
our own plugin but <a href="https://github.com/aarkue/ckeditor5-admonition">aarkue/ckeditor5-admonition</a> was
a good inspiration (including the toolbar icon).</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,25 +1,5 @@
<html> <p><a href="https://excalidraw.com/">Excalidraw</a> is the technology behind
the&nbsp;<a href="#root/_help_grjYqerjn243">Canvas</a>&nbsp;notes. The
<head> source code of the library is available on <a href="https://github.com/excalidraw/excalidraw">GitHub</a>.</p>
<meta charset="utf-8"> <p>We are using an unmodified version of it, so it shares the same <a href="https://github.com/excalidraw/excalidraw/issues">issues</a> as
<meta name="viewport" content="width=device-width, initial-scale=1"> the original.</p>
<link rel="stylesheet" href="../../../style.css">
<base target="_parent">
<title data-trilium-title>Excalidraw</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Excalidraw</h1>
<div class="ck-content">
<p><a href="https://excalidraw.com/">Excalidraw</a> is the technology behind
the&nbsp;<a href="#root/_help_grjYqerjn243">Canvas</a>&nbsp;notes. The
source code of the library is available on <a href="https://github.com/excalidraw/excalidraw">GitHub</a>.</p>
<p>We are using an unmodified version of it, so it shares the same <a href="https://github.com/excalidraw/excalidraw/issues">issues</a> as
the original.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,28 +1,8 @@
<html> <p>Leaflet is the library behind&nbsp;<a href="#root/_help_81SGnPGMk7Xc">Geo map</a>&nbsp;notes.</p>
<h2>Plugins</h2>
<head> <p>Leaflet is also highly customizable via external plugins.</p>
<meta charset="utf-8"> <p>Currently we use:</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <ul>
<link rel="stylesheet" href="../../../style.css"> <li><a href="https://github.com/mpetazzoni/leaflet-gpx">mpetazzoni/leaflet-gpx: A GPX track plugin for Leaflet.js</a>
<base target="_parent"> </li>
<title data-trilium-title>Leaflet</title> </ul>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Leaflet</h1>
<div class="ck-content">
<p>Leaflet is the library behind&nbsp;<a href="#root/_help_81SGnPGMk7Xc">Geo map</a>&nbsp;notes.</p>
<h2>Plugins</h2>
<p>Leaflet is also highly customizable via external plugins.</p>
<p>Currently we use:</p>
<ul>
<li><a href="https://github.com/mpetazzoni/leaflet-gpx">mpetazzoni/leaflet-gpx: A GPX track plugin for Leaflet.js</a>
</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,29 +1,9 @@
<html> <p>MindElixir is the library we are using for the&nbsp;<a href="#root/_help_gBbsAeiuUxI5">Mind Map</a>&nbsp;note
types.</p>
<head> <p>The main library is available on <a href="https://github.com/SSShooter/mind-elixir-core/issues">GitHub as mind-elixir-core</a>.</p>
<meta charset="utf-8"> <p>The library is embedded as-is without additional modifications.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>Issues with its functionality should generally be reported <a href="https://github.com/ssshooter/mind-elixir-core">upstream</a>.</p>
<link rel="stylesheet" href="../../../style.css"> <h2>Plugins</h2>
<base target="_parent"> <p>MindElixir supports plugins, and one such plugin we are making use of
<title data-trilium-title>MindElixir</title> is <a href="https://github.com/SSShooter/node-menu">SSShooter/node-menu: A node menu plugin of mind-elixir</a>,
</head> which allows editing the fonts, colors, links of nodes.</p>
<body>
<div class="content">
<h1 data-trilium-h1>MindElixir</h1>
<div class="ck-content">
<p>MindElixir is the library we are using for the&nbsp;<a href="#root/_help_gBbsAeiuUxI5">Mind Map</a>&nbsp;note
types.</p>
<p>The main library is available on <a href="https://github.com/SSShooter/mind-elixir-core/issues">GitHub as mind-elixir-core</a>.</p>
<p>The library is embedded as-is without additional modifications.</p>
<p>Issues with its functionality should generally be reported <a href="https://github.com/ssshooter/mind-elixir-core">upstream</a>.</p>
<h2>Plugins</h2>
<p>MindElixir supports plugins, and one such plugin we are making use of
is <a href="https://github.com/SSShooter/node-menu">SSShooter/node-menu: A node menu plugin of mind-elixir</a>,
which allows editing the fonts, colors, links of nodes.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,74 +1,54 @@
<html> <p>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
<head> main effects:</p>
<meta charset="utf-8"> <ol>
<meta name="viewport" content="width=device-width, initial-scale=1"> <li><strong>Attribute Inheritance</strong>: All attributes from the template
<link rel="stylesheet" href="../../style.css"> note are <a href="#root/_help_bwZpz2ajCEwO">inherited</a> by the instance
<base target="_parent"> notes. Even attributes with <code>#isInheritable=false</code> are inherited
<title data-trilium-title>Templates</title> by the instance notes, although only inheritable attributes are further
</head> inherited by the children of the instance notes.</li>
<li><strong>Content Duplication</strong>: The content of the template note
<body> is copied to the instance note, provided the instance note is empty at
<div class="content"> the time of template assignment.</li>
<h1 data-trilium-h1>Templates</h1> <li><strong>Child Note Duplication</strong>: All child notes of the template
are deep-duplicated to the instance note.</li>
<div class="ck-content"> </ol>
<p>A template in Trilium serves as a predefined structure for other notes, <h2>Example</h2>
referred to as instance notes. Assigning a template to a note brings three <p>A typical example would be a "Book" template note, which might include:</p>
main effects:</p> <ul>
<ol> <li><strong>Promoted Attributes</strong>: Such as publication year, author,
<li><strong>Attribute Inheritance</strong>: All attributes from the template etc. (see <a href="#root/_help_OFXdgB2nNk1F">promoted attributes</a>).</li>
note are <a href="#root/_help_bwZpz2ajCEwO">inherited</a> by the instance <li><strong>Outline</strong>: An outline for a book review, including sections
notes. Even attributes with <code>#isInheritable=false</code> are inherited like themes, conclusion, etc.</li>
by the instance notes, although only inheritable attributes are further <li><strong>Child Notes</strong>: Additional notes for highlights, summary,
inherited by the children of the instance notes.</li> etc.</li>
<li><strong>Content Duplication</strong>: The content of the template note </ul>
is copied to the instance note, provided the instance note is empty at <p>
the time of template assignment.</li> <img src="Templates_template.png" alt="Template Example">
<li><strong>Child Note Duplication</strong>: All child notes of the template </p>
are deep-duplicated to the instance note.</li> <h2>Instance Note</h2>
</ol> <p>An instance note is a note related to a template note. This relationship
<h2>Example</h2> means the instance note's content is initialized from the template, and
<p>A typical example would be a "Book" template note, which might include:</p> all attributes from the template are inherited.</p>
<ul> <p>To create an instance note through the UI:</p>
<li><strong>Promoted Attributes</strong>: Such as publication year, author, <p>
etc. (see <a href="#root/_help_OFXdgB2nNk1F">promoted attributes</a>).</li> <img src="Templates_template-create-.png" alt="show child note templates">
<li><strong>Outline</strong>: An outline for a book review, including sections </p>
like themes, conclusion, etc.</li> <p>For the template to appear in the menu, the template note must have the <code>#template</code> label.
<li><strong>Child Notes</strong>: Additional notes for highlights, summary, Do not confuse this with the <code>~template</code> relation, which links
etc.</li> the instance note to the template note. If you use <a href="#root/_help_9sRHySam5fXb">workspaces</a>,
</ul> you can also mark templates with <code>#workspaceTemplate</code> to display
<p> them only in the workspace.</p>
<img src="Templates_template.png" alt="Template Example"> <p>Templates can also be added or changed after note creation by creating
</p> a <code>~template</code> relation pointing to the desired template note.</p>
<h2>Instance Note</h2> <h2>Additional Notes</h2>
<p>An instance note is a note related to a template note. This relationship <p>From a visual perspective, templates can define <code>#iconClass</code> and <code>#cssClass</code> attributes,
means the instance note's content is initialized from the template, and allowing all instance notes (e.g., books) to display a specific icon and
all attributes from the template are inherited.</p> CSS style.</p>
<p>To create an instance note through the UI:</p> <p>Explore the concept further in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>,
<p> including examples like the <a href="#root/_help_iRwzGnHPzonm">Relation Map</a>,
<img src="Templates_template-create-.png" alt="show child note templates"> <a
</p> href="#root/_help_xYjQUYhpbUEW">Task Manager</a>, and <a href="#root/_help_l0tKav7yLHGF">Day Notes</a>.</p>
<p>For the template to appear in the menu, the template note must have the <code>#template</code> label. <p>Additionally, see <a href="#root/_help_47ZrP6FNuoG8">default note title</a> for
Do not confuse this with the <code>~template</code> relation, which links creating title templates. Note templates and title templates can be combined
the instance note to the template note. If you use <a href="#root/_help_9sRHySam5fXb">workspaces</a>, by creating a <code>#titleTemplate</code> for a template note.</p>
you can also mark templates with <code>#workspaceTemplate</code> to display
them only in the workspace.</p>
<p>Templates can also be added or changed after note creation by creating
a <code>~template</code> relation pointing to the desired template note.</p>
<h2>Additional Notes</h2>
<p>From a visual perspective, templates can define <code>#iconClass</code> and <code>#cssClass</code> attributes,
allowing all instance notes (e.g., books) to display a specific icon and
CSS style.</p>
<p>Explore the concept further in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>,
including examples like the <a href="#root/_help_iRwzGnHPzonm">Relation Map</a>,
<a
href="#root/_help_xYjQUYhpbUEW">Task Manager</a>, and <a href="#root/_help_l0tKav7yLHGF">Day Notes</a>.</p>
<p>Additionally, see <a href="#root/_help_47ZrP6FNuoG8">default note title</a> for
creating title templates. Note templates and title templates can be combined
by creating a <code>#titleTemplate</code> for a template note.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,36 +1,16 @@
<html> <p>Trilium can import ENEX files which are used by Evernote for backup/export.
One ENEX file represents content (notes and resources) of one notebook.</p>
<head> <h2>Export ENEX from Evernote</h2>
<meta charset="utf-8"> <p>To export ENEX file, you need to have a <em>legacy</em> desktop version
<meta name="viewport" content="width=device-width, initial-scale=1"> of Evernote (i.e. not web/mobile). Right click on notebook and select export
<link rel="stylesheet" href="../../../style.css"> and follow the wizard.</p>
<base target="_parent"> <h2>Import ENEX in Trilium</h2>
<title data-trilium-title>Evernote</title> <p>Once you have ENEX file, you can import it to Trilium. Right click on
</head> some note (to which you want to import the file), click on "Import" and
select the ENEX file.</p>
<body> <p>After importing the ENEX file, go over the imported notes and resources
<div class="content"> to be sure the import went well, and you didn't lose any data.</p>
<h1 data-trilium-h1>Evernote</h1> <h2>Limitations</h2>
<p>All resources (except for images) are created as note's attachments.</p>
<div class="ck-content"> <p>HTML inside ENEX files is not exactly valid so some formatting maybe broken
<p>Trilium can import ENEX files which are used by Evernote for backup/export. or lost. You can report major problems into <a href="https://github.com/TriliumNext/Notes/issues">Trilium issue tracker</a>.</p>
One ENEX file represents content (notes and resources) of one notebook.</p>
<h2>Export ENEX from Evernote</h2>
<p>To export ENEX file, you need to have a <em>legacy</em> desktop version
of Evernote (i.e. not web/mobile). Right click on notebook and select export
and follow the wizard.</p>
<h2>Import ENEX in Trilium</h2>
<p>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.</p>
<p>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.</p>
<h2>Limitations</h2>
<p>All resources (except for images) are created as note's attachments.</p>
<p>HTML inside ENEX files is not exactly valid so some formatting maybe broken
or lost. You can report major problems into <a href="https://github.com/TriliumNext/Notes/issues">Trilium issue tracker</a>.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,80 +1,60 @@
<html> <p>Trilium supports Markdown for both import and export, while trying to
keep compatibility as high as possible.</p>
<head> <h2>Import</h2>
<meta charset="utf-8"> <h3>Clipboard import</h3>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>If you want to import just a chunk of markdown from clipboard, you can
<link rel="stylesheet" href="../../../style.css"> do it from editor block menu:</p>
<base target="_parent"> <p>
<title data-trilium-title>Markdown</title> <img src="Markdown_markdown-inline-i.gif">
</head> </p>
<h3>File import</h3>
<body> <p>You can also import Markdown files from files:</p>
<div class="content"> <ul>
<h1 data-trilium-h1>Markdown</h1> <li>single markdown file (with .md extension)</li>
<li>whole tree of markdown files (packaged into <a href="https://en.wikipedia.org/wiki/Tar_(computing)">.zip</a> archive)
<div class="ck-content"> <ul>
<p>Trilium supports Markdown for both import and export, while trying to <li>Markdown files need to be packaged into ZIP archive because browser can't
keep compatibility as high as possible.</p> read directories, only single files.</li>
<h2>Import</h2> <li>You can use e.g. <a href="https://www.7-zip.org">7-zip</a> to package directory
<h3>Clipboard import</h3> of markdown files into the ZIP file</li>
<p>If you want to import just a chunk of markdown from clipboard, you can </ul>
do it from editor block menu:</p> </li>
<p> </ul>
<img src="Markdown_markdown-inline-i.gif"> <p>[[gifs/markdown-file-import.gif]]</p>
</p> <p>
<h3>File import</h3> <img src="Markdown_markdown-file-imp.gif">
<p>You can also import Markdown files from files:</p> </p>
<ul> <h2>Export</h2>
<li>single markdown file (with .md extension)</li> <h3>Subtree export</h3>
<li>whole tree of markdown files (packaged into <a href="https://en.wikipedia.org/wiki/Tar_(computing)">.zip</a> archive) <p>You can export whole subtree to ZIP archive which will have directory
<ul> structured modelled after subtree structure:</p>
<li>Markdown files need to be packaged into ZIP archive because browser can't <p>
read directories, only single files.</li> <img src="Markdown_markdown-export-s.gif">
<li>You can use e.g. <a href="https://www.7-zip.org">7-zip</a> to package directory </p>
of markdown files into the ZIP file</li> <h3>Single note export</h3>
</ul> <p>If you want to export just single note without its subtree, you can do
</li> it from Note actions menu:</p>
</ul> <p>
<p>[[gifs/markdown-file-import.gif]]</p> <img src="Markdown_markdown-export-n.gif">
<p> </p>
<img src="Markdown_markdown-file-imp.gif"> <h3>Exporting protected notes</h3>
</p> <p>If you want to export protected notes, enter a protected session first!
<h2>Export</h2> This will export the notes in an unencrypted form, so if you reimport into
<h3>Subtree export</h3> Trilium, make sure to re-protect these notes.</p>
<p>You can export whole subtree to ZIP archive which will have directory <h2>Supported syntax</h2>
structured modelled after subtree structure:</p> <ul>
<p> <li><a href="https://github.github.com/gfm/">GitHub-Flavored Markdown</a> is
<img src="Markdown_markdown-export-s.gif"> the main syntax that Trilium is following.</li>
</p> <li>Images are supported. When exporting, images are usually kept in the basic
<h3>Single note export</h3> Markdown syntax but will use the HTML syntax if the image has a custom
<p>If you want to export just single note without its subtree, you can do width. Figures are always embedded as HTML.</li>
it from Note actions menu:</p> <li>Tables are supported with the Markdown syntax. If the table is too complex
<p> or contains elements that would render as HTML, the table is also rendered
<img src="Markdown_markdown-export-n.gif"> as HTML.</li>
</p> <li><a class="reference-link" href="#root/_help_NwBbFdNZ9h7O">Admonitions</a>&nbsp;are
<h3>Exporting protected notes</h3> supported using GitHub's format.</li>
<p>If you want to export protected notes, enter a protected session first! <li>Links are supported. “Reference links” (internal links that mirror a note's
This will export the notes in an unencrypted form, so if you reimport into title and display its icon) are embedded as HTML in order to preserve the
Trilium, make sure to re-protect these notes.</p> information on import.</li>
<h2>Supported syntax</h2> <li>Math equations are supported using <code>$</code> and <code>$$</code> syntaxes.</li>
<ul> </ul>
<li><a href="https://github.github.com/gfm/">GitHub-Flavored Markdown</a> is
the main syntax that Trilium is following.</li>
<li>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.</li>
<li>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.</li>
<li><a class="reference-link" href="#root/_help_NwBbFdNZ9h7O">Admonitions</a>&nbsp;are
supported using GitHub's format.</li>
<li>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.</li>
<li>Math equations are supported using <code>$</code> and <code>$$</code> syntaxes.</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,99 +1,79 @@
<html> <p><strong>This page describes a method to migrate via EverNote Legacy, but this app is no longer available/working.</strong>
</p>
<head> <h2>Prep Onenote notes for best compatibility</h2>
<meta charset="utf-8"> <ul>
<meta name="viewport" content="width=device-width, initial-scale=1"> <li>Remove Onenote Tags and replace with Emoji if possible (Onenote Tags will
<link rel="stylesheet" href="../../../style.css"> get imported into trilium as an image which clutters the Trilium tree somewhat)</li>
<base target="_parent"> <li>Make sure to use Onenote headings where applicable (These will be carried
<title data-trilium-title>OneNote</title> over correctly into Trilium)</li>
</head> <li>Remove extra whitespace in Onenote (Whitespace seems to be more noticible
in Trilium, so removing it now will make it look nicer in trilium)</li>
<body> <li>If possible, try to avoid very long Onenote pages. Trilium works best
<div class="content"> with shorter concise pages with any number of sub or (sub-sub...) pages.</li>
<h1 data-trilium-h1>OneNote</h1> <li>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
<div class="ck-content"> is an extra space in the list in OneNote).</li>
<p><strong>This page describes a method to migrate via EverNote Legacy, but this app is no longer available/working.</strong> </ul>
</p> <h2>Migration Procedure</h2>
<h2>Prep Onenote notes for best compatibility</h2> <h3>Import into Evernote from OneNote:</h3>
<ul> <ul>
<li>Remove Onenote Tags and replace with Emoji if possible (Onenote Tags will <li>Install <a href="https://web.archive.org/web/20230327110646/https://help.evernote.com/hc/en-us/articles/360052560314">Evernote Legacy</a>.
get imported into trilium as an image which clutters the Trilium tree somewhat)</li> Current versions of Evernote do not have this functionality. (Requires
<li>Make sure to use Onenote headings where applicable (These will be carried Evernote account, but import works without internet connection - be sure
over correctly into Trilium)</li> to NOT sync notes to Evernote!).</li>
<li>Remove extra whitespace in Onenote (Whitespace seems to be more noticible <li>In evernote navigate to File &gt; Import &gt; Onenote &gt; Notebook &gt;
in Trilium, so removing it now will make it look nicer in trilium)</li> Section &gt; OK</li>
<li>If possible, try to avoid very long Onenote pages. Trilium works best </ul>
with shorter concise pages with any number of sub or (sub-sub...) pages.</li> <p>If exporting all sections at a time, they will not be grouped in folders
<li>Make sure numbered lists don't have unusual spaces between items in the - they will all be added to a single folder, but the order will be kept,
list (Sometimes the numbered list will start at 1 again in Trilum if there so you can re-group into folders after importing to Trilium</p>
is an extra space in the list in OneNote).</li> <h3>Export from Evernote</h3>
</ul> <ul>
<h2>Migration Procedure</h2> <li>Right click on the created notebook in Evernote and choose "Export Notes…"</li>
<h3>Import into Evernote from OneNote:</h3> <li>Use the default export format of .enex</li>
<ul> </ul>
<li>Install <a href="https://web.archive.org/web/20230327110646/https://help.evernote.com/hc/en-us/articles/360052560314">Evernote Legacy</a>. <h3>Cleanup enex file (optional)</h3>
Current versions of Evernote do not have this functionality. (Requires <ul>
Evernote account, but import works without internet connection - be sure <li>
to NOT sync notes to Evernote!).</li> <p>If the Onenote header (that is at the top of each Onenote page) is not
<li>In evernote navigate to File &gt; Import &gt; Onenote &gt; Notebook &gt; desired, you can use the following regex to remove them in a text editor
Section &gt; OK</li> like VsCode:</p>
</ul> <p>Find (using regex): <code>.&lt;div.*&gt;&lt;h1</code> Replace with: <code>&lt;h1</code>
<p>If exporting all sections at a time, they will not be grouped in folders </p>
- they will all be added to a single folder, but the order will be kept, </li>
so you can re-group into folders after importing to Trilium</p> </ul>
<h3>Export from Evernote</h3> <h3>Import into Trilium</h3>
<ul> <ul>
<li>Right click on the created notebook in Evernote and choose "Export Notes…"</li> <li>In Trilium, right click on the root node and choose Import (all default
<li>Use the default export format of .enex</li> options should be fine).</li>
</ul> <li>Select the .enex file exported from Evernote</li>
<h3>Cleanup enex file (optional)</h3> <li>Be patient. Large .enex files may take a few minutes to process</li>
<ul> <li>Repeat import for each .enex file</li>
<li> </ul>
<p>If the Onenote header (that is at the top of each Onenote page) is not <h2>Other importing notes:</h2>
desired, you can use the following regex to remove them in a text editor <ul>
like VsCode:</p> <li>Centered text in Onenote will be left-justified after importing into Trilium</li>
<p>Find (using regex): <code>.&lt;div.*&gt;&lt;h1</code> Replace with: <code>&lt;h1</code> <li>Internal onenote links will obviously be broken, but the link still exists
</p> so you can do a search in Trilium to find all onenote:// links and then
</li> re-link to the proper Trilium page (there is no way to link to a paragraph
</ul> in trilium, so it's good to keep trilium pages short so links point to
<h3>Import into Trilium</h3> a small chunk of information instead of a massive note)</li>
<ul> <li>Text colors, highlights, and formatting generally carries over well</li>
<li>In Trilium, right click on the root node and choose Import (all default <li>Revision history will be lost, but any new revisions will be tracked in
options should be fine).</li> Trilium</li>
<li>Select the .enex file exported from Evernote</li> <li>The structure of notes are not maintained exactly, so if you had sub-notes
<li>Be patient. Large .enex files may take a few minutes to process</li> in Onenote, you may have to re-arrange the notes accordingly (This is easy
<li>Repeat import for each .enex file</li> since the order of the notes is preserved).</li>
</ul> <li>Evernote tags are created for each "section" in OneNote and these tags
<h2>Other importing notes:</h2> are carried over to Trilium as attributes
<ul> <ul>
<li>Centered text in Onenote will be left-justified after importing into Trilium</li> <li>If the tags are not desired, you can turn them off in the Evernote export
<li>Internal onenote links will obviously be broken, but the link still exists options.</li>
so you can do a search in Trilium to find all onenote:// links and then </ul>
re-link to the proper Trilium page (there is no way to link to a paragraph </li>
in trilium, so it's good to keep trilium pages short so links point to <li>If the "Created with OneNote" text is not desired, do a find/replace in
a small chunk of information instead of a massive note)</li> the enex files before importing to Trilium</li>
<li>Text colors, highlights, and formatting generally carries over well</li> <li>Some links will be disabled (not clickable) when importing from enex.</li>
<li>Revision history will be lost, but any new revisions will be tracked in <li>Files, screenshots, and attachments are all preserved (This is the only
Trilium</li> one-note export option that seems to preserve all of these).</li>
<li>The structure of notes are not maintained exactly, so if you had sub-notes </ul>
in Onenote, you may have to re-arrange the notes accordingly (This is easy
since the order of the notes is preserved).</li>
<li>Evernote tags are created for each "section" in OneNote and these tags
are carried over to Trilium as attributes
<ul>
<li>If the tags are not desired, you can turn them off in the Evernote export
options.</li>
</ul>
</li>
<li>If the "Created with OneNote" text is not desired, do a find/replace in
the enex files before importing to Trilium</li>
<li>Some links will be disabled (not clickable) when importing from enex.</li>
<li>Files, screenshots, and attachments are all preserved (This is the only
one-note export option that seems to preserve all of these).</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,133 +1,113 @@
<html> <p>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
<head> editor).</p>
<meta charset="utf-8"> <p>It is also possible to configure most keyboard shortcuts in Options -&gt;
<meta name="viewport" content="width=device-width, initial-scale=1"> Keyboard shortcuts. Using <code>global:</code> prefix, you can assign a shortcut
<link rel="stylesheet" href="../../style.css"> which will work even without Trilium being in focus (requires app restart
<base target="_parent"> to take effect).</p>
<title data-trilium-title>Keyboard Shortcuts</title> <h2>Note navigation</h2>
</head> <ul>
<li><kbd><span></span></kbd>, <kbd><span></span></kbd> - go up/down in the
<body> list of notes, <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd><span></span></kbd> and <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd><span></span></kbd> &nbsp;work
<div class="content"> also from editor</li>
<h1 data-trilium-h1>Keyboard Shortcuts</h1> <li><kbd><span></span></kbd>, <kbd><span></span></kbd> - collapse/expand node</li>
<li><kbd>Alt</kbd> + <kbd><span></span></kbd>, <kbd>Alt</kbd> + <kbd><span></span></kbd> -
<div class="ck-content"> go back / forwards in the history</li>
<p>This is supposed to be a complete list of keyboard shortcuts. Note that <li><kbd>Ctrl</kbd> + <kbd>J</kbd> - show <a href="#root/_help_MMiBEQljMQh2">"Jump to" dialog</a>
some of these may work only in certain contexts (e.g. in tree pane or note </li>
editor).</p> <li><kbd>Ctrl</kbd> + <kbd>.</kbd> - scroll to current note (useful when you
<p>It is also possible to configure most keyboard shortcuts in Options -&gt; scroll away from your note or your focus is currently in the editor)</li>
Keyboard shortcuts. Using <code>global:</code> prefix, you can assign a shortcut <li><kbd><span>Backspace</span></kbd> - jumps to parent note</li>
which will work even without Trilium being in focus (requires app restart <li><kbd>Alt</kbd> + <kbd>C</kbd> - collapse whole note tree</li>
to take effect).</p> <li><kbd>Alt</kbd> + <kbd>-</kbd> (alt with minus sign) - collapse subtree (if
<h2>Note navigation</h2> some subtree takes too much space on tree pane you can collapse it)</li>
<ul> <li>you can define a <a href="#root/_help_zEY4DaJG4YT5">label</a> <code>#keyboardShortcut</code> with
<li><kbd><span></span></kbd>, <kbd><span></span></kbd> - go up/down in the e.g. value <kbd>Ctrl</kbd> + <kbd>I</kbd> . Pressing this keyboard combination
list of notes, <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd><span></span></kbd> and <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd><span></span></kbd> &nbsp;work will then bring you to the note on which it is defined. Note that Trilium
also from editor</li> must be reloaded/restarted (<kbd>Ctrl</kbd> + <kbd>R</kbd> ) for changes to
<li><kbd><span></span></kbd>, <kbd><span></span></kbd> - collapse/expand node</li> be in effect.</li>
<li><kbd>Alt</kbd> + <kbd><span></span></kbd>, <kbd>Alt</kbd> + <kbd><span></span></kbd> - </ul>
go back / forwards in the history</li> <p>See demo of some of these features in <a href="#root/_help_MMiBEQljMQh2">note navigation</a>.</p>
<li><kbd>Ctrl</kbd> + <kbd>J</kbd> - show <a href="#root/_help_MMiBEQljMQh2">"Jump to" dialog</a> <h2>Tabs</h2>
</li> <ul>
<li><kbd>Ctrl</kbd> + <kbd>.</kbd> - scroll to current note (useful when you <li><kbd>Ctrl</kbd> + <kbd>🖱 Left click</kbd> - (or middle mouse click) on note
scroll away from your note or your focus is currently in the editor)</li> link opens note in a new tab</li>
<li><kbd><span>Backspace</span></kbd> - jumps to parent note</li> </ul>
<li><kbd>Alt</kbd> + <kbd>C</kbd> - collapse whole note tree</li> <p>Only in desktop (electron build):</p>
<li><kbd>Alt</kbd> + <kbd>-</kbd> (alt with minus sign) - collapse subtree (if <ul>
some subtree takes too much space on tree pane you can collapse it)</li> <li><kbd>Ctrl</kbd> + <kbd>T</kbd> - opens empty tab</li>
<li>you can define a <a href="#root/_help_zEY4DaJG4YT5">label</a> <code>#keyboardShortcut</code> with <li><kbd>Ctrl</kbd> + <kbd>W</kbd> - closes active tab</li>
e.g. value <kbd>Ctrl</kbd> + <kbd>I</kbd> . Pressing this keyboard combination <li><kbd>Ctrl</kbd> + <kbd>Tab</kbd> - activates next tab</li>
will then bring you to the note on which it is defined. Note that Trilium <li><kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Tab</kbd> - activates previous tab</li>
must be reloaded/restarted (<kbd>Ctrl</kbd> + <kbd>R</kbd> ) for changes to </ul>
be in effect.</li> <h2>Creating notes</h2>
</ul> <ul>
<p>See demo of some of these features in <a href="#root/_help_MMiBEQljMQh2">note navigation</a>.</p> <li><code>CTRL+O</code> - creates new note after the current note</li>
<h2>Tabs</h2> <li><code>CTRL+P</code> - creates new sub-note into current note</li>
<ul> <li><code>F2</code> - edit <a href="#root/_help_MMiBEQljMQh2">prefix</a> of current
<li><kbd>Ctrl</kbd> + <kbd>🖱 Left click</kbd> - (or middle mouse click) on note note clone</li>
link opens note in a new tab</li> </ul>
</ul> <h2>Moving / cloning notes</h2>
<p>Only in desktop (electron build):</p> <ul>
<ul> <li><kbd>Ctrl</kbd> + <kbd><span></span></kbd> , Ctrl + <kbd><span></span></kbd> -
<li><kbd>Ctrl</kbd> + <kbd>T</kbd> - opens empty tab</li> move note up/down in the note list</li>
<li><kbd>Ctrl</kbd> + <kbd>W</kbd> - closes active tab</li> <li><kbd>Ctrl</kbd> + <kbd><span></span></kbd> - move note up in the note tree</li>
<li><kbd>Ctrl</kbd> + <kbd>Tab</kbd> - activates next tab</li> <li><kbd>Ctrl</kbd>+<kbd><span></span></kbd> - move note down in the note
<li><kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Tab</kbd> - activates previous tab</li> tree</li>
</ul> <li><kbd>Shift</kbd>+<kbd><span></span></kbd>, <kbd>Shift</kbd><code>+</code><kbd><span></span></kbd> -
<h2>Creating notes</h2> multi-select note above/below</li>
<ul> <li><kbd>Ctrl</kbd>+<kbd>A</kbd> - select all notes in the current level</li>
<li><code>CTRL+O</code> - creates new note after the current note</li> <li><kbd>Shift</kbd>+<kbd>🖱 Left click</kbd> - multi select note which you
<li><code>CTRL+P</code> - creates new sub-note into current note</li> clicked on</li>
<li><code>F2</code> - edit <a href="#root/_help_MMiBEQljMQh2">prefix</a> of current <li><kbd>Ctrl</kbd>+<kbd>C</kbd> - copies current note (or current selection)
note clone</li> into clipboard (used for <a href="#root/_help_IakOLONlIfGI">cloning</a>
</ul> </li>
<h2>Moving / cloning notes</h2> <li><kbd>Ctrl</kbd>+<kbd>X</kbd> - cuts current (or current selection) note
<ul> into clipboard (used for moving notes)</li>
<li><kbd>Ctrl</kbd> + <kbd><span></span></kbd> , Ctrl + <kbd><span></span></kbd> - <li><kbd>Ctrl</kbd>+<kbd>V</kbd> - pastes note(s) as sub-note into current
move note up/down in the note list</li> note (which is either move or clone depending on whether it was copied
<li><kbd>Ctrl</kbd> + <kbd><span></span></kbd> - move note up in the note tree</li> or cut into clipboard)</li>
<li><kbd>Ctrl</kbd>+<kbd><span></span></kbd> - move note down in the note <li><kbd>Del</kbd> - delete note / sub-tree</li>
tree</li> </ul>
<li><kbd>Shift</kbd>+<kbd><span></span></kbd>, <kbd>Shift</kbd><code>+</code><kbd><span></span></kbd> - <h2>Editing notes</h2>
multi-select note above/below</li> <ul>
<li><kbd>Ctrl</kbd>+<kbd>A</kbd> - select all notes in the current level</li> <li>For&nbsp;<a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes,
<li><kbd>Shift</kbd>+<kbd>🖱 Left click</kbd> - multi select note which you refer to&nbsp;<a class="reference-link" href="#root/_help_oiVPnW8QfnvS">Keyboard shortcuts</a>&nbsp;and&nbsp;
clicked on</li> <a
<li><kbd>Ctrl</kbd>+<kbd>C</kbd> - copies current note (or current selection) class="reference-link" href="#root/_help_QrtTYPmdd1qq">Markdown-like formatting</a>.</li>
into clipboard (used for <a href="#root/_help_IakOLONlIfGI">cloning</a> <li><kbd>Alt</kbd>-<kbd>F10</kbd> - bring up inline formatting toolbar (arrow
</li> keys <kbd><span></span></kbd>,<kbd><span></span></kbd> to navigate, <kbd>Enter</kbd> to
<li><kbd>Ctrl</kbd>+<kbd>X</kbd> - cuts current (or current selection) note apply)</li>
into clipboard (used for moving notes)</li> <li><kbd>Alt</kbd>-<kbd>F10</kbd> - again to bring up block formatting toolbar</li>
<li><kbd>Ctrl</kbd>+<kbd>V</kbd> - pastes note(s) as sub-note into current <li><kbd>Enter</kbd> in tree pane switches from tree pane into note title.
note (which is either move or clone depending on whether it was copied Enter from note title switches focus to text editor. <kbd>Ctrl</kbd>+<kbd>.</kbd> switches
or cut into clipboard)</li> back from editor to tree pane.</li>
<li><kbd>Del</kbd> - delete note / sub-tree</li> <li><kbd>Ctrl</kbd>+<kbd>K</kbd> - create / edit <a href="#root/_help_QEAPj01N5f7w">external link</a>
</ul> </li>
<h2>Editing notes</h2> <li><kbd>Ctrl</kbd>+<kbd>L</kbd> - create <a href="#root/_help_QEAPj01N5f7w">internal (note) link</a>
<ul> </li>
<li>For&nbsp;<a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes, <li><kbd>Alt</kbd>+<kbd>T</kbd> - inserts current date and time at caret position</li>
refer to&nbsp;<a class="reference-link" href="#root/_help_oiVPnW8QfnvS">Keyboard shortcuts</a>&nbsp;and&nbsp; <li><kbd>Ctrl</kbd>+<kbd>.</kbd> - jump away from the editor to tree pane and
<a scroll to current note</li>
class="reference-link" href="#root/_help_QrtTYPmdd1qq">Markdown-like formatting</a>.</li> </ul>
<li><kbd>Alt</kbd>-<kbd>F10</kbd> - bring up inline formatting toolbar (arrow <h2>Runtime shortcuts</h2>
keys <kbd><span></span></kbd>,<kbd><span></span></kbd> to navigate, <kbd>Enter</kbd> to <p>These are hooked in Electron to be similar to native browser keyboard
apply)</li> shortcuts.</p>
<li><kbd>Alt</kbd>-<kbd>F10</kbd> - again to bring up block formatting toolbar</li> <ul>
<li><kbd>Enter</kbd> in tree pane switches from tree pane into note title. <li><kbd>F5</kbd>, <kbd>Ctrl</kbd>-<kbd>R</kbd> - reloads Trilium front-end</li>
Enter from note title switches focus to text editor. <kbd>Ctrl</kbd>+<kbd>.</kbd> switches <li><kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>I</kbd> - show developer tools</li>
back from editor to tree pane.</li> <li><kbd>Ctrl</kbd>+<kbd>F</kbd> - show search dialog</li>
<li><kbd>Ctrl</kbd>+<kbd>K</kbd> - create / edit <a href="#root/_help_QEAPj01N5f7w">external link</a> <li><kbd>Ctrl</kbd>+<kbd>-</kbd> - zoom out</li>
</li> <li><kbd>Ctrl</kbd>+<kbd>=</kbd> - zoom in</li>
<li><kbd>Ctrl</kbd>+<kbd>L</kbd> - create <a href="#root/_help_QEAPj01N5f7w">internal (note) link</a> </ul>
</li> <h2>Other</h2>
<li><kbd>Alt</kbd>+<kbd>T</kbd> - inserts current date and time at caret position</li> <ul>
<li><kbd>Ctrl</kbd>+<kbd>.</kbd> - jump away from the editor to tree pane and <li><kbd>Alt</kbd>+<kbd>O</kbd> - show SQL console (use only if you know what
scroll to current note</li> you're doing)</li>
</ul> <li><kbd>Alt</kbd>+<kbd>M</kbd> - distraction-free mode - display only note
<h2>Runtime shortcuts</h2> editor, everything else is hidden</li>
<p>These are hooked in Electron to be similar to native browser keyboard <li><kbd>F11</kbd> - toggle full screen</li>
shortcuts.</p> <li><kbd>Ctrl</kbd> + <kbd>S</kbd> - toggle <a href="#root/_help_eIg8jdvaoNNd">search</a> form
<ul> in tree pane</li>
<li><kbd>F5</kbd>, <kbd>Ctrl</kbd>-<kbd>R</kbd> - reloads Trilium front-end</li> <li><kbd>Alt</kbd> +<kbd>A</kbd> - show note <a href="#root/_help_zEY4DaJG4YT5">attributes</a> dialog</li>
<li><kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>I</kbd> - show developer tools</li> </ul>
<li><kbd>Ctrl</kbd>+<kbd>F</kbd> - show search dialog</li>
<li><kbd>Ctrl</kbd>+<kbd>-</kbd> - zoom out</li>
<li><kbd>Ctrl</kbd>+<kbd>=</kbd> - zoom in</li>
</ul>
<h2>Other</h2>
<ul>
<li><kbd>Alt</kbd>+<kbd>O</kbd> - show SQL console (use only if you know what
you're doing)</li>
<li><kbd>Alt</kbd>+<kbd>M</kbd> - distraction-free mode - display only note
editor, everything else is hidden</li>
<li><kbd>F11</kbd> - toggle full screen</li>
<li><kbd>Ctrl</kbd> + <kbd>S</kbd> - toggle <a href="#root/_help_eIg8jdvaoNNd">search</a> form
in tree pane</li>
<li><kbd>Alt</kbd> +<kbd>A</kbd> - show note <a href="#root/_help_zEY4DaJG4YT5">attributes</a> dialog</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,32 +1,12 @@
<html> <p>To easily access selected notes, you can bookmark them. See demo:</p>
<p>
<head> <img src="Bookmarks_bookmarks.gif">
<meta charset="utf-8"> </p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <h2>Bookmark folder</h2>
<link rel="stylesheet" href="../../../style.css"> <p>Space in the left panel is limited, and you might want to bookmark many
<base target="_parent"> items. One possible solution is to bookmark a folder, so it shows its children:</p>
<title data-trilium-title>Bookmarks</title> <p>
</head> <img src="Bookmarks_bookmark-folder.png">
</p>
<body> <p>To do this, you need to add a <code>#bookmarkFolder</code> label to the
<div class="content"> note.</p>
<h1 data-trilium-h1>Bookmarks</h1>
<div class="ck-content">
<p>To easily access selected notes, you can bookmark them. See demo:</p>
<p>
<img src="Bookmarks_bookmarks.gif">
</p>
<h2>Bookmark folder</h2>
<p>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:</p>
<p>
<img src="Bookmarks_bookmark-folder.png">
</p>
<p>To do this, you need to add a <code>#bookmarkFolder</code> label to the
note.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,53 +1,33 @@
<html> <figure class="image image-style-align-center">
<img style="aspect-ratio:991/403;" src="Jump to Note_image.png" width="991"
<head> height="403">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>The <em>Jump to Note</em> function allows easy navigation between notes
<link rel="stylesheet" href="../../../style.css"> by searching for their title. In addition to that, it can also trigger
<base target="_parent"> a full search or create notes.</p>
<title data-trilium-title>Jump to Note</title> <h2>Entering jump to note</h2>
</head> <ul>
<li>In the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>,
<body> press
<div class="content"> <img src="1_Jump to Note_image.png">button.</li>
<h1 data-trilium-h1>Jump to Note</h1> <li>Using the keyboard, press <kbd>Ctrl</kbd> + <kbd>J</kbd>.</li>
</ul>
<div class="ck-content"> <h2>Recent notes</h2>
<figure class="image image-style-align-center"> <p>Jump to note also has the ability to show the list of recently viewed
<img style="aspect-ratio:991/403;" src="Jump to Note_image.png" width="991" / edited notes and quickly jump to it.</p>
height="403"> <p>To access this functionality, click on <code>Jump to</code> button on the
</figure> top. By default, (when nothing is entered into autocomplete), this dialog
<p>The <em>Jump to Note</em> function allows easy navigation between notes will show the list of recent notes.</p>
by searching for their title. In addition to that, it can also trigger <p>Alternatively you can click on the "time" icon on the right.</p>
a full search or create notes.</p> <img src="Jump to Note_recent-notes.gif"
<h2>Entering jump to note</h2> width="812" height="585">
<ul>
<li>In the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>,
press
<img src="1_Jump to Note_image.png">button.</li>
<li>Using the keyboard, press <kbd>Ctrl</kbd> + <kbd>J</kbd>.</li>
</ul>
<h2>Recent notes</h2>
<p>Jump to note also has the ability to show the list of recently viewed
/ edited notes and quickly jump to it.</p>
<p>To access this functionality, click on <code>Jump to</code> button on the
top. By default, (when nothing is entered into autocomplete), this dialog
will show the list of recent notes.</p>
<p>Alternatively you can click on the "time" icon on the right.</p>
<img src="Jump to Note_recent-notes.gif"
width="812" height="585">
<h2>Interaction</h2> <h2>Interaction</h2>
<ul> <ul>
<li>By default, when there is no text entered it will display the most recent <li>By default, when there is no text entered it will display the most recent
notes.</li> notes.</li>
<li>Using the keyboard, use the up or down arrow keys to navigate between <li>Using the keyboard, use the up or down arrow keys to navigate between
items. Press <kbd>Enter</kbd> to open the desired note.</li> items. Press <kbd>Enter</kbd> to open the desired note.</li>
<li>If the note doesn't exist, it's possible to create it by typing the desired <li>If the note doesn't exist, it's possible to create it by typing the desired
note title and selecting the <em>Create and link child note</em> option.</li> note title and selecting the <em>Create and link child note</em> option.</li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,31 +1,11 @@
<html> <p>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
<head> notes. Demo:</p>
<meta charset="utf-8"> <p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <img src="Note Hoisting_note-hoistin.gif">
<link rel="stylesheet" href="../../../style.css"> </p>
<base target="_parent"> <p>In addition to showing only this subtree, this also narrows both full
<title data-trilium-title>Note Hoisting</title> text search and <a href="#root/_help_MMiBEQljMQh2">“jump to note”</a> to
</head> just notes present in hoisted subtree.</p>
<p>See also <a href="#root/_help_9sRHySam5fXb">Workspace</a> which extends
<body> this feature.</p>
<div class="content">
<h1 data-trilium-h1>Note Hoisting</h1>
<div class="ck-content">
<p>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:</p>
<p>
<img src="Note Hoisting_note-hoistin.gif">
</p>
<p>In addition to showing only this subtree, this also narrows both full
text search and <a href="#root/_help_MMiBEQljMQh2">“jump to note”</a> to
just notes present in hoisted subtree.</p>
<p>See also <a href="#root/_help_9sRHySam5fXb">Workspace</a> which extends
this feature.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,36 +1,16 @@
<html> <p>One of the Trilium's goals is to provide fast and comfortable navigation
between notes.</p>
<head> <h2>Backwards and forward</h2>
<meta charset="utf-8"> <p>You can use alt-left and alt-right to move back and forward in history
<meta name="viewport" content="width=device-width, initial-scale=1"> of viewed pages.</p>
<link rel="stylesheet" href="../../../style.css"> <p>This works identically to browser backwards / forwards, it's actually
<base target="_parent"> using built-in browser support for this.</p>
<title data-trilium-title>Note Navigation</title> <p>
</head> <img src="Note Navigation_image.png">
</p>
<body> <h2>Jump to note</h2>
<div class="content"> <p>This is useful to quickly find and view arbitrary notes - click on <code>Jump to</code> button
<h1 data-trilium-h1>Note Navigation</h1> on the top or press <kbd>Ctrl</kbd> + <kbd>J</kbd> . Then type part of the
note name and autocomplete will help you pick the desired note.</p>
<div class="ck-content"> <p>See&nbsp;<a class="reference-link" href="#root/_help_F1r9QtzQLZqm">Jump to Note</a>&nbsp;for
<p>One of the Trilium's goals is to provide fast and comfortable navigation more information.</p>
between notes.</p>
<h2>Backwards and forward</h2>
<p>You can use alt-left and alt-right to move back and forward in history
of viewed pages.</p>
<p>This works identically to browser backwards / forwards, it's actually
using built-in browser support for this.</p>
<p>
<img src="Note Navigation_image.png">
</p>
<h2>Jump to note</h2>
<p>This is useful to quickly find and view arbitrary notes - click on <code>Jump to</code> button
on the top or press <kbd>Ctrl</kbd> + <kbd>J</kbd> . Then type part of the
note name and autocomplete will help you pick the desired note.</p>
<p>See&nbsp;<a class="reference-link" href="#root/_help_F1r9QtzQLZqm">Jump to Note</a>&nbsp;for
more information.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,43 +1,23 @@
<html> <figure class="image image-style-align-center">
<img style="aspect-ratio:659/256;" src="Quick search_image.png" width="659"
<head> height="256">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>The <em>Quick search</em> function does a full-text search (that is, it
<link rel="stylesheet" href="../../../style.css"> searches through the content of notes and not just the title of a note)
<base target="_parent"> and displays the result in an easy-to-access manner.</p>
<title data-trilium-title>Quick search</title> <p>The alternative to the quick search is the&nbsp;<a class="reference-link"
</head> href="#root/_help_eIg8jdvaoNNd">Search</a>&nbsp;function, which opens in
a dedicated tab and has support for advanced queries.</p>
<body> <p>For even faster navigation, it's possible to use&nbsp;<a class="reference-link"
<div class="content"> href="#root/_help_F1r9QtzQLZqm">Jump to Note</a>&nbsp;which will only search
<h1 data-trilium-h1>Quick search</h1> through the note titles instead of the content.</p>
<h2>Layout</h2>
<div class="ck-content"> <p>Based on the&nbsp;<a class="reference-link" href="#root/_help_x0JgW8UqGXvq">Vertical and horizontal layout</a>,
<figure class="image image-style-align-center"> the quick search is placed:</p>
<img style="aspect-ratio:659/256;" src="Quick search_image.png" width="659" <ul>
height="256"> <li>On the vertical layout, it is displayed right above the&nbsp;<a class="reference-link"
</figure> href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li>
<p>The <em>Quick search</em> function does a full-text search (that is, it <li>On the horizontal layout, it is displayed in the&nbsp;<a class="reference-link"
searches through the content of notes and not just the title of a note) href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>, where it can be positioned
and displays the result in an easy-to-access manner.</p> just like any other icon.</li>
<p>The alternative to the quick search is the&nbsp;<a class="reference-link" </ul>
href="#root/_help_eIg8jdvaoNNd">Search</a>&nbsp;function, which opens in
a dedicated tab and has support for advanced queries.</p>
<p>For even faster navigation, it's possible to use&nbsp;<a class="reference-link"
href="#root/_help_F1r9QtzQLZqm">Jump to Note</a>&nbsp;which will only search
through the note titles instead of the content.</p>
<h2>Layout</h2>
<p>Based on the&nbsp;<a class="reference-link" href="#root/_help_x0JgW8UqGXvq">Vertical and horizontal layout</a>,
the quick search is placed:</p>
<ul>
<li>On the vertical layout, it is displayed right above the&nbsp;<a class="reference-link"
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li>
<li>On the horizontal layout, it is displayed in the&nbsp;<a class="reference-link"
href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>, where it can be positioned
just like any other icon.</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,68 +1,48 @@
<html> <figure class="image image_resized" style="width:100%;">
<img style="aspect-ratio:898/93;" src="Search in note_image.png" width="898"
<head> height="93">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>Local search allows you to search within the currently displayed note.&nbsp;</p>
<link rel="stylesheet" href="../../../style.css"> <h2>Alternatives</h2>
<base target="_parent"> <ul>
<title data-trilium-title>Search in note</title> <li>Pressing Ctrl+F while in a browser while not focused in a&nbsp;<a class="reference-link"
</head> href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;or a&nbsp;<a class="reference-link"
href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note will trigger the browser's
<body> native search. This will also find text that is part of Trilium's UI.</li>
<div class="content"> <li>Pressing Ctrl+F in a&nbsp;<a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;note
<h1 data-trilium-h1>Search in note</h1> will reveal&nbsp;<a class="reference-link" href="#root/_help_MI26XDLSAlCD">CKEditor</a>'s
search functionality.</li>
<div class="ck-content"> </ul>
<figure class="image image_resized" style="width:100%;"> <h2>Accessing the search</h2>
<img style="aspect-ratio:898/93;" src="Search in note_image.png" width="898" <ul>
height="93"> <li>On desktop, press<kbd>Ctrl</kbd> + <kbd>F</kbd>
</figure> </li>
<p>Local search allows you to search within the currently displayed note.&nbsp;</p> <li>From the&nbsp;<a class="reference-link" href="#root/_help_8YBEPzcpUgxw">Note buttons</a>,
<h2>Alternatives</h2> look for the context menu and select <em>Search in note</em>.</li>
<ul> </ul>
<li>Pressing Ctrl+F while in a browser while not focused in a&nbsp;<a class="reference-link" <h2>Interaction</h2>
href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;or a&nbsp;<a class="reference-link" <ul>
href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note will trigger the browser's <li>Finding:
native search. This will also find text that is part of Trilium's UI.</li> <ul>
<li>Pressing Ctrl+F in a&nbsp;<a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;note <li>Fill in the <em>Find in text…</em> with the text to search for.</li>
will reveal&nbsp;<a class="reference-link" href="#root/_help_MI26XDLSAlCD">CKEditor</a>'s <li>The search will be executed automatically in the background.</li>
search functionality.</li> <li>Use up and down arrows of the text box to navigate between results.</li>
</ul> </ul>
<h2>Accessing the search</h2> </li>
<ul> <li>Replacing:
<li>On desktop, press<kbd>Ctrl</kbd> + <kbd>F</kbd> <ul>
</li> <li>Fill in the <em>Find in text</em>… field with the text to replace.</li>
<li>From the&nbsp;<a class="reference-link" href="#root/_help_8YBEPzcpUgxw">Note buttons</a>, <li>Fill in the <em>Replace with…</em> field the text to replace it with.</li>
look for the context menu and select <em>Search in note</em>.</li> <li>Press <em>Replace</em> to replace only the current result.</li>
</ul> <li>Press <em>Replace all</em> to replace all of them at once.</li>
<h2>Interaction</h2> </ul>
<ul> </li>
<li>Finding: <li>Options:
<ul> <ul>
<li>Fill in the <em>Find in text…</em> with the text to search for.</li> <li><em>Case sensitive</em> the search will distinguish upper case characters
<li>The search will be executed automatically in the background.</li> from lower case (e.g. searching for Hello will not match <code>hello</code>).</li>
<li>Use up and down arrows of the text box to navigate between results.</li> <li><em>Match words</em> - the search will find only exact word matches (e.g.
</ul> searching for <code>Java</code> will not match <code>JavaScript</code>).</li>
</li> </ul>
<li>Replacing: </li>
<ul> </ul>
<li>Fill in the <em>Find in text</em>… field with the text to replace.</li>
<li>Fill in the <em>Replace with…</em> field the text to replace it with.</li>
<li>Press <em>Replace</em> to replace only the current result.</li>
<li>Press <em>Replace all</em> to replace all of them at once.</li>
</ul>
</li>
<li>Options:
<ul>
<li><em>Case sensitive</em> the search will distinguish upper case characters
from lower case (e.g. searching for Hello will not match <code>hello</code>).</li>
<li><em>Match words</em> - the search will find only exact word matches (e.g.
searching for <code>Java</code> will not match <code>JavaScript</code>).</li>
</ul>
</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,263 +1,243 @@
<html> <figure class="image">
<img style="aspect-ratio:987/725;" src="Search_image.png" width="987"
<head> height="725">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>Note search enables you to find notes by searching for text in the title,
<link rel="stylesheet" href="../../../style.css"> content, or <a href="#root/_help_zEY4DaJG4YT5">attributes</a> of the notes.
<base target="_parent"> You also have the option to save your searches, which will create a special
<title data-trilium-title>Search</title> search note which is visible on your navigation tree and contains the search
</head> results as sub-items.</p>
<h2>Accessing the search</h2>
<body> <ul>
<div class="content"> <li>From the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>,
<h1 data-trilium-h1>Search</h1> look for the dedicated search button.</li>
<li>To limit the search to a note and its children, select <em>Search from subtree</em> from
<div class="ck-content"> the&nbsp;<a class="reference-link" href="#root/_help_YtSN43OrfzaA">Note tree contextual menu</a>&nbsp;or
<figure class="image"> press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>S</kbd>.</li>
<img style="aspect-ratio:987/725;" src="Search_image.png" width="987" </ul>
height="725"> <h2>Interaction</h2>
</figure> <p>To search for notes, click on the magnifying glass icon on the toolbar
<p>Note search enables you to find notes by searching for text in the title, or press the keyboard <a href="#root/_help_A9Oc6YKKc65v">shortcut</a>.</p>
content, or <a href="#root/_help_zEY4DaJG4YT5">attributes</a> of the notes. <ol>
You also have the option to save your searches, which will create a special <li>Set the text to search for in the <em>Search string</em> field.
search note which is visible on your navigation tree and contains the search <ol>
results as sub-items.</p> <li>Apart from searching for words ad-literam, there is also the possibility
<h2>Accessing the search</h2> to search for attributes or properties of notes.</li>
<li>See the examples below for more information.</li>
</ol>
</li>
<li>To limit the search to a note and its sub-children, set a note in <em>Ancestor</em>.
<ol>
<li>This value is also pre-filled if the search is triggered from a <a href="#root/_help_OR8WJ7Iz9K4U">hoisted note</a> or
a <a href="#root/_help_9sRHySam5fXb">workspace</a>.</li>
<li>To search the entire database, keep the value empty.</li>
</ol>
</li>
<li>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 <em>depth</em> field to one
of the provided values.</li>
<li>In addition to that, the search can be configured via the <em>Add search options</em> buttons,
as described in the follow-up section.</li>
<li>Press <em>Search</em> to trigger the search. The results are displayed below
the search configuration pane.</li>
<li>The <em>Search &amp; Execute actions</em> button is only relevant if at
least one action has been added (as described in the section below).</li>
<li>The <em>Save to note</em> will create a new note with the search configuration.
For more information, see&nbsp;<a class="reference-link" href="#root/_help_m523cpzocqaD">Saved Search</a>.</li>
</ol>
<h2>Search options</h2>
<p>Click on which search option to apply from the Add search option section.</p>
<ul>
<li>For each search option selected, the search configuration will update
to reveal the entry. Each search option will have its own configuration.</li>
<li>To remove a search option, simply press the X button to the right of it.</li>
</ul>
<p>The options available are:</p>
<ol>
<li>Search script
<ol>
<li>This feature allows writing a&nbsp;<a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note
that will handle the search on its own.</li>
</ol>
</li>
<li>Fast search
<ol>
<li>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).</li>
<li>This method can speed up the search considerably for large <a href="#root/_help_wX4HbRucYSDD">databases</a>.</li>
</ol>
</li>
<li>Include archived
<ol>
<li><a class="reference-link" href="#root/_help_MKmLg5x6xkor">Archived Notes</a>&nbsp;will
also be included in the results, whereas otherwise they would be ignored.</li>
</ol>
</li>
<li>Order by
<ol>
<li>Allows changing the criteria for ordering the results, for example to
order by creation date or alphabetically instead of by relevancy (default).</li>
<li>It's also possible to change the order (ascending or descending) of the
results.</li>
</ol>
</li>
<li>Limit
<ol>
<li>Limits the results to a given maximum.</li>
<li>This can help if the number of results would otherwise be high, at the
cost of not being able to view all the results.</li>
</ol>
</li>
<li>Debug
<ol>
<li>This will print additional information in the server log (see&nbsp;
<a
class="reference-link" href="#root/_help_qzNzp9LYQyPT">Error logs</a>), regarding how the search expression was parsed.</li>
<li>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.</li>
</ol>
</li>
<li>Action
<ol>
<li>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.</li>
<li>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).</li>
<li>The actions given are the same as the ones in&nbsp;<a class="reference-link"
href="#root/_help_ivYnonVFBxbQ">Bulk Actions</a>, which is an alternative
for operating directly with notes within the&nbsp;<a class="reference-link"
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li>
<li>After defining the actions, first press <em>Search</em> to check the matched
notes and then press <em>Search &amp; Execute actions</em> to trigger the
actions.</li>
</ol>
</li>
</ol>
<h3>Simple Note Search Examples</h3>
<ul>
<li><code>rings tolkien</code>: Full-text search to find notes containing
both "rings" and "tolkien".</li>
<li><code>"The Lord of the Rings" Tolkien</code>: Full-text search where "The
Lord of the Rings" must match exactly.</li>
<li><code>note.content *=* rings OR note.content *=* tolkien</code>: Find
notes containing "rings" or "tolkien" in their content.</li>
<li><code>towers #book</code>: Combine full-text and attribute search to find
notes containing "towers" and having the "book" label.</li>
<li><code>towers #book or #author</code>: Search for notes containing "towers"
and having either the "book" or "author" label.</li>
<li><code>towers #!book</code>: Search for notes containing "towers" and not
having the "book" label.</li>
<li><code>#book #publicationYear = 1954</code>: Find notes with the "book"
label and "publicationYear" set to 1954.</li>
<li><code>#genre *=* fan</code>: Find notes with the "genre" label containing
the substring "fan". Additional operators include <code>*=*</code> for "contains", <code>=*</code> for
"starts with", <code>*=</code> for "ends with", and <code>!=</code> for "is
not equal to".</li>
<li><code>#book #publicationYear &gt;= 1950 #publicationYear &lt; 1960</code>:
Use numeric operators to find all books published in the 1950s.</li>
<li><code>#dateNote &gt;= TODAY-30</code>: 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.</li>
<li><code>~author.title *=* Tolkien</code>: Find notes related to an author
whose title contains "Tolkien".</li>
<li><code>#publicationYear %= '19[0-9]{2}'</code>: Use the '%=' operator to
match a regular expression (regex). This feature has been available since
Trilium 0.52.</li>
</ul>
<h3>Advanced Use Cases</h3>
<ul>
<li><code>~author.relations.son.title = 'Christopher Tolkien'</code>: 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:
<ul>
<li>Books
<ul> <ul>
<li>From the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>, <li>Lord of the Rings
look for the dedicated search button.</li>
<li>To limit the search to a note and its children, select <em>Search from subtree</em> from
the&nbsp;<a class="reference-link" href="#root/_help_YtSN43OrfzaA">Note tree contextual menu</a>&nbsp;or
press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>S</kbd>.</li>
</ul>
<h2>Interaction</h2>
<p>To search for notes, click on the magnifying glass icon on the toolbar
or press the keyboard <a href="#root/_help_A9Oc6YKKc65v">shortcut</a>.</p>
<ol>
<li>Set the text to search for in the <em>Search string</em> field.
<ol>
<li>Apart from searching for words ad-literam, there is also the possibility
to search for attributes or properties of notes.</li>
<li>See the examples below for more information.</li>
</ol>
</li>
<li>To limit the search to a note and its sub-children, set a note in <em>Ancestor</em>.
<ol>
<li>This value is also pre-filled if the search is triggered from a <a href="#root/_help_OR8WJ7Iz9K4U">hoisted note</a> or
a <a href="#root/_help_9sRHySam5fXb">workspace</a>.</li>
<li>To search the entire database, keep the value empty.</li>
</ol>
</li>
<li>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 <em>depth</em> field to one
of the provided values.</li>
<li>In addition to that, the search can be configured via the <em>Add search options</em> buttons,
as described in the follow-up section.</li>
<li>Press <em>Search</em> to trigger the search. The results are displayed below
the search configuration pane.</li>
<li>The <em>Search &amp; Execute actions</em> button is only relevant if at
least one action has been added (as described in the section below).</li>
<li>The <em>Save to note</em> will create a new note with the search configuration.
For more information, see&nbsp;<a class="reference-link" href="#root/_help_m523cpzocqaD">Saved Search</a>.</li>
</ol>
<h2>Search options</h2>
<p>Click on which search option to apply from the Add search option section.</p>
<ul>
<li>For each search option selected, the search configuration will update
to reveal the entry. Each search option will have its own configuration.</li>
<li>To remove a search option, simply press the X button to the right of it.</li>
</ul>
<p>The options available are:</p>
<ol>
<li>Search script
<ol>
<li>This feature allows writing a&nbsp;<a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note
that will handle the search on its own.</li>
</ol>
</li>
<li>Fast search
<ol>
<li>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).</li>
<li>This method can speed up the search considerably for large <a href="#root/_help_wX4HbRucYSDD">databases</a>.</li>
</ol>
</li>
<li>Include archived
<ol>
<li><a class="reference-link" href="#root/_help_MKmLg5x6xkor">Archived Notes</a>&nbsp;will
also be included in the results, whereas otherwise they would be ignored.</li>
</ol>
</li>
<li>Order by
<ol>
<li>Allows changing the criteria for ordering the results, for example to
order by creation date or alphabetically instead of by relevancy (default).</li>
<li>It's also possible to change the order (ascending or descending) of the
results.</li>
</ol>
</li>
<li>Limit
<ol>
<li>Limits the results to a given maximum.</li>
<li>This can help if the number of results would otherwise be high, at the
cost of not being able to view all the results.</li>
</ol>
</li>
<li>Debug
<ol>
<li>This will print additional information in the server log (see&nbsp;
<a
class="reference-link" href="#root/_help_qzNzp9LYQyPT">Error logs</a>), regarding how the search expression was parsed.</li>
<li>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.</li>
</ol>
</li>
<li>Action
<ol>
<li>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.</li>
<li>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).</li>
<li>The actions given are the same as the ones in&nbsp;<a class="reference-link"
href="#root/_help_ivYnonVFBxbQ">Bulk Actions</a>, which is an alternative
for operating directly with notes within the&nbsp;<a class="reference-link"
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li>
<li>After defining the actions, first press <em>Search</em> to check the matched
notes and then press <em>Search &amp; Execute actions</em> to trigger the
actions.</li>
</ol>
</li>
</ol>
<h3>Simple Note Search Examples</h3>
<ul>
<li><code>rings tolkien</code>: Full-text search to find notes containing
both "rings" and "tolkien".</li>
<li><code>"The Lord of the Rings" Tolkien</code>: Full-text search where "The
Lord of the Rings" must match exactly.</li>
<li><code>note.content *=* rings OR note.content *=* tolkien</code>: Find
notes containing "rings" or "tolkien" in their content.</li>
<li><code>towers #book</code>: Combine full-text and attribute search to find
notes containing "towers" and having the "book" label.</li>
<li><code>towers #book or #author</code>: Search for notes containing "towers"
and having either the "book" or "author" label.</li>
<li><code>towers #!book</code>: Search for notes containing "towers" and not
having the "book" label.</li>
<li><code>#book #publicationYear = 1954</code>: Find notes with the "book"
label and "publicationYear" set to 1954.</li>
<li><code>#genre *=* fan</code>: Find notes with the "genre" label containing
the substring "fan". Additional operators include <code>*=*</code> for "contains", <code>=*</code> for
"starts with", <code>*=</code> for "ends with", and <code>!=</code> for "is
not equal to".</li>
<li><code>#book #publicationYear &gt;= 1950 #publicationYear &lt; 1960</code>:
Use numeric operators to find all books published in the 1950s.</li>
<li><code>#dateNote &gt;= TODAY-30</code>: 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.</li>
<li><code>~author.title *=* Tolkien</code>: Find notes related to an author
whose title contains "Tolkien".</li>
<li><code>#publicationYear %= '19[0-9]{2}'</code>: Use the '%=' operator to
match a regular expression (regex). This feature has been available since
Trilium 0.52.</li>
</ul>
<h3>Advanced Use Cases</h3>
<ul>
<li><code>~author.relations.son.title = 'Christopher Tolkien'</code>: 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:
<ul> <ul>
<li>Books <li>label: “book”</li>
<ul> <li>relation: “author” points to “J. R. R. Tolkien” note</li>
<li>Lord of the Rings
<ul>
<li>label: “book”</li>
<li>relation: “author” points to “J. R. R. Tolkien” note</li>
</ul>
</li>
</ul>
</li>
<li>People
<ul>
<li>J. R. R. Tolkien
<ul>
<li>relation: “son” points to "Christopher Tolkien" note</li>
<li>Christopher Tolkien</li>
</ul>
</li>
</ul>
</li>
</ul> </ul>
</li> </li>
<li><code>~author.title *= Tolkien OR (#publicationDate &gt;= 1954 AND #publicationDate &lt;= 1960)</code>:
Use boolean expressions and parentheses to group expressions. Note that
expressions starting with a parenthesis need an "expression separator sign"
(# or ~) prepended.</li>
<li><code>note.parents.title = 'Books'</code>: Find notes with a parent named
"Books".</li>
<li><code>note.parents.parents.title = 'Books'</code>: Find notes with a grandparent
named "Books".</li>
<li><code>note.ancestors.title = 'Books'</code>: Find notes with an ancestor
named "Books".</li>
<li><code>note.children.title = 'sub-note'</code>: Find notes with a child
named "sub-note".</li>
</ul> </ul>
<h3>Search with Note Properties</h3> </li>
<p>Notes have properties that can be used in searches, such as <code>noteId</code>, <code>dateModified</code>, <code>dateCreated</code>, <code>isProtected</code>, <code>type</code>, <code>title</code>, <code>text</code>, <code>content</code>, <code>rawContent</code>, <code>ownedLabelCount</code>, <code>labelCount</code>, <code>ownedRelationCount</code>, <code>relationCount</code>, <code>ownedRelationCountIncludingLinks</code>, <code>relationCountIncludingLinks</code>, <code>ownedAttributeCount</code>, <code>attributeCount</code>, <code>targetRelationCount</code>, <code>targetRelationCountIncludingLinks</code>, <code>parentCount</code>, <code>childrenCount</code>, <code>isArchived</code>, <code>contentSize</code>, <code>noteSize</code>, <li>People
and <code>revisionCount</code>.</p> <ul>
<p>These properties can be accessed via the <code>note.</code> prefix, e.g., <code>note.type = code AND note.mime = 'application/json'</code>.</p> <li>J. R. R. Tolkien
<h3>Order by and Limit</h3><pre><code class="language-text-x-trilium-auto">#author=Tolkien orderBy #publicationDate desc, note.title limit 10</code></pre> <ul>
<p>This example will:</p> <li>relation: “son” points to "Christopher Tolkien" note</li>
<ol> <li>Christopher Tolkien</li>
<li>Find notes with the author label "Tolkien".</li> </ul>
<li>Order the results by <code>publicationDate</code> in descending order.</li> </li>
<li>Use <code>note.title</code> as a secondary ordering if publication dates </ul>
are equal.</li> </li>
<li>Limit the results to the first 10 notes.</li> </ul>
</ol> </li>
<h3>Negation</h3> <li><code>~author.title *= Tolkien OR (#publicationDate &gt;= 1954 AND #publicationDate &lt;= 1960)</code>:
<p>Some queries can only be expressed with negation:</p><pre><code class="language-text-x-trilium-auto">#book AND not(note.ancestor.title = 'Tolkien')</code></pre> Use boolean expressions and parentheses to group expressions. Note that
<p>This query finds all book notes not in the "Tolkien" subtree.</p> expressions starting with a parenthesis need an "expression separator sign"
<h2>Under the Hood</h2> (# or ~) prepended.</li>
<h3>Label and Relation Shortcuts</h3> <li><code>note.parents.title = 'Books'</code>: Find notes with a parent named
<p>The "full" syntax for searching by labels is:</p><pre><code class="language-text-x-trilium-auto">note.labels.publicationYear = 1954</code></pre> "Books".</li>
<p>For relations:</p><pre><code class="language-text-x-trilium-auto">note.relations.author.title *=* Tolkien</code></pre> <li><code>note.parents.parents.title = 'Books'</code>: Find notes with a grandparent
<p>However, common label and relation searches have shortcut syntax:</p><pre><code class="language-text-x-trilium-auto">#publicationYear = 1954 named "Books".</li>
<li><code>note.ancestors.title = 'Books'</code>: Find notes with an ancestor
named "Books".</li>
<li><code>note.children.title = 'sub-note'</code>: Find notes with a child
named "sub-note".</li>
</ul>
<h3>Search with Note Properties</h3>
<p>Notes have properties that can be used in searches, such as <code>noteId</code>, <code>dateModified</code>, <code>dateCreated</code>, <code>isProtected</code>, <code>type</code>, <code>title</code>, <code>text</code>, <code>content</code>, <code>rawContent</code>, <code>ownedLabelCount</code>, <code>labelCount</code>, <code>ownedRelationCount</code>, <code>relationCount</code>, <code>ownedRelationCountIncludingLinks</code>, <code>relationCountIncludingLinks</code>, <code>ownedAttributeCount</code>, <code>attributeCount</code>, <code>targetRelationCount</code>, <code>targetRelationCountIncludingLinks</code>, <code>parentCount</code>, <code>childrenCount</code>, <code>isArchived</code>, <code>contentSize</code>, <code>noteSize</code>,
and <code>revisionCount</code>.</p>
<p>These properties can be accessed via the <code>note.</code> prefix, e.g., <code>note.type = code AND note.mime = 'application/json'</code>.</p>
<h3>Order by and Limit</h3><pre><code class="language-text-x-trilium-auto">#author=Tolkien orderBy #publicationDate desc, note.title limit 10</code></pre>
<p>This example will:</p>
<ol>
<li>Find notes with the author label "Tolkien".</li>
<li>Order the results by <code>publicationDate</code> in descending order.</li>
<li>Use <code>note.title</code> as a secondary ordering if publication dates
are equal.</li>
<li>Limit the results to the first 10 notes.</li>
</ol>
<h3>Negation</h3>
<p>Some queries can only be expressed with negation:</p><pre><code class="language-text-x-trilium-auto">#book AND not(note.ancestor.title = 'Tolkien')</code></pre>
<p>This query finds all book notes not in the "Tolkien" subtree.</p>
<h2>Under the Hood</h2>
<h3>Label and Relation Shortcuts</h3>
<p>The "full" syntax for searching by labels is:</p><pre><code class="language-text-x-trilium-auto">note.labels.publicationYear = 1954</code></pre>
<p>For relations:</p><pre><code class="language-text-x-trilium-auto">note.relations.author.title *=* Tolkien</code></pre>
<p>However, common label and relation searches have shortcut syntax:</p><pre><code class="language-text-x-trilium-auto">#publicationYear = 1954
#author.title *=* Tolkien</code></pre> #author.title *=* Tolkien</code></pre>
<h3>Separating Full-Text and Attribute Parts</h3> <h3>Separating Full-Text and Attribute Parts</h3>
<p>Search syntax allows combining full-text search with attribute-based search <p>Search syntax allows combining full-text search with attribute-based search
seamlessly. For example, <code>tolkien #book</code> contains:</p> seamlessly. For example, <code>tolkien #book</code> contains:</p>
<ol> <ol>
<li>Full-text tokens - <code>tolkien</code> <li>Full-text tokens - <code>tolkien</code>
</li> </li>
<li>Attribute expressions - <code>#book</code> <li>Attribute expressions - <code>#book</code>
</li> </li>
</ol> </ol>
<p>Trilium detects the separation between full text search and attribute/property <p>Trilium detects the separation between full text search and attribute/property
search by looking for certain special characters or words that denote attributes 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 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:</p><pre><code class="language-text-x-trilium-auto">"note.txt" search, escape them with a backslash so they are processed as regular text:</p><pre><code class="language-text-x-trilium-auto">"note.txt"
\#hash \#hash
#myLabel = 'Say "Hello World"'</code></pre> #myLabel = 'Say "Hello World"'</code></pre>
<h3>Escaping Special Characters</h3> <h3>Escaping Special Characters</h3>
<p>Special characters can be enclosed in quotes or escaped with a backslash <p>Special characters can be enclosed in quotes or escaped with a backslash
to be used in full-text search:</p><pre><code class="language-text-x-trilium-auto">"note.txt" to be used in full-text search:</p><pre><code class="language-text-x-trilium-auto">"note.txt"
\#hash \#hash
#myLabel = 'Say "Hello World"'</code></pre> #myLabel = 'Say "Hello World"'</code></pre>
<p>Three types of quotes are supported: single, double, and backtick.</p> <p>Three types of quotes are supported: single, double, and backtick.</p>
<h3>Type Coercion</h3> <h3>Type Coercion</h3>
<p>Label values are technically strings but can be coerced for numeric comparisons:</p><pre><code class="language-text-x-trilium-auto">note.dateCreated =* '2019-05'</code></pre> <p>Label values are technically strings but can be coerced for numeric comparisons:</p><pre><code class="language-text-x-trilium-auto">note.dateCreated =* '2019-05'</code></pre>
<p>This finds notes created in May 2019. Numeric operators like <code>#publicationYear &gt;= 1960</code> convert <p>This finds notes created in May 2019. Numeric operators like <code>#publicationYear &gt;= 1960</code> convert
string values to numbers for comparison.</p> string values to numbers for comparison.</p>
<h2>Auto-Trigger Search from URL</h2> <h2>Auto-Trigger Search from URL</h2>
<p>You can open Trilium and automatically trigger a search by including the <p>You can open Trilium and automatically trigger a search by including the
search <a href="https://meyerweb.com/eric/tools/dencoder/">url encoded</a> string search <a href="https://meyerweb.com/eric/tools/dencoder/">url encoded</a> string
in the URL:</p> in the URL:</p>
<p><code>http://localhost:8080/#?searchString=abc</code> <p><code>http://localhost:8080/#?searchString=abc</code>
</p> </p>
</div>
</div>
</body>
</html>

View File

@@ -1,35 +1,15 @@
<html> <figure class="image image-style-align-center">
<img style="aspect-ratio:1626/540;" src="Similar Notes_image.png" width="1626"
<head> height="540">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>The Similar Notes feature tries to identify notes that relate to the current
<link rel="stylesheet" href="../../../style.css"> note by looking at the content of the notes, their relationships, as well
<base target="_parent"> as the date they were created.</p>
<title data-trilium-title>Similar Notes</title> <p>To access the list of similar notes, press the “Similar Notes” tab in
</head> the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.</p>
<h2>Interaction</h2>
<body> <ul>
<div class="content"> <li>Hover over a note to see a short preview of the note.</li>
<h1 data-trilium-h1>Similar Notes</h1> <li>Click over a note to open it in the current view.</li>
<li><kbd>Ctrl</kbd> + click a note to open it in a separate tab.</li>
<div class="ck-content"> </ul>
<figure class="image image-style-align-center">
<img style="aspect-ratio:1626/540;" src="Similar Notes_image.png" width="1626"
height="540">
</figure>
<p>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.</p>
<p>To access the list of similar notes, press the “Similar Notes” tab in
the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.</p>
<h2>Interaction</h2>
<ul>
<li>Hover over a note to see a short preview of the note.</li>
<li>Click over a note to open it in the current view.</li>
<li><kbd>Ctrl</kbd> + click a note to open it in a separate tab.</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,46 +1,26 @@
<html> <p>This page explains the basic concepts related to the tree structure of
notes in TriliumNext.</p>
<head> <h2>Note</h2>
<meta charset="utf-8"> <p>A note is the central entity in TriliumNext. For more details, see <a href="#root/_help_BFs8mudNFgCS">Note</a>.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <h2>Branch</h2>
<link rel="stylesheet" href="../../../style.css"> <p>A branch describes the placement of a note within the note tree. Essentially,
<base target="_parent"> it is a tuple of <code>parentNoteId</code> and <code>noteId</code>, indicating
<title data-trilium-title>Tree Concepts</title> that the given note is placed as a child under the specified parent note.</p>
</head> <p>Each note can have multiple branches, meaning any note can be placed in
multiple locations within the tree. This concept is referred to as "
<body> <a
<div class="content"> href="#root/_help_IakOLONlIfGI">cloning</a>."</p>
<h1 data-trilium-h1>Tree Concepts</h1> <h2>Prefix</h2>
<p>A prefix is a branch-specific title modifier for a note. If you place
<div class="ck-content"> your note in two different locations within the tree and want to alter
<p>This page explains the basic concepts related to the tree structure of the title slightly in one of those placements, you can use a prefix.</p>
notes in TriliumNext.</p> <p>To edit a prefix, right-click on the note in the tree pane and select
<h2>Note</h2> "Edit branch prefix."</p>
<p>A note is the central entity in TriliumNext. For more details, see <a href="#root/_help_BFs8mudNFgCS">Note</a>.</p> <p>The prefix is not part of the note itself and is not encrypted when the
<h2>Branch</h2> note is protected. This can be useful if you want part of the title to
<p>A branch describes the placement of a note within the note tree. Essentially, remain visible in the tree for easier navigation, even when the note is
it is a tuple of <code>parentNoteId</code> and <code>noteId</code>, indicating protected.</p>
that the given note is placed as a child under the specified parent note.</p> <h2>Subtree</h2>
<p>Each note can have multiple branches, meaning any note can be placed in <p>A subtree consists of a particular note (the subtree root) and all its
multiple locations within the tree. This concept is referred to as " children and descendants. Some operations, such as exporting, work on entire
<a subtrees.</p>
href="#root/_help_IakOLONlIfGI">cloning</a>."</p>
<h2>Prefix</h2>
<p>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.</p>
<p>To edit a prefix, right-click on the note in the tree pane and select
"Edit branch prefix."</p>
<p>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.</p>
<h2>Subtree</h2>
<p>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.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,100 +1,80 @@
<html> <p>Workspace is a concept built up on top of <a href="#root/_help_OR8WJ7Iz9K4U">note hoisting</a>.
It is based on the idea that a user has several distinct spheres of interest.
<head> An example might be "Personal" and "Work", these two spheres are quite
<meta charset="utf-8"> distinct and don't interact together. When I focus on Work, I don't really
<meta name="viewport" content="width=device-width, initial-scale=1"> care about personal notes.</p>
<link rel="stylesheet" href="../../../style.css"> <p>So far workspace consists of these features:</p>
<base target="_parent"> <ul>
<title data-trilium-title>Workspaces</title> <li>
</head> <p><a href="#root/_help_OR8WJ7Iz9K4U">note hoisting</a> - you can "zoom" into
a workspace subtree to focus only on the relevant notes</p>
<body> </li>
<div class="content"> <li>
<h1 data-trilium-h1>Workspaces</h1> <p>easy entering of workspace:&nbsp;</p>
<p>
<div class="ck-content"> <img src="1_Workspaces_image.png">
<p>Workspace is a concept built up on top of <a href="#root/_help_OR8WJ7Iz9K4U">note hoisting</a>. </p>
It is based on the idea that a user has several distinct spheres of interest. </li>
An example might be "Personal" and "Work", these two spheres are quite <li>
distinct and don't interact together. When I focus on Work, I don't really <p>visual identification of workspace in tabs:
care about personal notes.</p> <br>
<p>So far workspace consists of these features:</p> <img src="Workspaces_image.png">
<ul> </p>
<li> </li>
<p><a href="#root/_help_OR8WJ7Iz9K4U">note hoisting</a> - you can "zoom" into </ul>
a workspace subtree to focus only on the relevant notes</p> <h3>Configuration</h3>
</li> <figure class="table">
<li> <table>
<p>easy entering of workspace:&nbsp;</p> <thead>
<p> <tr>
<img src="1_Workspaces_image.png"> <th>Label</th>
</p> <th>Description</th>
</li> </tr>
<li> </thead>
<p>visual identification of workspace in tabs: <tbody>
<br> <tr>
<img src="Workspaces_image.png"> <td><code>workspace</code>
</p> </td>
</li> <td>Marks this note as a workspace, button to enter the workspace is controlled
</ul> by this</td>
<h3>Configuration</h3> </tr>
<figure class="table"> <tr>
<table> <td><code>workspaceIconClass</code>
<thead> </td>
<tr> <td>defines box icon CSS class which will be used in tab when hoisted to this
<th>Label</th> note</td>
<th>Description</th> </tr>
</tr> <tr>
</thead> <td><code>workspaceTabBackgroundColor</code>
<tbody> </td>
<tr> <td>CSS color used in the note tab when hoisted to this note, use any CSS
<td><code>workspace</code> color format, e.g. "lightblue" or "#ddd". See <a href="https://www.w3schools.com/cssref/css_colors.asp">https://www.w3schools.com/cssref/css_colors.asp</a>.</td>
</td> </tr>
<td>Marks this note as a workspace, button to enter the workspace is controlled <tr>
by this</td> <td><code>workspaceCalendarRoot</code>
</tr> </td>
<tr> <td>Marking a note with this label will define a new per-workspace calendar
<td><code>workspaceIconClass</code> for&nbsp;<a class="reference-link" href="#root/_help_l0tKav7yLHGF">Day Notes</a>.
</td> If there's no such note, the global calendar will be used.</td>
<td>defines box icon CSS class which will be used in tab when hoisted to this </tr>
note</td> <tr>
</tr> <td><code>workspaceTemplate</code>
<tr> </td>
<td><code>workspaceTabBackgroundColor</code> <td>This note will appear in the selection of available template when creating
</td> new note, but only when hoisted into a workspace containing this template</td>
<td>CSS color used in the note tab when hoisted to this note, use any CSS </tr>
color format, e.g. "lightblue" or "#ddd". See <a href="https://www.w3schools.com/cssref/css_colors.asp">https://www.w3schools.com/cssref/css_colors.asp</a>.</td> <tr>
</tr> <td><code>workspaceSearchHome</code>
<tr> </td>
<td><code>workspaceCalendarRoot</code> <td>new search notes will be created as children of this note when hoisted
</td> to some ancestor of this workspace note</td>
<td>Marking a note with this label will define a new per-workspace calendar </tr>
for&nbsp;<a class="reference-link" href="#root/_help_l0tKav7yLHGF">Day Notes</a>. <tr>
If there's no such note, the global calendar will be used.</td> <td><code>workspaceInbox</code>
</tr> </td>
<tr> <td>default inbox location for new notes when hoisted to some ancestor of
<td><code>workspaceTemplate</code> this workspace note</td>
</td> </tr>
<td>This note will appear in the selection of available template when creating </tbody>
new note, but only when hoisted into a workspace containing this template</td> </table>
</tr> </figure>
<tr>
<td><code>workspaceSearchHome</code>
</td>
<td>new search notes will be created as children of this note when hoisted
to some ancestor of this workspace note</td>
</tr>
<tr>
<td><code>workspaceInbox</code>
</td>
<td>default inbox location for new notes when hoisted to some ancestor of
this workspace note</td>
</tr>
</tbody>
</table>
</figure>
</div>
</div>
</body>
</html>

View File

@@ -1,70 +1,50 @@
<html> <p>Note is a central entity in Trilium. Main attributes of note are title
and content.</p>
<head> <h3>Note types</h3>
<meta charset="utf-8"> <p>The main note type is a rich-text note type called&nbsp;<a class="reference-link"
<meta name="viewport" content="width=device-width, initial-scale=1"> href="#root/_help_iPIMuisry3hd">Text</a>. For diagrams and drawing there
<link rel="stylesheet" href="../../style.css"> is&nbsp;<a class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a>&nbsp;and&nbsp;
<base target="_parent"> <a
<title data-trilium-title>Notes</title> class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>.</p>
</head> <p>There are also more complex note types such as&nbsp;<a class="reference-link"
href="#root/_help_m523cpzocqaD">Saved Search</a>,&nbsp;<a class="reference-link"
<body> href="#root/_help_HcABDtFCkbFN">Render Note</a>&nbsp;that usually go hand-in-hand
<div class="content"> with&nbsp;<a class="reference-link" href="#root/_help_CdNpE2pqjmI6">Scripting</a>.</p>
<h1 data-trilium-h1>Notes</h1> <p>In Trilium there's no specific "folder" note type. Any note can have children
and thus be a folder.</p>
<div class="ck-content"> <h3>Root note</h3>
<p>Note is a central entity in Trilium. Main attributes of note are title <p>There's one special note called "root note" which is root of the note
and content.</p> tree. All other notes are placed below it in the structure.</p>
<h3>Note types</h3> <h3>Tree structure</h3>
<p>The main note type is a rich-text note type called&nbsp;<a class="reference-link" <p>Importantly, note itself doesn't carry information on its placement in
href="#root/_help_iPIMuisry3hd">Text</a>. For diagrams and drawing there note tree. See&nbsp;<a class="reference-link" href="#root/_help_IakOLONlIfGI">Cloning Notes</a>&nbsp;for
is&nbsp;<a class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a>&nbsp;and&nbsp; details.</p>
<a <p>Tree structure of notes can resemble file system - but compared to that
class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>.</p> notes in Trilium can act as both file and directory - meaning that note
<p>There are also more complex note types such as&nbsp;<a class="reference-link" can both have its own content and have children. "Leaf note" is a note
href="#root/_help_m523cpzocqaD">Saved Search</a>,&nbsp;<a class="reference-link" which doesn't have any children.</p>
href="#root/_help_HcABDtFCkbFN">Render Note</a>&nbsp;that usually go hand-in-hand <h3>Deleting / undeleting notes</h3>
with&nbsp;<a class="reference-link" href="#root/_help_CdNpE2pqjmI6">Scripting</a>.</p> <p>When you delete a note in Trilium, it is actually only marked for deletion
<p>In Trilium there's no specific "folder" note type. Any note can have children (soft-delete) - the actual content, title, attributes etc. are not deleted,
and thus be a folder.</p> only hidden.</p>
<h3>Root note</h3> <p>Within (by default) 7 days, it is possible to undelete these soft-deleted
<p>There's one special note called "root note" which is root of the note notes - open the&nbsp;<a class="reference-link" href="#root/_help_r5JGHN99bVKn">Recent Changes</a>&nbsp;dialog,
tree. All other notes are placed below it in the structure.</p> and you will see a list of all modified notes including the deleted ones.
<h3>Tree structure</h3> Notes available for undeletion have a link to do so. This is kind of "trash
<p>Importantly, note itself doesn't carry information on its placement in can" functionality known from e.g. Windows.</p>
note tree. See&nbsp;<a class="reference-link" href="#root/_help_IakOLONlIfGI">Cloning Notes</a>&nbsp;for <p>Clicking an undelete will recover the note, it's content and attributes
details.</p> - note should be just as before being deleted. This action will also undelete
<p>Tree structure of notes can resemble file system - but compared to that note's children which have been deleted in the same action.</p>
notes in Trilium can act as both file and directory - meaning that note <p>To be able to undelete a note, it is necessary that deleted note's parent
can both have its own content and have children. "Leaf note" is a note must be undeleted (otherwise there's no place where we can undelete it
which doesn't have any children.</p> to). This might become a problem when you delete more notes in succession
<h3>Deleting / undeleting notes</h3> - the solution is then undelete in the reverse order of your deletion.</p>
<p>When you delete a note in Trilium, it is actually only marked for deletion <p>After the 7 days (configurable) the notes will be "erased" - their title,
(soft-delete) - the actual content, title, attributes etc. are not deleted, content, revisions and attributes will be erased, and it will not be possible
only hidden.</p> anymore to recover them (unless you restore a&nbsp;<a class="reference-link"
<p>Within (by default) 7 days, it is possible to undelete these soft-deleted href="#root/_help_ODY7qQn5m2FT">Backup</a>).</p>
notes - open the&nbsp;<a class="reference-link" href="#root/_help_r5JGHN99bVKn">Recent Changes</a>&nbsp;dialog, <h2>See also</h2>
and you will see a list of all modified notes including the deleted ones. <ul>
Notes available for undeletion have a link to do so. This is kind of "trash <li><a class="reference-link" href="#root/_help_CoFPLs3dRlXc">Read-Only Notes</a>
can" functionality known from e.g. Windows.</p> </li>
<p>Clicking an undelete will recover the note, it's content and attributes </ul>
- note should be just as before being deleted. This action will also undelete
note's children which have been deleted in the same action.</p>
<p>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.</p>
<p>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&nbsp;<a class="reference-link"
href="#root/_help_ODY7qQn5m2FT">Backup</a>).</p>
<h2>See also</h2>
<ul>
<li><a class="reference-link" href="#root/_help_CoFPLs3dRlXc">Read-Only Notes</a>
</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,31 +1,11 @@
<html> <p>Archived notes are notes which have <code>archived</code> <a href="#root/_help_zEY4DaJG4YT5">attribute</a> -
either directly or <a href="#root/_help_bwZpz2ajCEwO">inherited</a>.</p>
<head> <p>Such notes are then by default not shown in the autocomplete and in the
<meta charset="utf-8"> full text <a href="#root/_help_eIg8jdvaoNNd">search</a>.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>This can be useful for notes which are no longer very useful but still
<link rel="stylesheet" href="../../../style.css"> valuable enough to keep around without them getting too much in the way.</p>
<base target="_parent"> <p>You can control whether archived notes are displayed in the note tree
<title data-trilium-title>Archived Notes</title> with a setting:</p>
</head> <p>
<img src="Archived Notes_hide-archiv.png">
<body> </p>
<div class="content">
<h1 data-trilium-h1>Archived Notes</h1>
<div class="ck-content">
<p>Archived notes are notes which have <code>archived</code> <a href="#root/_help_zEY4DaJG4YT5">attribute</a> -
either directly or <a href="#root/_help_bwZpz2ajCEwO">inherited</a>.</p>
<p>Such notes are then by default not shown in the autocomplete and in the
full text <a href="#root/_help_eIg8jdvaoNNd">search</a>.</p>
<p>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.</p>
<p>You can control whether archived notes are displayed in the note tree
with a setting:</p>
<p>
<img src="Archived Notes_hide-archiv.png">
</p>
</div>
</div>
</body>
</html>

View File

@@ -1,50 +1,30 @@
<html> <p>A <a href="#root/_help_BFs8mudNFgCS">note</a> in Trilium can <em>own</em> one
or more attachments, which can be either images or files. These attachments
<head> can be displayed or linked within the note that owns them.</p>
<meta charset="utf-8"> <p>This can be especially useful to include dependencies for your <a href="#root/_help_CdNpE2pqjmI6">scripts</a>.
<meta name="viewport" content="width=device-width, initial-scale=1"> The&nbsp;<a class="reference-link" href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a>&nbsp;shows
<link rel="stylesheet" href="../../../style.css"> how to use <a href="https://chartjs.org/">chartjs</a> which is attached to
<base target="_parent"> the script note.</p>
<title data-trilium-title>Attachments</title> <p>Each note exclusively owns its attachments, meaning attachments cannot
</head> 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
<body> copies are managed independently thereafter.</p>
<div class="content"> <p>Attachments, especially image files, are the recommended method for embedding
<h1 data-trilium-h1>Attachments</h1> visuals in notes. It is important to link image attachments within the
text of the owning note; otherwise, they will be automatically deleted
<div class="ck-content"> after a configurable timeout period if not referenced.</p>
<p>A <a href="#root/_help_BFs8mudNFgCS">note</a> in Trilium can <em>own</em> one <h2>Converting notes to attachments</h2>
or more attachments, which can be either images or files. These attachments <p><a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>&nbsp;notes
can be displayed or linked within the note that owns them.</p> can be easily converted to attachments of the parent note.</p>
<p>This can be especially useful to include dependencies for your <a href="#root/_help_CdNpE2pqjmI6">scripts</a>. <p>To do so:</p>
The&nbsp;<a class="reference-link" href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a>&nbsp;shows <ul>
how to use <a href="https://chartjs.org/">chartjs</a> which is attached to <li>For a single note, press the context menu from the&nbsp;<a class="reference-link"
the script note.</p> href="#root/_help_8YBEPzcpUgxw">Note buttons</a>&nbsp;and select <em>Convert into attachment</em>.</li>
<p>Each note exclusively owns its attachments, meaning attachments cannot <li>For multiple notes, select the given notes in the&nbsp;<a class="reference-link"
be shared or linked from one note to another. If an attachment link is href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>, right click → Advanced →
copied to a different note, the attachment itself is duplicated, and the Convert to attachment.</li>
copies are managed independently thereafter.</p> </ul>
<p>Attachments, especially image files, are the recommended method for embedding <h2>Attachment previews</h2>
visuals in notes. It is important to link image attachments within the <p>Attachments share the same content preview for images, videos, PDFs, etc.
text of the owning note; otherwise, they will be automatically deleted as the&nbsp;<a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>&nbsp;note
after a configurable timeout period if not referenced.</p> type.</p>
<h2>Converting notes to attachments</h2>
<p><a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>&nbsp;notes
can be easily converted to attachments of the parent note.</p>
<p>To do so:</p>
<ul>
<li>For a single note, press the context menu from the&nbsp;<a class="reference-link"
href="#root/_help_8YBEPzcpUgxw">Note buttons</a>&nbsp;and select <em>Convert into attachment</em>.</li>
<li>For multiple notes, select the given notes in the&nbsp;<a class="reference-link"
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>, right click → Advanced →
Convert to attachment.</li>
</ul>
<h2>Attachment previews</h2>
<p>Attachments share the same content preview for images, videos, PDFs, etc.
as the&nbsp;<a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>&nbsp;note
type.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,122 +1,102 @@
<html> <h2>Motivation</h2>
<p>Trilium's core feature is the ability to structure your notes into hierarchical
<head> tree-like structure.</p>
<meta charset="utf-8"> <p>It is expected then that you'll have an elaborate and deep note hierarchy
<meta name="viewport" content="width=device-width, initial-scale=1"> - each subtree will represent a more refined and specialized view of your
<link rel="stylesheet" href="../../../style.css"> knowledge base.</p>
<base target="_parent"> <p>This is a pretty powerful approach, but it also carries a hidden assumption
<title data-trilium-title>Cloning Notes</title> that each "subtopic" is "owned" by one parent. I'll illustrate this with
</head> an example - let's say my basic structure is this:</p>
<ul>
<body> <li>Technology
<div class="content"> <ul>
<h1 data-trilium-h1>Cloning Notes</h1> <li>Programming
<div class="ck-content">
<h2>Motivation</h2>
<p>Trilium's core feature is the ability to structure your notes into hierarchical
tree-like structure.</p>
<p>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.</p>
<p>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:</p>
<ul> <ul>
<li>Technology <li>Kotlin</li>
<li>JavaScript</li>
</ul>
</li>
<li>Operating systems
<ul>
<li>Linux</li>
<li>Windows</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Now, I'm starting to learn about <a href="https://en.wikipedia.org/wiki/Bash_(Unix_shell)">Bash</a> 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.</p>
<h2>Solution</h2>
<p>The solution to the problem shown above is to allow notes to have multiple
parents.</p>
<p>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.</p>
<p>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.</p>
<p>Here's the final structure with cloning:</p>
<ul>
<li>Technology
<ul>
<li>Programming
<ul>
<li>Kotlin</li>
<li>JavaScript</li>
<li>Bash
<ul> <ul>
<li>Programming <li>some sub-notes ...</li>
<ul>
<li>Kotlin</li>
<li>JavaScript</li>
</ul>
</li>
<li>Operating systems
<ul>
<li>Linux</li>
<li>Windows</li>
</ul>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<p>Now, I'm starting to learn about <a href="https://en.wikipedia.org/wiki/Bash_(Unix_shell)">Bash</a> and </li>
would like to create notes related to this topic. But now I'm facing a <li>Operating systems
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.</p>
<h2>Solution</h2>
<p>The solution to the problem shown above is to allow notes to have multiple
parents.</p>
<p>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.</p>
<p>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.</p>
<p>Here's the final structure with cloning:</p>
<ul> <ul>
<li>Technology <li>Linux
<ul> <ul>
<li>Programming <li>Bash
<ul> <ul>
<li>Kotlin</li> <li>some sub-notes ...</li>
<li>JavaScript</li>
<li>Bash
<ul>
<li>some sub-notes ...</li>
</ul>
</li>
</ul>
</li>
<li>Operating systems
<ul>
<li>Linux
<ul>
<li>Bash
<ul>
<li>some sub-notes ...</li>
</ul>
</li>
</ul>
</li>
<li>Windows</li>
</ul> </ul>
</li> </li>
</ul> </ul>
</li> </li>
<li>Windows</li>
</ul> </ul>
<p>So now the "Bash" subtree appears on multiple locations in the hierarchy. </li>
Both the Bash subtrees are the same and contain the same sub-categories </ul>
and notes.</p> </li>
<h3>Demo</h3> </ul>
<p> <p>So now the "Bash" subtree appears on multiple locations in the hierarchy.
<img src="Cloning Notes_create-clone.gif"> Both the Bash subtrees are the same and contain the same sub-categories
</p> and notes.</p>
<p>In the demo, you can see how a clone can be created using the context <h3>Demo</h3>
menu. It's possible to do this also using the Add Link dialog or with <kbd>Ctrl</kbd>+<kbd>C</kbd> and <kbd>Ctrl</kbd>+<kbd>V</kbd> <p>
<a <img src="Cloning Notes_create-clone.gif">
href="#root/_help_A9Oc6YKKc65v">keyboard shortcuts</a>.</p> </p>
<p>As seen in the demo, you can view the list of all available clones in <p>In the demo, you can see how a clone can be created using the context
the "Note Paths" tab in the Ribbon toolbar.</p> menu. It's possible to do this also using the Add Link dialog or with <kbd>Ctrl</kbd>+<kbd>C</kbd> and <kbd>Ctrl</kbd>+<kbd>V</kbd>
<p>Titles of cloned notes in the tree view have an asterisk to the right <a
to easily see that the note is also placed into some other location.</p> href="#root/_help_A9Oc6YKKc65v">keyboard shortcuts</a>.</p>
<h2>Deleting notes/clones</h2> <p>As seen in the demo, you can view the list of all available clones in
<p>With clones, it might not be immediately obvious how deleting works.</p> the "Note Paths" tab in the Ribbon toolbar.</p>
<p>If you try to delete a note, it works like this:</p> <p>Titles of cloned notes in the tree view have an asterisk to the right
<ol> to easily see that the note is also placed into some other location.</p>
<li>if the note has multiple clones, delete just this clone and leave the <h2>Deleting notes/clones</h2>
actual note (and its other clones) as it is.</li> <p>With clones, it might not be immediately obvious how deleting works.</p>
<li>if this note doesn't have any other clones, delete the note <p>If you try to delete a note, it works like this:</p>
<ul> <ol>
<li>Run the whole process starting with 1. on all note's children notes</li> <li>if the note has multiple clones, delete just this clone and leave the
</ul> actual note (and its other clones) as it is.</li>
</li> <li>if this note doesn't have any other clones, delete the note
</ol> <ul>
</div> <li>Run the whole process starting with 1. on all note's children notes</li>
</div> </ul>
</body> </li>
</ol>
</html>

View File

@@ -1,29 +1,9 @@
<html> <p>Since a single note can appear into multiple places in the&nbsp;<a class="reference-link"
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;via a process called&nbsp;
<head> <a
<meta charset="utf-8"> class="reference-link" href="#root/_help_IakOLONlIfGI">Cloning Notes</a>, it's recommended to choose a generalized name that
<meta name="viewport" content="width=device-width, initial-scale=1"> fits into all locations instead of something more specific to avoid confusion.</p>
<link rel="stylesheet" href="../../../../style.css"> <p>In some cases this isn't possible so Trilium provides "branch prefixes",
<base target="_parent"> which is shown before the note name in the tree and as such provides a
<title data-trilium-title>Branch prefix</title> specific kind of context.</p>
</head> <p>The prefix is location-specific, so it's displayed only in the note tree.</p>
<body>
<div class="content">
<h1 data-trilium-h1>Branch prefix</h1>
<div class="ck-content">
<p>Since a single note can appear into multiple places in the&nbsp;<a class="reference-link"
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;via a process called&nbsp;
<a
class="reference-link" href="#root/_help_IakOLONlIfGI">Cloning Notes</a>, it's recommended to choose a generalized name that
fits into all locations instead of something more specific to avoid confusion.</p>
<p>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.</p>
<p>The prefix is location-specific, so it's displayed only in the note tree.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,62 +1,42 @@
<html> <p>
<img src="Export as PDF_image.png">
<head> </p>
<meta charset="utf-8"> <p>Screenshot of the note contextual menu indicating the “Export as PDF”
<meta name="viewport" content="width=device-width, initial-scale=1"> option.</p>
<link rel="stylesheet" href="../../../style.css"> <p>On the desktop application of Trilium it is possible to export a note
<base target="_parent"> as PDF. On the server or PWA (mobile), the option is not available due
<title data-trilium-title>Export as PDF</title> to technical constraints and it will be hidden.</p>
</head> <p>To print a note, select the
<img src="1_Export as PDF_image.png">button to the right of the note and select <em>Export as PDF</em>.</p>
<body> <p>Afterwards you will be prompted to select where to save the PDF file.</p>
<div class="content"> <h2>Automatic opening of the file</h2>
<h1 data-trilium-h1>Export as PDF</h1> <p>When the PDF is exported, it is automatically opened with the system default
application for easy preview.</p>
<div class="ck-content"> <p>Note that if you are using Linux with the GNOME desktop environment, sometimes
<p> the default application might seem incorrect (such as opening in GIMP).
<img src="Export as PDF_image.png"> This is because it uses Gnome's “Recommended applications” list.</p>
</p> <p>To solve this, you can change the recommended application for PDFs via
<p>Screenshot of the note contextual menu indicating the “Export as PDF” this command line. First, list the available applications via <code>gio mime application/pdf</code> and
option.</p> then set the desired one. For example to use GNOME's Evince:</p><pre><code class="language-text-x-trilium-auto">gio mime application/pdf</code></pre>
<p>On the desktop application of Trilium it is possible to export a note <h2>Reporting issues with the rendering</h2>
as PDF. On the server or PWA (mobile), the option is not available due <p>Should you encounter any visual issues in the resulting PDF file (e.g.
to technical constraints and it will be hidden.</p> a table does not fit properly, there is cut off text, etc.) feel free to
<p>To print a note, select the <a
<img src="1_Export as PDF_image.png">button to the right of the note and select <em>Export as PDF</em>.</p> href="#root/_help_wy8So3yZZlH9">report the issue</a>. In this case, it's best to offer a sample note (click
<p>Afterwards you will be prompted to select where to save the PDF file.</p> on the
<h2>Automatic opening of the file</h2> <img src="1_Export as PDF_image.png">button, select Export note → This note and all of its descendants → HTML
<p>When the PDF is exported, it is automatically opened with the system default in ZIP archive). Make sure not to accidentally leak any personal information.</p>
application for easy preview.</p> <h2>Landscape mode</h2>
<p>Note that if you are using Linux with the GNOME desktop environment, sometimes <p>When exporting to PDF, there are no customizable settings such as page
the default application might seem incorrect (such as opening in GIMP). orientation, size, etc. However, it is possible to specify a given note
This is because it uses Gnome's “Recommended applications” list.</p> to be printed as a PDF in landscape mode by adding the <code>#printLandscape</code> attribute
<p>To solve this, you can change the recommended application for PDFs via to it (see&nbsp;<a class="reference-link" href="#root/_help_zEY4DaJG4YT5">Attributes</a>).</p>
this command line. First, list the available applications via <code>gio mime application/pdf</code> and <h2>Page size</h2>
then set the desired one. For example to use GNOME's Evince:</p><pre><code class="language-text-x-trilium-auto">gio mime application/pdf</code></pre> <p>By default, the resulting PDF will be in Letter format. It is possible
<h2>Reporting issues with the rendering</h2> to adjust it to another page size via the <code>#printPageSize</code> attribute,
<p>Should you encounter any visual issues in the resulting PDF file (e.g. with one of the following values: <code>A0</code>, <code>A1</code>, <code>A2</code>, <code>A3</code>, <code>A4</code>, <code>A5</code>, <code>A6</code>, <code>Legal</code>, <code>Letter</code>, <code>Tabloid</code>, <code>Ledger</code>.</p>
a table does not fit properly, there is cut off text, etc.) feel free to <h2>Keyboard shortcut</h2>
<a <p>It's possible to trigger the export to PDF from the keyboard by going
href="#root/_help_wy8So3yZZlH9">report the issue</a>. In this case, it's best to offer a sample note (click to&nbsp;<em>Keyboard shortcuts</em>&nbsp;in&nbsp;<a class="reference-link"
on the href="#root/_help_4TIF1oA4VQRO">Options</a>&nbsp;and assigning a key combination
<img src="1_Export as PDF_image.png">button, select Export note → This note and all of its descendants → HTML for the <code>exportAsPdf</code> action.</p>
in ZIP archive). Make sure not to accidentally leak any personal information.</p>
<h2>Landscape mode</h2>
<p>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 <code>#printLandscape</code> attribute
to it (see&nbsp;<a class="reference-link" href="#root/_help_zEY4DaJG4YT5">Attributes</a>).</p>
<h2>Page size</h2>
<p>By default, the resulting PDF will be in Letter format. It is possible
to adjust it to another page size via the <code>#printPageSize</code> attribute,
with one of the following values: <code>A0</code>, <code>A1</code>, <code>A2</code>, <code>A3</code>, <code>A4</code>, <code>A5</code>, <code>A6</code>, <code>Legal</code>, <code>Letter</code>, <code>Tabloid</code>, <code>Ledger</code>.</p>
<h2>Keyboard shortcut</h2>
<p>It's possible to trigger the export to PDF from the keyboard by going
to&nbsp;<em>Keyboard shortcuts</em>&nbsp;in&nbsp;<a class="reference-link"
href="#root/_help_4TIF1oA4VQRO">Options</a>&nbsp;and assigning a key combination
for the <code>exportAsPdf</code> action.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,32 +1,12 @@
<html> <p>Icons are useful for distinguishing notes. At the technical level, they
are set by the <code>iconClass</code> attribute which adds a CSS class to
<head> the note. For example <code>#iconClass="bx bx-calendar"</code> will show
<meta charset="utf-8"> a calendar instead of the default page or folder icon. Looking up and remembering
<meta name="viewport" content="width=device-width, initial-scale=1"> the css class names is not necessary. While editing a note, click on the
<link rel="stylesheet" href="../../../style.css"> icon next to the title to bring up a chooser gallery:</p>
<base target="_parent"> <p>
<title data-trilium-title>Note Icons</title> <img src="Note Icons_note-icon-chang.png" alt="change note icon">
</head> </p>
<p>
<body> <img src="Note Icons_note-icon-galle.png" alt="note icon gallery">
<div class="content"> </p>
<h1 data-trilium-h1>Note Icons</h1>
<div class="ck-content">
<p>Icons are useful for distinguishing notes. At the technical level, they
are set by the <code>iconClass</code> attribute which adds a CSS class to
the note. For example <code>#iconClass="bx bx-calendar"</code> 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:</p>
<p>
<img src="Note Icons_note-icon-chang.png" alt="change note icon">
</p>
<p>
<img src="Note Icons_note-icon-galle.png" alt="note icon gallery">
</p>
</div>
</div>
</body>
</html>

View File

@@ -1,77 +1,57 @@
<html> <p>When a note has one or more child notes, they will be listed at the end
of the note for easy navigation.</p>
<head> <h2>Configuration</h2>
<meta charset="utf-8"> <ul>
<meta name="viewport" content="width=device-width, initial-scale=1"> <li>To hide the note list for a particular note, simply apply the <code>hideChildrenOverview</code>
<link rel="stylesheet" href="../../../style.css"> <a
<base target="_parent"> href="#root/_help_zEY4DaJG4YT5">label</a>.</li>
<title data-trilium-title>Note List</title> <li>For some view types, such as Grid view, only a subset of notes will be
</head> displayed and pagination can be used to navigate through all of them for
performance reasons. To adjust the number of notes per page, set <code>pageSize</code> to
<body> the desired number.</li>
<div class="content"> </ul>
<h1 data-trilium-h1>Note List</h1> <h2>View types</h2>
<p>By default, the notes will be displayed in a grid, however there are also
<div class="ck-content"> some other view types available.</p>
<p>When a note has one or more child notes, they will be listed at the end <aside class="admonition tip">
of the note for easy navigation.</p> <p>Generally the view type can only be changed in a&nbsp;<a class="reference-link"
<h2>Configuration</h2> href="#root/_help_GTwFsgaA0lCt">Book</a>&nbsp;note from the&nbsp;<a class="reference-link"
<ul> href="#root/_help_BlN9DFI679QC">Ribbon</a>, but it can also be changed
<li>To hide the note list for a particular note, simply apply the <code>hideChildrenOverview</code> manually on any type of note using the <code>#viewType</code> attribute.</p>
<a </aside>
href="#root/_help_zEY4DaJG4YT5">label</a>.</li> <h3>Grid view</h3>
<li>For some view types, such as Grid view, only a subset of notes will be <figure class="image image-style-align-center">
displayed and pagination can be used to navigate through all of them for <img style="aspect-ratio:1025/655;" src="1_Note List_image.png" width="1025"
performance reasons. To adjust the number of notes per page, set <code>pageSize</code> to height="655">
the desired number.</li> </figure>
</ul> <p>This view presents the child notes in a grid format, allowing for a more
<h2>View types</h2> visual navigation experience.</p>
<p>By default, the notes will be displayed in a grid, however there are also <ul>
some other view types available.</p> <li>For&nbsp;<a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes,
<aside class="admonition tip"> the text can be slighly scrollable via the mouse wheel to reveal more context.</li>
<p>Generally the view type can only be changed in a&nbsp;<a class="reference-link" <li>For&nbsp;<a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;notes,
href="#root/_help_GTwFsgaA0lCt">Book</a>&nbsp;note from the&nbsp;<a class="reference-link" syntax highlighting is applied.</li>
href="#root/_help_BlN9DFI679QC">Ribbon</a>, but it can also be changed <li>For&nbsp;<a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>&nbsp;notes,
manually on any type of note using the <code>#viewType</code> attribute.</p> a preview is made available for audio, video and PDF notes.</li>
</aside> <li>If the note does not have a content, a list of its child notes will be
<h3>Grid view</h3> displayed instead.</li>
<figure class="image image-style-align-center"> </ul>
<img style="aspect-ratio:1025/655;" src="1_Note List_image.png" width="1025" <p>This is the default view type.</p>
height="655"> <h3>List view</h3>
</figure> <figure class="image image-style-align-center">
<p>This view presents the child notes in a grid format, allowing for a more <img style="aspect-ratio:1013/526;" src="Note List_image.png" width="1013"
visual navigation experience.</p> height="526">
<ul> </figure>
<li>For&nbsp;<a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes, <p>In the list view mode, each note is displayed in a single row with only
the text can be slighly scrollable via the mouse wheel to reveal more context.</li> the title and the icon of the note being visible by the default. By pressing
<li>For&nbsp;<a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;notes, the expand button it's possible to view the content of the note, as well
syntax highlighting is applied.</li> as the children of the note (recursively).</p>
<li>For&nbsp;<a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>&nbsp;notes, <h3>Calendar view</h3>
a preview is made available for audio, video and PDF notes.</li> <figure class="image image-style-align-center">
<li>If the note does not have a content, a list of its child notes will be <img style="aspect-ratio:1090/598;" src="2_Note List_image.png" width="1090"
displayed instead.</li> height="598">
</ul> </figure>
<p>This is the default view type.</p> <p>In the calendar view, child notes are represented as events, with a start
<h3>List view</h3> date and optionally an end date. The view also has interaction support
<figure class="image image-style-align-center"> such as moving or creating new events. See&nbsp;<a class="reference-link"
<img style="aspect-ratio:1013/526;" src="Note List_image.png" width="1013" href="#root/_help_xWbu3jpNWapp">Calendar View</a>&nbsp;for more information.</p>
height="526">
</figure>
<p>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).</p>
<h3>Calendar view</h3>
<figure class="image image-style-align-center">
<img style="aspect-ratio:1090/598;" src="2_Note List_image.png" width="1090"
height="598">
</figure>
<p>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&nbsp;<a class="reference-link"
href="#root/_help_xWbu3jpNWapp">Calendar View</a>&nbsp;for more information.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,387 +1,367 @@
<html> <figure class="image image-style-align-center">
<img style="aspect-ratio:767/606;" src="4_Calendar View_image.png" width="767"
<head> height="606">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>The Calendar view of Book notes will display each child note in a calendar
<link rel="stylesheet" href="../../../../style.css"> that has a start date and optionally an end date, as an event.</p>
<base target="_parent"> <p>The Calendar view has multiple display modes:</p>
<title data-trilium-title>Calendar View</title> <ul>
</head> <li>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
<body> time-specific events, not just all-day events.</li>
<div class="content"> <li>Month view, where the entire month is displayed and all-day events can
<h1 data-trilium-h1>Calendar View</h1> be inserted. Both time-specific events and all-day events are listed.</li>
<li>Year view, which displays the entire year for quick reference.</li>
<div class="ck-content"> <li>List view, which displays all the events of a given month in sequence.</li>
<figure class="image image-style-align-center"> </ul>
<img style="aspect-ratio:767/606;" src="4_Calendar View_image.png" width="767" <p>Unlike other Book view types, the Calendar view also allows some kind
height="606"> of interaction, such as moving events around as well as creating new ones.</p>
</figure> <h2>Creating a calendar</h2>
<p>The Calendar view of Book notes will display each child note in a calendar <figure class="table">
that has a start date and optionally an end date, as an event.</p> <table>
<p>The Calendar view has multiple display modes:</p> <thead>
<ul> <tr>
<li>Week view, where all the 7 days of the week (or 5 if the weekends are <th>&nbsp;</th>
hidden) are displayed in columns. This mode allows entering and displaying <th>&nbsp;</th>
time-specific events, not just all-day events.</li> <th>&nbsp;</th>
<li>Month view, where the entire month is displayed and all-day events can </tr>
be inserted. Both time-specific events and all-day events are listed.</li> </thead>
<li>Year view, which displays the entire year for quick reference.</li> <tbody>
<li>List view, which displays all the events of a given month in sequence.</li> <tr>
</ul> <td>1</td>
<p>Unlike other Book view types, the Calendar view also allows some kind <td>
of interaction, such as moving events around as well as creating new ones.</p> <img src="2_Calendar View_image.png">
<h2>Creating a calendar</h2> </td>
<figure class="table"> <td>The Calendar View works only for Book note types. To create a new note,
<table> right click on the note tree on the left and select Insert note after,
<thead> or Insert child note and then select <em>Book</em>.</td>
<tr> </tr>
<th>&nbsp;</th> <tr>
<th>&nbsp;</th> <td>2</td>
<th>&nbsp;</th> <td>
</tr> <img src="3_Calendar View_image.png">
</thead> </td>
<tbody> <td>Once created, the “View type” of the Book needs changed to “Calendar”,
<tr> by selecting the “Book Properties” tab in the ribbon.</td>
<td>1</td> </tr>
<td> </tbody>
<img src="2_Calendar View_image.png"> </table>
</td> </figure>
<td>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 <em>Book</em>.</td>
</tr>
<tr>
<td>2</td>
<td>
<img src="3_Calendar View_image.png">
</td>
<td>Once created, the “View type” of the Book needs changed to “Calendar”,
by selecting the “Book Properties” tab in the ribbon.</td>
</tr>
</tbody>
</table>
</figure>
<h2>Creating a new event/note</h2> <h2>Creating a new event/note</h2>
<ul> <ul>
<li>Clicking on a day will create a new child note and assign it to that particular <li>Clicking on a day will create a new child note and assign it to that particular
day. day.
<ul> <ul>
<li>You will be asked for the name of the new note. If the popup is dismissed <li>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.</li> by pressing the close button or escape, then the note will not be created.</li>
</ul> </ul>
</li> </li>
<li>It's possible to drag across multiple days to set both the start and end <li>It's possible to drag across multiple days to set both the start and end
date of a particular note. date of a particular note.
<br> <br>
<img src="Calendar View_image.png"> <img src="Calendar View_image.png">
</li> </li>
<li>Creating new notes from the calendar will respect the <code>~child:template</code> relation <li>Creating new notes from the calendar will respect the <code>~child:template</code> relation
if set on the book note.</li> if set on the book note.</li>
</ul> </ul>
<h2>Interacting with events</h2> <h2>Interacting with events</h2>
<ul> <ul>
<li>Hovering the mouse over an event will display information about the note. <li>Hovering the mouse over an event will display information about the note.
<br> <br>
<img src="7_Calendar View_image.png"> <img src="7_Calendar View_image.png">
</li> </li>
<li>Left clicking the event will go to that note. Middle clicking will open <li>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 the note in a new tab and right click will offer more options including
opening the note in a new split or window.</li> opening the note in a new split or window.</li>
<li>Drag and drop an event on the calendar to move it to another day.</li> <li>Drag and drop an event on the calendar to move it to another day.</li>
<li>The length of an event can be changed by placing the mouse to the right <li>The length of an event can be changed by placing the mouse to the right
edge of the event and dragging the mouse around.</li> edge of the event and dragging the mouse around.</li>
</ul> </ul>
<h2>Configuring the calendar</h2> <h2>Configuring the calendar</h2>
<p>The following attributes can be added to the book type:</p> <p>The following attributes can be added to the book type:</p>
<figure class="table"> <figure class="table">
<table> <table>
<thead> <thead>
<tr> <tr>
<th>Name</th> <th>Name</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td><code>#calendar:hideWeekends</code> <td><code>#calendar:hideWeekends</code>
</td> </td>
<td>When present (regardless of value), it will hide Saturday and Sundays <td>When present (regardless of value), it will hide Saturday and Sundays
from the calendar.</td> from the calendar.</td>
</tr> </tr>
<tr> <tr>
<td><code>#calendar:weekNumbers</code> <td><code>#calendar:weekNumbers</code>
</td> </td>
<td>When present (regardless of value), it will show the number of the week <td>When present (regardless of value), it will show the number of the week
on the calendar.</td> on the calendar.</td>
</tr> </tr>
<tr> <tr>
<td><code>#calendar:view</code> <td><code>#calendar:view</code>
</td> </td>
<td> <td>
<p>Which view to display in the calendar:</p> <p>Which view to display in the calendar:</p>
<ul> <ul>
<li><code>timeGridWeek</code> for the <em>week</em> view;</li> <li><code>timeGridWeek</code> for the <em>week</em> view;</li>
<li><code>dayGridMonth</code> for the <em>month</em> view;</li> <li><code>dayGridMonth</code> for the <em>month</em> view;</li>
<li><code>multiMonthYear</code> for the <em>year</em> view;</li> <li><code>multiMonthYear</code> for the <em>year</em> view;</li>
<li><code>listMonth</code> for the <em>list</em> view.</li> <li><code>listMonth</code> for the <em>list</em> view.</li>
</ul> </ul>
<p>Any other value will be dismissed and the default view (month) will be <p>Any other value will be dismissed and the default view (month) will be
used instead.</p> used instead.</p>
<p>The value of this label is automatically updated when changing the view <p>The value of this label is automatically updated when changing the view
using the UI buttons.</p> using the UI buttons.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><code>~child:template</code> <td><code>~child:template</code>
</td> </td>
<td>Defines the template for newly created notes in the calendar (via dragging <td>Defines the template for newly created notes in the calendar (via dragging
or clicking).</td> or clicking).</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</figure> </figure>
<p>In addition, the first day of the week can be either Sunday or Monday <p>In addition, the first day of the week can be either Sunday or Monday
and can be adjusted from the application settings.</p> and can be adjusted from the application settings.</p>
<h2>Configuring the calendar events</h2> <h2>Configuring the calendar events</h2>
<p>For each note of the calendar, the following attributes can be used:</p> <p>For each note of the calendar, the following attributes can be used:</p>
<figure <figure
class="table"> class="table">
<table> <table>
<thead> <thead>
<tr> <tr>
<th>Name</th> <th>Name</th>
<th>Description</th> <th>Description</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td><code>#startDate</code> <td><code>#startDate</code>
</td> </td>
<td>The date the event starts, which will display it in the calendar. The <td>The date the event starts, which will display it in the calendar. The
format is <code>YYYY-MM-DD</code> (year, month and day separated by a minus format is <code>YYYY-MM-DD</code> (year, month and day separated by a minus
sign).</td> sign).</td>
</tr> </tr>
<tr> <tr>
<td><code>#endDate</code> <td><code>#endDate</code>
</td> </td>
<td>Similar to <code>startDate</code>, mentions the end date if the event spans <td>Similar to <code>startDate</code>, mentions the end date if the event spans
across multiple days. The date is inclusive, so the end day is also considered. across multiple days. The date is inclusive, so the end day is also considered.
The attribute can be missing for single-day events.</td> The attribute can be missing for single-day events.</td>
</tr> </tr>
<tr> <tr>
<td><code>#startTime</code> <td><code>#startTime</code>
</td> </td>
<td>The time the event starts at. If this value is missing, then the event <td>The time the event starts at. If this value is missing, then the event
is considered a full-day event. The format is <code>HH:MM</code> (hours in is considered a full-day event. The format is <code>HH:MM</code> (hours in
24-hour format and minutes).</td> 24-hour format and minutes).</td>
</tr> </tr>
<tr> <tr>
<td><code>#endTime</code> <td><code>#endTime</code>
</td> </td>
<td>Similar to <code>startTime</code>, it mentions the time at which the event <td>Similar to <code>startTime</code>, it mentions the time at which the event
ends (in relation with <code>endDate</code> if present, or <code>startDate</code>).</td> ends (in relation with <code>endDate</code> if present, or <code>startDate</code>).</td>
</tr> </tr>
<tr> <tr>
<td><code>#color</code> <td><code>#color</code>
</td> </td>
<td>Displays the event with a specified color (named such as <code>red</code>, <code>gray</code> or <td>Displays the event with a specified color (named such as <code>red</code>, <code>gray</code> or
hex such as <code>#FF0000</code>). This will also change the color of the hex such as <code>#FF0000</code>). This will also change the color of the
note in other places such as the note tree.</td> note in other places such as the note tree.</td>
</tr> </tr>
<tr> <tr>
<td><code>#calendar:color</code> <td><code>#calendar:color</code>
</td> </td>
<td>Similar to <code>#color</code>, but applies the color only for the event <td>Similar to <code>#color</code>, but applies the color only for the event
in the calendar and not for other places such as the note tree.</td> in the calendar and not for other places such as the note tree.</td>
</tr> </tr>
<tr> <tr>
<td><code>#iconClass</code> <td><code>#iconClass</code>
</td> </td>
<td>If present, the icon of the note will be displayed to the left of the <td>If present, the icon of the note will be displayed to the left of the
event title.</td> event title.</td>
</tr> </tr>
<tr> <tr>
<td><code>#calendar:title</code> <td><code>#calendar:title</code>
</td> </td>
<td>Changes the title of an event to point to an attribute of the note other <td>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 <code>#</code> or <code>~</code> symbol). than the title, can either a label or a relation (without the <code>#</code> or <code>~</code> symbol).
See <em>Use-cases</em> for more information.</td> See <em>Use-cases</em> for more information.</td>
</tr> </tr>
<tr> <tr>
<td><code>#calendar:displayedAttributes</code> <td><code>#calendar:displayedAttributes</code>
</td> </td>
<td>Allows displaying the value of one or more attributes in the calendar <td>Allows displaying the value of one or more attributes in the calendar
like this:&nbsp;&nbsp;&nbsp;&nbsp; like this:&nbsp;&nbsp;&nbsp;&nbsp;
<br> <br>
<br> <br>
<img src="9_Calendar View_image.png">&nbsp;&nbsp; <img src="9_Calendar View_image.png">&nbsp;&nbsp;
<br> <br>
<br><code>#weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"</code>&nbsp;&nbsp; <br><code>#weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"</code>&nbsp;&nbsp;
<br> <br>
<br>It can also be used with relations, case in which it will display the <br>It can also be used with relations, case in which it will display the
title of the target note:&nbsp;&nbsp;&nbsp; title of the target note:&nbsp;&nbsp;&nbsp;
<br> <br>
<br><code>~assignee=@My assignee #calendar:displayedAttributes="assignee"</code> <br><code>~assignee=@My assignee #calendar:displayedAttributes="assignee"</code>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><code>#calendar:startDate</code> <td><code>#calendar:startDate</code>
</td> </td>
<td>Allows using a different label to represent the start date, other than <code>startDate</code> (e.g. <code>expiryDate</code>). <td>Allows using a different label to represent the start date, other than <code>startDate</code> (e.g. <code>expiryDate</code>).
The label name <strong>must not be</strong> prefixed with <code>#</code>. The label name <strong>must not be</strong> prefixed with <code>#</code>.
If the label is not defined for a note, the default will be used instead.</td> If the label is not defined for a note, the default will be used instead.</td>
</tr> </tr>
<tr> <tr>
<td><code>#calendar:endDate</code> <td><code>#calendar:endDate</code>
</td> </td>
<td>Similar to <code>#calendar:startDate</code>, allows changing the attribute <td>Similar to <code>#calendar:startDate</code>, allows changing the attribute
which is being used to read the end date.</td> which is being used to read the end date.</td>
</tr> </tr>
<tr> <tr>
<td><code>#calendar:startTime</code> <td><code>#calendar:startTime</code>
</td> </td>
<td>Similar to <code>#calendar:startDate</code>, allows changing the attribute <td>Similar to <code>#calendar:startDate</code>, allows changing the attribute
which is being used to read the start time.</td> which is being used to read the start time.</td>
</tr> </tr>
<tr> <tr>
<td><code>#calendar:endTime</code> <td><code>#calendar:endTime</code>
</td> </td>
<td>Similar to <code>#calendar:startDate</code>, allows changing the attribute <td>Similar to <code>#calendar:startDate</code>, allows changing the attribute
which is being used to read the end time.</td> which is being used to read the end time.</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</figure> </figure>
<h2>How the calendar works</h2> <h2>How the calendar works</h2>
<p> <p>
<img src="11_Calendar View_image.png"> <img src="11_Calendar View_image.png">
</p> </p>
<p>The calendar displays all the child notes of the book that have a <code>#startDate</code>. <p>The calendar displays all the child notes of the book that have a <code>#startDate</code>.
An <code>#endDate</code> can optionally be added.</p> An <code>#endDate</code> can optionally be added.</p>
<p>If editing the start date and end date from the note itself is desirable, <p>If editing the start date and end date from the note itself is desirable,
the following attributes can be added to the book note:</p><pre><code class="language-text-x-trilium-auto">#viewType=calendar #label:startDate(inheritable)="promoted,alias=Start Date,single,date" the following attributes can be added to the book note:</p><pre><code class="language-text-x-trilium-auto">#viewType=calendar #label:startDate(inheritable)="promoted,alias=Start Date,single,date"
#label:endDate(inheritable)="promoted,alias=End Date,single,date" #label:endDate(inheritable)="promoted,alias=End Date,single,date"
#hidePromotedAttributes </code></pre> #hidePromotedAttributes </code></pre>
<p>This will result in:</p> <p>This will result in:</p>
<p> <p>
<img src="10_Calendar View_image.png"> <img src="10_Calendar View_image.png">
</p> </p>
<p>When not used in a Journal, the calendar is recursive. That is, it will <p>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 look for events not just in its child notes but also in the children of
these child notes.</p> these child notes.</p>
<h2>Use-cases</h2> <h2>Use-cases</h2>
<h3>Using with the Journal / calendar</h3> <h3>Using with the Journal / calendar</h3>
<p>It is possible to integrate the calendar view into the Journal with day <p>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 notes. In order to do so change the note type of the Journal note (calendar
root) to Book and then select the Calendar View.</p> root) to Book and then select the Calendar View.</p>
<p>Based on the <code>#calendarRoot</code> (or <code>#workspaceCalendarRoot</code>) <p>Based on the <code>#calendarRoot</code> (or <code>#workspaceCalendarRoot</code>)
attribute, the calendar will know that it's in a calendar and apply the attribute, the calendar will know that it's in a calendar and apply the
following:</p> following:</p>
<ul> <ul>
<li>The calendar events are now rendered based on their <code>dateNote</code> attribute <li>The calendar events are now rendered based on their <code>dateNote</code> attribute
rather than <code>startDate</code>.</li> rather than <code>startDate</code>.</li>
<li>Interactive editing such as dragging over an empty era or resizing an <li>Interactive editing such as dragging over an empty era or resizing an
event is no longer possible.</li> event is no longer possible.</li>
<li>Clicking on the empty space on a date will automatically open that day's <li>Clicking on the empty space on a date will automatically open that day's
note or create it if it does not exist.</li> note or create it if it does not exist.</li>
<li>Direct children of a day note will be displayed on the calendar despite <li>Direct children of a day note will be displayed on the calendar despite
not having a <code>dateNote</code> attribute. Children of the child notes not having a <code>dateNote</code> attribute. Children of the child notes
will not be displayed.</li> will not be displayed.</li>
</ul> </ul>
<img src="8_Calendar View_image.png" width="1217" height="724"> <img src="8_Calendar View_image.png" width="1217" height="724">
<h3>Using a different attribute as event title</h3> <h3>Using a different attribute as event title</h3>
<p>By default, events are displayed on the calendar by their note title. <p>By default, events are displayed on the calendar by their note title.
However, it is possible to configure a different attribute to be displayed However, it is possible to configure a different attribute to be displayed
instead.</p> instead.</p>
<p>To do so, assign <code>#calendar:title</code> to the child note (not the <p>To do so, assign <code>#calendar:title</code> to the child note (not the
calendar/book note), with the value being <code>name</code> where <code>name</code> can calendar/book note), with the value being <code>name</code> where <code>name</code> can
be any label (make not to add the <code>#</code> prefix). The attribute can be any label (make not to add the <code>#</code> prefix). The attribute can
also come through inheritance such as a template attribute. If the note 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.</p> does not have the requested label, the title of the note will be used instead.</p>
<figure <figure
class="table" style="width:100%;"> class="table" style="width:100%;">
<table> <table>
<thead> <thead>
<tr> <tr>
<th>&nbsp;</th> <th>&nbsp;</th>
<th>&nbsp;</th> <th>&nbsp;</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td><pre><code class="language-text-x-trilium-auto">#startDate=2025-02-11 #endDate=2025-02-13 #name="My vacation" #calendar:title="name"</code></pre> <td><pre><code class="language-text-x-trilium-auto">#startDate=2025-02-11 #endDate=2025-02-13 #name="My vacation" #calendar:title="name"</code></pre>
</td> </td>
<td> <td>
<p>&nbsp;</p> <p>&nbsp;</p>
<figure class="image image-style-align-center"> <figure class="image image-style-align-center">
<img style="aspect-ratio:445/124;" src="5_Calendar View_image.png" width="445" <img style="aspect-ratio:445/124;" src="5_Calendar View_image.png" width="445"
height="124"> height="124">
</figure>
</td>
</tr>
</tbody>
</table>
</figure> </figure>
</td>
</tr>
</tbody>
</table>
</figure>
<h3>Using a relation attribute as event title</h3> <h3>Using a relation attribute as event title</h3>
<p>Similarly to using an attribute, use <code>#calendar:title</code> and set <p>Similarly to using an attribute, use <code>#calendar:title</code> and set
it to <code>name</code> where <code>name</code> is the name of the relation it to <code>name</code> where <code>name</code> is the name of the relation
to use.</p> to use.</p>
<p>Moreover, if there are more relations of the same name, they will be displayed <p>Moreover, if there are more relations of the same name, they will be displayed
as multiple events coming from the same note.</p> as multiple events coming from the same note.</p>
<figure class="table" <figure class="table"
style="width:100%;"> style="width:100%;">
<table> <table>
<thead> <thead>
<tr> <tr>
<th>&nbsp;</th> <th>&nbsp;</th>
<th>&nbsp;</th> <th>&nbsp;</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td><pre><code class="language-text-x-trilium-auto">#startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"</code></pre> <td><pre><code class="language-text-x-trilium-auto">#startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"</code></pre>
</td> </td>
<td> <td>
<img src="6_Calendar View_image.png" width="294" height="151"> <img src="6_Calendar View_image.png" width="294" height="151">
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</figure> </figure>
<p>Note that it's even possible to have a <code>#calendar:title</code> on the <p>Note that it's even possible to have a <code>#calendar:title</code> on the
target note (e.g. “John Smith”) which will try to render an attribute of 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 it. Note that it's not possible to use a relation here as well for safety
reasons (an accidental recursion &nbsp;of attributes could cause the application reasons (an accidental recursion &nbsp;of attributes could cause the application
to loop infinitely).</p> to loop infinitely).</p>
<figure class="table" style="width:100%;"> <figure class="table" style="width:100%;">
<table> <table>
<thead> <thead>
<tr> <tr>
<th>&nbsp;</th> <th>&nbsp;</th>
<th>&nbsp;</th> <th>&nbsp;</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td><pre><code class="language-text-x-trilium-auto">#calendar:title="shortName" #shortName="John S."</code></pre> <td><pre><code class="language-text-x-trilium-auto">#calendar:title="shortName" #shortName="John S."</code></pre>
</td> </td>
<td> <td>
<figure class="image image-style-align-center"> <figure class="image image-style-align-center">
<img style="aspect-ratio:296/150;" src="1_Calendar View_image.png" width="296" <img style="aspect-ratio:296/150;" src="1_Calendar View_image.png" width="296"
height="150"> height="150">
</figure> </figure>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</figure> </figure>
</div>
</div>
</body>
</html>

View File

@@ -1,44 +1,24 @@
<html> <p>Trilium supports seamless versioning of notes by storing snapshots ("revisions")
of notes at regular intervals.</p>
<head> <h2>Note Revisions Snapshot Interval</h2>
<meta charset="utf-8"> <p>Time interval of taking note snapshot is configurable in the Options -&gt;
<meta name="viewport" content="width=device-width, initial-scale=1"> Other dialog. This provides a tradeoff between more revisions and more
<link rel="stylesheet" href="../../../style.css"> data to store.</p>
<base target="_parent"> <p>To turn off note versioning for a particular note (or subtree), add <code>disableVersioning</code>
<title data-trilium-title>Note Revisions</title> <a
</head> href="#root/_help_zEY4DaJG4YT5">label</a>to the note.</p>
<h2>Note Revision Snapshots Limit</h2>
<body> <p>The limit on the number of note snapshots can be configured in the Options
<div class="content"> -&gt; Other dialog. The note revision snapshot number limit refers to the
<h1 data-trilium-h1>Note Revisions</h1> 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
<div class="ck-content"> for a single note through the <code>versioningLimit=X</code> label.</p>
<p>Trilium supports seamless versioning of notes by storing snapshots ("revisions") <p>The note limit will not take effect immediately; it will only apply when
of notes at regular intervals.</p> the note is modified.</p>
<h2>Note Revisions Snapshot Interval</h2> <p>You can click the <strong>Erase excess revision snapshots now</strong> button
<p>Time interval of taking note snapshot is configurable in the Options -&gt; to apply the changes immediately.</p>
Other dialog. This provides a tradeoff between more revisions and more <p>Note revisions can be accessed through the button on the right of ribbon
data to store.</p> toolbar.</p>
<p>To turn off note versioning for a particular note (or subtree), add <code>disableVersioning</code> <p>
<a <img src="Note Revisions_note-revisi.png">
href="#root/_help_zEY4DaJG4YT5">label</a>to the note.</p> </p>
<h2>Note Revision Snapshots Limit</h2>
<p>The limit on the number of note snapshots can be configured in the Options
-&gt; 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 <code>versioningLimit=X</code> label.</p>
<p>The note limit will not take effect immediately; it will only apply when
the note is modified.</p>
<p>You can click the <strong>Erase excess revision snapshots now</strong> button
to apply the changes immediately.</p>
<p>Note revisions can be accessed through the button on the right of ribbon
toolbar.</p>
<p>
<img src="Note Revisions_note-revisi.png">
</p>
</div>
</div>
</body>
</html>

View File

@@ -1,109 +1,89 @@
<html> <p>Trilium is designed to store a wide variety of data, including sensitive
information such as personal journals, credentials, or confidential documents.
<head> To safeguard this type of content, Trilium offers the option to protect
<meta charset="utf-8"> notes, which involves the following measures:</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <ul>
<link rel="stylesheet" href="../../../style.css"> <li><strong>Encryption:</strong> Protected notes are encrypted using a key
<base target="_parent"> derived from your password. This ensures that without the correct password,
<title data-trilium-title>Protected Notes</title> protected notes remain indecipherable. Even if someone gains access to
</head> your Trilium <a href="#root/_help_wX4HbRucYSDD">database</a>, they won't
be able to read your encrypted notes.</li>
<body> <li><strong>Time-limited access:</strong> To access protected notes, you must
<div class="content"> first enter your password, which decrypts the note for reading and writing.
<h1 data-trilium-h1>Protected Notes</h1> However, after a specified period of inactivity (10 minutes by default),
the note is unloaded from memory, requiring you to re-enter your password
<div class="ck-content"> to access it again.
<p>Trilium is designed to store a wide variety of data, including sensitive <ul>
information such as personal journals, credentials, or confidential documents. <li>The session timeout is extended automatically while you're interacting
To safeguard this type of content, Trilium offers the option to protect with the protected note, so if you're actively editing, the session remains
notes, which involves the following measures:</p> open. However, if you switch to an unprotected note, the session timer
<ul> starts, and the session expires after 10 minutes of inactivity unless you
<li><strong>Encryption:</strong> Protected notes are encrypted using a key return to the protected notes.</li>
derived from your password. This ensures that without the correct password, </ul>
protected notes remain indecipherable. Even if someone gains access to </li>
your Trilium <a href="#root/_help_wX4HbRucYSDD">database</a>, they won't <li><strong>Protection scope:</strong> Protected notes ensure the confidentiality
be able to read your encrypted notes.</li> of their content and partially their integrity. While unauthorized users
<li><strong>Time-limited access:</strong> To access protected notes, you must cannot read or edit protected notes, they can still delete or move them
first enter your password, which decrypts the note for reading and writing. outside of the protected session.</li>
However, after a specified period of inactivity (10 minutes by default), </ul>
the note is unloaded from memory, requiring you to re-enter your password <h2>Using Protected Notes</h2>
to access it again. <p>By default, notes are unprotected. To protect a note, simply click on
<ul> the shield icon next to the note's title, as shown here:</p>
<li>The session timeout is extended automatically while you're interacting <p>
with the protected note, so if you're actively editing, the session remains <img src="Protected Notes_protecting.gif" alt="example animation of unlocking protected notes">
open. However, if you switch to an unprotected note, the session timer </p>
starts, and the session expires after 10 minutes of inactivity unless you <h2>What is Encrypted?</h2>
return to the protected notes.</li> <p>Trilium encrypts the data within protected notes but not their metadata.
</ul> Specifically:</p>
</li> <p><strong>Encrypted:</strong>
<li><strong>Protection scope:</strong> Protected notes ensure the confidentiality </p>
of their content and partially their integrity. While unauthorized users <ul>
cannot read or edit protected notes, they can still delete or move them <li>Note title</li>
outside of the protected session.</li> <li>Note content</li>
</ul> <li>Images</li>
<h2>Using Protected Notes</h2> <li>File attachments</li>
<p>By default, notes are unprotected. To protect a note, simply click on </ul>
the shield icon next to the note's title, as shown here:</p> <p><strong>Not encrypted:</strong>
<p> </p>
<img src="Protected Notes_protecting.gif" alt="example animation of unlocking protected notes"> <ul>
</p> <li>Note structure (i.e., it remains visible that there are protected notes)</li>
<h2>What is Encrypted?</h2> <li>Metadata, such as the last modified date</li>
<p>Trilium encrypts the data within protected notes but not their metadata. <li><a href="#root/_help_zEY4DaJG4YT5">Attributes</a>
Specifically:</p> </li>
<p><strong>Encrypted:</strong> </ul>
</p> <h2>Encryption Details</h2>
<ul> <p>The following steps outline how encryption and decryption work in Trilium:</p>
<li>Note title</li> <ol>
<li>Note content</li> <li>The user enters a password.</li>
<li>Images</li> <li>The password is passed through the <a href="https://en.wikipedia.org/wiki/Scrypt">scrypt</a> algorithm
<li>File attachments</li> along with a "password verification" <a href="https://en.wikipedia.org/wiki/Salt_(cryptography)">salt</a> to
</ul> confirm that the password is correct.</li>
<p><strong>Not encrypted:</strong> <li>The password is then processed again through scrypt with an "encryption"
</p> salt, which generates a hash.
<ul> <ul>
<li>Note structure (i.e., it remains visible that there are protected notes)</li> <li>Scrypt is used for <a href="https://en.wikipedia.org/wiki/Key_stretching">key stretching</a> to
<li>Metadata, such as the last modified date</li> make the password harder to guess.</li>
<li><a href="#root/_help_zEY4DaJG4YT5">Attributes</a> </ul>
</li> </li>
</ul> <li>The generated hash is used to decrypt the actual <em>data encryption key</em>.
<h2>Encryption Details</h2> <ul>
<p>The following steps outline how encryption and decryption work in Trilium:</p> <li>The data encryption key is encrypted using <a href="https://en.wikipedia.org/wiki/Advanced_Encryption_Standard">AES-128</a> with
<ol> a random <a href="https://en.wikipedia.org/wiki/Initialization_vector">IV</a>.</li>
<li>The user enters a password.</li> <li>The data encryption key is randomly generated during the <a href="#root/_help_wX4HbRucYSDD">database</a> initialization
<li>The password is passed through the <a href="https://en.wikipedia.org/wiki/Scrypt">scrypt</a> algorithm and remains constant throughout the documents lifetime. When the password
along with a "password verification" <a href="https://en.wikipedia.org/wiki/Salt_(cryptography)">salt</a> to is changed, only this key is re-encrypted.</li>
confirm that the password is correct.</li> </ul>
<li>The password is then processed again through scrypt with an "encryption" </li>
salt, which generates a hash. <li>The data encryption key is then used to decrypt the actual content of
<ul> the note, including its title and body.
<li>Scrypt is used for <a href="https://en.wikipedia.org/wiki/Key_stretching">key stretching</a> to <ul>
make the password harder to guess.</li> <li>The encryption algorithm used is AES-128 with <a href="https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation">CBC mode</a>,
</ul> where a unique IV is generated for each encryption operation and stored
</li> with the cipher text.</li>
<li>The generated hash is used to decrypt the actual <em>data encryption key</em>. </ul>
<ul> </li>
<li>The data encryption key is encrypted using <a href="https://en.wikipedia.org/wiki/Advanced_Encryption_Standard">AES-128</a> with </ol>
a random <a href="https://en.wikipedia.org/wiki/Initialization_vector">IV</a>.</li> <h2>Sharing Protected Notes</h2>
<li>The data encryption key is randomly generated during the <a href="#root/_help_wX4HbRucYSDD">database</a> initialization <p>Protected notes cannot be shared in the same way as regular notes. Their
and remains constant throughout the documents lifetime. When the password encryption ensures that only authorized users with the correct password
is changed, only this key is re-encrypted.</li> can access them.</p>
</ul>
</li>
<li>The data encryption key is then used to decrypt the actual content of
the note, including its title and body.
<ul>
<li>The encryption algorithm used is AES-128 with <a href="https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation">CBC mode</a>,
where a unique IV is generated for each encryption operation and stored
with the cipher text.</li>
</ul>
</li>
</ol>
<h2>Sharing Protected Notes</h2>
<p>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.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,77 +1,57 @@
<html> <p>Some note types such as&nbsp;<a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;and&nbsp;
<a
<head> class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;notes in Trilium can be set to read-only. When a note is
<meta charset="utf-8"> in read-only mode, it is presented to the user in a non-editable view,
<meta name="viewport" content="width=device-width, initial-scale=1"> with the option to switch to editing mode if needed.</p>
<link rel="stylesheet" href="../../../style.css"> <h2>Automatic read-only mode</h2>
<base target="_parent"> <p>For optimization purposes, Trilium will automatically set very large notes
<title data-trilium-title>Read-Only Notes</title> to read-only. Displaying such lengthy notes in editing mode can slow down
</head> performance, especially when editing is unnecessary.</p>
<p>This behavior can be disabled on a per-note basis, by following the instructions
<body> of the next section.</p>
<div class="content"> <p>In addition, it's possible to change the number of characters at which
<h1 data-trilium-h1>Read-Only Notes</h1> the automatic read-only mode will trigger in&nbsp;<a class="reference-link"
href="#root/_help_4TIF1oA4VQRO">Options</a>&nbsp;by going to the options
<div class="ck-content"> for&nbsp;<a class="reference-link" href="#root/_hidden/_options/_help__optionsTextNotes">Text Notes</a>&nbsp;and&nbsp;
<p>Some note types such as&nbsp;<a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;and&nbsp; <a
<a class="reference-link" href="#root/_hidden/_options/_help__optionsCodeNotes">Code Notes</a>.</p>
class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;notes in Trilium can be set to read-only. When a note is <h2>Changing a note's read-only behavior</h2>
in read-only mode, it is presented to the user in a non-editable view, <p>Via the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>,
with the option to switch to editing mode if needed.</p> by going to the <em>Basic Properties</em> tab and looking for the <em>Editable</em> selection.
<h2>Automatic read-only mode</h2> The following options are possible:</p>
<p>For optimization purposes, Trilium will automatically set very large notes <ul>
to read-only. Displaying such lengthy notes in editing mode can slow down <li><strong>Auto</strong>
performance, especially when editing is unnecessary.</p> <br>This is the default behavior in which the note will be editable by default,
<p>This behavior can be disabled on a per-note basis, by following the instructions unless it becomes large enough to trigger read-only mode.</li>
of the next section.</p> <li><strong>Read-only</strong>
<p>In addition, it's possible to change the number of characters at which <br>The note will be always marked as read-only, regardless of its size. Nevertheless,
the automatic read-only mode will trigger in&nbsp;<a class="reference-link" it's still possible to temporarily edit the note if needed. This is generally
href="#root/_help_4TIF1oA4VQRO">Options</a>&nbsp;by going to the options useful for notes that are not prone to change.</li>
for&nbsp;<a class="reference-link" href="#root/_hidden/_options/_help__optionsTextNotes">Text Notes</a>&nbsp;and&nbsp; <li><strong>Always Editable</strong>
<a <br>This option will bypass the automatic read-only activation for this particular
class="reference-link" href="#root/_hidden/_options/_help__optionsCodeNotes">Code Notes</a>.</p> note. It's useful for large notes that are frequently edited.</li>
<h2>Changing a note's read-only behavior</h2> </ul>
<p>Via the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>, <p>If the <em>Editable</em> section is missing from the ribbon, then the note
by going to the <em>Basic Properties</em> tab and looking for the <em>Editable</em> selection. type does not support read-only mode.</p>
The following options are possible:</p> <h3>Manually setting the options</h3>
<ul> <p>Apart from using the ribbon as previously mentioned, it's also possible
<li><strong>Auto</strong> to use <a href="#root/_help_zEY4DaJG4YT5">labels</a> to change the behavior:</p>
<br>This is the default behavior in which the note will be editable by default, <ul>
unless it becomes large enough to trigger read-only mode.</li> <li>To set as read-only, apply the <code>readOnly</code> label to the note.</li>
<li><strong>Read-only</strong> <li>To disable automatic read-only (always editable), apply the <code>autoReadOnlyDisabled</code> label.</li>
<br>The note will be always marked as read-only, regardless of its size. Nevertheless, </ul>
it's still possible to temporarily edit the note if needed. This is generally <h2>Temporarily editing a read-only note</h2>
useful for notes that are not prone to change.</li> <p>When accessing a read-only note, it's possible to temporarily edit it
<li><strong>Always Editable</strong> by using the
<br>This option will bypass the automatic read-only activation for this particular <img src="Read-Only Notes_image.png">button in the&nbsp;<a class="reference-link" href="#root/_help_XpOYSgsLkTJy">Floating buttons</a>&nbsp;area.</p>
note. It's useful for large notes that are frequently edited.</li> <p>When pressed, the note will become editable but will become read-only
</ul> again after navigating to a different note.</p>
<p>If the <em>Editable</em> section is missing from the ribbon, then the note <h2>Special read-only behavior</h2>
type does not support read-only mode.</p> <p>Some note types have a special behavior based on whether the read-only
<h3>Manually setting the options</h3> mode is enabled:</p>
<p>Apart from using the ribbon as previously mentioned, it's also possible <ul>
to use <a href="#root/_help_zEY4DaJG4YT5">labels</a> to change the behavior:</p> <li><a class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>&nbsp;will
<ul> hide the Mermaid source code and display the diagram preview in full-size.
<li>To set as read-only, apply the <code>readOnly</code> label to the note.</li> In this case, the read-only mode can be easily toggled on or off via a
<li>To disable automatic read-only (always editable), apply the <code>autoReadOnlyDisabled</code> label.</li> dedicated button in the&nbsp;<a class="reference-link" href="#root/_help_XpOYSgsLkTJy">Floating buttons</a>&nbsp;area.</li>
</ul> </ul>
<h2>Temporarily editing a read-only note</h2>
<p>When accessing a read-only note, it's possible to temporarily edit it
by using the
<img src="Read-Only Notes_image.png">button in the&nbsp;<a class="reference-link" href="#root/_help_XpOYSgsLkTJy">Floating buttons</a>&nbsp;area.</p>
<p>When pressed, the note will become editable but will become read-only
again after navigating to a different note.</p>
<h2>Special read-only behavior</h2>
<p>Some note types have a special behavior based on whether the read-only
mode is enabled:</p>
<ul>
<li><a class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>&nbsp;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&nbsp;<a class="reference-link" href="#root/_help_XpOYSgsLkTJy">Floating buttons</a>&nbsp;area.</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,72 +1,52 @@
<html> <h2>Manual sorting</h2>
<p>You can sort notes by right-clicking the parent note in the&nbsp;<a class="reference-link"
<head> href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and selecting Advanced
<meta charset="utf-8"> -&gt; Sort notes by ... This will sort existing notes, but will not automatically
<meta name="viewport" content="width=device-width, initial-scale=1"> sort future notes added to this parent note.</p>
<link rel="stylesheet" href="../../../style.css"> <p>The sorting dialog allows:</p>
<base target="_parent"> <ul>
<title data-trilium-title>Sorting Notes</title> <li>Sorting by title, creation or modification date.</li>
</head> <li>Changing sorting direction can also be adjusted (ascending or descending).</li>
<li>Ensuring folders are displayed at the top.</li>
<body> <li>Natural sort, based on the sorting rules of a particular language.</li>
<div class="content"> </ul>
<h1 data-trilium-h1>Sorting Notes</h1> <h2>Automatic/Permanent Sorting</h2>
<p>Child notes can be automatically sorted by attaching specific <a href="#root/_help_zEY4DaJG4YT5">labels</a> to
<div class="ck-content"> the parent note:</p>
<h2>Manual sorting</h2> <ul>
<p>You can sort notes by right-clicking the parent note in the&nbsp;<a class="reference-link" <li><code>#sorted</code>: Enables sorting. Can optionally include the name
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and selecting Advanced of the note's property/label for sorting criteria (details below).</li>
-&gt; Sort notes by ... This will sort existing notes, but will not automatically <li><code>#sortDirection</code>: By default, sorting is ascending. Set this
sort future notes added to this parent note.</p> to <code>desc</code> to sort in descending order.</li>
<p>The sorting dialog allows:</p> <li><code>#sortFoldersFirst</code>: Notes with children will be sorted to
<ul> the top.</li>
<li>Sorting by title, creation or modification date.</li> </ul>
<li>Changing sorting direction can also be adjusted (ascending or descending).</li> <p>Sorting is done by comparing note properties or specific labels on child
<li>Ensuring folders are displayed at the top.</li> notes. There are four sorting levels, with the first having the highest
<li>Natural sort, based on the sorting rules of a particular language.</li> priority. Lower priority levels are applied only if higher priority comparisons
</ul> result in equality.</p>
<h2>Automatic/Permanent Sorting</h2> <ol>
<p>Child notes can be automatically sorted by attaching specific <a href="#root/_help_zEY4DaJG4YT5">labels</a> to <li><strong>Top Label Sorting</strong>: Child notes with the <code>#top</code> label
the parent note:</p> will appear at the top of the folder.</li>
<ul> <li><strong>Bottom Label Sorting</strong>: (Introduced in Trilium 0.62) Child
<li><code>#sorted</code>: Enables sorting. Can optionally include the name notes with the <code>#bottom</code> label will appear at the bottom of the
of the note's property/label for sorting criteria (details below).</li> folder.</li>
<li><code>#sortDirection</code>: By default, sorting is ascending. Set this <li><strong>Property/Label-Based Sorting</strong>: Sorting is based on the
to <code>desc</code> to sort in descending order.</li> parent note's <code>#sorted</code> label:
<li><code>#sortFoldersFirst</code>: Notes with children will be sorted to <ul>
the top.</li> <li><strong>Default Sorting</strong>: If <code>#sorted</code> has no value,
</ul> notes are sorted alphabetically.</li>
<p>Sorting is done by comparing note properties or specific labels on child <li><strong>Property Sorting</strong>: If <code>#sorted</code> is set to <code>title</code>, <code>dateModified</code>,
notes. There are four sorting levels, with the first having the highest or <code>dateCreated</code>, notes are sorted based on the specified property.</li>
priority. Lower priority levels are applied only if higher priority comparisons <li><strong>Label Sorting</strong>: If <code>#sorted</code> has any other value,
result in equality.</p> this value is treated as the name of a child note's label, and sorting
<ol> is based on the values of this label. For example, setting <code>#sorted=myOrder</code> on
<li><strong>Top Label Sorting</strong>: Child notes with the <code>#top</code> label the parent note and using <code>#myOrder=001</code>, <code>#myOrder=002</code>,
will appear at the top of the folder.</li> etc., on child notes.</li>
<li><strong>Bottom Label Sorting</strong>: (Introduced in Trilium 0.62) Child </ul>
notes with the <code>#bottom</code> label will appear at the bottom of the </li>
folder.</li> <li><strong>Alphabetical Sorting</strong>: Used as a last resort when other
<li><strong>Property/Label-Based Sorting</strong>: Sorting is based on the criteria result in equality.</li>
parent note's <code>#sorted</code> label: </ol>
<ul> <p>All comparisons are made string-wise (e.g., "1" &lt; "2" or "2020-10-10"
<li><strong>Default Sorting</strong>: If <code>#sorted</code> has no value, &lt; "2021-01-15", but also "2" &gt; "10").</p>
notes are sorted alphabetically.</li>
<li><strong>Property Sorting</strong>: If <code>#sorted</code> is set to <code>title</code>, <code>dateModified</code>,
or <code>dateCreated</code>, notes are sorted based on the specified property.</li>
<li><strong>Label Sorting</strong>: If <code>#sorted</code> 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 <code>#sorted=myOrder</code> on
the parent note and using <code>#myOrder=001</code>, <code>#myOrder=002</code>,
etc., on child notes.</li>
</ul>
</li>
<li><strong>Alphabetical Sorting</strong>: Used as a last resort when other
criteria result in equality.</li>
</ol>
<p>All comparisons are made string-wise (e.g., "1" &lt; "2" or "2020-10-10"
&lt; "2021-01-15", but also "2" &gt; "10").</p>
</div>
</div>
</body>
</html>

View File

@@ -1,37 +1,22 @@
<html> <h2>Default Themes</h2>
<p>Trilium comes with a couple pre-installed color themes, with the default
<head> being a light theme. To switch to a dark theme or any other available theme,
<meta charset="utf-8"> navigate to the Options menu (accessible via the app icon in the top-left
<meta name="viewport" content="width=device-width, initial-scale=1"> corner), select the Appearance tab, and choose your preferred theme.</p>
<link rel="stylesheet" href="../../style.css"> <p>
<base target="_parent"> <img src="Themes_dark-theme.png" alt="Dark Theme">
<title data-trilium-title>Themes</title> </p>
</head> <h2>Creating Custom CSS Themes</h2>
<p>Trilium supports custom user themes, allowing you to personalize the application's
<body> appearance. To create a custom theme, follow these steps:</p>
<div class="content"> <ol>
<h1 data-trilium-h1>Themes</h1> <li><strong>Create a CSS Code Note</strong>: Start by creating a new <a href="#root/_help_6f9hih2hXXZk">code note</a> with
the <code>CSS</code> type.</li>
<div class="ck-content"> <li><strong>Annotate with</strong> <code>#appTheme</code>: Add the <a href="#root/_help_zEY4DaJG4YT5">attribute</a> <code>#appTheme=my-theme-name</code> to
<h2>Default Themes</h2> your note, where <code>my-theme-name</code> is the name of your custom theme.</li>
<p>Trilium comes with a couple pre-installed color themes, with the default <li><strong>Define Your Styles</strong>: Write your custom CSS within the
being a light theme. To switch to a dark theme or any other available theme, note. Below is an example of a custom theme:</li>
navigate to the Options menu (accessible via the app icon in the top-left </ol><pre><code class="language-text-x-trilium-auto">@font-face {
corner), select the Appearance tab, and choose your preferred theme.</p>
<p>
<img src="Themes_dark-theme.png" alt="Dark Theme">
</p>
<h2>Creating Custom CSS Themes</h2>
<p>Trilium supports custom user themes, allowing you to personalize the application's
appearance. To create a custom theme, follow these steps:</p>
<ol>
<li><strong>Create a CSS Code Note</strong>: Start by creating a new <a href="#root/_help_6f9hih2hXXZk">code note</a> with
the <code>CSS</code> type.</li>
<li><strong>Annotate with</strong> <code>#appTheme</code>: Add the <a href="#root/_help_zEY4DaJG4YT5">attribute</a> <code>#appTheme=my-theme-name</code> to
your note, where <code>my-theme-name</code> is the name of your custom theme.</li>
<li><strong>Define Your Styles</strong>: Write your custom CSS within the
note. Below is an example of a custom theme:</li>
</ol><pre><code class="language-text-x-trilium-auto">@font-face {
font-family: 'Raleway'; font-family: 'Raleway';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
@@ -84,74 +69,69 @@ body .note-detail-text {
body .CodeMirror { body .CodeMirror {
filter: invert(100%) hue-rotate(180deg); filter: invert(100%) hue-rotate(180deg);
}</code></pre> }</code></pre>
<h3>Activating Your Custom Theme</h3> <h3>Activating Your Custom Theme</h3>
<p>Once you've created your custom theme:</p> <p>Once you've created your custom theme:</p>
<ol> <ol>
<li>Go to "Menu" -&gt; "Options" -&gt; "Appearance."</li> <li>Go to "Menu" -&gt; "Options" -&gt; "Appearance."</li>
<li>In the theme selection dropdown, you should see your custom theme listed <li>In the theme selection dropdown, you should see your custom theme listed
under the name you provided with the <code>#appTheme</code> <a href="#root/_help_zEY4DaJG4YT5">label</a>.</li> under the name you provided with the <code>#appTheme</code> <a href="#root/_help_zEY4DaJG4YT5">label</a>.</li>
<li>Select your custom theme to activate it.</li> <li>Select your custom theme to activate it.</li>
</ol> </ol>
<p>If you make changes to your theme, press <kbd>Ctrl</kbd> + <kbd>R</kbd> to <p>If you make changes to your theme, press <kbd>Ctrl</kbd> + <kbd>R</kbd> to
reload the frontend and apply your updates.</p> reload the frontend and apply your updates.</p>
<h3>Sharing and Importing Themes</h3> <h3>Sharing and Importing Themes</h3>
<p>Custom themes can be exported as <code>.tar</code> archives, which can be <p>Custom themes can be exported as <code>.tar</code> archives, which can be
shared with other users. However, be cautious when importing themes from shared with other users. However, be cautious when importing themes from
untrusted sources, as they may contain executable scripts that could pose untrusted sources, as they may contain executable scripts that could pose
security risks.</p> security risks.</p>
<p>An example user theme, <em>Steel Blue</em>, is available in the demo document.</p> <p>An example user theme, <em>Steel Blue</em>, is available in the demo document.</p>
<p> <p>
<img src="Themes_steel-blue.png" alt="Steel Blue Theme"> <img src="Themes_steel-blue.png" alt="Steel Blue Theme">
</p> </p>
<h3>Using Custom CSS for Specific Purposes</h3> <h3>Using Custom CSS for Specific Purposes</h3>
<p>In addition to full themes, Trilium allows for custom CSS that isn't tied <p>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 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 you might want to modify specific UI elements, such as changing the colors
of notes in the tree view.</p> of notes in the tree view.</p>
<h3>Applying Custom CSS</h3> <h3>Applying Custom CSS</h3>
<p>To use custom CSS:</p> <p>To use custom CSS:</p>
<ol> <ol>
<li><strong>Create a CSS Code Note</strong>: Create a new&nbsp;<a class="reference-link" <li><strong>Create a CSS Code Note</strong>: Create a new&nbsp;<a class="reference-link"
href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note with the <code>CSS</code> type.</li> href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note with the <code>CSS</code> type.</li>
<li><strong>Add the</strong> <code>appCss</code> <strong>Label</strong>: Annotate <li><strong>Add the</strong> <code>appCss</code> <strong>Label</strong>: Annotate
the note with the <code>#appCss</code> <a href="#root/_help_zEY4DaJG4YT5">label</a>.</li> the note with the <code>#appCss</code> <a href="#root/_help_zEY4DaJG4YT5">label</a>.</li>
<li><strong>Write Your CSS</strong>: Add your custom CSS rules to the note.</li> <li><strong>Write Your CSS</strong>: Add your custom CSS rules to the note.</li>
</ol> </ol>
<p>For example:</p><pre><code class="language-text-x-trilium-auto">/* Custom CSS to style specific elements */ <p>For example:</p><pre><code class="language-text-x-trilium-auto">/* Custom CSS to style specific elements */
.tree-item { .tree-item {
color: #ff6347; /* Change tree item color */ color: #ff6347; /* Change tree item color */
}</code></pre> }</code></pre>
<p>When Trilium's frontend starts, all notes labeled with <code>appCss</code> are <p>When Trilium's frontend starts, all notes labeled with <code>appCss</code> are
automatically included in the style element of the HTML page.</p> automatically included in the style element of the HTML page.</p>
<p>After making changes, press <kbd>Ctrl</kbd> + <kbd>R</kbd> to reload the frontend <p>After making changes, press <kbd>Ctrl</kbd> + <kbd>R</kbd> to reload the frontend
and apply your new styles.</p> and apply your new styles.</p>
<p> <p>
<img src="Themes_image.png"> <img src="Themes_image.png">
</p> </p>
<h3>Styling Specific Notes in the Tree</h3> <h3>Styling Specific Notes in the Tree</h3>
<p>To apply specific styles to certain notes in the tree:</p> <p>To apply specific styles to certain notes in the tree:</p>
<ul> <ul>
<li><strong>Use the</strong> <code>cssClass</code> <strong>Attribute</strong>: <li><strong>Use the</strong> <code>cssClass</code> <strong>Attribute</strong>:
Add the <code>cssClass</code> <a href="#root/_help_zEY4DaJG4YT5">attribute</a> to Add the <code>cssClass</code> <a href="#root/_help_zEY4DaJG4YT5">attribute</a> to
a note, and assign it a value representing the desired CSS class.</li> a note, and assign it a value representing the desired CSS class.</li>
<li><strong>Define an</strong> <code>iconClass</code>: You can also define <li><strong>Define an</strong> <code>iconClass</code>: You can also define
a custom icon for a note using the <code>iconClass</code> attribute, selecting a custom icon for a note using the <code>iconClass</code> attribute, selecting
from <a href="https://boxicons.com">Box Icons</a> or your own custom classes.</li> from <a href="https://boxicons.com">Box Icons</a> or your own custom classes.</li>
</ul> </ul>
<p>For example, if you want to style notes of a specific type, such as notes <p>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 <code>type-image mime-image-png</code>.</p> containing PNG images, you can target them with classes like <code>type-image mime-image-png</code>.</p>
<h3>User-Provided Themes</h3> <h3>User-Provided Themes</h3>
<p>A gallery of user-created themes is available, showcasing the variety <p>A gallery of user-created themes is available, showcasing the variety
of customizations that the Trilium community has developed. For more information, of customizations that the Trilium community has developed. For more information,
check the&nbsp;<a class="reference-link" href="#root/_help_VbjZvtUek0Ln">Theme Gallery</a>.</p> check the&nbsp;<a class="reference-link" href="#root/_help_VbjZvtUek0Ln">Theme Gallery</a>.</p>
<h3>Asset Path Management</h3> <h3>Asset Path Management</h3>
<p>When referencing built-in assets like images in your custom themes or <p>When referencing built-in assets like images in your custom themes or
CSS, you can avoid hardcoding version numbers by using the <code>vX</code> alias. CSS, you can avoid hardcoding version numbers by using the <code>vX</code> alias.
For example, instead of specifying <code>/assets/v0.57.0-beta/images/icon-grey.png</code>, For example, instead of specifying <code>/assets/v0.57.0-beta/images/icon-grey.png</code>,
you can use <code>/assets/vX/images/icon-grey.png</code> to keep your theme you can use <code>/assets/vX/images/icon-grey.png</code> to keep your theme
compatible with future versions of Trilium.</p> compatible with future versions of Trilium.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,146 +1,126 @@
<html> <p>These are user-created themes which were made publicly available:</p>
<h2>Legacy Themes</h2>
<head> <p>These themes may or may not be compatible with the latest versions of
<meta charset="utf-8"> TriliumNext and are based on the original/legacy theme.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <figure class="table">
<link rel="stylesheet" href="../../../style.css"> <table>
<base target="_parent"> <thead>
<title data-trilium-title>Theme Gallery</title> <tr>
</head> <th>Theme</th>
<th>Author</th>
<body> </tr>
<div class="content"> </thead>
<h1 data-trilium-h1>Theme Gallery</h1> <tbody>
<tr>
<div class="ck-content"> <td><a href="https://github.com/tobealive/trilium-midnight-theme">Midnight</a>
<p>These are user-created themes which were made publicly available:</p> </td>
<h2>Legacy Themes</h2> <td><a href="https://github.com/tobealive">tobealive</a>
<p>These themes may or may not be compatible with the latest versions of </td>
TriliumNext and are based on the original/legacy theme.</p> </tr>
<figure class="table"> <tr>
<table> <td><a href="https://github.com/tobealive/trilum-eote-theme">EOTE</a>
<thead> </td>
<tr> <td><a href="https://github.com/tobealive">tobealive</a>
<th>Theme</th> </td>
<th>Author</th> </tr>
</tr> <tr>
</thead> <td><a href="https://github.com/Abourass/TriliumThemes">Trilium Themes</a>
<tbody> </td>
<tr> <td><a href="https://github.com/Abourass">Abourass</a>
<td><a href="https://github.com/tobealive/trilium-midnight-theme">Midnight</a> </td>
</td> </tr>
<td><a href="https://github.com/tobealive">tobealive</a> <tr>
</td> <td><a href="https://github.com/ZMonk91/Material-Dark-Trilium">MaterialDark</a>
</tr> </td>
<tr> <td><a href="https://github.com/ZMonk91">ZMonk91</a>
<td><a href="https://github.com/tobealive/trilum-eote-theme">EOTE</a> </td>
</td> </tr>
<td><a href="https://github.com/tobealive">tobealive</a> <tr>
</td> <td><a href="https://github.com/jaroet/trilium-theme-lightslategray">lightslategray</a>
</tr> </td>
<tr> <td><a href="https://github.com/jaroet">jaroet</a>
<td><a href="https://github.com/Abourass/TriliumThemes">Trilium Themes</a> </td>
</td> </tr>
<td><a href="https://github.com/Abourass">Abourass</a> <tr>
</td> <td><a href="https://github.com/raphwriter/trilium-theme-melon">melon-4</a>
</tr> </td>
<tr> <td><a href="https://github.com/raphwriter">raphwriter</a>
<td><a href="https://github.com/ZMonk91/Material-Dark-Trilium">MaterialDark</a> </td>
</td> </tr>
<td><a href="https://github.com/ZMonk91">ZMonk91</a> <tr>
</td> <td><a href="https://github.com/Engr-AllanG/trilium-themes">Neon_Dark</a>
</tr> </td>
<tr> <td><a href="https://github.com/Engr-AllanG">Engr-AllanG</a>
<td><a href="https://github.com/jaroet/trilium-theme-lightslategray">lightslategray</a> </td>
</td> </tr>
<td><a href="https://github.com/jaroet">jaroet</a> <tr>
</td> <td><a href="https://github.com/Engr-AllanG/trilium-themes">Coder_Dark</a>
</tr> </td>
<tr> <td><a href="https://github.com/Engr-AllanG">Engr-AllanG</a>
<td><a href="https://github.com/raphwriter/trilium-theme-melon">melon-4</a> </td>
</td> </tr>
<td><a href="https://github.com/raphwriter">raphwriter</a> <tr>
</td> <td><a href="https://github.com/idelem/trilium-theme-velvet">velvet</a>
</tr> </td>
<tr> <td><a href="https://github.com/idelem">idelem</a>
<td><a href="https://github.com/Engr-AllanG/trilium-themes">Neon_Dark</a> </td>
</td> </tr>
<td><a href="https://github.com/Engr-AllanG">Engr-AllanG</a> <tr>
</td> <td><a href="https://github.com/SADAVA/trilium-notes-theme-dark-plus">Dark Plus</a>
</tr> </td>
<tr> <td><a href="https://github.com/SADAVA">SADAVA</a>
<td><a href="https://github.com/Engr-AllanG/trilium-themes">Coder_Dark</a> </td>
</td> </tr>
<td><a href="https://github.com/Engr-AllanG">Engr-AllanG</a> <tr>
</td> <td><a href="https://github.com/WKSu/trilium-solarized-theme">Solarized</a>
</tr> </td>
<tr> <td><a href="https://github.com/WKSu">WKSu</a>
<td><a href="https://github.com/idelem/trilium-theme-velvet">velvet</a> </td>
</td> </tr>
<td><a href="https://github.com/idelem">idelem</a> <tr>
</td> <td><a href="https://github.com/en3r0/Trilium-Nord-Theme">Nord</a>
</tr> </td>
<tr> <td><a href="https://github.com/en3r0">en3r0</a>
<td><a href="https://github.com/SADAVA/trilium-notes-theme-dark-plus">Dark Plus</a> </td>
</td> </tr>
<td><a href="https://github.com/SADAVA">SADAVA</a> <tr>
</td> <td><a href="https://github.com/AllanZyne/trilium-bear-theme">Bear Note Light</a>
</tr> </td>
<tr> <td><a href="https://github.com/AllanZyne">AllanZyne</a>
<td><a href="https://github.com/WKSu/trilium-solarized-theme">Solarized</a> </td>
</td> </tr>
<td><a href="https://github.com/WKSu">WKSu</a> <tr>
</td> <td><a href="https://github.com/AllanZyne/trilium-bear-theme">Bear Note Dark</a>
</tr> </td>
<tr> <td><a href="https://github.com/AllanZyne">AllanZyne</a>
<td><a href="https://github.com/en3r0/Trilium-Nord-Theme">Nord</a> </td>
</td> </tr>
<td><a href="https://github.com/en3r0">en3r0</a> <tr>
</td> <td><a href="https://github.com/Sebiann/miku-hatsune-trilium-theme">Miku Hatsune</a>
</tr> </td>
<tr> <td><a href="https://github.com/Sebiann">Sebiann</a>
<td><a href="https://github.com/AllanZyne/trilium-bear-theme">Bear Note Light</a> </td>
</td> </tr>
<td><a href="https://github.com/AllanZyne">AllanZyne</a> <tr>
</td> <td><a href="https://github.com/cwilliams5/Midnight-Trilium-Dark-Mode">Midnight</a>
</tr> </td>
<tr> <td><a href="https://github.com/cwilliams5">cwilliams5</a>
<td><a href="https://github.com/AllanZyne/trilium-bear-theme">Bear Note Dark</a> </td>
</td> </tr>
<td><a href="https://github.com/AllanZyne">AllanZyne</a> <tr>
</td> <td><a href="https://github.com/SiriusXT/trilium-theme-blue">Blue</a> (light)</td>
</tr> <td><a href="https://github.com/SiriusXT">SiriusXT</a>
<tr> </td>
<td><a href="https://github.com/Sebiann/miku-hatsune-trilium-theme">Miku Hatsune</a> </tr>
</td> <tr>
<td><a href="https://github.com/Sebiann">Sebiann</a> <td><a href="https://github.com/SiriusXT/trilium-theme-blue">Blue</a> (dark)</td>
</td> <td><a href="https://github.com/SiriusXT">SiriusXT</a>
</tr> </td>
<tr> </tr>
<td><a href="https://github.com/cwilliams5/Midnight-Trilium-Dark-Mode">Midnight</a> </tbody>
</td> </table>
<td><a href="https://github.com/cwilliams5">cwilliams5</a> </figure>
</td> <aside class="admonition tip">
</tr> <p>If you would like to add your theme to this gallery, write a new post
<tr> in <a href="https://github.com/TriliumNext/Notes/discussions/categories/show-and-tell">👐 Show and tell</a>.</p>
<td><a href="https://github.com/SiriusXT/trilium-theme-blue">Blue</a> (light)</td> </aside>
<td><a href="https://github.com/SiriusXT">SiriusXT</a>
</td>
</tr>
<tr>
<td><a href="https://github.com/SiriusXT/trilium-theme-blue">Blue</a> (dark)</td>
<td><a href="https://github.com/SiriusXT">SiriusXT</a>
</td>
</tr>
</tbody>
</table>
</figure>
<aside class="admonition tip">
<p>If you would like to add your theme to this gallery, write a new post
in <a href="https://github.com/TriliumNext/Notes/discussions/categories/show-and-tell">👐 Show and tell</a>.</p>
</aside>
</div>
</div>
</body>
</html>

View File

@@ -1,41 +1,21 @@
<html> <figure class="image image-style-align-center">
<img style="aspect-ratio:893/144;" src="Floating buttons_image.png" width="893"
<head> height="144">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>Depending on the current note, a panel will appear near the top-right
<link rel="stylesheet" href="../../../style.css"> of the note, right underneath the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.
<base target="_parent"> These buttons offer additional interaction that is specific to that particular
<title data-trilium-title>Floating buttons</title> note.</p>
</head> <p>For example:</p>
<ul>
<body> <li>For&nbsp;<a class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>&nbsp;and&nbsp;
<div class="content"> <a
<h1 data-trilium-h1>Floating buttons</h1> class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a>, there are buttons to download the SVG representation of the
note, or to copy a reference to the note for pasting it a&nbsp;<a class="reference-link"
<div class="ck-content"> href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;note.</li>
<figure class="image image-style-align-center"> <li>For <a href="#root/_help_CoFPLs3dRlXc">read-only notes</a>, there is a
<img style="aspect-ratio:893/144;" src="Floating buttons_image.png" width="893" button to temporarily edit the note for quick modifications.</li>
height="144"> </ul>
</figure> <h2>Interaction</h2>
<p>Depending on the current note, a panel will appear near the top-right <p>The floating button area can be collapsed by pressing the two right arrows
of the note, right underneath the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>. at the end of the section.</p>
These buttons offer additional interaction that is specific to that particular
note.</p>
<p>For example:</p>
<ul>
<li>For&nbsp;<a class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>&nbsp;and&nbsp;
<a
class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a>, there are buttons to download the SVG representation of the
note, or to copy a reference to the note for pasting it a&nbsp;<a class="reference-link"
href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;note.</li>
<li>For <a href="#root/_help_CoFPLs3dRlXc">read-only notes</a>, there is a
button to temporarily edit the note for quick modifications.</li>
</ul>
<h2>Interaction</h2>
<p>The floating button area can be collapsed by pressing the two right arrows
at the end of the section.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,29 +1,9 @@
<html> <p>The global menu configures the current window (zoom, keeping the window
on top) and offers access to some more advanced options.</p>
<head> <p>
<meta charset="utf-8"> <img src="Global menu_image.png">
<meta name="viewport" content="width=device-width, initial-scale=1"> </p>
<link rel="stylesheet" href="../../../style.css"> <h2>Accessing the global menu</h2>
<base target="_parent"> <p>See&nbsp;<a href="#root/_help_x0JgW8UqGXvq">Vertical and horizontal layout</a>&nbsp;since
<title data-trilium-title>Global menu</title> the position of the global menu is changed based on which layout has been
</head> selected.</p>
<body>
<div class="content">
<h1 data-trilium-h1>Global menu</h1>
<div class="ck-content">
<p>The global menu configures the current window (zoom, keeping the window
on top) and offers access to some more advanced options.</p>
<p>
<img src="Global menu_image.png">
</p>
<h2>Accessing the global menu</h2>
<p>See&nbsp;<a href="#root/_help_x0JgW8UqGXvq">Vertical and horizontal layout</a>&nbsp;since
the position of the global menu is changed based on which layout has been
selected.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,111 +1,91 @@
<html> <h2>Position of the Launch bar</h2>
<p>Depending on the layout selected, the launcher bar will either be on the
<head> left side of the screen with buttons displayed vertically or at the top
<meta charset="utf-8"> of the screen. See&nbsp;<a href="#root/_help_x0JgW8UqGXvq">Vertical and horizontal layout</a>&nbsp;for
<meta name="viewport" content="width=device-width, initial-scale=1"> more information.</p>
<link rel="stylesheet" href="../../../style.css"> <h2>Terminology</h2>
<base target="_parent"> <ul>
<title data-trilium-title>Launch Bar</title> <li><strong>Launcher</strong>: a button that can be (or is) displayed on the
</head> launch bar.</li>
<li><strong>Available Launcher</strong>: a launcher that is not displayed
<body> on the launch bar, but can be added.</li>
<div class="content"> <li><strong>Visible Launcher</strong>: a launcher that is currently displayed
<h1 data-trilium-h1>Launch Bar</h1> on the launch bar.</li>
</ul>
<div class="ck-content"> <h2>Configuring the Launch bar</h2>
<h2>Position of the Launch bar</h2> <p>There are two ways to configure the launch bar:</p>
<p>Depending on the layout selected, the launcher bar will either be on the <ul>
left side of the screen with buttons displayed vertically or at the top <li>Right click in the empty space between launchers on the launch bar and
of the screen. See&nbsp;<a href="#root/_help_x0JgW8UqGXvq">Vertical and horizontal layout</a>&nbsp;for select <em>Configure Launchbar.</em>
more information.</p> </li>
<h2>Terminology</h2> <li>Click on the&nbsp;<a href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and
<ul> select <em>Configure Launchbar</em>.</li>
<li><strong>Launcher</strong>: a button that can be (or is) displayed on the </ul>
launch bar.</li> <p>This will open a new tab with the&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;listing
<li><strong>Available Launcher</strong>: a launcher that is not displayed the launchers.</p>
on the launch bar, but can be added.</li> <p>
<li><strong>Visible Launcher</strong>: a launcher that is currently displayed <img src="Launch Bar_image.png">
on the launch bar.</li> </p>
</ul> <p>Expanding <em>Available Launchers</em> section will show the list of launchers
<h2>Configuring the Launch bar</h2> that are not displayed on the launch bar. The <em>Visible Launchers</em> will
<p>There are two ways to configure the launch bar:</p> show the ones that are currently displayed.</p>
<ul> <h3>Adding/removing and reordering launchers</h3>
<li>Right click in the empty space between launchers on the launch bar and <p>To display a new launcher in the launch bar, first look for it in the <em>Available Launchers</em> section.
select <em>Configure Launchbar.</em> Then right click it and select <em>Move to visible launchers</em>. It is
</li> also possible to drag and drop the item manually.</p>
<li>Click on the&nbsp;<a href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and <p>Similarly, to remove it from the launch bar, simply look for it in <em>Visible Launchers</em> then
select <em>Configure Launchbar</em>.</li> right click it and select <em>Move to available launchers</em> or use drag-and-drop.</p>
</ul> <p>Drag-and-drop the items in the&nbsp;tree&nbsp;in order to change their
<p>This will open a new tab with the&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;listing order. See&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;for
the launchers.</p> more interaction options, including using keyboard shortcuts.</p>
<p> <h2>Customizing the launcher</h2>
<img src="Launch Bar_image.png"> <ul>
</p> <li>The icon of a launcher can be changed just like a normal note. See&nbsp;
<p>Expanding <em>Available Launchers</em> section will show the list of launchers <a
that are not displayed on the launch bar. The <em>Visible Launchers</em> will href="#root/_help_p9kXRFAkwN4o">Note Icons</a>&nbsp;for more information.</li>
show the ones that are currently displayed.</p> <li>The title of the launcher can also be changed.</li>
<h3>Adding/removing and reordering launchers</h3> </ul>
<p>To display a new launcher in the launch bar, first look for it in the <em>Available Launchers</em> section. <h3>Resetting</h3>
Then right click it and select <em>Move to visible launchers</em>. It is <p>Resetting allows restoring the original configuration of Trilium for the
also possible to drag and drop the item manually.</p> launcher bar, or for a portion of it. Simply right click a launcher (or
<p>Similarly, to remove it from the launch bar, simply look for it in <em>Visible Launchers</em> then even the entire <em>Launch Bar</em> section) and select <em>Reset</em> to bring
right click it and select <em>Move to available launchers</em> or use drag-and-drop.</p> it back to the original state.</p>
<p>Drag-and-drop the items in the&nbsp;tree&nbsp;in order to change their <h3>Creating new launchers / types of launchers</h3>
order. See&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;for <p>Right click either the <em>Available launchers</em> or <em>Visible launchers</em> sections
more interaction options, including using keyboard shortcuts.</p> and select one of the options:</p>
<h2>Customizing the launcher</h2> <ol>
<ul> <li>
<li>The icon of a launcher can be changed just like a normal note. See&nbsp; <p><strong>Note Launcher</strong>
<a <br>A note launcher will simply navigate to a specified note.</p>
href="#root/_help_p9kXRFAkwN4o">Note Icons</a>&nbsp;for more information.</li> <ol>
<li>The title of the launcher can also be changed.</li> <li>Set the <code>target</code> promoted attribute to the note to navigate to.</li>
</ul> <li>Optionally, set <code>hoistedNote</code> to hoist a particular note. See&nbsp;
<h3>Resetting</h3> <a
<p>Resetting allows restoring the original configuration of Trilium for the href="#root/_help_OR8WJ7Iz9K4U">Note Hoisting</a>&nbsp;for more information.</li>
launcher bar, or for a portion of it. Simply right click a launcher (or <li>Optionally, set a <code>keyboardShortcut</code> to trigger the launcher.</li>
even the entire <em>Launch Bar</em> section) and select <em>Reset</em> to bring </ol>
it back to the original state.</p> </li>
<h3>Creating new launchers / types of launchers</h3> <li>
<p>Right click either the <em>Available launchers</em> or <em>Visible launchers</em> sections <p><strong>Script Launcher</strong>
and select one of the options:</p> <br>An advanced launcher which will run a script upon pressing. See&nbsp;
<ol> <a
<li> href="#root/_help_CdNpE2pqjmI6">Scripts</a>&nbsp;for more information.</p>
<p><strong>Note Launcher</strong> <ol>
<br>A note launcher will simply navigate to a specified note.</p> <li>Set <code>script</code> to point to the desired script to run.</li>
<ol> <li>Optionally, set a <code>keyboardShortcut</code> to trigger the launcher.</li>
<li>Set the <code>target</code> promoted attribute to the note to navigate to.</li> </ol>
<li>Optionally, set <code>hoistedNote</code> to hoist a particular note. See&nbsp; </li>
<a <li>
href="#root/_help_OR8WJ7Iz9K4U">Note Hoisting</a>&nbsp;for more information.</li> <p><strong>Custom Widget</strong>
<li>Optionally, set a <code>keyboardShortcut</code> to trigger the launcher.</li> </p>
</ol> <p>Allows defining a custom widget to be rendered inside the launcher. See&nbsp;
</li> <a
<li> href="#root/_help_SynTBQiBsdYJ">Widget Basics</a>&nbsp;for more information.</p>
<p><strong>Script Launcher</strong> </li>
<br>An advanced launcher which will run a script upon pressing. See&nbsp; <li>
<a <p><strong>Spacers</strong>
href="#root/_help_CdNpE2pqjmI6">Scripts</a>&nbsp;for more information.</p> <br>Launchers that create some distance between other launchers for better
<ol> visual distinction.</p>
<li>Set <code>script</code> to point to the desired script to run.</li> </li>
<li>Optionally, set a <code>keyboardShortcut</code> to trigger the launcher.</li> </ol>
</ol> <p>Launchers are configured via predefined&nbsp;<a href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>.</p>
</li>
<li>
<p><strong>Custom Widget</strong>
</p>
<p>Allows defining a custom widget to be rendered inside the launcher. See&nbsp;
<a
href="#root/_help_SynTBQiBsdYJ">Widget Basics</a>&nbsp;for more information.</p>
</li>
<li>
<p><strong>Spacers</strong>
<br>Launchers that create some distance between other launchers for better
visual distinction.</p>
</li>
</ol>
<p>Launchers are configured via predefined&nbsp;<a href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,54 +1,34 @@
<html> <p>This page explains how to manipulate the note tree in TriliumNext, focusing
on moving notes.</p>
<head> <p>
<meta charset="utf-8"> <img src="Note Tree_image.png">
<meta name="viewport" content="width=device-width, initial-scale=1"> </p>
<link rel="stylesheet" href="../../../style.css"> <h2>Drag and Drop</h2>
<base target="_parent"> <p>
<title data-trilium-title>Note Tree</title> <img src="Note Tree_drag-and-drop.gif" alt="Drag and drop example">
</head> </p>
<p>You can easily rearrange the note tree by dragging and dropping notes,
<body> as demonstrated in the example above.</p>
<div class="content"> <h2>Keyboard Manipulation</h2>
<h1 data-trilium-h1>Note Tree</h1> <p>
<img src="Note Tree_move-note-with-k.gif" alt="Example of using keyboard keys to move a note">Trilium offers efficient keyboard-based manipulation using the following
<div class="ck-content"> <a
<p>This page explains how to manipulate the note tree in TriliumNext, focusing href="#root/_help_A9Oc6YKKc65v">shortcuts</a>:</p>
on moving notes.</p> <ul>
<p> <li><kbd>Ctrl</kbd> + <kbd><span></span></kbd> and <kbd>Ctrl</kbd> +<kbd><span></span></kbd>:
<img src="Note Tree_image.png"> Move the note up or down in the order.</li>
</p> <li><kbd>Ctrl</kbd>+<kbd><span></span></kbd>: Move the note up in the hierarchy
<h2>Drag and Drop</h2> by changing its parent to the note's grandparent.</li>
<p> <li><kbd>Ctrl</kbd>+<kbd><span></span></kbd>: Move the note down in the hierarchy
<img src="Note Tree_drag-and-drop.gif" alt="Drag and drop example"> by setting its parent to the note currently above it (this action is best
</p> understood through a demo or hands-on experience).</li>
<p>You can easily rearrange the note tree by dragging and dropping notes, <li><kbd><span></span></kbd> and <kbd><span></span></kbd>: Expand and collapse
as demonstrated in the example above.</p> a sub-tree.</li>
<h2>Keyboard Manipulation</h2> </ul>
<p> <h2>Context Menu</h2>
<img src="Note Tree_move-note-with-k.gif" alt="Example of using keyboard keys to move a note">Trilium offers efficient keyboard-based manipulation using the following <p>You can also move notes using the familiar cut and paste functions available
<a in the context menu, or with the associated keyboard <a href="#root/_help_A9Oc6YKKc65v">shortcuts</a>: <code>CTRL-C</code> (
href="#root/_help_A9Oc6YKKc65v">shortcuts</a>:</p> <a
<ul> href="#root/_help_IakOLONlIfGI">copy</a>), <kbd>Ctrl</kbd> + <kbd>X</kbd> (cut) and <kbd>Ctrl</kbd> + <kbd>V</kbd> (paste).</p>
<li><kbd>Ctrl</kbd> + <kbd><span></span></kbd> and <kbd>Ctrl</kbd> +<kbd><span></span></kbd>: <p>See&nbsp;<a class="reference-link" href="#root/_help_YtSN43OrfzaA">Note Tree Menu</a>&nbsp;for
Move the note up or down in the order.</li> more information.</p>
<li><kbd>Ctrl</kbd>+<kbd><span></span></kbd>: Move the note up in the hierarchy
by changing its parent to the note's grandparent.</li>
<li><kbd>Ctrl</kbd>+<kbd><span></span></kbd>: 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).</li>
<li><kbd><span></span></kbd> and <kbd><span></span></kbd>: Expand and collapse
a sub-tree.</li>
</ul>
<h2>Context Menu</h2>
<p>You can also move notes using the familiar cut and paste functions available
in the context menu, or with the associated keyboard <a href="#root/_help_A9Oc6YKKc65v">shortcuts</a>: <code>CTRL-C</code> (
<a
href="#root/_help_IakOLONlIfGI">copy</a>), <kbd>Ctrl</kbd> + <kbd>X</kbd> (cut) and <kbd>Ctrl</kbd> + <kbd>V</kbd> (paste).</p>
<p>See&nbsp;<a class="reference-link" href="#root/_help_YtSN43OrfzaA">Note Tree Menu</a>&nbsp;for
more information.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,32 +1,12 @@
<html> <p>It is possible to select multiple notes at one time.</p>
<p>To do so, first select the note to start the selection with. Then hold
<head> Shift and click on the note to end the selection with. All the notes between
<meta charset="utf-8"> the start and the end note will be selected as well.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>
<link rel="stylesheet" href="../../../../style.css"> <img src="Multiple selection_image.png">
<base target="_parent"> </p>
<title data-trilium-title>Multiple selection</title> <p>In the right-click menu, operations such as Cut, Copy, Move to, Clone
</head> to or Delete will apply to all the selected notes. It is also possible
to apply&nbsp;<a class="reference-link" href="#root/_help_ivYnonVFBxbQ">Bulk Actions</a>&nbsp;to
<body> them. The rest of the options will not be available and will appear disabled
<div class="content"> in the menu.</p>
<h1 data-trilium-h1>Multiple selection</h1>
<div class="ck-content">
<p>It is possible to select multiple notes at one time.</p>
<p>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.</p>
<p>
<img src="Multiple selection_image.png">
</p>
<p>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&nbsp;<a class="reference-link" href="#root/_help_ivYnonVFBxbQ">Bulk Actions</a>&nbsp;to
them. The rest of the options will not be available and will appear disabled
in the menu.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,242 +1,222 @@
<html> <figure class="image image-style-align-right">
<img style="aspect-ratio:372/760;" src="1_Note tree contextual menu_.png"
<head> width="372" height="760">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>The <em>note tree menu</em> can be accessed by right-clicking in the&nbsp;
<link rel="stylesheet" href="../../../../style.css"> <a
<base target="_parent"> class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</p>
<title data-trilium-title>Note tree contextual menu</title> <h2>Interaction</h2>
</head> <p>The contextual menu can operate:</p>
<ul>
<body> <li>On a single note, by right clicking it in the note tree.</li>
<div class="content"> <li>On multiple notes, by selecting them first. See&nbsp;<a class="reference-link"
<h1 data-trilium-h1>Note tree contextual menu</h1> href="#root/_help_yTjUdsOi4CIE">Multiple selection</a>&nbsp;on how to do
so.
<div class="ck-content"> <ul>
<figure class="image image-style-align-right"> <li>When right clicking, do note that usually the note being right clicked
<img style="aspect-ratio:372/760;" src="1_Note tree contextual menu_.png" is also included in the affected notes, regardless of whether it was selected
width="372" height="760"> or not.</li>
</figure> </ul>
<p>The <em>note tree menu</em> can be accessed by right-clicking in the&nbsp; </li>
<a </ul>
class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</p> <h2>Available options</h2>
<h2>Interaction</h2> <aside class="admonition note">
<p>The contextual menu can operate:</p> <p>When multiple notes are selected, only a subset of notes will be active.
The ones that do support multiple notes will mention this in the list below.</p>
</aside>
<ul>
<li><strong>Open in a new tab</strong>
<ul>
<li>Will open a single note in a new <a href="#root/_help_3seOhtN8uLIY">tab</a>.</li>
</ul>
</li>
<li><strong>Open in a new split</strong>
<ul>
<li>Will open a split to the right with the given note within the current
tab.</li>
</ul>
</li>
<li><strong>Hoist note</strong>
<ul>
<li>Will focus the note tree on this note. See&nbsp;<a class="reference-link"
href="#root/_help_OR8WJ7Iz9K4U">Note Hoisting</a>&nbsp;for more information.</li>
</ul>
</li>
<li><strong>Insert note after</strong>
<ul>
<li>Allows easy creation of a note with a specified <a href="#root/_help_KSZ04uQ2D1St">note type</a>.</li>
<li><a class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>&nbsp;will
also be present (if any) at the end of the list.</li>
<li>The note will be added on the same level of hierarchy as the note selected.</li>
</ul>
</li>
<li><strong>Insert child note</strong>
<ul>
<li>Same as <em>Insert note after</em>, but the note will be created as a child
of the selected note.</li>
</ul>
</li>
<li><strong>Protect subtree</strong>
<ul>
<li>Will mark this note and all of its descendents as protected. See&nbsp;
<a
class="reference-link" href="#root/_help_bwg0e8ewQMak">Protected Notes</a>&nbsp;for more information.</li>
</ul>
</li>
<li><strong>Unprotect subtree</strong>
<ul>
<li>Will unprotect this note and all of its descendents.</li>
</ul>
</li>
<li><strong>Cut</strong>
<ul>
<li>Will place the given notes in clipboard.</li>
<li>Use one of the two paste functions (or the keyboard shortcuts) to move
them to the desired location.</li>
</ul>
</li>
<li><strong>Copy / clone</strong>
<ul>
<li>Will place the given notes in clipboard.</li>
<li>Use one of the two paste functions (or the keyboard shortcuts) to copy
them to the desired location.</li>
<li>Note that the copy function here works according to the&nbsp;<a class="reference-link"
href="#root/_help_IakOLONlIfGI">Cloning Notes</a>&nbsp;functionality (i.e.
the note itself will be present in two locations at once, and editing it
in one place will edit it everywhere).</li>
<li>To simply create a duplicate note that can be modified independently,
look for <em>Duplicate subtree</em>.</li>
</ul>
</li>
<li><strong>Paste into</strong>
<ul>
<li>If there are any notes in clipboard, they will be pasted as child notes
to the right-clicked one.</li>
</ul>
</li>
<li><strong>Paste after</strong>
<ul>
<li>If there are any notes in clipboard, they will be pasted underneath the
right-clicked one.</li>
</ul>
</li>
<li><strong>Move to…</strong>
<ul>
<li>Will display a modal to specify where to move the desired notes.</li>
</ul>
</li>
<li><strong>Clone to…</strong>
<ul>
<li>Will display a modal to specify where to <a href="#root/_help_IakOLONlIfGI">clone</a> the
desired notes.</li>
</ul>
</li>
<li><strong>Delete</strong>
<ul>
<li>Will delete the given notes, asking for confirmation first.</li>
<li>In the dialog, the following options can be configured:
<ul> <ul>
<li>On a single note, by right clicking it in the note tree.</li> <li><em>Delete also all clones</em> to ensure that the note will be deleted
<li>On multiple notes, by selecting them first. See&nbsp;<a class="reference-link" everywhere if it has been placed into multiple locations (see&nbsp;<a class="reference-link"
href="#root/_help_yTjUdsOi4CIE">Multiple selection</a>&nbsp;on how to do href="#root/_help_IakOLONlIfGI">Cloning Notes</a>).</li>
so. <li><em>Erase notes permanently</em> will ensure that the note cannot be recovered
<ul> from&nbsp;<a class="reference-link" href="#root/_help_r5JGHN99bVKn">Recent Changes</a>.</li>
<li>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.</li>
</ul>
</li>
</ul> </ul>
<h2>Available options</h2> </li>
<aside class="admonition note"> </ul>
<p>When multiple notes are selected, only a subset of notes will be active. </li>
The ones that do support multiple notes will mention this in the list below.</p> <li><strong>Import into note</strong>
</aside> <ul>
<ul> <li>Opens the <a href="#root/_help_mHbBMPDPkVV5">import</a> dialog and places
<li><strong>Open in a new tab</strong> the imported notes as child notes of the selected one.</li>
<ul> </ul>
<li>Will open a single note in a new <a href="#root/_help_3seOhtN8uLIY">tab</a>.</li> </li>
</ul> <li><strong>Export</strong>
</li> <ul>
<li><strong>Open in a new split</strong> <li>Opens the <a href="#root/_help_mHbBMPDPkVV5">export</a> dialog for the selected
<ul> notes.</li>
<li>Will open a split to the right with the given note within the current </ul>
tab.</li> </li>
</ul> <li><strong>Search in subtree</strong>
</li> <ul>
<li><strong>Hoist note</strong> <li>Opens a full&nbsp;<a class="reference-link" href="#root/_help_eIg8jdvaoNNd">Search</a>&nbsp;with
<ul> it preconfigured to only look into this note and its descendants (the <em>Ancestor</em> field).</li>
<li>Will focus the note tree on this note. See&nbsp;<a class="reference-link" </ul>
href="#root/_help_OR8WJ7Iz9K4U">Note Hoisting</a>&nbsp;for more information.</li> </li>
</ul> </ul>
</li> <h2>Advanced options</h2>
<li><strong>Insert note after</strong> <figure class="image image-style-align-right">
<ul> <img style="aspect-ratio:289/355;" src="Note tree contextual menu_.png"
<li>Allows easy creation of a note with a specified <a href="#root/_help_KSZ04uQ2D1St">note type</a>.</li> width="289" height="355">
<li><a class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>&nbsp;will </figure>
also be present (if any) at the end of the list.</li> <p>The advanced options menu offers some of the less frequently used actions
<li>The note will be added on the same level of hierarchy as the note selected.</li> for notes.</p>
</ul> <p>To access these options, first look for the <em>Advanced</em> option in
</li> the contextual menu to reveal a sub-menu with:</p>
<li><strong>Insert child note</strong> <ul>
<ul> <li><strong>Apply bulk actions</strong>
<li>Same as <em>Insert note after</em>, but the note will be created as a child <ul>
of the selected note.</li> <li>Opens the&nbsp;<a class="reference-link" href="#root/_help_ivYnonVFBxbQ">Bulk Actions</a>&nbsp;dialog,
</ul> to apply actions such as adding labels or moving notes to multiple notes
</li> at once (see&nbsp;<a class="reference-link" href="#root/_help_yTjUdsOi4CIE">Multiple selection</a>).</li>
<li><strong>Protect subtree</strong> </ul>
<ul> </li>
<li>Will mark this note and all of its descendents as protected. See&nbsp; <li><strong>Edit branch prefix</strong>
<a <ul>
class="reference-link" href="#root/_help_bwg0e8ewQMak">Protected Notes</a>&nbsp;for more information.</li> <li>Opens a dialog to assign a name to be able to distinguish <a href="#root/_help_IakOLONlIfGI">clones</a>,
</ul> see&nbsp;<a class="reference-link" href="#root/_help_TBwsyfadTA18">Branch prefix</a>&nbsp;for
</li> more information.</li>
<li><strong>Unprotect subtree</strong> </ul>
<ul> </li>
<li>Will unprotect this note and all of its descendents.</li> <li><strong>Convert to attachment</strong>
</ul> <ul>
</li> <li>Converts the selected notes to&nbsp;<a class="reference-link" href="#root/_help_0vhv7lsOLy82">Attachments</a>&nbsp;of
<li><strong>Cut</strong> their parent notes.</li>
<ul> <li>This functional is most useful when dealing with image&nbsp;<a class="reference-link"
<li>Will place the given notes in clipboard.</li> href="#root/_help_W8vYD3Q1zjCR">File</a>&nbsp;notes that were imported
<li>Use one of the two paste functions (or the keyboard shortcuts) to move from an external source or an older version of Trilium.</li>
them to the desired location.</li> </ul>
</ul> </li>
</li> <li><strong>Duplicate subtree</strong>
<li><strong>Copy / clone</strong> <ul>
<ul> <li>Creates a copy of the note and its descendants.</li>
<li>Will place the given notes in clipboard.</li> <li>This process is different from&nbsp;<a class="reference-link" href="#root/_help_IakOLONlIfGI">Cloning Notes</a>&nbsp;since
<li>Use one of the two paste functions (or the keyboard shortcuts) to copy the duplicated note can be edited independently from the original.</li>
them to the desired location.</li> <li>An alternative to this, if done regularly, would be&nbsp;<a class="reference-link"
<li>Note that the copy function here works according to the&nbsp;<a class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>.</li>
href="#root/_help_IakOLONlIfGI">Cloning Notes</a>&nbsp;functionality (i.e. </ul>
the note itself will be present in two locations at once, and editing it </li>
in one place will edit it everywhere).</li> <li><strong>Expand subtree</strong>
<li>To simply create a duplicate note that can be modified independently, <ul>
look for <em>Duplicate subtree</em>.</li> <li>Expands all the child notes in the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li>
</ul> </ul>
</li> </li>
<li><strong>Paste into</strong> <li><strong>Collapse subtree</strong>
<ul> <ul>
<li>If there are any notes in clipboard, they will be pasted as child notes <li>Collapses all the child notes in the note tree.</li>
to the right-clicked one.</li> </ul>
</ul> </li>
</li> <li><strong>Sort by…</strong>
<li><strong>Paste after</strong> <ul>
<ul> <li>Opens a dialog to sort all the child notes of the selected note.</li>
<li>If there are any notes in clipboard, they will be pasted underneath the <li>The sorting is done only once, there is an automatic sorting mechanism
right-clicked one.</li> as well that can be set using&nbsp;<a class="reference-link" href="#root/_help_zEY4DaJG4YT5">Attributes</a>.</li>
</ul> <li>See&nbsp;<a class="reference-link" href="#root/_help_aGlEvb9hyDhS">Sorting Notes</a>&nbsp;for
</li> more information.</li>
<li><strong>Move to…</strong> </ul>
<ul> </li>
<li>Will display a modal to specify where to move the desired notes.</li> <li><strong>Copy note path to clipboard</strong>
</ul> <ul>
</li> <li>Copies a URL fragment representing the full path to this branch for a
<li><strong>Clone to…</strong> note, such as <code>#root/Hb2E70L7HPuf/4sRFgMZhYFts/2IVuShedRJ3U/LJVMvKXOFv7n</code>.</li>
<ul> <li>The URL to manually create&nbsp;<a class="reference-link" href="#root/_help_QEAPj01N5f7w">Links</a>&nbsp;within
<li>Will display a modal to specify where to <a href="#root/_help_IakOLONlIfGI">clone</a> the notes, or for note&nbsp;<a class="reference-link" href="#root/_help_wArbEsdSae6g">Navigation</a>.</li>
desired notes.</li> </ul>
</ul> </li>
</li> <li><strong>Recent changes in subtree</strong>
<li><strong>Delete</strong> <ul>
<ul> <li>This will open&nbsp;<a class="reference-link" href="#root/_help_r5JGHN99bVKn">Recent Changes</a>,
<li>Will delete the given notes, asking for confirmation first.</li> but filtered to only the changes related to this note or one of its descendants.</li>
<li>In the dialog, the following options can be configured: </ul>
<ul> </li>
<li><em>Delete also all clones</em> to ensure that the note will be deleted </ul>
everywhere if it has been placed into multiple locations (see&nbsp;<a class="reference-link"
href="#root/_help_IakOLONlIfGI">Cloning Notes</a>).</li>
<li><em>Erase notes permanently</em> will ensure that the note cannot be recovered
from&nbsp;<a class="reference-link" href="#root/_help_r5JGHN99bVKn">Recent Changes</a>.</li>
</ul>
</li>
</ul>
</li>
<li><strong>Import into note</strong>
<ul>
<li>Opens the <a href="#root/_help_mHbBMPDPkVV5">import</a> dialog and places
the imported notes as child notes of the selected one.</li>
</ul>
</li>
<li><strong>Export</strong>
<ul>
<li>Opens the <a href="#root/_help_mHbBMPDPkVV5">export</a> dialog for the selected
notes.</li>
</ul>
</li>
<li><strong>Search in subtree</strong>
<ul>
<li>Opens a full&nbsp;<a class="reference-link" href="#root/_help_eIg8jdvaoNNd">Search</a>&nbsp;with
it preconfigured to only look into this note and its descendants (the <em>Ancestor</em> field).</li>
</ul>
</li>
</ul>
<h2>Advanced options</h2>
<figure class="image image-style-align-right">
<img style="aspect-ratio:289/355;" src="Note tree contextual menu_.png"
width="289" height="355">
</figure>
<p>The advanced options menu offers some of the less frequently used actions
for notes.</p>
<p>To access these options, first look for the <em>Advanced</em> option in
the contextual menu to reveal a sub-menu with:</p>
<ul>
<li><strong>Apply bulk actions</strong>
<ul>
<li>Opens the&nbsp;<a class="reference-link" href="#root/_help_ivYnonVFBxbQ">Bulk Actions</a>&nbsp;dialog,
to apply actions such as adding labels or moving notes to multiple notes
at once (see&nbsp;<a class="reference-link" href="#root/_help_yTjUdsOi4CIE">Multiple selection</a>).</li>
</ul>
</li>
<li><strong>Edit branch prefix</strong>
<ul>
<li>Opens a dialog to assign a name to be able to distinguish <a href="#root/_help_IakOLONlIfGI">clones</a>,
see&nbsp;<a class="reference-link" href="#root/_help_TBwsyfadTA18">Branch prefix</a>&nbsp;for
more information.</li>
</ul>
</li>
<li><strong>Convert to attachment</strong>
<ul>
<li>Converts the selected notes to&nbsp;<a class="reference-link" href="#root/_help_0vhv7lsOLy82">Attachments</a>&nbsp;of
their parent notes.</li>
<li>This functional is most useful when dealing with image&nbsp;<a class="reference-link"
href="#root/_help_W8vYD3Q1zjCR">File</a>&nbsp;notes that were imported
from an external source or an older version of Trilium.</li>
</ul>
</li>
<li><strong>Duplicate subtree</strong>
<ul>
<li>Creates a copy of the note and its descendants.</li>
<li>This process is different from&nbsp;<a class="reference-link" href="#root/_help_IakOLONlIfGI">Cloning Notes</a>&nbsp;since
the duplicated note can be edited independently from the original.</li>
<li>An alternative to this, if done regularly, would be&nbsp;<a class="reference-link"
href="#root/_help_KC1HB96bqqHX">Templates</a>.</li>
</ul>
</li>
<li><strong>Expand subtree</strong>
<ul>
<li>Expands all the child notes in the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li>
</ul>
</li>
<li><strong>Collapse subtree</strong>
<ul>
<li>Collapses all the child notes in the note tree.</li>
</ul>
</li>
<li><strong>Sort by…</strong>
<ul>
<li>Opens a dialog to sort all the child notes of the selected note.</li>
<li>The sorting is done only once, there is an automatic sorting mechanism
as well that can be set using&nbsp;<a class="reference-link" href="#root/_help_zEY4DaJG4YT5">Attributes</a>.</li>
<li>See&nbsp;<a class="reference-link" href="#root/_help_aGlEvb9hyDhS">Sorting Notes</a>&nbsp;for
more information.</li>
</ul>
</li>
<li><strong>Copy note path to clipboard</strong>
<ul>
<li>Copies a URL fragment representing the full path to this branch for a
note, such as <code>#root/Hb2E70L7HPuf/4sRFgMZhYFts/2IVuShedRJ3U/LJVMvKXOFv7n</code>.</li>
<li>The URL to manually create&nbsp;<a class="reference-link" href="#root/_help_QEAPj01N5f7w">Links</a>&nbsp;within
notes, or for note&nbsp;<a class="reference-link" href="#root/_help_wArbEsdSae6g">Navigation</a>.</li>
</ul>
</li>
<li><strong>Recent changes in subtree</strong>
<ul>
<li>This will open&nbsp;<a class="reference-link" href="#root/_help_r5JGHN99bVKn">Recent Changes</a>,
but filtered to only the changes related to this note or one of its descendants.</li>
</ul>
</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,32 +1,12 @@
<html> <p>To the right of the&nbsp;<a href="#root/_help_BlN9DFI679QC">Ribbon</a>&nbsp;there
are a few more buttons:
<head> <img src="Note buttons_image.png">
<meta charset="utf-8"> </p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <ul>
<link rel="stylesheet" href="../../../style.css"> <li>The Note Revisions button displays the&nbsp;<a href="#root/_help_vZWERwf8U3nx">Note Revisions</a>&nbsp;for
<base target="_parent"> that particular note.</li>
<title data-trilium-title>Note buttons</title> <li>The contextual menu offers commands for the note or its subtree, such
</head> as import, export, viewing the&nbsp;<a href="#root/_help_4FahAwuGTAwC">Note source code</a>&nbsp;or&nbsp;
<a
<body> href="#root/_help_0vhv7lsOLy82">Attachments</a>.</li>
<div class="content"> </ul>
<h1 data-trilium-h1>Note buttons</h1>
<div class="ck-content">
<p>To the right of the&nbsp;<a href="#root/_help_BlN9DFI679QC">Ribbon</a>&nbsp;there
are a few more buttons:
<img src="Note buttons_image.png">
</p>
<ul>
<li>The Note Revisions button displays the&nbsp;<a href="#root/_help_vZWERwf8U3nx">Note Revisions</a>&nbsp;for
that particular note.</li>
<li>The contextual menu offers commands for the note or its subtree, such
as import, export, viewing the&nbsp;<a href="#root/_help_4FahAwuGTAwC">Note source code</a>&nbsp;or&nbsp;
<a
href="#root/_help_0vhv7lsOLy82">Attachments</a>.</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,50 +1,30 @@
<html> <figure class="image image-style-align-center">
<img style="aspect-ratio:1189/709;" src="Options_image.png" width="1189"
<head> height="709">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>The Options section allows the configuration of the TriliumNext client
<link rel="stylesheet" href="../../../style.css"> and server.</p>
<base target="_parent"> <h2>Entering options</h2>
<title data-trilium-title>Options</title> <p>The Options can be accessed via:</p>
</head> <ul>
<li>The&nbsp;<a href="#root/_help_x3i7MxGccDuM">Global menu</a>, by selecting
<body> the <em>Options</em> item.</li>
<div class="content"> <li>The
<h1 data-trilium-h1>Options</h1> <img src="1_Options_image.png">button in the&nbsp;<a href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>&nbsp;which
can optionally be hidden if not desirable.</li>
<div class="ck-content"> <li>Optionally, a keyboard shortcut can be defined, but it is not assigned
<figure class="image image-style-align-center"> by default.</li>
<img style="aspect-ratio:1189/709;" src="Options_image.png" width="1189" <li>By clicking on this link:&nbsp;<a class="reference-link" href="#root/_hidden/_help__options">Options</a>.</li>
height="709"> </ul>
</figure> <p>Once in the options section, simply select one of the option categories
<p>The Options section allows the configuration of the TriliumNext client using the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</p>
and server.</p> <h2>Exiting options</h2>
<h2>Entering options</h2> <p>When entering the options, they are opened in a new <a href="#root/_help_3seOhtN8uLIY">tab</a>.
<p>The Options can be accessed via:</p> To close them, simply close the tab.</p>
<ul> <h2>Options when using sync</h2>
<li>The&nbsp;<a href="#root/_help_x3i7MxGccDuM">Global menu</a>, by selecting <p>When using&nbsp;<a class="reference-link" href="#root/_help_cbkrhQjrkKrh">Synchronization</a>,
the <em>Options</em> item.</li> some of the options will be kept in sync across all the devices while others
<li>The can be changed independently.</p>
<img src="1_Options_image.png">button in the&nbsp;<a href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>&nbsp;which <p>Generally, the options that relate to appearance are intentionally kept
can optionally be hidden if not desirable.</li> not synced in order to allow per-client customization (layout orientation,
<li>Optionally, a keyboard shortcut can be defined, but it is not assigned theme, vertical/horizontal layout, code block themes).</p>
by default.</li>
<li>By clicking on this link:&nbsp;<a class="reference-link" href="#root/_hidden/_help__options">Options</a>.</li>
</ul>
<p>Once in the options section, simply select one of the option categories
using the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</p>
<h2>Exiting options</h2>
<p>When entering the options, they are opened in a new <a href="#root/_help_3seOhtN8uLIY">tab</a>.
To close them, simply close the tab.</p>
<h2>Options when using sync</h2>
<p>When using&nbsp;<a class="reference-link" href="#root/_help_cbkrhQjrkKrh">Synchronization</a>,
some of the options will be kept in sync across all the devices while others
can be changed independently.</p>
<p>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).</p>
</div>
</div>
</body>
</html>

View File

@@ -1,51 +1,31 @@
<html> <figure class="image image-style-align-center image_resized" style="width:50%;">
<img style="aspect-ratio:988/572;" src="1_Recent Changes_image.png" width="988"
<head> height="572">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../../style.css">
<base target="_parent">
<title data-trilium-title>Recent Changes</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Recent Changes</h1>
<div class="ck-content">
<figure class="image image-style-align-center image_resized" style="width:50%;">
<img style="aspect-ratio:988/572;" src="1_Recent Changes_image.png" width="988"
height="572">
</figure>
<h2>Accessing the recent changes</h2> <h2>Accessing the recent changes</h2>
<ul> <ul>
<li>For an overview of the changes across all documents, press the <li>For an overview of the changes across all documents, press the
<img src="Recent Changes_image.png" <img src="Recent Changes_image.png"
width="25" height="21">button in the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>. width="25" height="21">button in the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.
<ul> <ul>
<li>If there is a <a href="#root/_help_OR8WJ7Iz9K4U">hoisted note</a> or a <li>If there is a <a href="#root/_help_OR8WJ7Iz9K4U">hoisted note</a> or a
<a <a
href="#root/_help_9sRHySam5fXb">workspace</a>, the list of recent changes will be limited to the descendents href="#root/_help_9sRHySam5fXb">workspace</a>, the list of recent changes will be limited to the descendents
of the hoisted note, or the workspace.</li> of the hoisted note, or the workspace.</li>
</ul> </ul>
</li> </li>
<li>To limit the list of recent changes to a note and its descendants, look <li>To limit the list of recent changes to a note and its descendants, look
for the corresponding option in the&nbsp;<a class="reference-link" href="#root/_help_YtSN43OrfzaA">Note tree contextual menu</a>&nbsp; for the corresponding option in the&nbsp;<a class="reference-link" href="#root/_help_YtSN43OrfzaA">Note tree contextual menu</a>&nbsp;
Advanced.</li> Advanced.</li>
</ul> </ul>
<h2>Interaction</h2> <h2>Interaction</h2>
<ul> <ul>
<li>Notes which were changed will appear in reverse chronological order (latest <li>Notes which were changed will appear in reverse chronological order (latest
update first).</li> update first).</li>
<li>The title of the note is displayed, as well as the note path. Clicking <li>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 on the note title will dismiss the dialog and navigate to that particular
note.</li> note.</li>
<li>Deleted notes will also be listed here, at their time of deletion. Press <li>Deleted notes will also be listed here, at their time of deletion. Press
the <em>Undelete</em> link next to them in order to recover them.</li> the <em>Undelete</em> link next to them in order to recover them.</li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,114 +1,94 @@
<html> <p>
<img src="Ribbon_image.png">
<head> </p>
<meta charset="utf-8"> <p>The ribbon allows changing options, attributes and viewing information
<meta name="viewport" content="width=device-width, initial-scale=1"> about the current note.</p>
<link rel="stylesheet" href="../../../style.css"> <h2>Settings</h2>
<base target="_parent"> <p>It is possible to change whether some ribbon items will be automatically
<title data-trilium-title>Ribbon</title> open when navigating to a new note. To do so, in&nbsp;<a href="#root/_help_4TIF1oA4VQRO">Settings</a>,
</head> go to <em>Appearance</em> and look for the <em>Ribbon widgets</em> section.</p>
<h2>Formatting</h2>
<body> <p>If you are using the <em>Fixed</em> formatting toolbar, all the formatting
<div class="content"> buttons for text notes will appear here. See&nbsp;<a href="#root/_help_nRhnJkTT8cPs">Formatting toolbar</a>&nbsp;for
<h1 data-trilium-h1>Ribbon</h1> more information.</p>
<h2>Tabs</h2>
<div class="ck-content"> <h3>Basic Properties</h3>
<p> <ul>
<img src="Ribbon_image.png"> <li><em><strong>Note type</strong></em> allows changing the <a href="#root/_help_KSZ04uQ2D1St">note type</a> of
</p> a note.
<p>The ribbon allows changing options, attributes and viewing information <ul>
about the current note.</p> <li>Generally this is desirable only if the note is empty.</li>
<h2>Settings</h2> <li>As a more advanced use, it's possible to change the note type in order
<p>It is possible to change whether some ribbon items will be automatically to modify the <a href="#root/_help_4FahAwuGTAwC">source code</a> of a note.</li>
open when navigating to a new note. To do so, in&nbsp;<a href="#root/_help_4TIF1oA4VQRO">Settings</a>, </ul>
go to <em>Appearance</em> and look for the <em>Ribbon widgets</em> section.</p> </li>
<h2>Formatting</h2> <li><em><strong>Protect the note</strong></em> toggles whether the current
<p>If you are using the <em>Fixed</em> formatting toolbar, all the formatting note is encrypted and accessible only by entering the protected session.
buttons for text notes will appear here. See&nbsp;<a href="#root/_help_nRhnJkTT8cPs">Formatting toolbar</a>&nbsp;for See&nbsp;<a href="#root/_help_bwg0e8ewQMak">Protected Notes</a>&nbsp;for
more information.</p> more information.</li>
<h2>Tabs</h2> <li><em><strong>Editable</strong></em> changes whether the current note:
<h3>Basic Properties</h3> <ul>
<ul> <li>Enters <a href="#root/_help_CoFPLs3dRlXc">read-only mode</a> automatically
<li><em><strong>Note type</strong></em> allows changing the <a href="#root/_help_KSZ04uQ2D1St">note type</a> of if the note is too big (default behaviour).</li>
a note. <li>Is always in read-only mode (however it can still be edited temporarily).</li>
<ul> <li>Is always editable, regardless of its size.</li>
<li>Generally this is desirable only if the note is empty.</li> </ul>
<li>As a more advanced use, it's possible to change the note type in order </li>
to modify the <a href="#root/_help_4FahAwuGTAwC">source code</a> of a note.</li> <li><em><strong>Bookmark</strong></em> toggles the display of the current note
</ul> into the&nbsp;<a href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>&nbsp;for
</li> easy access. See&nbsp;<a href="#root/_help_u3YFHC9tQlpm">Bookmarks</a>&nbsp;for
<li><em><strong>Protect the note</strong></em> toggles whether the current more information.</li>
note is encrypted and accessible only by entering the protected session. <li><em><strong>Shared</strong></em> toggles whether the current note is publicly
See&nbsp;<a href="#root/_help_bwg0e8ewQMak">Protected Notes</a>&nbsp;for accessible if you have a <a href="#root/_help_WOcw2SLH6tbX">server instance</a> set
more information.</li> up. See&nbsp;<a href="#root/_help_R9pX4DGra2Vt">Sharing</a>&nbsp;for more
<li><em><strong>Editable</strong></em> changes whether the current note: information.</li>
<ul> <li><em><strong>Template</strong></em> toggles whether the current note is
<li>Enters <a href="#root/_help_CoFPLs3dRlXc">read-only mode</a> automatically considered a template and can be used to easily create notes with the same
if the note is too big (default behaviour).</li> content. See&nbsp;<a href="#root/_help_KC1HB96bqqHX">Template</a>&nbsp;for
<li>Is always in read-only mode (however it can still be edited temporarily).</li> more information.</li>
<li>Is always editable, regardless of its size.</li> <li><em><strong>Language</strong></em> changes the main language of the current
</ul> note, mostly useful for spell checking or right-to-left support. See&nbsp;
</li> <a
<li><em><strong>Bookmark</strong></em> toggles the display of the current note href="#root/_help_veGu4faJErEM">Content language &amp; Right-to-left support</a>&nbsp;for more information.</li>
into the&nbsp;<a href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>&nbsp;for </ul>
easy access. See&nbsp;<a href="#root/_help_u3YFHC9tQlpm">Bookmarks</a>&nbsp;for <h3>Owned Attributes</h3>
more information.</li> <p>This section allows editing the labels and relations of a note. For more
<li><em><strong>Shared</strong></em> toggles whether the current note is publicly information, see&nbsp;<a href="#root/_help_zEY4DaJG4YT5">Attributes</a>.</p>
accessible if you have a <a href="#root/_help_WOcw2SLH6tbX">server instance</a> set <p>The plus button to the right offers a simplified way to insert labels
up. See&nbsp;<a href="#root/_help_R9pX4DGra2Vt">Sharing</a>&nbsp;for more and relations, via a graphical input. From this menu, it's also possible
information.</li> to define label and relation definitions (see&nbsp;<a href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>).</p>
<li><em><strong>Template</strong></em> toggles whether the current note is <h3>Inherited Attributes</h3>
considered a template and can be used to easily create notes with the same <p>This section displays the attributes which are applied to this note via&nbsp;
content. See&nbsp;<a href="#root/_help_KC1HB96bqqHX">Template</a>&nbsp;for <a
more information.</li> href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>. It is not possible to alter the attributes
<li><em><strong>Language</strong></em> changes the main language of the current from this section.</p>
note, mostly useful for spell checking or right-to-left support. See&nbsp; <h3>Note Paths</h3>
<a <p>This section displays all the places where the current note has been cloned
href="#root/_help_veGu4faJErEM">Content language &amp; Right-to-left support</a>&nbsp;for more information.</li> to. Here the current note can also be cloned to a new location (similar
</ul> to the&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>) See&nbsp;
<h3>Owned Attributes</h3> <a
<p>This section allows editing the labels and relations of a note. For more href="#root/_help_IakOLONlIfGI">Cloning Notes</a>&nbsp;for more information.</p>
information, see&nbsp;<a href="#root/_help_zEY4DaJG4YT5">Attributes</a>.</p> <h3>Note Map</h3>
<p>The plus button to the right offers a simplified way to insert labels <p>The note map displays all the relations of the current note to other notes,
and relations, via a graphical input. From this menu, it's also possible as well as the subtree structure. See&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;for
to define label and relation definitions (see&nbsp;<a href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>).</p> more information.</p>
<h3>Inherited Attributes</h3> <h3>Similar Notes</h3>
<p>This section displays the attributes which are applied to this note via&nbsp; <p>This section lists all the notes that are similar to the current one.
<a See&nbsp;<a href="#root/_help_xWtq5NUHOwql">Similar Notes</a>&nbsp;for
href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>. It is not possible to alter the attributes more information.</p>
from this section.</p> <h3>Note Info</h3>
<h3>Note Paths</h3> <p>This section displays information about the current note:</p>
<p>This section displays all the places where the current note has been cloned <ul>
to. Here the current note can also be cloned to a new location (similar <li>The <a href="#root/_help_m1lbrzyKDaRB">internal ID</a> of the note.</li>
to the&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>) See&nbsp; <li>The <a href="#root/_help_KSZ04uQ2D1St">type of the note</a>, as well as
<a its MIME type (used mostly for exporting notes).</li>
href="#root/_help_IakOLONlIfGI">Cloning Notes</a>&nbsp;for more information.</p> <li>The created and modification dates.</li>
<h3>Note Map</h3> <li>The estimated size of the note in the&nbsp;<a href="#root/_help_wX4HbRucYSDD">Database</a>,
<p>The note map displays all the relations of the current note to other notes, as well as its children count and size.</li>
as well as the subtree structure. See&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;for </ul>
more information.</p> <h3>Edited notes</h3>
<h3>Similar Notes</h3> <p>This section pops automatically when entering a <a href="#root/_help_l0tKav7yLHGF">day note</a> and
<p>This section lists all the notes that are similar to the current one. shows the notes that were edited that day.</p>
See&nbsp;<a href="#root/_help_xWtq5NUHOwql">Similar Notes</a>&nbsp;for <p>It is possible to disable this behavior from settings, by going to&nbsp;
more information.</p> <a
<h3>Note Info</h3> class="reference-link" href="#root/_hidden/_options/_help__optionsAppearance">Appearance</a>&nbsp;settings and looking for the <em>Ribbon widgets</em> section.</p>
<p>This section displays information about the current note:</p>
<ul>
<li>The <a href="#root/_help_m1lbrzyKDaRB">internal ID</a> of the note.</li>
<li>The <a href="#root/_help_KSZ04uQ2D1St">type of the note</a>, as well as
its MIME type (used mostly for exporting notes).</li>
<li>The created and modification dates.</li>
<li>The estimated size of the note in the&nbsp;<a href="#root/_help_wX4HbRucYSDD">Database</a>,
as well as its children count and size.</li>
</ul>
<h3>Edited notes</h3>
<p>This section pops automatically when entering a <a href="#root/_help_l0tKav7yLHGF">day note</a> and
shows the notes that were edited that day.</p>
<p>It is possible to disable this behavior from settings, by going to&nbsp;
<a
class="reference-link" href="#root/_hidden/_options/_help__optionsAppearance">Appearance</a>&nbsp;settings and looking for the <em>Ribbon widgets</em> section.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,45 +1,25 @@
<html> <figure class="image">
<img style="aspect-ratio:1036/372;" src="Right Sidebar_image.png" width="1036"
<head> height="372">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>The right sidebar displays specific content for the current note. Currently
<link rel="stylesheet" href="../../../style.css"> it includes:</p>
<base target="_parent"> <ul>
<title data-trilium-title>Right Sidebar</title> <li><a class="reference-link" href="#root/_help_BFvAtE74rbP6">Table of contents</a>
</head> </li>
<li><a class="reference-link" href="#root/_help_AxshuNRegLAv">Highlights list</a>
<body> </li>
<div class="content"> </ul>
<h1 data-trilium-h1>Right Sidebar</h1> <p>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.</p>
<div class="ck-content"> <h2>Toggling the right sidebar</h2>
<figure class="image"> <p>The sidebar can be hidden or shown by using the <code>toggleRightPane</code> keyboard
<img style="aspect-ratio:1036/372;" src="Right Sidebar_image.png" width="1036" shortcut, which is not assigned by default.</p>
height="372"> <h2>Relation with splits</h2>
</figure> <p>When using&nbsp;<a class="reference-link" href="#root/_help_luNhaphA37EO">Split View</a>,
<p>The right sidebar displays specific content for the current note. Currently there is a single sidebar serving all the open splits for the current
it includes:</p> <a
<ul> href="#root/_help_3seOhtN8uLIY">tab</a>.</p>
<li><a class="reference-link" href="#root/_help_BFvAtE74rbP6">Table of contents</a> <p>Clicking on a note within the split view will display the sidebar for
</li> that note. If there are no items to display in the sidebar, it will remain
<li><a class="reference-link" href="#root/_help_AxshuNRegLAv">Highlights list</a> closed.</p>
</li>
</ul>
<p>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.</p>
<h2>Toggling the right sidebar</h2>
<p>The sidebar can be hidden or shown by using the <code>toggleRightPane</code> keyboard
shortcut, which is not assigned by default.</p>
<h2>Relation with splits</h2>
<p>When using&nbsp;<a class="reference-link" href="#root/_help_luNhaphA37EO">Split View</a>,
there is a single sidebar serving all the open splits for the current
<a
href="#root/_help_3seOhtN8uLIY">tab</a>.</p>
<p>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.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,66 +1,46 @@
<html> <p>In Trilium, is possible to work with two or more notes side-by-side.</p>
<figure
<head> class="image image-style-align-center">
<meta charset="utf-8"> <img style="aspect-ratio:1398/1015;" src="Split View_2_Split View_im.png"
<meta name="viewport" content="width=device-width, initial-scale=1"> width="1398" height="1015">
<link rel="stylesheet" href="../../../style.css"> </figure>
<base target="_parent">
<title data-trilium-title>Split View</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Split View</h1>
<div class="ck-content">
<p>In Trilium, is possible to work with two or more notes side-by-side.</p>
<figure
class="image image-style-align-center">
<img style="aspect-ratio:1398/1015;" src="Split View_2_Split View_im.png"
width="1398" height="1015">
</figure>
<h2><strong>Interactions</strong></h2> <h2><strong>Interactions</strong></h2>
<ul> <ul>
<li>Press the <li>Press the
<img src="Split View_Split View_imag.png">button to the right of a note's title to open a new split to the right <img src="Split View_Split View_imag.png">button to the right of a note's title to open a new split to the right
of it. of it.
<ul> <ul>
<li>It is possible to have as many splits as desired, simply press again the <li>It is possible to have as many splits as desired, simply press again the
button.</li> button.</li>
<li>Only horizontal splits are possible, vertical or drag &amp; dropping is <li>Only horizontal splits are possible, vertical or drag &amp; dropping is
not supported.</li> not supported.</li>
</ul> </ul>
</li> </li>
<li>When at least one split is open, press the <li>When at least one split is open, press the
<img src="Split View_3_Split View_im.png">button next to it to close it.</li> <img src="Split View_3_Split View_im.png">button next to it to close it.</li>
<li>Use the <li>Use the
<img src="Split View_4_Split View_im.png">or the <img src="Split View_4_Split View_im.png">or the
<img src="Split View_1_Split View_im.png">button to move around the splits.</li> <img src="Split View_1_Split View_im.png">button to move around the splits.</li>
<li>Each <a href="#root/_help_3seOhtN8uLIY">tab</a> has its own split view configuration <li>Each <a href="#root/_help_3seOhtN8uLIY">tab</a> has its own split view configuration
(e.g. one tab can have two notes in a split view, whereas the others are (e.g. one tab can have two notes in a split view, whereas the others are
one-note views). one-note views).
<ul> <ul>
<li>The tab will indicate only the title of the main note (the first one in <li>The tab will indicate only the title of the main note (the first one in
the list).</li> the list).</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<h2>Splits and the note tree &amp; hoisting</h2> <h2>Splits and the note tree &amp; hoisting</h2>
<p>Clicking on the content of a split will focus that split. While focused, <p>Clicking on the content of a split will focus that split. While focused,
the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;will the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;will
also indicate the note that is being edited.</p> also indicate the note that is being edited.</p>
<p>It is possible for each of the splits to have their own&nbsp;<a class="reference-link" <p>It is possible for each of the splits to have their own&nbsp;<a class="reference-link"
href="#root/_help_OR8WJ7Iz9K4U">Note Hoisting</a>.</p> href="#root/_help_OR8WJ7Iz9K4U">Note Hoisting</a>.</p>
<p>When a new split is created, it will share the same note hoisting as the <p>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 previous one. An easy solution to this is to simply hoist the notes after
the split is created.</p> the split is created.</p>
<p>This is generally quite useful for reorganizing notes from one place to <p>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 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 new place to the second one. This will allow easy cut and paste without
the tree jumping around from switching between notes.</p> the tree jumping around from switching between notes.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,62 +1,42 @@
<html> <figure class="image image-style-align-center">
<img style="aspect-ratio:1119/43;" src="2_Tabs_image.png" width="1119"
<head> height="43">
<meta charset="utf-8"> </figure>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>In Trilium, tabs allow easy switching between notes.</p>
<link rel="stylesheet" href="../../../style.css"> <h2>Layout</h2>
<base target="_parent"> <p>Depending on the&nbsp;<a class="reference-link" href="#root/_help_x0JgW8UqGXvq">Vertical and horizontal layout</a>:</p>
<title data-trilium-title>Tabs</title> <ul>
</head> <li>For the vertical layout, the tabs will be placed at the top but to the
right of the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li>
<body> <li>For the horizontal layout, the tabs will be placed at the top in full-width,
<div class="content"> above the&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">note tree</a>, allowing
<h1 data-trilium-h1>Tabs</h1> for more tabs to be comfortably displayed.</li>
</ul>
<div class="ck-content"> <h2>Interaction</h2>
<figure class="image image-style-align-center"> <ul>
<img style="aspect-ratio:1119/43;" src="2_Tabs_image.png" width="1119" <li>To create a new tab, press the
height="43"> <img src="1_Tabs_image.png">button that is to the right of the last tab.</li>
</figure> <li>To close a tab, press the corresponding
<p>In Trilium, tabs allow easy switching between notes.</p> <img src="Tabs_image.png">button.</li>
<h2>Layout</h2> <li>For multitasking, tabs can be used alongside&nbsp;<a class="reference-link"
<p>Depending on the&nbsp;<a class="reference-link" href="#root/_help_x0JgW8UqGXvq">Vertical and horizontal layout</a>:</p> href="#root/_help_luNhaphA37EO">Split View</a>. Each tab can have one or
<ul> more notes, displayed horizontally.</li>
<li>For the vertical layout, the tabs will be placed at the top but to the <li>Tabs can be reordered by drag-and-dropping it into a new position.</li>
right of the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li> <li>An existing tab can be displayed in a new window by dragging the tab upwards
<li>For the horizontal layout, the tabs will be placed at the top in full-width, or downwards. It is not possible to combine tabs back into another window.</li>
above the&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">note tree</a>, allowing </ul>
for more tabs to be comfortably displayed.</li> <h2>Keyboard interaction</h2>
</ul> <p>Since tabs are a commonly used feature, there are multiple keyboard shortcuts
<h2>Interaction</h2> that can be used:</p>
<ul> <ul>
<li>To create a new tab, press the <li><kbd>Ctrl</kbd>+<kbd>T</kbd> to open a new tab.</li>
<img src="1_Tabs_image.png">button that is to the right of the last tab.</li> <li><kbd>Ctrl</kbd>+<kbd>W</kbd> to close the current tab.</li>
<li>To close a tab, press the corresponding <li><kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>T</kbd> to reopen the last closed
<img src="Tabs_image.png">button.</li> tab.</li>
<li>For multitasking, tabs can be used alongside&nbsp;<a class="reference-link" <li><kbd>Ctrl</kbd>+<kbd>Tab</kbd> and <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Tab</kbd> to
href="#root/_help_luNhaphA37EO">Split View</a>. Each tab can have one or go to the next or previous tab.</li>
more notes, displayed horizontally.</li> <li><kbd>Ctrl</kbd>+<kbd>1</kbd>, <kbd>Ctrl</kbd>+<kbd>2</kbd>, up to <kbd>Ctrl</kbd>+<kbd>9</kbd> to
<li>Tabs can be reordered by drag-and-dropping it into a new position.</li> activate the first, second and up til ninth tab.</li>
<li>An existing tab can be displayed in a new window by dragging the tab upwards <li>There is also a shortcut to go to the last tab, but it is not assigned
or downwards. It is not possible to combine tabs back into another window.</li> a key by default.</li>
</ul> </ul>
<h2>Keyboard interaction</h2>
<p>Since tabs are a commonly used feature, there are multiple keyboard shortcuts
that can be used:</p>
<ul>
<li><kbd>Ctrl</kbd>+<kbd>T</kbd> to open a new tab.</li>
<li><kbd>Ctrl</kbd>+<kbd>W</kbd> to close the current tab.</li>
<li><kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>T</kbd> to reopen the last closed
tab.</li>
<li><kbd>Ctrl</kbd>+<kbd>Tab</kbd> and <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Tab</kbd> to
go to the next or previous tab.</li>
<li><kbd>Ctrl</kbd>+<kbd>1</kbd>, <kbd>Ctrl</kbd>+<kbd>2</kbd>, up to <kbd>Ctrl</kbd>+<kbd>9</kbd> to
activate the first, second and up til ninth tab.</li>
<li>There is also a shortcut to go to the last tab, but it is not assigned
a key by default.</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,69 +1,49 @@
<html> <h2>Layouts</h2>
<p>Trilium supports two different layouts, based on your preference.</p>
<head> <h3>Vertical layout</h3>
<meta charset="utf-8"> <p>The vertical layout is Trilium's original layout:</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <ul>
<link rel="stylesheet" href="../../../style.css"> <li>The&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>&nbsp;is
<base target="_parent"> positioned on the left side of the screen, with buttons being laid out
<title data-trilium-title>Vertical and horizontal layout</title> vertically.</li>
</head> <li>The tab bar is at the top, but to the right of the&nbsp;<a class="reference-link"
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li>
<body> <li>The&nbsp;<a class="reference-link" href="#root/_help_Ms1nauBra7gq">Quick search</a>&nbsp;is
<div class="content"> at the top of the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li>
<h1 data-trilium-h1>Vertical and horizontal layout</h1> <li>The&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;can
be collapsed by pressing the
<div class="ck-content"> <img src="5_Vertical and horizontal la.png">button at the bottom of the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</li>
<h2>Layouts</h2> <li>The&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;can
<p>Trilium supports two different layouts, based on your preference.</p> be accessed via the
<h3>Vertical layout</h3> <img src="4_Vertical and horizontal la.png">icon at the top of the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</li>
<p>The vertical layout is Trilium's original layout:</p> </ul>
<ul> <p>
<li>The&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>&nbsp;is <img src="3_Vertical and horizontal la.png">
positioned on the left side of the screen, with buttons being laid out </p>
vertically.</li> <h3>Horizontal layout</h3>
<li>The tab bar is at the top, but to the right of the&nbsp;<a class="reference-link" <p>The horizontal layout is a more traditional layout, since it bears similarity
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li> with other applications. In this mode:</p>
<li>The&nbsp;<a class="reference-link" href="#root/_help_Ms1nauBra7gq">Quick search</a>&nbsp;is <ul>
at the top of the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li> <li>The&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>&nbsp;is
<li>The&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;can at the top of the screen, with the buttons laid horizontally.</li>
be collapsed by pressing the <li>The tab bar is at the top of the screen, but now covers the entirety of
<img src="5_Vertical and horizontal la.png">button at the bottom of the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</li> the width, allowing for more tabs to be displayed at once.</li>
<li>The&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;can <li>The&nbsp;<a class="reference-link" href="#root/_help_Ms1nauBra7gq">Quick search</a>&nbsp;is
be accessed via the now part of the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.
<img src="4_Vertical and horizontal la.png">icon at the top of the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</li> It can be moved around according to preference and even removed if needed.</li>
</ul> <li>The&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;can
<p> be collapsed by pressing the small
<img src="3_Vertical and horizontal la.png"> <img src="1_Vertical and horizontal la.png">button to the left of the first tab.</li>
</p> <li>The&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;can
<h3>Horizontal layout</h3> be accessed via the
<p>The horizontal layout is a more traditional layout, since it bears similarity <img src="Vertical and horizontal la.png">button at the end of the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</li>
with other applications. In this mode:</p> </ul>
<ul> <p>
<li>The&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>&nbsp;is <img src="2_Vertical and horizontal la.png">
at the top of the screen, with the buttons laid horizontally.</li> </p>
<li>The tab bar is at the top of the screen, but now covers the entirety of <h2>Changing the layout</h2>
the width, allowing for more tabs to be displayed at once.</li> <p>Go to&nbsp;<a class="reference-link" href="#root/_help_4TIF1oA4VQRO">Options</a>&nbsp;and
<li>The&nbsp;<a class="reference-link" href="#root/_help_Ms1nauBra7gq">Quick search</a>&nbsp;is look for the <em>Appearance</em> option on the left. Then look for the <em>Layout</em> section,
now part of the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>. where there is the possibility to switch between the two available layouts.</p>
It can be moved around according to preference and even removed if needed.</li> <p>Selecting an option will immediately apply the new layout by reloading
<li>The&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;can the window.</p>
be collapsed by pressing the small
<img src="1_Vertical and horizontal la.png">button to the left of the first tab.</li>
<li>The&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;can
be accessed via the
<img src="Vertical and horizontal la.png">button at the end of the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</li>
</ul>
<p>
<img src="2_Vertical and horizontal la.png">
</p>
<h2>Changing the layout</h2>
<p>Go to&nbsp;<a class="reference-link" href="#root/_help_4TIF1oA4VQRO">Options</a>&nbsp;and
look for the <em>Appearance</em> option on the left. Then look for the <em>Layout</em> section,
where there is the possibility to switch between the two available layouts.</p>
<p>Selecting an option will immediately apply the new layout by reloading
the window.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,19 +0,0 @@
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../../style.css">
<base target="_parent">
<title data-trilium-title>Zoom</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Zoom</h1>
<div class="ck-content"></div>
</div>
</body>
</html>

View File

@@ -1,67 +1,47 @@
<html> <p>
<img src="3_Zen mode_image.png">
<head> </p>
<meta charset="utf-8"> <p>Screenshot of Zen Mode activated on a Windows 11 system with native title
<meta name="viewport" content="width=device-width, initial-scale=1"> bar off and background effects on.</p>
<link rel="stylesheet" href="../../style.css"> <p>When Zen Mode is activated (pictured on the side), most of the user interface
<base target="_parent"> of Trilium is hidden away in order to be able to focus on the content,
<title data-trilium-title>Zen mode</title> whether it's for reading or writing.</p>
</head> <p>
<img src="2_Zen mode_image.png">
<body> </p>
<div class="content"> <p>Screenshot of the Zen Mode option in the global menu.</p>
<h1 data-trilium-h1>Zen mode</h1> <h2>Activating &amp; deactivating</h2>
<p>The Zen Mode can be activated by accessing the global menu and selecting
<div class="ck-content"> the “Zen Mode” option:</p>
<p> <p>Aside from the global menu, it's also possible to activate this mode by
<img src="3_Zen mode_image.png"> using a keyboard shortcut (which is <kbd>F9</kbd> since TriliumNext 0.92.5
</p> and <kbd>Alt</kbd>+<kbd>Z</kbd> for older versions). Look for <code>toggleZenMode</code> in
<p>Screenshot of Zen Mode activated on a Windows 11 system with native title the shortcut configuration.</p>
bar off and background effects on.</p> <p>Once Zen Mode is activated, all the UI elements of the application will
<p>When Zen Mode is activated (pictured on the side), most of the user interface be hidden away, including the global menu. In that case, the Zen Mode can
of Trilium is hidden away in order to be able to focus on the content, be deactivated either by pressing the
whether it's for reading or writing.</p> <img src="Zen mode_image.png">icon in the top-right corner of the window or by pressing the keyboard
<p> combination again.</p>
<img src="2_Zen mode_image.png"> <p>Do note that, by design, activating or deactivating the Zen Mode applies
</p> only to the current window. Restarting the application will also disable
<p>Screenshot of the Zen Mode option in the global menu.</p> the Zen Mode.</p>
<h2>Activating &amp; deactivating</h2> <h2>Moving the window around</h2>
<p>The Zen Mode can be activated by accessing the global menu and selecting <p>If “Native title bar” is activated, then the operating system's default
the “Zen Mode” option:</p> title bar can be used to drag the window around. If deactivated, the window
<p>Aside from the global menu, it's also possible to activate this mode by can still be moved by dragging the mouse across the top part of the window
using a keyboard shortcut (which is <kbd>F9</kbd> since TriliumNext 0.92.5 where the note titles are.</p>
and <kbd>Alt</kbd>+<kbd>Z</kbd> for older versions). Look for <code>toggleZenMode</code> in <p>
the shortcut configuration.</p> <img src="1_Zen mode_image.png">
<p>Once Zen Mode is activated, all the UI elements of the application will </p>
be hidden away, including the global menu. In that case, the Zen Mode can <p>Screenshot of two notes side-by-side while Zen Mode is active, on Windows
be deactivated either by pressing the 11 with background effects off.</p>
<img src="Zen mode_image.png">icon in the top-right corner of the window or by pressing the keyboard <h2>Split windows and tabs</h2>
combination again.</p> <p>Tabs are completely hidden, however it's still possible to use keyboard
<p>Do note that, by design, activating or deactivating the Zen Mode applies shortcuts such as <code>firstTab</code> (<kbd>Ctrl</kbd>+<kbd>1</kbd> by default), <code>secondTab</code> (<kbd>Ctrl</kbd>+<kbd>2</kbd> by
only to the current window. Restarting the application will also disable default). There are also some newer shortcuts such as <code>activateNextTab</code> (<kbd>Ctrl</kbd>+<kbd>Tab</kbd>)
the Zen Mode.</p> or <code>activatePreviousTab</code> (<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Tab</kbd>)
<h2>Moving the window around</h2> that allow easy navigation, however make sure that they are configured
<p>If “Native title bar” is activated, then the operating system's default properly in the settings.</p>
title bar can be used to drag the window around. If deactivated, the window <p>For the split view of notes, there are no keyboard shortcuts at the time
can still be moved by dragging the mouse across the top part of the window of writing, but it's still possible to have them in Zen Mode by creating
where the note titles are.</p> the split while the Zen Mode is off and then reactivating it afterwards.</p>
<p>
<img src="1_Zen mode_image.png">
</p>
<p>Screenshot of two notes side-by-side while Zen Mode is active, on Windows
11 with background effects off.</p>
<h2>Split windows and tabs</h2>
<p>Tabs are completely hidden, however it's still possible to use keyboard
shortcuts such as <code>firstTab</code> (<kbd>Ctrl</kbd>+<kbd>1</kbd> by default), <code>secondTab</code> (<kbd>Ctrl</kbd>+<kbd>2</kbd> by
default). There are also some newer shortcuts such as <code>activateNextTab</code> (<kbd>Ctrl</kbd>+<kbd>Tab</kbd>)
or <code>activatePreviousTab</code> (<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Tab</kbd>)
that allow easy navigation, however make sure that they are configured
properly in the settings.</p>
<p>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.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,93 +1,73 @@
<html> <h2>macOS support</h2>
<p>Originally, Trilium Notes considered the macOS build unsupported. TriliumNext
<head> commits to make the experience on macOS as good as possible.</p>
<meta charset="utf-8"> <p>if you find any platform-specific issues, feel free to <a href="#root/_help_wy8So3yZZlH9">report them</a>.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <h2>Translation / localisation support</h2>
<link rel="stylesheet" href="../style.css"> <p>The original Trilium Notes application did not support multiple languages.
<base target="_parent"> Since we believe that internationalisation is a core part of an application,
<title data-trilium-title>FAQ</title> we have added support for it.</p>
</head> <p>Contributions to translations are welcome.</p>
<h2>Multi-user support</h2>
<body> <p>Common request is to allow multiple users collaborate, share notes etc.
<div class="content"> So far I'm resisting this because of these reasons:</p>
<h1 data-trilium-h1>FAQ</h1> <ul>
<li>it's a huge feature, or rather a Pandora's box of collaboration features
<div class="ck-content"> like user management, permissions, conflict resolution, real-time editing
<h2>macOS support</h2> of a note by multiple people etc. This would be a huge amount of work.
<p>Originally, Trilium Notes considered the macOS build unsupported. TriliumNext Trilium Notes is project made mostly by one person in free time and that's
commits to make the experience on macOS as good as possible.</p> unlikely to change in the future.</li>
<p>if you find any platform-specific issues, feel free to <a href="#root/_help_wy8So3yZZlH9">report them</a>.</p> <li>given its size it would probably pivot the attention away from my main
<h2>Translation / localisation support</h2> focus which is a personal note-taking</li>
<p>The original Trilium Notes application did not support multiple languages. <li>the assumption that only single person has access to the app simplifies
Since we believe that internationalisation is a core part of an application, many things, or just outright makes them possible. In multi-user app, our
we have added support for it.</p> <a
<p>Contributions to translations are welcome.</p> href="#root/_help_CdNpE2pqjmI6">scripting</a>support would be a XSS security hole, while with the single
<h2>Multi-user support</h2> user assumption it's an endless customizable tool.</li>
<p>Common request is to allow multiple users collaborate, share notes etc. </ul>
So far I'm resisting this because of these reasons:</p> <h2>How to open multiple documents in one Trilium instance</h2>
<ul> <p>This is normally not supported - one Trilium process can open only a single
<li>it's a huge feature, or rather a Pandora's box of collaboration features instance of a <a href="#root/_help_wX4HbRucYSDD">database</a>. However,
like user management, permissions, conflict resolution, real-time editing you can run two Trilium processes (from one installation), each connected
of a note by multiple people etc. This would be a huge amount of work. to a separate document. To achieve this, you need to set a location for
Trilium Notes is project made mostly by one person in free time and that's the <a href="#root/_help_tAassRL4RSQL">data directory</a> in the <code>TRILIUM_DATA_DIR</code> environment
unlikely to change in the future.</li> variable and separate port on <code>TRILIUM_PORT</code> environment variable.
<li>given its size it would probably pivot the attention away from my main How to do that depends on the platform, in Unix-based systems you can achieve
focus which is a personal note-taking</li> that by running command such as this:</p><pre><code class="language-text-x-trilium-auto">TRILIUM_DATA_DIR=/home/me/path/to/data/dir TRILIUM_PORT=12345 trilium </code></pre>
<li>the assumption that only single person has access to the app simplifies <p>You can save this command into a <code>.sh</code> script file or make an
many things, or just outright makes them possible. In multi-user app, our alias. Do this similarly for a second instance with different data directory
<a and port.</p>
href="#root/_help_CdNpE2pqjmI6">scripting</a>support would be a XSS security hole, while with the single <h2>Can I use Dropbox / Google Drive / OneDrive to sync data across multiple computers.</h2>
user assumption it's an endless customizable tool.</li> <p>No.</p>
</ul> <p>These general purpose sync apps are not suitable to sync database files
<h2>How to open multiple documents in one Trilium instance</h2> which are open and being worked on by another application. The result is
<p>This is normally not supported - one Trilium process can open only a single that they will corrupt the database file, resulting in data loss and this
instance of a <a href="#root/_help_wX4HbRucYSDD">database</a>. However, message in the Trilium logs:</p><pre><code class="language-text-x-trilium-auto">SqliteError: database disk image is malformed</code></pre>
you can run two Trilium processes (from one installation), each connected <p>The only supported way to sync Trilium's data across the network is to
to a separate document. To achieve this, you need to set a location for use a <a href="#root/_help_cbkrhQjrkKrh">sync/web server</a>.</p>
the <a href="#root/_help_tAassRL4RSQL">data directory</a> in the <code>TRILIUM_DATA_DIR</code> environment <h2>Why database instead of flat files?</h2>
variable and separate port on <code>TRILIUM_PORT</code> environment variable. <p>Trilium stores notes in a <a href="#root/_help_wX4HbRucYSDD">database</a> which
How to do that depends on the platform, in Unix-based systems you can achieve is an SQLite database. People often ask why doesn't Trilium rather use
that by running command such as this:</p><pre><code class="language-text-x-trilium-auto">TRILIUM_DATA_DIR=/home/me/path/to/data/dir TRILIUM_PORT=12345 trilium </code></pre> flat files for note storage - it's fair question since flat files are easily
<p>You can save this command into a <code>.sh</code> script file or make an interoperable, work with SCM/git etc.</p>
alias. Do this similarly for a second instance with different data directory <p>Short answer is that file systems are simply not powerful enough for what
and port.</p> we want to achieve with Trilium. Using filesystem would mean fewer features
<h2>Can I use Dropbox / Google Drive / OneDrive to sync data across multiple computers.</h2> with probably more problems.</p>
<p>No.</p> <p>More detailed answer:</p>
<p>These general purpose sync apps are not suitable to sync database files <ul>
which are open and being worked on by another application. The result is <li><a href="#root/_help_IakOLONlIfGI">clones</a> are what you might call "hard
that they will corrupt the database file, resulting in data loss and this directory link" in filesystem lingo, but this concept is not implemented
message in the Trilium logs:</p><pre><code class="language-text-x-trilium-auto">SqliteError: database disk image is malformed</code></pre> in any filesystem</li>
<p>The only supported way to sync Trilium's data across the network is to <li>filesystems make a distinction between directory and file while there's
use a <a href="#root/_help_cbkrhQjrkKrh">sync/web server</a>.</p> intentionally no such difference in Trilium</li>
<h2>Why database instead of flat files?</h2> <li>files are stored in no particular order and user can't change this</li>
<p>Trilium stores notes in a <a href="#root/_help_wX4HbRucYSDD">database</a> which <li>Trilium allows storing note <a href="#root/_help_zEY4DaJG4YT5">attributes</a> which
is an SQLite database. People often ask why doesn't Trilium rather use could be represented in extended user attributes but their support differs
flat files for note storage - it's fair question since flat files are easily greatly among different filesystems / operating systems</li>
interoperable, work with SCM/git etc.</p> <li>Trilium makes links / relations between different notes which can be quickly
<p>Short answer is that file systems are simply not powerful enough for what retrieved / navigated (e.g. for <a href="#root/_help_BCkXAVs63Ttv">note map</a>).
we want to achieve with Trilium. Using filesystem would mean fewer features There's no such support in file systems which means these would have to
with probably more problems.</p> be stored in some kind of side-car files (mini-databases).</li>
<p>More detailed answer:</p> <li>Filesystems are generally not transactional. While this is not completely
<ul> required for a note-taking application, having transactions make it way
<li><a href="#root/_help_IakOLONlIfGI">clones</a> are what you might call "hard easier to keep notes and their metadata in predictable and consistent state.</li>
directory link" in filesystem lingo, but this concept is not implemented </ul>
in any filesystem</li>
<li>filesystems make a distinction between directory and file while there's
intentionally no such difference in Trilium</li>
<li>files are stored in no particular order and user can't change this</li>
<li>Trilium allows storing note <a href="#root/_help_zEY4DaJG4YT5">attributes</a> which
could be represented in extended user attributes but their support differs
greatly among different filesystems / operating systems</li>
<li>Trilium makes links / relations between different notes which can be quickly
retrieved / navigated (e.g. for <a href="#root/_help_BCkXAVs63Ttv">note map</a>).
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).</li>
<li>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.</li>
</ul>
</div>
</div>
</body>
</html>

View File

@@ -1,73 +1,53 @@
<html> <p>Trilium supports simple backup scheme where it saves copy of the&nbsp;
<a
<head> class="reference-link" href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;on these events:</p>
<meta charset="utf-8"> <ul>
<meta name="viewport" content="width=device-width, initial-scale=1"> <li>once a day</li>
<link rel="stylesheet" href="../../style.css"> <li>once a week</li>
<base target="_parent"> <li>once a month</li>
<title data-trilium-title>Backup</title> <li>before DB migration to newer version</li>
</head> </ul>
<p>So in total you'll have at most 4 backups from different points in time
<body> which should protect you from various problems. These backups are stored
<div class="content"> by default in <code>backup</code> directory placed in the <a href="#root/_help_tAassRL4RSQL">data directory</a>.</p>
<h1 data-trilium-h1>Backup</h1> <p>This is only very basic backup solution, and you're encouraged to add
some better backup solution - e.g. backing up the&nbsp;<a class="reference-link"
<div class="ck-content"> href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;to cloud / different
<p>Trilium supports simple backup scheme where it saves copy of the&nbsp; computer etc.</p>
<a <p>Note that&nbsp;<a class="reference-link" href="#root/_help_cbkrhQjrkKrh">Synchronization</a>&nbsp;provides
class="reference-link" href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;on these events:</p> also some backup capabilities by its nature of distributing the data to
<ul> other computers.</p>
<li>once a day</li> <h2>Restoring backup</h2>
<li>once a week</li> <p>Let's assume you want to restore the weekly backup, here's how to do it:</p>
<li>once a month</li> <ul>
<li>before DB migration to newer version</li> <li>find <a href="#root/_help_tAassRL4RSQL">data directory</a> Trilium uses
</ul> - easy way is to open "About Trilium Notes" from "Menu" in upper left corner
<p>So in total you'll have at most 4 backups from different points in time and looking at "data directory"
which should protect you from various problems. These backups are stored <ul>
by default in <code>backup</code> directory placed in the <a href="#root/_help_tAassRL4RSQL">data directory</a>.</p> <li>I'll refer to <code>~/trilium-data</code> as data directory from now on</li>
<p>This is only very basic backup solution, and you're encouraged to add </ul>
some better backup solution - e.g. backing up the&nbsp;<a class="reference-link" </li>
href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;to cloud / different <li>find <code>~/trilium-data/backup/backup-weekly.db</code> - this is the&nbsp;
computer etc.</p> <a
<p>Note that&nbsp;<a class="reference-link" href="#root/_help_cbkrhQjrkKrh">Synchronization</a>&nbsp;provides class="reference-link" href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;backup</li>
also some backup capabilities by its nature of distributing the data to <li>at this point stop/kill Trilium</li>
other computers.</p> <li>delete <code>~/trilium-data/document.db</code>, <code>~/trilium-data/document.db-wal</code> and <code>~/trilium-data/document.db-shm</code> (latter
<h2>Restoring backup</h2> two files are auto generated)</li>
<p>Let's assume you want to restore the weekly backup, here's how to do it:</p> <li>copy and rename this <code>~/trilium-data/backup/backup-weekly.db</code> to <code>~/trilium-data/document.db</code>
<ul> </li>
<li>find <a href="#root/_help_tAassRL4RSQL">data directory</a> Trilium uses <li>make sure that the file is writable, e.g. with <code>chmod 600 document.db</code>
- easy way is to open "About Trilium Notes" from "Menu" in upper left corner </li>
and looking at "data directory" <li>start Trilium again</li>
<ul> </ul>
<li>I'll refer to <code>~/trilium-data</code> as data directory from now on</li> <p>If you have configured sync then you need to do it across all members
</ul> of the sync cluster, otherwise older version (restored backup) of the document
</li> will be detected and synced to the newer version.</p>
<li>find <code>~/trilium-data/backup/backup-weekly.db</code> - this is the&nbsp; <h2>Disabling backup</h2>
<a <p>Although this is not recommended, it is possible to disable backup in <code>config.ini</code> in
class="reference-link" href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;backup</li> the <a href="#root/_help_tAassRL4RSQL">data directory</a>:</p><pre><code class="language-text-x-trilium-auto">[General]
<li>at this point stop/kill Trilium</li>
<li>delete <code>~/trilium-data/document.db</code>, <code>~/trilium-data/document.db-wal</code> and <code>~/trilium-data/document.db-shm</code> (latter
two files are auto generated)</li>
<li>copy and rename this <code>~/trilium-data/backup/backup-weekly.db</code> to <code>~/trilium-data/document.db</code>
</li>
<li>make sure that the file is writable, e.g. with <code>chmod 600 document.db</code>
</li>
<li>start Trilium again</li>
</ul>
<p>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.</p>
<h2>Disabling backup</h2>
<p>Although this is not recommended, it is possible to disable backup in <code>config.ini</code> in
the <a href="#root/_help_tAassRL4RSQL">data directory</a>:</p><pre><code class="language-text-x-trilium-auto">[General]
... some other configs ... some other configs
# set to true to disable backups (e.g. because of limited space on server) # set to true to disable backups (e.g. because of limited space on server)
noBackup=true</code></pre> noBackup=true</code></pre>
<p>You can also review the <a href="#root/_help_Gzjqa934BdH4">configuration</a> file <p>You can also review the <a href="#root/_help_Gzjqa934BdH4">configuration</a> file
to provide all <code>config.ini</code> values as environment variables instead.</p> to provide all <code>config.ini</code> values as environment variables instead.</p>
<p>See <a href="https://github.com/TriliumNext/Notes/blob/master/config-sample.ini">sample config</a>.</p> <p>See <a href="https://github.com/TriliumNext/Notes/blob/master/config-sample.ini">sample config</a>.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,57 +1,42 @@
<html> <p>Data directory contains:</p>
<ul>
<head> <li><code>document.db</code> - <a href="#root/_help_wX4HbRucYSDD">database</a>
<meta charset="utf-8"> </li>
<meta name="viewport" content="width=device-width, initial-scale=1"> <li><code>config.ini</code> - instance level settings like port on which the
<link rel="stylesheet" href="../../style.css"> Trilium application runs</li>
<base target="_parent"> <li><code>backup</code> - contains automatically <a href="#root/_help_ODY7qQn5m2FT">backup</a> of
<title data-trilium-title>Data directory</title> documents</li>
</head> <li><code>log</code> - contains application log files</li>
</ul>
<body> <h2>Location</h2>
<div class="content"> <p>Easy way how to find out which data directory Trilium uses is to look
<h1 data-trilium-h1>Data directory</h1> at the "About Trilium Notes" dialog (from "Menu" in upper left corner):</p>
<p>
<div class="ck-content"> <img src="Data directory_image.png">
<p>Data directory contains:</p> </p>
<ul> <p>Here's how the location is decided:</p>
<li><code>document.db</code> - <a href="#root/_help_wX4HbRucYSDD">database</a> <p>Data directory is normally named <code>trilium-data</code> and it is stored
</li> in:</p>
<li><code>config.ini</code> - instance level settings like port on which the <ul>
Trilium application runs</li> <li><code>/home/[user]/.local/share</code> for Linux</li>
<li><code>backup</code> - contains automatically <a href="#root/_help_ODY7qQn5m2FT">backup</a> of <li><code>C:\Users\[user]\AppData\Roaming</code> for Windows Vista and up</li>
documents</li> <li><code>/Users/[user]/Library/Application Support</code> for Mac OS</li>
<li><code>log</code> - contains application log files</li> <li>user's home is a fallback if some of the paths above don't exist</li>
</ul> <li>user's home is also a default setup for [[docker|Docker server installation]]</li>
<h2>Location</h2> </ul>
<p>Easy way how to find out which data directory Trilium uses is to look <p>If you want to back up your Trilium data, just backup this single directory
at the "About Trilium Notes" dialog (from "Menu" in upper left corner):</p> - it contains everything you need.</p>
<p> <h3>Changing the location of data directory</h3>
<img src="Data directory_image.png"> <p>If you want to use some other location for the data directory than the
</p> default one, you may change it via TRILIUM_DATA_DIR environment variable
<p>Here's how the location is decided:</p> to some other location:</p>
<p>Data directory is normally named <code>trilium-data</code> and it is stored <h4>Linux</h4><pre><code class="language-text-x-trilium-auto">export TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data</code></pre>
in:</p> <h4>Mac OS X</h4>
<ul> <p>You need to create a <code>.plist</code> file under <code>~/Library/LaunchAgents</code> to
<li><code>/home/[user]/.local/share</code> for Linux</li> load it properly each login.</p>
<li><code>C:\Users\[user]\AppData\Roaming</code> for Windows Vista and up</li> <p>To load it manually, you need to use <code>launchctl setenv TRILIUM_DATA_DIR &lt;yourpath&gt;</code>
<li><code>/Users/[user]/Library/Application Support</code> for Mac OS</li> </p>
<li>user's home is a fallback if some of the paths above don't exist</li> <p>Here is a pre-defined template, where you just need to add your path to:</p><pre><code class="language-text-x-trilium-auto">
<li>user's home is also a default setup for [[docker|Docker server installation]]</li>
</ul>
<p>If you want to back up your Trilium data, just backup this single directory
- it contains everything you need.</p>
<h3>Changing the location of data directory</h3>
<p>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:</p>
<h4>Linux</h4><pre><code class="language-text-x-trilium-auto">export TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data</code></pre>
<h4>Mac OS X</h4>
<p>You need to create a <code>.plist</code> file under <code>~/Library/LaunchAgents</code> to
load it properly each login.</p>
<p>To load it manually, you need to use <code>launchctl setenv TRILIUM_DATA_DIR &lt;yourpath&gt;</code>
</p>
<p>Here is a pre-defined template, where you just need to add your path to:</p><pre><code class="language-text-x-trilium-auto">
@@ -69,33 +54,28 @@
</code></pre> </code></pre>
<h3>Create a script to run with specific data directory</h3> <h3>Create a script to run with specific data directory</h3>
<p>An alternative to globally setting environment variable is to run only <p>An alternative to globally setting environment variable is to run only
the Trilium Notes with this environment variable. This then allows for the Trilium Notes with this environment variable. This then allows for
different setup styles like two <a href="#root/_help_wX4HbRucYSDD">database</a> instances different setup styles like two <a href="#root/_help_wX4HbRucYSDD">database</a> instances
or "portable" installation.</p> or "portable" installation.</p>
<p>To do this in unix based systems simply run trilium like this:</p><pre><code class="language-text-x-trilium-auto">TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data trilium</code></pre> <p>To do this in unix based systems simply run trilium like this:</p><pre><code class="language-text-x-trilium-auto">TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data trilium</code></pre>
<p>You can then save the above command as a shell script on your path for <p>You can then save the above command as a shell script on your path for
convenience.</p> convenience.</p>
<h3>Fine-grained directory/path location</h3> <h3>Fine-grained directory/path location</h3>
<p>It's possible to configure e.g. backup and log directories separately, <p>It's possible to configure e.g. backup and log directories separately,
with following environment variables:</p> with following environment variables:</p>
<ul> <ul>
<li><code>TRILIUM_DOCUMENT_PATH</code> <li><code>TRILIUM_DOCUMENT_PATH</code>
</li> </li>
<li><code>TRILIUM_BACKUP_DIR</code> <li><code>TRILIUM_BACKUP_DIR</code>
</li> </li>
<li><code>TRILIUM_LOG_DIR</code> <li><code>TRILIUM_LOG_DIR</code>
</li> </li>
<li><code>TRILIUM_ANONYMIZED_DB_DIR</code> <li><code>TRILIUM_ANONYMIZED_DB_DIR</code>
</li> </li>
<li><code>TRILIUM_CONFIG_INI_PATH</code> <li><code>TRILIUM_CONFIG_INI_PATH</code>
</li> </li>
</ul> </ul>
<p>If these are not set, default paths within the data directory will be <p>If these are not set, default paths within the data directory will be
used.</p> used.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,52 +1,32 @@
<html> <p>To install Trilium on your desktop, follow these steps:</p>
<ol>
<head> <li><strong>Download the Latest Release</strong>: Obtain the appropriate binary
<meta charset="utf-8"> release for your operating system from the <a href="https://github.com/TriliumNext/Notes/releases/latest">latest release page</a> on
<meta name="viewport" content="width=device-width, initial-scale=1"> GitHub.</li>
<link rel="stylesheet" href="../../style.css"> <li><strong>Extract the Package</strong>: Unzip the downloaded package to
<base target="_parent"> a location of your choice.</li>
<title data-trilium-title>Desktop Installation</title> <li><strong>Run the Application</strong>: Launch Trilium by executing the <code>trilium</code> executable
</head> found within the unzipped folder.</li>
</ol>
<body> <h2>Startup Scripts</h2>
<div class="content"> <p>Trilium offers various startup scripts to customize your experience:</p>
<h1 data-trilium-h1>Desktop Installation</h1> <ul>
<li><code>trilium-no-cert-check</code>: Starts Trilium without validating
<div class="ck-content"> <a
<p>To install Trilium on your desktop, follow these steps:</p> href="#root/_help_l2VkvOwUNfZj">TLS certificates</a>, useful if connecting to a server with a self-signed
<ol> certificate.
<li><strong>Download the Latest Release</strong>: Obtain the appropriate binary <ul>
release for your operating system from the <a href="https://github.com/TriliumNext/Notes/releases/latest">latest release page</a> on <li>Alternatively, set the <code>NODE_TLS_REJECT_UNAUTHORIZED=0</code> environment
GitHub.</li> variable before starting Trilium.</li>
<li><strong>Extract the Package</strong>: Unzip the downloaded package to </ul>
a location of your choice.</li> </li>
<li><strong>Run the Application</strong>: Launch Trilium by executing the <code>trilium</code> executable <li><code>trilium-portable</code>: Launches Trilium in portable mode, where
found within the unzipped folder.</li> the <a href="#root/_help_tAassRL4RSQL">data directory</a> is created within
</ol> the application's directory, making it easy to move the entire setup.</li>
<h2>Startup Scripts</h2> <li><code>trilium-safe-mode</code>: Boots Trilium in "safe mode," disabling
<p>Trilium offers various startup scripts to customize your experience:</p> any startup scripts that might cause the application to crash.</li>
<ul> </ul>
<li><code>trilium-no-cert-check</code>: Starts Trilium without validating <h2>Synchronization</h2>
<a <p>For Trilium desktp users who wish to synchronize their data with a server
href="#root/_help_l2VkvOwUNfZj">TLS certificates</a>, useful if connecting to a server with a self-signed instance, refer to the&nbsp;<a class="reference-link" href="#root/_help_cbkrhQjrkKrh">Synchronization</a>&nbsp;guide
certificate. for detailed instructions.</p>
<ul>
<li>Alternatively, set the <code>NODE_TLS_REJECT_UNAUTHORIZED=0</code> environment
variable before starting Trilium.</li>
</ul>
</li>
<li><code>trilium-portable</code>: Launches Trilium in portable mode, where
the <a href="#root/_help_tAassRL4RSQL">data directory</a> is created within
the application's directory, making it easy to move the entire setup.</li>
<li><code>trilium-safe-mode</code>: Boots Trilium in "safe mode," disabling
any startup scripts that might cause the application to crash.</li>
</ul>
<h2>Synchronization</h2>
<p>For Trilium desktp users who wish to synchronize their data with a server
instance, refer to the&nbsp;<a class="reference-link" href="#root/_help_cbkrhQjrkKrh">Synchronization</a>&nbsp;guide
for detailed instructions.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,57 +1,37 @@
<html> <p>Trilium (<a href="#root/_help_WOcw2SLH6tbX">server edition</a>) has a
mobile web frontend which is optimized for touch based devices - smartphones
<head> and tablets. It is activated automatically during login process based on
<meta charset="utf-8"> browser detection.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>Mobile frontend is limited in features compared to full desktop frontend.
<link rel="stylesheet" href="../../style.css"> See below for more details on this.</p>
<base target="_parent"> <p>Note that this is not an Android/iOS app, this is just mobile friendly
<title data-trilium-title>Mobile Frontend</title> web page served on the <a href="#root/_help_WOcw2SLH6tbX">server edition</a>.</p>
</head> <h2>Screenshots</h2>
<h3>Mobile phone</h3>
<body> <p>
<div class="content"> <img src="Mobile Frontend_mobile-sma.png">
<h1 data-trilium-h1>Mobile Frontend</h1> </p>
<h3>Tablet</h3>
<div class="ck-content"> <p>
<p>Trilium (<a href="#root/_help_WOcw2SLH6tbX">server edition</a>) has a <img src="Mobile Frontend_mobile-tab.png">
mobile web frontend which is optimized for touch based devices - smartphones </p>
and tablets. It is activated automatically during login process based on <h2>Limitations</h2>
browser detection.</p> <p>Mobile frontend provides only some of the features of the full desktop
<p>Mobile frontend is limited in features compared to full desktop frontend. frontend:</p>
See below for more details on this.</p> <ul>
<p>Note that this is not an Android/iOS app, this is just mobile friendly <li>it is possible to browse the whole note tree, read and edit all types
web page served on the <a href="#root/_help_WOcw2SLH6tbX">server edition</a>.</p> of notes, but you can create only text notes</li>
<h2>Screenshots</h2> <li>reading and editing <a href="#root/_help_bwg0e8ewQMak">protected notes</a> is
<h3>Mobile phone</h3> possible, but creating them is not supported</li>
<p> <li>editing options is not supported</li>
<img src="Mobile Frontend_mobile-sma.png"> <li>cloning notes is not supported</li>
</p> <li>uploading file attachments is not supported</li>
<h3>Tablet</h3> </ul>
<p> <h2>Forcing mobile/desktop frontend</h2>
<img src="Mobile Frontend_mobile-tab.png"> <p>Trilium decides automatically whether to use mobile or desktop frontend.
</p> If this is not appropriate, you can use <code>?mobile</code> or <code>?desktop</code> query
<h2>Limitations</h2> param on <strong>login</strong> page (Note: you might need to log out).</p>
<p>Mobile frontend provides only some of the features of the full desktop <h2>Scripting</h2>
frontend:</p> <p>You can alter the behavior with <a href="#root/_help_CdNpE2pqjmI6">scripts</a> just
<ul> like for normal frontend. For script notes to be executed, they need to
<li>it is possible to browse the whole note tree, read and edit all types have labeled <code>#run=mobileStartup</code>.</p>
of notes, but you can create only text notes</li>
<li>reading and editing <a href="#root/_help_bwg0e8ewQMak">protected notes</a> is
possible, but creating them is not supported</li>
<li>editing options is not supported</li>
<li>cloning notes is not supported</li>
<li>uploading file attachments is not supported</li>
</ul>
<h2>Forcing mobile/desktop frontend</h2>
<p>Trilium decides automatically whether to use mobile or desktop frontend.
If this is not appropriate, you can use <code>?mobile</code> or <code>?desktop</code> query
param on <strong>login</strong> page (Note: you might need to log out).</p>
<h2>Scripting</h2>
<p>You can alter the behavior with <a href="#root/_help_CdNpE2pqjmI6">scripts</a> just
like for normal frontend. For script notes to be executed, they need to
have labeled <code>#run=mobileStartup</code>.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,67 +1,52 @@
<html> <p>This guide outlines the steps to install Trilium on your own server. You
might consider this option if you want to set up <a href="#root/_help_cbkrhQjrkKrh">synchronization</a> or
<head> use Trilium in a browser - accessible from anywhere.</p>
<meta charset="utf-8"> <h2>Installation Options</h2>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>There are several ways to install Trilium on a server, each with its own
<link rel="stylesheet" href="../../style.css"> advantages:</p>
<base target="_parent"> <ul>
<title data-trilium-title>Server Installation</title> <li><strong>Recommended</strong>: <a href="#root/_help_rWX5eY045zbE">Docker Installation</a> -
</head> Available for <strong>AMD64</strong> and <strong>ARM</strong> architectures.</li>
<li><a href="#root/_help_3tW6mORuTHnB">Packaged Server Installation</a>
<body> </li>
<div class="content"> <li><a href="https://www.pikapods.com/pods?run=trilium-next">PikaPods managed hosting</a>
<h1 data-trilium-h1>Server Installation</h1> </li>
<li><a href="#root/_help_J1Bb6lVlwU5T">Manual Installation</a>
<div class="ck-content"> </li>
<p>This guide outlines the steps to install Trilium on your own server. You <li><a href="#root/_help_DCmT6e7clMoP">Kubernetes</a>
might consider this option if you want to set up <a href="#root/_help_cbkrhQjrkKrh">synchronization</a> or </li>
use Trilium in a browser - accessible from anywhere.</p> <li><a href="https://www.cloudron.io/store/com.github.trilium.cloudronapp.html">Cloudron</a>
<h2>Installation Options</h2> </li>
<p>There are several ways to install Trilium on a server, each with its own <li><a href="https://homelabos.com/docs/software/trilium/">HomelabOS</a>
advantages:</p> </li>
<ul> <li><a href="#root/_help_moVgBcoxE3EK">NixOS Module</a>
<li><strong>Recommended</strong>: <a href="#root/_help_rWX5eY045zbE">Docker Installation</a> - </li>
Available for <strong>AMD64</strong> and <strong>ARM</strong> architectures.</li> </ul>
<li><a href="#root/_help_3tW6mORuTHnB">Packaged Server Installation</a> <p>The server installation includes both web and <a href="#root/_help_RDslemsQ6gCp">mobile frontends</a>.</p>
</li> <h2>Configuration</h2>
<li><a href="https://www.pikapods.com/pods?run=trilium-next">PikaPods managed hosting</a> <p>After setting up your server installation, you may want to configure settings
</li> such as the port or enable <a href="#root/_help_l2VkvOwUNfZj">TLS</a>. Configuration
<li><a href="#root/_help_J1Bb6lVlwU5T">Manual Installation</a> is managed via the Trilium <code>config.ini</code> file, which is located
</li> in the <a href="#root/_help_tAassRL4RSQL">data directory</a> by default.
<li><a href="#root/_help_DCmT6e7clMoP">Kubernetes</a> To begin customizing your setup, copy the provided <code>config-sample.ini</code> file
</li> with default values to <code>config.ini</code>.</p>
<li><a href="https://www.cloudron.io/store/com.github.trilium.cloudronapp.html">Cloudron</a> <p>You can also review the <a href="#root/_help_Gzjqa934BdH4">configuration</a> file
</li> to provide all <code>config.ini</code> values as environment variables instead.</p>
<li><a href="https://homelabos.com/docs/software/trilium/">HomelabOS</a> <h3>Config Location</h3>
</li> <p>By default, <code>config.ini</code>, the <a href="#root/_help_wX4HbRucYSDD">database</a>,
<li><a href="#root/_help_moVgBcoxE3EK">NixOS Module</a> and other important Trilium data files are stored in the <a href="#root/_help_tAassRL4RSQL">data directory</a>.
</li> If you prefer a different location, you can change it by setting the <code>TRILIUM_DATA_DIR</code> environment
</ul> variable:</p><pre><code class="language-text-x-trilium-auto">export TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data</code></pre>
<p>The server installation includes both web and <a href="#root/_help_RDslemsQ6gCp">mobile frontends</a>.</p> <h3>Disabling Authentication</h3>
<h2>Configuration</h2> <p>If you are running Trilium on localhost only or if authentication is handled
<p>After setting up your server installation, you may want to configure settings by another component, you can disable Triliums authentication by adding
such as the port or enable <a href="#root/_help_l2VkvOwUNfZj">TLS</a>. Configuration the following to <code>config.ini</code>:</p><pre><code class="language-text-x-trilium-auto">[General]
is managed via the Trilium <code>config.ini</code> file, which is located
in the <a href="#root/_help_tAassRL4RSQL">data directory</a> by default.
To begin customizing your setup, copy the provided <code>config-sample.ini</code> file
with default values to <code>config.ini</code>.</p>
<p>You can also review the <a href="#root/_help_Gzjqa934BdH4">configuration</a> file
to provide all <code>config.ini</code> values as environment variables instead.</p>
<h3>Config Location</h3>
<p>By default, <code>config.ini</code>, the <a href="#root/_help_wX4HbRucYSDD">database</a>,
and other important Trilium data files are stored in the <a href="#root/_help_tAassRL4RSQL">data directory</a>.
If you prefer a different location, you can change it by setting the <code>TRILIUM_DATA_DIR</code> environment
variable:</p><pre><code class="language-text-x-trilium-auto">export TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data</code></pre>
<h3>Disabling Authentication</h3>
<p>If you are running Trilium on localhost only or if authentication is handled
by another component, you can disable Triliums authentication by adding
the following to <code>config.ini</code>:</p><pre><code class="language-text-x-trilium-auto">[General]
noAuthentication=true</code></pre> noAuthentication=true</code></pre>
<h2>Reverse Proxy Setup</h2> <h2>Reverse Proxy Setup</h2>
<p>To configure a reverse proxy for Trilium, you can use either <strong>nginx</strong> or <strong>Apache</strong>.</p> <p>To configure a reverse proxy for Trilium, you can use either <strong>nginx</strong> or <strong>Apache</strong>.</p>
<h3>nginx</h3> <h3>nginx</h3>
<p>Add the following configuration to your <code>nginx</code> setup to proxy <p>Add the following configuration to your <code>nginx</code> setup to proxy
requests to Trilium:</p><pre><code class="language-text-x-trilium-auto">location /trilium/ { requests to Trilium:</p><pre><code class="language-text-x-trilium-auto">location /trilium/ {
proxy_pass http://127.0.0.1:8080/; proxy_pass http://127.0.0.1:8080/;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;
@@ -69,12 +54,7 @@ noAuthentication=true</code></pre>
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade; proxy_cache_bypass $http_upgrade;
}</code></pre> }</code></pre>
<p>To avoid limiting the size of payloads, include this in the <code>server {}</code> block:</p><pre><code class="language-text-x-trilium-auto"># Set to 0 for unlimited. Default is 1M. <p>To avoid limiting the size of payloads, include this in the <code>server {}</code> block:</p><pre><code class="language-text-x-trilium-auto"># Set to 0 for unlimited. Default is 1M.
client_max_body_size 0;</code></pre> client_max_body_size 0;</code></pre>
<h3>Apache</h3> <h3>Apache</h3>
<p>For an Apache setup, refer to the <a href="#root/_help_fDLvzOx29Pfg">Apache proxy setup</a> guide.</p> <p>For an Apache setup, refer to the <a href="#root/_help_fDLvzOx29Pfg">Apache proxy setup</a> guide.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,42 +1,27 @@
<html> <aside class="admonition warning">
<p>This page describes manually installing Trilium on your server. <strong>Note that this is a not well supported way to install Trilium, problems may appear, information laid out here is quite out of date. It is recommended to use either</strong>&nbsp;
<head> <a
<meta charset="utf-8"> class="reference-link" href="#root/_help_rWX5eY045zbE">Docker Server Installation</a>&nbsp;<strong>or</strong>&nbsp;<a class="reference-link"
<meta name="viewport" content="width=device-width, initial-scale=1"> href="#root/_help_3tW6mORuTHnB">Packaged server installation</a><strong>.</strong>
<link rel="stylesheet" href="../../../../style.css"> </p>
<base target="_parent"> </aside>
<title data-trilium-title>Manually</title> <h2>Requirements</h2>
</head> <p>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
<body> well.</p>
<div class="content"> <p>You can check your node version with this command (node.js needs to be
<h1 data-trilium-h1>Manually</h1> installed):</p><pre><code class="language-text-x-trilium-auto">node --version</code></pre>
<p>If your Linux distribution has only an outdated version of node.js, you
<div class="ck-content"> can take a look at the installation instruction on node.js website, which
<aside class="admonition warning"> covers most popular distributions.</p>
<p>This page describes manually installing Trilium on your server. <strong>Note that this is a not well supported way to install Trilium, problems may appear, information laid out here is quite out of date. It is recommended to use either</strong>&nbsp; <h3>Dependencies</h3>
<a <p>There are some dependencies required. You can see command for Debian and
class="reference-link" href="#root/_help_rWX5eY045zbE">Docker Server Installation</a>&nbsp;<strong>or</strong>&nbsp;<a class="reference-link" its derivatives (like Ubuntu) below:</p><pre><code class="language-text-x-trilium-auto">sudo apt install libpng16-16 libpng-dev pkg-config autoconf libtool build-essential nasm libx11-dev libxkbfile-dev</code></pre>
href="#root/_help_3tW6mORuTHnB">Packaged server installation</a><strong>.</strong> <h2>Installation</h2>
</p> <h3>Download</h3>
</aside> <p>You can either download source code zip/tar from <a href="https://github.com/TriliumNext/Notes/releases/latest">https://github.com/TriliumNext/Notes/releases/latest</a>.</p>
<h2>Requirements</h2> <p>For the latest version including betas, clone Git repository <strong>from</strong> <code>master</code> <strong>branch</strong> with:</p><pre><code class="language-text-x-trilium-auto">git clone -b master https://github.com/triliumnext/notes.git</code></pre>
<p>Trilium is a node.js application. Supported (tested) version of node.js <h2>Installation</h2><pre><code class="language-text-x-trilium-auto">cd trilium
is latest 14.X.X and 16.X.X. Trilium might work with older versions as
well.</p>
<p>You can check your node version with this command (node.js needs to be
installed):</p><pre><code class="language-text-x-trilium-auto">node --version</code></pre>
<p>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.</p>
<h3>Dependencies</h3>
<p>There are some dependencies required. You can see command for Debian and
its derivatives (like Ubuntu) below:</p><pre><code class="language-text-x-trilium-auto">sudo apt install libpng16-16 libpng-dev pkg-config autoconf libtool build-essential nasm libx11-dev libxkbfile-dev</code></pre>
<h2>Installation</h2>
<h3>Download</h3>
<p>You can either download source code zip/tar from <a href="https://github.com/TriliumNext/Notes/releases/latest">https://github.com/TriliumNext/Notes/releases/latest</a>.</p>
<p>For the latest version including betas, clone Git repository <strong>from</strong> <code>master</code> <strong>branch</strong> with:</p><pre><code class="language-text-x-trilium-auto">git clone -b master https://github.com/triliumnext/notes.git</code></pre>
<h2>Installation</h2><pre><code class="language-text-x-trilium-auto">cd trilium
# download all node dependencies # download all node dependencies
npm install npm install
@@ -46,18 +31,13 @@ npm rebuild
# bundles &amp; minifies frontend JavaScript # bundles &amp; minifies frontend JavaScript
npm run webpack</code></pre> npm run webpack</code></pre>
<h2>Run</h2><pre><code class="language-text-x-trilium-auto">cd trilium <h2>Run</h2><pre><code class="language-text-x-trilium-auto">cd trilium
# using nohup to make sure trilium keeps running after user logs out # using nohup to make sure trilium keeps running after user logs out
nohup TRILIUM_ENV=dev node src/www &amp;</code></pre> nohup TRILIUM_ENV=dev node src/www &amp;</code></pre>
<p>The application by default starts up on port 8080, so you can open your <p>The application by default starts up on port 8080, so you can open your
browser and navigate to <a href="http://localhost:8080">http://localhost:8080</a> to browser and navigate to <a href="http://localhost:8080">http://localhost:8080</a> to
access Trilium (replace "localhost" with your hostname).</p> access Trilium (replace "localhost" with your hostname).</p>
<h2>TLS</h2> <h2>TLS</h2>
<p>Don't forget to <a href="#root/_help_l2VkvOwUNfZj">configure TLS</a> which <p>Don't forget to <a href="#root/_help_l2VkvOwUNfZj">configure TLS</a> which
is required for secure usage!</p> is required for secure usage!</p>
</div>
</div>
</body>
</html>

View File

@@ -1,45 +1,25 @@
<html> <p>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
<head> set up. It is also not possible to use multiple <a href="#root/_help_cbkrhQjrkKrh">sync</a> servers.</p>
<meta charset="utf-8"> <p>To allow multiple server instances on a single physical server:</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <ul>
<link rel="stylesheet" href="../../../../style.css"> <li>
<base target="_parent"> <p>For&nbsp;<a class="reference-link" href="#root/_help_3tW6mORuTHnB">Packaged version for Linux</a>&nbsp;or&nbsp;
<title data-trilium-title>Multiple server instances</title> <a
</head> class="reference-link" href="#root/_help_J1Bb6lVlwU5T">Manually</a>, if starting the server manually just specify a different
port and data directory per instance:</p><pre><code class="language-text-x-trilium-auto">TRILIUM_NETWORK_PORT=8080 TRILIUM_DATA_DIR=/path/to/your/data-dir-A /opt/trilium/trilium.sh</code></pre>
<body> <p>For a second instance:</p><pre><code class="language-text-x-trilium-auto">TRILIUM_NETWORK_PORT=8081 TRILIUM_DATA_DIR=/path/to/your/data-dir-B /opt/trilium/trilium.sh</code></pre>
<div class="content"> <p>If using <code>systemd</code>, then set the <a href="https://serverfault.com/questions/413397/how-to-set-environment-variable-in-systemd-service">environment variables in the service configuration</a>.</p>
<h1 data-trilium-h1>Multiple server instances</h1> </li>
<li>
<div class="ck-content"> <p>For&nbsp;<a class="reference-link" href="#root/_help_rWX5eY045zbE">Using Docker</a>,
<p>Trilium does not support multiple users. In order to have two or more simply use two different containers, each with their own port binding and
persons with their own set of notes, multiple server instances must be data directory.</p>
set up. It is also not possible to use multiple <a href="#root/_help_cbkrhQjrkKrh">sync</a> servers.</p> </li>
<p>To allow multiple server instances on a single physical server:</p> <li>
<ul> <p>For&nbsp;<a class="reference-link" href="#root/_help_moVgBcoxE3EK">On NixOS</a>,
<li> the only possible way is to use Docker OCI containers or at least one NixOS
<p>For&nbsp;<a class="reference-link" href="#root/_help_3tW6mORuTHnB">Packaged version for Linux</a>&nbsp;or&nbsp; container with its own service definition.</p>
<a </li>
class="reference-link" href="#root/_help_J1Bb6lVlwU5T">Manually</a>, if starting the server manually just specify a different </ul>
port and data directory per instance:</p><pre><code class="language-text-x-trilium-auto">TRILIUM_NETWORK_PORT=8080 TRILIUM_DATA_DIR=/path/to/your/data-dir-A /opt/trilium/trilium.sh</code></pre> <p>For support or additional context, see the related <a href="https://github.com/orgs/TriliumNext/discussions/1642#discussioncomment-12768808">GitHub Discussion</a>.</p>
<p>For a second instance:</p><pre><code class="language-text-x-trilium-auto">TRILIUM_NETWORK_PORT=8081 TRILIUM_DATA_DIR=/path/to/your/data-dir-B /opt/trilium/trilium.sh</code></pre>
<p>If using <code>systemd</code>, then set the <a href="https://serverfault.com/questions/413397/how-to-set-environment-variable-in-systemd-service">environment variables in the service configuration</a>.</p>
</li>
<li>
<p>For&nbsp;<a class="reference-link" href="#root/_help_rWX5eY045zbE">Using Docker</a>,
simply use two different containers, each with their own port binding and
data directory.</p>
</li>
<li>
<p>For&nbsp;<a class="reference-link" href="#root/_help_moVgBcoxE3EK">On NixOS</a>,
the only possible way is to use Docker OCI containers or at least one NixOS
container with its own service definition.</p>
</li>
</ul>
<p>For support or additional context, see the related <a href="https://github.com/orgs/TriliumNext/discussions/1642#discussioncomment-12768808">GitHub Discussion</a>.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,23 +1,8 @@
<html> <p>This page describes configuring the Trilium module included in NixOS.</p>
<h2>Requirements</h2>
<head> <p><a href="https://nixos.org/">NixOS</a> installation.</p>
<meta charset="utf-8"> <h2>Configuration</h2>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>Add this to your <code>configuration.nix</code>:</p><pre><code class="language-text-x-trilium-auto">services.trilium-server.enable = true;
<link rel="stylesheet" href="../../../../style.css">
<base target="_parent">
<title data-trilium-title>On NixOS</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>On NixOS</h1>
<div class="ck-content">
<p>This page describes configuring the Trilium module included in NixOS.</p>
<h2>Requirements</h2>
<p><a href="https://nixos.org/">NixOS</a> installation.</p>
<h2>Configuration</h2>
<p>Add this to your <code>configuration.nix</code>:</p><pre><code class="language-text-x-trilium-auto">services.trilium-server.enable = true;
# default data directory: /var/lib/trilium # default data directory: /var/lib/trilium
#services.trilium-server.dataDir = "/var/lib/trilium-sync-server"; #services.trilium-server.dataDir = "/var/lib/trilium-sync-server";
@@ -25,11 +10,6 @@
# default bind address: 127.0.0.1, port 8080 # default bind address: 127.0.0.1, port 8080
#services.trilium-server.host = "0.0.0.0"; #services.trilium-server.host = "0.0.0.0";
#services.trilium-server.port = 12783;</code></pre> #services.trilium-server.port = 12783;</code></pre>
<p>Uncomment any option you would like to change.</p> <p>Uncomment any option you would like to change.</p>
<p>See the <a href="https://search.nixos.org/options?channel=unstable&amp;from=0&amp;size=50&amp;sort=relevance&amp;type=packages&amp;query=trilium-server">NixOS options list</a> for <p>See the <a href="https://search.nixos.org/options?channel=unstable&amp;from=0&amp;size=50&amp;sort=relevance&amp;type=packages&amp;query=trilium-server">NixOS options list</a> for
more options (including nginx reverse proxy configuration).</p> more options (including nginx reverse proxy configuration).</p>
</div>
</div>
</body>
</html>

View File

@@ -1,52 +1,37 @@
<html> <p>This is essentially Trilium sources + node modules + node.js runtime packaged
into one 7z file.</p>
<head> <h2>Steps</h2>
<meta charset="utf-8"> <ul>
<meta name="viewport" content="width=device-width, initial-scale=1"> <li>SSH into your server</li>
<link rel="stylesheet" href="../../../../style.css"> <li>use <code>wget</code> (or <code>curl</code>) to download latest <code>TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz</code> (notice <code>-Server</code> suffix)
<base target="_parent"> on your server.</li>
<title data-trilium-title>Packaged version for Linux</title> <li>unpack the archive, e.g. using <code>tar -xf -d TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz</code>
</head> </li>
<li><code>cd trilium-linux-x64-server</code>
<body> </li>
<div class="content"> <li><code>./trilium.sh</code>
<h1 data-trilium-h1>Packaged version for Linux</h1> </li>
<li>you can open the browser and open http://[your-server-hostname]:8080 and
<div class="ck-content"> you should see Trilium initialization page</li>
<p>This is essentially Trilium sources + node modules + node.js runtime packaged </ul>
into one 7z file.</p> <p>The problem with above steps is that once you close the SSH connection,
<h2>Steps</h2> the Trilium process is terminated. To avoid that, you have two options:</p>
<ul> <ul>
<li>SSH into your server</li> <li>Kill it (with e.g. <kbd>Ctrl</kbd> + <kbd>C</kbd>) and run again like this: <code>nohup ./trilium &amp;</code>.</li>
<li>use <code>wget</code> (or <code>curl</code>) to download latest <code>TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz</code> (notice <code>-Server</code> suffix) <li>Configure systemd to automatically run Trilium in the background on every
on your server.</li> boot</li>
<li>unpack the archive, e.g. using <code>tar -xf -d TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz</code> </ul>
</li> <h2>Configure Trilium to auto-run on boot with systemd</h2>
<li><code>cd trilium-linux-x64-server</code> <ul>
</li> <li>After downloading, extract and move Trilium:</li>
<li><code>./trilium.sh</code> </ul><pre><code class="language-text-x-trilium-auto">tar -xvf TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz
</li>
<li>you can open the browser and open http://[your-server-hostname]:8080 and
you should see Trilium initialization page</li>
</ul>
<p>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:</p>
<ul>
<li>Kill it (with e.g. <kbd>Ctrl</kbd> + <kbd>C</kbd>) and run again like this: <code>nohup ./trilium &amp;</code>.</li>
<li>Configure systemd to automatically run Trilium in the background on every
boot</li>
</ul>
<h2>Configure Trilium to auto-run on boot with systemd</h2>
<ul>
<li>After downloading, extract and move Trilium:</li>
</ul><pre><code class="language-text-x-trilium-auto">tar -xvf TriliumNextNotes-Server-[VERSION]-linux-x64.tar.xz
sudo mv trilium-linux-x64-server /opt/trilium</code></pre> sudo mv trilium-linux-x64-server /opt/trilium</code></pre>
<ul> <ul>
<li>Create the service:</li> <li>Create the service:</li>
</ul><pre><code class="language-text-x-trilium-auto">sudo nano /etc/systemd/system/trilium.service</code></pre> </ul><pre><code class="language-text-x-trilium-auto">sudo nano /etc/systemd/system/trilium.service</code></pre>
<ul> <ul>
<li>Paste this into the file (replace the user and group as needed):</li> <li>Paste this into the file (replace the user and group as needed):</li>
</ul><pre><code class="language-text-x-trilium-auto">[Unit] </ul><pre><code class="language-text-x-trilium-auto">[Unit]
Description=Trilium Daemon Description=Trilium Daemon
After=syslog.target network.target After=syslog.target network.target
@@ -63,26 +48,21 @@ Restart=always
[Install] [Install]
WantedBy=multi-user.target</code></pre> WantedBy=multi-user.target</code></pre>
<ul> <ul>
<li>Save the file (CTRL-S) and exit (CTRL-X)</li> <li>Save the file (CTRL-S) and exit (CTRL-X)</li>
<li>Enable and launch the service:</li> <li>Enable and launch the service:</li>
</ul><pre><code class="language-text-x-trilium-auto">sudo systemctl enable --now -q trilium</code></pre> </ul><pre><code class="language-text-x-trilium-auto">sudo systemctl enable --now -q trilium</code></pre>
<ul> <ul>
<li>You can now open a browser to http://[your-server-hostname]:8080 and you <li>You can now open a browser to http://[your-server-hostname]:8080 and you
should see the Trilium initialization page.</li> should see the Trilium initialization page.</li>
</ul> </ul>
<h2>Common issues</h2> <h2>Common issues</h2>
<h3>Outdated glibc</h3><pre><code class="language-text-x-trilium-auto">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) <h3>Outdated glibc</h3><pre><code class="language-text-x-trilium-auto">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 Object.Module._extensions..node (module.js:681:18)
at Module.load (module.js:565:32) at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)</code></pre> at tryModuleLoad (module.js:505:12)</code></pre>
<p>If you get an error like this, you need to either upgrade your glibc (typically <p>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 <a href="#root/_help_WOcw2SLH6tbX">server installation</a> method.</p> by upgrading to up-to-date distribution version) or use some other <a href="#root/_help_WOcw2SLH6tbX">server installation</a> method.</p>
<h2>TLS</h2> <h2>TLS</h2>
<p>Don't forget to <a href="#root/_help_l2VkvOwUNfZj">configure TLS</a>, which <p>Don't forget to <a href="#root/_help_l2VkvOwUNfZj">configure TLS</a>, which
is required for secure usage!</p> is required for secure usage!</p>
</div>
</div>
</body>
</html>

View File

@@ -1,99 +1,79 @@
<html> <p>Official docker images are published on docker hub for <strong>AMD64</strong>, <strong>ARMv7</strong> and <strong>ARM64/v8</strong>:
<a
<head> href="https://hub.docker.com/r/triliumnext/notes/">https://hub.docker.com/r/triliumnext/notes/</a>
<meta charset="utf-8"> </p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <h2>Prerequisites</h2>
<link rel="stylesheet" href="../../../../style.css"> <p>Ensure Docker is installed on your system.</p>
<base target="_parent"> <p>If you need help installing Docker, reference the <a href="https://docs.docker.com/engine/install/">Docker Installation Docs</a>
<title data-trilium-title>Using Docker</title> </p>
</head> <p><strong>Note:</strong> Trilium's Docker container requires root privileges
to operate correctly.</p>
<body> <aside class="admonition warning">
<div class="content"> <p>If you're using a SMB/CIFS share or folder as your Trilium data directory,
<h1 data-trilium-h1>Using Docker</h1> <a
href="https://github.com/TriliumNext/Notes/issues/415#issuecomment-2344824400">you'll need</a>to add the mount options of <code>nobrl</code> and <code>noperm</code> when
<div class="ck-content"> mounting your SMB share.</p>
<p>Official docker images are published on docker hub for <strong>AMD64</strong>, <strong>ARMv7</strong> and <strong>ARM64/v8</strong>: </aside>
<a <h2>Running with Docker Compose</h2>
href="https://hub.docker.com/r/triliumnext/notes/">https://hub.docker.com/r/triliumnext/notes/</a> <h3>Grab the latest docker-compose.yml:</h3><pre><code class="language-text-x-trilium-auto">wget https://raw.githubusercontent.com/TriliumNext/Notes/master/docker-compose.yml</code></pre>
</p> <p>Optionally, edit the <code>docker-compose.yml</code> file to configure the
<h2>Prerequisites</h2> container settings prior to starting it. Unless configured otherwise, the
<p>Ensure Docker is installed on your system.</p> data directory will be <code>~/trilium-data</code> and the container will
<p>If you need help installing Docker, reference the <a href="https://docs.docker.com/engine/install/">Docker Installation Docs</a> be accessible at port 8080.</p>
</p> <h3>Start the container:</h3>
<p><strong>Note:</strong> Trilium's Docker container requires root privileges <p>Run the following command to start the container in the background:</p><pre><code class="language-text-x-trilium-auto">docker compose up -d</code></pre>
to operate correctly.</p> <h2>Running without Docker Compose / Further Configuration</h2>
<aside class="admonition warning"> <h3>Pulling the Docker Image</h3>
<p>If you're using a SMB/CIFS share or folder as your Trilium data directory, <p>To pull the image, use the following command, replacing <code>[VERSION]</code> with
<a the desired version or tag, such as <code>v0.91.6</code> or just <code>latest</code>.
href="https://github.com/TriliumNext/Notes/issues/415#issuecomment-2344824400">you'll need</a>to add the mount options of <code>nobrl</code> and <code>noperm</code> when (See published tag names at <a href="https://hub.docker.com/r/triliumnext/notes/tags">https://hub.docker.com/r/triliumnext/notes/tags</a>.):</p><pre><code class="language-text-x-trilium-auto">docker pull triliumnext/notes:v0.91.6</code></pre>
mounting your SMB share.</p> <p><strong>Warning:</strong> Avoid using the "latest" tag, as it may automatically
</aside> upgrade your instance to a new minor version, potentially disrupting sync
<h2>Running with Docker Compose</h2> setups or causing other issues.</p>
<h3>Grab the latest docker-compose.yml:</h3><pre><code class="language-text-x-trilium-auto">wget https://raw.githubusercontent.com/TriliumNext/Notes/master/docker-compose.yml</code></pre> <h3>Preparing the Data Directory</h3>
<p>Optionally, edit the <code>docker-compose.yml</code> file to configure the <p>Trilium requires a directory on the host system to store its data. This
container settings prior to starting it. Unless configured otherwise, the directory must be mounted into the Docker container with write permissions.</p>
data directory will be <code>~/trilium-data</code> and the container will <h3>Running the Docker Container</h3>
be accessible at port 8080.</p> <h4>Local Access Only</h4>
<h3>Start the container:</h3> <p>Run the container to make it accessible only from the localhost. This
<p>Run the following command to start the container in the background:</p><pre><code class="language-text-x-trilium-auto">docker compose up -d</code></pre> setup is suitable for testing or when using a prox ay server like Nginx
<h2>Running without Docker Compose / Further Configuration</h2> or Apache.</p><pre><code class="language-text-x-trilium-auto">sudo docker run -t -i -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION]</code></pre>
<h3>Pulling the Docker Image</h3> <ol>
<p>To pull the image, use the following command, replacing <code>[VERSION]</code> with <li>Verify the container is running using <code>docker ps</code>.</li>
the desired version or tag, such as <code>v0.91.6</code> or just <code>latest</code>. <li>Access Trilium via a web browser at <code>127.0.0.1:8080</code>.</li>
(See published tag names at <a href="https://hub.docker.com/r/triliumnext/notes/tags">https://hub.docker.com/r/triliumnext/notes/tags</a>.):</p><pre><code class="language-text-x-trilium-auto">docker pull triliumnext/notes:v0.91.6</code></pre> </ol>
<p><strong>Warning:</strong> Avoid using the "latest" tag, as it may automatically <h4>Local Network Access</h4>
upgrade your instance to a new minor version, potentially disrupting sync <p>To make the container accessible only on your local network, first create
setups or causing other issues.</p> a new Docker network:</p><pre><code class="language-text-x-trilium-auto">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</code></pre>
<h3>Preparing the Data Directory</h3> <p>Then, run the container with the network settings:</p><pre><code class="language-text-x-trilium-auto">docker run --net=mynet -d -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:-latest</code></pre>
<p>Trilium requires a directory on the host system to store its data. This <p>To set a different user ID (UID) and group ID (GID) for the saved data,
directory must be mounted into the Docker container with write permissions.</p> use the <code>USER_UID</code> and <code>USER_GID</code> environment variables:</p><pre><code class="language-text-x-trilium-auto">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</code></pre>
<h3>Running the Docker Container</h3> <p>Find the local IP address using <code>docker inspect [container_name]</code> and
<h4>Local Access Only</h4> access the service from devices on the local network.</p><pre><code class="language-text-x-trilium-auto">docker ps
<p>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.</p><pre><code class="language-text-x-trilium-auto">sudo docker run -t -i -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION]</code></pre>
<ol>
<li>Verify the container is running using <code>docker ps</code>.</li>
<li>Access Trilium via a web browser at <code>127.0.0.1:8080</code>.</li>
</ol>
<h4>Local Network Access</h4>
<p>To make the container accessible only on your local network, first create
a new Docker network:</p><pre><code class="language-text-x-trilium-auto">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</code></pre>
<p>Then, run the container with the network settings:</p><pre><code class="language-text-x-trilium-auto">docker run --net=mynet -d -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:-latest</code></pre>
<p>To set a different user ID (UID) and group ID (GID) for the saved data,
use the <code>USER_UID</code> and <code>USER_GID</code> environment variables:</p><pre><code class="language-text-x-trilium-auto">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</code></pre>
<p>Find the local IP address using <code>docker inspect [container_name]</code> and
access the service from devices on the local network.</p><pre><code class="language-text-x-trilium-auto">docker ps
docker inspect [container_name]</code></pre> docker inspect [container_name]</code></pre>
<h4>Global Access</h4> <h4>Global Access</h4>
<p>To allow access from any IP address, run the container as follows:</p><pre><code class="language-text-x-trilium-auto">docker run -d -p 0.0.0.0:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION]</code></pre> <p>To allow access from any IP address, run the container as follows:</p><pre><code class="language-text-x-trilium-auto">docker run -d -p 0.0.0.0:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION]</code></pre>
<p>Stop the container with <code>docker stop &lt;CONTAINER ID&gt;</code>, <p>Stop the container with <code>docker stop &lt;CONTAINER ID&gt;</code>,
where the container ID is obtained from <code>docker ps</code>.</p> where the container ID is obtained from <code>docker ps</code>.</p>
<h3>Custom Data Directory</h3> <h3>Custom Data Directory</h3>
<p>For a custom data directory, use:</p><pre><code class="language-text-x-trilium-auto">-v ~/YourOwnDirectory:/home/node/trilium-data triliumnext/notes:[VERSION]</code></pre> <p>For a custom data directory, use:</p><pre><code class="language-text-x-trilium-auto">-v ~/YourOwnDirectory:/home/node/trilium-data triliumnext/notes:[VERSION]</code></pre>
<p>If you want to run your instance in a non-default way, please use the <p>If you want to run your instance in a non-default way, please use the
volume switch as follows: <code>-v ~/YourOwnDirectory:/home/node/trilium-data triliumnext/notes:&lt;VERSION&gt;</code>. volume switch as follows: <code>-v ~/YourOwnDirectory:/home/node/trilium-data triliumnext/notes:&lt;VERSION&gt;</code>.
It is important to be aware of how Docker works for volumes, with the first 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. <a href="https://docs.docker.com/storage/volumes/">https://docs.docker.com/storage/volumes/</a> The path being your own and the second the one to virtually bind to. <a href="https://docs.docker.com/storage/volumes/">https://docs.docker.com/storage/volumes/</a> The
path before the colon is the host directory, and the path after the colon 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 <a href="https://docs.docker.com/storage/volumes/">Docker Volumes Documentation</a>.</p> is the container's path. More details can be found in the <a href="https://docs.docker.com/storage/volumes/">Docker Volumes Documentation</a>.</p>
<h2>Reverse Proxy</h2> <h2>Reverse Proxy</h2>
<ol> <ol>
<li><a href="#root/_help_ud6MShXL4WpO">Nginx</a> <li><a href="#root/_help_ud6MShXL4WpO">Nginx</a>
</li> </li>
<li><a href="#root/_help_fDLvzOx29Pfg">Apache</a> <li><a href="#root/_help_fDLvzOx29Pfg">Apache</a>
</li> </li>
</ol> </ol>
<h3>Note on --user Directive</h3> <h3>Note on --user Directive</h3>
<p>The <code>--user</code> directive is unsupported. Instead, use the <code>USER_UID</code> and <code>USER_GID</code> environment <p>The <code>--user</code> directive is unsupported. Instead, use the <code>USER_UID</code> and <code>USER_GID</code> environment
variables to set the appropriate user and group IDs.</p> variables to set the appropriate user and group IDs.</p>
<h3>Note on timezones</h3> <h3>Note on timezones</h3>
<p>If you are having timezone issues and you are not using docker-compose, <p>If you are having timezone issues and you are not using docker-compose,
you may need to add a <code>TZ</code> environment variable with the <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">TZ identifier</a> of you may need to add a <code>TZ</code> environment variable with the <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">TZ identifier</a> of
your local timezone.</p> your local timezone.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,53 +1,33 @@
<html> <p>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
<head> own Kubernetes deployment.</p>
<meta charset="utf-8"> <p>The recommended way is to use a Helm chart.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <h2>Root privileges</h2>
<link rel="stylesheet" href="../../../../style.css"> <aside class="admonition note">
<base target="_parent"> <p>The Trilium container at this time needs to be run with root privileges.
<title data-trilium-title>Using Kubernetes</title> It will swap to UID and GID <code>1000:1000</code> to run the <code>node</code> process
</head> after execution though, so the main process doesn't run with root privileges.</p>
</aside>
<body> <p>The Trilium docker container needs to be run with root privileges. The
<div class="content"> node process inside the container will be started with reduced privileges
<h1 data-trilium-h1>Using Kubernetes</h1> (uid:gid 1000:1000) after some initialization logic. Please make sure that
you don't use a security context (PodSecurityContext) which changes the
<div class="ck-content"> user ID. To use a different uid:gid for file storage and the application,
<p>As Trilium can be run in Docker it also can be deployed in Kubernetes. please use the <code>USER_UID</code> &amp; <code>USER_GID</code> environment
You can either use our Helm chart, a community Helm chart, or roll your variables.</p>
own Kubernetes deployment.</p> <p>The docker image will also fix the permissions of <code>/home/node</code> so
<p>The recommended way is to use a Helm chart.</p> you don't have to use an init container.</p>
<h2>Root privileges</h2> <h2>Helm Charts</h2>
<aside class="admonition note"> <p><a href="https://github.com/TriliumNext/helm-charts">Official Helm chart</a> from
<p>The Trilium container at this time needs to be run with root privileges. TriliumNext Unofficial helm chart by <a href="https://github.com/ohdearaugustin">ohdearaugustin</a>:
It will swap to UID and GID <code>1000:1000</code> to run the <code>node</code> process <a
after execution though, so the main process doesn't run with root privileges.</p> href="https://github.com/ohdearaugustin/charts">https://github.com/ohdearaugustin/charts</a>
</aside> </p>
<p>The Trilium docker container needs to be run with root privileges. The <h2>Adding a Helm repository</h2>
node process inside the container will be started with reduced privileges <p>Below is an example of how</p><pre><code class="language-text-x-trilium-auto">helm repo add trilium https://triliumnext.github.io/helm-charts
(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 <code>USER_UID</code> &amp; <code>USER_GID</code> environment
variables.</p>
<p>The docker image will also fix the permissions of <code>/home/node</code> so
you don't have to use an init container.</p>
<h2>Helm Charts</h2>
<p><a href="https://github.com/TriliumNext/helm-charts">Official Helm chart</a> from
TriliumNext Unofficial helm chart by <a href="https://github.com/ohdearaugustin">ohdearaugustin</a>:
<a
href="https://github.com/ohdearaugustin/charts">https://github.com/ohdearaugustin/charts</a>
</p>
<h2>Adding a Helm repository</h2>
<p>Below is an example of how</p><pre><code class="language-text-x-trilium-auto">helm repo add trilium https://triliumnext.github.io/helm-charts
"trilium" has been added to your repositories</code></pre> "trilium" has been added to your repositories</code></pre>
<h2>How to install a chart</h2> <h2>How to install a chart</h2>
<p>After reviewing the <a href="https://github.com/TriliumNext/helm-charts/blob/main/charts/trilium/values.yaml"><code>values.yaml</code></a> from <p>After reviewing the <a href="https://github.com/TriliumNext/helm-charts/blob/main/charts/trilium/values.yaml"><code>values.yaml</code></a> from
the Helm chart, modifying as required and then creating your own:</p><pre><code class="language-text-x-trilium-auto">helm install --create-namespace --namespace trilium trilium trilium/trilium -f values.yaml</code></pre> the Helm chart, modifying as required and then creating your own:</p><pre><code class="language-text-x-trilium-auto">helm install --create-namespace --namespace trilium trilium trilium/trilium -f values.yaml</code></pre>
<p>For more information on using Helm, please refer to the Helm documentation, <p>For more information on using Helm, please refer to the Helm documentation,
or create a Discussion in the TriliumNext GitHub Organization.</p> or create a Discussion in the TriliumNext GitHub Organization.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,43 +1,28 @@
<html> <p>I've assumed you have created a DNS A record for <code>trilium.yourdomain.com</code> that
you want to use for your Trilium server.</p>
<head> <ol>
<meta charset="utf-8"> <li>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>Download docker image and create container</p><pre><code class="language-text-x-trilium-auto"> docker pull triliumnext/notes:[VERSION]
<link rel="stylesheet" href="../../../../style.css">
<base target="_parent">
<title data-trilium-title>Apache</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Apache</h1>
<div class="ck-content">
<p>I've assumed you have created a DNS A record for <code>trilium.yourdomain.com</code> that
you want to use for your Trilium server.</p>
<ol>
<li>
<p>Download docker image and create container</p><pre><code class="language-text-x-trilium-auto"> 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]</code></pre> docker create --name trilium -t -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/notes:[VERSION]</code></pre>
</li> </li>
<li> <li>
<p>Configure Apache proxy and websocket proxy</p> <p>Configure Apache proxy and websocket proxy</p>
<ol> <ol>
<li> <li>
<p>Enable apache proxy modules</p><pre><code class="language-text-x-trilium-auto"> a2enmod ssl <p>Enable apache proxy modules</p><pre><code class="language-text-x-trilium-auto"> a2enmod ssl
a2enmod proxy a2enmod proxy
a2enmod proxy_http a2enmod proxy_http
a2enmod proxy_wstunnel</code></pre> a2enmod proxy_wstunnel</code></pre>
</li> </li>
<li> <li>
<p>Create a new let's encrypt certificate</p><pre><code class="language-text-x-trilium-auto"> sudo certbot certonly -d trilium.mydomain.com</code></pre> <p>Create a new let's encrypt certificate</p><pre><code class="language-text-x-trilium-auto"> sudo certbot certonly -d trilium.mydomain.com</code></pre>
<p>Choose standalone (2) and note the location of the created certificates <p>Choose standalone (2) and note the location of the created certificates
(typically /etc/letsencrypt/live/...)</p> (typically /etc/letsencrypt/live/...)</p>
</li> </li>
<li> <li>
<p>Create a new virtual host file for apache (you may want to use <code>apachectl -S</code> to <p>Create a new virtual host file for apache (you may want to use <code>apachectl -S</code> to
determine the server root location, mine is /etc/apache2)</p><pre><code class="language-text-x-trilium-auto"> sudo nano /etc/apache2/sites-available/trilium.yourdomain.com.conf</code></pre> determine the server root location, mine is /etc/apache2)</p><pre><code class="language-text-x-trilium-auto"> sudo nano /etc/apache2/sites-available/trilium.yourdomain.com.conf</code></pre>
<p>Paste (and customize) the following text into the configuration file</p><pre><code class="language-text-x-trilium-auto"> <p>Paste (and customize) the following text into the configuration file</p><pre><code class="language-text-x-trilium-auto">
ServerName http://trilium.yourdomain.com ServerName http://trilium.yourdomain.com
RewriteEngine on RewriteEngine on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
@@ -55,23 +40,23 @@
SSLCertificateKeyFile /etc/letsencrypt/live/trilium.yourdomain.com/privkey.pem SSLCertificateKeyFile /etc/letsencrypt/live/trilium.yourdomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf Include /etc/letsencrypt/options-ssl-apache.conf
</code></pre> </code></pre>
</li> </li>
<li> <li>
<p>Enable the virtual host with <code>sudo a2ensite trilium.yourdomain.com.conf</code> <p>Enable the virtual host with <code>sudo a2ensite trilium.yourdomain.com.conf</code>
</p> </p>
</li> </li>
<li> <li>
<p>Reload apache2 with <code>sudo systemctl reload apache2</code> <p>Reload apache2 with <code>sudo systemctl reload apache2</code>
</p> </p>
</li> </li>
</ol> </ol>
</li> </li>
<li> <li>
<p>Create and enable a systemd service to start the docker container on boot</p> <p>Create and enable a systemd service to start the docker container on boot</p>
<ol> <ol>
<li> <li>
<p>Create a new empty file called <code>/lib/systemd/system/trilium.service</code> with <p>Create a new empty file called <code>/lib/systemd/system/trilium.service</code> with
the contents</p><pre><code class="language-text-x-trilium-auto"> [Unit] the contents</p><pre><code class="language-text-x-trilium-auto"> [Unit]
Description=Trilium Server Description=Trilium Server
Requires=docker.service Requires=docker.service
After=docker.service After=docker.service
@@ -83,17 +68,12 @@
[Install] [Install]
WantedBy=local.target</code></pre> WantedBy=local.target</code></pre>
</li> </li>
<li> <li>
<p>Install, enable and start service</p><pre><code class="language-text-x-trilium-auto"> sudo systemctl daemon-reload <p>Install, enable and start service</p><pre><code class="language-text-x-trilium-auto"> sudo systemctl daemon-reload
sudo systemctl enable trilium.service sudo systemctl enable trilium.service
sudo systemctl start trilium.service</code></pre> sudo systemctl start trilium.service</code></pre>
</li> </li>
</ol> </ol>
</li> </li>
</ol> </ol>
</div>
</div>
</body>
</html>

View File

@@ -1,31 +1,16 @@
<html> <p>Configure Nginx proxy and HTTPS. The operating system here is Ubuntu 18.04.</p>
<ol>
<head> <li>
<meta charset="utf-8"> <p>Download Nginx and remove Apache2</p><pre><code class="language-text-x-trilium-auto">sudo apt-get install nginx
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../../../style.css">
<base target="_parent">
<title data-trilium-title>Nginx</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Nginx</h1>
<div class="ck-content">
<p>Configure Nginx proxy and HTTPS. The operating system here is Ubuntu 18.04.</p>
<ol>
<li>
<p>Download Nginx and remove Apache2</p><pre><code class="language-text-x-trilium-auto">sudo apt-get install nginx
sudo apt-get remove apache2</code></pre> sudo apt-get remove apache2</code></pre>
</li> </li>
<li> <li>
<p>Create configure file</p><pre><code class="language-text-x-trilium-auto">cd /etc/nginx/conf.d <p>Create configure file</p><pre><code class="language-text-x-trilium-auto">cd /etc/nginx/conf.d
vim default.conf</code></pre> vim default.conf</code></pre>
</li> </li>
<li> <li>
<p>Fill the file with the context shown below, part of the setting show be <p>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.</p><pre><code class="language-text-x-trilium-auto"># This part is for proxy and HTTPS configure changed. Then you can enjoy your web with HTTPS forced and proxy.</p><pre><code class="language-text-x-trilium-auto"># This part is for proxy and HTTPS configure
server { server {
listen 443 ssl; listen 443 ssl;
server_name trilium.example.net; #change trilium.example.net to your domain without HTTPS or HTTP. 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 server_name trilium.example.net; # change to your domain
return 301 https://$server_name$request_uri; return 301 https://$server_name$request_uri;
}</code></pre> }</code></pre>
</li> </li>
</ol> </ol>
</div>
</div>
</body>
</html>

View File

@@ -1,106 +1,86 @@
<html> <p><strong>Note: This feature has not been merged yet, so it is not available.</strong>
</p>
<head> <p>Multi-factor authentication (MFA) is a security process that requires
<meta charset="utf-8"> users to provide two or more verification factors to gain access to a system,
<meta name="viewport" content="width=device-width, initial-scale=1"> application, or account. This adds an extra layer of protection beyond
<link rel="stylesheet" href="../../../style.css"> just using a password.</p>
<base target="_parent"> <p>By requiring more than one verification method, MFA helps reduce the risk
<title data-trilium-title>Multi-Factor Authentication</title> of unauthorized access, even if someone has obtained your password. Its
</head> highly recommended for securing sensitive information stored in your notes.</p>
<p>Warning! OpenID and TOTP cannot be both used at the same time!</p>
<body> <h2>Log in with your Google Account with OpenID!</h2>
<div class="content"> <p>OpenID is a standardized way to let you log into websites using an account
<h1 data-trilium-h1>Multi-Factor Authentication</h1> from another service, like Google, to verify your identity.</p>
<h2>Why Time-based One Time Passwords?</h2>
<div class="ck-content"> <p>TOTP (Time-Based One-Time Password) is a security feature that generates
<p><strong>Note: This feature has not been merged yet, so it is not available.</strong> a unique, temporary code on your device, like a smartphone, which changes
</p> every 30 seconds. You use this code, along with your password, to log into
<p>Multi-factor authentication (MFA) is a security process that requires your account, making it much harder for anyone else to access them.</p>
users to provide two or more verification factors to gain access to a system, <h2>Setup</h2>
application, or account. This adds an extra layer of protection beyond <h3>TOTP</h3>
just using a password.</p> <ol>
<p>By requiring more than one verification method, MFA helps reduce the risk <li>
of unauthorized access, even if someone has obtained your password. Its <p>Start Trilium Notes normally.</p>
highly recommended for securing sensitive information stored in your notes.</p> </li>
<p>Warning! OpenID and TOTP cannot be both used at the same time!</p> <li>
<h2>Log in with your Google Account with OpenID!</h2> <p>Go to "Menu" -&gt; "Options" -&gt; "MFA"</p>
<p>OpenID is a standardized way to let you log into websites using an account </li>
from another service, like Google, to verify your identity.</p> <li>
<h2>Why Time-based One Time Passwords?</h2> <p>Click the "Generate TOTP Secret" button</p>
<p>TOTP (Time-Based One-Time Password) is a security feature that generates </li>
a unique, temporary code on your device, like a smartphone, which changes <li>
every 30 seconds. You use this code, along with your password, to log into <p>Copy the generated secret to your authentication app/extension</p>
your account, making it much harder for anyone else to access them.</p> </li>
<h2>Setup</h2> <li>
<h3>TOTP</h3> <p>Set an environment variable "TOTP_SECRET" as the generated secret. Environment
<ol> variables can be set with a .env file in the root directory, by defining
<li> them in the command line, or with a docker container.</p><pre><code class="language-text-x-trilium-auto"># .env in the project root directory
<p>Start Trilium Notes normally.</p>
</li>
<li>
<p>Go to "Menu" -&gt; "Options" -&gt; "MFA"</p>
</li>
<li>
<p>Click the "Generate TOTP Secret" button</p>
</li>
<li>
<p>Copy the generated secret to your authentication app/extension</p>
</li>
<li>
<p>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.</p><pre><code class="language-text-x-trilium-auto"># .env in the project root directory
TOTP_ENABLED="true" TOTP_ENABLED="true"
TOTP_SECRET="secret"</code></pre><pre><code class="language-text-x-trilium-auto"># Terminal/CLI TOTP_SECRET="secret"</code></pre><pre><code class="language-text-x-trilium-auto"># Terminal/CLI
export TOTP_ENABLED="true" export TOTP_ENABLED="true"
export TOTP_SECRET="secret"</code></pre><pre><code class="language-text-x-trilium-auto"># Docker export TOTP_SECRET="secret"</code></pre><pre><code class="language-text-x-trilium-auto"># Docker
docker run -p 8080:8080 -v ~/trilium-data:/home/node/trilium-data -e TOTP_ENABLED="true" -e TOTP_SECRET="secret" triliumnext/notes:[VERSION]</code></pre> docker run -p 8080:8080 -v ~/trilium-data:/home/node/trilium-data -e TOTP_ENABLED="true" -e TOTP_SECRET="secret" triliumnext/notes:[VERSION]</code></pre>
</li> </li>
<li> <li>
<p>Restart Trilium</p> <p>Restart Trilium</p>
</li> </li>
<li> <li>
<p>Go to "Options" -&gt; "MFA"</p> <p>Go to "Options" -&gt; "MFA"</p>
</li> </li>
<li> <li>
<p>Click the "Generate Recovery Codes" button</p> <p>Click the "Generate Recovery Codes" button</p>
</li> </li>
<li> <li>
<p>Save the recovery codes. Recovery codes can be used once in place of the <p>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 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 is used, it will show the unix timestamp when it was used in the MFA options
tab.</p> tab.</p>
</li> </li>
<li> <li>
<p>Load the secret into an authentication app like google authenticator</p> <p>Load the secret into an authentication app like google authenticator</p>
</li> </li>
</ol> </ol>
<h3>OpenID</h3> <h3>OpenID</h3>
<p><em>Currently only compatible with Google. Other services like Authentik and Auth0 are planned on being added.</em> <p><em>Currently only compatible with Google. Other services like Authentik and Auth0 are planned on being added.</em>
</p> </p>
<p>In order to setup OpenID, you will need to setup a authentication provider. <p>In order to setup OpenID, you will need to setup a authentication provider.
This requires a bit of extra setup. Follow <a href="https://developers.google.com/identity/openid-connect/openid-connect">these instructions</a> to This requires a bit of extra setup. Follow <a href="https://developers.google.com/identity/openid-connect/openid-connect">these instructions</a> to
setup an OpenID service through google.</p> setup an OpenID service through google.</p>
<p>Set an environment variable "SSO_ENABLED" to true and add the client ID <p>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 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, a .env file in the root directory, by defining them in the command line,
or with a docker container.</p> or with a docker container.</p>
<h4>.env File</h4><pre><code class="language-text-x-trilium-auto"># .env in the project root directory <h4>.env File</h4><pre><code class="language-text-x-trilium-auto"># .env in the project root directory
SSO_ENABLED="true" SSO_ENABLED="true"
BASE_URL="http://localhost:8080" BASE_URL="http://localhost:8080"
CLIENT_ID= CLIENT_ID=
SECRET=</code></pre> SECRET=</code></pre>
<h4>Environment variable (linux)</h4><pre><code class="language-text-x-trilium-auto">export SSO_ENABLED="true" <h4>Environment variable (linux)</h4><pre><code class="language-text-x-trilium-auto">export SSO_ENABLED="true"
export BASE_URL="http://localhost:8080" export BASE_URL="http://localhost:8080"
export CLIENT_ID= export CLIENT_ID=
export SECRET=</code></pre> export SECRET=</code></pre>
<h4>Docker</h4><pre><code class="language-text-x-trilium-auto">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]</code></pre> <h4>Docker</h4><pre><code class="language-text-x-trilium-auto">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]</code></pre>
<p>After you restart Trilium Notes, you will be redirected to Google's account <p>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 selection page. Login to an account and Trilium Next will bind to that
account, allowing you to login with it.</p> account, allowing you to login with it.</p>
<p>You can now login using your google account.</p> <p>You can now login using your google account.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,38 +1,23 @@
<html> <p>Configuring TLS is essential for <a href="#root/_help_WOcw2SLH6tbX">server installation</a> in
Trilium. This guide details the steps to set up TLS within Trilium itself.</p>
<head> <p>For a more robust solution, consider using TLS termination with a reverse
<meta charset="utf-8"> proxy (recommended, e.g., Nginx). You can follow a <a href="https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-20-04">guide like this</a> for
<meta name="viewport" content="width=device-width, initial-scale=1"> such setups.</p>
<link rel="stylesheet" href="../../../style.css"> <h2>Obtaining a TLS Certificate</h2>
<base target="_parent"> <p>You have two options for obtaining a TLS certificate:</p>
<title data-trilium-title>TLS Configuration</title> <ul>
</head> <li><strong>Recommended</strong>: Obtain a TLS certificate signed by a root
certificate authority. For personal use, <a href="https://letsencrypt.org">Let's Encrypt</a> is
<body> an excellent choice. It is free, automated, and straightforward. Certbot
<div class="content"> can facilitate automatic TLS setup.</li>
<h1 data-trilium-h1>TLS Configuration</h1> <li>Generate a self-signed certificate. This option is not recommended due
to the additional complexity of importing the certificate into all machines
<div class="ck-content"> connecting to the server.</li>
<p>Configuring TLS is essential for <a href="#root/_help_WOcw2SLH6tbX">server installation</a> in </ul>
Trilium. This guide details the steps to set up TLS within Trilium itself.</p> <h2>Modifying <code>config.ini</code></h2>
<p>For a more robust solution, consider using TLS termination with a reverse <p>Once you have your certificate, modify the <code>config.ini</code> file
proxy (recommended, e.g., Nginx). You can follow a <a href="https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-20-04">guide like this</a> for in the <a href="#root/_help_tAassRL4RSQL">data directory</a> to configure
such setups.</p> Trilium to use it:</p><pre><code class="language-text-x-trilium-auto">[Network]
<h2>Obtaining a TLS Certificate</h2>
<p>You have two options for obtaining a TLS certificate:</p>
<ul>
<li><strong>Recommended</strong>: Obtain a TLS certificate signed by a root
certificate authority. For personal use, <a href="https://letsencrypt.org">Let's Encrypt</a> is
an excellent choice. It is free, automated, and straightforward. Certbot
can facilitate automatic TLS setup.</li>
<li>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.</li>
</ul>
<h2>Modifying <code>config.ini</code></h2>
<p>Once you have your certificate, modify the <code>config.ini</code> file
in the <a href="#root/_help_tAassRL4RSQL">data directory</a> to configure
Trilium to use it:</p><pre><code class="language-text-x-trilium-auto">[Network]
port=8080 port=8080
# Set to true for TLS/SSL/HTTPS (secure), false for HTTP (insecure). # Set to true for TLS/SSL/HTTPS (secure), false for HTTP (insecure).
https=true https=true
@@ -40,26 +25,21 @@ https=true
# Relevant only if https=true # Relevant only if https=true
certPath=/[username]/.acme.sh/[hostname]/fullchain.cer certPath=/[username]/.acme.sh/[hostname]/fullchain.cer
keyPath=/[username]/.acme.sh/[hostname]/example.com.key</code></pre> keyPath=/[username]/.acme.sh/[hostname]/example.com.key</code></pre>
<p>You can also review the <a href="#root/_help_Gzjqa934BdH4">configuration</a> file <p>You can also review the <a href="#root/_help_Gzjqa934BdH4">configuration</a> file
to provide all <code>config.ini</code> values as environment variables instead.</p> to provide all <code>config.ini</code> values as environment variables instead.</p>
<p>The above example shows how this is set up in an environment where the <p>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 certificate was generated using Let's Encrypt's ACME utility. Your paths
may differ. For Docker installations, ensure these paths are within a volume may differ. For Docker installations, ensure these paths are within a volume
or another directory accessible by the Docker container, such as <code>/home/node/trilium-data/[DIR IN DATA DIRECTORY]</code>.</p> or another directory accessible by the Docker container, such as <code>/home/node/trilium-data/[DIR IN DATA DIRECTORY]</code>.</p>
<p>After configuring <code>config.ini</code>, restart Trilium and access the <p>After configuring <code>config.ini</code>, restart Trilium and access the
hostname using "https".</p> hostname using "https".</p>
<h2>Self-Signed Certificate</h2> <h2>Self-Signed Certificate</h2>
<p>If you opt to use a self-signed certificate for your server instance, <p>If you opt to use a self-signed certificate for your server instance,
note that the desktop instance will not trust it by default.</p> note that the desktop instance will not trust it by default.</p>
<p>To bypass this, disable certificate validation by setting the following <p>To bypass this, disable certificate validation by setting the following
environment variable (for Linux):</p><pre><code class="language-text-x-trilium-auto">export NODE_TLS_REJECT_UNAUTHORIZED=0 environment variable (for Linux):</p><pre><code class="language-text-x-trilium-auto">export NODE_TLS_REJECT_UNAUTHORIZED=0
trilium</code></pre> trilium</code></pre>
<p>Trilium provides scripts to start in this mode, such as <code>trilium-no-cert-check.bat</code> for <p>Trilium provides scripts to start in this mode, such as <code>trilium-no-cert-check.bat</code> for
Windows.</p> Windows.</p>
<p><strong>Warning</strong>: Disabling TLS certificate validation is insecure. <p><strong>Warning</strong>: Disabling TLS certificate validation is insecure.
Proceed only if you fully understand the implications.</p> Proceed only if you fully understand the implications.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,110 +1,90 @@
<html> <p>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
<head> up synchronization with a server instance, allowing multiple desktop clients
<meta charset="utf-8"> to sync with a central server. This creates a star-shaped topology:</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>
<link rel="stylesheet" href="../../style.css"> <img src="Synchronization_image.png">
<base target="_parent"> </p>
<title data-trilium-title>Synchronization</title> <p>In this setup, a central server (referred to as the <em>sync server</em>)
</head> and multiple <em>client</em> (or <em>desktop</em>) instances synchronize with
the sync server. Once configured, synchronization is automatic and ongoing,
<body> requiring no manual intervention.</p>
<div class="content"> <h2>Setting Up Synchronization</h2>
<h1 data-trilium-h1>Synchronization</h1> <h3>Security Considerations</h3>
<p>Setting up the server securely is critical and can be complex. It is crucial
<div class="ck-content"> to use a valid <a href="#root/_help_l2VkvOwUNfZj">TLS certificate</a> (HTTPS)
<p>Trilium is an offline-first note-taking application that stores all data rather than an unencrypted HTTP connection to ensure security and avoid
locally on the desktop client. However, it also offers the option to set potential vulnerabilities.</p>
up synchronization with a server instance, allowing multiple desktop clients <h3>Synchronizing a Desktop Instance with a Sync Server</h3>
to sync with a central server. This creates a star-shaped topology:</p> <p>This method is used when you already have a desktop instance of Trilium
<p> and want to set up a sync server on your web host.</p>
<img src="Synchronization_image.png"> <ol>
</p> <li><strong>Server Deployment</strong>: Ensure your server instance is deployed
<p>In this setup, a central server (referred to as the <em>sync server</em>) but uninitialized.</li>
and multiple <em>client</em> (or <em>desktop</em>) instances synchronize with <li><strong>Desktop Configuration</strong>: Open your desktop instance, navigate
the sync server. Once configured, synchronization is automatic and ongoing, to Options -&gt; Sync tab -&gt; Sync configuration, and set the "Server
requiring no manual intervention.</p> instance address" to your sync server's address. Click Save.</li>
<h2>Setting Up Synchronization</h2> </ol>
<h3>Security Considerations</h3> <p>
<p>Setting up the server securely is critical and can be complex. It is crucial <img src="Synchronization_sync-confi.png" alt="screenshot of the sync settings options modal">
to use a valid <a href="#root/_help_l2VkvOwUNfZj">TLS certificate</a> (HTTPS) </p>
rather than an unencrypted HTTP connection to ensure security and avoid <ol>
potential vulnerabilities.</p> <li><strong>Testing Sync</strong>: Click the "Test sync" button to verify
<h3>Synchronizing a Desktop Instance with a Sync Server</h3> the connection to the sync server. If successful, the client will start
<p>This method is used when you already have a desktop instance of Trilium pushing all data to the server instance. This process may take some time,
and want to set up a sync server on your web host.</p> but you can continue using Trilium. Periodically check the server instance
<ol> to confirm when the sync is complete. Once finished, you should see the
<li><strong>Server Deployment</strong>: Ensure your server instance is deployed login screen on the server.</li>
but uninitialized.</li> </ol>
<li><strong>Desktop Configuration</strong>: Open your desktop instance, navigate <h3>Synchronizing a Desktop Instance from a Sync Server</h3>
to Options -&gt; Sync tab -&gt; Sync configuration, and set the "Server <p>This method is used when you already have a sync server and want to configure
instance address" to your sync server's address. Click Save.</li> a new desktop instance to sync with it.</p>
</ol> <ol>
<p> <li><strong>Desktop Setup</strong>: Follow the <a href="#root/_help_poXkQfguuA0U">desktop installation page</a>.</li>
<img src="Synchronization_sync-confi.png" alt="screenshot of the sync settings options modal"> <li><strong>Initial Configuration</strong>: When prompted, choose the option
</p> to set up sync with a sync server.</li>
<ol> </ol>
<li><strong>Testing Sync</strong>: Click the "Test sync" button to verify <p>
the connection to the sync server. If successful, the client will start <img src="Synchronization_sync-init.png" alt="screenshot of the sync from server setup page">
pushing all data to the server instance. This process may take some time, </p>
but you can continue using Trilium. Periodically check the server instance <ol>
to confirm when the sync is complete. Once finished, you should see the <li><strong>Server Details</strong>: Configure the Trilium server address
login screen on the server.</li> and enter the correct username and password for authentication.</li>
</ol> <li><strong>Finish Setup</strong>: Click the "Finish setup" button. If successful,
<h3>Synchronizing a Desktop Instance from a Sync Server</h3> you will see the following screen:</li>
<p>This method is used when you already have a sync server and want to configure </ol>
a new desktop instance to sync with it.</p> <p>
<ol> <img src="Synchronization_sync-in-pr.png" alt="screenshot of the sync page">
<li><strong>Desktop Setup</strong>: Follow the <a href="#root/_help_poXkQfguuA0U">desktop installation page</a>.</li> </p>
<li><strong>Initial Configuration</strong>: When prompted, choose the option <p>Once synchronization is complete, you will be automatically redirected
to set up sync with a sync server.</li> to the Trilium application.</p>
</ol> <h2>Proxy Configuration</h2>
<p> <p>Two proxy setups are supported:</p>
<img src="Synchronization_sync-init.png" alt="screenshot of the sync from server setup page"> <ul>
</p> <li><strong>Explicit Proxy Configuration</strong>: Set the proxy server in
<ol> Options / Sync. Only unauthenticated proxy servers are supported.</li>
<li><strong>Server Details</strong>: Configure the Trilium server address <li><strong>System Proxy Settings</strong>: If no proxy server is explicitly
and enter the correct username and password for authentication.</li> configured, Trilium will use the system proxy settings.</li>
<li><strong>Finish Setup</strong>: Click the "Finish setup" button. If successful, </ul>
you will see the following screen:</li> <h2>Troubleshooting</h2>
</ol> <h3>Date/Time Synchronization</h3>
<p> <p>For successful synchronization, both client and server must have the same
<img src="Synchronization_sync-in-pr.png" alt="screenshot of the sync page"> date and time, with a tolerance of up to five minutes.</p>
</p> <h3>Certificate Issues</h3>
<p>Once synchronization is complete, you will be automatically redirected <p>When using TLS, Trilium will verify the server certificate. If verification
to the Trilium application.</p> fails (e.g., due to self-signed certificates or certain corporate proxies),
<h2>Proxy Configuration</h2> you can run the Trilium client with the <code>NODE_TLS_REJECT_UNAUTHORIZED</code> environment
<p>Two proxy setups are supported:</p> variable set to <code>0</code>:</p><pre><code class="language-text-x-trilium-auto">export NODE_TLS_REJECT_UNAUTHORIZED=0</code></pre>
<ul> <p>This will disable TLS certificate verification, significantly reducing
<li><strong>Explicit Proxy Configuration</strong>: Set the proxy server in security and exposing the setup to MITM attacks. It is strongly recommended
Options / Sync. Only unauthenticated proxy servers are supported.</li> to use a valid signed server certificate. Newer Trilium versions include
<li><strong>System Proxy Settings</strong>: If no proxy server is explicitly a script called <code>trilium-no-cert-check.sh</code> for this purpose.</p>
configured, Trilium will use the system proxy settings.</li> <h3>Conflict Resolution</h3>
</ul> <p>If you edit the same note on multiple instances before synchronization,
<h2>Troubleshooting</h2> Trilium resolves conflicts by retaining the newer change and discarding
<h3>Date/Time Synchronization</h3> the older one. The older version remains accessible in <a href="#root/_help_vZWERwf8U3nx">note revisions</a>,
<p>For successful synchronization, both client and server must have the same allowing data recovery if needed.</p>
date and time, with a tolerance of up to five minutes.</p> <h3>Hash Check</h3>
<h3>Certificate Issues</h3> <p>After each synchronization, Trilium computes a hash of all synced data
<p>When using TLS, Trilium will verify the server certificate. If verification on both the client and the sync server. If there is a discrepancy, Trilium
fails (e.g., due to self-signed certificates or certain corporate proxies), will automatically initiate a recovery mechanism to resolve the issue.</p>
you can run the Trilium client with the <code>NODE_TLS_REJECT_UNAUTHORIZED</code> environment
variable set to <code>0</code>:</p><pre><code class="language-text-x-trilium-auto">export NODE_TLS_REJECT_UNAUTHORIZED=0</code></pre>
<p>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 <code>trilium-no-cert-check.sh</code> for this purpose.</p>
<h3>Conflict Resolution</h3>
<p>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 <a href="#root/_help_vZWERwf8U3nx">note revisions</a>,
allowing data recovery if needed.</p>
<h3>Hash Check</h3>
<p>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.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,45 +1,25 @@
<html> <p>This document outlines the steps required to upgrade Trilium to a new
release version.</p>
<head> <h2>How to Upgrade</h2>
<meta charset="utf-8"> <p>Trilium does not support built-in automatic upgrades; all updates must
<meta name="viewport" content="width=device-width, initial-scale=1"> be performed manually. The upgrade process varies depending on the installation
<link rel="stylesheet" href="../../style.css"> method:</p>
<base target="_parent"> <ul>
<title data-trilium-title>Upgrading TriliumNext</title> <li><a href="#root/_help_rWX5eY045zbE"><strong>Docker Server Installation</strong></a>:
</head> Pull the new image and restart the container.</li>
<li><strong>Other Installations</strong>: Download the latest version from
<body> the <a href="https://github.com/TriliumNext/Notes/releases/latest">release page</a> and
<div class="content"> replace the existing application files.</li>
<h1 data-trilium-h1>Upgrading TriliumNext</h1> </ul>
<h2>Database Compatibility and Migration</h2>
<div class="ck-content"> <p>Upon startup, Trilium will automatically migrate the <a href="#root/_help_wX4HbRucYSDD">database</a> to
<p>This document outlines the steps required to upgrade Trilium to a new the new version. Note that after migration, older versions of Trilium will
release version.</p> be unable to read the database. If you need to revert to a previous version
<h2>How to Upgrade</h2> of Trilium and its database, you can restore the <a href="#root/_help_ODY7qQn5m2FT">backup</a> that
<p>Trilium does not support built-in automatic upgrades; all updates must is created prior to migration.</p>
be performed manually. The upgrade process varies depending on the installation <h2>Sync Compatibility</h2>
method:</p> <p>The <a href="#root/_help_cbkrhQjrkKrh">synchronization</a> protocol used
<ul> by Trilium is versioned, requiring all members of the sync cluster to use
<li><a href="#root/_help_rWX5eY045zbE"><strong>Docker Server Installation</strong></a>: the same protocol version. Therefore, when upgrading to a new version,
Pull the new image and restart the container.</li> you may need to upgrade all instances in the sync cluster. Changes to the
<li><strong>Other Installations</strong>: Download the latest version from sync protocol version are typically indicated on the release page.</p>
the <a href="https://github.com/TriliumNext/Notes/releases/latest">release page</a> and
replace the existing application files.</li>
</ul>
<h2>Database Compatibility and Migration</h2>
<p>Upon startup, Trilium will automatically migrate the <a href="#root/_help_wX4HbRucYSDD">database</a> 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 <a href="#root/_help_ODY7qQn5m2FT">backup</a> that
is created prior to migration.</p>
<h2>Sync Compatibility</h2>
<p>The <a href="#root/_help_cbkrhQjrkKrh">synchronization</a> 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.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,62 +1,42 @@
<html> <p>
<img src="Web Clipper_image.png">
<head> </p>
<meta charset="utf-8"> <p>Trilium Web Clipper is a web browser extension which allows user to clip
<meta name="viewport" content="width=device-width, initial-scale=1"> text, screenshots, whole pages and short notes and save them directly to
<link rel="stylesheet" href="../../style.css"> Trilium Notes.</p>
<base target="_parent"> <p>Project is hosted <a href="https://github.com/TriliumNext/web-clipper">here</a>.</p>
<title data-trilium-title>Web Clipper</title> <p>Firefox and Chrome are supported browsers, but the chrome build should
</head> work on other chromium based browsers as well.</p>
<h2>Functionality</h2>
<body> <ul>
<div class="content"> <li>select text and clip it with the right-click context menu</li>
<h1 data-trilium-h1>Web Clipper</h1> <li>click on an image or link and save it through context menu</li>
<li>save whole page from the popup or context menu</li>
<div class="ck-content"> <li>save screenshot (with crop tool) from either popup or context menu</li>
<p> <li>create short text note from popup</li>
<img src="Web Clipper_image.png"> </ul>
</p> <p>Trilium will save these clippings as a new child note under a "clipper
<p>Trilium Web Clipper is a web browser extension which allows user to clip inbox" note.</p>
text, screenshots, whole pages and short notes and save them directly to <p>By default, that's the <a href="#root/_help_l0tKav7yLHGF">day note</a> but
Trilium Notes.</p> you can override that by setting the <a href="#root/_help_zEY4DaJG4YT5">label</a> <code>clipperInbox</code>,
<p>Project is hosted <a href="https://github.com/TriliumNext/web-clipper">here</a>.</p> on any other note.</p>
<p>Firefox and Chrome are supported browsers, but the chrome build should <p>If there's multiple clippings from the same page (and on the same day),
work on other chromium based browsers as well.</p> then they will be added to the same note.</p>
<h2>Functionality</h2> <p><strong>Extension is available from:</strong>
<ul> </p>
<li>select text and clip it with the right-click context menu</li> <ul>
<li>click on an image or link and save it through context menu</li> <li><a href="https://github.com/TriliumNext/web-clipper/releases">Project release page</a> -
<li>save whole page from the popup or context menu</li> .xpi for Firefox and .zip for Chromium based browsers.</li>
<li>save screenshot (with crop tool) from either popup or context menu</li> <li><a href="https://chromewebstore.google.com/detail/trilium-web-clipper/dfhgmnfclbebfobmblelddiejjcijbjm">Chrome Web Store</a>
<li>create short text note from popup</li> </li>
</ul> </ul>
<p>Trilium will save these clippings as a new child note under a "clipper <h2>Configuration</h2>
inbox" note.</p> <p>The extension needs to connect to a running Trilium instance. By default,
<p>By default, that's the <a href="#root/_help_l0tKav7yLHGF">day note</a> but it scans a port range on the local computer to find a desktop Trilium instance.</p>
you can override that by setting the <a href="#root/_help_zEY4DaJG4YT5">label</a> <code>clipperInbox</code>, <p>It's also possible to configure the <a href="#root/_help_WOcw2SLH6tbX">server</a> address
on any other note.</p> if you don't run the desktop application, or want it to work without the
<p>If there's multiple clippings from the same page (and on the same day), desktop application running.</p>
then they will be added to the same note.</p> <h2>Username</h2>
<p><strong>Extension is available from:</strong> <p>Older versions of Trilium (before 0.50) required username &amp; password
</p> to authenticate, but this is no longer the case. You may enter anything
<ul> in that field, it will not have any effect.</p>
<li><a href="https://github.com/TriliumNext/web-clipper/releases">Project release page</a> -
.xpi for Firefox and .zip for Chromium based browsers.</li>
<li><a href="https://chromewebstore.google.com/detail/trilium-web-clipper/dfhgmnfclbebfobmblelddiejjcijbjm">Chrome Web Store</a>
</li>
</ul>
<h2>Configuration</h2>
<p>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.</p>
<p>It's also possible to configure the <a href="#root/_help_WOcw2SLH6tbX">server</a> address
if you don't run the desktop application, or want it to work without the
desktop application running.</p>
<h2>Username</h2>
<p>Older versions of Trilium (before 0.50) required username &amp; password
to authenticate, but this is no longer the case. You may enter anything
in that field, it will not have any effect.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,152 +1,132 @@
<html> <p>One core features of Trilium is that it supports multiple types of notes,
depending on the need.</p>
<head> <h2>Creating a new note with a different type via the note tree</h2>
<meta charset="utf-8"> <p>The default note type in Trilium (e.g. when creating a new note) is&nbsp;
<meta name="viewport" content="width=device-width, initial-scale=1"> <a
<link rel="stylesheet" href="../style.css"> class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>, since it's for general use.</p>
<base target="_parent"> <p>To create a new note of a different type, head to the&nbsp;<a class="reference-link"
<title data-trilium-title>Note Types</title> href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and right click an existing
</head> note where to place the new one and select:</p>
<ul>
<body> <li><em>Insert note after</em>, to put the new note underneath the one selected.</li>
<div class="content"> <li><em>Insert child note</em>, to insert the note as a child of the selected
<h1 data-trilium-h1>Note Types</h1> note.</li>
</ul>
<div class="ck-content"> <p>
<p>One core features of Trilium is that it supports multiple types of notes, <img src="Note Types_image.png">
depending on the need.</p> </p>
<h2>Creating a new note with a different type via the note tree</h2> <h2>Creating a new note of a different type via add link or new tab</h2>
<p>The default note type in Trilium (e.g. when creating a new note) is&nbsp; <ul>
<a <li>When adding a <a href="#root/_help_QEAPj01N5f7w">link</a> in a&nbsp;<a class="reference-link"
class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>, since it's for general use.</p> href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;note, type the desired title
<p>To create a new note of a different type, head to the&nbsp;<a class="reference-link" of the new note and press Enter. Afterwards the type of the note will be
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and right click an existing asked.</li>
note where to place the new one and select:</p> <li>Similarly, when creating a new tab, type the desired title and press Enter.</li>
<ul> </ul>
<li><em>Insert note after</em>, to put the new note underneath the one selected.</li> <h2>Changing the type of a note</h2>
<li><em>Insert child note</em>, to insert the note as a child of the selected <p>It is possible to change the type of a note after it has been created
note.</li> via the <em>Basic Properties</em> tab in the&nbsp;<a class="reference-link"
</ul> href="#root/_help_BlN9DFI679QC">Ribbon</a>. Note that it's generally a
<p> good idea to change the note type only if the note is empty. Can also be
<img src="Note Types_image.png"> used to edit the <a href="#root/_help_4FahAwuGTAwC">source of a note</a>.</p>
</p> <h2>Supported note types</h2>
<h2>Creating a new note of a different type via add link or new tab</h2> <p>The following note types are supported by Trilium:</p>
<ul> <figure class="table"
<li>When adding a <a href="#root/_help_QEAPj01N5f7w">link</a> in a&nbsp;<a class="reference-link" style="width:100%;">
href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;note, type the desired title <table class="ck-table-resized">
of the new note and press Enter. Afterwards the type of the note will be <colgroup>
asked.</li> <col style="width:29.42%;">
<li>Similarly, when creating a new tab, type the desired title and press Enter.</li> <col style="width:70.58%;">
</ul> </colgroup>
<h2>Changing the type of a note</h2> <thead>
<p>It is possible to change the type of a note after it has been created <tr>
via the <em>Basic Properties</em> tab in the&nbsp;<a class="reference-link" <th>Note Type</th>
href="#root/_help_BlN9DFI679QC">Ribbon</a>. Note that it's generally a <th>Description</th>
good idea to change the note type only if the note is empty. Can also be </tr>
used to edit the <a href="#root/_help_4FahAwuGTAwC">source of a note</a>.</p> </thead>
<h2>Supported note types</h2> <tbody>
<p>The following note types are supported by Trilium:</p> <tr>
<figure class="table" <td><a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>
style="width:100%;"> </td>
<table class="ck-table-resized"> <td>The default note type, which allows for rich text formatting, images,
<colgroup> admonitions and right-to-left support.</td>
<col style="width:29.42%;"> </tr>
<col style="width:70.58%;"> <tr>
</colgroup> <td><a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a>
<thead> </td>
<tr> <td>Uses a mono-space font and can be used to store larger chunks of code
<th>Note Type</th> or plain text than a text note, and has better syntax highlighting.</td>
<th>Description</th> </tr>
</tr> <tr>
</thead> <td><a class="reference-link" href="#root/_help_m523cpzocqaD">Saved Search</a>
<tbody> </td>
<tr> <td>Stores the information about a search (the search text, criteria, etc.)
<td><a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a> for later use. Can be used for quick filtering of a large amount of notes,
</td> for example. The search can easily be triggered.</td>
<td>The default note type, which allows for rich text formatting, images, </tr>
admonitions and right-to-left support.</td> <tr>
</tr> <td><a class="reference-link" href="#root/_help_iRwzGnHPzonm">Relation Map</a>
<tr> </td>
<td><a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a> <td>Allows easy creation of notes and relations between them. Can be used
</td> for mainly relational data such as a family tree.</td>
<td>Uses a mono-space font and can be used to store larger chunks of code </tr>
or plain text than a text note, and has better syntax highlighting.</td> <tr>
</tr> <td><a class="reference-link" href="#root/_help_bdUJEHsAPYQR">Note Map</a>
<tr> </td>
<td><a class="reference-link" href="#root/_help_m523cpzocqaD">Saved Search</a> <td>Displays the relationships between the notes, whether via relations or
</td> their hierarchical structure.</td>
<td>Stores the information about a search (the search text, criteria, etc.) </tr>
for later use. Can be used for quick filtering of a large amount of notes, <tr>
for example. The search can easily be triggered.</td> <td><a class="reference-link" href="#root/_help_HcABDtFCkbFN">Render Note</a>
</tr> </td>
<tr> <td>Used in&nbsp;<a class="reference-link" href="#root/_help_CdNpE2pqjmI6">Scripting</a>,
<td><a class="reference-link" href="#root/_help_iRwzGnHPzonm">Relation Map</a> it displays the HTML content of another note. This allows displaying any
</td> kind of content, provided there is a script behind it to generate it.</td>
<td>Allows easy creation of notes and relations between them. Can be used </tr>
for mainly relational data such as a family tree.</td> <tr>
</tr> <td><a class="reference-link" href="#root/_help_GTwFsgaA0lCt">Book</a>
<tr> </td>
<td><a class="reference-link" href="#root/_help_bdUJEHsAPYQR">Note Map</a> <td>
</td> <p>Displays the children of the note either as a grid, a list, or for a more
<td>Displays the relationships between the notes, whether via relations or specialized case: a calendar.</p>
their hierarchical structure.</td> <p>Generally useful for easy reading of short notes.</p>
</tr> </td>
<tr> </tr>
<td><a class="reference-link" href="#root/_help_HcABDtFCkbFN">Render Note</a> <tr>
</td> <td><a class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>
<td>Used in&nbsp;<a class="reference-link" href="#root/_help_CdNpE2pqjmI6">Scripting</a>, </td>
it displays the HTML content of another note. This allows displaying any <td>Displays diagrams such as bar charts, flow charts, state diagrams, etc.
kind of content, provided there is a script behind it to generate it.</td> Requires a bit of technical knowledge since the diagrams are written in
</tr> a specialized format.</td>
<tr> </tr>
<td><a class="reference-link" href="#root/_help_GTwFsgaA0lCt">Book</a> <tr>
</td> <td><a class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a>
<td> </td>
<p>Displays the children of the note either as a grid, a list, or for a more <td>Allows easy drawing of sketches, diagrams, handwritten content. Uses the
specialized case: a calendar.</p> same technology behind <a href="https://excalidraw.com">excalidraw.com</a>.</td>
<p>Generally useful for easy reading of short notes.</p> </tr>
</td> <tr>
</tr> <td><a class="reference-link" href="#root/_help_1vHRoWCEjj0L">Web View</a>
<tr> </td>
<td><a class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a> <td>Displays the content of an external web page, similar to a browser.</td>
</td> </tr>
<td>Displays diagrams such as bar charts, flow charts, state diagrams, etc. <tr>
Requires a bit of technical knowledge since the diagrams are written in <td><a class="reference-link" href="#root/_help_gBbsAeiuUxI5">Mind Map</a>
a specialized format.</td> </td>
</tr> <td>Easy for brainstorming ideas, by placing them in a hierarchical layout.</td>
<tr> </tr>
<td><a class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a> <tr>
</td> <td><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>
<td>Allows easy drawing of sketches, diagrams, handwritten content. Uses the </td>
same technology behind <a href="https://excalidraw.com">excalidraw.com</a>.</td> <td>Displays the children of the note as a geographical map, one use-case
</tr> would be to plan vacations. It even has basic support for tracks. Notes
<tr> can also be created from it.</td>
<td><a class="reference-link" href="#root/_help_1vHRoWCEjj0L">Web View</a> </tr>
</td> <tr>
<td>Displays the content of an external web page, similar to a browser.</td> <td><a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>
</tr> </td>
<tr> <td>Represents an uploaded file such as PDFs, images, video or audio files.</td>
<td><a class="reference-link" href="#root/_help_gBbsAeiuUxI5">Mind Map</a> </tr>
</td> </tbody>
<td>Easy for brainstorming ideas, by placing them in a hierarchical layout.</td> </table>
</tr> </figure>
<tr>
<td><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>
</td>
<td>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.</td>
</tr>
<tr>
<td><a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>
</td>
<td>Represents an uploaded file such as PDFs, images, video or audio files.</td>
</tr>
</tbody>
</table>
</figure>
</div>
</div>
</body>
</html>

View File

@@ -1,40 +1,20 @@
<html> <p>A <strong>Book Note</strong> in Trilium is a special type of <a href="#root/_help_BFs8mudNFgCS">note</a> designed
to display the contents of its child notes sequentially, creating a linear,
<head> book-like reading experience. This format is particularly useful for viewing
<meta charset="utf-8"> multiple smaller notes in a cohesive, continuous manner.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>
<link rel="stylesheet" href="../../style.css"> <img src="Book_image.png">
<base target="_parent"> </p>
<title data-trilium-title>Book</title> <p>In the example above, the "node.js" note on the left panel contains several
</head> child notes. The right panel displays the content of these child notes
as a single continuous document.</p>
<body> <h2>Features</h2>
<div class="content"> <p>The Book Note format compiles the contents of all child notes into one
<h1 data-trilium-h1>Book</h1> continuous view. This makes it ideal for reading extensive information
broken into smaller, manageable segments.</p>
<div class="ck-content"> <p>It uses the&nbsp;<a class="reference-link" href="#root/_help_0ESUbbAxVnoK">Note List</a>&nbsp;mechanism
<p>A <strong>Book Note</strong> in Trilium is a special type of <a href="#root/_help_BFs8mudNFgCS">note</a> designed to display the child notes, allowing the use of any of the view types (grid,
to display the contents of its child notes sequentially, creating a linear, list, calendar).</p>
book-like reading experience. This format is particularly useful for viewing <p>To adjust the view type, see the dedicated <em>Book</em> tab in the&nbsp;
multiple smaller notes in a cohesive, continuous manner.</p> <a
<p> class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.</p>
<img src="Book_image.png">
</p>
<p>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.</p>
<h2>Features</h2>
<p>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.</p>
<p>It uses the&nbsp;<a class="reference-link" href="#root/_help_0ESUbbAxVnoK">Note List</a>&nbsp;mechanism
to display the child notes, allowing the use of any of the view types (grid,
list, calendar).</p>
<p>To adjust the view type, see the dedicated <em>Book</em> tab in the&nbsp;
<a
class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,27 +1,7 @@
<html> <p>Available since Trilium v0.52.</p>
<p>Canvas notes use the Excalidraw library to allow handwritten notes with
<head> mouse, pen or touch on an infinite canvas. It also supports basic diagramming,
<meta charset="utf-8"> text and graphics input.</p>
<meta name="viewport" content="width=device-width, initial-scale=1"> <p>
<link rel="stylesheet" href="../../style.css"> <img src="Canvas_image.png" alt="grafik">
<base target="_parent"> </p>
<title data-trilium-title>Canvas</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Canvas</h1>
<div class="ck-content">
<p>Available since Trilium v0.52.</p>
<p>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.</p>
<p>
<img src="Canvas_image.png" alt="grafik">
</p>
</div>
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More