mirror of
https://github.com/zadam/trilium.git
synced 2026-08-26 23:27:41 +02:00
Merge branch 'main' into electron_newwindow
This commit is contained in:
2
apps/server/src/assets/doc_notes/en/User Guide/!!!meta.json
generated
vendored
2
apps/server/src/assets/doc_notes/en/User Guide/!!!meta.json
generated
vendored
File diff suppressed because one or more lines are too long
@@ -1,21 +1,21 @@
|
||||
<p>The desktop version of Trilium supports all three main operating systems:</p>
|
||||
<ul>
|
||||
<li data-list-item-id="e9369fe00e2202eddd7638f9115592204">Windows
|
||||
<li>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>
|
||||
<li>Windows 11 is officially supported.</li>
|
||||
<li>Windows on ARM is also supported</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li data-list-item-id="e87f0cd97f723e8bd59f181622122906b">Linux:
|
||||
<li>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). </li>
|
||||
<li>Most modern distributions are supported, including NixOS.</li>
|
||||
<li>ARM is supported in <code>aarch64</code> (no ARM v7 support).</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li data-list-item-id="eabb3c5c35295997be8b2579caa6cae1b">macOS
|
||||
<li>macOS
|
||||
<ul>
|
||||
<li data-list-item-id="e2848f18f02ba6ded3f20f46e12fecc54">Minimum supported operating system: macOS Monterey </li>
|
||||
<li data-list-item-id="ea709467c48e79ae0c7e4d3c5e9261505">Both Intel and Apple Silicon devices are supported.</li>
|
||||
<li>Minimum supported operating system: macOS Monterey</li>
|
||||
<li>Both Intel and Apple Silicon devices are supported.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -1,7 +1,6 @@
|
||||
<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>
|
||||
<li>Using Docker, the server can be run on Windows, Linux and macOS devices.</li>
|
||||
<li>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.
|
||||
|
||||
BIN
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Miscellaneous/Patterns of personal knowl.png
generated
vendored
Normal file
BIN
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Miscellaneous/Patterns of personal knowl.png
generated
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 102 KiB |
301
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Miscellaneous/Patterns of personal knowledge.html
generated
vendored
Normal file
301
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Miscellaneous/Patterns of personal knowledge.html
generated
vendored
Normal file
@@ -0,0 +1,301 @@
|
||||
<aside class="admonition note">
|
||||
<p>This article is a description of the original author of Trilium (zadam)
|
||||
in regards with his own knowledge base.</p>
|
||||
</aside>
|
||||
<p>This page contains description of some of the patterns I use to organize
|
||||
information in my knowledge base. This is meant to give some inspiration
|
||||
of how one might create and structure their knowledge base in general and
|
||||
also specifically in Trilium Notes. It also gives some background and justification
|
||||
for some of the design decisions.</p>
|
||||
<h2>Meta patterns</h2>
|
||||
<p>Just to be clear, meta patterns are "patterns of patterns", i.e. patterns
|
||||
appearing in other patterns.</p>
|
||||
<h3>Hierarchical organization of information</h3>
|
||||
<p>Basic meta pattern is that I sort notes (units of information) into a
|
||||
hierarchy - I have some "top level" notes which represent coarse grained
|
||||
organization, these then split into sub-notes defining finer grained organization
|
||||
and so on. I consider this hierarchical (tree) organization very efficient
|
||||
for organization of large amounts of information. A lot of note taking
|
||||
software (such as Evernote) are frustratingly limited in this regard which
|
||||
limits scalability of the software to large amounts of notes.</p>
|
||||
<h4>Scalability</h4>
|
||||
<p>It's important to frame the following (meta) patterns with some idea of
|
||||
how large amount of data are we talking about.</p>
|
||||
<p>My rule of thumb for estimation of size of personal knowledge base is
|
||||
that you can reasonably produce around 10 notes a day, which is 3650 in
|
||||
a year. I plan to use my knowledge base long term (with or without Trilium
|
||||
Notes), probably decades so you can easily get to number 100 000 or even
|
||||
more. Right now, my personal knowledge base has around 10 000 notes.</p>
|
||||
<p>100 000 is a number to which most note taking software doesn't scale well
|
||||
(in both performance and UI). Yet I don't think it's really very much considering
|
||||
a lifetime of knowledge.</p>
|
||||
<h4>Lazy hierarchy</h4>
|
||||
<p>My approach to creating the hierarchy is being lazy - I don't create the
|
||||
structure first and then fill it with notes, instead I create single note
|
||||
for some specific topic and start using this one note. Once the content
|
||||
starts to grow, and I see how <em>some</em> parts could be split out, I move
|
||||
them out into separate sub notes. As an example I have a book review for <em>The Fellowship of the Ring</em>:</p>
|
||||
<ul>
|
||||
<li>Book reviews
|
||||
<ul>
|
||||
<li>The Fellowship of the Ring</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>The note contains basic book info (author, publisher etc.), book highlights
|
||||
with the comments and then overall review. Now it turns out there's far
|
||||
too many book highlights and overall review is also rather long, so I want
|
||||
to change the structure to the following:</p>
|
||||
<ul>
|
||||
<li>Book reviews
|
||||
<ul>
|
||||
<li>The Fellowship of the Ring <em>(still contains basic info)</em>
|
||||
<ul>
|
||||
<li>Highlights</li>
|
||||
<li>Review</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>If I used standard text file stored in a filesystem I would soon run into
|
||||
an annoying problem that in order to split out the Highlights and Review
|
||||
into sub-notes I would also have to convert <em>The Fellowship of the Ring</em> from
|
||||
text file into directory and split out all sections of the note into sub-notes.
|
||||
Instead, Trilium treats all notes as equal - both leaf notes and inner
|
||||
notes can have both text content which allows me to sub-structure only
|
||||
content which needs it.</p>
|
||||
<h3>Sorting notes into multiple places in the hierarchy</h3>
|
||||
<p>While organizing the notes into the hierarchy, you very quickly run into
|
||||
a dilemma - your note seem to belong to two places in the hierarchy equally.
|
||||
As an example - you want to make a note about <a href="https://en.wikipedia.org/wiki/Bash_(Unix_shell)">bash</a> -
|
||||
does it belong to "OS / Linux" or "Programming / Scripting languages"?
|
||||
This is actually a false dichotomy forced down by the limits of the basic
|
||||
tree hierarchy - the answer is <em>of course it belongs to both</em>. This
|
||||
is the reason why Trilium doesn't use standard tree structure (which requires
|
||||
every note to have exactly one parent), but an extension which allows every
|
||||
note to have several parents, thus effectively allowing it to appear in
|
||||
multiple places in the hierarchy. For lack of better term I call this "cloning".
|
||||
The main problem with this term is that it suggests that each clone must
|
||||
have an original, but here all clones are completely equal - effectively
|
||||
there's no original.</p>
|
||||
<p>In tech lingo, it might be better to describe it as a <a href="https://en.wikipedia.org/wiki/Hard_link">hard link</a> with
|
||||
an important difference that it is possible to hard link (clone) a directory
|
||||
(inner note).</p>
|
||||
<h3>Protected notes</h3>
|
||||
<p>I have Trilium Notes opened non-stop. Sometimes I forget to lock my computer
|
||||
when going to the bathroom. Sometimes I let a friend or family member to
|
||||
use my computer for a minute without supervision. They might click on (running)
|
||||
Trilium and inadvertently see a note I really don't want anybody to see
|
||||
(personal diary, credentials). To cover this, Trilium has a concept of
|
||||
"<a href="https://github.com/zadam/trilium/wiki/Protected-notes">protected notes</a>"
|
||||
- protected note is encrypted and on top of that requires the user to enter
|
||||
the password every 5 minutes which guarantees that such note can be in
|
||||
a readable state only for small amount of time. Working with ordinary (not
|
||||
protected) notes don't require password so you're not bothered by extra
|
||||
security when it's not needed.</p>
|
||||
<h3>Archiving notes</h3>
|
||||
<p>Notes can lose relevancy with time - let's say I switch jobs - all the
|
||||
notes specific to the former employer immediately lose most of its import.
|
||||
This doesn't mean I want to delete these notes though - typically I just
|
||||
want them to somehow deprioritize - in Trilium I would do that by assigning
|
||||
an <a href="https://github.com/zadam/trilium/wiki/Attribute-inheritance">inherited</a>
|
||||
<a
|
||||
href="https://github.com/zadam/trilium/wiki/Attributes">label</a> <code>archived</code> to the company root note. The main effect
|
||||
of this label is that all the notes from this sub-tree are filtered out
|
||||
from search results (fast search via note autocomplete is my main <a href="https://github.com/zadam/trilium/wiki/Note-navigation">navigation approach</a>).
|
||||
Apart from this, I also typically move such outdated notes to some less
|
||||
prominent place in the hierarchy.</p>
|
||||
<p>I use archivation also for notes which are not very relevant from their
|
||||
creation - an example might be automatically imported reddit comments.</p>
|
||||
<p>Sometimes there's no clear <em>category</em> split between relevant and
|
||||
non-relevant notes, in that case I just create "<em>OLD</em>" note with <code>archived</code> label
|
||||
and move all irrelevant notes there. So my credentials note might look
|
||||
something like this:</p>
|
||||
<ul>
|
||||
<li>Credentials
|
||||
<ul>
|
||||
<li>Personal
|
||||
<ul>
|
||||
<li>OLD <em>(contains a bunch of notes with credentials for services I don't use anymore)</em>
|
||||
</li>
|
||||
<li>Gmail</li>
|
||||
<li>Github</li>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Patterns</h2>
|
||||
<h3>Day note</h3>
|
||||
<p>Every day has its note which contains or references everything related
|
||||
to the given day. Structure looks like this:</p>
|
||||
<ul>
|
||||
<li>2018
|
||||
<ul>
|
||||
<li>11 - November
|
||||
<ul>
|
||||
<li>26 - Monday</li>
|
||||
<li>27 - Tuesday
|
||||
<ul>
|
||||
<li>subnote 1</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Day note serves as a workspace and note inbox at the same time - it's
|
||||
the default location to create a note when I don't have time to think about
|
||||
proper placement. At the end of the day I typically review my day note
|
||||
and clone the notes into suitable locations in the hierarchy.</p>
|
||||
<p>Trilium has this pattern partly built-in - Trilium understands and can
|
||||
create this Year / Month / Day structure semi-automatically (on API call).
|
||||
There's also global keyboard shortcut <code>CTRL-ALT-P</code> which will
|
||||
create new note in the day note.</p>
|
||||
<p>What notes do I keep under this day note?</p>
|
||||
<ul>
|
||||
<li>TODO list for given day (this can be automated - see <a class="reference-link"
|
||||
href="#root/_help_xYjQUYhpbUEW">Task Manager</a>)</li>
|
||||
<li>Personal diary</li>
|
||||
<li><a href="#root/_help_IakOLONlIfGI">clones</a> of notes I created during this
|
||||
day (which kind of represents what I've been working on).</li>
|
||||
<li>I often clone notes (or sub-trees) of e.g. projects I'm working on at
|
||||
given day so they are at hand</li>
|
||||
<li>I have some <a href="#root/_help_CdNpE2pqjmI6">scripts</a> which allow me to track
|
||||
certain daily metrics (like weight). These are saved into one daily "data
|
||||
note" (actually JSON <a href="#root/_help_6f9hih2hXXZk">code note</a>).
|
||||
<ul>
|
||||
<li>I have other scripts which then help me to visualize these data (see a
|
||||
<a
|
||||
class="reference-link" href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a> example)</li>
|
||||
<li>I have a script which automatically imports all my comments from reddit
|
||||
into the day note.
|
||||
<ul>
|
||||
<li>People are sometimes wondering why. The answer is that I usually put some
|
||||
effort and thought into a comment and that's why I feel it's worth preserving,
|
||||
especially if it can be done automatically.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>For most notes, this day note placement is <em>secondary</em> and their
|
||||
primary location is somewhere else (e.g. for a book review I've been working
|
||||
on it's <em>Book / Reviews</em>, not the day note). So for this pattern
|
||||
to work, ability to <a href="#root/_help_IakOLONlIfGI">clone</a> notes into multiple
|
||||
places is pretty fundamental.</p>
|
||||
<h3>Projects</h3>
|
||||
<p><em>Project</em> is pretty self-explanatory, for me specifically it also
|
||||
means being long term (years) - an example of a project might be Trilium
|
||||
Notes or university studies. Given their longevity, projects can be large
|
||||
and deep, but their structure is very domain specific, and I don't see
|
||||
any common patterns. What's pretty clear is they are often widely interconnected
|
||||
with other parts of the knowledge base - e.g. university credentials are
|
||||
cloned from "Credentials / University" top level notes and Trilium related
|
||||
blog posts are in "Blog / [Name of the blog] / Trilium".</p>
|
||||
<p><em>Epics</em> are the same thing as projects, but differ in scope - they
|
||||
are typically several months long and as such are usually placed into a
|
||||
year note (e.g. <em>2018 / Epics</em>). Epics are often of work nature (also
|
||||
cloned into work note) and personal (e.g. currently I have large epic for
|
||||
moving to a different city).</p>
|
||||
<p>I don't have a term for short term projects (typically several days long),
|
||||
but continuing the scrum analogy I might call them <em>story</em>. These
|
||||
are often placed directly into day notes and manually moved from one day
|
||||
to another (or place into a month note, e.g. <em>2018 / 11 - November</em>).</p>
|
||||
<h3>Credentials</h3>
|
||||
<p>I keep all my credentials in the knowledge base, they are sorted into
|
||||
categories - work related, project related, personal per country etc. These
|
||||
notes are of course <a href="#root/_help_bwg0e8ewQMak">protected</a> and are often
|
||||
cloned into other places (e.g. project credentials are cloned into the
|
||||
project itself). This is a pretty important advantage compared to traditional
|
||||
tools like KeePass - all the relevant information is centralized into one
|
||||
place without compromising security.</p>
|
||||
<h3>People profiles</h3>
|
||||
<p>This might seem creepy to some, but I keep a profile on most people. It
|
||||
contains pretty standard things like date of birth, contacts, address,
|
||||
but also current and previous employments, their hobbies and worldviews
|
||||
and sometimes even important (IM/mail/meatspace) conversations. Just about
|
||||
everything I find notable. It helps to refresh some basic info before meeting
|
||||
people, especially if you haven't been in touch in a while. It gets pretty
|
||||
awkward to ask for the tenth time where do they work for example, because
|
||||
you keep forgetting it.</p>
|
||||
<p>Naturally I have a lot of (extended) family members, friends, acquaintances
|
||||
etc. so I need some way to sort them. My main method is to sort them by
|
||||
social circle (work, high school, sports club etc.), sometimes also by
|
||||
their town of residence. Family <em>circle</em> is still too large so the
|
||||
further organization is by <em>clan</em> (as in "Smiths"). Some people are
|
||||
members of several such circles, so they are just cloned into multiple
|
||||
places.</p>
|
||||
<p>For family specifically it's pretty useful to create <a href="#root/_help_iRwzGnHPzonm">relation map</a> to
|
||||
visualize relationships:</p>
|
||||
<figure class="image">
|
||||
<img style="aspect-ratio:941/758;" src="Patterns of personal knowl.png"
|
||||
width="941" height="758">
|
||||
</figure>
|
||||
<p><a class="reference-link" href="#root/_help_lQcnSv5DMSe1">[missing note]</a>
|
||||
</p>
|
||||
<h3>Books</h3>
|
||||
<p>Of course, I keep standard "To read" list. I also keep a record on the
|
||||
books I've read - typically one book has one subtree where the root has
|
||||
some basic info like author, page count, publication date, date started,
|
||||
date finished (in the form of <a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>).
|
||||
I also write a (private) review and keep list of highlights from Kindle,
|
||||
optionally with some commentary, these are usually stored in sub notes
|
||||
(unless they are pretty short).</p>
|
||||
<p>To keep the list of books manageable, I sort them per year (of reading
|
||||
them), this also gives me some basic overview of "reading performance"
|
||||
for given year. I plan to create a <a href="#root/_help_CdNpE2pqjmI6">script</a> which
|
||||
would show some timeline chart visualizing book attributes <code>dateStarted</code> - <code>dateFinished</code> to
|
||||
have nicer view of my reading sprints and trends.</p>
|
||||
<p>Some specific authors also have their own note which contains cloned book
|
||||
reviews, links to interviews and other related resources.</p>
|
||||
<p>I have similar system for movies and TV shows, but not as sophisticated.</p>
|
||||
<h3>Personal diary</h3>
|
||||
<p>This is a place to reflect on events, experiences, new findings etc. This
|
||||
can help you get deeper understanding of your inner self, clarify your
|
||||
thinking and make better decisions as a result.</p>
|
||||
<p>I sort personal diary notes directly under <em>day note</em> (explained
|
||||
above), but it can be cloned also to e.g. "trip note" (if the diary note
|
||||
is about given trip) or to person's profile (if the person plays a role
|
||||
in the diary note). All my diary notes are <a href="#root/_help_bwg0e8ewQMak">protected</a> since
|
||||
they are usually pretty sensitive.</p>
|
||||
<h3>Documents</h3>
|
||||
<p>I keep all my personal documents (ID, passport, education certificates
|
||||
...) scanned in the knowledge base. They are <a href="#root/_help_cbkrhQjrkKrh">synchronized</a> across
|
||||
every PC which provides decent backup and makes them available everywhere.</p>
|
||||
<p>Advantage compared to e.g. keeping them in Dropbox or Google Drive is
|
||||
that they are not stored on some 3rd party server and they can be encrypted
|
||||
(<a href="#root/_help_bwg0e8ewQMak">protected</a>).</p>
|
||||
<h3>Inventory</h3>
|
||||
<p>Inventory contains documents and other relevant importation for my important
|
||||
belongings - e.g. for car you can keep the registration card, maintenance
|
||||
record, related costs etc. I also keep inventory for some items personally
|
||||
important to me - mainly computers, phones, cameras and similar electronics.
|
||||
This can be practical at times but also provides sentimental value.</p>
|
||||
<h3>Topic knowledge base</h3>
|
||||
<p>This where I store hard "knowledge" - summarized topics and findings from
|
||||
different domains. Topics can range from traditional sciences - physics,
|
||||
history, economy to philosophy, mental models, apps (notes about specific
|
||||
apps I use) etc. Of course this is very subjective - given what I do, my
|
||||
Physics sub-tree is pretty sparse compared to my Programming subtree.</p>
|
||||
<h3>Work knowledge base</h3>
|
||||
<p>I usually keep top level note for the company I currently work at (past
|
||||
jobs are moved elsewhere). I track basic organization of the company (divisions,
|
||||
business units), who is who (<a href="#root/_help_iRwzGnHPzonm">relation maps</a>)
|
||||
are again useful for visualization), projects I work at etc.</p>
|
||||
<p>There's a number of credentials to various company services I need to
|
||||
use. Companies usually have a bunch of complex processes and tools. I record
|
||||
meeting minutes, link to the company wiki (which is usually difficult to
|
||||
find relevant info). In general there's a lot of company specific information
|
||||
I need to know or need have them at hand in a nice structure I can understand.
|
||||
Often it's just copy pasting and reshuffling of existing information into
|
||||
something more understandable for me.</p>
|
||||
<p>From my experience, keeping this makes me more productive and even more
|
||||
importantly dramatically reduces frustration and stress.</p>
|
||||
<h2>Conclusion</h2>
|
||||
<p>I could probably go on with more patterns (e.g. study notes, travelling),
|
||||
but I think you get the idea. Whatever is important in your life, it probably
|
||||
makes sense to document and track it.</p>
|
||||
20
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Miscellaneous/Privacy Policy.html
generated
vendored
Normal file
20
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Miscellaneous/Privacy Policy.html
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
<h3>Trilium Notes</h3>
|
||||
<p>Trilium Notes does not collect/send any data from the user's installation,
|
||||
i.e. no analytics, no telemetry etc. The data flows only between user controlled
|
||||
/ installed applications, without any intermediary.</p>
|
||||
<p>Automatic network activity consists of:</p>
|
||||
<ul>
|
||||
<li>Trilium periodically queries URL <a href="https://github.com/TriliumNext/Trilium/releases">https://github.com/TriliumNext/Trilium/releases</a> to
|
||||
see if there's a new stable version released. (check only, there's no automatic
|
||||
download and/or installation).</li>
|
||||
<li>Trilium will download spelling dictionaries automatically as needed based
|
||||
on language settings</li>
|
||||
</ul>
|
||||
<h3>Trilium Web Clipper</h3>
|
||||
<p>Trilium Web Clipper does not collect/send any data from the user's installation,
|
||||
i.e. no analytics, no telemetry etc. The data flows only between user controlled
|
||||
/ installed applications, without any intermediary.</p>
|
||||
<h3>Trilium Sender for Android</h3>
|
||||
<p>Trilium Sender for Android does not collect/send any data from the user's
|
||||
installation, i.e. no analytics, no telemetry etc. The data flows only
|
||||
between user controlled / installed applications, without any intermediary.</p>
|
||||
342
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Tables.html
generated
vendored
342
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Tables.html
generated
vendored
@@ -8,182 +8,178 @@
|
||||
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>
|
||||
<p>
|
||||
<img src="10_Tables_image.png" width="384"
|
||||
height="100">
|
||||
</p>
|
||||
<img
|
||||
src="10_Tables_image.png" width="384"
|
||||
height="100">
|
||||
|
||||
<h2>Navigating a table</h2>
|
||||
<ul>
|
||||
<li data-list-item-id="e7f46134b097590227ab8def4844112be">Using the mouse:
|
||||
<ul>
|
||||
<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 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 data-list-item-id="eb3673372bf61d20c70aa4787bbb1db3b">Using the keyboard:
|
||||
<ul>
|
||||
<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 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 data-list-item-id="e86d89dfc2818e132bc6d7f7f48295dba">To select multiple cells, hold <kbd>Shift</kbd> while using the arrow keys.</li>
|
||||
<ul>
|
||||
<li>Using the mouse:
|
||||
<ul>
|
||||
<li>Click on a cell to focus it.</li>
|
||||
<li>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
|
||||
<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:
|
||||
<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
|
||||
to go to the previous cell.</li>
|
||||
<li>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>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Resizing cells</h2>
|
||||
<ul>
|
||||
<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 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 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 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 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 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>
|
||||
</ul>
|
||||
<h2>Merging cells</h2>
|
||||
<p>To merge two or more cells together, simply select them via drag &
|
||||
drop and press the
|
||||
<img src="1_Tables_image.png"
|
||||
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 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 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>
|
||||
<figure class="image image-style-align-right">
|
||||
<img style="aspect-ratio:312/311;" src="2_Tables_image.png"
|
||||
width="312" height="311">
|
||||
</figure>
|
||||
<p>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:</p>
|
||||
<ul>
|
||||
<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 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 data-list-item-id="e23ac3152d03898b653db8d3849f0f5cc">The alignment of the table.
|
||||
<ul>
|
||||
<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>
|
||||
<h2>Resizing cells</h2>
|
||||
<ul>
|
||||
<li>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
|
||||
be configured from the cell settings (see below).</li>
|
||||
<li>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>
|
||||
</li>
|
||||
</ul>
|
||||
<p>The table will immediately update to reflect the changes, but the <em>Save</em> button
|
||||
must be pressed for the changes to persist.</p>
|
||||
<h2>Cell properties</h2>
|
||||
<figure class="image image-style-align-right">
|
||||
<img style="aspect-ratio:320/386;" src="3_Tables_image.png"
|
||||
width="320" height="386">
|
||||
</figure>
|
||||
<p>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).</p>
|
||||
<p>The following options can be adjusted:</p>
|
||||
<ul>
|
||||
<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 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 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
|
||||
must be pressed for the changes to persist.</p>
|
||||
<h2>Caption</h2>
|
||||
<p>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.</p>
|
||||
<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">).
|
||||
<h2>Inserting new rows and new columns</h2>
|
||||
<ul>
|
||||
<li>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
|
||||
<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
|
||||
is to press the <kbd>Tab</kbd> key.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Merging cells</h2>
|
||||
<p>To merge two or more cells together, simply select them via drag &
|
||||
drop and press the
|
||||
<img src="1_Tables_image.png"
|
||||
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
|
||||
with an adjacent cell.</li>
|
||||
<li>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>
|
||||
<figure class="image image-style-align-right">
|
||||
<img style="aspect-ratio:312/311;" src="2_Tables_image.png"
|
||||
width="312" height="311">
|
||||
</figure>
|
||||
<p>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:</p>
|
||||
<ul>
|
||||
<li>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>)
|
||||
or pixels (must end with <code>px</code>).</li>
|
||||
<li>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
|
||||
width.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>The table will immediately update to reflect the changes, but the <em>Save</em> button
|
||||
must be pressed for the changes to persist.</p>
|
||||
<h2>Cell properties</h2>
|
||||
<figure class="image image-style-align-right">
|
||||
<img style="aspect-ratio:320/386;" src="3_Tables_image.png"
|
||||
width="320" height="386">
|
||||
</figure>
|
||||
<p>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).</p>
|
||||
<p>The following options can be adjusted:</p>
|
||||
<ul>
|
||||
<li>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>)
|
||||
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)
|
||||
and vertically (top, middle or bottom).</li>
|
||||
</ul>
|
||||
<p>The cell will immediately update to reflect the changes, but the <em>Save</em> button
|
||||
must be pressed for the changes to persist.</p>
|
||||
<h2>Caption</h2>
|
||||
<p>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.</p>
|
||||
<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>Select the table.</li>
|
||||
<li>In the floating panel, select the <em>Table properties</em> option (
|
||||
<img
|
||||
src="14_Tables_image.png" width="21"
|
||||
height="21">).
|
||||
<ol>
|
||||
<li>Look for the <em>Border</em> section at the top of the newly opened panel.</li>
|
||||
<li>This will control the outer borders of the table.</li>
|
||||
<li>Select a style for the border. Generally <em>Single</em> is the desirable
|
||||
option.</li>
|
||||
<li>Select a color for the border.</li>
|
||||
<li>Select a width for the border, expressed in pixels.</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>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="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. </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 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 data-list-item-id="edef2e2e5a6a8ac73e36101f4429863d8"><em>Style</em> to <em>Single</em>
|
||||
</li>
|
||||
<li data-list-item-id="e6aaccfd6440d2999079364982c0b33fc"><em>Color</em> to <code>transparent</code>
|
||||
</li>
|
||||
<li data-list-item-id="e13494edb598fd972373a368e79540ea1">Width to <code>1px</code>.</li>
|
||||
<li>This will control the inner borders of the table, at cell level.</li>
|
||||
<li>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>Repeat the same steps as from step (2).</li>
|
||||
</ol>
|
||||
</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
|
||||
series of <code>|</code> items). If the table is found to be more complex
|
||||
(it contains HTML elements, has custom sizes or images), the table is converted
|
||||
to a HTML one instead.</p>
|
||||
<p>Generally formatting loss should be minimal when exported to Markdown
|
||||
due to the fallback to HTML formatting.</p>
|
||||
</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:
|
||||
<ol>
|
||||
<li><em>Style</em> to <em>Single</em>
|
||||
</li>
|
||||
<li><em>Color</em> to <code>transparent</code>
|
||||
</li>
|
||||
<li>Width to <code>1px</code>.</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>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
|
||||
series of <code>|</code> items). If the table is found to be more complex
|
||||
(it contains HTML elements, has custom sizes or images), the table is converted
|
||||
to a HTML one instead.</p>
|
||||
<p>Generally formatting loss should be minimal when exported to Markdown
|
||||
due to the fallback to HTML formatting.</p>
|
||||
4
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Script API.html
generated
vendored
4
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Script API.html
generated
vendored
@@ -2,9 +2,9 @@
|
||||
an API that gives them access to various features of the application.</p>
|
||||
<p>There are two APIs:</p>
|
||||
<ul>
|
||||
<li data-list-item-id="e85c7106495c24ab4dd38c430b0af87df">One for the front-end scripts: <a class="reference-link" href="#root/_help_Q2z6av6JZVWm">Frontend API</a>
|
||||
<li>One for the front-end scripts: <a class="reference-link" href="#root/_help_Q2z6av6JZVWm">Frontend API</a>
|
||||
</li>
|
||||
<li data-list-item-id="e4f976e19004a21620ed1c6b58f9d1eb3">One for the back-end scripts: <a class="reference-link" href="#root/_help_MEtfsqa5VwNi">Backend API</a>
|
||||
<li>One for the back-end scripts: <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>,
|
||||
|
||||
@@ -4,6 +4,7 @@ import type { Application } from "express";
|
||||
import dayjs from "dayjs";
|
||||
import { type SQLiteSessionStore } from "./session_parser.js";
|
||||
import { SessionData } from "express-session";
|
||||
import cls from "../services/cls.js";
|
||||
|
||||
let app: Application;
|
||||
let sessionStore: SQLiteSessionStore;
|
||||
@@ -106,7 +107,7 @@ describe("Login Route test", () => {
|
||||
expect(expiry).toBeTruthy();
|
||||
|
||||
vi.setSystemTime(expiry!);
|
||||
vi.advanceTimersByTime(CLEAN_UP_INTERVAL);
|
||||
cls.init(() => vi.advanceTimersByTime(CLEAN_UP_INTERVAL));
|
||||
({ session } = await getSessionFromCookie(setCookieHeader));
|
||||
expect(session).toBeFalsy();
|
||||
});
|
||||
|
||||
@@ -41,6 +41,14 @@ function getDefaultKeyboardActions() {
|
||||
scope: "window",
|
||||
ignoreFromCommandPalette: true
|
||||
},
|
||||
{
|
||||
actionName: "openTodayNote",
|
||||
friendlyName: t("hidden-subtree.open-today-journal-note-title"),
|
||||
iconClass: "bx bx-calendar",
|
||||
defaultShortcuts: [],
|
||||
description: t("hidden-subtree.open-today-journal-note-title"),
|
||||
scope: "window"
|
||||
},
|
||||
{
|
||||
actionName: "commandPalette",
|
||||
friendlyName: t("keyboard_action_names.command-palette"),
|
||||
|
||||
Reference in New Issue
Block a user