docs(user): mention changes to LLM

This commit is contained in:
Elian Doran
2026-02-22 16:03:27 +02:00
parent 22341bf0b1
commit 72c34eb491
46 changed files with 921 additions and 1614 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 KiB

View File

@@ -1,162 +1,28 @@
<figure class="image image_resized" style="width:63.68%;">
<img style="aspect-ratio:1363/1364;" src="AI_image.png"
width="1363" height="1364">
<figcaption>An example chat with an LLM</figcaption>
</figure>
<p>The AI / LLM features within Trilium Notes are designed to allow you to
interact with your Notes in a variety of ways, using as many of the major
providers as we can support.&nbsp;</p>
<p>In addition to being able to send chats to LLM providers such as OpenAI,
Anthropic, and Ollama - we also support agentic tool calling, and embeddings.</p>
<p>The quickest way to get started is to navigate to the “AI/LLM” settings:</p>
<figure
class="image image_resized" style="width:74.04%;">
<img style="aspect-ratio:1916/1906;" src="5_AI_image.png"
width="1916" height="1906">
</figure>
<p>Enable the feature:</p>
<figure class="image image_resized" style="width:82.82%;">
<img style="aspect-ratio:1911/997;" src="1_AI_image.png"
width="1911" height="997">
</figure>
<h2>Embeddings</h2>
<p><strong>Embeddings</strong> are important as it allows us to have an compact
AI “summary” (it's not human readable text) of each of your Notes, that
we can then perform mathematical functions on (such as cosine similarity)
to smartly figure out which Notes to send as context to the LLM when you're
chatting, among other useful functions.</p>
<p>You will then need to set up the AI “provider” that you wish to use to
create the embeddings for your Notes. Currently OpenAI, Voyage AI, and
Ollama are supported providers for embedding generation.</p>
<p>In the following example, we're going to use our self-hosted Ollama instance
to create the embeddings for our Notes. You can see additional documentation
about installing your own Ollama locally in&nbsp;<a class="reference-link"
href="#root/_help_vvUCN7FDkq7G">Installing Ollama</a>.</p>
<p>To see what embedding models Ollama has available, you can check out
<a
href="https://ollama.com/search?c=embedding">this search</a>on their website, and then <code spellcheck="false">pull</code> whichever
one you want to try out. A popular choice is <code spellcheck="false">mxbai-embed-large</code>.</p>
<p>First, we'll need to select the Ollama provider from the tabs of providers,
then we will enter in the Base URL for our Ollama. Since our Ollama is
running on our local machine, our Base URL is <code spellcheck="false">http://localhost:11434</code>.
We will then hit the “refresh” button to have it fetch our models:</p>
<figure
class="image image_resized" style="width:82.28%;">
<img style="aspect-ratio:1912/1075;" src="4_AI_image.png"
width="1912" height="1075">
</figure>
<p>When selecting the dropdown for the “Embedding Model”, embedding models
should be at the top of the list, separated by regular chat models with
a horizontal line, as seen below:</p>
<figure class="image image_resized"
style="width:61.73%;">
<img style="aspect-ratio:1232/959;" src="8_AI_image.png"
width="1232" height="959">
</figure>
<p>After selecting an embedding model, embeddings should automatically begin
to be generated by checking the embedding statistics at the top of the
“AI/LLM” settings panel:</p>
<figure class="image image_resized" style="width:67.06%;">
<img style="aspect-ratio:1333/499;" src="7_AI_image.png"
width="1333" height="499">
</figure>
<p>If you don't see any embeddings being created, you will want to scroll
to the bottom of the settings, and hit “Recreate All Embeddings”:</p>
<figure
class="image image_resized" style="width:65.69%;">
<img style="aspect-ratio:1337/1490;" src="3_AI_image.png"
width="1337" height="1490">
</figure>
<p>Creating the embeddings will take some time, and will be regenerated when
a Note is created, updated, or deleted (removed).</p>
<p>If for some reason you choose to change your embedding provider, or the
model used, you'll need to recreate all embeddings.</p>
<h2>Tools</h2>
<p>Tools are essentially functions that we provide to the various LLM providers,
and then LLMs can respond in a specific format that tells us what tool
function and parameters they would like to invoke. We then execute these
tools, and provide it as additional context in the Chat conversation.&nbsp;</p>
<p>These are the tools that currently exist, and will certainly be updated
to be more effectively (and even more to be added!):</p>
<ul>
<li><code spellcheck="false">search_notes</code>
<ul>
<li>Semantic search</li>
</ul>
</li>
<li><code spellcheck="false">keyword_search</code>
<ul>
<li>Keyword-based search</li>
</ul>
</li>
<li><code spellcheck="false">attribute_search</code>
<ul>
<li>Attribute-specific search</li>
</ul>
</li>
<li><code spellcheck="false">search_suggestion</code>
<ul>
<li>Search syntax helper</li>
</ul>
</li>
<li><code spellcheck="false">read_note</code>
<ul>
<li>Read note content (helps the LLM read Notes)</li>
</ul>
</li>
<li><code spellcheck="false">create_note</code>
<ul>
<li>Create a Note</li>
</ul>
</li>
<li><code spellcheck="false">update_note</code>
<ul>
<li>Update a Note</li>
</ul>
</li>
<li><code spellcheck="false">manage_attributes</code>
<ul>
<li>Manage attributes on a Note</li>
</ul>
</li>
<li><code spellcheck="false">manage_relationships</code>
<ul>
<li>Manage the various relationships between Notes</li>
</ul>
</li>
<li><code spellcheck="false">extract_content</code>
<ul>
<li>Used to smartly extract content from a Note</li>
</ul>
</li>
<li><code spellcheck="false">calendar_integration</code>
<ul>
<li>Used to find date notes, create date notes, get the daily note, etc.</li>
</ul>
</li>
</ul>
<p>When Tools are executed within your Chat, you'll see output like the following:</p>
<figure
class="image image_resized" style="width:66.88%;">
<img style="aspect-ratio:1372/1591;" src="6_AI_image.png"
width="1372" height="1591">
</figure>
<p>You don't need to tell the LLM to execute a certain tool, it should “smartly”
call tools and automatically execute them as needed.</p>
<h2>Overview</h2>
<p>To start, simply press the <em>Chat with Notes</em> button in the&nbsp;
<a
class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</p>
<figure class="image image_resized" style="width:60.77%;">
<img style="aspect-ratio:1378/539;" src="2_AI_image.png"
width="1378" height="539">
</figure>
<p>If you don't see the button in the&nbsp;<a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>,
you might need to move it from the <em>Available Launchers</em> section to
the <em>Visible Launchers</em> section:</p>
<figure class="image image_resized"
style="width:69.81%;">
<img style="aspect-ratio:1765/1287;" src="9_AI_image.png"
width="1765" height="1287">
</figure>
<p>Starting with version v0.102.0, AI/LLM integration has been removed from
the Trilium Notes core.</p>
<p>While a significant amount of effort went into developing this feature,
maintaining and supporting it long-term proved to be unsustainable.</p>
<p>When upgrading to v0.102.0, your Chat notes will be preserved, but instead
of the dedicated chat window they will be turned to a normal&nbsp;<a class="reference-link"
href="#root/pOsGYCXsbNQG/KSZ04uQ2D1St/_help_6f9hih2hXXZk">Code</a>&nbsp;note,
revealing the underlying JSON of the conversation.</p>
<h2>Alternative solutions (MCP)</h2>
<p>Given the recent advancements of the AI scene, MCP has grown to be more
powerful and facilitates easier integrations with various application.</p>
<p>As such, there are third-party solutions that integrate an MCP server
that can be used with Trilium:</p>
<ul>
<li>
<p><a href="https://github.com/tan-yong-sheng/triliumnext-mcp">tan-yong-sheng/triliumnext-mcp</a>
</p>
</li>
<li>
<p><a href="https://github.com/perfectra1n/triliumnext-mcp">perfectra1n/triliumnext-mcp</a>
</p>
</li>
</ul>
<aside class="admonition important">
<p>These solutions are third-party and thus not endorsed or supported directly
by the Trilium Notes team. Please address questions and issues on their
corresponding repository instead.</p>
</aside>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

View File

@@ -1,22 +0,0 @@
<p>Currently, we support the following providers:</p>
<ul>
<li><a class="reference-link" href="#root/_help_7EdTxPADv95W">Ollama</a>
</li>
<li><a class="reference-link" href="#root/_help_ZavFigBX9AwP">OpenAI</a>
</li>
<li><a class="reference-link" href="#root/_help_e0lkirXEiSNc">Anthropic</a>
</li>
<li>Voyage AI</li>
</ul>
<p>To set your preferred chat model, you'll want to enter the provider's
name here:</p>
<figure class="image image_resized" style="width:88.38%;">
<img style="aspect-ratio:1884/1267;" src="Providers_image.png"
width="1884" height="1267">
</figure>
<p>And to set your preferred embedding provider:</p>
<figure class="image image_resized"
style="width:93.47%;">
<img style="aspect-ratio:1907/1002;" src="1_Providers_image.png"
width="1907" height="1002">
</figure>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

View File

@@ -1,45 +0,0 @@
<p><a href="https://ollama.com/">Ollama</a> can be installed in a variety
of ways, and even runs <a href="https://hub.docker.com/r/ollama/ollama">within a Docker container</a>.
Ollama will be noticeably quicker when running on a GPU (Nvidia, AMD, Intel),
but it can run on CPU and RAM. To install Ollama without any other prerequisites,
you can follow their <a href="https://ollama.com/download">installer</a>:</p>
<figure
class="image image_resized" style="width:50.49%;">
<img style="aspect-ratio:785/498;" src="3_Installing Ollama_image.png"
width="785" height="498">
</figure>
<figure class="image image_resized" style="width:40.54%;">
<img style="aspect-ratio:467/100;" src="Installing Ollama_image.png"
width="467" height="100">
</figure>
<figure class="image image_resized" style="width:55.73%;">
<img style="aspect-ratio:1296/1011;" src="1_Installing Ollama_image.png"
width="1296" height="1011">
</figure>
<p>After their installer completes, if you're on Windows, you should see
an entry in the start menu to run it:</p>
<figure class="image image_resized"
style="width:66.12%;">
<img style="aspect-ratio:1161/480;" src="2_Installing Ollama_image.png"
width="1161" height="480">
</figure>
<p>Also, you should have access to the <code spellcheck="false">ollama</code> CLI
via Powershell or CMD:</p>
<figure class="image image_resized" style="width:86.09%;">
<img style="aspect-ratio:1730/924;" src="5_Installing Ollama_image.png"
width="1730" height="924">
</figure>
<p>After Ollama is installed, you can go ahead and <code spellcheck="false">pull</code> the
models you want to use and run. Here's a command to pull my favorite tool-compatible
model and embedding model as of April 2025:</p><pre><code class="language-text-x-trilium-auto">ollama pull llama3.1:8b
ollama pull mxbai-embed-large</code></pre>
<p>Also, you can make sure it's running by going to <a href="http://localhost:11434">http://localhost:11434</a> and
you should get the following response (port 11434 being the “normal” Ollama
port):</p>
<figure class="image">
<img style="aspect-ratio:585/202;" src="4_Installing Ollama_image.png"
width="585" height="202">
</figure>
<p>Now that you have Ollama up and running, have a few models pulled, you're
ready to go to go ahead and start using Ollama as both a chat provider,
and embedding provider!</p>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 KiB

View File

@@ -20,27 +20,25 @@
<ul>
<li>To indicate that the subtree is hidden, the note will not have an expand
button and it will display the number of children to the right.</li>
<li
>It's not possible to add a new note directly from the tree.
<li>It's not possible to add a new note directly from the tree.
<ul>
<li>For&nbsp;<a class="reference-link" href="#root/_help_GTwFsgaA0lCt">Collections</a>,
it's best to use the built-in mechanism to create notes (for example by
creating a new point on a geo-map, or by adding a new row in a table).</li>
<li
>For normal notes, it's still possible to create children via other means
<li>For normal notes, it's still possible to create children via other means
such as using the&nbsp;<a class="reference-link" href="#root/_help_hrZ1D00cLbal">Internal (reference) links</a>&nbsp;system.</li>
</ul>
</li>
<li>Notes can be dragged from outside the note, case in which they will be
cloned into it.
<ul>
<li>Instead of switching to the child notes that were copied, the parent note
is highlighted instead.</li>
<li>A notification will indicate this behavior.</li>
</ul>
</li>
<li>Similarly, features such as cut/copy and then paste into the note will
also work.</li>
</li>
<li>Notes can be dragged from outside the note, case in which they will be
cloned into it.
<ul>
<li>Instead of switching to the child notes that were copied, the parent note
is highlighted instead.</li>
<li>A notification will indicate this behavior.</li>
</ul>
</li>
<li>Similarly, features such as cut/copy and then paste into the note will
also work.</li>
</ul>
<h2>Spotlighting</h2>
<figure class="image image-style-align-right">
@@ -70,7 +68,7 @@
performance reasons or de-cluttering the tree.</p>
<p>To toggle this behavior:</p>
<ul>
<li>Open the collection and in&nbsp;<a class="reference-link" href="#root/pOsGYCXsbNQG/GTwFsgaA0lCt/_help_CssoWBu8I7jF">Collection Properties</a>,
<li>Open the collection and in&nbsp;<a class="reference-link" href="#root/_help_CssoWBu8I7jF">Collection Properties</a>,
look for <em>Hide child notes in tree</em>.</li>
<li>Right click the collection note in the&nbsp;<a class="reference-link"
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>&nbsp;and select <em>Advanced</em><em>Show subtree</em>.</li>

View File

@@ -1,76 +1,75 @@
<p>Collections are a unique type of note that don't have content, but instead
display their child notes in various presentation methods.</p>
<h2>Main collections</h2>
<figure class="table">
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<figure class="image">
<img style="aspect-ratio:1651/810;" src="Collections_collection_ca.webp"
width="1651" height="810">
</figure>
</td>
<td><a class="reference-link" href="#root/_help_xWbu3jpNWapp">Calendar</a>&nbsp;
<br>which displays a week, month or year calendar with the notes being shown
as events. New events can be added easily by dragging across the calendar.</td>
</tr>
<tr>
<td>
<figure class="image">
<img style="aspect-ratio:1643/647;" src="Collections_collection_ta.webp"
width="1643" height="647">
</figure>
</td>
<td><a class="reference-link" href="#root/_help_2FvYrpmOXm29">Table</a>&nbsp;
<br>displays each note as a row in a table, with&nbsp;<a class="reference-link"
href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;being shown as well.
This makes it easy to visualize attributes of notes, as well as making
them easily editable.</td>
</tr>
<tr>
<td>
<figure class="image">
<img style="aspect-ratio:1174/850;" src="Collections_collection_bo.webp"
width="1174" height="850">
</figure>
</td>
<td><a class="reference-link" href="#root/_help_CtBQqbwXDx1w">Kanban Board</a>&nbsp;
<br>displays notes in columns, grouped by the value of a label. Items and
columns can easily be created or dragged around to change their status.</td>
</tr>
<tr>
<td>
<figure class="image">
<img style="aspect-ratio:844/639;" src="Collections_collection_ge.webp"
width="844" height="639">
</figure>
</td>
<td><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>&nbsp;
<br>which displays a geographical map in which the notes are represented as
markers/pins on the map. New events can be easily added by pointing on
the map.</td>
</tr>
<tr>
<td>
<figure class="image">
<img style="aspect-ratio:1120/763;" src="Collections_collection_pr.webp"
width="1120" height="763">
</figure>
</td>
<td><a class="reference-link" href="#root/_help_zP3PMqaG71Ct">Presentation</a>&nbsp;
<br>which shows each note as a slide and can be presented full-screen with
smooth transitions or exported to PDF for sharing.</td>
</tr>
</tbody>
</table>
</figure>
<table>
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<figure class="image">
<img style="aspect-ratio:1651/810;" src="Collections_collection_ca.webp"
width="1651" height="810">
</figure>
</td>
<td><a class="reference-link" href="#root/_help_xWbu3jpNWapp">Calendar</a>&nbsp;
<br>which displays a week, month or year calendar with the notes being shown
as events. New events can be added easily by dragging across the calendar.</td>
</tr>
<tr>
<td>
<figure class="image">
<img style="aspect-ratio:1643/647;" src="Collections_collection_ta.webp"
width="1643" height="647">
</figure>
</td>
<td><a class="reference-link" href="#root/_help_2FvYrpmOXm29">Table</a>&nbsp;
<br>displays each note as a row in a table, with&nbsp;<a class="reference-link"
href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;being shown as well.
This makes it easy to visualize attributes of notes, as well as making
them easily editable.</td>
</tr>
<tr>
<td>
<figure class="image">
<img style="aspect-ratio:1174/850;" src="Collections_collection_bo.webp"
width="1174" height="850">
</figure>
</td>
<td><a class="reference-link" href="#root/_help_CtBQqbwXDx1w">Kanban Board</a>&nbsp;
<br>displays notes in columns, grouped by the value of a label. Items and
columns can easily be created or dragged around to change their status.</td>
</tr>
<tr>
<td>
<figure class="image">
<img style="aspect-ratio:844/639;" src="Collections_collection_ge.webp"
width="844" height="639">
</figure>
</td>
<td><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>&nbsp;
<br>which displays a geographical map in which the notes are represented as
markers/pins on the map. New events can be easily added by pointing on
the map.</td>
</tr>
<tr>
<td>
<figure class="image">
<img style="aspect-ratio:1120/763;" src="Collections_collection_pr.webp"
width="1120" height="763">
</figure>
</td>
<td><a class="reference-link" href="#root/_help_zP3PMqaG71Ct">Presentation</a>&nbsp;
<br>which shows each note as a slide and can be presented full-screen with
smooth transitions or exported to PDF for sharing.</td>
</tr>
</tbody>
</table>
<h2>Classic collections</h2>
<p>Classic collections are read-only mode and compiles the contents of all
child notes into one continuous view. This makes it ideal for reading extensive
@@ -93,23 +92,22 @@
even sample notes. To create a collection completely from scratch:</p>
<ol>
<li>Create a new note of type <em>Text</em> (or any type).</li>
<li>Change the <a href="#root/pOsGYCXsbNQG/_help_KSZ04uQ2D1St">note type</a> to <em>Collection</em>.</li>
<li
>In&nbsp;<a class="reference-link" href="#root/pOsGYCXsbNQG/GTwFsgaA0lCt/_help_CssoWBu8I7jF">Collection Properties</a>,
<li>Change the <a href="#root/_help_KSZ04uQ2D1St">note type</a> to <em>Collection</em>.</li>
<li>In&nbsp;<a class="reference-link" href="#root/_help_CssoWBu8I7jF">Collection Properties</a>,
select the desired view type.</li>
<li>Consult the help page of the corresponding view type in order to understand
how to configure them.</li>
<li>Consult the help page of the corresponding view type in order to understand
how to configure them.</li>
</ol>
<h2>Configuration</h2>
<p>To change the configuration of a collection or even switch to a different
collection (e.g. from Kanban Board to a Calendar), see the&nbsp;<a class="reference-link"
href="#root/GTwFsgaA0lCt/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;bar
at the top of the note.</p>
href="#root/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;bar at the top
of the note.</p>
<h2>Archived notes</h2>
<p>By default, <a href="#root/_help_MKmLg5x6xkor">archived notes</a> will not be
shown in collections. This behavior can be changed by going to&nbsp;
<a
class="reference-link" href="#root/GTwFsgaA0lCt/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;and checking <em>Show archived notes</em>.</p>
class="reference-link" href="#root/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;and checking <em>Show archived notes</em>.</p>
<p>Archived notes will be generally indicated by being greyed out as opposed
to the normal ones.</p>
<h2>Hiding the child notes from the note tree</h2>
@@ -117,21 +115,21 @@
the items from the note tree for performance reasons and to reduce clutter.
This is especially useful for standalone collections, such as a geomap
or a task board.</p>
<p>To do so, go to&nbsp;<a class="reference-link" href="#root/GTwFsgaA0lCt/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;and
<p>To do so, go to&nbsp;<a class="reference-link" href="#root/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;and
select <em>Hide child notes in tree</em>.</p>
<h2>Advanced use cases</h2>
<h3>Adding a description to a collection</h3>
<p>To add a text before the collection, for example to describe it:</p>
<ol>
<li>Create a new collection.</li>
<li>Change the <a href="#root/pOsGYCXsbNQG/_help_KSZ04uQ2D1St">note type</a> from <em>Collection</em> to <em>Text</em>.</li>
<li>Change the <a href="#root/_help_KSZ04uQ2D1St">note type</a> from <em>Collection</em> to <em>Text</em>.</li>
</ol>
<p>Now the text will be displayed above while still maintaining the collection
view.</p>
<p>The only downside to this method is that&nbsp;<a class="reference-link"
href="#root/pOsGYCXsbNQG/GTwFsgaA0lCt/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;will
not be shown anymore. In this case, modify the attributes manually or switch
back temporarily to the <em>Collection</em> type for configuration purposes.</p>
href="#root/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;will not be shown
anymore. In this case, modify the attributes manually or switch back temporarily
to the <em>Collection</em> type for configuration purposes.</p>
<h3>Using saved search</h3>
<p>Collections, by default, only display the child notes. However, it is
possible to use the&nbsp;<a class="reference-link" href="#root/_help_eIg8jdvaoNNd">Search</a>&nbsp;functionality

View File

@@ -11,10 +11,8 @@
time-specific events, not just all-day events.</li>
<li>Month view, where the entire month is displayed and all-day events can
be inserted. Both time-specific events and all-day events are listed.</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>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>
</ul>
<p>Unlike other Collection view types, the Calendar view also allows some
kind of interaction, such as moving events around as well as creating new
@@ -56,8 +54,7 @@
</ul>
</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>
</ul>
<h2>Interaction on mobile</h2>
@@ -66,26 +63,23 @@
<ul>
<li>Clicking on an event triggers the contextual menu, including the option
to open in&nbsp;<a class="reference-link" href="#root/_help_ZjLYv08Rp3qC">Quick edit</a>.</li>
<li
>To insert a new event, touch and hold the empty space. When successful,
<li>To insert a new event, touch and hold the empty space. When successful,
the empty space will become colored to indicate the selection.
<ul>
<li>Before releasing, drag across multiple spaces to create multi-day events.</li>
<li
>When released, a prompt will appear to enter the note title.</li>
<li>When released, a prompt will appear to enter the note title.</li>
</ul>
</li>
<li>To move an existing event, touch and hold the event until the empty space
near it will become colored.
<ul>
<li>At this point the event can be dragged across other days on the calendar.</li>
<li
>Or the event can be resized by tapping on the small circle to the right
end of the event.</li>
<li>To exit out of editing mode, simply tap the empty space anywhere on the
calendar.</li>
</li>
<li>To move an existing event, touch and hold the event until the empty space
near it will become colored.
<ul>
<li>At this point the event can be dragged across other days on the calendar.</li>
<li>Or the event can be resized by tapping on the small circle to the right
end of the event.</li>
<li>To exit out of editing mode, simply tap the empty space anywhere on the
calendar.</li>
</ul>
</li>
</li>
</ul>
<h2>Configuring the calendar view</h2>
<p>In the <em>Collections</em> tab in the&nbsp;<a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>,
@@ -96,311 +90,299 @@
</ul>
<h2>Configuring the calendar using attributes</h2>
<p>The following attributes can be added to the Collection type:</p>
<figure
class="table">
<table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code spellcheck="false">#calendar:hideWeekends</code>
</td>
<td>When present (regardless of value), it will hide Saturday and Sundays
from the calendar.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:weekNumbers</code>
</td>
<td>When present (regardless of value), it will show the number of the week
on the calendar.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:initialDate</code>
</td>
<td>Change the date the calendar opens on. When not present, the calendar
opens on the current date.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:view</code>
</td>
<td>
<p>Which view to display in the calendar:</p>
<ul>
<li><code spellcheck="false">timeGridWeek</code> for the <em>week</em> view;</li>
<table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code spellcheck="false">#calendar:hideWeekends</code>
</td>
<td>When present (regardless of value), it will hide Saturday and Sundays
from the calendar.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:weekNumbers</code>
</td>
<td>When present (regardless of value), it will show the number of the week
on the calendar.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:initialDate</code>
</td>
<td>Change the date the calendar opens on. When not present, the calendar
opens on the current date.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:view</code>
</td>
<td>
<p>Which view to display in the calendar:</p>
<ul>
<li><code spellcheck="false">timeGridWeek</code> for the <em>week</em> view;</li>
<li
><code spellcheck="false">dayGridMonth</code> for the <em>month</em> view;</li>
<li
><code spellcheck="false">dayGridMonth</code> for the <em>month</em> view;</li>
><code spellcheck="false">multiMonthYear</code> for the <em>year</em> view;</li>
<li
><code spellcheck="false">multiMonthYear</code> for the <em>year</em> view;</li>
<li
><code spellcheck="false">listMonth</code> for the <em>list</em> view.</li>
</ul>
<p>Any other value will be dismissed and the default view (month) will be
used instead.</p>
<p>The value of this label is automatically updated when changing the view
using the UI buttons.</p>
</td>
</tr>
<tr>
<td><code spellcheck="false">~child:template</code>
</td>
<td>Defines the template for newly created notes in the calendar (via dragging
or clicking).</td>
</tr>
</tbody>
</table>
</figure>
<p>In addition, the first day of the week can be either Sunday or Monday
and can be adjusted from the application settings.</p>
<h2>Configuring the calendar events using attributes</h2>
<p>For each note of the calendar, the following attributes can be used:</p>
<figure
class="table">
<table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code spellcheck="false">#startDate</code>
</td>
<td>The date the event starts, which will display it in the calendar. The
format is <code spellcheck="false">YYYY-MM-DD</code> (year, month and day
separated by a minus sign).</td>
</tr>
<tr>
<td><code spellcheck="false">#endDate</code>
</td>
<td>Similar to <code spellcheck="false">startDate</code>, mentions the end
date if the event spans across multiple days. The date is inclusive, so
the end day is also considered. The attribute can be missing for single-day
events.</td>
</tr>
<tr>
<td><code spellcheck="false">#startTime</code>
</td>
<td>The time the event starts at. If this value is missing, then the event
is considered a full-day event. The format is <code spellcheck="false">HH:MM</code> (hours
in 24-hour format and minutes).</td>
</tr>
<tr>
<td><code spellcheck="false">#endTime</code>
</td>
<td>Similar to <code spellcheck="false">startTime</code>, it mentions the time
at which the event ends (in relation with <code spellcheck="false">endDate</code> if
present, or <code spellcheck="false">startDate</code>).</td>
</tr>
<tr>
<td><code spellcheck="false">#color</code>
</td>
<td>Displays the event with a specified color (named such as <code spellcheck="false">red</code>,
<code
spellcheck="false">gray</code>or hex such as <code spellcheck="false">#FF0000</code>). This
will also change the color of the note in other places such as the note
tree.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:color</code>
</td>
<td><strong>❌️ Removed since v0.100.0. Use</strong> <code spellcheck="false">**#color**</code> <strong>instead.</strong>&nbsp;
<br>
<br>Similar to <code spellcheck="false">#color</code>, but applies the color
only for the event in the calendar and not for other places such as the
note tree.</td>
</tr>
<tr>
<td><code spellcheck="false">#iconClass</code>
</td>
<td>If present, the icon of the note will be displayed to the left of the
event title.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:title</code>
</td>
<td>Changes the title of an event to point to an attribute of the note other
than the title, can either a label or a relation (without the <code spellcheck="false">#</code> or
<code
spellcheck="false">~</code>symbol). See <em>Use-cases</em> for more information.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:displayedAttributes</code>
</td>
<td>Allows displaying the value of one or more attributes in the calendar
like this:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>
<img src="7_Calendar_image.png">&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br><code spellcheck="false">#weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"</code>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>It can also be used with relations, case in which it will display the
title of the target note:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br><code spellcheck="false">~assignee=@My assignee #calendar:displayedAttributes="assignee"</code>
</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:startDate</code>
</td>
<td>Allows using a different label to represent the start date, other than
<code
spellcheck="false">startDate</code>(e.g. <code spellcheck="false">expiryDate</code>). The
label name <strong>must not be</strong> prefixed with <code spellcheck="false">#</code>.
If the label is not defined for a note, the default will be used instead.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:endDate</code>
</td>
<td>Similar to <code spellcheck="false">#calendar:startDate</code>, allows
changing the attribute which is being used to read the end date.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:startTime</code>
</td>
<td>Similar to <code spellcheck="false">#calendar:startDate</code>, allows
changing the attribute which is being used to read the start time.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:endTime</code>
</td>
<td>Similar to <code spellcheck="false">#calendar:startDate</code>, allows
changing the attribute which is being used to read the end time.</td>
</tr>
</tbody>
</table>
</figure>
<h2>How the calendar works</h2>
<p>
<img src="9_Calendar_image.png">
</p>
<p>The calendar displays all the child notes of the Collection that have
a <code spellcheck="false">#startDate</code>. An <code spellcheck="false">#endDate</code> can
optionally be added.</p>
<p>If editing the start date and end date from the note itself is desirable,
the following attributes can be added to the Collection note:</p><pre><code class="language-text-x-trilium-auto">#viewType=calendar #label:startDate(inheritable)="promoted,alias=Start Date,single,date"
><code spellcheck="false">listMonth</code> for the <em>list</em> view.</li>
</ul>
<p>Any other value will be dismissed and the default view (month) will be
used instead.</p>
<p>The value of this label is automatically updated when changing the view
using the UI buttons.</p>
</td>
</tr>
<tr>
<td><code spellcheck="false">~child:template</code>
</td>
<td>Defines the template for newly created notes in the calendar (via dragging
or clicking).</td>
</tr>
</tbody>
</table>
<p>In addition, the first day of the week can be either Sunday or Monday
and can be adjusted from the application settings.</p>
<h2>Configuring the calendar events using attributes</h2>
<p>For each note of the calendar, the following attributes can be used:</p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code spellcheck="false">#startDate</code>
</td>
<td>The date the event starts, which will display it in the calendar. The
format is <code spellcheck="false">YYYY-MM-DD</code> (year, month and day
separated by a minus sign).</td>
</tr>
<tr>
<td><code spellcheck="false">#endDate</code>
</td>
<td>Similar to <code spellcheck="false">startDate</code>, mentions the end
date if the event spans across multiple days. The date is inclusive, so
the end day is also considered. The attribute can be missing for single-day
events.</td>
</tr>
<tr>
<td><code spellcheck="false">#startTime</code>
</td>
<td>The time the event starts at. If this value is missing, then the event
is considered a full-day event. The format is <code spellcheck="false">HH:MM</code> (hours
in 24-hour format and minutes).</td>
</tr>
<tr>
<td><code spellcheck="false">#endTime</code>
</td>
<td>Similar to <code spellcheck="false">startTime</code>, it mentions the time
at which the event ends (in relation with <code spellcheck="false">endDate</code> if
present, or <code spellcheck="false">startDate</code>).</td>
</tr>
<tr>
<td><code spellcheck="false">#color</code>
</td>
<td>Displays the event with a specified color (named such as <code spellcheck="false">red</code>,
<code
spellcheck="false">gray</code>or hex such as <code spellcheck="false">#FF0000</code>). This
will also change the color of the note in other places such as the note
tree.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:color</code>
</td>
<td><strong>❌️ Removed since v0.100.0. Use</strong> <code spellcheck="false">**#color**</code> <strong>instead.</strong>&nbsp;
<br>
<br>Similar to <code spellcheck="false">#color</code>, but applies the color
only for the event in the calendar and not for other places such as the
note tree.</td>
</tr>
<tr>
<td><code spellcheck="false">#iconClass</code>
</td>
<td>If present, the icon of the note will be displayed to the left of the
event title.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:title</code>
</td>
<td>Changes the title of an event to point to an attribute of the note other
than the title, can either a label or a relation (without the <code spellcheck="false">#</code> or
<code
spellcheck="false">~</code>symbol). See <em>Use-cases</em> for more information.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:displayedAttributes</code>
</td>
<td>Allows displaying the value of one or more attributes in the calendar
like this:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>
<img src="7_Calendar_image.png">&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br><code spellcheck="false">#weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"</code>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>It can also be used with relations, case in which it will display the
title of the target note:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br><code spellcheck="false">~assignee=@My assignee #calendar:displayedAttributes="assignee"</code>
</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:startDate</code>
</td>
<td>Allows using a different label to represent the start date, other than
<code
spellcheck="false">startDate</code>(e.g. <code spellcheck="false">expiryDate</code>). The
label name <strong>must not be</strong> prefixed with <code spellcheck="false">#</code>.
If the label is not defined for a note, the default will be used instead.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:endDate</code>
</td>
<td>Similar to <code spellcheck="false">#calendar:startDate</code>, allows
changing the attribute which is being used to read the end date.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:startTime</code>
</td>
<td>Similar to <code spellcheck="false">#calendar:startDate</code>, allows
changing the attribute which is being used to read the start time.</td>
</tr>
<tr>
<td><code spellcheck="false">#calendar:endTime</code>
</td>
<td>Similar to <code spellcheck="false">#calendar:startDate</code>, allows
changing the attribute which is being used to read the end time.</td>
</tr>
</tbody>
</table>
<h2>How the calendar works</h2>
<p>
<img src="9_Calendar_image.png">
</p>
<p>The calendar displays all the child notes of the Collection that have
a <code spellcheck="false">#startDate</code>. An <code spellcheck="false">#endDate</code> can
optionally be added.</p>
<p>If editing the start date and end date from the note itself is desirable,
the following attributes can be added to the Collection note:</p><pre><code class="language-text-x-trilium-auto">#viewType=calendar #label:startDate(inheritable)="promoted,alias=Start Date,single,date"
#label:endDate(inheritable)="promoted,alias=End Date,single,date"
#hidePromotedAttributes </code></pre>
<p>This will result in:</p>
<p>
<img src="8_Calendar_image.png">
</p>
<p>When not used in a Journal, the calendar is recursive. That is, it will
look for events not just in its child notes but also in the children of
these child notes.</p>
<h2>Use-cases</h2>
<h3>Using with the Journal / calendar</h3>
<p>It is possible to integrate the calendar view into the Journal with day
notes. In order to do so change the note type of the Journal note (calendar
root) to Collection and then select the Calendar View.</p>
<p>Based on the <code spellcheck="false">#calendarRoot</code> (or <code spellcheck="false">#workspaceCalendarRoot</code>)
attribute, the calendar will know that it's in a calendar and apply the
following:</p>
<ul>
<li>The calendar events are now rendered based on their <code spellcheck="false">dateNote</code> attribute
rather than <code spellcheck="false">startDate</code>.</li>
<li>Interactive editing such as dragging over an empty era or resizing an
event is no longer possible.</li>
<li>Clicking on the empty space on a date will automatically open that day's
note or create it if it does not exist.</li>
<li>Direct children of a day note will be displayed on the calendar despite
not having a <code spellcheck="false">dateNote</code> attribute. Children
of the child notes will not be displayed.</li>
</ul>
<p>
<img src="6_Calendar_image.png" width="1217"
height="724">
</p>
<h3>Using a different attribute as event title</h3>
<p>By default, events are displayed on the calendar by their note title.
However, it is possible to configure a different attribute to be displayed
instead.</p>
<p>To do so, assign <code spellcheck="false">#calendar:title</code> to the
child note (not the calendar/Collection note), with the value being
<code
spellcheck="false">name</code>where <code spellcheck="false">name</code> can be any label (make
not to add the <code spellcheck="false">#</code> prefix). The attribute can
also come through inheritance such as a template attribute. If the note
does not have the requested label, the title of the note will be used instead.</p>
<figure
class="table">
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<tr>
<td><pre><code class="language-text-x-trilium-auto">#startDate=2025-02-11 #endDate=2025-02-13 #name="My vacation" #calendar:title="name"</code></pre>
</td>
<td>
<p>&nbsp;</p>
<figure class="image image-style-align-center">
<img style="aspect-ratio:445/124;" src="3_Calendar_image.png"
width="445" height="124">
</figure>
</td>
</tr>
</tbody>
</table>
</figure>
<h3>Using a relation attribute as event title</h3>
<p>Similarly to using an attribute, use <code spellcheck="false">#calendar:title</code> and
set it to <code spellcheck="false">name</code> where <code spellcheck="false">name</code> is
the name of the relation to use.</p>
<p>Moreover, if there are more relations of the same name, they will be displayed
as multiple events coming from the same note.</p>
<figure class="table">
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<tr>
<td><pre><code class="language-text-x-trilium-auto">#startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"</code></pre>
</td>
<td>
<img src="4_Calendar_image.png" width="294"
height="151">
</td>
</tr>
</tbody>
</table>
</figure>
<p>Note that it's even possible to have a <code spellcheck="false">#calendar:title</code> on
the target note (e.g. “John Smith”) which will try to render an attribute
of it. Note that it's not possible to use a relation here as well for safety
reasons (an accidental recursion &nbsp;of attributes could cause the application
to loop infinitely).</p>
<figure class="table">
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<tr>
<td><pre><code class="language-text-x-trilium-auto">#calendar:title="shortName" #shortName="John S."</code></pre>
</td>
<td>
<figure class="image image-style-align-center">
<img style="aspect-ratio:296/150;" src="1_Calendar_image.png"
width="296" height="150">
</figure>
</td>
</tr>
</tbody>
</table>
</figure>
<p>This will result in:</p>
<p>
<img src="8_Calendar_image.png">
</p>
<p>When not used in a Journal, the calendar is recursive. That is, it will
look for events not just in its child notes but also in the children of
these child notes.</p>
<h2>Use-cases</h2>
<h3>Using with the Journal / calendar</h3>
<p>It is possible to integrate the calendar view into the Journal with day
notes. In order to do so change the note type of the Journal note (calendar
root) to Collection and then select the Calendar View.</p>
<p>Based on the <code spellcheck="false">#calendarRoot</code> (or <code spellcheck="false">#workspaceCalendarRoot</code>)
attribute, the calendar will know that it's in a calendar and apply the
following:</p>
<ul>
<li>The calendar events are now rendered based on their <code spellcheck="false">dateNote</code> attribute
rather than <code spellcheck="false">startDate</code>.</li>
<li>Interactive editing such as dragging over an empty era or resizing an
event is no longer possible.</li>
<li>Clicking on the empty space on a date will automatically open that day's
note or create it if it does not exist.</li>
<li>Direct children of a day note will be displayed on the calendar despite
not having a <code spellcheck="false">dateNote</code> attribute. Children
of the child notes will not be displayed.</li>
</ul>
<img src="6_Calendar_image.png" width="1217"
height="724">
<h3>Using a different attribute as event title</h3>
<p>By default, events are displayed on the calendar by their note title.
However, it is possible to configure a different attribute to be displayed
instead.</p>
<p>To do so, assign <code spellcheck="false">#calendar:title</code> to the
child note (not the calendar/Collection note), with the value being
<code
spellcheck="false">name</code>where <code spellcheck="false">name</code> can be any label (make
not to add the <code spellcheck="false">#</code> prefix). The attribute can
also come through inheritance such as a template attribute. If the note
does not have the requested label, the title of the note will be used instead.</p>
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<tr>
<td><pre><code class="language-text-x-trilium-auto">#startDate=2025-02-11 #endDate=2025-02-13 #name="My vacation" #calendar:title="name"</code></pre>
</td>
<td>
<p>&nbsp;</p>
<figure class="image image-style-align-center">
<img style="aspect-ratio:445/124;" src="3_Calendar_image.png"
width="445" height="124">
</figure>
</td>
</tr>
</tbody>
</table>
<h3>Using a relation attribute as event title</h3>
<p>Similarly to using an attribute, use <code spellcheck="false">#calendar:title</code> and
set it to <code spellcheck="false">name</code> where <code spellcheck="false">name</code> is
the name of the relation to use.</p>
<p>Moreover, if there are more relations of the same name, they will be displayed
as multiple events coming from the same note.</p>
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<tr>
<td><pre><code class="language-text-x-trilium-auto">#startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"</code></pre>
</td>
<td>
<img src="4_Calendar_image.png" width="294"
height="151">
</td>
</tr>
</tbody>
</table>
<p>Note that it's even possible to have a <code spellcheck="false">#calendar:title</code> on
the target note (e.g. “John Smith”) which will try to render an attribute
of it. Note that it's not possible to use a relation here as well for safety
reasons (an accidental recursion &nbsp;of attributes could cause the application
to loop infinitely).</p>
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<tr>
<td><pre><code class="language-text-x-trilium-auto">#calendar:title="shortName" #shortName="John S."</code></pre>
</td>
<td>
<figure class="image image-style-align-center">
<img style="aspect-ratio:296/150;" src="1_Calendar_image.png"
width="296" height="150">
</figure>
</td>
</tr>
</tbody>
</table>

View File

@@ -3,25 +3,23 @@
width="1177" height="98">
</figure>
<p>The <em>Collection Properties</em> is a toolbar that is displayed at the
top of every <a href="#root/pOsGYCXsbNQG/_help_GTwFsgaA0lCt">collection note</a>.</p>
top of every <a href="#root/_help_GTwFsgaA0lCt">collection note</a>.</p>
<p>For versions prior to v0.102.0, this feature was only available for the&nbsp;
<a
class="reference-link" href="#root/pOsGYCXsbNQG/gh7bpGYxajRS/Vc8PjrjAGuOp/_help_IjZS7iK5EXtb">New Layout</a>. Starting with this version, the collection properties
class="reference-link" href="#root/_help_IjZS7iK5EXtb">New Layout</a>. Starting with this version, the collection properties
are enabled for the Old layout as well, and&nbsp;<a class="reference-link"
href="#root/pOsGYCXsbNQG/gh7bpGYxajRS/Vc8PjrjAGuOp/_help_BlN9DFI679QC">Ribbon</a>&nbsp;no
longer contains a dedicated tab for collection properties.</p>
href="#root/_help_BlN9DFI679QC">Ribbon</a>&nbsp;no longer contains a dedicated
tab for collection properties.</p>
<p>The collection properties has:</p>
<ul>
<li>A quick selector for the view type (e.g. grid, calendar, board).</li>
<li
>A settings button with:
<li>A settings button with:
<ul>
<li>Settings for the current view, for example hiding the weekends in a calendar.</li>
<li
>Generic settings for the collection, such as <a href="#root/pOsGYCXsbNQG/gh7bpGYxajRS/Vc8PjrjAGuOp/oPVyFC7WL2Lp/_help_wyaGBBQrl4i3">hiding the child notes</a> or
showing <a href="#root/pOsGYCXsbNQG/gh7bpGYxajRS/BFs8mudNFgCS/_help_MKmLg5x6xkor">archived notes</a>.</li>
<li>Generic settings for the collection, such as <a href="#root/_help_wyaGBBQrl4i3">hiding the child notes</a> or
showing <a href="#root/_help_MKmLg5x6xkor">archived notes</a>.</li>
</ul>
</li>
<li>Specific interactions for the current view, for example month selector
and view switcher for the calendar.</li>
</li>
<li>Specific interactions for the current view, for example month selector
and view switcher for the calendar.</li>
</ul>

View File

@@ -25,60 +25,59 @@
restored when visiting again the note.</p>
<h2>Adding a marker using the map</h2>
<h3>Adding a new note using the plus button</h3>
<figure class="table">
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>To create a marker, first navigate to the desired point on the map. Then
press the
<img src="9_Geo Map_image.png">button in the&nbsp;<a href="#root/_help_XpOYSgsLkTJy">Floating buttons</a>&nbsp;(top-right)
area.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>If the button is not visible, make sure the button section is visible
by pressing the chevron button (
<img src="15_Geo Map_image.png">) in the top-right of the map.</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>2</td>
<td>
<img class="image_resized" style="aspect-ratio:1730/416;width:100%;" src="2_Geo Map_image.png"
width="1730" height="416">
</td>
<td>Once pressed, the map will enter in the insert mode, as illustrated by
the notification.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>Simply click the point on the map where to place the marker, or the Escape
key to cancel.</td>
</tr>
<tr>
<td>3</td>
<td>
<img class="image_resized" style="aspect-ratio:1586/404;width:100%;" src="7_Geo Map_image.png"
width="1586" height="404">
</td>
<td>Enter the name of the marker/note to be created.</td>
</tr>
<tr>
<td>4</td>
<td>
<img class="image_resized" style="aspect-ratio:1696/608;width:100%;" src="14_Geo Map_image.png"
width="1696" height="608">
</td>
<td>Once confirmed, the marker will show up on the map and it will also be
displayed as a child note of the map.</td>
</tr>
</tbody>
</table>
</figure>
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>To create a marker, first navigate to the desired point on the map. Then
press the
<img src="9_Geo Map_image.png">button in the&nbsp;<a href="#root/_help_XpOYSgsLkTJy">Floating buttons</a>&nbsp;(top-right)
area.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>If the button is not visible, make sure the button section is visible
by pressing the chevron button (
<img src="15_Geo Map_image.png">) in the top-right of the map.</td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>
<img class="image_resized" style="aspect-ratio:1730/416;width:100%;" src="2_Geo Map_image.png"
width="1730" height="416">
</td>
<td>Once pressed, the map will enter in the insert mode, as illustrated by
the notification.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>Simply click the point on the map where to place the marker, or the Escape
key to cancel.</td>
</tr>
<tr>
<td>3</td>
<td>
<img class="image_resized" style="aspect-ratio:1586/404;width:100%;" src="7_Geo Map_image.png"
width="1586" height="404">
</td>
<td>Enter the name of the marker/note to be created.</td>
</tr>
<tr>
<td>4</td>
<td>
<img class="image_resized" style="aspect-ratio:1696/608;width:100%;" src="14_Geo Map_image.png"
width="1696" height="608">
</td>
<td>Once confirmed, the marker will show up on the map and it will also be
displayed as a child note of the map.</td>
</tr>
</tbody>
</table>
<h3>Adding a new note using the contextual menu</h3>
<ol>
<li>Right click anywhere on the map, where to place the newly created marker
@@ -91,18 +90,15 @@
<h3>Adding an existing note on note from the note tree</h3>
<ol>
<li>Select the desired note in the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li>
<li
>Hold the mouse on the note and drag it to the map to the desired location.</li>
<li
>The map should be updated with the new marker.</li>
<li>Hold the mouse on the note and drag it to the map to the desired location.</li>
<li>The map should be updated with the new marker.</li>
</ol>
<p>This works for:</p>
<ul>
<li>Notes that are not part of the geo map, case in which a <a href="#root/_help_IakOLONlIfGI">clone</a> will
be created.</li>
<li>Notes that are a child of the geo map but not yet positioned on the map.</li>
<li
>Notes that are a child of the geo map and also positioned, case in which
<li>Notes that are a child of the geo map and also positioned, case in which
the marker will be relocated to the new position.</li>
</ul>
<aside class="admonition note">
@@ -112,10 +108,8 @@
<h2>How the location of the markers is stored</h2>
<p>The location of a marker is stored in the <code spellcheck="false">#geolocation</code> attribute
of the child notes:</p>
<p>
<img src="16_Geo Map_image.png" width="1288"
height="278">
</p>
<img src="16_Geo Map_image.png"
width="1288" height="278">
<p>This value can be added manually if needed. The value of the attribute
is made up of the latitude and longitude separated by a comma.</p>
<h2>Repositioning markers</h2>
@@ -136,8 +130,7 @@
</li>
<li>Middle-clicking the marker will open the note in a new tab.</li>
<li>Right-clicking the marker will open a contextual menu (as described below).</li>
<li
>If the map is in read-only mode, clicking on a marker will open a&nbsp;
<li>If the map is in read-only mode, clicking on a marker will open a&nbsp;
<a
class="reference-link" href="#root/_help_ZjLYv08Rp3qC">Quick edit</a>&nbsp;popup for the corresponding note.</li>
</ul>
@@ -183,237 +176,230 @@
<p>The value of the attribute is made up of the latitude and longitude separated
by a comma.</p>
<h3>Adding from Google Maps</h3>
<figure class="table">
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>
<figure class="image image-style-align-center image_resized" style="width:56.84%;">
<img style="aspect-ratio:732/918;" src="11_Geo Map_image.png"
width="732" height="918">
</figure>
</td>
<td>Go to Google Maps on the web and look for a desired location, right click
on it and a context menu will show up.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>Simply click on the first item displaying the coordinates and they will
be copied to clipboard.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>Then paste the value inside the text box into the <code spellcheck="false">#geolocation</code> attribute
of a child note of the map (don't forget to surround the value with a
<code
spellcheck="false">"</code>character).</td>
</tr>
<tr>
<td>2</td>
<td>
<figure class="image image-style-align-center image_resized" style="width:100%;">
<img style="aspect-ratio:518/84;" src="4_Geo Map_image.png"
width="518" height="84">
</figure>
</td>
<td>In Trilium, create a child note under the map.</td>
</tr>
<tr>
<td>3</td>
<td>
<figure class="image image-style-align-center image_resized" style="width:100%;">
<img style="aspect-ratio:1074/276;" src="10_Geo Map_image.png"
width="1074" height="276">
</figure>
</td>
<td>And then go to Owned Attributes and type <code spellcheck="false">#geolocation="</code>,
then paste from the clipboard as-is and then add the ending <code spellcheck="false">"</code> character.
Press Enter to confirm and the map should now be updated to contain the
new note.</td>
</tr>
</tbody>
</table>
</figure>
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>
<figure class="image image-style-align-center image_resized" style="width:56.84%;">
<img style="aspect-ratio:732/918;" src="11_Geo Map_image.png"
width="732" height="918">
</figure>
</td>
<td>Go to Google Maps on the web and look for a desired location, right click
on it and a context menu will show up.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>Simply click on the first item displaying the coordinates and they will
be copied to clipboard.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>Then paste the value inside the text box into the <code spellcheck="false">#geolocation</code> attribute
of a child note of the map (don't forget to surround the value with a
<code
spellcheck="false">"</code>character).</td>
</tr>
<tr>
<td>2</td>
<td>
<figure class="image image-style-align-center image_resized" style="width:100%;">
<img style="aspect-ratio:518/84;" src="4_Geo Map_image.png"
width="518" height="84">
</figure>
</td>
<td>In Trilium, create a child note under the map.</td>
</tr>
<tr>
<td>3</td>
<td>
<figure class="image image-style-align-center image_resized" style="width:100%;">
<img style="aspect-ratio:1074/276;" src="10_Geo Map_image.png"
width="1074" height="276">
</figure>
</td>
<td>And then go to Owned Attributes and type <code spellcheck="false">#geolocation="</code>,
then paste from the clipboard as-is and then add the ending <code spellcheck="false">"</code> character.
Press Enter to confirm and the map should now be updated to contain the
new note.</td>
</tr>
</tbody>
</table>
<h3>Adding from OpenStreetMap</h3>
<p>Similarly to the Google Maps approach:</p>
<figure class="table">
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>
<img class="image_resized" style="aspect-ratio:562/454;width:100%;" src="1_Geo Map_image.png"
width="562" height="454">
</td>
<td>Go to any location on openstreetmap.org and right click to bring up the
context menu. Select the “Show address” item.</td>
</tr>
<tr>
<td>2</td>
<td>
<img class="image_resized" style="aspect-ratio:696/480;width:100%;" src="Geo Map_image.png"
width="696" height="480">
</td>
<td>The address will be visible in the top-left of the screen, in the place
of the search bar.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>Select the coordinates and copy them into the clipboard.</td>
</tr>
<tr>
<td>3</td>
<td>
<img class="image_resized" style="aspect-ratio:640/276;width:100%;" src="5_Geo Map_image.png"
width="640" height="276">
</td>
<td>Simply paste the value inside the text box into the <code spellcheck="false">#geolocation</code> attribute
of a child note of the map and then it should be displayed on the map.</td>
</tr>
</tbody>
</table>
</figure>
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>
<img class="image_resized" style="aspect-ratio:562/454;width:100%;" src="1_Geo Map_image.png"
width="562" height="454">
</td>
<td>Go to any location on openstreetmap.org and right click to bring up the
context menu. Select the “Show address” item.</td>
</tr>
<tr>
<td>2</td>
<td>
<img class="image_resized" style="aspect-ratio:696/480;width:100%;" src="Geo Map_image.png"
width="696" height="480">
</td>
<td>The address will be visible in the top-left of the screen, in the place
of the search bar.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>Select the coordinates and copy them into the clipboard.</td>
</tr>
<tr>
<td>3</td>
<td>
<img class="image_resized" style="aspect-ratio:640/276;width:100%;" src="5_Geo Map_image.png"
width="640" height="276">
</td>
<td>Simply paste the value inside the text box into the <code spellcheck="false">#geolocation</code> attribute
of a child note of the map and then it should be displayed on the map.</td>
</tr>
</tbody>
</table>
<h2>Adding GPS tracks (.gpx)</h2>
<p>Trilium has basic support for displaying GPS tracks on the geo map.</p>
<figure
class="table">
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>
<figure class="image image-style-align-center">
<img style="aspect-ratio:226/74;" src="3_Geo Map_image.png"
width="226" height="74">
</figure>
</td>
<td>To add a track, simply drag &amp; drop a .gpx file inside the geo map
in the note tree.</td>
</tr>
<tr>
<td>2</td>
<td>
<figure class="image image-style-align-center">
<img style="aspect-ratio:322/222;" src="13_Geo Map_image.png"
width="322" height="222">
</figure>
</td>
<td>In order for the file to be recognized as a GPS track, it needs to show
up as <code spellcheck="false">application/gpx+xml</code> in the <em>File type</em> field.</td>
</tr>
<tr>
<td>3</td>
<td>
<figure class="image image-style-align-center">
<img style="aspect-ratio:620/530;" src="6_Geo Map_image.png"
width="620" height="530">
</figure>
</td>
<td>When going back to the map, the track should now be visible.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>The start and end points of the track are indicated by the two blue markers.</td>
</tr>
</tbody>
</table>
</figure>
<aside class="admonition note">
<p>The starting point of the track will be displayed as a marker, with the
name of the note underneath. The start marker will also respect the icon
and the <code spellcheck="false">color</code> of the note. The end marker
is displayed with a distinct icon.</p>
<p>If the GPX contains waypoints, they will also be displayed. If they have
a name, it is displayed when hovering over it with the mouse.</p>
</aside>
<h2>Read-only mode</h2>
<p>When a map is in read-only all editing features will be disabled such
as:</p>
<ul>
<li>The add button in the&nbsp;<a class="reference-link" href="#root/_help_XpOYSgsLkTJy">Floating buttons</a>.</li>
<li
>Dragging markers.</li>
<li>Editing from the contextual menu (removing locations or adding new items).</li>
</ul>
<p>To enable read-only mode simply press the <em>Lock</em> icon from the&nbsp;
<a
class="reference-link" href="#root/_help_XpOYSgsLkTJy">Floating buttons</a>. To disable it, press the button again.</p>
<h2>Configuration</h2>
<h3>Map Style</h3>
<p>The styling of the map can be adjusted in the&nbsp;<a class="reference-link"
href="#root/pOsGYCXsbNQG/GTwFsgaA0lCt/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;or
manually via the <code spellcheck="false">#map:style</code> attribute.</p>
<p>The geo map comes with two different types of styles:</p>
<ul>
<li>Raster styles
<ul>
<li>For these styles the map is represented as a grid of images at different
zoom levels. This is the traditional way OpenStreetMap used to work.</li>
<li
>Zoom is slightly restricted.</li>
<li>Currently, the only raster theme is the original OpenStreetMap style.</li>
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>
<figure class="image image-style-align-center">
<img style="aspect-ratio:226/74;" src="3_Geo Map_image.png"
width="226" height="74">
</figure>
</td>
<td>To add a track, simply drag &amp; drop a .gpx file inside the geo map
in the note tree.</td>
</tr>
<tr>
<td>2</td>
<td>
<figure class="image image-style-align-center">
<img style="aspect-ratio:322/222;" src="13_Geo Map_image.png"
width="322" height="222">
</figure>
</td>
<td>In order for the file to be recognized as a GPS track, it needs to show
up as <code spellcheck="false">application/gpx+xml</code> in the <em>File type</em> field.</td>
</tr>
<tr>
<td>3</td>
<td>
<figure class="image image-style-align-center">
<img style="aspect-ratio:620/530;" src="6_Geo Map_image.png"
width="620" height="530">
</figure>
</td>
<td>When going back to the map, the track should now be visible.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<br>The start and end points of the track are indicated by the two blue markers.</td>
</tr>
</tbody>
</table>
<aside class="admonition note">
<p>The starting point of the track will be displayed as a marker, with the
name of the note underneath. The start marker will also respect the icon
and the <code spellcheck="false">color</code> of the note. The end marker
is displayed with a distinct icon.</p>
<p>If the GPX contains waypoints, they will also be displayed. If they have
a name, it is displayed when hovering over it with the mouse.</p>
</aside>
<h2>Read-only mode</h2>
<p>When a map is in read-only all editing features will be disabled such
as:</p>
<ul>
<li>The add button in the&nbsp;<a class="reference-link" href="#root/_help_XpOYSgsLkTJy">Floating buttons</a>.</li>
<li>Dragging markers.</li>
<li>Editing from the contextual menu (removing locations or adding new items).</li>
</ul>
<p>To enable read-only mode simply press the <em>Lock</em> icon from the&nbsp;
<a
class="reference-link" href="#root/_help_XpOYSgsLkTJy">Floating buttons</a>. To disable it, press the button again.</p>
<h2>Configuration</h2>
<h3>Map Style</h3>
<p>The styling of the map can be adjusted in the&nbsp;<a class="reference-link"
href="#root/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;or manually via
the <code spellcheck="false">#map:style</code> attribute.</p>
<p>The geo map comes with two different types of styles:</p>
<ul>
<li>Raster styles
<ul>
<li>For these styles the map is represented as a grid of images at different
zoom levels. This is the traditional way OpenStreetMap used to work.</li>
<li>Zoom is slightly restricted.</li>
<li>Currently, the only raster theme is the original OpenStreetMap style.</li>
</ul>
</li>
<li>Vector styles
<ul>
<li>Vector styles are not represented as images, but as geometrical shapes.
This makes the rendering much smoother, especially when zooming and looking
at the building edges, for example.</li>
<li>The map can be zoomed in much further.</li>
<li>These come both in a light and a dark version.</li>
<li>The vector styles come from <a href="https://versatiles.org/">VersaTiles</a>,
a free and open-source project providing map tiles based on OpenStreetMap.</li>
</ul>
</li>
</ul>
<h3>Custom map style / tiles</h3>
<p>Starting with v0.102.0 it is possible to use custom tile sets, but only
in raster format.</p>
<p>To do so, manually set the <code spellcheck="false">#map:style</code>
<a
href="#root/_help_HI6GBBIduIgv">label</a>to the URL of the tile set. For example, to use Esri.NatGeoWorldMap,
set the value to <a href="https://server.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D."><code spellcheck="false">https://server.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/{z}/{y}/{x}</code>.</a>
</p>
<aside class="admonition note">
<p>For a list of tile sets, see the <a href="https://leaflet-extras.github.io/leaflet-providers/preview/">Leaflet Providers preview</a> page.
Select a desired tile set and just copy the URL from the <em>Plain JavaScript</em> example.</p>
</aside>
<p>Custom vector map support is planned, but not yet implemented.</p>
<h3>Other options</h3>
<p>The following options can be configured either via the&nbsp;<a class="reference-link"
href="#root/pOsGYCXsbNQG/GTwFsgaA0lCt/_help_CssoWBu8I7jF">Collection Properties</a>,
by clicking on the settings (Gear icon). Alternatively, each of these options
also have a corresponding <a href="#root/_help_HI6GBBIduIgv">label</a> that can
be set manually.</p>
<ul>
<li>Scale, which illustrates the scale of the map in kilometers and miles
in the bottom-left of the map.</li>
<li>The name of the markers is displayed by default underneath the pin on
the map. Since v0.102.0, it is possible to hide these labels which increases
the performance and decreases clutter when there are many markers on the
map.</li>
</ul>
<h2>Troubleshooting</h2>
<figure class="image image-style-align-right image_resized" style="width:34.06%;">
<img style="aspect-ratio:678/499;" src="12_Geo Map_image.png"
width="678" height="499">
</figure>
<h3>Grid-like artifacts on the map</h3>
<p>This occurs if the application is not at 100% zoom which causes the pixels
of the map to not render correctly due to fractional scaling. The only
possible solution is to set the UI zoom at 100% (default keyboard shortcut
is <kbd>Ctrl</kbd>+<kbd>0</kbd>).</p>
</li>
<li>Vector styles
<ul>
<li>Vector styles are not represented as images, but as geometrical shapes.
This makes the rendering much smoother, especially when zooming and looking
at the building edges, for example.</li>
<li>The map can be zoomed in much further.</li>
<li>These come both in a light and a dark version.</li>
<li>The vector styles come from <a href="https://versatiles.org/">VersaTiles</a>,
a free and open-source project providing map tiles based on OpenStreetMap.</li>
</ul>
</li>
</ul>
<h3>Custom map style / tiles</h3>
<p>Starting with v0.102.0 it is possible to use custom tile sets, but only
in raster format.</p>
<p>To do so, manually set the <code spellcheck="false">#map:style</code>
<a
href="#root/_help_HI6GBBIduIgv">label</a>to the URL of the tile set. For example, to use Esri.NatGeoWorldMap,
set the value to <a href="https://server.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D."><code spellcheck="false">https://server.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/{z}/{y}/{x}</code>.</a>
</p>
<aside class="admonition note">
<p>For a list of tile sets, see the <a href="https://leaflet-extras.github.io/leaflet-providers/preview/">Leaflet Providers preview</a> page.
Select a desired tile set and just copy the URL from the <em>Plain JavaScript</em> example.</p>
</aside>
<p>Custom vector map support is planned, but not yet implemented.</p>
<h3>Other options</h3>
<p>The following options can be configured either via the&nbsp;<a class="reference-link"
href="#root/_help_CssoWBu8I7jF">Collection Properties</a>, by clicking on the
settings (Gear icon). Alternatively, each of these options also have a
corresponding <a href="#root/_help_HI6GBBIduIgv">label</a> that can be set manually.</p>
<ul>
<li>Scale, which illustrates the scale of the map in kilometers and miles
in the bottom-left of the map.</li>
<li>The name of the markers is displayed by default underneath the pin on
the map. Since v0.102.0, it is possible to hide these labels which increases
the performance and decreases clutter when there are many markers on the
map.</li>
</ul>
<h2>Troubleshooting</h2>
<figure class="image image-style-align-right image_resized" style="width:34.06%;">
<img style="aspect-ratio:678/499;" src="12_Geo Map_image.png"
width="678" height="499">
</figure>
<h3>Grid-like artifacts on the map</h3>
<p>This occurs if the application is not at 100% zoom which causes the pixels
of the map to not render correctly due to fractional scaling. The only
possible solution is to set the UI zoom at 100% (default keyboard shortcut
is <kbd>Ctrl</kbd>+<kbd>0</kbd>).</p>

View File

@@ -28,15 +28,14 @@
<li>To reorder a column, simply hold the mouse over the title and drag it
to the desired position.</li>
<li>To delete a column, right click on its title and select <em>Delete column</em>.</li>
<li
>To rename a column, click on the note title.
<li>To rename a column, click on the note title.
<ul>
<li>Press Enter to confirm.</li>
<li>Upon renaming a column, the corresponding status attribute of all its
notes will be changed in bulk.</li>
</ul>
</li>
<li>If there are many columns, use the mouse wheel to scroll.</li>
</li>
<li>If there are many columns, use the mouse wheel to scroll.</li>
</ul>
<h3>Working with notes</h3>
<ul>
@@ -80,16 +79,14 @@
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</p>
<ol>
<li>Select the desired note in the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li>
<li
>Hold the mouse on the note and drag it to the to the desired column.</li>
<li>Hold the mouse on the note and drag it to the to the desired column.</li>
</ol>
<p>This works for:</p>
<ul>
<li>Notes that are not children of the board, case in which a <a href="#root/_help_IakOLONlIfGI">clone</a> will
be created.</li>
<li>Notes that are children of the board, but not yet assigned on the board.</li>
<li
>Notes that are children of the board, case in which they will be moved
<li>Notes that are children of the board, case in which they will be moved
to the new column.</li>
</ul>
<h3>Keyboard interaction</h3>
@@ -99,10 +96,9 @@
column titles, notes and the “New item” button for each of the columns,
in sequential order.</li>
<li>To rename a column or a note, press <kbd>F2</kbd> while it is focused.</li>
<li
>To open a specific note or create a new item, press <kbd>Enter</kbd> while
<li>To open a specific note or create a new item, press <kbd>Enter</kbd> while
it is focused.</li>
<li>To dismiss a rename of a note or a column, press <kbd>Escape</kbd>.</li>
<li>To dismiss a rename of a note or a column, press <kbd>Escape</kbd>.</li>
</ul>
<h2>Configuration</h2>
<h3>Displaying custom attributes</h3>
@@ -118,9 +114,8 @@
<ol>
<li>Go to board note.</li>
<li>In the ribbon select <em>Owned Attributes</em> → plus button → <em>Add new label/relation definition</em>.</li>
<li
>Configure the attribute as desired.</li>
<li>Check <em>Inheritable</em> to make it applicable to child notes automatically.</li>
<li>Configure the attribute as desired.</li>
<li>Check <em>Inheritable</em> to make it applicable to child notes automatically.</li>
</ol>
<p>After creating the attribute, click on a note and fill in the promoted
attributes which should then reflect inside the board.</p>
@@ -131,15 +126,13 @@
assigning a custom name.</li>
<li>Both “Single value” and “Multi value” attributes are supported. In case
of multi-value, a badge is displayed for every instance of the attribute.</li>
<li
>All label types are supported, including dates, booleans and URLs.</li>
<li
>Relation attributes are also supported as well, showing a link with the
target note title and icon.</li>
<li>Currently, it's not possible to adjust which promoted attributes are displayed,
since all promoted attributes will be displayed (except the <code spellcheck="false">board:groupBy</code> one).
There are plans to improve upon this being able to hide promoted attributes
individually.</li>
<li>All label types are supported, including dates, booleans and URLs.</li>
<li>Relation attributes are also supported as well, showing a link with the
target note title and icon.</li>
<li>Currently, it's not possible to adjust which promoted attributes are displayed,
since all promoted attributes will be displayed (except the <code spellcheck="false">board:groupBy</code> one).
There are plans to improve upon this being able to hide promoted attributes
individually.</li>
</ul>
<h3>Grouping by another label</h3>
<p>By default, the label used to group the notes is <code spellcheck="false">#status</code>.
@@ -157,33 +150,36 @@
<ul>
<li>The columns represent the <em>target notes</em> of a relation.</li>
<li>When creating a new column, a note is selected instead of a column name.</li>
<li
>The column icon will match the target note.</li>
<li>Moving notes between columns will change its relation.</li>
<li>Renaming an existing column will change the target note of all the notes
in that column.</li>
<li>The column icon will match the target note.</li>
<li>Moving notes between columns will change its relation.</li>
<li>Renaming an existing column will change the target note of all the notes
in that column.</li>
</ul>
<p>Using relations instead of labels has some benefits:</p>
<ul>
<li>The status/grouping of the notes is visible outside the Kanban board,
for example on the&nbsp;<a class="reference-link" href="#root/_help_bdUJEHsAPYQR">Note Map</a>.</li>
<li
>Columns can have icons.</li>
<li>Renaming columns is less intensive since it simply involves changing the
note title of the target note instead of having to do a bulk rename.</li>
<li>Columns can have icons.</li>
<li>Renaming columns is less intensive since it simply involves changing the
note title of the target note instead of having to do a bulk rename.</li>
</ul>
<p>To do so:</p>
<ol>
<li>First, create a Kanban board from scratch and not a template:</li>
<li
>Assign <code spellcheck="false">#viewType=board #hidePromotedAttributes</code> to
emulate the default template.</li>
<li>Set <code spellcheck="false">#board:groupBy</code> to the name of a relation
<li>
<p>First, create a Kanban board from scratch and not a template:</p>
</li>
<li>
<p>Assign <code spellcheck="false">#viewType=board #hidePromotedAttributes</code> to
emulate the default template.</p>
</li>
<li>
<p>Set <code spellcheck="false">#board:groupBy</code> to the name of a relation
to group by, <strong>including the</strong> <code spellcheck="false">~</code> <strong>prefix</strong> (e.g.
<code
spellcheck="false">~status</code>).</li>
<li>
<p>Optionally, use&nbsp;<a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;for
easy status change within the note:</p><pre><code class="language-text-x-trilium-auto">#relation:status(inheritable)="promoted,alias=Status,single"</code></pre>
</li>
spellcheck="false">~status</code>).</p>
</li>
<li>
<p>Optionally, use&nbsp;<a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;for
easy status change within the note:</p><pre><code class="language-text-x-trilium-auto">#relation:status(inheritable)="promoted,alias=Status,single"</code></pre>
</li>
</ol>

View File

@@ -30,16 +30,15 @@
functionality:</p>
<ul>
<li>The table of contents of the PDF will reflect the structure of the notes.</li>
<li
>Reference and inline links to other notes within the same hierarchy will
<li>Reference and inline links to other notes within the same hierarchy will
be functional (will jump to the corresponding page). If a link refers to
a note that is not in the printed hierarchy, it will be unlinked.</li>
</ul>
<h2>Expanding and collapsing multiple notes at once</h2>
<p>Apart from individually expanding or collapsing notes, it's also possible
to expand or collapse them all at once. To do so, go to the&nbsp;<a class="reference-link"
href="#root/pOsGYCXsbNQG/GTwFsgaA0lCt/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;and
look for the corresponding button.</p>
href="#root/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;and look for the
corresponding button.</p>
<p>By default, the <em>Expand</em> button will only expand the direct children
(first level) of the collection. Starting with v0.100.0, it's possible
to expand multiple levels of notes using the arrow button next to the button.</p>

View File

@@ -12,21 +12,19 @@
<ul>
<li>Each slide is a child note of the collection.</li>
<li>The order of the child notes determines the order of the slides.</li>
<li
>Unlike traditional presentation software, slides can be laid out both
<li>Unlike traditional presentation software, slides can be laid out both
horizontally and vertically (see belwo for more information).</li>
<li>Direct children will be laid out horizontally and the children of those
will be laid out vertically. Children deeper than two levels of nesting
are ignored.</li>
<li>Direct children will be laid out horizontally and the children of those
will be laid out vertically. Children deeper than two levels of nesting
are ignored.</li>
</ul>
<h2>Interaction and navigation</h2>
<p>In the floating buttons section (top-right):</p>
<ul>
<li>Edit button to go to the corresponding note of the current slide.</li>
<li
>Press Overview button (or the <kbd>O</kbd> key) to show a birds-eye view
<li>Press Overview button (or the <kbd>O</kbd> key) to show a birds-eye view
of the slides. Press the button again to disable it.</li>
<li>Press the “Start presentation” button to show the presentation in full-screen.</li>
<li>Press the “Start presentation” button to show the presentation in full-screen.</li>
</ul>
<p>The following keyboard shortcuts are supported:</p>
<ul>
@@ -88,11 +86,10 @@
<p>At collection level, it's possible to adjust:</p>
<ul>
<li>The theme of the entire presentation to one of the predefined themes by
going to the&nbsp;<a class="reference-link" href="#root/pOsGYCXsbNQG/GTwFsgaA0lCt/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;and
going to the&nbsp;<a class="reference-link" href="#root/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;and
looking for the <em>Theme</em> option.</li>
<li>It's currently not possible to create custom themes, although it is planned.</li>
<li
>Note that it is note possible to alter the CSS via&nbsp;<a class="reference-link"
<li>Note that it is note possible to alter the CSS via&nbsp;<a class="reference-link"
href="#root/_help_AlhDUqhENtH7">Custom app-wide CSS</a>&nbsp;because the slides
are rendered isolated (in a shadow DOM).</li>
</ul>
@@ -111,8 +108,7 @@
<ul>
<li>Text notes generally respect the formatting (bold, italic, foreground
and background colors) and font size. Code blocks and tables also work.</li>
<li
>Try using more than just text notes, the presentation uses the same mechanism
<li>Try using more than just text notes, the presentation uses the same mechanism
as <a href="#root/_help_R9pX4DGra2Vt">shared notes</a> and&nbsp;<a class="reference-link"
href="#root/_help_0ESUbbAxVnoK">Note List</a>&nbsp;so it should be able to display&nbsp;
<a
@@ -120,10 +116,12 @@
<a
class="reference-link" href="#root/_help_gBbsAeiuUxI5">Mind Map</a>&nbsp;in full-screen (without the interactivity).
<ul>
<li>Consider using a transparent background for&nbsp;<a class="reference-link"
href="#root/_help_grjYqerjn243">Canvas</a>, if the slides have a custom background
(go to the hamburger menu in the Canvas, press the button select a custom
color and write <code spellcheck="false">transparent</code>).</li>
<li>
<p>Consider using a transparent background for&nbsp;<a class="reference-link"
href="#root/_help_grjYqerjn243">Canvas</a>, if the slides have a custom background
(go to the hamburger menu in the Canvas, press the button select a custom
color and write <code spellcheck="false">transparent</code>).</p>
</li>
<li>
<p>For&nbsp;<a class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>,
some of them have a predefined background which can be changed via the
@@ -135,7 +133,7 @@ config:
---</code></pre>
</li>
</ul>
</li>
</li>
</ul>
<h2>Under the hood</h2>
<p>The Presentation view uses <a href="https://revealjs.com/">Reveal.js</a> to

View File

@@ -46,8 +46,7 @@
<ul>
<li>Press <em>Add new column</em> at the bottom of the table.</li>
<li>Right click on an existing column and select Add column to the left/right.</li>
<li
>Right click on the empty space of the column header and select <em>Label</em> or <em>Relation</em> in
<li>Right click on the empty space of the column header and select <em>Label</em> or <em>Relation</em> in
the <em>New column</em> section.</li>
</ul>
<h3>Adding new rows</h3>
@@ -67,11 +66,10 @@
<ul>
<li>Sorting by the selected column and resetting the sort.</li>
<li>Hiding the selected column or adjusting the visibility of every column.</li>
<li
>Adding new columns to the left or the right of the column.</li>
<li>Editing the current column.</li>
<li>Deleting the current column.</li>
</ul>
<li>Adding new columns to the left or the right of the column.</li>
<li>Editing the current column.</li>
<li>Deleting the current column.</li>
</ul>
</li>
<li>Right clicking on the space to the right of the columns, allows:
<ul>
@@ -97,16 +95,15 @@
<ul>
<li>The editing will respect the type of the promoted attribute, by presenting
a normal text box, a number selector or a date selector for example.</li>
<li
>It also possible to change the title of a note.</li>
<li>Editing relations is also possible
<ul>
<li>Simply click on a relation and it will become editable. Enter the text
to look for a note and click on it.</li>
<li>To remove a relation, remove the title of the note from the text box and
click outside the cell.</li>
</ul>
</li>
<li>It also possible to change the title of a note.</li>
<li>Editing relations is also possible
<ul>
<li>Simply click on a relation and it will become editable. Enter the text
to look for a note and click on it.</li>
<li>To remove a relation, remove the title of the note from the text box and
click outside the cell.</li>
</ul>
</li>
</ul>
<h3>Editing columns</h3>
<p>It is possible to edit a column by right clicking it and selecting <em>Edit column.</em> This
@@ -131,8 +128,7 @@
<h3>Reordering and hiding columns</h3>
<ul>
<li>Columns can be reordered by dragging the header of the columns.</li>
<li
>Columns can be hidden or shown by right clicking on a column and clicking
<li>Columns can be hidden or shown by right clicking on a column and clicking
the item corresponding to the column.</li>
</ul>
<h3>Reordering rows</h3>
@@ -146,8 +142,7 @@
<li>If the parent note has <code spellcheck="false">#sorted</code>, reordering
will be disabled.</li>
<li>If using nested tables, then reordering will also be disabled.</li>
<li
>Currently, it's possible to reorder notes even if column sorting is used,
<li>Currently, it's possible to reorder notes even if column sorting is used,
but the result might be inconsistent.</li>
</ul>
<h3>Nested trees</h3>
@@ -159,7 +154,7 @@
to a certain number of levels or even disable it completely. To do so,
either:</p>
<ul>
<li>Go to&nbsp;<a class="reference-link" href="#root/pOsGYCXsbNQG/GTwFsgaA0lCt/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;and
<li>Go to&nbsp;<a class="reference-link" href="#root/_help_CssoWBu8I7jF">Collection Properties</a>&nbsp;and
look for the <em>Max nesting depth</em> section.
<ul>
<li>To disable nesting, type 0 and press Enter.</li>

View File

@@ -1,5 +1,5 @@
# Documentation
There are multiple types of documentation for Trilium:<img class="image-style-align-right" src="api/images/3TtOuHL87Yim/Documentation_image.png" width="205" height="162">
There are multiple types of documentation for Trilium:<img class="image-style-align-right" src="api/images/7hmsAGuPacge/Documentation_image.png" width="205" height="162">
* The _User Guide_ represents the user-facing documentation. This documentation can be browsed by users directly from within Trilium, by pressing <kbd>F1</kbd>.
* The _Developer's Guide_ represents a set of Markdown documents that present the internals of Trilium, for developers.

View File

@@ -2537,12 +2537,19 @@
"isInheritable": false,
"position": 40
},
{
"type": "relation",
"name": "internalLink",
"value": "CssoWBu8I7jF",
"isInheritable": false,
"position": 50
},
{
"type": "relation",
"name": "internalLink",
"value": "oPVyFC7WL2Lp",
"isInheritable": false,
"position": 90
"position": 60
},
{
"type": "label",
@@ -2557,13 +2564,6 @@
"value": "bx bx-hide",
"isInheritable": false,
"position": 40
},
{
"type": "relation",
"name": "internalLink",
"value": "CssoWBu8I7jF",
"isInheritable": false,
"position": 100
}
],
"format": "markdown",
@@ -10701,45 +10701,59 @@
{
"type": "relation",
"name": "internalLink",
"value": "BlN9DFI679QC",
"value": "KSZ04uQ2D1St",
"isInheritable": false,
"position": 110
},
{
"type": "relation",
"name": "internalLink",
"value": "MKmLg5x6xkor",
"value": "CssoWBu8I7jF",
"isInheritable": false,
"position": 120
},
{
"type": "relation",
"name": "internalLink",
"value": "eIg8jdvaoNNd",
"value": "MKmLg5x6xkor",
"isInheritable": false,
"position": 130
},
{
"type": "relation",
"name": "internalLink",
"value": "m523cpzocqaD",
"value": "eIg8jdvaoNNd",
"isInheritable": false,
"position": 140
},
{
"type": "relation",
"name": "internalLink",
"value": "KC1HB96bqqHX",
"value": "BlN9DFI679QC",
"isInheritable": false,
"position": 150
},
{
"type": "relation",
"name": "internalLink",
"value": "2mUhVmZK8RF3",
"value": "m523cpzocqaD",
"isInheritable": false,
"position": 160
},
{
"type": "relation",
"name": "internalLink",
"value": "KC1HB96bqqHX",
"isInheritable": false,
"position": 170
},
{
"type": "relation",
"name": "internalLink",
"value": "2mUhVmZK8RF3",
"isInheritable": false,
"position": 180
},
{
"type": "label",
"name": "shareAlias",
@@ -10753,20 +10767,6 @@
"value": "bx bx-book",
"isInheritable": false,
"position": 20
},
{
"type": "relation",
"name": "internalLink",
"value": "CssoWBu8I7jF",
"isInheritable": false,
"position": 170
},
{
"type": "relation",
"name": "internalLink",
"value": "KSZ04uQ2D1St",
"isInheritable": false,
"position": 180
}
],
"format": "markdown",
@@ -10833,17 +10833,24 @@
{
"type": "relation",
"name": "internalLink",
"value": "ZjLYv08Rp3qC",
"value": "oPVyFC7WL2Lp",
"isInheritable": false,
"position": 10
},
{
"type": "relation",
"name": "internalLink",
"value": "BlN9DFI679QC",
"value": "ZjLYv08Rp3qC",
"isInheritable": false,
"position": 20
},
{
"type": "relation",
"name": "internalLink",
"value": "BlN9DFI679QC",
"isInheritable": false,
"position": 30
},
{
"type": "label",
"name": "iconClass",
@@ -10857,13 +10864,6 @@
"value": "calendar",
"isInheritable": false,
"position": 30
},
{
"type": "relation",
"name": "internalLink",
"value": "oPVyFC7WL2Lp",
"isInheritable": false,
"position": 40
}
],
"format": "markdown",
@@ -10994,6 +10994,13 @@
"isInheritable": false,
"position": 40
},
{
"type": "relation",
"name": "internalLink",
"value": "CssoWBu8I7jF",
"isInheritable": false,
"position": 50
},
{
"type": "relation",
"name": "internalLink",
@@ -11021,13 +11028,6 @@
"value": "table",
"isInheritable": false,
"position": 80
},
{
"type": "relation",
"name": "internalLink",
"value": "CssoWBu8I7jF",
"isInheritable": false,
"position": 90
}
],
"format": "markdown",
@@ -11061,14 +11061,14 @@
{
"type": "relation",
"name": "internalLink",
"value": "2FvYrpmOXm29",
"value": "oPVyFC7WL2Lp",
"isInheritable": false,
"position": 10
},
{
"type": "relation",
"name": "internalLink",
"value": "oPVyFC7WL2Lp",
"value": "2FvYrpmOXm29",
"isInheritable": false,
"position": 20
},
@@ -11176,14 +11176,14 @@
{
"type": "relation",
"name": "internalLink",
"value": "XpOYSgsLkTJy",
"value": "oPVyFC7WL2Lp",
"isInheritable": false,
"position": 30
},
{
"type": "relation",
"name": "internalLink",
"value": "oPVyFC7WL2Lp",
"value": "XpOYSgsLkTJy",
"isInheritable": false,
"position": 40
},
@@ -11211,10 +11211,17 @@
{
"type": "relation",
"name": "internalLink",
"value": "HI6GBBIduIgv",
"value": "CssoWBu8I7jF",
"isInheritable": false,
"position": 80
},
{
"type": "relation",
"name": "internalLink",
"value": "HI6GBBIduIgv",
"isInheritable": false,
"position": 90
},
{
"type": "label",
"name": "iconClass",
@@ -11228,13 +11235,6 @@
"value": "geomap",
"isInheritable": false,
"position": 90
},
{
"type": "relation",
"name": "internalLink",
"value": "CssoWBu8I7jF",
"isInheritable": false,
"position": 100
}
],
"format": "markdown",
@@ -11404,52 +11404,66 @@
{
"type": "relation",
"name": "internalLink",
"value": "AlhDUqhENtH7",
"value": "oPVyFC7WL2Lp",
"isInheritable": false,
"position": 10
},
{
"type": "relation",
"name": "internalLink",
"value": "CssoWBu8I7jF",
"isInheritable": false,
"position": 20
},
{
"type": "relation",
"name": "internalLink",
"value": "OFXdgB2nNk1F",
"value": "AlhDUqhENtH7",
"isInheritable": false,
"position": 30
},
{
"type": "relation",
"name": "internalLink",
"value": "R9pX4DGra2Vt",
"value": "OFXdgB2nNk1F",
"isInheritable": false,
"position": 40
},
{
"type": "relation",
"name": "internalLink",
"value": "0ESUbbAxVnoK",
"value": "R9pX4DGra2Vt",
"isInheritable": false,
"position": 50
},
{
"type": "relation",
"name": "internalLink",
"value": "s1aBHPd79XYj",
"value": "0ESUbbAxVnoK",
"isInheritable": false,
"position": 60
},
{
"type": "relation",
"name": "internalLink",
"value": "grjYqerjn243",
"value": "s1aBHPd79XYj",
"isInheritable": false,
"position": 70
},
{
"type": "relation",
"name": "internalLink",
"value": "gBbsAeiuUxI5",
"value": "grjYqerjn243",
"isInheritable": false,
"position": 80
},
{
"type": "relation",
"name": "internalLink",
"value": "gBbsAeiuUxI5",
"isInheritable": false,
"position": 90
},
{
"type": "label",
"name": "iconClass",
@@ -11463,20 +11477,6 @@
"value": "presentation",
"isInheritable": false,
"position": 90
},
{
"type": "relation",
"name": "internalLink",
"value": "oPVyFC7WL2Lp",
"isInheritable": false,
"position": 100
},
{
"type": "relation",
"name": "internalLink",
"value": "CssoWBu8I7jF",
"isInheritable": false,
"position": 110
}
],
"format": "markdown",
@@ -11543,6 +11543,13 @@
"isInheritable": false,
"position": 40
},
{
"type": "relation",
"name": "internalLink",
"value": "oPVyFC7WL2Lp",
"isInheritable": false,
"position": 50
},
{
"type": "label",
"name": "iconClass",
@@ -11556,13 +11563,6 @@
"value": "grid",
"isInheritable": false,
"position": 50
},
{
"type": "relation",
"name": "internalLink",
"value": "oPVyFC7WL2Lp",
"isInheritable": false,
"position": 60
}
],
"format": "markdown",
@@ -11603,24 +11603,38 @@
{
"type": "relation",
"name": "internalLink",
"value": "BlN9DFI679QC",
"value": "oPVyFC7WL2Lp",
"isInheritable": false,
"position": 20
},
{
"type": "relation",
"name": "internalLink",
"value": "NRnIZmSMc5sj",
"value": "BlN9DFI679QC",
"isInheritable": false,
"position": 30
},
{
"type": "relation",
"name": "internalLink",
"value": "HI6GBBIduIgv",
"value": "NRnIZmSMc5sj",
"isInheritable": false,
"position": 40
},
{
"type": "relation",
"name": "internalLink",
"value": "CssoWBu8I7jF",
"isInheritable": false,
"position": 50
},
{
"type": "relation",
"name": "internalLink",
"value": "HI6GBBIduIgv",
"isInheritable": false,
"position": 60
},
{
"type": "label",
"name": "iconClass",
@@ -11634,20 +11648,6 @@
"value": "list",
"isInheritable": false,
"position": 30
},
{
"type": "relation",
"name": "internalLink",
"value": "oPVyFC7WL2Lp",
"isInheritable": false,
"position": 50
},
{
"type": "relation",
"name": "internalLink",
"value": "CssoWBu8I7jF",
"isInheritable": false,
"position": 60
}
],
"format": "markdown",
@@ -11683,35 +11683,35 @@
"name": "internalLink",
"value": "GTwFsgaA0lCt",
"isInheritable": false,
"position": 30
"position": 10
},
{
"type": "relation",
"name": "internalLink",
"value": "IjZS7iK5EXtb",
"isInheritable": false,
"position": 40
"position": 20
},
{
"type": "relation",
"name": "internalLink",
"value": "BlN9DFI679QC",
"isInheritable": false,
"position": 50
"position": 30
},
{
"type": "relation",
"name": "internalLink",
"value": "wyaGBBQrl4i3",
"isInheritable": false,
"position": 60
"position": 40
},
{
"type": "relation",
"name": "internalLink",
"value": "MKmLg5x6xkor",
"isInheritable": false,
"position": 70
"position": 50
},
{
"type": "label",
@@ -15810,20 +15810,6 @@
"type": "text",
"mime": "text/html",
"attributes": [
{
"type": "relation",
"name": "internalLink",
"value": "vvUCN7FDkq7G",
"isInheritable": false,
"position": 10
},
{
"type": "relation",
"name": "internalLink",
"value": "xYmIYSP6wE3F",
"isInheritable": false,
"position": 20
},
{
"type": "label",
"name": "shareAlias",
@@ -15837,375 +15823,18 @@
"value": "bx bx-bot",
"isInheritable": false,
"position": 30
},
{
"type": "relation",
"name": "internalLink",
"value": "6f9hih2hXXZk",
"isInheritable": false,
"position": 40
}
],
"format": "markdown",
"dataFileName": "AI.md",
"attachments": [
{
"attachmentId": "4UpXwA3WvbmA",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "AI_image.png"
},
{
"attachmentId": "8Bn5IsE3Bv1k",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "1_AI_image.png"
},
{
"attachmentId": "ABN1rFIIJ8no",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "2_AI_image.png"
},
{
"attachmentId": "CK3z7sYw63XT",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "3_AI_image.png"
},
{
"attachmentId": "E6Y09N2t7vyA",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "4_AI_image.png"
},
{
"attachmentId": "JlIPeTtl5wlV",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "5_AI_image.png"
},
{
"attachmentId": "ur4TDJeRqpUC",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "6_AI_image.png"
},
{
"attachmentId": "UTH83LkQEA8u",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "7_AI_image.png"
},
{
"attachmentId": "V68TCCTUdyl7",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "8_AI_image.png"
},
{
"attachmentId": "YbWoNq58T9kB",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "9_AI_image.png"
}
],
"dirFileName": "AI",
"children": [
{
"isClone": false,
"noteId": "WkM7gsEUyCXs",
"notePath": [
"pOsGYCXsbNQG",
"GBBMSlVSOIGP",
"WkM7gsEUyCXs"
],
"title": "Providers",
"notePosition": 10,
"prefix": null,
"isExpanded": false,
"type": "text",
"mime": "text/html",
"attributes": [
{
"type": "relation",
"name": "internalLink",
"value": "7EdTxPADv95W",
"isInheritable": false,
"position": 10
},
{
"type": "relation",
"name": "internalLink",
"value": "ZavFigBX9AwP",
"isInheritable": false,
"position": 20
},
{
"type": "relation",
"name": "internalLink",
"value": "e0lkirXEiSNc",
"isInheritable": false,
"position": 30
},
{
"type": "label",
"name": "viewType",
"value": "list",
"isInheritable": false,
"position": 10
},
{
"type": "label",
"name": "shareAlias",
"value": "providers",
"isInheritable": false,
"position": 40
},
{
"type": "label",
"name": "iconClass",
"value": "bx bx-select-multiple",
"isInheritable": false,
"position": 50
}
],
"format": "markdown",
"dataFileName": "Providers.md",
"attachments": [
{
"attachmentId": "BNN9Vv3JEf2X",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "Providers_image.png"
},
{
"attachmentId": "diIollN3KEbn",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "1_Providers_image.png"
}
],
"dirFileName": "Providers",
"children": [
{
"isClone": false,
"noteId": "7EdTxPADv95W",
"notePath": [
"pOsGYCXsbNQG",
"GBBMSlVSOIGP",
"WkM7gsEUyCXs",
"7EdTxPADv95W"
],
"title": "Ollama",
"notePosition": 10,
"prefix": null,
"isExpanded": false,
"type": "book",
"mime": "",
"attributes": [
{
"type": "label",
"name": "viewType",
"value": "list",
"isInheritable": false,
"position": 10
},
{
"type": "label",
"name": "expanded",
"value": "",
"isInheritable": false,
"position": 20
},
{
"type": "label",
"name": "shareAlias",
"value": "ollama",
"isInheritable": false,
"position": 30
},
{
"type": "label",
"name": "iconClass",
"value": "bx bx-message-dots",
"isInheritable": false,
"position": 40
}
],
"attachments": [],
"dirFileName": "Ollama",
"children": [
{
"isClone": false,
"noteId": "vvUCN7FDkq7G",
"notePath": [
"pOsGYCXsbNQG",
"GBBMSlVSOIGP",
"WkM7gsEUyCXs",
"7EdTxPADv95W",
"vvUCN7FDkq7G"
],
"title": "Installing Ollama",
"notePosition": 10,
"prefix": null,
"isExpanded": false,
"type": "text",
"mime": "text/html",
"attributes": [
{
"type": "label",
"name": "shareAlias",
"value": "installation",
"isInheritable": false,
"position": 20
}
],
"format": "markdown",
"dataFileName": "Installing Ollama.md",
"attachments": [
{
"attachmentId": "CG9q2FfKuEsr",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "Installing Ollama_image.png"
},
{
"attachmentId": "GEcgXxUE1IDx",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "1_Installing Ollama_image.png"
},
{
"attachmentId": "OMGDDxjScXCl",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "2_Installing Ollama_image.png"
},
{
"attachmentId": "Qacg7ibmEBkZ",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "3_Installing Ollama_image.png"
},
{
"attachmentId": "vSjU929VnBm4",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "4_Installing Ollama_image.png"
},
{
"attachmentId": "xGrxARTj79Gv",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "5_Installing Ollama_image.png"
}
]
}
]
},
{
"isClone": false,
"noteId": "ZavFigBX9AwP",
"notePath": [
"pOsGYCXsbNQG",
"GBBMSlVSOIGP",
"WkM7gsEUyCXs",
"ZavFigBX9AwP"
],
"title": "OpenAI",
"notePosition": 20,
"prefix": null,
"isExpanded": false,
"type": "text",
"mime": "text/html",
"attributes": [
{
"type": "label",
"name": "shareAlias",
"value": "openai",
"isInheritable": false,
"position": 20
},
{
"type": "label",
"name": "iconClass",
"value": "bx bx-message-dots",
"isInheritable": false,
"position": 30
}
],
"format": "markdown",
"dataFileName": "OpenAI.md",
"attachments": []
},
{
"isClone": false,
"noteId": "e0lkirXEiSNc",
"notePath": [
"pOsGYCXsbNQG",
"GBBMSlVSOIGP",
"WkM7gsEUyCXs",
"e0lkirXEiSNc"
],
"title": "Anthropic",
"notePosition": 30,
"prefix": null,
"isExpanded": false,
"type": "text",
"mime": "text/html",
"attributes": [
{
"type": "label",
"name": "shareAlias",
"value": "anthropic",
"isInheritable": false,
"position": 20
},
{
"type": "label",
"name": "iconClass",
"value": "bx bx-message-dots",
"isInheritable": false,
"position": 30
}
],
"format": "markdown",
"dataFileName": "Anthropic.md",
"attachments": []
}
]
}
]
"attachments": []
},
{
"isClone": false,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 KiB

View File

@@ -1,89 +1,18 @@
# AI
<figure class="image image_resized" style="width:63.68%;"><img style="aspect-ratio:1363/1364;" src="AI_image.png" width="1363" height="1364"><figcaption>An example chat with an LLM</figcaption></figure>
Starting with version v0.102.0, AI/LLM integration has been removed from the Trilium Notes core.
The AI / LLM features within Trilium Notes are designed to allow you to interact with your Notes in a variety of ways, using as many of the major providers as we can support. 
While a significant amount of effort went into developing this feature, maintaining and supporting it long-term proved to be unsustainable.
In addition to being able to send chats to LLM providers such as OpenAI, Anthropic, and Ollama - we also support agentic tool calling, and embeddings.
When upgrading to v0.102.0, your Chat notes will be preserved, but instead of the dedicated chat window they will be turned to a normal <a class="reference-link" href="Note%20Types/Code.md">Code</a> note, revealing the underlying JSON of the conversation.
The quickest way to get started is to navigate to the “AI/LLM” settings:
## Alternative solutions (MCP)
<figure class="image image_resized" style="width:74.04%;"><img style="aspect-ratio:1916/1906;" src="5_AI_image.png" width="1916" height="1906"></figure>
Given the recent advancements of the AI scene, MCP has grown to be more powerful and facilitates easier integrations with various application.
Enable the feature:
As such, there are third-party solutions that integrate an MCP server that can be used with Trilium:
<figure class="image image_resized" style="width:82.82%;"><img style="aspect-ratio:1911/997;" src="1_AI_image.png" width="1911" height="997"></figure>
* [tan-yong-sheng/triliumnext-mcp](https://github.com/tan-yong-sheng/triliumnext-mcp)
* [perfectra1n/triliumnext-mcp](https://github.com/perfectra1n/triliumnext-mcp)
## Embeddings
**Embeddings** are important as it allows us to have an compact AI “summary” (it's not human readable text) of each of your Notes, that we can then perform mathematical functions on (such as cosine similarity) to smartly figure out which Notes to send as context to the LLM when you're chatting, among other useful functions.
You will then need to set up the AI “provider” that you wish to use to create the embeddings for your Notes. Currently OpenAI, Voyage AI, and Ollama are supported providers for embedding generation.
In the following example, we're going to use our self-hosted Ollama instance to create the embeddings for our Notes. You can see additional documentation about installing your own Ollama locally in <a class="reference-link" href="AI/Providers/Ollama/Installing%20Ollama.md">Installing Ollama</a>.
To see what embedding models Ollama has available, you can check out [this search](https://ollama.com/search?c=embedding) on their website, and then `pull` whichever one you want to try out. A popular choice is `mxbai-embed-large`.
First, we'll need to select the Ollama provider from the tabs of providers, then we will enter in the Base URL for our Ollama. Since our Ollama is running on our local machine, our Base URL is `http://localhost:11434`. We will then hit the “refresh” button to have it fetch our models:
<figure class="image image_resized" style="width:82.28%;"><img style="aspect-ratio:1912/1075;" src="4_AI_image.png" width="1912" height="1075"></figure>
When selecting the dropdown for the “Embedding Model”, embedding models should be at the top of the list, separated by regular chat models with a horizontal line, as seen below:
<figure class="image image_resized" style="width:61.73%;"><img style="aspect-ratio:1232/959;" src="8_AI_image.png" width="1232" height="959"></figure>
After selecting an embedding model, embeddings should automatically begin to be generated by checking the embedding statistics at the top of the “AI/LLM” settings panel:
<figure class="image image_resized" style="width:67.06%;"><img style="aspect-ratio:1333/499;" src="7_AI_image.png" width="1333" height="499"></figure>
If you don't see any embeddings being created, you will want to scroll to the bottom of the settings, and hit “Recreate All Embeddings”:
<figure class="image image_resized" style="width:65.69%;"><img style="aspect-ratio:1337/1490;" src="3_AI_image.png" width="1337" height="1490"></figure>
Creating the embeddings will take some time, and will be regenerated when a Note is created, updated, or deleted (removed).
If for some reason you choose to change your embedding provider, or the model used, you'll need to recreate all embeddings.
## Tools
Tools are essentially functions that we provide to the various LLM providers, and then LLMs can respond in a specific format that tells us what tool function and parameters they would like to invoke. We then execute these tools, and provide it as additional context in the Chat conversation. 
These are the tools that currently exist, and will certainly be updated to be more effectively (and even more to be added!):
* `search_notes`
* Semantic search
* `keyword_search`
* Keyword-based search
* `attribute_search`
* Attribute-specific search
* `search_suggestion`
* Search syntax helper
* `read_note`
* Read note content (helps the LLM read Notes)
* `create_note`
* Create a Note
* `update_note`
* Update a Note
* `manage_attributes`
* Manage attributes on a Note
* `manage_relationships`
* Manage the various relationships between Notes
* `extract_content`
* Used to smartly extract content from a Note
* `calendar_integration`
* Used to find date notes, create date notes, get the daily note, etc.
When Tools are executed within your Chat, you'll see output like the following:
<figure class="image image_resized" style="width:66.88%;"><img style="aspect-ratio:1372/1591;" src="6_AI_image.png" width="1372" height="1591"></figure>
You don't need to tell the LLM to execute a certain tool, it should “smartly” call tools and automatically execute them as needed.
## Overview
To start, simply press the _Chat with Notes_ button in the <a class="reference-link" href="Basic%20Concepts%20and%20Features/UI%20Elements/Launch%20Bar.md">Launch Bar</a>.
<figure class="image image_resized" style="width:60.77%;"><img style="aspect-ratio:1378/539;" src="2_AI_image.png" width="1378" height="539"></figure>
If you don't see the button in the <a class="reference-link" href="Basic%20Concepts%20and%20Features/UI%20Elements/Launch%20Bar.md">Launch Bar</a>, you might need to move it from the _Available Launchers_ section to the _Visible Launchers_ section:
<figure class="image image_resized" style="width:69.81%;"><img style="aspect-ratio:1765/1287;" src="9_AI_image.png" width="1765" height="1287"></figure>
> [!IMPORTANT]
> These solutions are third-party and thus not endorsed or supported directly by the Trilium Notes team. Please address questions and issues on their corresponding repository instead.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 KiB