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,23 +1,8 @@
<html> <p>Trilium offers advanced functionality through <a href="#root/_help_CdNpE2pqjmI6">Scripts</a> and
<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>Advanced Showcases</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Advanced Showcases</h1>
<div class="ck-content">
<p>Trilium offers advanced functionality through <a href="#root/_help_CdNpE2pqjmI6">Scripts</a> and
<a <a
href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>. To illustrate these features, we've prepared 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> several showcases available in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>:</p>
<ul> <ul>
<li><a href="#root/_help_iRwzGnHPzonm">Relation Map</a> <li><a href="#root/_help_iRwzGnHPzonm">Relation Map</a>
</li> </li>
<li><a href="#root/_help_l0tKav7yLHGF">Day Notes</a> <li><a href="#root/_help_l0tKav7yLHGF">Day Notes</a>
@@ -26,12 +11,7 @@
</li> </li>
<li><a href="#root/_help_xYjQUYhpbUEW">Task Manager</a> <li><a href="#root/_help_xYjQUYhpbUEW">Task Manager</a>
</li> </li>
</ul> </ul>
<p>It's important to note that these examples are not natively supported <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 by Trilium out of the box; instead, they demonstrate what you can build
within Trilium.</p> within Trilium.</p>
</div>
</div>
</body>
</html>

View File

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

View File

@@ -1,47 +1,32 @@
<html> <p>Task Manager is a <a href="#root/_help_OFXdgB2nNk1F">promoted attributes</a> and
<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>Task Manager</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Task Manager</h1>
<div class="ck-content">
<p>Task Manager is a <a href="#root/_help_OFXdgB2nNk1F">promoted attributes</a> and
<a <a
href="#root/_help_CdNpE2pqjmI6">scripts</a>showcase present in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>.</p> href="#root/_help_CdNpE2pqjmI6">scripts</a>showcase present in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>.</p>
<h2>Demo</h2> <h2>Demo</h2>
<p> <p>
<img src="Task Manager_task-manager.png"> <img src="Task Manager_task-manager.png">
</p> </p>
<p>Task Manager manages outstanding (TODO) tasks and finished tasks (non-empty <p>Task Manager manages outstanding (TODO) tasks and finished tasks (non-empty
doneDate attribute). Outstanding tasks are further categorized by location doneDate attribute). Outstanding tasks are further categorized by location
and arbitrary tags - whenever you change tag attribute in the task note, and arbitrary tags - whenever you change tag attribute in the task note,
this task is then automatically moved to appropriate location.</p> this task is then automatically moved to appropriate location.</p>
<p>Task Manager also integrates with <a href="#root/_help_l0tKav7yLHGF">day notes</a> - <p>Task Manager also integrates with <a href="#root/_help_l0tKav7yLHGF">day notes</a> -
notes are <a href="#root/_help_IakOLONlIfGI">cloned</a> into day note to 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 both todoDate note and doneDate note (with <a href="#root/_help_kBrnXNG3Hplm">prefix</a> of
either "TODO" or "DONE").</p> either "TODO" or "DONE").</p>
<h2>Implementation</h2> <h2>Implementation</h2>
<p>New tasks are created in the TODO note which has <code>~child:template</code> <p>New tasks are created in the TODO note which has <code>~child:template</code>
<a <a
href="#root/_help_zEY4DaJG4YT5">relation</a>(see <a href="#root/_help_bwZpz2ajCEwO">attribute inheritance</a>) href="#root/_help_zEY4DaJG4YT5">relation</a>(see <a href="#root/_help_bwZpz2ajCEwO">attribute inheritance</a>)
pointing to the task template.</p> pointing to the task template.</p>
<h3>Attributes</h3> <h3>Attributes</h3>
<p>Task template defines several <a href="#root/_help_OFXdgB2nNk1F">promoted attributes</a> - <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 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 - <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. 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 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> be moved to "Done" note and removed from TODO, locations and tags.</p>
<h3>New task button</h3> <h3>New task button</h3>
<p>There's also "button" note which contains simple script which adds a button <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({ 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',
@@ -60,10 +45,10 @@
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;
} }
@@ -71,15 +56,10 @@
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,42 +1,27 @@
<html> <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>Weight Tracker</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Weight Tracker</h1>
<div class="ck-content">
<p>
<img src="Weight Tracker_image.png"> <img src="Weight Tracker_image.png">
</p> </p>
<p>The <code>Weight Tracker</code> is a <a href="#root/_help_GLks18SNjxmC">Script API</a> showcase <p>The <code>Weight Tracker</code> is a <a href="#root/_help_GLks18SNjxmC">Script API</a> showcase
present in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>.</p> present in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>.</p>
<p>By adding <code>weight</code> as a <a href="#root/_help_OFXdgB2nNk1F">promoted attribute</a> in <p>By adding <code>weight</code> as a <a href="#root/_help_OFXdgB2nNk1F">promoted attribute</a> in
the <a href="#root/_help_KC1HB96bqqHX">template</a> from which <a href="#root/_help_l0tKav7yLHGF">day notes</a> are the <a href="#root/_help_KC1HB96bqqHX">template</a> from which <a href="#root/_help_l0tKav7yLHGF">day notes</a> are
created, you can aggregate the data and plot weight change over time.</p> created, you can aggregate the data and plot weight change over time.</p>
<h2>Implementation</h2> <h2>Implementation</h2>
<p>The <code>Weight Tracker</code> note in the screenshot above is of the type <code>Render Note</code>. <p>The <code>Weight Tracker</code> note in the screenshot above is of the type <code>Render Note</code>.
That type of note doesn't have any useful content itself. Instead it is 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 a placeholder where a <a href="#root/_help_CdNpE2pqjmI6">script</a> can render
its output.</p> 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>. <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>. 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 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 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> 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 <p>To actually render the chart, we're using a third party library called
<a <a
href="https://www.chartjs.org/">chart.js</a>which is imported as an attachment, since it's not built into href="https://www.chartjs.org/">chart.js</a>which is imported as an attachment, since it's not built into
Trilium.</p> Trilium.</p>
<h3>Code</h3> <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 <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() { 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');
@@ -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,25 +1,10 @@
<html> <figure class="image">
<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>Attributes</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Attributes</h1>
<div class="ck-content">
<figure class="image">
<img style="aspect-ratio:1071/146;" src="Attributes_image.png" width="1071" <img style="aspect-ratio:1071/146;" src="Attributes_image.png" width="1071"
height="146"> height="146">
</figure> </figure>
<p>In Trilium, attributes are key-value pairs assigned to notes, providing <p>In Trilium, attributes are key-value pairs assigned to notes, providing
additional metadata or functionality. There are two primary types of attributes:</p> additional metadata or functionality. There are two primary types of attributes:</p>
<ol> <ol>
<li> <li>
<p><a class="reference-link" href="#root/_help_HI6GBBIduIgv">Labels</a>&nbsp;can <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 be used for a variety of purposes, such as storing metadata or configuring
@@ -35,30 +20,25 @@
<a <a
class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>.</p> class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>.</p>
</li> </li>
</ol> </ol>
<p>These attributes play a crucial role in organizing, categorising, and <p>These attributes play a crucial role in organizing, categorising, and
enhancing the functionality of notes.</p> enhancing the functionality of notes.</p>
<h2>Viewing the list of attributes</h2> <h2>Viewing the list of attributes</h2>
<p>Both the labels and relations for the current note are displayed in the <em>Owned Attributes</em> section <p>Both the labels and relations for the current note are displayed in the <em>Owned Attributes</em> section
of the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>, of the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>,
where they can be viewed and edited. Inherited attributes are displayed where they can be viewed and edited. Inherited attributes are displayed
in the <em>Inherited Attributes</em> section of the ribbon, where they can in the <em>Inherited Attributes</em> section of the ribbon, where they can
only be viewed.</p> only be viewed.</p>
<p>In the list of attributes, labels are prefixed with the <code>#</code> character <p>In the list of attributes, labels are prefixed with the <code>#</code> character
whereas relations are prefixed with the <code>~</code> character.</p> whereas relations are prefixed with the <code>~</code> character.</p>
<h2>Multiplicity</h2> <h2>Multiplicity</h2>
<p>Attributes in Trilium can be "multi-valued", meaning multiple attributes <p>Attributes in Trilium can be "multi-valued", meaning multiple attributes
with the same name can co-exist.</p> with the same name can co-exist.</p>
<h2>Attribute Definitions and Promoted Attributes</h2> <h2>Attribute Definitions and Promoted Attributes</h2>
<p>Special labels create "label/attribute" definitions, enhancing the organization <p>Special labels create "label/attribute" definitions, enhancing the organization
and management of attributes. For more details, see&nbsp;<a class="reference-link" and management of attributes. For more details, see&nbsp;<a class="reference-link"
href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>.</p> href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>.</p>
<h2>Attribute Inheritance</h2> <h2>Attribute Inheritance</h2>
<p>Trilium supports attribute inheritance, allowing child notes to inherit <p>Trilium supports attribute inheritance, allowing child notes to inherit
attributes from their parents. For more information, see&nbsp;<a class="reference-link" attributes from their parents. For more information, see&nbsp;<a class="reference-link"
href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>.</p> 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
<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>Attribute Inheritance</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Attribute Inheritance</h1>
<div class="ck-content">
<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 a <a href="#root/_help_Cq5X6iKQop6R">relation</a> shared across multiple
notes, generally in parent-child relations (or anywhere if using templates).</p> notes, generally in parent-child relations (or anywhere if using templates).</p>
<h2>Standard Inheritance</h2> <h2>Standard Inheritance</h2>
<p>In Trilium, attributes can be automatically inherited by child notes if <p>In Trilium, attributes can be automatically inherited by child notes if
they have the <code>isInheritable</code> flag set to <code>true</code>. This they have the <code>isInheritable</code> flag set to <code>true</code>. This
means the attribute (a key-value pair) is applied to the note and all its means the attribute (a key-value pair) is applied to the note and all its
descendants.</p> descendants.</p>
<p>To make an attribute inheritable, simply use the visual editor for&nbsp; <p>To make an attribute inheritable, simply use the visual editor for&nbsp;
<a <a
class="reference-link" href="#root/_help_HI6GBBIduIgv">Labels</a>&nbsp;or&nbsp;<a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>. class="reference-link" href="#root/_help_HI6GBBIduIgv">Labels</a>&nbsp;or&nbsp;<a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>.
Alternatively, the attribute can be manually defined where <code>#myLabel=value</code> becomes <code>#myLabel(inheritable)=value</code> when Alternatively, the attribute can be manually defined where <code>#myLabel=value</code> becomes <code>#myLabel(inheritable)=value</code> when
inheritable.</p> inheritable.</p>
<p>As an example, the <code>archived</code> label can be set to be inheritable, <p>As an example, the <code>archived</code> label can be set to be inheritable,
allowing you to hide a whole subtree of notes from searches and other dialogs allowing you to hide a whole subtree of notes from searches and other dialogs
by applying this label at the top level.</p> by applying this label at the top level.</p>
<p>Standard inheritance forces all the notes that are children (and sub-children) <p>Standard inheritance forces all the notes that are children (and sub-children)
of a note to have that particular label or relation. If there is a need of a note to have that particular label or relation. If there is a need
to have some notes not inherit one of the labels, then <em>copying inheritance</em> or <em>template inheritance</em> needs to have some notes not inherit one of the labels, then <em>copying inheritance</em> or <em>template inheritance</em> needs
to be used instead.</p> to be used instead.</p>
<h2>Copying Inheritance</h2> <h2>Copying Inheritance</h2>
<p>Copying inheritance differs from standard inheritance by using a <code>child:</code> prefix <p>Copying inheritance differs from standard inheritance by using a <code>child:</code> prefix
in the attribute name. This prefix causes new child notes to automatically in the attribute name. This prefix causes new child notes to automatically
receive specific attributes from the parent note. These attributes are receive specific attributes from the parent note. These attributes are
independent of the parent and will persist even if the note is moved elsewhere.</p> independent of the parent and will persist even if the note is moved elsewhere.</p>
<p>If a parent note has the label <code>#child:exampleAttribute</code>, all <p>If a parent note has the label <code>#child:exampleAttribute</code>, all
newly created child notes (one level deep) will inherit the <code>#exampleAttribute</code> label. newly created child notes (one level deep) will inherit the <code>#exampleAttribute</code> label.
This can be useful for setting default properties for notes in a specific This can be useful for setting default properties for notes in a specific
section.</p> section.</p>
<p>Similarly, for relations use <code>~child:myRelation</code>.</p> <p>Similarly, for relations use <code>~child:myRelation</code>.</p>
<p>Due to the way it's designed, copying inheritance cannot be used to cascade <p>Due to the way it's designed, copying inheritance cannot be used to cascade
infinitely within a hierarchy. For that use case, consider using either infinitely within a hierarchy. For that use case, consider using either
standard inheritance or templates.</p> standard inheritance or templates.</p>
<h3>Chained inheritance</h3> <h3>Chained inheritance</h3>
<p>It is possible to define labels across multiple levels of depth. For example, <code>#child:child:child:foo</code> applied <p>It is possible to define labels across multiple levels of depth. For example, <code>#child:child:child:foo</code> applied
to a root note would create:</p> to a root note would create:</p>
<ul> <ul>
<li><code>#child:child:foo</code> on the first-level children.</li> <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>#child:foo</code> on the second-level children.</li>
<li><code>#foo</code> on the third-level children.</li> <li><code>#foo</code> on the third-level children.</li>
</ul> </ul>
<p>Similarly, use <code>~child:child:child:foo</code> if dealing with relations.</p> <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 <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 apply retroactively to existing notes in the hierarchy, it will only apply
to the newly created notes.</p> to the newly created notes.</p>
<h2>Template Inheritance</h2> <h2>Template Inheritance</h2>
<p>Attributes can also be inherited from&nbsp;<a class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>. <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 When a new note is created using a template, it inherits the attributes
defined in that template. This is particularly useful for maintaining consistency defined in that template. This is particularly useful for maintaining consistency
across notes that follow a similar structure or function.</p> across notes that follow a similar structure or function.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,22 +1,7 @@
<html> <p>A label is an <a href="#root/_help_zEY4DaJG4YT5">attribute</a> of a note
<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>Labels</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Labels</h1>
<div class="ck-content">
<p>A label is an <a href="#root/_help_zEY4DaJG4YT5">attribute</a> of a note
which has a name and optionally a value.</p> which has a name and optionally a value.</p>
<h2>Common use cases</h2> <h2>Common use cases</h2>
<ul> <ul>
<li><strong>Metadata for personal use</strong>: Assign labels with optional <li><strong>Metadata for personal use</strong>: Assign labels with optional
values for categorization, such as <code>#year=1999</code>, <code>#genre="sci-fi"</code>, values for categorization, such as <code>#year=1999</code>, <code>#genre="sci-fi"</code>,
or <code>#author="Neal Stephenson"</code>. This can be combined with&nbsp; or <code>#author="Neal Stephenson"</code>. This can be combined with&nbsp;
@@ -26,31 +11,31 @@
or settings (see reference below).</li> or settings (see reference below).</li>
<li><strong>Scripts and Plugins</strong>: Used to tag notes with special metadata, <li><strong>Scripts and Plugins</strong>: Used to tag notes with special metadata,
such as the "weight" attribute in the&nbsp;<a class="reference-link" href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a>.</li> such as the "weight" attribute in the&nbsp;<a class="reference-link" href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a>.</li>
</ul> </ul>
<h2>Creating a label using the visual editor</h2> <h2>Creating a label using the visual editor</h2>
<ol> <ol>
<li>Go to the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link" <li>Go to the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link"
href="#root/_help_BlN9DFI679QC">Ribbon</a>.</li> href="#root/_help_BlN9DFI679QC">Ribbon</a>.</li>
<li>Press the + button (<em>Add new attribute</em>) to the right.</li> <li>Press the + button (<em>Add new attribute</em>) to the right.</li>
<li>Select <em>Add new label</em> for the relation.</li> <li>Select <em>Add new label</em> for the relation.</li>
</ol> </ol>
<aside class="admonition tip"> <aside class="admonition tip">
<p>If you prefer keyboard shortcuts, press <kbd>Alt</kbd>+<kbd>L</kbd> while <p>If you prefer keyboard shortcuts, press <kbd>Alt</kbd>+<kbd>L</kbd> while
focused on a note or in the <em>Owned Attributes</em> section to display focused on a note or in the <em>Owned Attributes</em> section to display
the visual editor.</p> the visual editor.</p>
</aside> </aside>
<p>While in the visual editor:</p> <p>While in the visual editor:</p>
<ul> <ul>
<li>Set the desired name</li> <li>Set the desired name</li>
<li>Optionally, set the value of the label. Labels can exist without a value.</li> <li>Optionally, set the value of the label. Labels can exist without a value.</li>
<li>Check <em>Inheritable</em> if the label should be inherited by the child <li>Check <em>Inheritable</em> if the label should be inherited by the child
notes as well. See&nbsp;<a class="reference-link" href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>&nbsp;for notes as well. See&nbsp;<a class="reference-link" href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>&nbsp;for
more information.</li> more information.</li>
</ul> </ul>
<h2>Creating a label manually</h2> <h2>Creating a label manually</h2>
<p>In the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link" <p>In the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link"
href="#root/_help_BlN9DFI679QC">Ribbon</a>:</p> href="#root/_help_BlN9DFI679QC">Ribbon</a>:</p>
<ul> <ul>
<li>To create a label called <code>myLabel</code> with no value, simply type <code>#myLabel</code>.</li> <li>To create a label called <code>myLabel</code> with no value, simply type <code>#myLabel</code>.</li>
<li>To create a label called <code>myLabel</code> with a value <code>value</code>, <li>To create a label called <code>myLabel</code> with a value <code>value</code>,
simply type <code>#myLabel=value</code>.</li> simply type <code>#myLabel=value</code>.</li>
@@ -59,15 +44,15 @@
the text must be quoted with apostrophes instead: <code>#myLabel='Hello "world"'</code>.</li> the text must be quoted with apostrophes instead: <code>#myLabel='Hello "world"'</code>.</li>
<li>To create an inheritable label called <code>myLabel</code>, simply write <code>#myLabel(inheritable)</code> for <li>To create an inheritable label called <code>myLabel</code>, simply write <code>#myLabel(inheritable)</code> for
no value or <code>#myLabel(inheritable)=value</code> if there is a value.</li> no value or <code>#myLabel(inheritable)=value</code> if there is a value.</li>
</ul> </ul>
<h2>Predefined labels</h2> <h2>Predefined labels</h2>
<p>This is a list of labels that Trilium natively supports.</p> <p>This is a list of labels that Trilium natively supports.</p>
<aside class="admonition tip"> <aside class="admonition tip">
<p>Some labels presented here end with a <code>*</code>. That means that there <p>Some labels presented here end with a <code>*</code>. That means that there
are multiple labels with the same prefix, consult the specific page linked are multiple labels with the same prefix, consult the specific page linked
in the description of that label for more information.</p> in the description of that label for more information.</p>
</aside> </aside>
<figure class="table" style="width:100%;"> <figure class="table" style="width:100%;">
<table class="ck-table-resized"> <table class="ck-table-resized">
<colgroup> <colgroup>
<col style="width:33.82%;"> <col style="width:33.82%;">
@@ -397,9 +382,4 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
</figure> </figure>
</div>
</div>
</body>
</html>

View File

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

View File

@@ -1,22 +1,7 @@
<html> <p>A relation is similar to a <a href="#root/_help_HI6GBBIduIgv">label</a>,
<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>Relations</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Relations</h1>
<div class="ck-content">
<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> but instead of having a text value it refers to another note.</p>
<h2>Common use cases</h2> <h2>Common use cases</h2>
<ul> <ul>
<li><strong>Metadata Relationships for personal use</strong>: For example, <li><strong>Metadata Relationships for personal use</strong>: For example,
linking a book note to an author note. linking a book note to an author note.
<br>This can be combined with&nbsp;<a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;to <br>This can be combined with&nbsp;<a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;to
@@ -28,32 +13,32 @@
class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates</a>&nbsp;(see the list below).</li> 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 <li><strong>Scripting</strong>: Attaching scripts to events or conditions
related to the note.</li> related to the note.</li>
</ul> </ul>
<h2>Creating a relation using the visual editor</h2> <h2>Creating a relation using the visual editor</h2>
<ol> <ol>
<li>Go to the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link" <li>Go to the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link"
href="#root/_help_BlN9DFI679QC">Ribbon</a>.</li> href="#root/_help_BlN9DFI679QC">Ribbon</a>.</li>
<li>Press the + button (<em>Add new attribute</em>) to the right.</li> <li>Press the + button (<em>Add new attribute</em>) to the right.</li>
<li>Select <em>Add new relation</em> for the relation.</li> <li>Select <em>Add new relation</em> for the relation.</li>
</ol> </ol>
<aside class="admonition tip"> <aside class="admonition tip">
<p>If you prefer keyboard shortcuts, press <kbd>Alt</kbd>+<kbd>L</kbd> while <p>If you prefer keyboard shortcuts, press <kbd>Alt</kbd>+<kbd>L</kbd> while
focused on a note or in the <em>Owned Attributes</em> section to display focused on a note or in the <em>Owned Attributes</em> section to display
the visual editor.</p> the visual editor.</p>
</aside> </aside>
<p>While in the visual editor:</p> <p>While in the visual editor:</p>
<ul> <ul>
<li>Set the desired name</li> <li>Set the desired name</li>
<li>Set the Target note (the note to point to). Unlike labels, relations cannot <li>Set the Target note (the note to point to). Unlike labels, relations cannot
exist with a target note.</li> exist with a target note.</li>
<li>Check <em>Inheritable</em> if the label should be inherited by the child <li>Check <em>Inheritable</em> if the label should be inherited by the child
notes as well. See&nbsp;<a class="reference-link" href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>&nbsp;for notes as well. See&nbsp;<a class="reference-link" href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>&nbsp;for
more information.</li> more information.</li>
</ul> </ul>
<h2>Creating a relation manually</h2> <h2>Creating a relation manually</h2>
<p>In the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link" <p>In the <em>Owned Attributes</em> section in the&nbsp;<a class="reference-link"
href="#root/_help_BlN9DFI679QC">Ribbon</a>:</p> href="#root/_help_BlN9DFI679QC">Ribbon</a>:</p>
<ul> <ul>
<li>To create a relation called <code>myRelation</code>: <li>To create a relation called <code>myRelation</code>:
<ul> <ul>
<li>First type <code>~myRelation=@</code>.</li> <li>First type <code>~myRelation=@</code>.</li>
@@ -67,11 +52,11 @@
</li> </li>
<li>To create an inheritable relation, follow the same steps as previously <li>To create an inheritable relation, follow the same steps as previously
described but instead of <code>~myRelation</code> write <code>~myRelation(inheritable)</code>.</li> described but instead of <code>~myRelation</code> write <code>~myRelation(inheritable)</code>.</li>
</ul> </ul>
<h2>Predefined relations</h2> <h2>Predefined relations</h2>
<p>These relations are supported and used internally by Trilium.</p> <p>These relations are supported and used internally by Trilium.</p>
<aside <aside
class="admonition tip"> class="admonition tip">
<p>Some relations presented here end with a <code>*</code>. That means that <p>Some relations presented here end with a <code>*</code>. That means that
there are multiple relations with the same prefix, consult the specific there are multiple relations with the same prefix, consult the specific
page linked in the description of that relation for more information.</p> page linked in the description of that relation for more information.</p>
@@ -152,8 +137,3 @@
</tbody> </tbody>
</table> </table>
</figure> </figure>
</div>
</div>
</body>
</html>

View File

@@ -1,27 +1,12 @@
<html> <figure class="image">
<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>Bulk Actions</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Bulk Actions</h1>
<div class="ck-content">
<figure class="image">
<img style="aspect-ratio:1425/654;" src="Bulk Actions_image.png" width="1425" <img style="aspect-ratio:1425/654;" src="Bulk Actions_image.png" width="1425"
height="654"> height="654">
</figure> </figure>
<p>The <em>Bulk Actions</em> dialog makes it easy to apply changes to multiple <p>The <em>Bulk Actions</em> dialog makes it easy to apply changes to multiple
notes at once, ranging from simple actions such as adding or removing a notes at once, ranging from simple actions such as adding or removing a
label to being executing custom scripts.</p> label to being executing custom scripts.</p>
<h2>Interaction</h2> <h2>Interaction</h2>
<ul> <ul>
<li>The first step is to select the notes in the&nbsp;<a class="reference-link" <li>The first step is to select the notes in the&nbsp;<a class="reference-link"
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>. It's possible to apply bulk href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>. It's possible to apply bulk
actions to: actions to:
@@ -52,12 +37,12 @@
trigger all of them at once.</li> trigger all of them at once.</li>
<li>For convenience, the last bulk action configuration is saved for further <li>For convenience, the last bulk action configuration is saved for further
use and will be restored when entering the dialog again.</li> use and will be restored when entering the dialog again.</li>
</ul> </ul>
<h2>Actions</h2> <h2>Actions</h2>
<h3>Labels</h3> <h3>Labels</h3>
<p>These actions operate the&nbsp;<a class="reference-link" href="#root/_help_HI6GBBIduIgv">Labels</a>&nbsp;of <p>These actions operate the&nbsp;<a class="reference-link" href="#root/_help_HI6GBBIduIgv">Labels</a>&nbsp;of
a note:</p> a note:</p>
<ul> <ul>
<li><strong>Add label</strong> <li><strong>Add label</strong>
<ul> <ul>
<li>For each note, if it doesn't already have a <a href="#root/_help_HI6GBBIduIgv">label</a> of <li>For each note, if it doesn't already have a <a href="#root/_help_HI6GBBIduIgv">label</a> of
@@ -89,11 +74,11 @@
<li>Notes without the label will not be affected.</li> <li>Notes without the label will not be affected.</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<h3>Relations</h3> <h3>Relations</h3>
<p>These actions operate the&nbsp;<a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>&nbsp;of <p>These actions operate the&nbsp;<a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>&nbsp;of
a note:</p> a note:</p>
<ul> <ul>
<li><strong>Add relation</strong> <li><strong>Add relation</strong>
<ul> <ul>
<li>For each note, it will create a relation pointing to the given note.</li> <li>For each note, it will create a relation pointing to the given note.</li>
@@ -120,9 +105,9 @@
<li>Notes without this relation will not be affected.</li> <li>Notes without this relation will not be affected.</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<h3>Notes</h3> <h3>Notes</h3>
<ul> <ul>
<li><strong>Rename note</strong> <li><strong>Rename note</strong>
<ul> <ul>
<li>For each note, it will change the title of the note to the given one.</li> <li>For each note, it will change the title of the note to the given one.</li>
@@ -160,9 +145,9 @@
the notes.</li> the notes.</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<h3>Others</h3> <h3>Others</h3>
<ul> <ul>
<li><strong>Execute script</strong> <li><strong>Execute script</strong>
<ul> <ul>
<li>For more complex scenarios, it is possible to type in a JavaScript expression <li>For more complex scenarios, it is possible to type in a JavaScript expression
@@ -181,9 +166,4 @@
</li> </li>
</ul> </ul>
</li> </li>
</ul> </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
<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>Configuration (config.ini or environment variables)</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Configuration (config.ini or environment variables)</h1>
<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 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 the <a href="https://github.com/TriliumNext/Notes">Notes</a> repository to
see what values are supported.</p> see what values are supported.</p>
<p>You can provide the same values via environment variables instead of the <code>config.ini</code> file, <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> and these environment variables use the following format:</p>
<ol> <ol>
<li>Environment variables should be prefixed with <code>TRILIUM_</code> and <li>Environment variables should be prefixed with <code>TRILIUM_</code> and
use underscores to represent the INI section structure.</li> 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>The format is: <code>TRILIUM_&lt;SECTION&gt;_&lt;KEY&gt;=&lt;VALUE&gt;</code>
</li> </li>
<li>The environment variables will override any matching values from config.ini</li> <li>The environment variables will override any matching values from config.ini</li>
</ol> </ol>
<p>For example, if you have this in your config.ini:</p><pre><code class="language-text-x-trilium-auto">[Network] <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"
<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>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 href="#root/_help_cbkrhQjrkKrh">Synchronization</a>&nbsp;is set up, since
multiple servers are involved (the one from the desktop client and the 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 one the synchronisation is set up with), sometimes it can be useful to
distinguish the instance you are running on.</p> distinguish the instance you are running on.</p>
<h2>Setting the instance name</h2> <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] <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
<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>Custom Request Handler</title>
</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 open a public REST endpoint. This opens a way for various integrations
with other services - a simple example would be creating new note from 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> Slack by issuing a slash command (e.g. <code>/trilium buy milk</code>).</p>
<h2>Create note from outside Trilium</h2> <h2>Create note from outside Trilium</h2>
<p>Let's take a look at an example. The goal is to provide a REST endpoint <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> 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; <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,24 +1,9 @@
<html> <p>A custom resource provider allows any file imported into Trilium (images,
<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>Custom Resource Providers</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Custom Resource Providers</h1>
<div class="ck-content">
<p>A custom resource provider allows any file imported into Trilium (images,
fonts, stylesheets) to be publicly accessible via a URL.</p> fonts, stylesheets) to be publicly accessible via a URL.</p>
<p>A potential use case for this is to add embed a custom font alongside <p>A potential use case for this is to add embed a custom font alongside
a theme.</p> a theme.</p>
<h2>Steps for creating a custom resource provider</h2> <h2>Steps for creating a custom resource provider</h2>
<ol> <ol>
<li>Import a file such as an image or a font into Trilium by drag &amp; drop.</li> <li>Import a file such as an image or a font into Trilium by drag &amp; drop.</li>
<li>Select the file and go to the <em>Owned Attributes</em> section.</li> <li>Select the file and go to the <em>Owned Attributes</em> section.</li>
<li>Add the label <code>#customResourceProvider=hello</code>.</li> <li>Add the label <code>#customResourceProvider=hello</code>.</li>
@@ -29,19 +14,19 @@
the base URL.</li> the base URL.</li>
<li>If everything went well, at the previous step the browser should have <li>If everything went well, at the previous step the browser should have
downloaded the file uploaded in the first step.</li> downloaded the file uploaded in the first step.</li>
</ol> </ol>
<p>Instead of <code>hello</code>, the name can be:</p> <p>Instead of <code>hello</code>, the name can be:</p>
<ul> <ul>
<li>A path, such as <code>fonts/Roboto.ttf</code>, which would be accessible <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> 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, <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>, 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> etc.</li>
</ul> </ul>
<h2>Using it in a theme</h2> <h2>Using it in a theme</h2>
<p>For example, if you have a custom font to be imported by the theme, first <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> 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 { <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
<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>Database</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Database</h1>
<div class="ck-content">
<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. which contains all notes, tree structure, metadata, and most of the configuration.
The database file is named <code>document.db</code> and is stored in the The database file is named <code>document.db</code> and is stored in the
application's default&nbsp;<a href="#root/_help_tAassRL4RSQL">Data directory</a>.</p> application's default&nbsp;<a href="#root/_help_tAassRL4RSQL">Data directory</a>.</p>
<h2>Demo Notes</h2> <h2>Demo Notes</h2>
<p>When first starting Trilium, it will provide a set of notes to showcase <p>When first starting Trilium, it will provide a set of notes to showcase
various features of the application.</p> various features of the application.</p>
<p>For more information see&nbsp;<a class="reference-link" href="#root/_help_6tZeKvSHEUiB">Demo Notes</a>.</p> <p>For more information see&nbsp;<a class="reference-link" href="#root/_help_6tZeKvSHEUiB">Demo Notes</a>.</p>
<h2>Manually Modifying the Database</h2> <h2>Manually Modifying the Database</h2>
<p>Trilium provides a lot of flexibility, and with it, opportunities for <p>Trilium provides a lot of flexibility, and with it, opportunities for
advanced users to tweak it. If you need to explore or modify the database advanced users to tweak it. If you need to explore or modify the database
directly, you can use a tool such as <a href="https://sqlitebrowser.org/">SQLite Browser</a> to directly, you can use a tool such as <a href="https://sqlitebrowser.org/">SQLite Browser</a> to
work directly on the database file.</p> work directly on the database file.</p>
<p>See&nbsp;<a href="#root/_help_oyIAJ9PvvwHX">Manually altering the database</a>&nbsp;for <p>See&nbsp;<a href="#root/_help_oyIAJ9PvvwHX">Manually altering the database</a>&nbsp;for
more information.</p> more information.</p>
<h2>How to Reset the Database</h2> <h2>How to Reset the Database</h2>
<p>If you are experimenting with Trilium and want to return it to its original <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 state, you can do that by deleting the current database. When you restart
the application, it will generate a new database containing the original the application, it will generate a new database containing the original
demo notes.</p> demo notes.</p>
<p>To delete the database, simply go to the <a href="#root/_help_tAassRL4RSQL">data directory</a> and <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> 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 <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 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 to fully restore the application to its original state. You can also review
the <a href="#root/_help_Gzjqa934BdH4">configuration</a> file to provide the <a href="#root/_help_Gzjqa934BdH4">configuration</a> file to provide
all <code>config.ini</code> values as environment variables instead.</p> all <code>config.ini</code> values as environment variables instead.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,21 +1,6 @@
<html> <p>When you run Trilium for the first time, it will generate a new database
<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>Demo Notes</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Demo Notes</h1>
<div class="ck-content">
<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> containing demo notes. These notes showcase its many features, such as:</p>
<ul> <ul>
<li><a class="reference-link" href="#root/_help_iRwzGnHPzonm">Relation Map</a> <li><a class="reference-link" href="#root/_help_iRwzGnHPzonm">Relation Map</a>
</li> </li>
<li><a class="reference-link" href="#root/_help_l0tKav7yLHGF">Day Notes</a> <li><a class="reference-link" href="#root/_help_l0tKav7yLHGF">Day Notes</a>
@@ -26,25 +11,20 @@
</li> </li>
<li><a class="reference-link" href="#root/_help_Wy267RK4M69c">Themes</a> <li><a class="reference-link" href="#root/_help_Wy267RK4M69c">Themes</a>
</li> </li>
</ul> </ul>
<h3>Restoring Demo Notes</h3> <h3>Restoring Demo Notes</h3>
<p>There are some cases in which you may want to restore the original demo <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 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 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 to explore the latest version of the demo notes, which might showcase new
features.</p> features.</p>
<p>You can easily restore the demo notes by using Trilium's built-in import <p>You can easily restore the demo notes by using Trilium's built-in import
feature by importing them:</p> feature by importing them:</p>
<ul> <ul>
<li>Download <a href="https://github.com/TriliumNext/Notes/raw/develop/db/demo.zip">this .zip archive</a> with <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> the latest version of the demo notes</li>
<li>Right click on any note in your tree under which you would like the demo <li>Right click on any note in your tree under which you would like the demo
notes to be imported</li> notes to be imported</li>
<li>Click "Import into note"</li> <li>Click "Import into note"</li>
<li>Select the .zip archive to import it</li> <li>Select the .zip archive to import it</li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,36 +1,21 @@
<html> <p>There are some situations where modifying the SQLite database that Trilium
<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>Manually altering the database</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Manually altering the database</h1>
<div class="ck-content">
<p>There are some situations where modifying the SQLite database that Trilium
uses is desirable.</p> uses is desirable.</p>
<p>If you are doing any advanced development or troubleshooting where you <p>If you are doing any advanced development or troubleshooting where you
manually modify the database, you might want to consider creating backups manually modify the database, you might want to consider creating backups
of your <code>document.db</code> file.</p> of your <code>document.db</code> file.</p>
<h2>Modifying it internally using the SQL Console</h2> <h2>Modifying it internally using the SQL Console</h2>
<p>The SQL Console is Trilium's built-in database editor.</p> <p>The SQL Console is Trilium's built-in database editor.</p>
<p>See&nbsp;<a class="reference-link" href="#root/_help_YKWqdJhzi2VY">SQL Console</a>.</p> <p>See&nbsp;<a class="reference-link" href="#root/_help_YKWqdJhzi2VY">SQL Console</a>.</p>
<h2>Externally modifying the database</h2> <h2>Externally modifying the database</h2>
<p>Sometimes the SQL Console cannot be used (for example if the application <p>Sometimes the SQL Console cannot be used (for example if the application
cannot start).</p> cannot start).</p>
<p>When making external modifications, consider closing the desktop application. <p>When making external modifications, consider closing the desktop application.
If modifying the server database, then stop the service or Docker container.</p> If modifying the server database, then stop the service or Docker container.</p>
<h3>Using DB Browser for SQLite</h3> <h3>Using DB Browser for SQLite</h3>
<p>DB Browser for SQLite is a cross-platform editor that can be used to alter <p>DB Browser for SQLite is a cross-platform editor that can be used to alter
the database using a graphical user interface.</p> the database using a graphical user interface.</p>
<p>To do so:</p> <p>To do so:</p>
<ol> <ol>
<li>In the main menu, select File → Open database… and navigate to the database <li>In the main menu, select File → Open database… and navigate to the database
in the&nbsp;<a href="#root/_help_tAassRL4RSQL">Data directory</a>.</li> in the&nbsp;<a href="#root/_help_tAassRL4RSQL">Data directory</a>.</li>
<li>Select the <em>Execute SQL</em> tab.</li> <li>Select the <em>Execute SQL</em> tab.</li>
@@ -39,18 +24,13 @@
(or F5 key).</li> (or F5 key).</li>
<li>Press "Write Changes" in the main toolbar.</li> <li>Press "Write Changes" in the main toolbar.</li>
<li>Close the application or close the database.</li> <li>Close the application or close the database.</li>
</ol> </ol>
<p> <p>
<img src="Manually altering the data.png"> <img src="Manually altering the data.png">
</p> </p>
<h3>Using the SQLite CLI</h3> <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> <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> <ul>
<li>In the prompt simply type the statement and make sure it ends with a <code>;</code> character.</li> <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> <li>To exit, simply type <code>.quit</code> and enter.</li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,26 +1,11 @@
<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>
<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>SQL Console</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>SQL Console</h1>
<div class="ck-content">
<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>
Advanced → Open SQL Console.</p> Advanced → Open SQL Console.</p>
<p> <p>
<img src="SQL Console_image.png"> <img src="SQL Console_image.png">
</p> </p>
<h3>Interaction</h3> <h3>Interaction</h3>
<ul> <ul>
<li> <li>
<p>Hovering the mouse over one of the tables listed at the top of the document <p>Hovering the mouse over one of the tables listed at the top of the document
will show the columns and their data type.</p> will show the columns and their data type.</p>
@@ -38,19 +23,14 @@
<img src="1_SQL Console_image.png"> <img src="1_SQL Console_image.png">
</p> </p>
</li> </li>
</ul> </ul>
<h3>Saved SQL console</h3> <h3>Saved SQL console</h3>
<p>SQL queries or commands can be saved into a dedicated note.</p> <p>SQL queries or commands can be saved into a dedicated note.</p>
<p>To do so, simply write the query and press the <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> <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> <ul>
<li>The SQL expression will not be displayed by default, but it can still <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> 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 <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> statement back into the SQL console and then saving it again.</li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,53 +1,38 @@
<html> <p>When a new note is created, its name is by default "new note". In some
<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>Default Note Title</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Default Note Title</h1>
<div class="ck-content">
<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 cases, it can be desirable to have a different or even a dynamic default
note title.</p> note title.</p>
<p>For this use case, Trilium (since v0.52) supports <code>#titleTemplate</code> <p>For this use case, Trilium (since v0.52) supports <code>#titleTemplate</code>
<a <a
href="#root/_help_zEY4DaJG4YT5">label</a>. You can create such a label for a given note, assign it a value, href="#root/_help_zEY4DaJG4YT5">label</a>. You can create such a label for a given note, assign it a value,
and this value will be used as a default title when creating child notes. and this value will be used as a default title when creating child notes.
As with other labels, you can make it inheritable to apply recursively, As with other labels, you can make it inheritable to apply recursively,
and you can even place it on the root note to have it applied globally and you can even place it on the root note to have it applied globally
everywhere.</p> everywhere.</p>
<p>As an example use case, imagine you collect books you've read in a given <p>As an example use case, imagine you collect books you've read in a given
year like this:</p> year like this:</p>
<ul> <ul>
<li>2022 Books <li>2022 Books
<ul> <ul>
<li>Neal Stephenson: Anathem, 2008</li> <li>Neal Stephenson: Anathem, 2008</li>
<li>Franz Kafka: Die Verwandlung, 1915</li> <li>Franz Kafka: Die Verwandlung, 1915</li>
</ul> </ul>
</li> </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> <p>Now, to the parent note "2022 Books" you can assign label <code>#titleTemplate="[Author name]: [Book title], [Publication year]"</code>.</p>
<p>And all children of "2022 Books" will be created with initial title "[Author <p>And all children of "2022 Books" will be created with initial title "[Author
name]: [Book title], [Publication year]". There's no artificial intelligence name]: [Book title], [Publication year]". There's no artificial intelligence
here, the idea is to just prompt you to manually fill in the pieces of here, the idea is to just prompt you to manually fill in the pieces of
information into the note title by yourself.</p> information into the note title by yourself.</p>
<h2>Dynamic value</h2> <h2>Dynamic value</h2>
<p>The value of <code>#titleTemplate</code> is evaluated at the point of note's <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 creation as a JavaScript string, which means it can be enriched with the
help of JS string interpolation with dynamic data.</p> help of JS string interpolation with dynamic data.</p>
<p>Second variable injected is <code>parentNote</code> which gives access to <p>Second variable injected is <code>parentNote</code> which gives access to
the parent <a href="#root/_help_habiZ3HU8Kw8"><code>FNote</code></a>.</p> 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 <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> provides similar capabilities, including default note's content.</p>
<h3>Examples</h3> <h3>Examples</h3>
<ul> <ul>
<li>Imagine you collect server outage incidents and write some notes. It looks <li>Imagine you collect server outage incidents and write some notes. It looks
like this: like this:
<ul> <ul>
@@ -66,9 +51,4 @@
</li> </li>
<li>To mirror the parent's note title: <code>${parentNote.title}</code> <li>To mirror the parent's note title: <code>${parentNote.title}</code>
</li> </li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,44 +1,29 @@
<html> <p>ETAPI is Trilium's public/external REST API. It is available since Trilium
<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>ETAPI (REST API)</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>ETAPI (REST API)</h1>
<div class="ck-content">
<p>ETAPI is Trilium's public/external REST API. It is available since Trilium
v0.50.</p> 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> <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> <h2>API clients</h2>
<p>As an alternative to calling the API directly, there are client libraries <p>As an alternative to calling the API directly, there are client libraries
to simplify this</p> to simplify this</p>
<ul> <ul>
<li><a href="https://github.com/Nriver/trilium-py">trilium-py</a>, you can <li><a href="https://github.com/Nriver/trilium-py">trilium-py</a>, you can
use Python to communicate with Trilium.</li> use Python to communicate with Trilium.</li>
</ul> </ul>
<h2>Authentication</h2> <h2>Authentication</h2>
<p>All operations have to be authenticated using a token. You can get this <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 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 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
@@ -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,23 +1,8 @@
<html> <figure class="image image-style-align-right">
<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>Hidden Notes</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Hidden Notes</h1>
<div class="ck-content">
<figure class="image image-style-align-right">
<img style="aspect-ratio:263/445;" src="Hidden Notes_image.png" width="263" <img style="aspect-ratio:263/445;" src="Hidden Notes_image.png" width="263"
height="445"> height="445">
</figure> </figure>
<p>For easy extensibility, a lot of features in Trilium make use of actual <p>For easy extensibility, a lot of features in Trilium make use of actual
notes to store information as opposed to having them stored in a separate notes to store information as opposed to having them stored in a separate
location in the database. This allows some functions such as&nbsp;<a class="reference-link" location in the database. This allows some functions such as&nbsp;<a class="reference-link"
href="#root/_help_zEY4DaJG4YT5">Attributes</a>,&nbsp;<a class="reference-link" href="#root/_help_zEY4DaJG4YT5">Attributes</a>,&nbsp;<a class="reference-link"
@@ -25,20 +10,20 @@
href="#root/_help_eIg8jdvaoNNd">Search</a>&nbsp;and&nbsp;<a class="reference-link" href="#root/_help_eIg8jdvaoNNd">Search</a>&nbsp;and&nbsp;<a class="reference-link"
href="#root/_help_QEAPj01N5f7w">Links</a>&nbsp;to be able to operate on href="#root/_help_QEAPj01N5f7w">Links</a>&nbsp;to be able to operate on
them.</p> them.</p>
<p>As the name suggests, these notes are hidden to the user by default to <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 prevent cluttering the note tree and to prevent them from being accidentally
deleted.</p> deleted.</p>
<p>The hidden notes are stored in the user's&nbsp;<a class="reference-link" <p>The hidden notes are stored in the user's&nbsp;<a class="reference-link"
href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;just like normal notes, href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;just like normal notes,
but they have a unique&nbsp;<a class="reference-link" href="#root/_help_m1lbrzyKDaRB">Note ID</a>&nbsp;which but they have a unique&nbsp;<a class="reference-link" href="#root/_help_m1lbrzyKDaRB">Note ID</a>&nbsp;which
allows them to be distinguished from the normal ones.</p> allows them to be distinguished from the normal ones.</p>
<h2>Accessing the hidden note tree</h2> <h2>Accessing the hidden note tree</h2>
<p>From the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>, <p>From the&nbsp;<a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>,
select <em>Advanced</em><em>Show Hidden Subtree</em>.</p> select <em>Advanced</em><em>Show Hidden Subtree</em>.</p>
<h2>Contents of the hidden note tree</h2> <h2>Contents of the hidden note tree</h2>
<p>Here is a brief summary of all the notes within the hidden tree:</p> <p>Here is a brief summary of all the notes within the hidden tree:</p>
<figure <figure
class="table" style="width:100%;"> class="table" style="width:100%;">
<table class="ck-table-resized"> <table class="ck-table-resized">
<colgroup> <colgroup>
<col style="width:19.93%;"> <col style="width:19.93%;">
@@ -195,8 +180,3 @@
</tbody> </tbody>
</table> </table>
</figure> </figure>
</div>
</div>
</body>
</html>

View File

@@ -1,46 +1,26 @@
<html> <p>Whereas some applications use file names to uniquely identify notes, Trilium
<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>Note ID</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Note ID</h1>
<div class="ck-content">
<p>Whereas some applications use file names to uniquely identify notes, Trilium
uses the concept of Note ID.</p> uses the concept of Note ID.</p>
<p>Generally, the Note ID is a 12-character long alphanumeric sequence (including <p>Generally, the Note ID is a 12-character long alphanumeric sequence (including
both lower and upper case letter) that is randomly generated for each new both lower and upper case letter) that is randomly generated for each new
note.</p> note.</p>
<h2>How does the import/export affect the note IDs</h2> <h2>How does the import/export affect the note IDs</h2>
<p>When notes are exported, their note ID is kept in the metadata of the <p>When notes are exported, their note ID is kept in the metadata of the
export. However when they are imported back in, a new note ID is generated export. However when they are imported back in, a new note ID is generated
for all the notes. This also includes other entities that are part of the 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> import/export process such as&nbsp;<a class="reference-link" href="#root/_help_0vhv7lsOLy82">Attachments</a>.</p>
<h2>Note collisions</h2> <h2>Note collisions</h2>
<p>Since the Note ID is a fixed-width randomly generated number, due to the <p>Since the Note ID is a fixed-width randomly generated number, due to the
<a <a
href="https://en.wikipedia.org/wiki/Pigeonhole_principle">pigeonhole principle</a>, there is a possibility that a newly created 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> 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; <p>Since the note ID is alphanumeric and the length is 12 we have&nbsp;
<span <span
class="math-tex">\(62^{12}\)</span>&nbsp;unique IDs. However since we are generating them 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 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 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> 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 <p>As such, Trilium does not take any explicit action against potential note
collisions, similar to other software that makes uses of unique hashes 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>. 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 If one would theoretically occur, what would most likely happen is that
the existing note will be replaced by the new one.</p> 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">
<link rel="stylesheet" href="../../style.css">
<base target="_parent">
<title data-trilium-title>Note Map (Link map, Tree map)</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Note Map (Link map, Tree map)</h1>
<div class="ck-content">
<p>Note map is a visualisation of connections between notes.</p>
<p>This provides an insight into a structure ("web") of notes.</p>
<p>There are two types of note map:</p>
<ul>
<li>Link Map, which shows relations between notes.</li> <li>Link Map, which shows relations between notes.</li>
<li>Note Map, which shows the hierarchical tree structure.</li> <li>Note Map, which shows the hierarchical tree structure.</li>
</ul> </ul>
<h2>Link Map</h2> <h2>Link Map</h2>
<p>Shows <a href="#root/_help_zEY4DaJG4YT5">relations</a> between notes:</p> <p>Shows <a href="#root/_help_zEY4DaJG4YT5">relations</a> between notes:</p>
<p> <p>
<img src="1_Note Map (Link map, Tree m.png"> <img src="1_Note Map (Link map, Tree m.png">
</p> </p>
<h2>Tree Map</h2> <h2>Tree Map</h2>
<p>Shows hierarchical map of notes:</p> <p>Shows hierarchical map of notes:</p>
<p> <p>
<img src="Note Map (Link map, Tree m.png"> <img src="Note Map (Link map, Tree m.png">
</p> </p>
<h2>Dedicated note type</h2> <h2>Dedicated note type</h2>
<p>Apart from the note map feature which can be accessed from any note, it <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 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 in full screen. See&nbsp;<a href="#root/_help_bdUJEHsAPYQR">Note Map</a>&nbsp;for
more information.</p> more information.</p>
<h2>See also</h2> <h2>See also</h2>
<p><a href="#root/_help_iRwzGnHPzonm">Relation map</a> is a similar concept, <p><a href="#root/_help_iRwzGnHPzonm">Relation map</a> is a similar concept,
with some differences:</p> with some differences:</p>
<ul> <ul>
<li>note map is automatically generated while relation map must be created <li>note map is automatically generated while relation map must be created
manually</li> manually</li>
<li>relation map is a type of note while a link map is just virtual visualization</li> <li>relation map is a type of note while a link map is just virtual visualization</li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,23 +1,8 @@
<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>
<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>Note source</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Note source</h1>
<div class="ck-content">
<h2>Understanding the source code of the different notes</h2>
<p>Internally, the structure of the content of each note is different based
on the&nbsp;<a class="reference-link" href="#root/_help_KSZ04uQ2D1St">Note Types</a>.</p> on the&nbsp;<a class="reference-link" href="#root/_help_KSZ04uQ2D1St">Note Types</a>.</p>
<p>For example:</p> <p>For example:</p>
<ul> <ul>
<li><a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes&nbsp;are <li><a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes&nbsp;are
represented internally as HTML, using the&nbsp;<a class="reference-link" represented internally as HTML, using the&nbsp;<a class="reference-link"
href="#root/_help_MI26XDLSAlCD">CKEditor</a>&nbsp;representation. Note href="#root/_help_MI26XDLSAlCD">CKEditor</a>&nbsp;representation. Note
@@ -34,15 +19,15 @@
<li><a class="reference-link" href="#root/_help_gBbsAeiuUxI5">Mind Map</a>&nbsp;notes <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" are represented as JSON, with the internal format of&nbsp;<a class="reference-link"
href="#root/_help_N4IDkixaDG9C">MindElixir</a>.</li> href="#root/_help_N4IDkixaDG9C">MindElixir</a>.</li>
</ul> </ul>
<p>Note that some information is also stored as&nbsp;<a class="reference-link" <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_0vhv7lsOLy82">Attachments</a>. For example&nbsp;<a class="reference-link"
href="#root/_help_grjYqerjn243">Canvas</a>&nbsp;notes use the attachments 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" 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 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 types it stores an SVG representation of the content for use in other features
such as including in other notes, shared notes, etc.</p> 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 <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; 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;
@@ -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,27 +1,12 @@
<html> <p>Trilium allows you to share selected notes as <strong>publicly accessible</strong> read-only
<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>Sharing</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Sharing</h1>
<div class="ck-content">
<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 documents. This feature is particularly useful for publishing content directly
from your Trilium notes, making it accessible to others online.</p> from your Trilium notes, making it accessible to others online.</p>
<h2>Prerequisites</h2> <h2>Prerequisites</h2>
<p>To use the sharing feature, you must have a&nbsp;<a class="reference-link" <p>To use the sharing feature, you must have a&nbsp;<a class="reference-link"
href="#root/_help_WOcw2SLH6tbX">Server Installation</a>&nbsp;of Trilium. href="#root/_help_WOcw2SLH6tbX">Server Installation</a>&nbsp;of Trilium.
This is necessary because the notes will be hosted from the server.</p> This is necessary because the notes will be hosted from the server.</p>
<h2>How to Share a Note</h2> <h2>How to Share a Note</h2>
<ol> <ol>
<li> <li>
<p><strong>Enable Sharing</strong>: To share a note, toggle the <code>Shared</code> switch <p><strong>Enable Sharing</strong>: To share a note, toggle the <code>Shared</code> switch
within the note's interface. Once sharing is enabled, an URL will appear, within the note's interface. Once sharing is enabled, an URL will appear,
@@ -38,33 +23,33 @@
<img src="Sharing_share-single-note-.png" alt="Shared Note Example"> <img src="Sharing_share-single-note-.png" alt="Shared Note Example">
</p> </p>
</li> </li>
</ol> </ol>
<h2>Sharing a Note Subtree</h2> <h2>Sharing a Note Subtree</h2>
<p>When you share a note, you actually share the entire subtree of notes <p>When you share a note, you actually share the entire subtree of notes
beneath it. If the note has child notes, they will also be included in beneath it. If the note has child notes, they will also be included in
the shared content. For example, sharing the "Formatting" subtree will the shared content. For example, sharing the "Formatting" subtree will
display a page with basic navigation for exploring all the notes within display a page with basic navigation for exploring all the notes within
that subtree.</p> that subtree.</p>
<p> <p>
<img src="Sharing_share-multiple-not.png" alt="Shared Subtree Example"> <img src="Sharing_share-multiple-not.png" alt="Shared Subtree Example">
</p> </p>
<h2>Viewing All Shared Notes</h2> <h2>Viewing All Shared Notes</h2>
<p>You can view a list of all shared notes by clicking on "Show Shared Notes <p>You can view a list of all shared notes by clicking on "Show Shared Notes
Subtree." This allows you to manage and navigate through all the notes Subtree." This allows you to manage and navigate through all the notes
you have made public.</p> you have made public.</p>
<h2>Security Considerations</h2> <h2>Security Considerations</h2>
<p>Shared notes are published on the open internet and can be accessed by <p>Shared notes are published on the open internet and can be accessed by
anyone with the URL. The URL's randomness does not provide security, so anyone with the URL. The URL's randomness does not provide security, so
it is crucial not to share sensitive information through this feature.</p> it is crucial not to share sensitive information through this feature.</p>
<h3>Password Protection</h3> <h3>Password Protection</h3>
<p>To protect shared notes with a username and password, you can use the <code>#shareCredentials</code> attribute. <p>To protect shared notes with a username and password, you can use the <code>#shareCredentials</code> attribute.
Add this label to the note with the format <code>#shareCredentials="username:password"</code>. Add this label to the note with the format <code>#shareCredentials="username:password"</code>.
To protect an entire subtree, make sure the label is <a href="#root/_help_bwZpz2ajCEwO">inheritable</a>.</p> To protect an entire subtree, make sure the label is <a href="#root/_help_bwZpz2ajCEwO">inheritable</a>.</p>
<h2>Advanced Sharing Options</h2> <h2>Advanced Sharing Options</h2>
<h3>Customizing the Appearance of Shared Notes</h3> <h3>Customizing the Appearance of Shared Notes</h3>
<p>The default shared page is basic in design, but you can customize it using <p>The default shared page is basic in design, but you can customize it using
your own CSS:</p> your own CSS:</p>
<ul> <ul>
<li><strong>Custom CSS</strong>: Link a CSS&nbsp;<a class="reference-link" <li><strong>Custom CSS</strong>: Link a CSS&nbsp;<a class="reference-link"
href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note to the shared page by 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 adding a <code>~shareCss</code> relation to the note. If you want this style
@@ -74,49 +59,49 @@
use the <code>#shareOmitDefaultCss</code> label to avoid conflicts with Trilium's use the <code>#shareOmitDefaultCss</code> label to avoid conflicts with Trilium's
<a <a
href="#root/_help_Wy267RK4M69c">default stylesheet</a>.</li> href="#root/_help_Wy267RK4M69c">default stylesheet</a>.</li>
</ul> </ul>
<h3>Adding JavaScript</h3> <h3>Adding JavaScript</h3>
<p>You can inject custom JavaScript into the shared note using the <code>~shareJs</code> relation. <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 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 the <code>fetchNote()</code> API, which retrieves note data based on its
ID.</p> ID.</p>
<p>Example:</p><pre><code class="language-application-javascript-env-backend">const currentNote = await fetchNote(); <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>
@@ -125,10 +110,10 @@ for (const attr of parentNote.attributes) {
</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>
@@ -204,9 +189,4 @@ for (const attr of parentNote.attributes) {
</tr> </tr>
</tbody> </tbody>
</table> </table>
</figure> </figure>
</div>
</div>
</body>
</html>

View File

@@ -1,22 +1,7 @@
<html> <p>When accessing a shared note, Trilium will render it as a web page. Sometimes
<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>Serving directly the content of a note</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Serving directly the content of a note</h1>
<div class="ck-content">
<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 it's desirable to serve the content directly so that it can be used in
a script or downloaded by the user.</p> a script or downloaded by the user.</p>
<table> <table>
<thead> <thead>
<tr> <tr>
<th>A note displayed as a web page (HTML)</th> <th>A note displayed as a web page (HTML)</th>
@@ -33,20 +18,15 @@
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </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;
<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>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 <a
href="#root/_help_KSZ04uQ2D1St">Note Types</a>&nbsp;is the fact that it makes use of various off-the-shelf href="#root/_help_KSZ04uQ2D1St">Note Types</a>&nbsp;is the fact that it makes use of various off-the-shelf
or reusable libraries.</p> or reusable libraries.</p>
<p>The sub-pages showcase some of the technologies used, for a better understanding <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 of how Trilium works but also to credit the developers of that particular
technology.</p> technology.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,38 +1,23 @@
<html> <h2>Editor core</h2>
<p>The CKEditor is the WYSIWYG (standing for What You See Is What You Get)
<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>CKEditor</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>CKEditor</h1>
<div class="ck-content">
<h2>Editor core</h2>
<p>The CKEditor is the WYSIWYG (standing for What You See Is What You Get)
editor behind&nbsp;<a href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes.</p> editor behind&nbsp;<a href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes.</p>
<p>Their website is <a href="https://ckeditor.com/">ckeditor.com</a>.</p> <p>Their website is <a href="https://ckeditor.com/">ckeditor.com</a>.</p>
<p>CKEditor by itself is a commercial product, but the core is open-source. <p>CKEditor by itself is a commercial product, but the core is open-source.
As described in <a href="https://ckeditor.com/docs/ckeditor5/latest/features/index.html">its documentation</a>, As described in <a href="https://ckeditor.com/docs/ckeditor5/latest/features/index.html">its documentation</a>,
the editor supports quite a large number of features. Do note that not the editor supports quite a large number of features. Do note that not
all the features are enabled in Trilium.</p> all the features are enabled in Trilium.</p>
<h2>Premium features</h2> <h2>Premium features</h2>
<p>Some features are marked as premium in the CKEditor feature set. This <p>Some features are marked as premium in the CKEditor feature set. This
means that they cannot be used without a license.</p> means that they cannot be used without a license.</p>
<p>Trilium cannot benefit from any of these premium features as they require <p>Trilium cannot benefit from any of these premium features as they require
a commercial license, however we are in discussions with the CKEditor team 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> 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>
<h2>Plugins</h2> <h2>Plugins</h2>
<p>The CKEditor ecosystem is quite extensible, in the sense that custom plugins <p>The CKEditor ecosystem is quite extensible, in the sense that custom plugins
can be written to extend the functionality of the editor beyond its original can be written to extend the functionality of the editor beyond its original
scope.</p> scope.</p>
<p>Trilium makes use of such features:</p> <p>Trilium makes use of such features:</p>
<ul> <ul>
<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>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
by us to fit our needs.</li> by us to fit our needs.</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>We also make use of modified upstream plugins such as <a href="https://github.com/ckeditor/ckeditor5-mermaid">ckeditor/ckeditor5-mermaid</a> to
@@ -41,10 +26,10 @@
</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 modified version of <a href="https://github.com/ThomasAitken/ckeditor5-footnotes">ThomasAitken/ckeditor5-footnotes: Footnotes plugin for CKEditor5</a> to
allow footnotes.</li> allow footnotes.</li>
</ul> </ul>
<p>Apart from that, Trilium also has its own set of specific plugins such <p>Apart from that, Trilium also has its own set of specific plugins such
as:</p> as:</p>
<ul> <ul>
<li><a class="reference-link" href="#root/_help_2x0ZAX9ePtzV">Cut to subnote</a> <li><a class="reference-link" href="#root/_help_2x0ZAX9ePtzV">Cut to subnote</a>
</li> </li>
<li><a class="reference-link" href="#root/_help_nBAXQFj20hS1">Include Note</a> <li><a class="reference-link" href="#root/_help_nBAXQFj20hS1">Include Note</a>
@@ -57,9 +42,4 @@
<li><a href="#root/_help_NwBbFdNZ9h7O">Admonitions</a>, we ended up creating <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 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> a good inspiration (including the toolbar icon).</li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,25 +1,5 @@
<html> <p><a href="https://excalidraw.com/">Excalidraw</a> is the technology behind
<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>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 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> 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 <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> 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">
<base target="_parent">
<title data-trilium-title>Leaflet</title>
</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><a href="https://github.com/mpetazzoni/leaflet-gpx">mpetazzoni/leaflet-gpx: A GPX track plugin for Leaflet.js</a>
</li> </li>
</ul> </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
<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>MindElixir</title>
</head>
<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> 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 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>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> <p>Issues with its functionality should generally be reported <a href="https://github.com/ssshooter/mind-elixir-core">upstream</a>.</p>
<h2>Plugins</h2> <h2>Plugins</h2>
<p>MindElixir supports plugins, and one such plugin we are making use of <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>, 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> which allows editing the fonts, colors, links of nodes.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,22 +1,7 @@
<html> <p>A template in Trilium serves as a predefined structure for other notes,
<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>Templates</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Templates</h1>
<div class="ck-content">
<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 referred to as instance notes. Assigning a template to a note brings three
main effects:</p> main effects:</p>
<ol> <ol>
<li><strong>Attribute Inheritance</strong>: All attributes from the template <li><strong>Attribute Inheritance</strong>: All attributes from the template
note are <a href="#root/_help_bwZpz2ajCEwO">inherited</a> by the instance note are <a href="#root/_help_bwZpz2ajCEwO">inherited</a> by the instance
notes. Even attributes with <code>#isInheritable=false</code> are inherited notes. Even attributes with <code>#isInheritable=false</code> are inherited
@@ -27,48 +12,43 @@
the time of template assignment.</li> the time of template assignment.</li>
<li><strong>Child Note Duplication</strong>: All child notes of the template <li><strong>Child Note Duplication</strong>: All child notes of the template
are deep-duplicated to the instance note.</li> are deep-duplicated to the instance note.</li>
</ol> </ol>
<h2>Example</h2> <h2>Example</h2>
<p>A typical example would be a "Book" template note, which might include:</p> <p>A typical example would be a "Book" template note, which might include:</p>
<ul> <ul>
<li><strong>Promoted Attributes</strong>: Such as publication year, author, <li><strong>Promoted Attributes</strong>: Such as publication year, author,
etc. (see <a href="#root/_help_OFXdgB2nNk1F">promoted attributes</a>).</li> etc. (see <a href="#root/_help_OFXdgB2nNk1F">promoted attributes</a>).</li>
<li><strong>Outline</strong>: An outline for a book review, including sections <li><strong>Outline</strong>: An outline for a book review, including sections
like themes, conclusion, etc.</li> like themes, conclusion, etc.</li>
<li><strong>Child Notes</strong>: Additional notes for highlights, summary, <li><strong>Child Notes</strong>: Additional notes for highlights, summary,
etc.</li> etc.</li>
</ul> </ul>
<p> <p>
<img src="Templates_template.png" alt="Template Example"> <img src="Templates_template.png" alt="Template Example">
</p> </p>
<h2>Instance Note</h2> <h2>Instance Note</h2>
<p>An instance note is a note related to a template note. This relationship <p>An instance note is a note related to a template note. This relationship
means the instance note's content is initialized from the template, and means the instance note's content is initialized from the template, and
all attributes from the template are inherited.</p> all attributes from the template are inherited.</p>
<p>To create an instance note through the UI:</p> <p>To create an instance note through the UI:</p>
<p> <p>
<img src="Templates_template-create-.png" alt="show child note templates"> <img src="Templates_template-create-.png" alt="show child note templates">
</p> </p>
<p>For the template to appear in the menu, the template note must have the <code>#template</code> label. <p>For the template to appear in the menu, the template note must have the <code>#template</code> label.
Do not confuse this with the <code>~template</code> relation, which links Do not confuse this with the <code>~template</code> relation, which links
the instance note to the template note. If you use <a href="#root/_help_9sRHySam5fXb">workspaces</a>, the instance note to the template note. If you use <a href="#root/_help_9sRHySam5fXb">workspaces</a>,
you can also mark templates with <code>#workspaceTemplate</code> to display you can also mark templates with <code>#workspaceTemplate</code> to display
them only in the workspace.</p> them only in the workspace.</p>
<p>Templates can also be added or changed after note creation by creating <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> a <code>~template</code> relation pointing to the desired template note.</p>
<h2>Additional Notes</h2> <h2>Additional Notes</h2>
<p>From a visual perspective, templates can define <code>#iconClass</code> and <code>#cssClass</code> attributes, <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 allowing all instance notes (e.g., books) to display a specific icon and
CSS style.</p> CSS style.</p>
<p>Explore the concept further in the <a href="#root/_help_wX4HbRucYSDD">demo notes</a>, <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>, including examples like the <a href="#root/_help_iRwzGnHPzonm">Relation Map</a>,
<a <a
href="#root/_help_xYjQUYhpbUEW">Task Manager</a>, and <a href="#root/_help_l0tKav7yLHGF">Day Notes</a>.</p> 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 <p>Additionally, see <a href="#root/_help_47ZrP6FNuoG8">default note title</a> for
creating title templates. Note templates and title templates can be combined creating title templates. Note templates and title templates can be combined
by creating a <code>#titleTemplate</code> for a template note.</p> 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.
<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>Evernote</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Evernote</h1>
<div class="ck-content">
<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> One ENEX file represents content (notes and resources) of one notebook.</p>
<h2>Export ENEX from Evernote</h2> <h2>Export ENEX from Evernote</h2>
<p>To export ENEX file, you need to have a <em>legacy</em> desktop version <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 of Evernote (i.e. not web/mobile). Right click on notebook and select export
and follow the wizard.</p> and follow the wizard.</p>
<h2>Import ENEX in Trilium</h2> <h2>Import ENEX in Trilium</h2>
<p>Once you have ENEX file, you can import it to Trilium. Right click on <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 some note (to which you want to import the file), click on "Import" and
select the ENEX file.</p> select the ENEX file.</p>
<p>After importing the ENEX file, go over the imported notes and resources <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> to be sure the import went well, and you didn't lose any data.</p>
<h2>Limitations</h2> <h2>Limitations</h2>
<p>All resources (except for images) are created as note's attachments.</p> <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 <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> 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,30 +1,15 @@
<html> <p>Trilium supports Markdown for both import and export, while trying to
<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>Markdown</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Markdown</h1>
<div class="ck-content">
<p>Trilium supports Markdown for both import and export, while trying to
keep compatibility as high as possible.</p> keep compatibility as high as possible.</p>
<h2>Import</h2> <h2>Import</h2>
<h3>Clipboard import</h3> <h3>Clipboard import</h3>
<p>If you want to import just a chunk of markdown from clipboard, you can <p>If you want to import just a chunk of markdown from clipboard, you can
do it from editor block menu:</p> do it from editor block menu:</p>
<p> <p>
<img src="Markdown_markdown-inline-i.gif"> <img src="Markdown_markdown-inline-i.gif">
</p> </p>
<h3>File import</h3> <h3>File import</h3>
<p>You can also import Markdown files from files:</p> <p>You can also import Markdown files from files:</p>
<ul> <ul>
<li>single markdown file (with .md extension)</li> <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) <li>whole tree of markdown files (packaged into <a href="https://en.wikipedia.org/wiki/Tar_(computing)">.zip</a> archive)
<ul> <ul>
@@ -34,30 +19,30 @@
of markdown files into the ZIP file</li> of markdown files into the ZIP file</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<p>[[gifs/markdown-file-import.gif]]</p> <p>[[gifs/markdown-file-import.gif]]</p>
<p> <p>
<img src="Markdown_markdown-file-imp.gif"> <img src="Markdown_markdown-file-imp.gif">
</p> </p>
<h2>Export</h2> <h2>Export</h2>
<h3>Subtree export</h3> <h3>Subtree export</h3>
<p>You can export whole subtree to ZIP archive which will have directory <p>You can export whole subtree to ZIP archive which will have directory
structured modelled after subtree structure:</p> structured modelled after subtree structure:</p>
<p> <p>
<img src="Markdown_markdown-export-s.gif"> <img src="Markdown_markdown-export-s.gif">
</p> </p>
<h3>Single note export</h3> <h3>Single note export</h3>
<p>If you want to export just single note without its subtree, you can do <p>If you want to export just single note without its subtree, you can do
it from Note actions menu:</p> it from Note actions menu:</p>
<p> <p>
<img src="Markdown_markdown-export-n.gif"> <img src="Markdown_markdown-export-n.gif">
</p> </p>
<h3>Exporting protected notes</h3> <h3>Exporting protected notes</h3>
<p>If you want to export protected notes, enter a protected session first! <p>If you want to export protected notes, enter a protected session first!
This will export the notes in an unencrypted form, so if you reimport into This will export the notes in an unencrypted form, so if you reimport into
Trilium, make sure to re-protect these notes.</p> Trilium, make sure to re-protect these notes.</p>
<h2>Supported syntax</h2> <h2>Supported syntax</h2>
<ul> <ul>
<li><a href="https://github.github.com/gfm/">GitHub-Flavored Markdown</a> is <li><a href="https://github.github.com/gfm/">GitHub-Flavored Markdown</a> is
the main syntax that Trilium is following.</li> the main syntax that Trilium is following.</li>
<li>Images are supported. When exporting, images are usually kept in the basic <li>Images are supported. When exporting, images are usually kept in the basic
@@ -72,9 +57,4 @@
title and display its icon) are embedded as HTML in order to preserve the title and display its icon) are embedded as HTML in order to preserve the
information on import.</li> information on import.</li>
<li>Math equations are supported using <code>$</code> and <code>$$</code> syntaxes.</li> <li>Math equations are supported using <code>$</code> and <code>$$</code> syntaxes.</li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,22 +1,7 @@
<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">
<link rel="stylesheet" href="../../../style.css">
<base target="_parent">
<title data-trilium-title>OneNote</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>OneNote</h1>
<div class="ck-content">
<p><strong>This page describes a method to migrate via EverNote Legacy, but this app is no longer available/working.</strong>
</p>
<h2>Prep Onenote notes for best compatibility</h2>
<ul>
<li>Remove Onenote Tags and replace with Emoji if possible (Onenote Tags will <li>Remove Onenote Tags and replace with Emoji if possible (Onenote Tags will
get imported into trilium as an image which clutters the Trilium tree somewhat)</li> get imported into trilium as an image which clutters the Trilium tree somewhat)</li>
<li>Make sure to use Onenote headings where applicable (These will be carried <li>Make sure to use Onenote headings where applicable (These will be carried
@@ -28,27 +13,27 @@
<li>Make sure numbered lists don't have unusual spaces between items in the <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 list (Sometimes the numbered list will start at 1 again in Trilum if there
is an extra space in the list in OneNote).</li> is an extra space in the list in OneNote).</li>
</ul> </ul>
<h2>Migration Procedure</h2> <h2>Migration Procedure</h2>
<h3>Import into Evernote from OneNote:</h3> <h3>Import into Evernote from OneNote:</h3>
<ul> <ul>
<li>Install <a href="https://web.archive.org/web/20230327110646/https://help.evernote.com/hc/en-us/articles/360052560314">Evernote Legacy</a>. <li>Install <a href="https://web.archive.org/web/20230327110646/https://help.evernote.com/hc/en-us/articles/360052560314">Evernote Legacy</a>.
Current versions of Evernote do not have this functionality. (Requires Current versions of Evernote do not have this functionality. (Requires
Evernote account, but import works without internet connection - be sure Evernote account, but import works without internet connection - be sure
to NOT sync notes to Evernote!).</li> to NOT sync notes to Evernote!).</li>
<li>In evernote navigate to File &gt; Import &gt; Onenote &gt; Notebook &gt; <li>In evernote navigate to File &gt; Import &gt; Onenote &gt; Notebook &gt;
Section &gt; OK</li> Section &gt; OK</li>
</ul> </ul>
<p>If exporting all sections at a time, they will not be grouped in folders <p>If exporting all sections at a time, they will not be grouped in folders
- they will all be added to a single folder, but the order will be kept, - they will all be added to a single folder, but the order will be kept,
so you can re-group into folders after importing to Trilium</p> so you can re-group into folders after importing to Trilium</p>
<h3>Export from Evernote</h3> <h3>Export from Evernote</h3>
<ul> <ul>
<li>Right click on the created notebook in Evernote and choose "Export Notes…"</li> <li>Right click on the created notebook in Evernote and choose "Export Notes…"</li>
<li>Use the default export format of .enex</li> <li>Use the default export format of .enex</li>
</ul> </ul>
<h3>Cleanup enex file (optional)</h3> <h3>Cleanup enex file (optional)</h3>
<ul> <ul>
<li> <li>
<p>If the Onenote header (that is at the top of each Onenote page) is not <p>If the Onenote header (that is at the top of each Onenote page) is not
desired, you can use the following regex to remove them in a text editor desired, you can use the following regex to remove them in a text editor
@@ -56,17 +41,17 @@
<p>Find (using regex): <code>.&lt;div.*&gt;&lt;h1</code> Replace with: <code>&lt;h1</code> <p>Find (using regex): <code>.&lt;div.*&gt;&lt;h1</code> Replace with: <code>&lt;h1</code>
</p> </p>
</li> </li>
</ul> </ul>
<h3>Import into Trilium</h3> <h3>Import into Trilium</h3>
<ul> <ul>
<li>In Trilium, right click on the root node and choose Import (all default <li>In Trilium, right click on the root node and choose Import (all default
options should be fine).</li> options should be fine).</li>
<li>Select the .enex file exported from Evernote</li> <li>Select the .enex file exported from Evernote</li>
<li>Be patient. Large .enex files may take a few minutes to process</li> <li>Be patient. Large .enex files may take a few minutes to process</li>
<li>Repeat import for each .enex file</li> <li>Repeat import for each .enex file</li>
</ul> </ul>
<h2>Other importing notes:</h2> <h2>Other importing notes:</h2>
<ul> <ul>
<li>Centered text in Onenote will be left-justified after importing into Trilium</li> <li>Centered text in Onenote will be left-justified after importing into Trilium</li>
<li>Internal onenote links will obviously be broken, but the link still exists <li>Internal onenote links will obviously be broken, but the link still exists
so you can do a search in Trilium to find all onenote:// links and then so you can do a search in Trilium to find all onenote:// links and then
@@ -91,9 +76,4 @@
<li>Some links will be disabled (not clickable) when importing from enex.</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 <li>Files, screenshots, and attachments are all preserved (This is the only
one-note export option that seems to preserve all of these).</li> one-note export option that seems to preserve all of these).</li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,27 +1,12 @@
<html> <p>This is supposed to be a complete list of keyboard shortcuts. Note that
<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>Keyboard Shortcuts</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Keyboard Shortcuts</h1>
<div class="ck-content">
<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 some of these may work only in certain contexts (e.g. in tree pane or note
editor).</p> editor).</p>
<p>It is also possible to configure most keyboard shortcuts in Options -&gt; <p>It is also possible to configure most keyboard shortcuts in Options -&gt;
Keyboard shortcuts. Using <code>global:</code> prefix, you can assign a shortcut Keyboard shortcuts. Using <code>global:</code> prefix, you can assign a shortcut
which will work even without Trilium being in focus (requires app restart which will work even without Trilium being in focus (requires app restart
to take effect).</p> to take effect).</p>
<h2>Note navigation</h2> <h2>Note navigation</h2>
<ul> <ul>
<li><kbd><span></span></kbd>, <kbd><span></span></kbd> - go up/down in the <li><kbd><span></span></kbd>, <kbd><span></span></kbd> - go up/down in the
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 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
also from editor</li> also from editor</li>
@@ -41,29 +26,29 @@
will then bring you to the note on which it is defined. Note that Trilium will then bring you to the note on which it is defined. Note that Trilium
must be reloaded/restarted (<kbd>Ctrl</kbd> + <kbd>R</kbd> ) for changes to must be reloaded/restarted (<kbd>Ctrl</kbd> + <kbd>R</kbd> ) for changes to
be in effect.</li> be in effect.</li>
</ul> </ul>
<p>See demo of some of these features in <a href="#root/_help_MMiBEQljMQh2">note navigation</a>.</p> <p>See demo of some of these features in <a href="#root/_help_MMiBEQljMQh2">note navigation</a>.</p>
<h2>Tabs</h2> <h2>Tabs</h2>
<ul> <ul>
<li><kbd>Ctrl</kbd> + <kbd>🖱 Left click</kbd> - (or middle mouse click) on note <li><kbd>Ctrl</kbd> + <kbd>🖱 Left click</kbd> - (or middle mouse click) on note
link opens note in a new tab</li> link opens note in a new tab</li>
</ul> </ul>
<p>Only in desktop (electron build):</p> <p>Only in desktop (electron build):</p>
<ul> <ul>
<li><kbd>Ctrl</kbd> + <kbd>T</kbd> - opens empty tab</li> <li><kbd>Ctrl</kbd> + <kbd>T</kbd> - opens empty tab</li>
<li><kbd>Ctrl</kbd> + <kbd>W</kbd> - closes active tab</li> <li><kbd>Ctrl</kbd> + <kbd>W</kbd> - closes active tab</li>
<li><kbd>Ctrl</kbd> + <kbd>Tab</kbd> - activates next tab</li> <li><kbd>Ctrl</kbd> + <kbd>Tab</kbd> - activates next tab</li>
<li><kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Tab</kbd> - activates previous tab</li> <li><kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Tab</kbd> - activates previous tab</li>
</ul> </ul>
<h2>Creating notes</h2> <h2>Creating notes</h2>
<ul> <ul>
<li><code>CTRL+O</code> - creates new note after the current note</li> <li><code>CTRL+O</code> - creates new note after the current note</li>
<li><code>CTRL+P</code> - creates new sub-note into current note</li> <li><code>CTRL+P</code> - creates new sub-note into current note</li>
<li><code>F2</code> - edit <a href="#root/_help_MMiBEQljMQh2">prefix</a> of current <li><code>F2</code> - edit <a href="#root/_help_MMiBEQljMQh2">prefix</a> of current
note clone</li> note clone</li>
</ul> </ul>
<h2>Moving / cloning notes</h2> <h2>Moving / cloning notes</h2>
<ul> <ul>
<li><kbd>Ctrl</kbd> + <kbd><span></span></kbd> , Ctrl + <kbd><span></span></kbd> - <li><kbd>Ctrl</kbd> + <kbd><span></span></kbd> , Ctrl + <kbd><span></span></kbd> -
move note up/down in the note list</li> move note up/down in the note list</li>
<li><kbd>Ctrl</kbd> + <kbd><span></span></kbd> - move note up in the note tree</li> <li><kbd>Ctrl</kbd> + <kbd><span></span></kbd> - move note up in the note tree</li>
@@ -83,9 +68,9 @@
note (which is either move or clone depending on whether it was copied note (which is either move or clone depending on whether it was copied
or cut into clipboard)</li> or cut into clipboard)</li>
<li><kbd>Del</kbd> - delete note / sub-tree</li> <li><kbd>Del</kbd> - delete note / sub-tree</li>
</ul> </ul>
<h2>Editing notes</h2> <h2>Editing notes</h2>
<ul> <ul>
<li>For&nbsp;<a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes, <li>For&nbsp;<a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;notes,
refer to&nbsp;<a class="reference-link" href="#root/_help_oiVPnW8QfnvS">Keyboard shortcuts</a>&nbsp;and&nbsp; refer to&nbsp;<a class="reference-link" href="#root/_help_oiVPnW8QfnvS">Keyboard shortcuts</a>&nbsp;and&nbsp;
<a <a
@@ -104,19 +89,19 @@
<li><kbd>Alt</kbd>+<kbd>T</kbd> - inserts current date and time at caret position</li> <li><kbd>Alt</kbd>+<kbd>T</kbd> - inserts current date and time at caret position</li>
<li><kbd>Ctrl</kbd>+<kbd>.</kbd> - jump away from the editor to tree pane and <li><kbd>Ctrl</kbd>+<kbd>.</kbd> - jump away from the editor to tree pane and
scroll to current note</li> scroll to current note</li>
</ul> </ul>
<h2>Runtime shortcuts</h2> <h2>Runtime shortcuts</h2>
<p>These are hooked in Electron to be similar to native browser keyboard <p>These are hooked in Electron to be similar to native browser keyboard
shortcuts.</p> shortcuts.</p>
<ul> <ul>
<li><kbd>F5</kbd>, <kbd>Ctrl</kbd>-<kbd>R</kbd> - reloads Trilium front-end</li> <li><kbd>F5</kbd>, <kbd>Ctrl</kbd>-<kbd>R</kbd> - reloads Trilium front-end</li>
<li><kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>I</kbd> - show developer tools</li> <li><kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>I</kbd> - show developer tools</li>
<li><kbd>Ctrl</kbd>+<kbd>F</kbd> - show search dialog</li> <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 out</li>
<li><kbd>Ctrl</kbd>+<kbd>=</kbd> - zoom in</li> <li><kbd>Ctrl</kbd>+<kbd>=</kbd> - zoom in</li>
</ul> </ul>
<h2>Other</h2> <h2>Other</h2>
<ul> <ul>
<li><kbd>Alt</kbd>+<kbd>O</kbd> - show SQL console (use only if you know what <li><kbd>Alt</kbd>+<kbd>O</kbd> - show SQL console (use only if you know what
you're doing)</li> you're doing)</li>
<li><kbd>Alt</kbd>+<kbd>M</kbd> - distraction-free mode - display only note <li><kbd>Alt</kbd>+<kbd>M</kbd> - distraction-free mode - display only note
@@ -125,9 +110,4 @@
<li><kbd>Ctrl</kbd> + <kbd>S</kbd> - toggle <a href="#root/_help_eIg8jdvaoNNd">search</a> form <li><kbd>Ctrl</kbd> + <kbd>S</kbd> - toggle <a href="#root/_help_eIg8jdvaoNNd">search</a> form
in tree pane</li> in tree pane</li>
<li><kbd>Alt</kbd> +<kbd>A</kbd> - show note <a href="#root/_help_zEY4DaJG4YT5">attributes</a> dialog</li> <li><kbd>Alt</kbd> +<kbd>A</kbd> - show note <a href="#root/_help_zEY4DaJG4YT5">attributes</a> dialog</li>
</ul> </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>
<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>Bookmarks</title>
</head>
<body>
<div class="content">
<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"> <img src="Bookmarks_bookmarks.gif">
</p> </p>
<h2>Bookmark folder</h2> <h2>Bookmark folder</h2>
<p>Space in the left panel is limited, and you might want to bookmark many <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> items. One possible solution is to bookmark a folder, so it shows its children:</p>
<p> <p>
<img src="Bookmarks_bookmark-folder.png"> <img src="Bookmarks_bookmark-folder.png">
</p> </p>
<p>To do this, you need to add a <code>#bookmarkFolder</code> label to the <p>To do this, you need to add a <code>#bookmarkFolder</code> label to the
note.</p> note.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,53 +1,33 @@
<html> <figure class="image image-style-align-center">
<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>Jump to Note</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Jump to Note</h1>
<div class="ck-content">
<figure class="image image-style-align-center">
<img style="aspect-ratio:991/403;" src="Jump to Note_image.png" width="991" <img style="aspect-ratio:991/403;" src="Jump to Note_image.png" width="991"
height="403"> height="403">
</figure> </figure>
<p>The <em>Jump to Note</em> function allows easy navigation between notes <p>The <em>Jump to Note</em> function allows easy navigation between notes
by searching for their title. In addition to that, it can also trigger by searching for their title. In addition to that, it can also trigger
a full search or create notes.</p> a full search or create notes.</p>
<h2>Entering jump to note</h2> <h2>Entering jump to note</h2>
<ul> <ul>
<li>In the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>, <li>In the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>,
press press
<img src="1_Jump to Note_image.png">button.</li> <img src="1_Jump to Note_image.png">button.</li>
<li>Using the keyboard, press <kbd>Ctrl</kbd> + <kbd>J</kbd>.</li> <li>Using the keyboard, press <kbd>Ctrl</kbd> + <kbd>J</kbd>.</li>
</ul> </ul>
<h2>Recent notes</h2> <h2>Recent notes</h2>
<p>Jump to note also has the ability to show the list of recently viewed <p>Jump to note also has the ability to show the list of recently viewed
/ edited notes and quickly jump to it.</p> / edited notes and quickly jump to it.</p>
<p>To access this functionality, click on <code>Jump to</code> button on the <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 top. By default, (when nothing is entered into autocomplete), this dialog
will show the list of recent notes.</p> will show the list of recent notes.</p>
<p>Alternatively you can click on the "time" icon on the right.</p> <p>Alternatively you can click on the "time" icon on the right.</p>
<img src="Jump to Note_recent-notes.gif" <img src="Jump to Note_recent-notes.gif"
width="812" height="585"> 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
<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>Note Hoisting</title>
</head>
<body>
<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 "zoom into") a specific note and its subtree by hiding all parent and sibling
notes. Demo:</p> notes. Demo:</p>
<p> <p>
<img src="Note Hoisting_note-hoistin.gif"> <img src="Note Hoisting_note-hoistin.gif">
</p> </p>
<p>In addition to showing only this subtree, this also narrows both full <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 text search and <a href="#root/_help_MMiBEQljMQh2">“jump to note”</a> to
just notes present in hoisted subtree.</p> just notes present in hoisted subtree.</p>
<p>See also <a href="#root/_help_9sRHySam5fXb">Workspace</a> which extends <p>See also <a href="#root/_help_9sRHySam5fXb">Workspace</a> which extends
this feature.</p> 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
<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>Note Navigation</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Note Navigation</h1>
<div class="ck-content">
<p>One of the Trilium's goals is to provide fast and comfortable navigation
between notes.</p> between notes.</p>
<h2>Backwards and forward</h2> <h2>Backwards and forward</h2>
<p>You can use alt-left and alt-right to move back and forward in history <p>You can use alt-left and alt-right to move back and forward in history
of viewed pages.</p> of viewed pages.</p>
<p>This works identically to browser backwards / forwards, it's actually <p>This works identically to browser backwards / forwards, it's actually
using built-in browser support for this.</p> using built-in browser support for this.</p>
<p> <p>
<img src="Note Navigation_image.png"> <img src="Note Navigation_image.png">
</p> </p>
<h2>Jump to note</h2> <h2>Jump to note</h2>
<p>This is useful to quickly find and view arbitrary notes - click on <code>Jump to</code> button <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 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> 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 <p>See&nbsp;<a class="reference-link" href="#root/_help_F1r9QtzQLZqm">Jump to Note</a>&nbsp;for
more information.</p> more information.</p>
</div>
</div>
</body>
</html>

View File

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

View File

@@ -1,25 +1,10 @@
<html> <figure class="image image_resized" style="width:100%;">
<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>Search in note</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Search in note</h1>
<div class="ck-content">
<figure class="image image_resized" style="width:100%;">
<img style="aspect-ratio:898/93;" src="Search in note_image.png" width="898" <img style="aspect-ratio:898/93;" src="Search in note_image.png" width="898"
height="93"> height="93">
</figure> </figure>
<p>Local search allows you to search within the currently displayed note.&nbsp;</p> <p>Local search allows you to search within the currently displayed note.&nbsp;</p>
<h2>Alternatives</h2> <h2>Alternatives</h2>
<ul> <ul>
<li>Pressing Ctrl+F while in a browser while not focused in a&nbsp;<a class="reference-link" <li>Pressing Ctrl+F while in a browser while not focused in a&nbsp;<a class="reference-link"
href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;or a&nbsp;<a class="reference-link" 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 href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note will trigger the browser's
@@ -27,16 +12,16 @@
<li>Pressing Ctrl+F in a&nbsp;<a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;note <li>Pressing Ctrl+F in a&nbsp;<a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;note
will reveal&nbsp;<a class="reference-link" href="#root/_help_MI26XDLSAlCD">CKEditor</a>'s will reveal&nbsp;<a class="reference-link" href="#root/_help_MI26XDLSAlCD">CKEditor</a>'s
search functionality.</li> search functionality.</li>
</ul> </ul>
<h2>Accessing the search</h2> <h2>Accessing the search</h2>
<ul> <ul>
<li>On desktop, press<kbd>Ctrl</kbd> + <kbd>F</kbd> <li>On desktop, press<kbd>Ctrl</kbd> + <kbd>F</kbd>
</li> </li>
<li>From the&nbsp;<a class="reference-link" href="#root/_help_8YBEPzcpUgxw">Note buttons</a>, <li>From the&nbsp;<a class="reference-link" href="#root/_help_8YBEPzcpUgxw">Note buttons</a>,
look for the context menu and select <em>Search in note</em>.</li> look for the context menu and select <em>Search in note</em>.</li>
</ul> </ul>
<h2>Interaction</h2> <h2>Interaction</h2>
<ul> <ul>
<li>Finding: <li>Finding:
<ul> <ul>
<li>Fill in the <em>Find in text…</em> with the text to search for.</li> <li>Fill in the <em>Find in text…</em> with the text to search for.</li>
@@ -60,9 +45,4 @@
searching for <code>Java</code> will not match <code>JavaScript</code>).</li> searching for <code>Java</code> will not match <code>JavaScript</code>).</li>
</ul> </ul>
</li> </li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,39 +1,24 @@
<html> <figure class="image">
<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>Search</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Search</h1>
<div class="ck-content">
<figure class="image">
<img style="aspect-ratio:987/725;" src="Search_image.png" width="987" <img style="aspect-ratio:987/725;" src="Search_image.png" width="987"
height="725"> height="725">
</figure> </figure>
<p>Note search enables you to find notes by searching for text in the title, <p>Note search enables you to find notes by searching for text in the title,
content, or <a href="#root/_help_zEY4DaJG4YT5">attributes</a> of the notes. content, or <a href="#root/_help_zEY4DaJG4YT5">attributes</a> of the notes.
You also have the option to save your searches, which will create a special You also have the option to save your searches, which will create a special
search note which is visible on your navigation tree and contains the search search note which is visible on your navigation tree and contains the search
results as sub-items.</p> results as sub-items.</p>
<h2>Accessing the search</h2> <h2>Accessing the search</h2>
<ul> <ul>
<li>From the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>, <li>From the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>,
look for the dedicated search button.</li> 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 <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 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> press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>S</kbd>.</li>
</ul> </ul>
<h2>Interaction</h2> <h2>Interaction</h2>
<p>To search for notes, click on the magnifying glass icon on the toolbar <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> or press the keyboard <a href="#root/_help_A9Oc6YKKc65v">shortcut</a>.</p>
<ol> <ol>
<li>Set the text to search for in the <em>Search string</em> field. <li>Set the text to search for in the <em>Search string</em> field.
<ol> <ol>
<li>Apart from searching for words ad-literam, there is also the possibility <li>Apart from searching for words ad-literam, there is also the possibility
@@ -59,16 +44,16 @@
least one action has been added (as described in the section below).</li> 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. <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> For more information, see&nbsp;<a class="reference-link" href="#root/_help_m523cpzocqaD">Saved Search</a>.</li>
</ol> </ol>
<h2>Search options</h2> <h2>Search options</h2>
<p>Click on which search option to apply from the Add search option section.</p> <p>Click on which search option to apply from the Add search option section.</p>
<ul> <ul>
<li>For each search option selected, the search configuration will update <li>For each search option selected, the search configuration will update
to reveal the entry. Each search option will have its own configuration.</li> 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> <li>To remove a search option, simply press the X button to the right of it.</li>
</ul> </ul>
<p>The options available are:</p> <p>The options available are:</p>
<ol> <ol>
<li>Search script <li>Search script
<ol> <ol>
<li>This feature allows writing a&nbsp;<a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note <li>This feature allows writing a&nbsp;<a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note
@@ -130,9 +115,9 @@
actions.</li> actions.</li>
</ol> </ol>
</li> </li>
</ol> </ol>
<h3>Simple Note Search Examples</h3> <h3>Simple Note Search Examples</h3>
<ul> <ul>
<li><code>rings tolkien</code>: Full-text search to find notes containing <li><code>rings tolkien</code>: Full-text search to find notes containing
both "rings" and "tolkien".</li> both "rings" and "tolkien".</li>
<li><code>"The Lord of the Rings" Tolkien</code>: Full-text search where "The <li><code>"The Lord of the Rings" Tolkien</code>: Full-text search where "The
@@ -161,9 +146,9 @@
<li><code>#publicationYear %= '19[0-9]{2}'</code>: Use the '%=' operator to <li><code>#publicationYear %= '19[0-9]{2}'</code>: Use the '%=' operator to
match a regular expression (regex). This feature has been available since match a regular expression (regex). This feature has been available since
Trilium 0.52.</li> Trilium 0.52.</li>
</ul> </ul>
<h3>Advanced Use Cases</h3> <h3>Advanced Use Cases</h3>
<ul> <ul>
<li><code>~author.relations.son.title = 'Christopher Tolkien'</code>: Search <li><code>~author.relations.son.title = 'Christopher Tolkien'</code>: Search
for notes with an "author" relation to a note that has a "son" relation 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: to "Christopher Tolkien". This can be modeled with the following note structure:
@@ -202,62 +187,57 @@
named "Books".</li> named "Books".</li>
<li><code>note.children.title = 'sub-note'</code>: Find notes with a child <li><code>note.children.title = 'sub-note'</code>: Find notes with a child
named "sub-note".</li> named "sub-note".</li>
</ul> </ul>
<h3>Search with Note Properties</h3> <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>, <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> 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> <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> <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> <p>This example will:</p>
<ol> <ol>
<li>Find notes with the author label "Tolkien".</li> <li>Find notes with the author label "Tolkien".</li>
<li>Order the results by <code>publicationDate</code> in descending order.</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 <li>Use <code>note.title</code> as a secondary ordering if publication dates
are equal.</li> are equal.</li>
<li>Limit the results to the first 10 notes.</li> <li>Limit the results to the first 10 notes.</li>
</ol> </ol>
<h3>Negation</h3> <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>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> <p>This query finds all book notes not in the "Tolkien" subtree.</p>
<h2>Under the Hood</h2> <h2>Under the Hood</h2>
<h3>Label and Relation Shortcuts</h3> <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>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>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 <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">
<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>Similar Notes</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Similar Notes</h1>
<div class="ck-content">
<figure class="image image-style-align-center">
<img style="aspect-ratio:1626/540;" src="Similar Notes_image.png" width="1626" <img style="aspect-ratio:1626/540;" src="Similar Notes_image.png" width="1626"
height="540"> height="540">
</figure> </figure>
<p>The Similar Notes feature tries to identify notes that relate to the current <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 note by looking at the content of the notes, their relationships, as well
as the date they were created.</p> as the date they were created.</p>
<p>To access the list of similar notes, press the “Similar Notes” tab in <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> the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.</p>
<h2>Interaction</h2> <h2>Interaction</h2>
<ul> <ul>
<li>Hover over a note to see a short preview of the note.</li> <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>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> <li><kbd>Ctrl</kbd> + click a note to open it in a separate tab.</li>
</ul> </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
<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>Tree Concepts</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Tree Concepts</h1>
<div class="ck-content">
<p>This page explains the basic concepts related to the tree structure of
notes in TriliumNext.</p> notes in TriliumNext.</p>
<h2>Note</h2> <h2>Note</h2>
<p>A note is the central entity in TriliumNext. For more details, see <a href="#root/_help_BFs8mudNFgCS">Note</a>.</p> <p>A note is the central entity in TriliumNext. For more details, see <a href="#root/_help_BFs8mudNFgCS">Note</a>.</p>
<h2>Branch</h2> <h2>Branch</h2>
<p>A branch describes the placement of a note within the note tree. Essentially, <p>A branch describes the placement of a note within the note tree. Essentially,
it is a tuple of <code>parentNoteId</code> and <code>noteId</code>, indicating it is a tuple of <code>parentNoteId</code> and <code>noteId</code>, indicating
that the given note is placed as a child under the specified parent note.</p> that the given note is placed as a child under the specified parent note.</p>
<p>Each note can have multiple branches, meaning any note can be placed in <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 " multiple locations within the tree. This concept is referred to as "
<a <a
href="#root/_help_IakOLONlIfGI">cloning</a>."</p> href="#root/_help_IakOLONlIfGI">cloning</a>."</p>
<h2>Prefix</h2> <h2>Prefix</h2>
<p>A prefix is a branch-specific title modifier for a note. If you place <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 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> 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 <p>To edit a prefix, right-click on the note in the tree pane and select
"Edit branch prefix."</p> "Edit branch prefix."</p>
<p>The prefix is not part of the note itself and is not encrypted when the <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 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 remain visible in the tree for easier navigation, even when the note is
protected.</p> protected.</p>
<h2>Subtree</h2> <h2>Subtree</h2>
<p>A subtree consists of a particular note (the subtree root) and all its <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 children and descendants. Some operations, such as exporting, work on entire
subtrees.</p> subtrees.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,25 +1,10 @@
<html> <p>Workspace is a concept built up on top of <a href="#root/_help_OR8WJ7Iz9K4U">note hoisting</a>.
<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>Workspaces</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Workspaces</h1>
<div class="ck-content">
<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. It is based on the idea that a user has several distinct spheres of interest.
An example might be "Personal" and "Work", these two spheres are quite An example might be "Personal" and "Work", these two spheres are quite
distinct and don't interact together. When I focus on Work, I don't really distinct and don't interact together. When I focus on Work, I don't really
care about personal notes.</p> care about personal notes.</p>
<p>So far workspace consists of these features:</p> <p>So far workspace consists of these features:</p>
<ul> <ul>
<li> <li>
<p><a href="#root/_help_OR8WJ7Iz9K4U">note hoisting</a> - you can "zoom" into <p><a href="#root/_help_OR8WJ7Iz9K4U">note hoisting</a> - you can "zoom" into
a workspace subtree to focus only on the relevant notes</p> a workspace subtree to focus only on the relevant notes</p>
@@ -36,9 +21,9 @@
<img src="Workspaces_image.png"> <img src="Workspaces_image.png">
</p> </p>
</li> </li>
</ul> </ul>
<h3>Configuration</h3> <h3>Configuration</h3>
<figure class="table"> <figure class="table">
<table> <table>
<thead> <thead>
<tr> <tr>
@@ -92,9 +77,4 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
</figure> </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
<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>Notes</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Notes</h1>
<div class="ck-content">
<p>Note is a central entity in Trilium. Main attributes of note are title
and content.</p> and content.</p>
<h3>Note types</h3> <h3>Note types</h3>
<p>The main note type is a rich-text note type called&nbsp;<a class="reference-link" <p>The main note type is a rich-text note type called&nbsp;<a class="reference-link"
href="#root/_help_iPIMuisry3hd">Text</a>. For diagrams and drawing there href="#root/_help_iPIMuisry3hd">Text</a>. For diagrams and drawing there
is&nbsp;<a class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a>&nbsp;and&nbsp; is&nbsp;<a class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a>&nbsp;and&nbsp;
<a <a
class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>.</p> class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>.</p>
<p>There are also more complex note types such as&nbsp;<a class="reference-link" <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" href="#root/_help_m523cpzocqaD">Saved Search</a>,&nbsp;<a class="reference-link"
href="#root/_help_HcABDtFCkbFN">Render Note</a>&nbsp;that usually go hand-in-hand href="#root/_help_HcABDtFCkbFN">Render Note</a>&nbsp;that usually go hand-in-hand
with&nbsp;<a class="reference-link" href="#root/_help_CdNpE2pqjmI6">Scripting</a>.</p> with&nbsp;<a class="reference-link" href="#root/_help_CdNpE2pqjmI6">Scripting</a>.</p>
<p>In Trilium there's no specific "folder" note type. Any note can have children <p>In Trilium there's no specific "folder" note type. Any note can have children
and thus be a folder.</p> and thus be a folder.</p>
<h3>Root note</h3> <h3>Root note</h3>
<p>There's one special note called "root note" which is root of the note <p>There's one special note called "root note" which is root of the note
tree. All other notes are placed below it in the structure.</p> tree. All other notes are placed below it in the structure.</p>
<h3>Tree structure</h3> <h3>Tree structure</h3>
<p>Importantly, note itself doesn't carry information on its placement in <p>Importantly, note itself doesn't carry information on its placement in
note tree. See&nbsp;<a class="reference-link" href="#root/_help_IakOLONlIfGI">Cloning Notes</a>&nbsp;for note tree. See&nbsp;<a class="reference-link" href="#root/_help_IakOLONlIfGI">Cloning Notes</a>&nbsp;for
details.</p> details.</p>
<p>Tree structure of notes can resemble file system - but compared to that <p>Tree structure of notes can resemble file system - but compared to that
notes in Trilium can act as both file and directory - meaning that note notes in Trilium can act as both file and directory - meaning that note
can both have its own content and have children. "Leaf note" is a note can both have its own content and have children. "Leaf note" is a note
which doesn't have any children.</p> which doesn't have any children.</p>
<h3>Deleting / undeleting notes</h3> <h3>Deleting / undeleting notes</h3>
<p>When you delete a note in Trilium, it is actually only marked for deletion <p>When you delete a note in Trilium, it is actually only marked for deletion
(soft-delete) - the actual content, title, attributes etc. are not deleted, (soft-delete) - the actual content, title, attributes etc. are not deleted,
only hidden.</p> only hidden.</p>
<p>Within (by default) 7 days, it is possible to undelete these soft-deleted <p>Within (by default) 7 days, it is possible to undelete these soft-deleted
notes - open the&nbsp;<a class="reference-link" href="#root/_help_r5JGHN99bVKn">Recent Changes</a>&nbsp;dialog, notes - open the&nbsp;<a class="reference-link" href="#root/_help_r5JGHN99bVKn">Recent Changes</a>&nbsp;dialog,
and you will see a list of all modified notes including the deleted ones. and you will see a list of all modified notes including the deleted ones.
Notes available for undeletion have a link to do so. This is kind of "trash Notes available for undeletion have a link to do so. This is kind of "trash
can" functionality known from e.g. Windows.</p> can" functionality known from e.g. Windows.</p>
<p>Clicking an undelete will recover the note, it's content and attributes <p>Clicking an undelete will recover the note, it's content and attributes
- note should be just as before being deleted. This action will also undelete - note should be just as before being deleted. This action will also undelete
note's children which have been deleted in the same action.</p> 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 <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 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 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> - 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, <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 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" anymore to recover them (unless you restore a&nbsp;<a class="reference-link"
href="#root/_help_ODY7qQn5m2FT">Backup</a>).</p> href="#root/_help_ODY7qQn5m2FT">Backup</a>).</p>
<h2>See also</h2> <h2>See also</h2>
<ul> <ul>
<li><a class="reference-link" href="#root/_help_CoFPLs3dRlXc">Read-Only Notes</a> <li><a class="reference-link" href="#root/_help_CoFPLs3dRlXc">Read-Only Notes</a>
</li> </li>
</ul> </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> -
<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>Archived Notes</title>
</head>
<body>
<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> 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 <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> 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 <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> 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 <p>You can control whether archived notes are displayed in the note tree
with a setting:</p> with a setting:</p>
<p> <p>
<img src="Archived Notes_hide-archiv.png"> <img src="Archived Notes_hide-archiv.png">
</p> </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
<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>Attachments</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Attachments</h1>
<div class="ck-content">
<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 or more attachments, which can be either images or files. These attachments
can be displayed or linked within the note that owns them.</p> can be displayed or linked within the note that owns them.</p>
<p>This can be especially useful to include dependencies for your <a href="#root/_help_CdNpE2pqjmI6">scripts</a>. <p>This can be especially useful to include dependencies for your <a href="#root/_help_CdNpE2pqjmI6">scripts</a>.
The&nbsp;<a class="reference-link" href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a>&nbsp;shows The&nbsp;<a class="reference-link" href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a>&nbsp;shows
how to use <a href="https://chartjs.org/">chartjs</a> which is attached to how to use <a href="https://chartjs.org/">chartjs</a> which is attached to
the script note.</p> the script note.</p>
<p>Each note exclusively owns its attachments, meaning attachments cannot <p>Each note exclusively owns its attachments, meaning attachments cannot
be shared or linked from one note to another. If an attachment link is 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 copied to a different note, the attachment itself is duplicated, and the
copies are managed independently thereafter.</p> copies are managed independently thereafter.</p>
<p>Attachments, especially image files, are the recommended method for embedding <p>Attachments, especially image files, are the recommended method for embedding
visuals in notes. It is important to link image attachments within the visuals in notes. It is important to link image attachments within the
text of the owning note; otherwise, they will be automatically deleted text of the owning note; otherwise, they will be automatically deleted
after a configurable timeout period if not referenced.</p> after a configurable timeout period if not referenced.</p>
<h2>Converting notes to attachments</h2> <h2>Converting notes to attachments</h2>
<p><a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>&nbsp;notes <p><a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>&nbsp;notes
can be easily converted to attachments of the parent note.</p> can be easily converted to attachments of the parent note.</p>
<p>To do so:</p> <p>To do so:</p>
<ul> <ul>
<li>For a single note, press the context menu from the&nbsp;<a class="reference-link" <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> 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" <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 → href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>, right click → Advanced →
Convert to attachment.</li> Convert to attachment.</li>
</ul> </ul>
<h2>Attachment previews</h2> <h2>Attachment previews</h2>
<p>Attachments share the same content preview for images, videos, PDFs, etc. <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 as the&nbsp;<a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>&nbsp;note
type.</p> type.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,28 +1,13 @@
<html> <h2>Motivation</h2>
<p>Trilium's core feature is the ability to structure your notes into hierarchical
<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>Cloning Notes</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Cloning Notes</h1>
<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> tree-like structure.</p>
<p>It is expected then that you'll have an elaborate and deep note hierarchy <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 - each subtree will represent a more refined and specialized view of your
knowledge base.</p> knowledge base.</p>
<p>This is a pretty powerful approach, but it also carries a hidden assumption <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 that each "subtopic" is "owned" by one parent. I'll illustrate this with
an example - let's say my basic structure is this:</p> an example - let's say my basic structure is this:</p>
<ul> <ul>
<li>Technology <li>Technology
<ul> <ul>
<li>Programming <li>Programming
@@ -39,25 +24,25 @@
</li> </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 <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 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 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 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 seems it belongs to both of these, I can't (and don't want to) choose one
over the other.</p> over the other.</p>
<h2>Solution</h2> <h2>Solution</h2>
<p>The solution to the problem shown above is to allow notes to have multiple <p>The solution to the problem shown above is to allow notes to have multiple
parents.</p> parents.</p>
<p>I call these "clones", but that is a bit misleading - there's no original <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> 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 <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 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 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, hierarchy. So changing it in one category changes it in all the others,
because they're all the same note.</p> because they're all the same note.</p>
<p>Here's the final structure with cloning:</p> <p>Here's the final structure with cloning:</p>
<ul> <ul>
<li>Technology <li>Technology
<ul> <ul>
<li>Programming <li>Programming
@@ -87,26 +72,26 @@
</li> </li>
</ul> </ul>
</li> </li>
</ul> </ul>
<p>So now the "Bash" subtree appears on multiple locations in the hierarchy. <p>So now the "Bash" subtree appears on multiple locations in the hierarchy.
Both the Bash subtrees are the same and contain the same sub-categories Both the Bash subtrees are the same and contain the same sub-categories
and notes.</p> and notes.</p>
<h3>Demo</h3> <h3>Demo</h3>
<p> <p>
<img src="Cloning Notes_create-clone.gif"> <img src="Cloning Notes_create-clone.gif">
</p> </p>
<p>In the demo, you can see how a clone can be created using the context <p>In the demo, you can see how a clone can be created using the context
menu. It's possible to do this also using the Add Link dialog or with <kbd>Ctrl</kbd>+<kbd>C</kbd> and <kbd>Ctrl</kbd>+<kbd>V</kbd> 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>
<a <a
href="#root/_help_A9Oc6YKKc65v">keyboard shortcuts</a>.</p> href="#root/_help_A9Oc6YKKc65v">keyboard shortcuts</a>.</p>
<p>As seen in the demo, you can view the list of all available clones in <p>As seen in the demo, you can view the list of all available clones in
the "Note Paths" tab in the Ribbon toolbar.</p> the "Note Paths" tab in the Ribbon toolbar.</p>
<p>Titles of cloned notes in the tree view have an asterisk to the right <p>Titles of cloned notes in the tree view have an asterisk to the right
to easily see that the note is also placed into some other location.</p> to easily see that the note is also placed into some other location.</p>
<h2>Deleting notes/clones</h2> <h2>Deleting notes/clones</h2>
<p>With clones, it might not be immediately obvious how deleting works.</p> <p>With clones, it might not be immediately obvious how deleting works.</p>
<p>If you try to delete a note, it works like this:</p> <p>If you try to delete a note, it works like this:</p>
<ol> <ol>
<li>if the note has multiple clones, delete just this clone and leave the <li>if the note has multiple clones, delete just this clone and leave the
actual note (and its other clones) as it is.</li> actual note (and its other clones) as it is.</li>
<li>if this note doesn't have any other clones, delete the note <li>if this note doesn't have any other clones, delete the note
@@ -114,9 +99,4 @@
<li>Run the whole process starting with 1. on all note's children notes</li> <li>Run the whole process starting with 1. on all note's children notes</li>
</ul> </ul>
</li> </li>
</ol> </ol>
</div>
</div>
</body>
</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"
<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>Branch prefix</title>
</head>
<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; href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;via a process called&nbsp;
<a <a
class="reference-link" href="#root/_help_IakOLONlIfGI">Cloning Notes</a>, it's recommended to choose a generalized name that 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> 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", <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 which is shown before the note name in the tree and as such provides a
specific kind of context.</p> specific kind of context.</p>
<p>The prefix is location-specific, so it's displayed only in the note tree.</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>
<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>Export as PDF</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Export as PDF</h1>
<div class="ck-content">
<p>
<img src="Export as PDF_image.png"> <img src="Export as PDF_image.png">
</p> </p>
<p>Screenshot of the note contextual menu indicating the “Export as PDF” <p>Screenshot of the note contextual menu indicating the “Export as PDF”
option.</p> option.</p>
<p>On the desktop application of Trilium it is possible to export a note <p>On the desktop application of Trilium it is possible to export a note
as PDF. On the server or PWA (mobile), the option is not available due as PDF. On the server or PWA (mobile), the option is not available due
to technical constraints and it will be hidden.</p> to technical constraints and it will be hidden.</p>
<p>To print a note, select the <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> <img src="1_Export as PDF_image.png">button to the right of the note and select <em>Export as PDF</em>.</p>
<p>Afterwards you will be prompted to select where to save the PDF file.</p> <p>Afterwards you will be prompted to select where to save the PDF file.</p>
<h2>Automatic opening of the file</h2> <h2>Automatic opening of the file</h2>
<p>When the PDF is exported, it is automatically opened with the system default <p>When the PDF is exported, it is automatically opened with the system default
application for easy preview.</p> application for easy preview.</p>
<p>Note that if you are using Linux with the GNOME desktop environment, sometimes <p>Note that if you are using Linux with the GNOME desktop environment, sometimes
the default application might seem incorrect (such as opening in GIMP). the default application might seem incorrect (such as opening in GIMP).
This is because it uses Gnome's “Recommended applications” list.</p> This is because it uses Gnome's “Recommended applications” list.</p>
<p>To solve this, you can change the recommended application for PDFs via <p>To solve this, you can change the recommended application for PDFs via
this command line. First, list the available applications via <code>gio mime application/pdf</code> and this command line. First, list the available applications via <code>gio mime application/pdf</code> and
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> 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>
<h2>Reporting issues with the rendering</h2> <h2>Reporting issues with the rendering</h2>
<p>Should you encounter any visual issues in the resulting PDF file (e.g. <p>Should you encounter any visual issues in the resulting PDF file (e.g.
a table does not fit properly, there is cut off text, etc.) feel free to a table does not fit properly, there is cut off text, etc.) feel free to
<a <a
href="#root/_help_wy8So3yZZlH9">report the issue</a>. In this case, it's best to offer a sample note (click href="#root/_help_wy8So3yZZlH9">report the issue</a>. In this case, it's best to offer a sample note (click
on the on the
<img src="1_Export as PDF_image.png">button, select Export note → This note and all of its descendants → HTML <img src="1_Export as PDF_image.png">button, select Export note → This note and all of its descendants → HTML
in ZIP archive). Make sure not to accidentally leak any personal information.</p> in ZIP archive). Make sure not to accidentally leak any personal information.</p>
<h2>Landscape mode</h2> <h2>Landscape mode</h2>
<p>When exporting to PDF, there are no customizable settings such as page <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 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 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> to it (see&nbsp;<a class="reference-link" href="#root/_help_zEY4DaJG4YT5">Attributes</a>).</p>
<h2>Page size</h2> <h2>Page size</h2>
<p>By default, the resulting PDF will be in Letter format. It is possible <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, 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> 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> <h2>Keyboard shortcut</h2>
<p>It's possible to trigger the export to PDF from the keyboard by going <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" 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 href="#root/_help_4TIF1oA4VQRO">Options</a>&nbsp;and assigning a key combination
for the <code>exportAsPdf</code> action.</p> 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
<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>Note Icons</title>
</head>
<body>
<div class="content">
<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 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 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 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 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> icon next to the title to bring up a chooser gallery:</p>
<p> <p>
<img src="Note Icons_note-icon-chang.png" alt="change note icon"> <img src="Note Icons_note-icon-chang.png" alt="change note icon">
</p> </p>
<p> <p>
<img src="Note Icons_note-icon-galle.png" alt="note icon gallery"> <img src="Note Icons_note-icon-galle.png" alt="note icon gallery">
</p> </p>
</div>
</div>
</body>
</html>

View File

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

View File

@@ -1,26 +1,11 @@
<html> <figure class="image image-style-align-center">
<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>Calendar View</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Calendar View</h1>
<div class="ck-content">
<figure class="image image-style-align-center">
<img style="aspect-ratio:767/606;" src="4_Calendar View_image.png" width="767" <img style="aspect-ratio:767/606;" src="4_Calendar View_image.png" width="767"
height="606"> height="606">
</figure> </figure>
<p>The Calendar view of Book notes will display each child note in a calendar <p>The Calendar view of Book notes will display each child note in a calendar
that has a start date and optionally an end date, as an event.</p> that has a start date and optionally an end date, as an event.</p>
<p>The Calendar view has multiple display modes:</p> <p>The Calendar view has multiple display modes:</p>
<ul> <ul>
<li>Week view, where all the 7 days of the week (or 5 if the weekends are <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 hidden) are displayed in columns. This mode allows entering and displaying
time-specific events, not just all-day events.</li> time-specific events, not just all-day events.</li>
@@ -28,11 +13,11 @@
be inserted. Both time-specific events and all-day events are listed.</li> 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> <li>Year view, which displays the entire year for quick reference.</li>
<li>List view, which displays all the events of a given month in sequence.</li> <li>List view, which displays all the events of a given month in sequence.</li>
</ul> </ul>
<p>Unlike other Book view types, the Calendar view also allows some kind <p>Unlike other Book view types, the Calendar view also allows some kind
of interaction, such as moving events around as well as creating new ones.</p> of interaction, such as moving events around as well as creating new ones.</p>
<h2>Creating a calendar</h2> <h2>Creating a calendar</h2>
<figure class="table"> <figure class="table">
<table> <table>
<thead> <thead>
<tr> <tr>
@@ -61,10 +46,10 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
</figure> </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>
@@ -79,9 +64,9 @@
</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">
@@ -92,10 +77,10 @@
<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>
@@ -141,13 +126,13 @@
</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>
@@ -380,8 +365,3 @@
</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")
<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>Note Revisions</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Note Revisions</h1>
<div class="ck-content">
<p>Trilium supports seamless versioning of notes by storing snapshots ("revisions")
of notes at regular intervals.</p> of notes at regular intervals.</p>
<h2>Note Revisions Snapshot Interval</h2> <h2>Note Revisions Snapshot Interval</h2>
<p>Time interval of taking note snapshot is configurable in the Options -&gt; <p>Time interval of taking note snapshot is configurable in the Options -&gt;
Other dialog. This provides a tradeoff between more revisions and more Other dialog. This provides a tradeoff between more revisions and more
data to store.</p> data to store.</p>
<p>To turn off note versioning for a particular note (or subtree), add <code>disableVersioning</code> <p>To turn off note versioning for a particular note (or subtree), add <code>disableVersioning</code>
<a <a
href="#root/_help_zEY4DaJG4YT5">label</a>to the note.</p> href="#root/_help_zEY4DaJG4YT5">label</a>to the note.</p>
<h2>Note Revision Snapshots Limit</h2> <h2>Note Revision Snapshots Limit</h2>
<p>The limit on the number of note snapshots can be configured in the Options <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 -&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 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 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> 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 <p>The note limit will not take effect immediately; it will only apply when
the note is modified.</p> the note is modified.</p>
<p>You can click the <strong>Erase excess revision snapshots now</strong> button <p>You can click the <strong>Erase excess revision snapshots now</strong> button
to apply the changes immediately.</p> to apply the changes immediately.</p>
<p>Note revisions can be accessed through the button on the right of ribbon <p>Note revisions can be accessed through the button on the right of ribbon
toolbar.</p> toolbar.</p>
<p> <p>
<img src="Note Revisions_note-revisi.png"> <img src="Note Revisions_note-revisi.png">
</p> </p>
</div>
</div>
</body>
</html>

View File

@@ -1,23 +1,8 @@
<html> <p>Trilium is designed to store a wide variety of data, including sensitive
<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>Protected Notes</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Protected Notes</h1>
<div class="ck-content">
<p>Trilium is designed to store a wide variety of data, including sensitive
information such as personal journals, credentials, or confidential documents. information such as personal journals, credentials, or confidential documents.
To safeguard this type of content, Trilium offers the option to protect To safeguard this type of content, Trilium offers the option to protect
notes, which involves the following measures:</p> notes, which involves the following measures:</p>
<ul> <ul>
<li><strong>Encryption:</strong> Protected notes are encrypted using a key <li><strong>Encryption:</strong> Protected notes are encrypted using a key
derived from your password. This ensures that without the correct password, derived from your password. This ensures that without the correct password,
protected notes remain indecipherable. Even if someone gains access to protected notes remain indecipherable. Even if someone gains access to
@@ -40,35 +25,35 @@
of their content and partially their integrity. While unauthorized users of their content and partially their integrity. While unauthorized users
cannot read or edit protected notes, they can still delete or move them cannot read or edit protected notes, they can still delete or move them
outside of the protected session.</li> outside of the protected session.</li>
</ul> </ul>
<h2>Using Protected Notes</h2> <h2>Using Protected Notes</h2>
<p>By default, notes are unprotected. To protect a note, simply click on <p>By default, notes are unprotected. To protect a note, simply click on
the shield icon next to the note's title, as shown here:</p> the shield icon next to the note's title, as shown here:</p>
<p> <p>
<img src="Protected Notes_protecting.gif" alt="example animation of unlocking protected notes"> <img src="Protected Notes_protecting.gif" alt="example animation of unlocking protected notes">
</p> </p>
<h2>What is Encrypted?</h2> <h2>What is Encrypted?</h2>
<p>Trilium encrypts the data within protected notes but not their metadata. <p>Trilium encrypts the data within protected notes but not their metadata.
Specifically:</p> Specifically:</p>
<p><strong>Encrypted:</strong> <p><strong>Encrypted:</strong>
</p> </p>
<ul> <ul>
<li>Note title</li> <li>Note title</li>
<li>Note content</li> <li>Note content</li>
<li>Images</li> <li>Images</li>
<li>File attachments</li> <li>File attachments</li>
</ul> </ul>
<p><strong>Not encrypted:</strong> <p><strong>Not encrypted:</strong>
</p> </p>
<ul> <ul>
<li>Note structure (i.e., it remains visible that there are protected notes)</li> <li>Note structure (i.e., it remains visible that there are protected notes)</li>
<li>Metadata, such as the last modified date</li> <li>Metadata, such as the last modified date</li>
<li><a href="#root/_help_zEY4DaJG4YT5">Attributes</a> <li><a href="#root/_help_zEY4DaJG4YT5">Attributes</a>
</li> </li>
</ul> </ul>
<h2>Encryption Details</h2> <h2>Encryption Details</h2>
<p>The following steps outline how encryption and decryption work in Trilium:</p> <p>The following steps outline how encryption and decryption work in Trilium:</p>
<ol> <ol>
<li>The user enters a password.</li> <li>The user enters a password.</li>
<li>The password is passed through the <a href="https://en.wikipedia.org/wiki/Scrypt">scrypt</a> algorithm <li>The password is passed through the <a href="https://en.wikipedia.org/wiki/Scrypt">scrypt</a> algorithm
along with a "password verification" <a href="https://en.wikipedia.org/wiki/Salt_(cryptography)">salt</a> to along with a "password verification" <a href="https://en.wikipedia.org/wiki/Salt_(cryptography)">salt</a> to
@@ -97,13 +82,8 @@
with the cipher text.</li> with the cipher text.</li>
</ul> </ul>
</li> </li>
</ol> </ol>
<h2>Sharing Protected Notes</h2> <h2>Sharing Protected Notes</h2>
<p>Protected notes cannot be shared in the same way as regular notes. Their <p>Protected notes cannot be shared in the same way as regular notes. Their
encryption ensures that only authorized users with the correct password encryption ensures that only authorized users with the correct password
can access them.</p> can access them.</p>
</div>
</div>
</body>
</html>

View File

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

View File

@@ -1,46 +1,31 @@
<html> <h2>Manual sorting</h2>
<p>You can sort notes by right-clicking the parent note in the&nbsp;<a class="reference-link"
<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>Sorting Notes</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Sorting Notes</h1>
<div class="ck-content">
<h2>Manual sorting</h2>
<p>You can sort notes by right-clicking the parent note in the&nbsp;<a class="reference-link"
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and selecting Advanced href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and selecting Advanced
-&gt; Sort notes by ... This will sort existing notes, but will not automatically -&gt; Sort notes by ... This will sort existing notes, but will not automatically
sort future notes added to this parent note.</p> sort future notes added to this parent note.</p>
<p>The sorting dialog allows:</p> <p>The sorting dialog allows:</p>
<ul> <ul>
<li>Sorting by title, creation or modification date.</li> <li>Sorting by title, creation or modification date.</li>
<li>Changing sorting direction can also be adjusted (ascending or descending).</li> <li>Changing sorting direction can also be adjusted (ascending or descending).</li>
<li>Ensuring folders are displayed at the top.</li> <li>Ensuring folders are displayed at the top.</li>
<li>Natural sort, based on the sorting rules of a particular language.</li> <li>Natural sort, based on the sorting rules of a particular language.</li>
</ul> </ul>
<h2>Automatic/Permanent Sorting</h2> <h2>Automatic/Permanent Sorting</h2>
<p>Child notes can be automatically sorted by attaching specific <a href="#root/_help_zEY4DaJG4YT5">labels</a> to <p>Child notes can be automatically sorted by attaching specific <a href="#root/_help_zEY4DaJG4YT5">labels</a> to
the parent note:</p> the parent note:</p>
<ul> <ul>
<li><code>#sorted</code>: Enables sorting. Can optionally include the name <li><code>#sorted</code>: Enables sorting. Can optionally include the name
of the note's property/label for sorting criteria (details below).</li> of the note's property/label for sorting criteria (details below).</li>
<li><code>#sortDirection</code>: By default, sorting is ascending. Set this <li><code>#sortDirection</code>: By default, sorting is ascending. Set this
to <code>desc</code> to sort in descending order.</li> to <code>desc</code> to sort in descending order.</li>
<li><code>#sortFoldersFirst</code>: Notes with children will be sorted to <li><code>#sortFoldersFirst</code>: Notes with children will be sorted to
the top.</li> the top.</li>
</ul> </ul>
<p>Sorting is done by comparing note properties or specific labels on child <p>Sorting is done by comparing note properties or specific labels on child
notes. There are four sorting levels, with the first having the highest notes. There are four sorting levels, with the first having the highest
priority. Lower priority levels are applied only if higher priority comparisons priority. Lower priority levels are applied only if higher priority comparisons
result in equality.</p> result in equality.</p>
<ol> <ol>
<li><strong>Top Label Sorting</strong>: Child notes with the <code>#top</code> label <li><strong>Top Label Sorting</strong>: Child notes with the <code>#top</code> label
will appear at the top of the folder.</li> will appear at the top of the folder.</li>
<li><strong>Bottom Label Sorting</strong>: (Introduced in Trilium 0.62) Child <li><strong>Bottom Label Sorting</strong>: (Introduced in Trilium 0.62) Child
@@ -62,11 +47,6 @@
</li> </li>
<li><strong>Alphabetical Sorting</strong>: Used as a last resort when other <li><strong>Alphabetical Sorting</strong>: Used as a last resort when other
criteria result in equality.</li> criteria result in equality.</li>
</ol> </ol>
<p>All comparisons are made string-wise (e.g., "1" &lt; "2" or "2020-10-10" <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> &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>
<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>Themes</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Themes</h1>
<div class="ck-content">
<h2>Default Themes</h2>
<p>Trilium comes with a couple pre-installed color themes, with the default
being a light theme. To switch to a dark theme or any other available theme, being a light theme. To switch to a dark theme or any other available theme,
navigate to the Options menu (accessible via the app icon in the top-left navigate to the Options menu (accessible via the app icon in the top-left
corner), select the Appearance tab, and choose your preferred theme.</p> corner), select the Appearance tab, and choose your preferred theme.</p>
<p> <p>
<img src="Themes_dark-theme.png" alt="Dark Theme"> <img src="Themes_dark-theme.png" alt="Dark Theme">
</p> </p>
<h2>Creating Custom CSS Themes</h2> <h2>Creating Custom CSS Themes</h2>
<p>Trilium supports custom user themes, allowing you to personalize the application's <p>Trilium supports custom user themes, allowing you to personalize the application's
appearance. To create a custom theme, follow these steps:</p> appearance. To create a custom theme, follow these steps:</p>
<ol> <ol>
<li><strong>Create a CSS Code Note</strong>: Start by creating a new <a href="#root/_help_6f9hih2hXXZk">code note</a> with <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> 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 <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> 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 <li><strong>Define Your Styles</strong>: Write your custom CSS within the
note. Below is an example of a custom theme:</li> note. Below is an example of a custom theme:</li>
</ol><pre><code class="language-text-x-trilium-auto">@font-face { </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,23 +1,8 @@
<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">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../../style.css">
<base target="_parent">
<title data-trilium-title>Theme Gallery</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Theme Gallery</h1>
<div class="ck-content">
<p>These are user-created themes which were made publicly available:</p>
<h2>Legacy Themes</h2>
<p>These themes may or may not be compatible with the latest versions of
TriliumNext and are based on the original/legacy theme.</p> TriliumNext and are based on the original/legacy theme.</p>
<figure class="table"> <figure class="table">
<table> <table>
<thead> <thead>
<tr> <tr>
@@ -134,13 +119,8 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
</figure> </figure>
<aside class="admonition tip"> <aside class="admonition tip">
<p>If you would like to add your theme to this gallery, write a new post <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> in <a href="https://github.com/TriliumNext/Notes/discussions/categories/show-and-tell">👐 Show and tell</a>.</p>
</aside> </aside>
</div>
</div>
</body>
</html>

View File

@@ -1,28 +1,13 @@
<html> <figure class="image image-style-align-center">
<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>Floating buttons</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Floating buttons</h1>
<div class="ck-content">
<figure class="image image-style-align-center">
<img style="aspect-ratio:893/144;" src="Floating buttons_image.png" width="893" <img style="aspect-ratio:893/144;" src="Floating buttons_image.png" width="893"
height="144"> height="144">
</figure> </figure>
<p>Depending on the current note, a panel will appear near the top-right <p>Depending on the current note, a panel will appear near the top-right
of the note, right underneath the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>. of the note, right underneath the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.
These buttons offer additional interaction that is specific to that particular These buttons offer additional interaction that is specific to that particular
note.</p> note.</p>
<p>For example:</p> <p>For example:</p>
<ul> <ul>
<li>For&nbsp;<a class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>&nbsp;and&nbsp; <li>For&nbsp;<a class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>&nbsp;and&nbsp;
<a <a
class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a>, there are buttons to download the SVG representation of the class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a>, there are buttons to download the SVG representation of the
@@ -30,12 +15,7 @@
href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;note.</li> href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;note.</li>
<li>For <a href="#root/_help_CoFPLs3dRlXc">read-only notes</a>, there is a <li>For <a href="#root/_help_CoFPLs3dRlXc">read-only notes</a>, there is a
button to temporarily edit the note for quick modifications.</li> button to temporarily edit the note for quick modifications.</li>
</ul> </ul>
<h2>Interaction</h2> <h2>Interaction</h2>
<p>The floating button area can be collapsed by pressing the two right arrows <p>The floating button area can be collapsed by pressing the two right arrows
at the end of the section.</p> 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
<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>Global menu</title>
</head>
<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> on top) and offers access to some more advanced options.</p>
<p> <p>
<img src="Global menu_image.png"> <img src="Global menu_image.png">
</p> </p>
<h2>Accessing the global menu</h2> <h2>Accessing the global menu</h2>
<p>See&nbsp;<a href="#root/_help_x0JgW8UqGXvq">Vertical and horizontal layout</a>&nbsp;since <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 the position of the global menu is changed based on which layout has been
selected.</p> selected.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,74 +1,59 @@
<html> <h2>Position of the Launch bar</h2>
<p>Depending on the layout selected, the launcher bar will either be on the
<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>Launch Bar</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Launch Bar</h1>
<div class="ck-content">
<h2>Position of the Launch bar</h2>
<p>Depending on the layout selected, the launcher bar will either be on the
left side of the screen with buttons displayed vertically or at the top left side of the screen with buttons displayed vertically or at the top
of the screen. See&nbsp;<a href="#root/_help_x0JgW8UqGXvq">Vertical and horizontal layout</a>&nbsp;for of the screen. See&nbsp;<a href="#root/_help_x0JgW8UqGXvq">Vertical and horizontal layout</a>&nbsp;for
more information.</p> more information.</p>
<h2>Terminology</h2> <h2>Terminology</h2>
<ul> <ul>
<li><strong>Launcher</strong>: a button that can be (or is) displayed on the <li><strong>Launcher</strong>: a button that can be (or is) displayed on the
launch bar.</li> launch bar.</li>
<li><strong>Available Launcher</strong>: a launcher that is not displayed <li><strong>Available Launcher</strong>: a launcher that is not displayed
on the launch bar, but can be added.</li> on the launch bar, but can be added.</li>
<li><strong>Visible Launcher</strong>: a launcher that is currently displayed <li><strong>Visible Launcher</strong>: a launcher that is currently displayed
on the launch bar.</li> on the launch bar.</li>
</ul> </ul>
<h2>Configuring the Launch bar</h2> <h2>Configuring the Launch bar</h2>
<p>There are two ways to configure the launch bar:</p> <p>There are two ways to configure the launch bar:</p>
<ul> <ul>
<li>Right click in the empty space between launchers on the launch bar and <li>Right click in the empty space between launchers on the launch bar and
select <em>Configure Launchbar.</em> select <em>Configure Launchbar.</em>
</li> </li>
<li>Click on the&nbsp;<a href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and <li>Click on the&nbsp;<a href="#root/_help_x3i7MxGccDuM">Global menu</a>&nbsp;and
select <em>Configure Launchbar</em>.</li> select <em>Configure Launchbar</em>.</li>
</ul> </ul>
<p>This will open a new tab with the&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;listing <p>This will open a new tab with the&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;listing
the launchers.</p> the launchers.</p>
<p> <p>
<img src="Launch Bar_image.png"> <img src="Launch Bar_image.png">
</p> </p>
<p>Expanding <em>Available Launchers</em> section will show the list of launchers <p>Expanding <em>Available Launchers</em> section will show the list of launchers
that are not displayed on the launch bar. The <em>Visible Launchers</em> will that are not displayed on the launch bar. The <em>Visible Launchers</em> will
show the ones that are currently displayed.</p> show the ones that are currently displayed.</p>
<h3>Adding/removing and reordering launchers</h3> <h3>Adding/removing and reordering launchers</h3>
<p>To display a new launcher in the launch bar, first look for it in the <em>Available Launchers</em> section. <p>To display a new launcher in the launch bar, first look for it in the <em>Available Launchers</em> section.
Then right click it and select <em>Move to visible launchers</em>. It is Then right click it and select <em>Move to visible launchers</em>. It is
also possible to drag and drop the item manually.</p> also possible to drag and drop the item manually.</p>
<p>Similarly, to remove it from the launch bar, simply look for it in <em>Visible Launchers</em> then <p>Similarly, to remove it from the launch bar, simply look for it in <em>Visible Launchers</em> then
right click it and select <em>Move to available launchers</em> or use drag-and-drop.</p> right click it and select <em>Move to available launchers</em> or use drag-and-drop.</p>
<p>Drag-and-drop the items in the&nbsp;tree&nbsp;in order to change their <p>Drag-and-drop the items in the&nbsp;tree&nbsp;in order to change their
order. See&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;for order. See&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;for
more interaction options, including using keyboard shortcuts.</p> more interaction options, including using keyboard shortcuts.</p>
<h2>Customizing the launcher</h2> <h2>Customizing the launcher</h2>
<ul> <ul>
<li>The icon of a launcher can be changed just like a normal note. See&nbsp; <li>The icon of a launcher can be changed just like a normal note. See&nbsp;
<a <a
href="#root/_help_p9kXRFAkwN4o">Note Icons</a>&nbsp;for more information.</li> href="#root/_help_p9kXRFAkwN4o">Note Icons</a>&nbsp;for more information.</li>
<li>The title of the launcher can also be changed.</li> <li>The title of the launcher can also be changed.</li>
</ul> </ul>
<h3>Resetting</h3> <h3>Resetting</h3>
<p>Resetting allows restoring the original configuration of Trilium for the <p>Resetting allows restoring the original configuration of Trilium for the
launcher bar, or for a portion of it. Simply right click a launcher (or launcher bar, or for a portion of it. Simply right click a launcher (or
even the entire <em>Launch Bar</em> section) and select <em>Reset</em> to bring even the entire <em>Launch Bar</em> section) and select <em>Reset</em> to bring
it back to the original state.</p> it back to the original state.</p>
<h3>Creating new launchers / types of launchers</h3> <h3>Creating new launchers / types of launchers</h3>
<p>Right click either the <em>Available launchers</em> or <em>Visible launchers</em> sections <p>Right click either the <em>Available launchers</em> or <em>Visible launchers</em> sections
and select one of the options:</p> and select one of the options:</p>
<ol> <ol>
<li> <li>
<p><strong>Note Launcher</strong> <p><strong>Note Launcher</strong>
<br>A note launcher will simply navigate to a specified note.</p> <br>A note launcher will simply navigate to a specified note.</p>
@@ -102,10 +87,5 @@
<br>Launchers that create some distance between other launchers for better <br>Launchers that create some distance between other launchers for better
visual distinction.</p> visual distinction.</p>
</li> </li>
</ol> </ol>
<p>Launchers are configured via predefined&nbsp;<a href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>.</p> <p>Launchers are configured via predefined&nbsp;<a href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,35 +1,20 @@
<html> <p>This page explains how to manipulate the note tree in TriliumNext, focusing
<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>Note Tree</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Note Tree</h1>
<div class="ck-content">
<p>This page explains how to manipulate the note tree in TriliumNext, focusing
on moving notes.</p> on moving notes.</p>
<p> <p>
<img src="Note Tree_image.png"> <img src="Note Tree_image.png">
</p> </p>
<h2>Drag and Drop</h2> <h2>Drag and Drop</h2>
<p> <p>
<img src="Note Tree_drag-and-drop.gif" alt="Drag and drop example"> <img src="Note Tree_drag-and-drop.gif" alt="Drag and drop example">
</p> </p>
<p>You can easily rearrange the note tree by dragging and dropping notes, <p>You can easily rearrange the note tree by dragging and dropping notes,
as demonstrated in the example above.</p> as demonstrated in the example above.</p>
<h2>Keyboard Manipulation</h2> <h2>Keyboard Manipulation</h2>
<p> <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 <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
<a <a
href="#root/_help_A9Oc6YKKc65v">shortcuts</a>:</p> href="#root/_help_A9Oc6YKKc65v">shortcuts</a>:</p>
<ul> <ul>
<li><kbd>Ctrl</kbd> + <kbd><span></span></kbd> and <kbd>Ctrl</kbd> +<kbd><span></span></kbd>: <li><kbd>Ctrl</kbd> + <kbd><span></span></kbd> and <kbd>Ctrl</kbd> +<kbd><span></span></kbd>:
Move the note up or down in the order.</li> Move the note up or down in the order.</li>
<li><kbd>Ctrl</kbd>+<kbd><span></span></kbd>: Move the note up in the hierarchy <li><kbd>Ctrl</kbd>+<kbd><span></span></kbd>: Move the note up in the hierarchy
@@ -39,16 +24,11 @@
understood through a demo or hands-on experience).</li> understood through a demo or hands-on experience).</li>
<li><kbd><span></span></kbd> and <kbd><span></span></kbd>: Expand and collapse <li><kbd><span></span></kbd> and <kbd><span></span></kbd>: Expand and collapse
a sub-tree.</li> a sub-tree.</li>
</ul> </ul>
<h2>Context Menu</h2> <h2>Context Menu</h2>
<p>You can also move notes using the familiar cut and paste functions available <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> ( in the context menu, or with the associated keyboard <a href="#root/_help_A9Oc6YKKc65v">shortcuts</a>: <code>CTRL-C</code> (
<a <a
href="#root/_help_IakOLONlIfGI">copy</a>), <kbd>Ctrl</kbd> + <kbd>X</kbd> (cut) and <kbd>Ctrl</kbd> + <kbd>V</kbd> (paste).</p> 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 <p>See&nbsp;<a class="reference-link" href="#root/_help_YtSN43OrfzaA">Note Tree Menu</a>&nbsp;for
more information.</p> 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>
<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>Multiple selection</title>
</head>
<body>
<div class="content">
<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 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> the start and the end note will be selected as well.</p>
<p> <p>
<img src="Multiple selection_image.png"> <img src="Multiple selection_image.png">
</p> </p>
<p>In the right-click menu, operations such as Cut, Copy, Move to, Clone <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 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 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 them. The rest of the options will not be available and will appear disabled
in the menu.</p> in the menu.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,28 +1,13 @@
<html> <figure class="image image-style-align-right">
<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>Note tree contextual menu</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Note tree contextual menu</h1>
<div class="ck-content">
<figure class="image image-style-align-right">
<img style="aspect-ratio:372/760;" src="1_Note tree contextual menu_.png" <img style="aspect-ratio:372/760;" src="1_Note tree contextual menu_.png"
width="372" height="760"> width="372" height="760">
</figure> </figure>
<p>The <em>note tree menu</em> can be accessed by right-clicking in the&nbsp; <p>The <em>note tree menu</em> can be accessed by right-clicking in the&nbsp;
<a <a
class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</p> class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</p>
<h2>Interaction</h2> <h2>Interaction</h2>
<p>The contextual menu can operate:</p> <p>The contextual menu can operate:</p>
<ul> <ul>
<li>On a single note, by right clicking it in the note tree.</li> <li>On a single note, by right clicking it in the note tree.</li>
<li>On multiple notes, by selecting them first. See&nbsp;<a class="reference-link" <li>On multiple notes, by selecting them first. See&nbsp;<a class="reference-link"
href="#root/_help_yTjUdsOi4CIE">Multiple selection</a>&nbsp;on how to do href="#root/_help_yTjUdsOi4CIE">Multiple selection</a>&nbsp;on how to do
@@ -33,13 +18,13 @@
or not.</li> or not.</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<h2>Available options</h2> <h2>Available options</h2>
<aside class="admonition note"> <aside class="admonition note">
<p>When multiple notes are selected, only a subset of notes will be active. <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> The ones that do support multiple notes will mention this in the list below.</p>
</aside> </aside>
<ul> <ul>
<li><strong>Open in a new tab</strong> <li><strong>Open in a new tab</strong>
<ul> <ul>
<li>Will open a single note in a new <a href="#root/_help_3seOhtN8uLIY">tab</a>.</li> <li>Will open a single note in a new <a href="#root/_help_3seOhtN8uLIY">tab</a>.</li>
@@ -158,17 +143,17 @@
it preconfigured to only look into this note and its descendants (the <em>Ancestor</em> field).</li> it preconfigured to only look into this note and its descendants (the <em>Ancestor</em> field).</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<h2>Advanced options</h2> <h2>Advanced options</h2>
<figure class="image image-style-align-right"> <figure class="image image-style-align-right">
<img style="aspect-ratio:289/355;" src="Note tree contextual menu_.png" <img style="aspect-ratio:289/355;" src="Note tree contextual menu_.png"
width="289" height="355"> width="289" height="355">
</figure> </figure>
<p>The advanced options menu offers some of the less frequently used actions <p>The advanced options menu offers some of the less frequently used actions
for notes.</p> for notes.</p>
<p>To access these options, first look for the <em>Advanced</em> option in <p>To access these options, first look for the <em>Advanced</em> option in
the contextual menu to reveal a sub-menu with:</p> the contextual menu to reveal a sub-menu with:</p>
<ul> <ul>
<li><strong>Apply bulk actions</strong> <li><strong>Apply bulk actions</strong>
<ul> <ul>
<li>Opens the&nbsp;<a class="reference-link" href="#root/_help_ivYnonVFBxbQ">Bulk Actions</a>&nbsp;dialog, <li>Opens the&nbsp;<a class="reference-link" href="#root/_help_ivYnonVFBxbQ">Bulk Actions</a>&nbsp;dialog,
@@ -234,9 +219,4 @@
but filtered to only the changes related to this note or one of its descendants.</li> but filtered to only the changes related to this note or one of its descendants.</li>
</ul> </ul>
</li> </li>
</ul> </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
<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>Note buttons</title>
</head>
<body>
<div class="content">
<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: are a few more buttons:
<img src="Note buttons_image.png"> <img src="Note buttons_image.png">
</p> </p>
<ul> <ul>
<li>The Note Revisions button displays the&nbsp;<a href="#root/_help_vZWERwf8U3nx">Note Revisions</a>&nbsp;for <li>The Note Revisions button displays the&nbsp;<a href="#root/_help_vZWERwf8U3nx">Note Revisions</a>&nbsp;for
that particular note.</li> that particular note.</li>
<li>The contextual menu offers commands for the note or its subtree, such <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; as import, export, viewing the&nbsp;<a href="#root/_help_4FahAwuGTAwC">Note source code</a>&nbsp;or&nbsp;
<a <a
href="#root/_help_0vhv7lsOLy82">Attachments</a>.</li> href="#root/_help_0vhv7lsOLy82">Attachments</a>.</li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

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

View File

@@ -1,25 +1,10 @@
<html> <figure class="image image-style-align-center image_resized" style="width:50%;">
<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>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" <img style="aspect-ratio:988/572;" src="1_Recent Changes_image.png" width="988"
height="572"> height="572">
</figure> </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>.
@@ -33,9 +18,9 @@
<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
@@ -43,9 +28,4 @@
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,34 +1,19 @@
<html> <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>Ribbon</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Ribbon</h1>
<div class="ck-content">
<p>
<img src="Ribbon_image.png"> <img src="Ribbon_image.png">
</p> </p>
<p>The ribbon allows changing options, attributes and viewing information <p>The ribbon allows changing options, attributes and viewing information
about the current note.</p> about the current note.</p>
<h2>Settings</h2> <h2>Settings</h2>
<p>It is possible to change whether some ribbon items will be automatically <p>It is possible to change whether some ribbon items will be automatically
open when navigating to a new note. To do so, in&nbsp;<a href="#root/_help_4TIF1oA4VQRO">Settings</a>, open when navigating to a new note. To do so, in&nbsp;<a href="#root/_help_4TIF1oA4VQRO">Settings</a>,
go to <em>Appearance</em> and look for the <em>Ribbon widgets</em> section.</p> go to <em>Appearance</em> and look for the <em>Ribbon widgets</em> section.</p>
<h2>Formatting</h2> <h2>Formatting</h2>
<p>If you are using the <em>Fixed</em> formatting toolbar, all the formatting <p>If you are using the <em>Fixed</em> formatting toolbar, all the formatting
buttons for text notes will appear here. See&nbsp;<a href="#root/_help_nRhnJkTT8cPs">Formatting toolbar</a>&nbsp;for buttons for text notes will appear here. See&nbsp;<a href="#root/_help_nRhnJkTT8cPs">Formatting toolbar</a>&nbsp;for
more information.</p> more information.</p>
<h2>Tabs</h2> <h2>Tabs</h2>
<h3>Basic Properties</h3> <h3>Basic Properties</h3>
<ul> <ul>
<li><em><strong>Note type</strong></em> allows changing the <a href="#root/_help_KSZ04uQ2D1St">note type</a> of <li><em><strong>Note type</strong></em> allows changing the <a href="#root/_help_KSZ04uQ2D1St">note type</a> of
a note. a note.
<ul> <ul>
@@ -65,50 +50,45 @@
note, mostly useful for spell checking or right-to-left support. See&nbsp; note, mostly useful for spell checking or right-to-left support. See&nbsp;
<a <a
href="#root/_help_veGu4faJErEM">Content language &amp; Right-to-left support</a>&nbsp;for more information.</li> href="#root/_help_veGu4faJErEM">Content language &amp; Right-to-left support</a>&nbsp;for more information.</li>
</ul> </ul>
<h3>Owned Attributes</h3> <h3>Owned Attributes</h3>
<p>This section allows editing the labels and relations of a note. For more <p>This section allows editing the labels and relations of a note. For more
information, see&nbsp;<a href="#root/_help_zEY4DaJG4YT5">Attributes</a>.</p> information, see&nbsp;<a href="#root/_help_zEY4DaJG4YT5">Attributes</a>.</p>
<p>The plus button to the right offers a simplified way to insert labels <p>The plus button to the right offers a simplified way to insert labels
and relations, via a graphical input. From this menu, it's also possible and relations, via a graphical input. From this menu, it's also possible
to define label and relation definitions (see&nbsp;<a href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>).</p> to define label and relation definitions (see&nbsp;<a href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>).</p>
<h3>Inherited Attributes</h3> <h3>Inherited Attributes</h3>
<p>This section displays the attributes which are applied to this note via&nbsp; <p>This section displays the attributes which are applied to this note via&nbsp;
<a <a
href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>. It is not possible to alter the attributes href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance</a>. It is not possible to alter the attributes
from this section.</p> from this section.</p>
<h3>Note Paths</h3> <h3>Note Paths</h3>
<p>This section displays all the places where the current note has been cloned <p>This section displays all the places where the current note has been cloned
to. Here the current note can also be cloned to a new location (similar to. Here the current note can also be cloned to a new location (similar
to the&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>) See&nbsp; to the&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>) See&nbsp;
<a <a
href="#root/_help_IakOLONlIfGI">Cloning Notes</a>&nbsp;for more information.</p> href="#root/_help_IakOLONlIfGI">Cloning Notes</a>&nbsp;for more information.</p>
<h3>Note Map</h3> <h3>Note Map</h3>
<p>The note map displays all the relations of the current note to other notes, <p>The note map displays all the relations of the current note to other notes,
as well as the subtree structure. See&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;for as well as the subtree structure. See&nbsp;<a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;for
more information.</p> more information.</p>
<h3>Similar Notes</h3> <h3>Similar Notes</h3>
<p>This section lists all the notes that are similar to the current one. <p>This section lists all the notes that are similar to the current one.
See&nbsp;<a href="#root/_help_xWtq5NUHOwql">Similar Notes</a>&nbsp;for See&nbsp;<a href="#root/_help_xWtq5NUHOwql">Similar Notes</a>&nbsp;for
more information.</p> more information.</p>
<h3>Note Info</h3> <h3>Note Info</h3>
<p>This section displays information about the current note:</p> <p>This section displays information about the current note:</p>
<ul> <ul>
<li>The <a href="#root/_help_m1lbrzyKDaRB">internal ID</a> of the note.</li> <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 <li>The <a href="#root/_help_KSZ04uQ2D1St">type of the note</a>, as well as
its MIME type (used mostly for exporting notes).</li> its MIME type (used mostly for exporting notes).</li>
<li>The created and modification dates.</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>, <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> as well as its children count and size.</li>
</ul> </ul>
<h3>Edited notes</h3> <h3>Edited notes</h3>
<p>This section pops automatically when entering a <a href="#root/_help_l0tKav7yLHGF">day note</a> and <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> shows the notes that were edited that day.</p>
<p>It is possible to disable this behavior from settings, by going to&nbsp; <p>It is possible to disable this behavior from settings, by going to&nbsp;
<a <a
class="reference-link" href="#root/_hidden/_options/_help__optionsAppearance">Appearance</a>&nbsp;settings and looking for the <em>Ribbon widgets</em> section.</p> 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">
<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>Right Sidebar</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Right Sidebar</h1>
<div class="ck-content">
<figure class="image">
<img style="aspect-ratio:1036/372;" src="Right Sidebar_image.png" width="1036" <img style="aspect-ratio:1036/372;" src="Right Sidebar_image.png" width="1036"
height="372"> height="372">
</figure> </figure>
<p>The right sidebar displays specific content for the current note. Currently <p>The right sidebar displays specific content for the current note. Currently
it includes:</p> it includes:</p>
<ul> <ul>
<li><a class="reference-link" href="#root/_help_BFvAtE74rbP6">Table of contents</a> <li><a class="reference-link" href="#root/_help_BFvAtE74rbP6">Table of contents</a>
</li> </li>
<li><a class="reference-link" href="#root/_help_AxshuNRegLAv">Highlights list</a> <li><a class="reference-link" href="#root/_help_AxshuNRegLAv">Highlights list</a>
</li> </li>
</ul> </ul>
<p>Note that the sidebar is not displayed if it would otherwise be empty, <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> for example if there are too few headings and there are no highlights.</p>
<h2>Toggling the right sidebar</h2> <h2>Toggling the right sidebar</h2>
<p>The sidebar can be hidden or shown by using the <code>toggleRightPane</code> keyboard <p>The sidebar can be hidden or shown by using the <code>toggleRightPane</code> keyboard
shortcut, which is not assigned by default.</p> shortcut, which is not assigned by default.</p>
<h2>Relation with splits</h2> <h2>Relation with splits</h2>
<p>When using&nbsp;<a class="reference-link" href="#root/_help_luNhaphA37EO">Split View</a>, <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 there is a single sidebar serving all the open splits for the current
<a <a
href="#root/_help_3seOhtN8uLIY">tab</a>.</p> href="#root/_help_3seOhtN8uLIY">tab</a>.</p>
<p>Clicking on a note within the split view will display the sidebar for <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 that note. If there are no items to display in the sidebar, it will remain
closed.</p> closed.</p>
</div>
</div>
</body>
</html>

View File

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

View File

@@ -1,23 +1,8 @@
<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">
<base target="_parent">
<title data-trilium-title>Vertical and horizontal layout</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Vertical and horizontal layout</h1>
<div class="ck-content">
<h2>Layouts</h2>
<p>Trilium supports two different layouts, based on your preference.</p>
<h3>Vertical layout</h3>
<p>The vertical layout is Trilium's original layout:</p>
<ul>
<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_xYmIYSP6wE3F">Launch Bar</a>&nbsp;is
positioned on the left side of the screen, with buttons being laid out positioned on the left side of the screen, with buttons being laid out
vertically.</li> vertically.</li>
@@ -31,14 +16,14 @@
<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_x3i7MxGccDuM">Global menu</a>&nbsp;can
be accessed via the be accessed via the
<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> <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>
</ul> </ul>
<p> <p>
<img src="3_Vertical and horizontal la.png"> <img src="3_Vertical and horizontal la.png">
</p> </p>
<h3>Horizontal layout</h3> <h3>Horizontal layout</h3>
<p>The horizontal layout is a more traditional layout, since it bears similarity <p>The horizontal layout is a more traditional layout, since it bears similarity
with other applications. In this mode:</p> with other applications. In this mode:</p>
<ul> <ul>
<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_xYmIYSP6wE3F">Launch Bar</a>&nbsp;is
at the top of the screen, with the buttons laid horizontally.</li> at the top of the screen, with the buttons laid horizontally.</li>
<li>The tab bar is at the top of the screen, but now covers the entirety of <li>The tab bar is at the top of the screen, but now covers the entirety of
@@ -52,18 +37,13 @@
<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_x3i7MxGccDuM">Global menu</a>&nbsp;can
be accessed via the 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> <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> </ul>
<p> <p>
<img src="2_Vertical and horizontal la.png"> <img src="2_Vertical and horizontal la.png">
</p> </p>
<h2>Changing the layout</h2> <h2>Changing the layout</h2>
<p>Go to&nbsp;<a class="reference-link" href="#root/_help_4TIF1oA4VQRO">Options</a>&nbsp;and <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, 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> 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 <p>Selecting an option will immediately apply the new layout by reloading
the window.</p> 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>
<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>Zen mode</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Zen mode</h1>
<div class="ck-content">
<p>
<img src="3_Zen mode_image.png"> <img src="3_Zen mode_image.png">
</p> </p>
<p>Screenshot of Zen Mode activated on a Windows 11 system with native title <p>Screenshot of Zen Mode activated on a Windows 11 system with native title
bar off and background effects on.</p> bar off and background effects on.</p>
<p>When Zen Mode is activated (pictured on the side), most of the user interface <p>When Zen Mode is activated (pictured on the side), most of the user interface
of Trilium is hidden away in order to be able to focus on the content, of Trilium is hidden away in order to be able to focus on the content,
whether it's for reading or writing.</p> whether it's for reading or writing.</p>
<p> <p>
<img src="2_Zen mode_image.png"> <img src="2_Zen mode_image.png">
</p> </p>
<p>Screenshot of the Zen Mode option in the global menu.</p> <p>Screenshot of the Zen Mode option in the global menu.</p>
<h2>Activating &amp; deactivating</h2> <h2>Activating &amp; deactivating</h2>
<p>The Zen Mode can be activated by accessing the global menu and selecting <p>The Zen Mode can be activated by accessing the global menu and selecting
the “Zen Mode” option:</p> the “Zen Mode” option:</p>
<p>Aside from the global menu, it's also possible to activate this mode by <p>Aside from the global menu, it's also possible to activate this mode by
using a keyboard shortcut (which is <kbd>F9</kbd> since TriliumNext 0.92.5 using a keyboard shortcut (which is <kbd>F9</kbd> since TriliumNext 0.92.5
and <kbd>Alt</kbd>+<kbd>Z</kbd> for older versions). Look for <code>toggleZenMode</code> in and <kbd>Alt</kbd>+<kbd>Z</kbd> for older versions). Look for <code>toggleZenMode</code> in
the shortcut configuration.</p> the shortcut configuration.</p>
<p>Once Zen Mode is activated, all the UI elements of the application will <p>Once Zen Mode is activated, all the UI elements of the application will
be hidden away, including the global menu. In that case, the Zen Mode can be hidden away, including the global menu. In that case, the Zen Mode can
be deactivated either by pressing the be deactivated either by pressing the
<img src="Zen mode_image.png">icon in the top-right corner of the window or by pressing the keyboard <img src="Zen mode_image.png">icon in the top-right corner of the window or by pressing the keyboard
combination again.</p> combination again.</p>
<p>Do note that, by design, activating or deactivating the Zen Mode applies <p>Do note that, by design, activating or deactivating the Zen Mode applies
only to the current window. Restarting the application will also disable only to the current window. Restarting the application will also disable
the Zen Mode.</p> the Zen Mode.</p>
<h2>Moving the window around</h2> <h2>Moving the window around</h2>
<p>If “Native title bar” is activated, then the operating system's default <p>If “Native title bar” is activated, then the operating system's default
title bar can be used to drag the window around. If deactivated, the window title bar can be used to drag the window around. If deactivated, the window
can still be moved by dragging the mouse across the top part of the window can still be moved by dragging the mouse across the top part of the window
where the note titles are.</p> where the note titles are.</p>
<p> <p>
<img src="1_Zen mode_image.png"> <img src="1_Zen mode_image.png">
</p> </p>
<p>Screenshot of two notes side-by-side while Zen Mode is active, on Windows <p>Screenshot of two notes side-by-side while Zen Mode is active, on Windows
11 with background effects off.</p> 11 with background effects off.</p>
<h2>Split windows and tabs</h2> <h2>Split windows and tabs</h2>
<p>Tabs are completely hidden, however it's still possible to use keyboard <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 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>) 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>) or <code>activatePreviousTab</code> (<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Tab</kbd>)
that allow easy navigation, however make sure that they are configured that allow easy navigation, however make sure that they are configured
properly in the settings.</p> properly in the settings.</p>
<p>For the split view of notes, there are no keyboard shortcuts at the time <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 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> the split while the Zen Mode is off and then reactivating it afterwards.</p>
</div>
</div>
</body>
</html>

View File

@@ -1,31 +1,16 @@
<html> <h2>macOS support</h2>
<p>Originally, Trilium Notes considered the macOS build unsupported. TriliumNext
<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>FAQ</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>FAQ</h1>
<div class="ck-content">
<h2>macOS support</h2>
<p>Originally, Trilium Notes considered the macOS build unsupported. TriliumNext
commits to make the experience on macOS as good as possible.</p> commits to make the experience on macOS as good as possible.</p>
<p>if you find any platform-specific issues, feel free to <a href="#root/_help_wy8So3yZZlH9">report them</a>.</p> <p>if you find any platform-specific issues, feel free to <a href="#root/_help_wy8So3yZZlH9">report them</a>.</p>
<h2>Translation / localisation support</h2> <h2>Translation / localisation support</h2>
<p>The original Trilium Notes application did not support multiple languages. <p>The original Trilium Notes application did not support multiple languages.
Since we believe that internationalisation is a core part of an application, Since we believe that internationalisation is a core part of an application,
we have added support for it.</p> we have added support for it.</p>
<p>Contributions to translations are welcome.</p> <p>Contributions to translations are welcome.</p>
<h2>Multi-user support</h2> <h2>Multi-user support</h2>
<p>Common request is to allow multiple users collaborate, share notes etc. <p>Common request is to allow multiple users collaborate, share notes etc.
So far I'm resisting this because of these reasons:</p> So far I'm resisting this because of these reasons:</p>
<ul> <ul>
<li>it's a huge feature, or rather a Pandora's box of collaboration features <li>it's a huge feature, or rather a Pandora's box of collaboration features
like user management, permissions, conflict resolution, real-time editing like user management, permissions, conflict resolution, real-time editing
of a note by multiple people etc. This would be a huge amount of work. of a note by multiple people etc. This would be a huge amount of work.
@@ -38,9 +23,9 @@
<a <a
href="#root/_help_CdNpE2pqjmI6">scripting</a>support would be a XSS security hole, while with the single href="#root/_help_CdNpE2pqjmI6">scripting</a>support would be a XSS security hole, while with the single
user assumption it's an endless customizable tool.</li> user assumption it's an endless customizable tool.</li>
</ul> </ul>
<h2>How to open multiple documents in one Trilium instance</h2> <h2>How to open multiple documents in one Trilium instance</h2>
<p>This is normally not supported - one Trilium process can open only a single <p>This is normally not supported - one Trilium process can open only a single
instance of a <a href="#root/_help_wX4HbRucYSDD">database</a>. However, instance of a <a href="#root/_help_wX4HbRucYSDD">database</a>. However,
you can run two Trilium processes (from one installation), each connected you can run two Trilium processes (from one installation), each connected
to a separate document. To achieve this, you need to set a location for to a separate document. To achieve this, you need to set a location for
@@ -48,27 +33,27 @@
variable and separate port on <code>TRILIUM_PORT</code> environment variable. variable and separate port on <code>TRILIUM_PORT</code> environment variable.
How to do that depends on the platform, in Unix-based systems you can achieve How to do that depends on the platform, in Unix-based systems you can achieve
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> 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>
<p>You can save this command into a <code>.sh</code> script file or make an <p>You can save this command into a <code>.sh</code> script file or make an
alias. Do this similarly for a second instance with different data directory alias. Do this similarly for a second instance with different data directory
and port.</p> and port.</p>
<h2>Can I use Dropbox / Google Drive / OneDrive to sync data across multiple computers.</h2> <h2>Can I use Dropbox / Google Drive / OneDrive to sync data across multiple computers.</h2>
<p>No.</p> <p>No.</p>
<p>These general purpose sync apps are not suitable to sync database files <p>These general purpose sync apps are not suitable to sync database files
which are open and being worked on by another application. The result is which are open and being worked on by another application. The result is
that they will corrupt the database file, resulting in data loss and this that they will corrupt the database file, resulting in data loss and this
message in the Trilium logs:</p><pre><code class="language-text-x-trilium-auto">SqliteError: database disk image is malformed</code></pre> message in the Trilium logs:</p><pre><code class="language-text-x-trilium-auto">SqliteError: database disk image is malformed</code></pre>
<p>The only supported way to sync Trilium's data across the network is to <p>The only supported way to sync Trilium's data across the network is to
use a <a href="#root/_help_cbkrhQjrkKrh">sync/web server</a>.</p> use a <a href="#root/_help_cbkrhQjrkKrh">sync/web server</a>.</p>
<h2>Why database instead of flat files?</h2> <h2>Why database instead of flat files?</h2>
<p>Trilium stores notes in a <a href="#root/_help_wX4HbRucYSDD">database</a> which <p>Trilium stores notes in a <a href="#root/_help_wX4HbRucYSDD">database</a> which
is an SQLite database. People often ask why doesn't Trilium rather use is an SQLite database. People often ask why doesn't Trilium rather use
flat files for note storage - it's fair question since flat files are easily flat files for note storage - it's fair question since flat files are easily
interoperable, work with SCM/git etc.</p> interoperable, work with SCM/git etc.</p>
<p>Short answer is that file systems are simply not powerful enough for what <p>Short answer is that file systems are simply not powerful enough for what
we want to achieve with Trilium. Using filesystem would mean fewer features we want to achieve with Trilium. Using filesystem would mean fewer features
with probably more problems.</p> with probably more problems.</p>
<p>More detailed answer:</p> <p>More detailed answer:</p>
<ul> <ul>
<li><a href="#root/_help_IakOLONlIfGI">clones</a> are what you might call "hard <li><a href="#root/_help_IakOLONlIfGI">clones</a> are what you might call "hard
directory link" in filesystem lingo, but this concept is not implemented directory link" in filesystem lingo, but this concept is not implemented
in any filesystem</li> in any filesystem</li>
@@ -85,9 +70,4 @@
<li>Filesystems are generally not transactional. While this is not completely <li>Filesystems are generally not transactional. While this is not completely
required for a note-taking application, having transactions make it way required for a note-taking application, having transactions make it way
easier to keep notes and their metadata in predictable and consistent state.</li> easier to keep notes and their metadata in predictable and consistent state.</li>
</ul> </ul>
</div>
</div>
</body>
</html>

View File

@@ -1,40 +1,25 @@
<html> <p>Trilium supports simple backup scheme where it saves copy of the&nbsp;
<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>Backup</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Backup</h1>
<div class="ck-content">
<p>Trilium supports simple backup scheme where it saves copy of the&nbsp;
<a <a
class="reference-link" href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;on these events:</p> class="reference-link" href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;on these events:</p>
<ul> <ul>
<li>once a day</li> <li>once a day</li>
<li>once a week</li> <li>once a week</li>
<li>once a month</li> <li>once a month</li>
<li>before DB migration to newer version</li> <li>before DB migration to newer version</li>
</ul> </ul>
<p>So in total you'll have at most 4 backups from different points in time <p>So in total you'll have at most 4 backups from different points in time
which should protect you from various problems. These backups are stored which should protect you from various problems. These backups are stored
by default in <code>backup</code> directory placed in the <a href="#root/_help_tAassRL4RSQL">data directory</a>.</p> by default in <code>backup</code> directory placed in the <a href="#root/_help_tAassRL4RSQL">data directory</a>.</p>
<p>This is only very basic backup solution, and you're encouraged to add <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" some better backup solution - e.g. backing up the&nbsp;<a class="reference-link"
href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;to cloud / different href="#root/_help_wX4HbRucYSDD">Database</a>&nbsp;to cloud / different
computer etc.</p> computer etc.</p>
<p>Note that&nbsp;<a class="reference-link" href="#root/_help_cbkrhQjrkKrh">Synchronization</a>&nbsp;provides <p>Note that&nbsp;<a class="reference-link" href="#root/_help_cbkrhQjrkKrh">Synchronization</a>&nbsp;provides
also some backup capabilities by its nature of distributing the data to also some backup capabilities by its nature of distributing the data to
other computers.</p> other computers.</p>
<h2>Restoring backup</h2> <h2>Restoring backup</h2>
<p>Let's assume you want to restore the weekly backup, here's how to do it:</p> <p>Let's assume you want to restore the weekly backup, here's how to do it:</p>
<ul> <ul>
<li>find <a href="#root/_help_tAassRL4RSQL">data directory</a> Trilium uses <li>find <a href="#root/_help_tAassRL4RSQL">data directory</a> Trilium uses
- easy way is to open "About Trilium Notes" from "Menu" in upper left corner - easy way is to open "About Trilium Notes" from "Menu" in upper left corner
and looking at "data directory" and looking at "data directory"
@@ -53,21 +38,16 @@
<li>make sure that the file is writable, e.g. with <code>chmod 600 document.db</code> <li>make sure that the file is writable, e.g. with <code>chmod 600 document.db</code>
</li> </li>
<li>start Trilium again</li> <li>start Trilium again</li>
</ul> </ul>
<p>If you have configured sync then you need to do it across all members <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 of the sync cluster, otherwise older version (restored backup) of the document
will be detected and synced to the newer version.</p> will be detected and synced to the newer version.</p>
<h2>Disabling backup</h2> <h2>Disabling backup</h2>
<p>Although this is not recommended, it is possible to disable backup in <code>config.ini</code> in <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] 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,20 +1,5 @@
<html> <p>Data directory contains:</p>
<ul>
<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>Data directory</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Data directory</h1>
<div class="ck-content">
<p>Data directory contains:</p>
<ul>
<li><code>document.db</code> - <a href="#root/_help_wX4HbRucYSDD">database</a> <li><code>document.db</code> - <a href="#root/_help_wX4HbRucYSDD">database</a>
</li> </li>
<li><code>config.ini</code> - instance level settings like port on which the <li><code>config.ini</code> - instance level settings like port on which the
@@ -22,36 +7,36 @@
<li><code>backup</code> - contains automatically <a href="#root/_help_ODY7qQn5m2FT">backup</a> of <li><code>backup</code> - contains automatically <a href="#root/_help_ODY7qQn5m2FT">backup</a> of
documents</li> documents</li>
<li><code>log</code> - contains application log files</li> <li><code>log</code> - contains application log files</li>
</ul> </ul>
<h2>Location</h2> <h2>Location</h2>
<p>Easy way how to find out which data directory Trilium uses is to look <p>Easy way how to find out which data directory Trilium uses is to look
at the "About Trilium Notes" dialog (from "Menu" in upper left corner):</p> at the "About Trilium Notes" dialog (from "Menu" in upper left corner):</p>
<p> <p>
<img src="Data directory_image.png"> <img src="Data directory_image.png">
</p> </p>
<p>Here's how the location is decided:</p> <p>Here's how the location is decided:</p>
<p>Data directory is normally named <code>trilium-data</code> and it is stored <p>Data directory is normally named <code>trilium-data</code> and it is stored
in:</p> in:</p>
<ul> <ul>
<li><code>/home/[user]/.local/share</code> for Linux</li> <li><code>/home/[user]/.local/share</code> for Linux</li>
<li><code>C:\Users\[user]\AppData\Roaming</code> for Windows Vista and up</li> <li><code>C:\Users\[user]\AppData\Roaming</code> for Windows Vista and up</li>
<li><code>/Users/[user]/Library/Application Support</code> for Mac OS</li> <li><code>/Users/[user]/Library/Application Support</code> for Mac OS</li>
<li>user's home is a fallback if some of the paths above don't exist</li> <li>user's home is a fallback if some of the paths above don't exist</li>
<li>user's home is also a default setup for [[docker|Docker server installation]]</li> <li>user's home is also a default setup for [[docker|Docker server installation]]</li>
</ul> </ul>
<p>If you want to back up your Trilium data, just backup this single directory <p>If you want to back up your Trilium data, just backup this single directory
- it contains everything you need.</p> - it contains everything you need.</p>
<h3>Changing the location of data directory</h3> <h3>Changing the location of data directory</h3>
<p>If you want to use some other location for the data directory than the <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 default one, you may change it via TRILIUM_DATA_DIR environment variable
to some other location:</p> 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>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> <h4>Mac OS X</h4>
<p>You need to create a <code>.plist</code> file under <code>~/Library/LaunchAgents</code> to <p>You need to create a <code>.plist</code> file under <code>~/Library/LaunchAgents</code> to
load it properly each login.</p> 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>To load it manually, you need to use <code>launchctl setenv TRILIUM_DATA_DIR &lt;yourpath&gt;</code>
</p> </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"> <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,18 +54,18 @@
</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>
@@ -91,11 +76,6 @@
</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,20 +1,5 @@
<html> <p>To install Trilium on your desktop, follow these steps:</p>
<ol>
<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>Desktop Installation</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Desktop Installation</h1>
<div class="ck-content">
<p>To install Trilium on your desktop, follow these steps:</p>
<ol>
<li><strong>Download the Latest Release</strong>: Obtain the appropriate binary <li><strong>Download the Latest Release</strong>: Obtain the appropriate binary
release for your operating system from the <a href="https://github.com/TriliumNext/Notes/releases/latest">latest release page</a> on release for your operating system from the <a href="https://github.com/TriliumNext/Notes/releases/latest">latest release page</a> on
GitHub.</li> GitHub.</li>
@@ -22,10 +7,10 @@
a location of your choice.</li> a location of your choice.</li>
<li><strong>Run the Application</strong>: Launch Trilium by executing the <code>trilium</code> executable <li><strong>Run the Application</strong>: Launch Trilium by executing the <code>trilium</code> executable
found within the unzipped folder.</li> found within the unzipped folder.</li>
</ol> </ol>
<h2>Startup Scripts</h2> <h2>Startup Scripts</h2>
<p>Trilium offers various startup scripts to customize your experience:</p> <p>Trilium offers various startup scripts to customize your experience:</p>
<ul> <ul>
<li><code>trilium-no-cert-check</code>: Starts Trilium without validating <li><code>trilium-no-cert-check</code>: Starts Trilium without validating
<a <a
href="#root/_help_l2VkvOwUNfZj">TLS certificates</a>, useful if connecting to a server with a self-signed href="#root/_help_l2VkvOwUNfZj">TLS certificates</a>, useful if connecting to a server with a self-signed
@@ -40,13 +25,8 @@
the application's directory, making it easy to move the entire setup.</li> 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 <li><code>trilium-safe-mode</code>: Boots Trilium in "safe mode," disabling
any startup scripts that might cause the application to crash.</li> any startup scripts that might cause the application to crash.</li>
</ul> </ul>
<h2>Synchronization</h2> <h2>Synchronization</h2>
<p>For Trilium desktp users who wish to synchronize their data with a server <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 instance, refer to the&nbsp;<a class="reference-link" href="#root/_help_cbkrhQjrkKrh">Synchronization</a>&nbsp;guide
for detailed instructions.</p> for detailed instructions.</p>
</div>
</div>
</body>
</html>

View File

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

View File

@@ -1,25 +1,10 @@
<html> <p>This guide outlines the steps to install Trilium on your own server. You
<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>Server Installation</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Server Installation</h1>
<div class="ck-content">
<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 might consider this option if you want to set up <a href="#root/_help_cbkrhQjrkKrh">synchronization</a> or
use Trilium in a browser - accessible from anywhere.</p> use Trilium in a browser - accessible from anywhere.</p>
<h2>Installation Options</h2> <h2>Installation Options</h2>
<p>There are several ways to install Trilium on a server, each with its own <p>There are several ways to install Trilium on a server, each with its own
advantages:</p> advantages:</p>
<ul> <ul>
<li><strong>Recommended</strong>: <a href="#root/_help_rWX5eY045zbE">Docker Installation</a> - <li><strong>Recommended</strong>: <a href="#root/_help_rWX5eY045zbE">Docker Installation</a> -
Available for <strong>AMD64</strong> and <strong>ARM</strong> architectures.</li> Available for <strong>AMD64</strong> and <strong>ARM</strong> architectures.</li>
<li><a href="#root/_help_3tW6mORuTHnB">Packaged Server Installation</a> <li><a href="#root/_help_3tW6mORuTHnB">Packaged Server Installation</a>
@@ -36,31 +21,31 @@
</li> </li>
<li><a href="#root/_help_moVgBcoxE3EK">NixOS Module</a> <li><a href="#root/_help_moVgBcoxE3EK">NixOS Module</a>
</li> </li>
</ul> </ul>
<p>The server installation includes both web and <a href="#root/_help_RDslemsQ6gCp">mobile frontends</a>.</p> <p>The server installation includes both web and <a href="#root/_help_RDslemsQ6gCp">mobile frontends</a>.</p>
<h2>Configuration</h2> <h2>Configuration</h2>
<p>After setting up your server installation, you may want to configure settings <p>After setting up your server installation, you may want to configure settings
such as the port or enable <a href="#root/_help_l2VkvOwUNfZj">TLS</a>. Configuration such as the port or enable <a href="#root/_help_l2VkvOwUNfZj">TLS</a>. Configuration
is managed via the Trilium <code>config.ini</code> file, which is located 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. 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 To begin customizing your setup, copy the provided <code>config-sample.ini</code> file
with default values to <code>config.ini</code>.</p> with default values to <code>config.ini</code>.</p>
<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>
<h3>Config Location</h3> <h3>Config Location</h3>
<p>By default, <code>config.ini</code>, the <a href="#root/_help_wX4HbRucYSDD">database</a>, <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>. 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 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> 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> <h3>Disabling Authentication</h3>
<p>If you are running Trilium on localhost only or if authentication is handled <p>If you are running Trilium on localhost only or if authentication is handled
by another component, you can disable Triliums authentication by adding 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] 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;
@@ -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">
<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>Manually</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Manually</h1>
<div class="ck-content">
<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; <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;
<a <a
class="reference-link" href="#root/_help_rWX5eY045zbE">Docker Server Installation</a>&nbsp;<strong>or</strong>&nbsp;<a class="reference-link" class="reference-link" href="#root/_help_rWX5eY045zbE">Docker Server Installation</a>&nbsp;<strong>or</strong>&nbsp;<a class="reference-link"
href="#root/_help_3tW6mORuTHnB">Packaged server installation</a><strong>.</strong> href="#root/_help_3tW6mORuTHnB">Packaged server installation</a><strong>.</strong>
</p> </p>
</aside> </aside>
<h2>Requirements</h2> <h2>Requirements</h2>
<p>Trilium is a node.js application. Supported (tested) version of node.js <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 is latest 14.X.X and 16.X.X. Trilium might work with older versions as
well.</p> well.</p>
<p>You can check your node version with this command (node.js needs to be <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> 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 <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 can take a look at the installation instruction on node.js website, which
covers most popular distributions.</p> covers most popular distributions.</p>
<h3>Dependencies</h3> <h3>Dependencies</h3>
<p>There are some dependencies required. You can see command for Debian and <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> 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> <h2>Installation</h2>
<h3>Download</h3> <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>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> <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 <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,23 +1,8 @@
<html> <p>Trilium does not support multiple users. In order to have two or more
<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>Multiple server instances</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Multiple server instances</h1>
<div class="ck-content">
<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 persons with their own set of notes, multiple server instances must be
set up. It is also not possible to use multiple <a href="#root/_help_cbkrhQjrkKrh">sync</a> servers.</p> set up. It is also not possible to use multiple <a href="#root/_help_cbkrhQjrkKrh">sync</a> servers.</p>
<p>To allow multiple server instances on a single physical server:</p> <p>To allow multiple server instances on a single physical server:</p>
<ul> <ul>
<li> <li>
<p>For&nbsp;<a class="reference-link" href="#root/_help_3tW6mORuTHnB">Packaged version for Linux</a>&nbsp;or&nbsp; <p>For&nbsp;<a class="reference-link" href="#root/_help_3tW6mORuTHnB">Packaged version for Linux</a>&nbsp;or&nbsp;
<a <a
@@ -36,10 +21,5 @@
the only possible way is to use Docker OCI containers or at least one NixOS the only possible way is to use Docker OCI containers or at least one NixOS
container with its own service definition.</p> container with its own service definition.</p>
</li> </li>
</ul> </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> <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,22 +1,7 @@
<html> <p>This is essentially Trilium sources + node modules + node.js runtime packaged
<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>Packaged version for Linux</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Packaged version for Linux</h1>
<div class="ck-content">
<p>This is essentially Trilium sources + node modules + node.js runtime packaged
into one 7z file.</p> into one 7z file.</p>
<h2>Steps</h2> <h2>Steps</h2>
<ul> <ul>
<li>SSH into your server</li> <li>SSH into your server</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>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)
on your server.</li> on your server.</li>
@@ -28,25 +13,25 @@
</li> </li>
<li>you can open the browser and open http://[your-server-hostname]:8080 and <li>you can open the browser and open http://[your-server-hostname]:8080 and
you should see Trilium initialization page</li> you should see Trilium initialization page</li>
</ul> </ul>
<p>The problem with above steps is that once you close the SSH connection, <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> the Trilium process is terminated. To avoid that, you have two options:</p>
<ul> <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>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 <li>Configure systemd to automatically run Trilium in the background on every
boot</li> boot</li>
</ul> </ul>
<h2>Configure Trilium to auto-run on boot with systemd</h2> <h2>Configure Trilium to auto-run on boot with systemd</h2>
<ul> <ul>
<li>After downloading, extract and move Trilium:</li> <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 </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>:
<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>Using Docker</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Using Docker</h1>
<div class="ck-content">
<p>Official docker images are published on docker hub for <strong>AMD64</strong>, <strong>ARMv7</strong> and <strong>ARM64/v8</strong>:
<a <a
href="https://hub.docker.com/r/triliumnext/notes/">https://hub.docker.com/r/triliumnext/notes/</a> href="https://hub.docker.com/r/triliumnext/notes/">https://hub.docker.com/r/triliumnext/notes/</a>
</p> </p>
<h2>Prerequisites</h2> <h2>Prerequisites</h2>
<p>Ensure Docker is installed on your system.</p> <p>Ensure Docker is installed on your system.</p>
<p>If you need help installing Docker, reference the <a href="https://docs.docker.com/engine/install/">Docker Installation Docs</a> <p>If you need help installing Docker, reference the <a href="https://docs.docker.com/engine/install/">Docker Installation Docs</a>
</p> </p>
<p><strong>Note:</strong> Trilium's Docker container requires root privileges <p><strong>Note:</strong> Trilium's Docker container requires root privileges
to operate correctly.</p> to operate correctly.</p>
<aside class="admonition warning"> <aside class="admonition warning">
<p>If you're using a SMB/CIFS share or folder as your Trilium data directory, <p>If you're using a SMB/CIFS share or folder as your Trilium data directory,
<a <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 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
mounting your SMB share.</p> mounting your SMB share.</p>
</aside> </aside>
<h2>Running with Docker Compose</h2> <h2>Running with Docker Compose</h2>
<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>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>Optionally, edit the <code>docker-compose.yml</code> file to configure the <p>Optionally, edit the <code>docker-compose.yml</code> file to configure the
container settings prior to starting it. Unless configured otherwise, the container settings prior to starting it. Unless configured otherwise, the
data directory will be <code>~/trilium-data</code> and the container will data directory will be <code>~/trilium-data</code> and the container will
be accessible at port 8080.</p> be accessible at port 8080.</p>
<h3>Start the container:</h3> <h3>Start the container:</h3>
<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> <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>
<h2>Running without Docker Compose / Further Configuration</h2> <h2>Running without Docker Compose / Further Configuration</h2>
<h3>Pulling the Docker Image</h3> <h3>Pulling the Docker Image</h3>
<p>To pull the image, use the following command, replacing <code>[VERSION]</code> with <p>To pull the image, use the following command, replacing <code>[VERSION]</code> with
the desired version or tag, such as <code>v0.91.6</code> or just <code>latest</code>. the desired version or tag, such as <code>v0.91.6</code> or just <code>latest</code>.
(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> (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>
<p><strong>Warning:</strong> Avoid using the "latest" tag, as it may automatically <p><strong>Warning:</strong> Avoid using the "latest" tag, as it may automatically
upgrade your instance to a new minor version, potentially disrupting sync upgrade your instance to a new minor version, potentially disrupting sync
setups or causing other issues.</p> setups or causing other issues.</p>
<h3>Preparing the Data Directory</h3> <h3>Preparing the Data Directory</h3>
<p>Trilium requires a directory on the host system to store its data. This <p>Trilium requires a directory on the host system to store its data. This
directory must be mounted into the Docker container with write permissions.</p> directory must be mounted into the Docker container with write permissions.</p>
<h3>Running the Docker Container</h3> <h3>Running the Docker Container</h3>
<h4>Local Access Only</h4> <h4>Local Access Only</h4>
<p>Run the container to make it accessible only from the localhost. This <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 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> 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> <ol>
<li>Verify the container is running using <code>docker ps</code>.</li> <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> <li>Access Trilium via a web browser at <code>127.0.0.1:8080</code>.</li>
</ol> </ol>
<h4>Local Network Access</h4> <h4>Local Network Access</h4>
<p>To make the container accessible only on your local network, first create <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> 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>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, <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> 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 <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 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.
<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>Using Kubernetes</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Using Kubernetes</h1>
<div class="ck-content">
<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 You can either use our Helm chart, a community Helm chart, or roll your
own Kubernetes deployment.</p> own Kubernetes deployment.</p>
<p>The recommended way is to use a Helm chart.</p> <p>The recommended way is to use a Helm chart.</p>
<h2>Root privileges</h2> <h2>Root privileges</h2>
<aside class="admonition note"> <aside class="admonition note">
<p>The Trilium container at this time needs to be run with root privileges. <p>The Trilium container at this time needs to be run with root privileges.
It will swap to UID and GID <code>1000:1000</code> to run the <code>node</code> process It will swap to UID and GID <code>1000:1000</code> to run the <code>node</code> process
after execution though, so the main process doesn't run with root privileges.</p> after execution though, so the main process doesn't run with root privileges.</p>
</aside> </aside>
<p>The Trilium docker container needs to be run with root privileges. The <p>The Trilium docker container needs to be run with root privileges. The
node process inside the container will be started with reduced privileges node process inside the container will be started with reduced privileges
(uid:gid 1000:1000) after some initialization logic. Please make sure that (uid:gid 1000:1000) after some initialization logic. Please make sure that
you don't use a security context (PodSecurityContext) which changes the 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, 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 please use the <code>USER_UID</code> &amp; <code>USER_GID</code> environment
variables.</p> variables.</p>
<p>The docker image will also fix the permissions of <code>/home/node</code> so <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> you don't have to use an init container.</p>
<h2>Helm Charts</h2> <h2>Helm Charts</h2>
<p><a href="https://github.com/TriliumNext/helm-charts">Official Helm chart</a> from <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>: TriliumNext Unofficial helm chart by <a href="https://github.com/ohdearaugustin">ohdearaugustin</a>:
<a <a
href="https://github.com/ohdearaugustin/charts">https://github.com/ohdearaugustin/charts</a> href="https://github.com/ohdearaugustin/charts">https://github.com/ohdearaugustin/charts</a>
</p> </p>
<h2>Adding a Helm repository</h2> <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 <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,21 +1,6 @@
<html> <p>I've assumed you have created a DNS A record for <code>trilium.yourdomain.com</code> that
<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>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> you want to use for your Trilium server.</p>
<ol> <ol>
<li> <li>
<p>Download docker image and create container</p><pre><code class="language-text-x-trilium-auto"> docker pull triliumnext/notes:[VERSION] <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>
@@ -91,9 +76,4 @@
</li> </li>
</ol> </ol>
</li> </li>
</ol> </ol>
</div>
</div>
</body>
</html>

View File

@@ -1,20 +1,5 @@
<html> <p>Configure Nginx proxy and HTTPS. The operating system here is Ubuntu 18.04.</p>
<ol>
<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>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> <li>
<p>Download Nginx and remove Apache2</p><pre><code class="language-text-x-trilium-auto">sudo apt-get install nginx <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>
@@ -56,9 +41,4 @@ server {
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,39 +1,24 @@
<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">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../../style.css">
<base target="_parent">
<title data-trilium-title>Multi-Factor Authentication</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Multi-Factor Authentication</h1>
<div class="ck-content">
<p><strong>Note: This feature has not been merged yet, so it is not available.</strong>
</p>
<p>Multi-factor authentication (MFA) is a security process that requires
users to provide two or more verification factors to gain access to a system, users to provide two or more verification factors to gain access to a system,
application, or account. This adds an extra layer of protection beyond application, or account. This adds an extra layer of protection beyond
just using a password.</p> just using a password.</p>
<p>By requiring more than one verification method, MFA helps reduce the risk <p>By requiring more than one verification method, MFA helps reduce the risk
of unauthorized access, even if someone has obtained your password. Its of unauthorized access, even if someone has obtained your password. Its
highly recommended for securing sensitive information stored in your notes.</p> 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> <p>Warning! OpenID and TOTP cannot be both used at the same time!</p>
<h2>Log in with your Google Account with OpenID!</h2> <h2>Log in with your Google Account with OpenID!</h2>
<p>OpenID is a standardized way to let you log into websites using an account <p>OpenID is a standardized way to let you log into websites using an account
from another service, like Google, to verify your identity.</p> from another service, like Google, to verify your identity.</p>
<h2>Why Time-based One Time Passwords?</h2> <h2>Why Time-based One Time Passwords?</h2>
<p>TOTP (Time-Based One-Time Password) is a security feature that generates <p>TOTP (Time-Based One-Time Password) is a security feature that generates
a unique, temporary code on your device, like a smartphone, which changes a unique, temporary code on your device, like a smartphone, which changes
every 30 seconds. You use this code, along with your password, to log into every 30 seconds. You use this code, along with your password, to log into
your account, making it much harder for anyone else to access them.</p> your account, making it much harder for anyone else to access them.</p>
<h2>Setup</h2> <h2>Setup</h2>
<h3>TOTP</h3> <h3>TOTP</h3>
<ol> <ol>
<li> <li>
<p>Start Trilium Notes normally.</p> <p>Start Trilium Notes normally.</p>
</li> </li>
@@ -74,33 +59,28 @@ docker run -p 8080:8080 -v ~/trilium-data:/home/node/trilium-data -e TOTP_ENABLE
<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,26 +1,11 @@
<html> <p>Configuring TLS is essential for <a href="#root/_help_WOcw2SLH6tbX">server installation</a> in
<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>TLS Configuration</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>TLS Configuration</h1>
<div class="ck-content">
<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> Trilium. This guide details the steps to set up TLS within Trilium itself.</p>
<p>For a more robust solution, consider using TLS termination with a reverse <p>For a more robust solution, consider using TLS termination with a reverse
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 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
such setups.</p> such setups.</p>
<h2>Obtaining a TLS Certificate</h2> <h2>Obtaining a TLS Certificate</h2>
<p>You have two options for obtaining a TLS certificate:</p> <p>You have two options for obtaining a TLS certificate:</p>
<ul> <ul>
<li><strong>Recommended</strong>: Obtain a TLS certificate signed by a root <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 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 an excellent choice. It is free, automated, and straightforward. Certbot
@@ -28,9 +13,9 @@
<li>Generate a self-signed certificate. This option is not recommended due <li>Generate a self-signed certificate. This option is not recommended due
to the additional complexity of importing the certificate into all machines to the additional complexity of importing the certificate into all machines
connecting to the server.</li> connecting to the server.</li>
</ul> </ul>
<h2>Modifying <code>config.ini</code></h2> <h2>Modifying <code>config.ini</code></h2>
<p>Once you have your certificate, modify the <code>config.ini</code> file <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 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] Trilium to use it:</p><pre><code class="language-text-x-trilium-auto">[Network]
port=8080 port=8080
@@ -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
<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>Synchronization</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Synchronization</h1>
<div class="ck-content">
<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 locally on the desktop client. However, it also offers the option to set
up synchronization with a server instance, allowing multiple desktop clients up synchronization with a server instance, allowing multiple desktop clients
to sync with a central server. This creates a star-shaped topology:</p> to sync with a central server. This creates a star-shaped topology:</p>
<p> <p>
<img src="Synchronization_image.png"> <img src="Synchronization_image.png">
</p> </p>
<p>In this setup, a central server (referred to as the <em>sync server</em>) <p>In this setup, a central server (referred to as the <em>sync server</em>)
and multiple <em>client</em> (or <em>desktop</em>) instances synchronize with and multiple <em>client</em> (or <em>desktop</em>) instances synchronize with
the sync server. Once configured, synchronization is automatic and ongoing, the sync server. Once configured, synchronization is automatic and ongoing,
requiring no manual intervention.</p> requiring no manual intervention.</p>
<h2>Setting Up Synchronization</h2> <h2>Setting Up Synchronization</h2>
<h3>Security Considerations</h3> <h3>Security Considerations</h3>
<p>Setting up the server securely is critical and can be complex. It is crucial <p>Setting up the server securely is critical and can be complex. It is crucial
to use a valid <a href="#root/_help_l2VkvOwUNfZj">TLS certificate</a> (HTTPS) to use a valid <a href="#root/_help_l2VkvOwUNfZj">TLS certificate</a> (HTTPS)
rather than an unencrypted HTTP connection to ensure security and avoid rather than an unencrypted HTTP connection to ensure security and avoid
potential vulnerabilities.</p> potential vulnerabilities.</p>
<h3>Synchronizing a Desktop Instance with a Sync Server</h3> <h3>Synchronizing a Desktop Instance with a Sync Server</h3>
<p>This method is used when you already have a desktop instance of Trilium <p>This method is used when you already have a desktop instance of Trilium
and want to set up a sync server on your web host.</p> and want to set up a sync server on your web host.</p>
<ol> <ol>
<li><strong>Server Deployment</strong>: Ensure your server instance is deployed <li><strong>Server Deployment</strong>: Ensure your server instance is deployed
but uninitialized.</li> but uninitialized.</li>
<li><strong>Desktop Configuration</strong>: Open your desktop instance, navigate <li><strong>Desktop Configuration</strong>: Open your desktop instance, navigate
to Options -&gt; Sync tab -&gt; Sync configuration, and set the "Server to Options -&gt; Sync tab -&gt; Sync configuration, and set the "Server
instance address" to your sync server's address. Click Save.</li> instance address" to your sync server's address. Click Save.</li>
</ol> </ol>
<p> <p>
<img src="Synchronization_sync-confi.png" alt="screenshot of the sync settings options modal"> <img src="Synchronization_sync-confi.png" alt="screenshot of the sync settings options modal">
</p> </p>
<ol> <ol>
<li><strong>Testing Sync</strong>: Click the "Test sync" button to verify <li><strong>Testing Sync</strong>: Click the "Test sync" button to verify
the connection to the sync server. If successful, the client will start the connection to the sync server. If successful, the client will start
pushing all data to the server instance. This process may take some time, pushing all data to the server instance. This process may take some time,
but you can continue using Trilium. Periodically check the server instance but you can continue using Trilium. Periodically check the server instance
to confirm when the sync is complete. Once finished, you should see the to confirm when the sync is complete. Once finished, you should see the
login screen on the server.</li> login screen on the server.</li>
</ol> </ol>
<h3>Synchronizing a Desktop Instance from a Sync Server</h3> <h3>Synchronizing a Desktop Instance from a Sync Server</h3>
<p>This method is used when you already have a sync server and want to configure <p>This method is used when you already have a sync server and want to configure
a new desktop instance to sync with it.</p> a new desktop instance to sync with it.</p>
<ol> <ol>
<li><strong>Desktop Setup</strong>: Follow the <a href="#root/_help_poXkQfguuA0U">desktop installation page</a>.</li> <li><strong>Desktop Setup</strong>: Follow the <a href="#root/_help_poXkQfguuA0U">desktop installation page</a>.</li>
<li><strong>Initial Configuration</strong>: When prompted, choose the option <li><strong>Initial Configuration</strong>: When prompted, choose the option
to set up sync with a sync server.</li> to set up sync with a sync server.</li>
</ol> </ol>
<p> <p>
<img src="Synchronization_sync-init.png" alt="screenshot of the sync from server setup page"> <img src="Synchronization_sync-init.png" alt="screenshot of the sync from server setup page">
</p> </p>
<ol> <ol>
<li><strong>Server Details</strong>: Configure the Trilium server address <li><strong>Server Details</strong>: Configure the Trilium server address
and enter the correct username and password for authentication.</li> and enter the correct username and password for authentication.</li>
<li><strong>Finish Setup</strong>: Click the "Finish setup" button. If successful, <li><strong>Finish Setup</strong>: Click the "Finish setup" button. If successful,
you will see the following screen:</li> you will see the following screen:</li>
</ol> </ol>
<p> <p>
<img src="Synchronization_sync-in-pr.png" alt="screenshot of the sync page"> <img src="Synchronization_sync-in-pr.png" alt="screenshot of the sync page">
</p> </p>
<p>Once synchronization is complete, you will be automatically redirected <p>Once synchronization is complete, you will be automatically redirected
to the Trilium application.</p> to the Trilium application.</p>
<h2>Proxy Configuration</h2> <h2>Proxy Configuration</h2>
<p>Two proxy setups are supported:</p> <p>Two proxy setups are supported:</p>
<ul> <ul>
<li><strong>Explicit Proxy Configuration</strong>: Set the proxy server in <li><strong>Explicit Proxy Configuration</strong>: Set the proxy server in
Options / Sync. Only unauthenticated proxy servers are supported.</li> Options / Sync. Only unauthenticated proxy servers are supported.</li>
<li><strong>System Proxy Settings</strong>: If no proxy server is explicitly <li><strong>System Proxy Settings</strong>: If no proxy server is explicitly
configured, Trilium will use the system proxy settings.</li> configured, Trilium will use the system proxy settings.</li>
</ul> </ul>
<h2>Troubleshooting</h2> <h2>Troubleshooting</h2>
<h3>Date/Time Synchronization</h3> <h3>Date/Time Synchronization</h3>
<p>For successful synchronization, both client and server must have the same <p>For successful synchronization, both client and server must have the same
date and time, with a tolerance of up to five minutes.</p> date and time, with a tolerance of up to five minutes.</p>
<h3>Certificate Issues</h3> <h3>Certificate Issues</h3>
<p>When using TLS, Trilium will verify the server certificate. If verification <p>When using TLS, Trilium will verify the server certificate. If verification
fails (e.g., due to self-signed certificates or certain corporate proxies), fails (e.g., due to self-signed certificates or certain corporate proxies),
you can run the Trilium client with the <code>NODE_TLS_REJECT_UNAUTHORIZED</code> environment 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> 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 <p>This will disable TLS certificate verification, significantly reducing
security and exposing the setup to MITM attacks. It is strongly recommended security and exposing the setup to MITM attacks. It is strongly recommended
to use a valid signed server certificate. Newer Trilium versions include 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> a script called <code>trilium-no-cert-check.sh</code> for this purpose.</p>
<h3>Conflict Resolution</h3> <h3>Conflict Resolution</h3>
<p>If you edit the same note on multiple instances before synchronization, <p>If you edit the same note on multiple instances before synchronization,
Trilium resolves conflicts by retaining the newer change and discarding 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>, the older one. The older version remains accessible in <a href="#root/_help_vZWERwf8U3nx">note revisions</a>,
allowing data recovery if needed.</p> allowing data recovery if needed.</p>
<h3>Hash Check</h3> <h3>Hash Check</h3>
<p>After each synchronization, Trilium computes a hash of all synced data <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 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> 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
<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>Upgrading TriliumNext</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Upgrading TriliumNext</h1>
<div class="ck-content">
<p>This document outlines the steps required to upgrade Trilium to a new
release version.</p> release version.</p>
<h2>How to Upgrade</h2> <h2>How to Upgrade</h2>
<p>Trilium does not support built-in automatic upgrades; all updates must <p>Trilium does not support built-in automatic upgrades; all updates must
be performed manually. The upgrade process varies depending on the installation be performed manually. The upgrade process varies depending on the installation
method:</p> method:</p>
<ul> <ul>
<li><a href="#root/_help_rWX5eY045zbE"><strong>Docker Server Installation</strong></a>: <li><a href="#root/_help_rWX5eY045zbE"><strong>Docker Server Installation</strong></a>:
Pull the new image and restart the container.</li> Pull the new image and restart the container.</li>
<li><strong>Other Installations</strong>: Download the latest version from <li><strong>Other Installations</strong>: Download the latest version from
the <a href="https://github.com/TriliumNext/Notes/releases/latest">release page</a> and the <a href="https://github.com/TriliumNext/Notes/releases/latest">release page</a> and
replace the existing application files.</li> replace the existing application files.</li>
</ul> </ul>
<h2>Database Compatibility and Migration</h2> <h2>Database Compatibility and Migration</h2>
<p>Upon startup, Trilium will automatically migrate the <a href="#root/_help_wX4HbRucYSDD">database</a> to <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 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 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 of Trilium and its database, you can restore the <a href="#root/_help_ODY7qQn5m2FT">backup</a> that
is created prior to migration.</p> is created prior to migration.</p>
<h2>Sync Compatibility</h2> <h2>Sync Compatibility</h2>
<p>The <a href="#root/_help_cbkrhQjrkKrh">synchronization</a> protocol used <p>The <a href="#root/_help_cbkrhQjrkKrh">synchronization</a> protocol used
by Trilium is versioned, requiring all members of the sync cluster to use by Trilium is versioned, requiring all members of the sync cluster to use
the same protocol version. Therefore, when upgrading to a new version, 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 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> sync protocol version are typically indicated on the release page.</p>
</div>
</div>
</body>
</html>

View File

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

View File

@@ -1,53 +1,38 @@
<html> <p>One core features of Trilium is that it supports multiple types of notes,
<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>Note Types</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Note Types</h1>
<div class="ck-content">
<p>One core features of Trilium is that it supports multiple types of notes,
depending on the need.</p> depending on the need.</p>
<h2>Creating a new note with a different type via the note tree</h2> <h2>Creating a new note with a different type via the note tree</h2>
<p>The default note type in Trilium (e.g. when creating a new note) is&nbsp; <p>The default note type in Trilium (e.g. when creating a new note) is&nbsp;
<a <a
class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>, since it's for general use.</p> class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a>, since it's for general use.</p>
<p>To create a new note of a different type, head to the&nbsp;<a class="reference-link" <p>To create a new note of a different type, head to the&nbsp;<a class="reference-link"
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and right click an existing href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and right click an existing
note where to place the new one and select:</p> note where to place the new one and select:</p>
<ul> <ul>
<li><em>Insert note after</em>, to put the new note underneath the one selected.</li> <li><em>Insert note after</em>, to put the new note underneath the one selected.</li>
<li><em>Insert child note</em>, to insert the note as a child of the selected <li><em>Insert child note</em>, to insert the note as a child of the selected
note.</li> note.</li>
</ul> </ul>
<p> <p>
<img src="Note Types_image.png"> <img src="Note Types_image.png">
</p> </p>
<h2>Creating a new note of a different type via add link or new tab</h2> <h2>Creating a new note of a different type via add link or new tab</h2>
<ul> <ul>
<li>When adding a <a href="#root/_help_QEAPj01N5f7w">link</a> in a&nbsp;<a class="reference-link" <li>When adding a <a href="#root/_help_QEAPj01N5f7w">link</a> in a&nbsp;<a class="reference-link"
href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;note, type the desired title href="#root/_help_iPIMuisry3hd">Text</a>&nbsp;note, type the desired title
of the new note and press Enter. Afterwards the type of the note will be of the new note and press Enter. Afterwards the type of the note will be
asked.</li> asked.</li>
<li>Similarly, when creating a new tab, type the desired title and press Enter.</li> <li>Similarly, when creating a new tab, type the desired title and press Enter.</li>
</ul> </ul>
<h2>Changing the type of a note</h2> <h2>Changing the type of a note</h2>
<p>It is possible to change the type of a note after it has been created <p>It is possible to change the type of a note after it has been created
via the <em>Basic Properties</em> tab in the&nbsp;<a class="reference-link" via the <em>Basic Properties</em> tab in the&nbsp;<a class="reference-link"
href="#root/_help_BlN9DFI679QC">Ribbon</a>. Note that it's generally a href="#root/_help_BlN9DFI679QC">Ribbon</a>. Note that it's generally a
good idea to change the note type only if the note is empty. Can also be good idea to change the note type only if the note is empty. Can also be
used to edit the <a href="#root/_help_4FahAwuGTAwC">source of a note</a>.</p> used to edit the <a href="#root/_help_4FahAwuGTAwC">source of a note</a>.</p>
<h2>Supported note types</h2> <h2>Supported note types</h2>
<p>The following note types are supported by Trilium:</p> <p>The following note types are supported by Trilium:</p>
<figure class="table" <figure class="table"
style="width:100%;"> style="width:100%;">
<table class="ck-table-resized"> <table class="ck-table-resized">
<colgroup> <colgroup>
<col style="width:29.42%;"> <col style="width:29.42%;">
@@ -144,9 +129,4 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
</figure> </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
<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>Book</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Book</h1>
<div class="ck-content">
<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, to display the contents of its child notes sequentially, creating a linear,
book-like reading experience. This format is particularly useful for viewing book-like reading experience. This format is particularly useful for viewing
multiple smaller notes in a cohesive, continuous manner.</p> multiple smaller notes in a cohesive, continuous manner.</p>
<p> <p>
<img src="Book_image.png"> <img src="Book_image.png">
</p> </p>
<p>In the example above, the "node.js" note on the left panel contains several <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 child notes. The right panel displays the content of these child notes
as a single continuous document.</p> as a single continuous document.</p>
<h2>Features</h2> <h2>Features</h2>
<p>The Book Note format compiles the contents of all child notes into one <p>The Book Note format compiles the contents of all child notes into one
continuous view. This makes it ideal for reading extensive information continuous view. This makes it ideal for reading extensive information
broken into smaller, manageable segments.</p> broken into smaller, manageable segments.</p>
<p>It uses the&nbsp;<a class="reference-link" href="#root/_help_0ESUbbAxVnoK">Note List</a>&nbsp;mechanism <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, to display the child notes, allowing the use of any of the view types (grid,
list, calendar).</p> list, calendar).</p>
<p>To adjust the view type, see the dedicated <em>Book</em> tab in the&nbsp; <p>To adjust the view type, see the dedicated <em>Book</em> tab in the&nbsp;
<a <a
class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.</p> 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>
<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>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, mouse, pen or touch on an infinite canvas. It also supports basic diagramming,
text and graphics input.</p> text and graphics input.</p>
<p> <p>
<img src="Canvas_image.png" alt="grafik"> <img src="Canvas_image.png" alt="grafik">
</p> </p>
</div>
</div>
</body>
</html>

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