Compare commits

...

8 Commits

Author SHA1 Message Date
Elian Doran
859d9dcd04
docs(user): document system requirements
Some checks failed
Checks / main (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Deploy Documentation / Build and Deploy Documentation (push) Has been cancelled
Dev / Test development (push) Has been cancelled
/ Check Docker build (Dockerfile) (push) Has been cancelled
/ Check Docker build (Dockerfile.alpine) (push) Has been cancelled
playwright / main (push) Has been cancelled
Dev / Build Docker image (push) Has been cancelled
Dev / Check Docker build (Dockerfile) (push) Has been cancelled
Dev / Check Docker build (Dockerfile.alpine) (push) Has been cancelled
/ Build Docker images (Dockerfile, ubuntu-24.04-arm, linux/arm64) (push) Has been cancelled
/ Build Docker images (Dockerfile.alpine, ubuntu-latest, linux/amd64) (push) Has been cancelled
/ Build Docker images (Dockerfile.legacy, ubuntu-24.04-arm, linux/arm/v7) (push) Has been cancelled
/ Build Docker images (Dockerfile.legacy, ubuntu-24.04-arm, linux/arm/v8) (push) Has been cancelled
/ Merge manifest lists (push) Has been cancelled
2025-10-31 11:52:40 +02:00
Elian Doran
76dd9baea8
docs(user): document adjusting borders 2025-10-31 11:21:17 +02:00
Elian Doran
82ff5f6660
docs(user): sync 2025-10-31 11:07:22 +02:00
Elian Doran
b52d30c55a
chore(dialog/export): strange order with OPML 2025-10-31 11:05:40 +02:00
Elian Doran
99fd088ff5
chore(share): use same sandbox features for iframe 2025-10-31 10:12:56 +02:00
Elian Doran
945f29c759
feat(share): render webviews using iframe 2025-10-31 10:12:15 +02:00
Elian Doran
98f42887d8
Translations update from Hosted Weblate (#7562) 2025-10-31 09:09:29 +02:00
Eduard Frigola
a1b589148b
Translated using Weblate (Catalan)
Currently translated at 17.8% (69 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ca/
2025-10-31 08:04:01 +01:00
28 changed files with 828 additions and 623 deletions

View File

@ -79,8 +79,8 @@ export default function ExportDialog() {
values={[
{ value: "html", label: t("export.format_html_zip") },
{ value: "markdown", label: t("export.format_markdown") },
{ value: "opml", label: t("export.format_opml") },
{ value: "share", label: t("export.share-format") }
{ value: "share", label: t("export.share-format") },
{ value: "opml", label: t("export.format_opml") }
]}
/>

File diff suppressed because one or more lines are too long

View File

@ -6,22 +6,19 @@ class="image">
<img style="aspect-ratio:1144/660;" src="Sharing_image.png"
width="1144" height="660">
</figure>
<h2>Features, interaction and limitations</h2>
<ul>
<li data-list-item-id="ef22b391cbc76ef956be01dd41a6b60bf">Searching by note title.</li>
<li data-list-item-id="eeab18d3a35263669809a1b89d7b060b9">Automatic dark/light mode based on the user's browser settings.</li>
<li
data-list-item-id="e9a0db9cceacd026e71ad8bda9948542e">Mobile-friendly layout, with sidebar.</li>
<li data-list-item-id="eb9da2104d017644f71fcee18eb17d34b">Collapsible tree with the same note icons as the application.</li>
<li
data-list-item-id="ea2be5ec72816441e702ff6dba92ed30d">Customizable logo.</li>
<li data-list-item-id="e26648726ce48aa84a8c71cf0fe3e4ee2">Toggle button for dark/light mode, which also stores the user preferences.</li>
<li
data-list-item-id="ef143555e0d67d1d389f6bbc226ebdc55">Quick navigation buttons (previous and next note).</li>
<li data-list-item-id="e32f67105cfb655c235d2454d9ec4874f">Displaying the date of the last update of the note.</li>
<li>Searching by note title.</li>
<li>Automatic dark/light mode based on the user's browser settings.</li>
<li>Mobile-friendly layout, with sidebar.</li>
<li>Collapsible tree with the same note icons as the application.</li>
<li>Customizable logo.</li>
<li>Toggle button for dark/light mode, which also stores the user preferences.</li>
<li>Quick navigation buttons (previous and next note).</li>
<li>Displaying the date of the last update of the note.</li>
</ul>
<h3>By note type</h3>
<figure class="table">
<table class="ck-table-resized">
<colgroup>
<col style="width:19.92%;">
@ -169,15 +166,13 @@ class="image">
</tr>
</tbody>
</table>
</figure>
<p>While the sharing feature is powerful, it has some limitations:</p>
<ul>
<li data-list-item-id="e35e0cab1eec05f391623e8279959070c"><strong>Code Notes</strong>: No syntax highlighting.</li>
<li class="ck-list-marker-bold"
data-list-item-id="e36b70bd10c3666c0def874b4ec52db31"><strong>Static Note Tree</strong>
<li><strong>Code Notes</strong>: No syntax highlighting.</li>
<li><strong>Static Note Tree</strong>
</li>
<li data-list-item-id="ef8144aff172d450cf7b4edbf1a430ab9"><strong>Protected Notes</strong>: Cannot be shared.</li>
<li data-list-item-id="ec3761c9dce911b115b840a32eebd18b8"><strong>Include Notes</strong>: Not supported.</li>
<li><strong>Protected Notes</strong>: Cannot be shared.</li>
<li><strong>Include Notes</strong>: Not supported.</li>
</ul>
<p>Some of these limitations may be addressed in future updates.</p>
<h2>Prerequisites</h2>
@ -186,7 +181,7 @@ class="image">
is necessary because the notes will be hosted from the server.</p>
<h2>Sharing a note</h2>
<ol>
<li data-list-item-id="e503f8ad52fe9033ef59212b7b692d69f">
<li>
<p><strong>Enable Sharing</strong>: To share a note, toggle the <code>Shared</code> switch
within the note's interface. Once sharing is enabled, an URL will appear,
which you can click to access the shared note.</p>
@ -195,9 +190,11 @@ class="image">
alt="Share Note">
</p>
</li>
<li data-list-item-id="e9c5083764d919503412f4f7f1cb0e0e0"><strong>Access the Shared Note</strong>: The link provided will open the
<li>
<p><strong>Access the Shared Note</strong>: The link provided will open the
note in your browser. If your server is not configured with a public IP,
the URL will refer to <code>localhost (127.0.0.1)</code>.</li>
the URL will refer to <code>localhost (127.0.0.1)</code>.</p>
</li>
</ol>
<h2>Sharing a note subtree</h2>
<p>When you share a note, you actually share the entire subtree of notes
@ -212,11 +209,11 @@ class="image">
public.</p>
<h2>Security considerations</h2>
<ul>
<li data-list-item-id="ea35f4596f6a8c69a83416766b567c3cd">Shared notes are published on the open internet and can be accessed by
<li>Shared notes are published on the open internet and can be accessed by
anyone with the URL unless the notes are password-protected.</li>
<li data-list-item-id="e34e983d07439b781597d1abaf8b6e297">The URL's randomness does not provide security, so it is crucial not to
<li>The URL's randomness does not provide security, so it is crucial not to
share sensitive information through this feature.</li>
<li data-list-item-id="e94fbe4fb4b9f7806074aba4fe7601cb7">Trilium takes precautions to protect your publicly shared instance from
<li>Trilium takes precautions to protect your publicly shared instance from
leaking information for non-shared notes, including opening a separate
read-only connection to the&nbsp;<a class="reference-link" href="#root/_help_wX4HbRucYSDD">Database</a>.
Depending on your threat model, it might make more sense to use&nbsp;
@ -233,13 +230,12 @@ class="image">
<p>The default design should be a good starting point, but you can customize
it using your own CSS:</p>
<ul>
<li data-list-item-id="e3fdd3f9d73ed0655a94330d0a75790e4"><strong>Custom CSS</strong>: Link a CSS&nbsp;<a class="reference-link"
<li><strong>Custom CSS</strong>: Link a CSS&nbsp;<a class="reference-link"
href="#root/_help_6f9hih2hXXZk">Code</a>&nbsp;note to the shared page by adding
a <code>~shareCss</code> relation to the note. If you want this style to
apply to the entire subtree, make the label inheritable. You can hide the
CSS code note from the tree navigation by adding the <code>#shareHiddenFromTree</code> label.</li>
<li
data-list-item-id="ee0bb81c27f4cd176412d38258d32da39"><strong>Omitting Default CSS</strong>: For extensive styling changes,
<li><strong>Omitting Default CSS</strong>: For extensive styling changes,
use the <code>#shareOmitDefaultCss</code> label to avoid conflicts with Trilium's
<a
href="#root/_help_Wy267RK4M69c">default stylesheet</a>.</li>
@ -257,22 +253,22 @@ class="image">
itself.</p>
<p>The <code>#shareHtmlLocation</code> label accepts values in the format <code>location:position</code>:</p>
<ul>
<li data-list-item-id="ead2588d20ac1fb23e7cb2a6d33d02bcb"><strong>Locations</strong>: <code>head</code>, <code>body</code>, <code>content</code>
<li><strong>Locations</strong>: <code>head</code>, <code>body</code>, <code>content</code>
</li>
<li data-list-item-id="e368323f330b229cb3428266304ebc2b4"><strong>Positions</strong>: <code>start</code>, <code>end</code>
<li><strong>Positions</strong>: <code>start</code>, <code>end</code>
</li>
</ul>
<p>For example:</p>
<ul>
<li data-list-item-id="e2f0cbb70e71902ec26d64b4c10f1b3cf"><code>#shareHtmlLocation=head:start</code> - Injects HTML at the beginning
<li><code>#shareHtmlLocation=head:start</code> - Injects HTML at the beginning
of the <code>&lt;head&gt;</code> section</li>
<li data-list-item-id="e2ac6f7ec36059fc5ea2148bee57d9329"><code>#shareHtmlLocation=head:end</code> - Injects HTML at the end of the <code>&lt;head&gt;</code> section
<li><code>#shareHtmlLocation=head:end</code> - Injects HTML at the end of the <code>&lt;head&gt;</code> section
(default)</li>
<li data-list-item-id="e9fea05a82b09b66521807ae4b08bfd53"><code>#shareHtmlLocation=body:start</code> - Injects HTML at the beginning
<li><code>#shareHtmlLocation=body:start</code> - Injects HTML at the beginning
of the <code>&lt;body&gt;</code> section</li>
<li data-list-item-id="ed33846c38d6e8a631111fc858ecf4963"><code>#shareHtmlLocation=content:start</code> - Injects HTML at the beginning
<li><code>#shareHtmlLocation=content:start</code> - Injects HTML at the beginning
of the content area</li>
<li data-list-item-id="e89347723de7736060ce226d93530a162"><code>#shareHtmlLocation=content:end</code> - Injects HTML at the end of
<li><code>#shareHtmlLocation=content:end</code> - Injects HTML at the end of
the content area</li>
</ul>
<p>If no location is specified, the HTML will be injected at <code>content:end</code> by
@ -290,16 +286,16 @@ for (const attr of parentNote.attributes) {
This will change the URL to <code>http://domain.tld/share/highlighting</code>.</p>
<p><strong>Important</strong>:</p>
<ol>
<li data-list-item-id="edff04cba1df31a2aae23fd2f6a5ee847">Ensure that aliases are unique.</li>
<li data-list-item-id="eea48bfb287b0559450050141243032a9">Using slashes (<code>/</code>) within aliases to create subpaths is not
<li>Ensure that aliases are unique.</li>
<li>Using slashes (<code>/</code>) within aliases to create subpaths is not
supported.</li>
</ol>
<aside class="admonition tip">
<ul>
<li data-list-item-id="e0fcb644d56cb60448a87ddb7831e6043">To easily identify pages that don't have a share alias, run a&nbsp;
<li>To easily identify pages that don't have a share alias, run a&nbsp;
<a
class="reference-link" href="#root/_help_eIg8jdvaoNNd">Search</a>&nbsp;with <code>#!shareAlias</code>.</li>
<li data-list-item-id="e888d6e9d905db9a030755430007e522b">To be able to enter the share alias faster, consider using&nbsp;<a class="reference-link"
<li>To be able to enter the share alias faster, consider using&nbsp;<a class="reference-link"
href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;(for example <code>#label:shareAlias(inheritable)="promoted,alias=Slug,single,text"</code>).</li>
</ul>
</aside>
@ -323,7 +319,6 @@ for (const attr of parentNote.attributes) {
When viewed, the list of shared roots will be displayed at the bottom of
the note.</p>
<h2>Attribute reference</h2>
<figure class="table" style="width:100%;">
<table class="ck-table-resized">
<colgroup>
<col style="width:18.38%;">
@ -411,16 +406,11 @@ for (const attr of parentNote.attributes) {
</tr>
</tbody>
</table>
</figure>
<h3>Customizing logo</h3>
<p>It's possible to adjust the logo which is displayed on the top-left of
the left pane.</p>
<figure class="table" style="width:100%;">
<table class="ck-table-resized">
<colgroup>
<col style="width:19.08%;">
<col style="width:80.92%;">
</colgroup>
<table>
<thead>
<tr>
<th>Attribute</th>
@ -451,14 +441,9 @@ for (const attr of parentNote.attributes) {
</tr>
</tbody>
</table>
</figure>
<h3>Customizing OpenGraph</h3>
<figure class="table" style="width:100%;">
<table class="ck-table-resized">
<colgroup>
<col style="width:19.08%;">
<col style="width:80.92%;">
</colgroup>
<table>
<thead>
<tr>
<th>Attribute</th>
@ -467,7 +452,7 @@ for (const attr of parentNote.attributes) {
</thead>
<tbody>
<tr>
<td><span style="color:#3b3b3b;"><code>#shareOpenGraphColor</code></span>
<td><code>#shareOpenGraphColor</code>
</td>
<td>This adjusts the <code>theme-color</code> meta-property.</td>
</tr>
@ -486,12 +471,12 @@ for (const attr of parentNote.attributes) {
<br><code>~shareOpenGraphImage</code>
</td>
<td>Can be either a label, case in which the value is passed on as-is, or
it can be a relation to an image&nbsp;<a class="reference-link" href="#root/pOsGYCXsbNQG/KSZ04uQ2D1St/_help_W8vYD3Q1zjCR">File</a>.
it can be a relation to an image&nbsp;<a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>.
This controls the <code>og:image</code> meta-property.</td>
</tr>
</tbody>
</table>
</figure>
<h2>Credits</h2>
<p>Since v0.95.0, a new theme was introduced (and enabled by default) which
greatly improves the visual aspect of the Share feature, as well as its

View File

@ -6,18 +6,13 @@
reverse_proxy /share http://localhost:8080/share
}</code></pre>
<p>This is for newer versions where the share functionality is isolated,
for older versions it's required to also include <code>/assets</code>.
<span
class="footnote-reference" data-footnote-reference="" data-footnote-index="1"
data-footnote-id="2b8mg20aol8" role="doc-noteref" id="fnref2b8mg20aol8"><sup><a href="#fn2b8mg20aol8">[1]</a></sup>
</span>
for older versions it's required to also include <code>/assets</code>.<sup><a href="#fn2b8mg20aol8">[1]</a></sup>
</p>
<ol>
<li>
<p><sup><strong><a href="#fnref2b8mg20aol8">^</a></strong></sup>
</p>
<p><a href="https://github.com/orgs/TriliumNext/discussions/7341#discussioncomment-14679897">https://github.com/orgs/TriliumNext/discussions/7341#discussioncomment-14679897</a>
</p>
<ol class="footnote-section footnotes" data-footnote-section="" role="doc-endnotes">
<li class="footnote-item" data-footnote-item="" data-footnote-index="1"
data-footnote-id="2b8mg20aol8" role="doc-endnote" id="fn2b8mg20aol8"><span class="footnote-back-link" data-footnote-back-link="" data-footnote-id="2b8mg20aol8"><sup><strong><a href="#fnref2b8mg20aol8">^</a></strong></sup></span>
<div
class="footnote-content" data-footnote-content="">
<p><a href="https://github.com/orgs/TriliumNext/discussions/7341#discussioncomment-14679897">https://github.com/orgs/TriliumNext/discussions/7341#discussioncomment-14679897</a>&nbsp;</p>
</div>
</li>
</ol>

View File

@ -0,0 +1,21 @@
<p>The desktop version of Trilium supports all three main operating systems:</p>
<ul>
<li data-list-item-id="e9369fe00e2202eddd7638f9115592204">Windows
<ul>
<li data-list-item-id="ecbf2fbdd331d51182332dd3d33aeab15">Windows 11 is officially supported.</li>
<li data-list-item-id="e029be961ae70031059602696f29f72bf">Windows on ARM is also supported</li>
</ul>
</li>
<li data-list-item-id="e87f0cd97f723e8bd59f181622122906b">Linux:
<ul>
<li data-list-item-id="efa1b52fdb55980bee3f3482ee0f55dfa">Most modern distributions are supported, including NixOS.</li>
<li data-list-item-id="efe26984776dbcafc56afcc83a4d1b85b">ARM is supported in <code>aarch64</code> (no ARM v7 support).&nbsp;</li>
</ul>
</li>
<li data-list-item-id="eabb3c5c35295997be8b2579caa6cae1b">macOS
<ul>
<li data-list-item-id="e2848f18f02ba6ded3f20f46e12fecc54">Minimum supported operating system: macOS Monterey&nbsp;</li>
<li data-list-item-id="ea709467c48e79ae0c7e4d3c5e9261505">Both Intel and Apple Silicon devices are supported.</li>
</ul>
</li>
</ul>

View File

@ -0,0 +1,17 @@
<ul>
<li data-list-item-id="edfd91483e74d0b747136f134131b9720">Using Docker, the server can be run on Windows, Linux and macOS devices.</li>
<li
data-list-item-id="efde3b56d3d4f5b167bad52f55637e111">Native binaries are provided for Linux x64 and ARM (<code>aarch64</code>).</li>
</ul>
<h2>Legacy ARM support</h2>
<p>The Docker builds also provide <code>linux/arm/v7</code> and <code>linux/arm/v8</code> platforms.
These platforms are considered legacy since Trilium uses Node.js version
24 which have <a href="https://github.com/nodejs/node/commit/6682861d6f">officially downgraded support</a> for
these platforms to “experimental”.</p>
<p>As a result, Trilium needs to use Node.js 22 for these versions. As soon
as soon Node.js 22 will no longer be compatible, support for <code>armv7</code> and <code>armv8</code> will
be dropped entirely.</p>
<p>Regardless of upstream support, these platforms are supported on a best-effort
basis and are not officially supported by the Trilium development team.
Bug reports are accepted but they will not be treated with priority; contributions
are welcome.</p>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 871 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 B

After

Width:  |  Height:  |  Size: 871 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 473 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 541 B

View File

@ -8,58 +8,59 @@
the desired amount of columns and rows, as indicated in the adjacent figure.</p>
<h2>Formatting toolbar</h2>
<p>When a table is selected, a special formatting toolbar will appear:</p>
<img
src="9_Tables_image.png" width="384"
<p>
<img src="10_Tables_image.png" width="384"
height="100">
</p>
<h2>Navigating a table</h2>
<ul>
<li>Using the mouse:
<li data-list-item-id="e7f46134b097590227ab8def4844112be">Using the mouse:
<ul>
<li>Click on a cell to focus it.</li>
<li>Click the
<img src="10_Tables_image.png"
<li data-list-item-id="e62455762d7530b06d496e0ddb23d2e0f">Click on a cell to focus it.</li>
<li data-list-item-id="e5b8037a928ee05c9137083da09f3c5a4">Click the
<img src="11_Tables_image.png"
width="28" height="27">button at the top or the bottom of a table to insert an empty paragraph
near it.</li>
<li>Click the
<li data-list-item-id="e1d54454a8e1cbe7d5e29d7e262374052">Click the
<img src="5_Tables_image.png"
width="24" height="26">button at the top-left of the table to select it entirely (for easy copy-pasting
or cutting) or drag and drop it to relocate the table.</li>
</ul>
</li>
<li>Using the keyboard:
<li data-list-item-id="eb3673372bf61d20c70aa4787bbb1db3b">Using the keyboard:
<ul>
<li>Use the arrow keys on the keyboard to easily navigate between cells.</li>
<li>It's also possible to use <kbd>Tab</kbd> to go to the next cell and Shift+Tab
<li data-list-item-id="e4eb9ecdc5852d23b7e1b76be1bffe8cf">Use the arrow keys on the keyboard to easily navigate between cells.</li>
<li
data-list-item-id="e010d5a3a937c26f80367271d69687ab6">It's also possible to use <kbd>Tab</kbd> to go to the next cell and Shift+Tab
to go to the previous cell.</li>
<li>Unlike arrow keys, pressing <kbd>Tab</kbd> at the end of the table (last
<li data-list-item-id="e5c75e2a259cd2d0aa1252f2452c28fd6">Unlike arrow keys, pressing <kbd>Tab</kbd> at the end of the table (last
row, last column) will create a new row automatically.</li>
<li>To select multiple cells, hold <kbd>Shift</kbd> while using the arrow keys.</li>
<li data-list-item-id="e86d89dfc2818e132bc6d7f7f48295dba">To select multiple cells, hold <kbd>Shift</kbd> while using the arrow keys.</li>
</ul>
</li>
</ul>
<h2>Resizing cells</h2>
<ul>
<li>Columns can be resized by hovering the mouse over the border of two adjacent
<li data-list-item-id="e327223f3de605b4ab196102167f22219">Columns can be resized by hovering the mouse over the border of two adjacent
cells and dragging it.</li>
<li>By default, the row height is not adjustable using the mouse, but it can
<li data-list-item-id="e2a9150da21e9bd9ab3134c44c016b5cf">By default, the row height is not adjustable using the mouse, but it can
be configured from the cell settings (see below).</li>
<li>To adjust exactly the width (in pixels or percentages) of a cell, select
<li data-list-item-id="ee8e8edc219006eec516c1e813494ddb1">To adjust exactly the width (in pixels or percentages) of a cell, select
the
<img src="8_Tables_image.png" width="19"
height="19">button.</li>
</ul>
<h2>Inserting new rows and new columns</h2>
<ul>
<li>To insert a new column, click on a desired location, then press the
<li data-list-item-id="ebf4db28ad263fbce13bf056e90512914">To insert a new column, click on a desired location, then press the
<img
src="Tables_image.png" width="18" height="20">button from the formatting toolbar and select <em>Insert column left or right.</em>
</li>
<li>To insert a new row, click on a desired location, then press the
<li data-list-item-id="eb53e629e394d8a14c48dd39a61397271">To insert a new row, click on a desired location, then press the
<img src="7_Tables_image.png"
width="20" height="18">button and select <em>Insert row above</em> or <em>below</em>.
<ul>
<li>A quicker alternative to creating a new row while at the end of the table
<li data-list-item-id="e3ba47144529996c9e4455970508a0a01">A quicker alternative to creating a new row while at the end of the table
is to press the <kbd>Tab</kbd> key.</li>
</ul>
</li>
@ -71,9 +72,9 @@ height="100">
width="19" height="19">button from the formatting toolbar.</p>
<p>More options are available by pressing the arrow next to it:</p>
<ul>
<li>Click on a single cell and select Merge cell up/down/right/left to merge
<li data-list-item-id="e57e54996911ec8dbe17deeb300af481d">Click on a single cell and select Merge cell up/down/right/left to merge
with an adjacent cell.</li>
<li>Select <em>Split cell vertically</em> or <em>horizontally</em>, to split
<li data-list-item-id="e4510ddae1afe524dab9bb5fa5c9edd88">Select <em>Split cell vertically</em> or <em>horizontally</em>, to split
a cell into multiple cells (can also be used to undo a merge).</li>
</ul>
<h2>Table properties</h2>
@ -82,18 +83,19 @@ height="100">
width="312" height="311">
</figure>
<p>The table properties can be accessed via the
<img src="12_Tables_image.png"
<img src="13_Tables_image.png"
width="19" height="19">button and allows for the following adjustments:</p>
<ul>
<li>Border (not the border of the cells, but the outer rim of the table),
<li data-list-item-id="e421d2c037e3e17684b6c875f1d119515">Border (not the border of the cells, but the outer rim of the table),
which includes the style (single, double), color and width.</li>
<li>The background color, with none set by default.</li>
<li>The width and height of the table in percentage (must end with <code>%</code>)
<li data-list-item-id="e2e29338b33b5aa3e5b63a914ae412d7d">The background color, with none set by default.</li>
<li data-list-item-id="ee585d003b2f922bbab05dd190070b3e7">The width and height of the table in percentage (must end with <code>%</code>)
or pixels (must end with <code>px</code>).</li>
<li>The alignment of the table.
<li data-list-item-id="e23ac3152d03898b653db8d3849f0f5cc">The alignment of the table.
<ul>
<li>Left or right-aligned, case in which the text will flow next to it.</li>
<li>Centered, case in which text will avoid the table, regardless of the table
<li data-list-item-id="ed90eb8b2432a87fa1fd39fd26e9f2cda">Left or right-aligned, case in which the text will flow next to it.</li>
<li
data-list-item-id="e887b5ce3dc7e47f5e630fbdf0da29862">Centered, case in which text will avoid the table, regardless of the table
width.</li>
</ul>
</li>
@ -106,18 +108,19 @@ height="100">
width="320" height="386">
</figure>
<p>Similarly to table properties, the
<img src="11_Tables_image.png"
<img src="12_Tables_image.png"
width="19" height="19">button opens a popup which adjusts the styling of one or more cells (based
on the user's selection).</p>
<p>The following options can be adjusted:</p>
<ul>
<li>The border style, color and width (same as table properties), but applying
<li data-list-item-id="e9e0801ebcbbb763dc569814c922cde20">The border style, color and width (same as table properties), but applying
to the current cell only.</li>
<li>The background color, with none set by default.</li>
<li>The width and height of the cell in percentage (must end with <code>%</code>)
<li data-list-item-id="ec3f1f0bbae91f118bfc86c5bace6edc9">The background color, with none set by default.</li>
<li data-list-item-id="e93abf34e4f6f6a4732cd8a63577567f4">The width and height of the cell in percentage (must end with <code>%</code>)
or pixels (must end with <code>px</code>).</li>
<li>The padding (the distance of the text compared to the cell's borders).</li>
<li>The alignment of the text, both horizontally (left, centered, right, justified)
<li data-list-item-id="ed65a0f2554a5130beeb7d478710f7bfe">The padding (the distance of the text compared to the cell's borders).</li>
<li
data-list-item-id="e76d8603c089d10e807576cb2e535a388">The alignment of the text, both horizontally (left, centered, right, justified)
and vertically (top, middle or bottom).</li>
</ul>
<p>The cell will immediately update to reflect the changes, but the <em>Save</em> button
@ -127,23 +130,55 @@ height="100">
<img src="4_Tables_image.png"
width="18" height="17">button to insert a caption or a text description of the table, which is
going to be displayed above the table.</p>
<h2>Tables with invisible borders</h2>
<h2>Table borders</h2>
<p>By default, tables will come with a predefined gray border.</p>
<p>To adjust the borders, follow these steps:</p>
<ol>
<li data-list-item-id="e04c95cbf1d8480c634f7ba6310d5c66e">Select the table.</li>
<li data-list-item-id="e61b666fe10bca473400bd66f8fd11f36">In the floating panel, select the <em>Table properties</em> option (
<img
src="14_Tables_image.png" width="21" height="21">).
<ol>
<li data-list-item-id="e2ab1b3f540def81d55ec91fe8a313fb3">Look for the <em>Border</em> section at the top of the newly opened panel.</li>
<li
data-list-item-id="eef63fe5e16f8103d07a308b4b9147fbf">This will control the outer borders of the table.</li>
<li data-list-item-id="eca1a3d01633d7d2d32c854bb39e66a53">Select a style for the border. Generally <em>Single</em> is the desirable
option.</li>
<li data-list-item-id="e7edbe51137f6a7d16d2ca9d7b3f553a2">Select a color for the border.</li>
<li data-list-item-id="e3ad74eae4fddb2fb4c60a1c1efc46950">Select a width for the border, expressed in pixels.&nbsp;</li>
</ol>
</li>
<li data-list-item-id="ed56e2883a25aa417c7f4bfddd7a07df6">Select all the cells of the table and then press the <em>Cell properties </em>option
(
<img src="9_Tables_image.png" width="21" height="21">).
<ol>
<li data-list-item-id="e93dc8de15098fd2c0c5674a24205b712">This will control the inner borders of the table, at cell level.</li>
<li
data-list-item-id="ee4f0deb1a42efa29e3b5147f79e92d3b">Note that it's possible to change the borders individually by selecting
one or more cells, case in which it will only change the borders that intersect
these cells.</li>
<li data-list-item-id="e3af86e5d6096d8afd7413012a9ecb6c6">Repeat the same steps as from step (2).</li>
</ol>
</li>
</ol>
<h3>Tables with invisible borders</h3>
<p>Tables can be set to have invisible borders in order to allow for basic
layouts (columns, grids) of text or <a href="#root/_help_mT0HEkOsz6i1">images</a> without
the distraction of their border:</p>
<ol>
<li>First insert a table with the desired number of columns and rows.</li>
<li>Select the entire table.</li>
<li>In <em>Table properties</em>, set:
<li data-list-item-id="e078bac0af18c7fe8f4ac2272a312e49d">First insert a table with the desired number of columns and rows.</li>
<li
data-list-item-id="ee25683e809fd85e65db655dea9efece5">Select the entire table.</li>
<li data-list-item-id="e66342ca801e71a9aba89fc217fcc66a5">In <em>Table properties</em>, set:
<ol>
<li><em>Style</em> to <em>Single</em>
<li data-list-item-id="edef2e2e5a6a8ac73e36101f4429863d8"><em>Style</em> to <em>Single</em>
</li>
<li><em>Color</em> to <code>transparent</code>
<li data-list-item-id="e6aaccfd6440d2999079364982c0b33fc"><em>Color</em> to <code>transparent</code>
</li>
<li>Width to <code>1px</code>.</li>
<li data-list-item-id="e13494edb598fd972373a368e79540ea1">Width to <code>1px</code>.</li>
</ol>
</li>
<li>In Cell Properties, set the same as on the previous step.</li>
<li data-list-item-id="e15221332e526341aefb8b87e715c0e32">In Cell Properties, set the same as on the previous step.</li>
</ol>
<h2>Markdown import/export</h2>
<p>Simple tables are exported in GitHub-flavored Markdown format (e.g. a

View File

@ -1,10 +1,10 @@
<p>For <a href="#root/_help_CdNpE2pqjmI6">script code notes</a>, Trilium offers
<p>tFor <a href="#root/_help_CdNpE2pqjmI6">script code notes</a>, Trilium offers
an API that gives them access to various features of the application.</p>
<p>There are two APIs:</p>
<ul>
<li>One for the front-end scripts:&nbsp;<a class="reference-link" href="#root/_help_Q2z6av6JZVWm">Frontend API</a>
<li data-list-item-id="e85c7106495c24ab4dd38c430b0af87df">One for the front-end scripts:&nbsp;<a class="reference-link" href="#root/_help_Q2z6av6JZVWm">Frontend API</a>
</li>
<li>One for the back-end scripts:&nbsp;<a class="reference-link" href="#root/_help_MEtfsqa5VwNi">Backend API</a>
<li data-list-item-id="e4f976e19004a21620ed1c6b58f9d1eb3">One for the back-end scripts:&nbsp;<a class="reference-link" href="#root/_help_MEtfsqa5VwNi">Backend API</a>
</li>
</ul>
<p>In both cases, the API resides in a global variable, <code>api</code>,

View File

@ -18,6 +18,7 @@ import { highlightAuto } from "@triliumnext/highlightjs";
import becca from "../becca/becca.js";
import { BAttachment } from "../services/backend_script_entrypoint.js";
import SAttachment from "./shaca/entities/sattachment.js";
import { sanitizeUrl } from "@braintree/sanitize-url";
const shareAdjustedAssetPath = isDev ? assetPath : `../${assetPath}`;
const templateCache: Map<string, string> = new Map();
@ -250,6 +251,8 @@ export function getContent(note: SNote | BNote) {
renderFile(note, result);
} else if (note.type === "book") {
result.isEmpty = true;
} else if (note.type === "webView") {
renderWebView(note, result);
} else {
result.content = `<p>${t("content_renderer.note-cannot-be-displayed")}</p>`;
}
@ -414,6 +417,13 @@ function renderFile(note: SNote | BNote, result: Result) {
}
}
function renderWebView(note: SNote | BNote, result: Result) {
const url = note.getLabelValue("webViewSrc");
if (!url) return;
result.content = `<iframe class="webview" src="${sanitizeUrl(url)}" sandbox="allow-same-origin allow-scripts allow-popups"></iframe>`;
}
export default {
getContent
};

View File

@ -331,6 +331,41 @@
"format": "markdown",
"dataFileName": "Using the desktop application .md",
"attachments": []
},
{
"isClone": false,
"noteId": "Rp0q8bSP6Ayl",
"notePath": [
"pOsGYCXsbNQG",
"Otzi9La2YAUX",
"poXkQfguuA0U",
"Rp0q8bSP6Ayl"
],
"title": "System Requirements",
"notePosition": 20,
"prefix": null,
"isExpanded": false,
"type": "text",
"mime": "text/html",
"attributes": [
{
"type": "label",
"name": "shareAlias",
"value": "system-requirements",
"isInheritable": false,
"position": 30
},
{
"type": "label",
"name": "iconClass",
"value": "bx bx-chip",
"isInheritable": false,
"position": 40
}
],
"format": "markdown",
"dataFileName": "System Requirements.md",
"attachments": []
}
]
},
@ -1151,6 +1186,41 @@
"format": "markdown",
"dataFileName": "Third-party cloud hosting.md",
"attachments": []
},
{
"isClone": false,
"noteId": "iGTnKjubbXkA",
"notePath": [
"pOsGYCXsbNQG",
"Otzi9La2YAUX",
"WOcw2SLH6tbX",
"iGTnKjubbXkA"
],
"title": "System Requirements",
"notePosition": 140,
"prefix": null,
"isExpanded": false,
"type": "text",
"mime": "text/html",
"attributes": [
{
"type": "label",
"name": "shareAlias",
"value": "system-requirements",
"isInheritable": false,
"position": 30
},
{
"type": "label",
"name": "iconClass",
"value": "bx bx-chip",
"isInheritable": false,
"position": 40
}
],
"format": "markdown",
"dataFileName": "System Requirements.md",
"attachments": []
}
]
},
@ -8281,7 +8351,7 @@
"dataFileName": "8_Tables_image.png"
},
{
"attachmentId": "UdhsypjV4pzZ",
"attachmentId": "rrLM5BQCZ5ci",
"title": "image.png",
"role": "image",
"mime": "image/png",
@ -8289,7 +8359,7 @@
"dataFileName": "9_Tables_image.png"
},
{
"attachmentId": "VerzwlO9y6Na",
"attachmentId": "UdhsypjV4pzZ",
"title": "image.png",
"role": "image",
"mime": "image/png",
@ -8297,7 +8367,7 @@
"dataFileName": "10_Tables_image.png"
},
{
"attachmentId": "wYkQvargZlNF",
"attachmentId": "VerzwlO9y6Na",
"title": "image.png",
"role": "image",
"mime": "image/png",
@ -8305,12 +8375,28 @@
"dataFileName": "11_Tables_image.png"
},
{
"attachmentId": "YFGeAN41kvZY",
"attachmentId": "wYkQvargZlNF",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "12_Tables_image.png"
},
{
"attachmentId": "YFGeAN41kvZY",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "13_Tables_image.png"
},
{
"attachmentId": "zRLxHrKJiK8N",
"title": "image.png",
"role": "image",
"mime": "image/png",
"position": 10,
"dataFileName": "14_Tables_image.png"
}
]
}

View File

@ -0,0 +1,12 @@
# System Requirements
The desktop version of Trilium supports all three main operating systems:
* Windows
* Windows 11 is officially supported.
* Windows on ARM is also supported
* Linux:
* Most modern distributions are supported, including NixOS.
* ARM is supported in `aarch64` (no ARM v7 support).
* macOS
* Minimum supported operating system: macOS Monterey
* Both Intel and Apple Silicon devices are supported.

View File

@ -0,0 +1,11 @@
# System Requirements
* Using Docker, the server can be run on Windows, Linux and macOS devices.
* Native binaries are provided for Linux x64 and ARM (`aarch64`).
## Legacy ARM support
The Docker builds also provide `linux/arm/v7` and `linux/arm/v8` platforms. These platforms are considered legacy since Trilium uses Node.js version 24 which have [officially downgraded support](https://github.com/nodejs/node/commit/6682861d6f) for these platforms to “experimental”.
As a result, Trilium needs to use Node.js 22 for these versions. As soon as soon Node.js 22 will no longer be compatible, support for `armv7` and `armv8` will be dropped entirely.
Regardless of upstream support, these platforms are supported on a best-effort basis and are not officially supported by the Trilium development team. Bug reports are accepted but they will not be treated with priority; contributions are welcome.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 871 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 B

After

Width:  |  Height:  |  Size: 871 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 473 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 541 B

View File

@ -9,13 +9,13 @@ To create a table, simply press the table button and select with the mouse the d
When a table is selected, a special formatting toolbar will appear:
<img src="9_Tables_image.png" width="384" height="100">
<img src="10_Tables_image.png" width="384" height="100">
## Navigating a table
* Using the mouse:
* Click on a cell to focus it.
* Click the <img src="10_Tables_image.png" width="28" height="27"> button at the top or the bottom of a table to insert an empty paragraph near it.
* Click the <img src="11_Tables_image.png" width="28" height="27"> button at the top or the bottom of a table to insert an empty paragraph near it.
* Click the <img src="5_Tables_image.png" width="24" height="26"> button at the top-left of the table to select it entirely (for easy copy-pasting or cutting) or drag and drop it to relocate the table.
* Using the keyboard:
* Use the arrow keys on the keyboard to easily navigate between cells.
@ -48,7 +48,7 @@ More options are available by pressing the arrow next to it:
<figure class="image image-style-align-right"><img style="aspect-ratio:312/311;" src="2_Tables_image.png" width="312" height="311"></figure>
The table properties can be accessed via the <img src="12_Tables_image.png" width="19" height="19"> button and allows for the following adjustments:
The table properties can be accessed via the <img src="13_Tables_image.png" width="19" height="19"> button and allows for the following adjustments:
* Border (not the border of the cells, but the outer rim of the table), which includes the style (single, double), color and width.
* The background color, with none set by default.
@ -63,7 +63,7 @@ The table will immediately update to reflect the changes, but the _Save_ button
<figure class="image image-style-align-right"><img style="aspect-ratio:320/386;" src="3_Tables_image.png" width="320" height="386"></figure>
Similarly to table properties, the <img src="11_Tables_image.png" width="19" height="19"> button opens a popup which adjusts the styling of one or more cells (based on the user's selection).
Similarly to table properties, the <img src="12_Tables_image.png" width="19" height="19"> button opens a popup which adjusts the styling of one or more cells (based on the user's selection).
The following options can be adjusted:
@ -79,7 +79,25 @@ The cell will immediately update to reflect the changes, but the _Save_ button m
Press the <img src="4_Tables_image.png" width="18" height="17"> button to insert a caption or a text description of the table, which is going to be displayed above the table.
## Tables with invisible borders
## Table borders
By default, tables will come with a predefined gray border.
To adjust the borders, follow these steps:
1. Select the table.
2. In the floating panel, select the _Table properties_ option (<img src="14_Tables_image.png" width="21" height="21">).
1. Look for the _Border_ section at the top of the newly opened panel.
2. This will control the outer borders of the table.
3. Select a style for the border. Generally _Single_ is the desirable option.
4. Select a color for the border.
5. Select a width for the border, expressed in pixels.
3. Select all the cells of the table and then press the _Cell properties_ option (<img src="9_Tables_image.png" width="21" height="21">).
1. This will control the inner borders of the table, at cell level.
2. Note that it's possible to change the borders individually by selecting one or more cells, case in which it will only change the borders that intersect these cells.
3. Repeat the same steps as from step (2).
### Tables with invisible borders
Tables can be set to have invisible borders in order to allow for basic layouts (columns, grids) of text or [images](Images.md) without the distraction of their border:

View File

@ -1,5 +1,5 @@
# Script API
For [script code notes](../Scripting.md), Trilium offers an API that gives them access to various features of the application.
tFor [script code notes](../Scripting.md), Trilium offers an API that gives them access to various features of the application.
There are two APIs:

View File

@ -53,3 +53,18 @@
body:not(.math-loaded) .math-tex {
visibility: hidden;
}
body.type-webView #main {
max-width: unset;
}
body.type-webView #content {
display: flex;
flex-direction: column;
height: 100%;
}
iframe.webview {
width: 100%;
flex-grow: 1;
}