chore(monorepo): move everything into subdirectory for easy diffing

This commit is contained in:
Elian Doran
2025-04-18 01:28:32 +03:00
parent 3b69eadbf6
commit 318808f9ec
2646 changed files with 654 additions and 654 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,12 +0,0 @@
# Bookmarks
To easily access selected notes, you can bookmark them. See demo:
![](Bookmarks_bookmarks.gif)
## Bookmark folder
Space in the left panel is limited, and you might want to bookmark many items. One possible solution is to bookmark a folder, so it shows its children:
![](Bookmarks_bookmark-folder.png)
To do this, you need to add a `#bookmarkFolder` label to the note.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 KiB

View File

@@ -1,25 +0,0 @@
# Jump to Note
<figure class="image image-style-align-center"><img style="aspect-ratio:991/403;" src="Jump to Note_image.png" width="991" height="403"></figure>
The _Jump to Note_ function allows easy navigation between notes by searching for their title. In addition to that, it can also trigger a full search or create notes.
## Entering jump to note
* In the <a class="reference-link" href="../UI%20Elements/Launch%20Bar.md">Launch Bar</a>, press ![](1_Jump%20to%20Note_image.png) button.
* Using the keyboard, press <kbd>Ctrl</kbd> + <kbd>J</kbd>.
## Recent notes
Jump to note also has the ability to show the list of recently viewed / edited notes and quickly jump to it.
To access this functionality, click on `Jump to` button on the top. By default, (when nothing is entered into autocomplete), this dialog will show the list of recent notes.
Alternatively you can click on the "time" icon on the right.
<img src="Jump to Note_recent-notes.gif" width="812" height="585">
## Interaction
* By default, when there is no text entered it will display the most recent notes.
* Using the keyboard, use the up or down arrow keys to navigate between items. Press <kbd>Enter</kbd> to open the desired note.
* If the note doesn't exist, it's possible to create it by typing the desired note title and selecting the _Create and link child note_ option.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

View File

@@ -1,8 +0,0 @@
# Note Hoisting
Hoisting is a standard outliner feature which allows you to focus on (or "zoom into") a specific note and its subtree by hiding all parent and sibling notes. Demo:
![](Note%20Hoisting_note-hoistin.gif)
In addition to showing only this subtree, this also narrows both full text search and [“jump to note”](Note%20Navigation.md) to just notes present in hoisted subtree.
See also [Workspace](Workspaces.md) which extends this feature.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

View File

@@ -1,16 +0,0 @@
# Note Navigation
One of the Trilium's goals is to provide fast and comfortable navigation between notes.
## Backwards and forward
You can use alt-left and alt-right to move back and forward in history of viewed pages.
This works identically to browser backwards / forwards, it's actually using built-in browser support for this.
![](Note%20Navigation_image.png)
## Jump to note
This is useful to quickly find and view arbitrary notes - click on `Jump to` button on the top or press <kbd>Ctrl</kbd> + <kbd>J</kbd> . Then type part of the note name and autocomplete will help you pick the desired note.
See <a class="reference-link" href="Jump%20to%20Note.md">Jump to Note</a> for more information.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -1,15 +0,0 @@
# Quick search
<figure class="image image-style-align-center"><img style="aspect-ratio:659/256;" src="Quick search_image.png" width="659" height="256"></figure>
The _Quick search_ function does a full-text search (that is, it searches through the content of notes and not just the title of a note) and displays the result in an easy-to-access manner.
The alternative to the quick search is the <a class="reference-link" href="Search.md">Search</a> function, which opens in a dedicated tab and has support for advanced queries.
For even faster navigation, it's possible to use <a class="reference-link" href="Jump%20to%20Note.md">Jump to Note</a> which will only search through the note titles instead of the content.
## Layout
Based on the <a class="reference-link" href="../UI%20Elements/Vertical%20and%20horizontal%20layout.md">Vertical and horizontal layout</a>, the quick search is placed:
* On the vertical layout, it is displayed right above the <a class="reference-link" href="../UI%20Elements/Note%20Tree.md">Note Tree</a>.
* On the horizontal layout, it is displayed in the <a class="reference-link" href="../UI%20Elements/Launch%20Bar.md">Launch Bar</a>, where it can be positioned just like any other icon.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,29 +0,0 @@
# Search in note
<figure class="image image_resized" style="width:100%;"><img style="aspect-ratio:898/93;" src="Search in note_image.png" width="898" height="93"></figure>
Local search allows you to search within the currently displayed note. 
## Alternatives
* Pressing Ctrl+F while in a browser while not focused in a <a class="reference-link" href="../../Note%20Types/Text.md">Text</a> or a <a class="reference-link" href="../../Note%20Types/Code.md">Code</a> note will trigger the browser's native search. This will also find text that is part of Trilium's UI.
* Pressing Ctrl+F in a <a class="reference-link" href="../../Note%20Types/Text.md">Text</a> note will reveal <a class="reference-link" href="../../Advanced%20Usage/Technologies%20used/CKEditor.md">CKEditor</a>'s search functionality.
## Accessing the search
* On desktop, press<kbd>Ctrl</kbd> + <kbd>F</kbd>
* From the <a class="reference-link" href="../UI%20Elements/Note%20buttons.md">Note buttons</a>, look for the context menu and select _Search in note_.
## Interaction
* Finding:
* Fill in the _Find in text…_ with the text to search for.
* The search will be executed automatically in the background.
* Use up and down arrows of the text box to navigate between results.
* Replacing:
* Fill in the _Find in text_… field with the text to replace.
* Fill in the _Replace with…_ field the text to replace it with.
* Press _Replace_ to replace only the current result.
* Press _Replace all_ to replace all of them at once.
* Options:
* _Case sensitive_ the search will distinguish upper case characters from lower case (e.g. searching for Hello will not match `hello`).
* _Match words_ - the search will find only exact word matches (e.g. searching for `Java` will not match `JavaScript`).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -1,183 +0,0 @@
# Search
<figure class="image"><img style="aspect-ratio:987/725;" src="Search_image.png" width="987" height="725"></figure>
Note search enables you to find notes by searching for text in the title, content, or [attributes](../../Advanced%20Usage/Attributes.md) of the notes. You also have the option to save your searches, which will create a special search note which is visible on your navigation tree and contains the search results as sub-items.
## Accessing the search
* From the <a class="reference-link" href="../UI%20Elements/Launch%20Bar.md">Launch Bar</a>, look for the dedicated search button.
* To limit the search to a note and its children, select _Search from subtree_ from the <a class="reference-link" href="../UI%20Elements/Note%20Tree/Note%20tree%20contextual%20menu.md">Note tree contextual menu</a> or press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>S</kbd>.
## Interaction
To search for notes, click on the magnifying glass icon on the toolbar or press the keyboard [shortcut](../Keyboard%20Shortcuts.md).
1. Set the text to search for in the _Search string_ field.
1. Apart from searching for words ad-literam, there is also the possibility to search for attributes or properties of notes.
2. See the examples below for more information.
2. To limit the search to a note and its sub-children, set a note in _Ancestor_.
1. This value is also pre-filled if the search is triggered from a [hoisted note](Note%20Hoisting.md) or a [workspace](Workspaces.md).
2. To search the entire database, keep the value empty.
3. To limit the search to only a few levels of hierarchy (e.g. look in sub-children but not in sub-sub-children of a note), set the _depth_ field to one of the provided values.
4. In addition to that, the search can be configured via the _Add search options_ buttons, as described in the follow-up section.
5. Press _Search_ to trigger the search. The results are displayed below the search configuration pane.
6. The _Search & Execute actions_ button is only relevant if at least one action has been added (as described in the section below).
7. The _Save to note_ will create a new note with the search configuration. For more information, see <a class="reference-link" href="../../Note%20Types/Saved%20Search.md">Saved Search</a>.
## Search options
Click on which search option to apply from the Add search option section.
* For each search option selected, the search configuration will update to reveal the entry. Each search option will have its own configuration.
* To remove a search option, simply press the X button to the right of it.
The options available are:
1. Search script
1. This feature allows writing a <a class="reference-link" href="../../Note%20Types/Code.md">Code</a> note that will handle the search on its own.
2. Fast search
1. The search will not look into the content of the notes, but it will still look into note titles and attributes, relations (based on the search query).
2. This method can speed up the search considerably for large [databases](../../Advanced%20Usage/Database.md).
3. Include archived
1. <a class="reference-link" href="../Notes/Archived%20Notes.md">Archived Notes</a> will also be included in the results, whereas otherwise they would be ignored.
4. Order by
1. Allows changing the criteria for ordering the results, for example to order by creation date or alphabetically instead of by relevancy (default).
2. It's also possible to change the order (ascending or descending) of the results.
5. Limit
1. Limits the results to a given maximum.
2. This can help if the number of results would otherwise be high, at the cost of not being able to view all the results.
6. Debug
1. This will print additional information in the server log (see <a class="reference-link" href="../../Troubleshooting/Error%20logs.md">Error logs</a>), regarding how the search expression was parsed.
2. This function is especially useful after understanding the search functionality in detail, in order to determine why a complex search query is not working as expected.
7. Action
1. Apart from just searching, it is also possible to apply actions such as to add a label or a relation to the notes that have been matched by the search.
2. Unlike other search configurations, here it's possible to apply the same action multiple times (i.e. in order to be able to apply multiple labels to notes).
3. The actions given are the same as the ones in <a class="reference-link" href="../../Advanced%20Usage/Bulk%20Actions.md">Bulk Actions</a>, which is an alternative for operating directly with notes within the <a class="reference-link" href="../UI%20Elements/Note%20Tree.md">Note Tree</a>.
4. After defining the actions, first press _Search_ to check the matched notes and then press _Search & Execute actions_ to trigger the actions.
### Simple Note Search Examples
* `rings tolkien`: Full-text search to find notes containing both "rings" and "tolkien".
* `"The Lord of the Rings" Tolkien`: Full-text search where "The Lord of the Rings" must match exactly.
* `note.content *=* rings OR note.content *=* tolkien`: Find notes containing "rings" or "tolkien" in their content.
* `towers #book`: Combine full-text and attribute search to find notes containing "towers" and having the "book" label.
* `towers #book or #author`: Search for notes containing "towers" and having either the "book" or "author" label.
* `towers #!book`: Search for notes containing "towers" and not having the "book" label.
* `#book #publicationYear = 1954`: Find notes with the "book" label and "publicationYear" set to 1954.
* `#genre *=* fan`: Find notes with the "genre" label containing the substring "fan". Additional operators include `*=*` for "contains", `=*` for "starts with", `*=` for "ends with", and `!=` for "is not equal to".
* `#book #publicationYear >= 1950 #publicationYear < 1960`: Use numeric operators to find all books published in the 1950s.
* `#dateNote >= TODAY-30`: A "smart search" to find notes with the "dateNote" label within the last 30 days. Supported smart values include NOW +- seconds, TODAY +- days, MONTH +- months, YEAR +- years.
* `~author.title *=* Tolkien`: Find notes related to an author whose title contains "Tolkien".
* `#publicationYear %= '19[0-9]{2}'`: Use the '%=' operator to match a regular expression (regex). This feature has been available since Trilium 0.52.
### Advanced Use Cases
* `~author.relations.son.title = 'Christopher Tolkien'`: Search for notes with an "author" relation to a note that has a "son" relation to "Christopher Tolkien". This can be modeled with the following note structure:
* Books
* Lord of the Rings
* label: “book”
* relation: “author” points to “J. R. R. Tolkien” note
* People
* J. R. R. Tolkien
* relation: “son” points to "Christopher Tolkien" note
* Christopher Tolkien
* `~author.title *= Tolkien OR (#publicationDate >= 1954 AND #publicationDate <= 1960)`: Use boolean expressions and parentheses to group expressions. Note that expressions starting with a parenthesis need an "expression separator sign" (# or ~) prepended.
* `note.parents.title = 'Books'`: Find notes with a parent named "Books".
* `note.parents.parents.title = 'Books'`: Find notes with a grandparent named "Books".
* `note.ancestors.title = 'Books'`: Find notes with an ancestor named "Books".
* `note.children.title = 'sub-note'`: Find notes with a child named "sub-note".
### Search with Note Properties
Notes have properties that can be used in searches, such as `noteId`, `dateModified`, `dateCreated`, `isProtected`, `type`, `title`, `text`, `content`, `rawContent`, `ownedLabelCount`, `labelCount`, `ownedRelationCount`, `relationCount`, `ownedRelationCountIncludingLinks`, `relationCountIncludingLinks`, `ownedAttributeCount`, `attributeCount`, `targetRelationCount`, `targetRelationCountIncludingLinks`, `parentCount`, `childrenCount`, `isArchived`, `contentSize`, `noteSize`, and `revisionCount`.
These properties can be accessed via the `note.` prefix, e.g., `note.type = code AND note.mime = 'application/json'`.
### Order by and Limit
```
#author=Tolkien orderBy #publicationDate desc, note.title limit 10
```
This example will:
1. Find notes with the author label "Tolkien".
2. Order the results by `publicationDate` in descending order.
3. Use `note.title` as a secondary ordering if publication dates are equal.
4. Limit the results to the first 10 notes.
### Negation
Some queries can only be expressed with negation:
```
#book AND not(note.ancestor.title = 'Tolkien')
```
This query finds all book notes not in the "Tolkien" subtree.
## Under the Hood
### Label and Relation Shortcuts
The "full" syntax for searching by labels is:
```
note.labels.publicationYear = 1954
```
For relations:
```
note.relations.author.title *=* Tolkien
```
However, common label and relation searches have shortcut syntax:
```
#publicationYear = 1954
#author.title *=* Tolkien
```
### Separating Full-Text and Attribute Parts
Search syntax allows combining full-text search with attribute-based search seamlessly. For example, `tolkien #book` contains:
1. Full-text tokens - `tolkien`
2. Attribute expressions - `#book`
Trilium detects the separation between full text search and attribute/property search by looking for certain special characters or words that denote attributes and properties (e.g., #, ~, note.). If you need to include these in full-text search, escape them with a backslash so they are processed as regular text:
```
"note.txt"
\#hash
#myLabel = 'Say "Hello World"'
```
### Escaping Special Characters
Special characters can be enclosed in quotes or escaped with a backslash to be used in full-text search:
```
"note.txt"
\#hash
#myLabel = 'Say "Hello World"'
```
Three types of quotes are supported: single, double, and backtick.
### Type Coercion
Label values are technically strings but can be coerced for numeric comparisons:
```
note.dateCreated =* '2019-05'
```
This finds notes created in May 2019. Numeric operators like `#publicationYear >= 1960` convert string values to numbers for comparison.
## Auto-Trigger Search from URL
You can open Trilium and automatically trigger a search by including the search [url encoded](https://meyerweb.com/eric/tools/dencoder/) string in the URL:
`http://localhost:8080/#?searchString=abc`

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

View File

@@ -1,12 +0,0 @@
# Similar Notes
<figure class="image image-style-align-center"><img style="aspect-ratio:1626/540;" src="Similar Notes_image.png" width="1626" height="540"></figure>
The Similar Notes feature tries to identify notes that relate to the current note by looking at the content of the notes, their relationships, as well as the date they were created.
To access the list of similar notes, press the “Similar Notes” tab in the <a class="reference-link" href="../UI%20Elements/Ribbon.md">Ribbon</a>.
## Interaction
* Hover over a note to see a short preview of the note.
* Click over a note to open it in the current view.
* <kbd>Ctrl</kbd> + click a note to open it in a separate tab.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

View File

@@ -1,24 +0,0 @@
# Tree Concepts
This page explains the basic concepts related to the tree structure of notes in TriliumNext.
## Note
A note is the central entity in TriliumNext. For more details, see [Note](../Notes.md).
## Branch
A branch describes the placement of a note within the note tree. Essentially, it is a tuple of `parentNoteId` and `noteId`, indicating that the given note is placed as a child under the specified parent note.
Each note can have multiple branches, meaning any note can be placed in multiple locations within the tree. This concept is referred to as " [cloning](../Notes/Cloning%20Notes.md)."
## Prefix
A prefix is a branch-specific title modifier for a note. If you place your note in two different locations within the tree and want to alter the title slightly in one of those placements, you can use a prefix.
To edit a prefix, right-click on the note in the tree pane and select "Edit branch prefix."
The prefix is not part of the note itself and is not encrypted when the note is protected. This can be useful if you want part of the title to remain visible in the tree for easier navigation, even when the note is protected.
## Subtree
A subtree consists of a particular note (the subtree root) and all its children and descendants. Some operations, such as exporting, work on entire subtrees.

View File

@@ -1,15 +0,0 @@
# Workspaces
Workspace is a concept built up on top of [note hoisting](Note%20Hoisting.md). It is based on the idea that a user has several distinct spheres of interest. An example might be "Personal" and "Work", these two spheres are quite distinct and don't interact together. When I focus on Work, I don't really care about personal notes.
So far workspace consists of these features:
* [note hoisting](Note%20Hoisting.md) - you can "zoom" into a workspace subtree to focus only on the relevant notes
* easy entering of workspace: 
![](1_Workspaces_image.png)
* visual identification of workspace in tabs:
![](Workspaces_image.png)
### Configuration
<figure class="table"><table><thead><tr><th>Label</th><th>Description</th></tr></thead><tbody><tr><td><code>workspace</code></td><td>Marks this note as a workspace, button to enter the workspace is controlled by this</td></tr><tr><td><code>workspaceIconClass</code></td><td>defines box icon CSS class which will be used in tab when hoisted to this note</td></tr><tr><td><code>workspaceTabBackgroundColor</code></td><td>CSS color used in the note tab when hoisted to this note, use any CSS color format, e.g. "lightblue" or "#ddd". See <a href="https://www.w3schools.com/cssref/css_colors.asp">https://www.w3schools.com/cssref/css_colors.asp</a>.</td></tr><tr><td><code>workspaceCalendarRoot</code></td><td>Marking a note with this label will define a new per-workspace calendar for&nbsp;<a class="reference-link" href="../../Advanced%20Usage/Advanced%20Showcases/Day%20Notes.md">Day Notes</a>. If there's no such note, the global calendar will be used.</td></tr><tr><td><code>workspaceTemplate</code></td><td>This note will appear in the selection of available template when creating new note, but only when hoisted into a workspace containing this template</td></tr><tr><td><code>workspaceSearchHome</code></td><td>new search notes will be created as children of this note when hoisted to some ancestor of this workspace note</td></tr><tr><td><code>workspaceInbox</code></td><td>default inbox location for new notes when hoisted to some ancestor of this workspace note</td></tr></tbody></table></figure>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB