Compare commits

...

4845 Commits

Author SHA1 Message Date
Elian Doran
2665496022
chore(docs): revert changes to HTML for diffing purposes 2025-12-09 18:46:53 +02:00
Elian Doran
44515f3cbb
Merge remote-tracking branch 'origin/main' into feat/improve-docs-take1 2025-12-09 18:45:09 +02:00
Elian Doran
9445e64c2e
Translations update from Hosted Weblate (#8004) 2025-12-09 17:49:32 +02:00
Matheus Fongaro (MatioZG)
e6fba03ba7
Translated using Weblate (Portuguese (Brazil))
Currently translated at 3.2% (5 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/pt_BR/
2025-12-09 16:16:40 +01:00
green
b027ca5c09
Translated using Weblate (Japanese)
Currently translated at 100.0% (1646 of 1646 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-12-09 16:16:39 +01:00
Elian Doran
e98df30500
fix(popup-editor): broken title bar layout 2025-12-09 17:16:29 +02:00
Elian Doran
111c44dadf
fix(content_header): z-index issues 2025-12-09 17:11:28 +02:00
Elian Doran
cb31c25e6c
fix(content_header): note icon dropdown broken when scrolling 2025-12-09 17:08:03 +02:00
Elian Doran
5d59c953c2
fix(layout): title row background in settings 2025-12-09 16:39:31 +02:00
Elian Doran
a2cff42981
fix(layout): scrollbar design in code note 2025-12-09 16:31:47 +02:00
Elian Doran
cae892a971
fix(layout): title not visible on dark code theme 2025-12-09 16:27:19 +02:00
Elian Doran
f8447d923e
feat(ribbon): hide when in options 2025-12-09 16:22:03 +02:00
Elian Doran
3b8dabc9d2
Back/forward navigation in tab bar (#8003) 2025-12-09 16:11:17 +02:00
Elian Doran
cda39e967c
chore(tab_navigation): address requested changes 2025-12-09 16:02:24 +02:00
Elian Doran
7da9367dc9
fix(tab_navigation): affecting server and mobile views 2025-12-09 15:59:15 +02:00
Elian Doran
82d97ef26f
feat(tab_navigation): hide buttons if launcher ones are used 2025-12-09 15:30:46 +02:00
Elian Doran
9e094f1d96
feat(tab_navigation): add it to horizontal layout as well 2025-12-09 15:14:13 +02:00
Elian Doran
da7e15c268
refactor(tab_navigation): sort imports 2025-12-09 15:06:54 +02:00
Elian Doran
24806a810c
feat(tab_navigation): display note icon in history navigation 2025-12-09 15:02:52 +02:00
Elian Doran
a2ace4510a
Translations update from Hosted Weblate (#8000) 2025-12-09 15:00:26 +02:00
Elian Doran
5c8132088f
feat(client): use chevrons to display note path 2025-12-09 14:49:19 +02:00
Elian Doran
7ee060b228
feat(tab_navigation): improve indicator for current item in context menu 2025-12-09 14:41:17 +02:00
Elian Doran
4b2a4b8f7b
feat(tab_navigation): reflect state of history by disabling the buttons 2025-12-09 14:29:45 +02:00
Elian Doran
5a668ede01
chore(tab_navigation): reintroduce history cleaning 2025-12-09 14:24:39 +02:00
Elian Doran
9e099444b6
feat(tab_navigation): functional context menu 2025-12-09 14:23:06 +02:00
Elian Doran
e3f5b3535a
feat(tab_navigation): functional back/forward buttons 2025-12-09 14:10:11 +02:00
Elian Doran
346ad1e8a3
feat(tab_navigation): add the buttons on vertical layout 2025-12-09 14:06:57 +02:00
Elian Doran
2a9558e9c5
style(ribbon): make icons slightly bigger 2025-12-09 13:18:25 +02:00
Hosted Weblate
c324f66aef
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-12-09 12:15:20 +01:00
Elian Doran
e688f2cdb6
Add breadcrumbs to navigation (#7995) 2025-12-09 13:15:03 +02:00
Elian Doran
2ff8762a22
chore(client): fix typecheck 2025-12-09 13:07:41 +02:00
Elian Doran
4d75221938
chore(breadcrumbs): address requested changes 2025-12-09 12:41:54 +02:00
Elian Doran
658b699b71
fix(collections/geomap): fake floating buttons mispositioned 2025-12-09 12:24:28 +02:00
Elian Doran
72b0d03546
chore(layout): remove some title margins 2025-12-09 12:23:05 +02:00
Elian Doran
19980807f2
style(ribbon): fix some alignment issues & decrease button size 2025-12-09 12:20:27 +02:00
Elian Doran
3514e3d057
fix(floating_buttons): wrong position when at the top of the note 2025-12-09 11:46:16 +02:00
Elian Doran
fb6c82740c
chore(ribbon): remove top transition completely 2025-12-09 11:38:04 +02:00
Elian Doran
8df5a010c9
fix(ribbon): note buttons cut off 2025-12-09 11:36:00 +02:00
Elian Doran
895e9b8bf0
chore(client/layout): reduce transitions 2025-12-09 11:30:18 +02:00
Elian Doran
bfcf85e0d2
fix(client/layout): content header height not properly resized when switching notes 2025-12-09 11:27:05 +02:00
Elian Doran
5770222304
fix(client/floating_buttons): clipped by floating content header 2025-12-09 11:08:28 +02:00
Elian Doran
d5d2815bdf
fix(client/floating_buttons): clipped by ribbon 2025-12-09 09:20:31 +02:00
Elian Doran
7fc3d413e5
fix(client): 1px scroll in full-height note 2025-12-09 09:13:18 +02:00
Elian Doran
474228b630
style(client): remove bottom border & box-shadow for content header 2025-12-09 08:22:51 +02:00
Elian Doran
0805e077a1
feat(ribbon): basic implementation for scroll pinning 2025-12-09 08:18:27 +02:00
Elian Doran
6b059a9a75
feat(ribbon): context menu for root item 2025-12-09 08:01:52 +02:00
Elian Doran
7377e4e34d
chore(ribbon): improve paddings slightly 2025-12-09 07:58:59 +02:00
Elian Doran
6fac947d9c
chore(ribbon): address requested changes 2025-12-09 07:50:21 +02:00
Elian Doran
5973e5ca26
chore(ribbon): remove label for the root entirely 2025-12-09 07:46:46 +02:00
Elian Doran
6570a55e7e
Translations update from Hosted Weblate (#7993) 2025-12-08 23:56:13 +02:00
Elian Doran
608ab53933
chore(ribbon): reduce note title padding 2025-12-08 23:41:17 +02:00
Elian Doran
05679f7a8d
feat(ribbon): prototype sticky ribbon 2025-12-08 23:33:55 +02:00
noobhjy
f4838bb3b5
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.1% (115 of 116 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/zh_Hans/
2025-12-08 21:21:24 +00:00
pythaac
edb2a65196
Translated using Weblate (Korean)
Currently translated at 61.8% (94 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ko/
2025-12-08 21:21:23 +00:00
Hosted Weblate
fd721cac51
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-12-08 21:21:23 +00:00
pythaac
a1ff3cc8f7
Translated using Weblate (Korean)
Currently translated at 57.2% (87 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ko/
2025-12-08 21:21:21 +00:00
Adorian Doran
3fa6b264e5 style/note colors: include the original custom color 2025-12-08 23:18:14 +02:00
Elian Doran
fcf51ec6da
chore(eslint): apply to .tsx as well 2025-12-08 23:14:09 +02:00
Elian Doran
d15b5f8cbc
style(next): basic styling of ribbon as a floating toolbar 2025-12-08 23:13:58 +02:00
Elian Doran
ef3cbcac6d
refactor(breadcrumb): fix eslint issues 2025-12-08 23:09:00 +02:00
Elian Doran
b16893c4d2
feat(breadcrumb): collapse items if the list is too big 2025-12-08 23:03:31 +02:00
Elian Doran
a365814aaa
feat(breadcrumb): improve overflow slightly 2025-12-08 22:54:31 +02:00
Elian Doran
eca2116adc
feat(breadcrumb): make the root note clickable 2025-12-08 22:46:04 +02:00
Elian Doran
4cfa403657
feat(breadcrumb): apply ellipsis to dropdown 2025-12-08 22:40:37 +02:00
Elian Doran
70ded4c2cd
chore(breadcrumb): use bold for highlighting active entry 2025-12-08 22:38:06 +02:00
Elian Doran
3fe45db6ef
feat(breadcrumb): improve overflow support 2025-12-08 22:17:49 +02:00
Elian Doran
11467775b6
feat(breadcrumb): basic overflow support 2025-12-08 22:09:46 +02:00
Elian Doran
1e5fcf635e
feat(breadcrumb): show root title if it's the one active 2025-12-08 22:05:09 +02:00
Elian Doran
223ba4643f
fix(breadcrumb): breadcrumb shown if there are no children 2025-12-08 21:57:51 +02:00
Elian Doran
200fd76929
feat(breadcrumb): display a checkbox for the current note 2025-12-08 21:52:36 +02:00
Elian Doran
c5c4ecd6e6
feat(breadcrumb): show current item 2025-12-08 17:04:08 +02:00
Elian Doran
bedca9f82c
feat(breadcrumb): hide root icon 2025-12-08 16:45:26 +02:00
Elian Doran
adc356eff3
fix(breadcrumb): navigation on first level not working 2025-12-08 16:41:06 +02:00
Elian Doran
c4285772b3
feat(breadcrumb): basic navigation in separator 2025-12-08 16:34:40 +02:00
Elian Doran
a02235f2bd
feat(breadcrumb): set up dropdown 2025-12-08 16:03:12 +02:00
Elian Doran
5f215b14c2
feat(breadcrumb): start implementing interactive breadcrumbs 2025-12-08 16:01:34 +02:00
Elian Doran
6e29fe8d58
feat(breadcrumb): hide preview 2025-12-08 15:56:03 +02:00
Elian Doran
43ceb1982d
feat(breadcrumb): hide last note 2025-12-08 15:53:17 +02:00
Elian Doran
d02ec47d77
feat(breadcrumb): get breadcrumb to render 2025-12-08 15:16:06 +02:00
Elian Doran
9942950710
feat(layout): relocate title into scrollable region 2025-12-08 14:54:57 +02:00
Elian Doran
a6682be251
fix(webview): layout issues when when no webviewSrc 2025-12-08 14:21:59 +02:00
Elian Doran
baee2cd6b2
chore(scripts): add proper typechecking 2025-12-08 14:13:18 +02:00
Elian Doran
3ee8eac635
chore(readme): order languages alphabetically 2025-12-08 14:13:17 +02:00
Elian Doran
ce5a775160
Translations update from Hosted Weblate (#7991) 2025-12-08 13:22:19 +02:00
Elian Doran
2cf66d1c53
Delete CNAME 2025-12-08 12:59:39 +02:00
Hosted Weblate
eaee67d742
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-12-08 11:59:30 +01:00
Elian Doran
c681496b1b
chore(readme): fix links to old docs 2025-12-08 12:58:48 +02:00
Elian Doran
829d3e046d
chore(readme): fix links to docs 2025-12-08 12:51:07 +02:00
Elian Doran
5c8df540db
chore(readme): fix language switcher links (closes #7246) 2025-12-08 12:43:00 +02:00
Elian Doran
8920e6e448
chore(readme): disable translation for language switcher 2025-12-08 12:00:30 +02:00
Elian Doran
3cb860232e
Translations update from Hosted Weblate (#7990) 2025-12-08 11:57:43 +02:00
Hosted Weblate
d588518ba1
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-12-08 10:55:07 +01:00
Elian Doran
d6f727d17a
Translations update from Hosted Weblate (#7989) 2025-12-08 11:54:51 +02:00
Wen QI
82c40302bd
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1646 of 1646 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-12-08 10:53:50 +01:00
Andreas H.
c40c62a247
Translated using Weblate (German)
Currently translated at 99.2% (1634 of 1646 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-12-08 10:53:50 +01:00
Wen QI
8048b5ebca
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 99.4% (1637 of 1646 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-12-08 10:53:49 +01:00
green
03ba43df5d
Translated using Weblate (Japanese)
Currently translated at 100.0% (1646 of 1646 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-12-08 10:53:49 +01:00
Elian Doran
a4b95b45ec
chore(readme): rewrite links 2025-12-08 11:52:28 +02:00
Elian Doran
59513962fe
chore(readme): add script to copy README into docs 2025-12-08 11:49:12 +02:00
Elian Doran
a201b43cde
fix(launch_bar): sync status not correctly rendered 2025-12-08 11:30:33 +02:00
Elian Doran
f98c77bd16
Translations update from Hosted Weblate (#7988) 2025-12-08 09:44:13 +02:00
green
2596359b25
Translated using Weblate (Japanese)
Currently translated at 100.0% (1646 of 1646 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-12-08 08:30:46 +01:00
minkipark
e0a0263607
Translated using Weblate (Korean)
Currently translated at 3.0% (50 of 1646 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ko/
2025-12-08 08:30:45 +01:00
green
2d3feedb07
Translated using Weblate (Japanese)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ja/
2025-12-08 08:30:45 +01:00
Hosted Weblate
af392fad3d
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-12-08 08:30:44 +01:00
Elian Doran
ef74490c44
chore(deps): update dependency jsonc-eslint-parser to v2.4.2 (#7982) 2025-12-08 09:30:31 +02:00
Elian Doran
b6856e18a8
fix(deps): update dependency katex to v0.16.27 (#7983) 2025-12-08 09:30:08 +02:00
renovate[bot]
de1d4424d9
fix(deps): update dependency katex to v0.16.27 2025-12-08 01:03:42 +00:00
renovate[bot]
5ec45bb575
chore(deps): update dependency jsonc-eslint-parser to v2.4.2 2025-12-08 01:02:52 +00:00
Elian Doran
cb3aced2ed
docs(script): clarify originEntity and activeContext 2025-12-07 23:58:02 +02:00
Elian Doran
2f13a1ad21
fix(mind-map): show text in links between nodes on export (#7938) 2025-12-07 23:20:18 +02:00
Elian Doran
045127adee
chore(vscode): add errorlens to recommendations 2025-12-07 23:11:07 +02:00
Elian Doran
db1a0c0362
i18n(client): update renamed key 2025-12-07 23:07:30 +02:00
Elian Doran
dcaf91a878
CKEditor stability improvements (#7979) 2025-12-07 22:40:52 +02:00
Elian Doran
a9209f5103
chore(ckeditor/watchdog): accidental comment 2025-12-07 22:32:06 +02:00
Elian Doran
ea613986c2
chore(server): add OpenAPI spec for to-markdown 2025-12-07 22:26:21 +02:00
Elian Doran
1ed46bd47c
refactor(server): add validation for HTML/Markdown rendering 2025-12-07 22:24:14 +02:00
Elian Doran
f1ee79e75a
refactor(client): inconsistent prefix for messages 2025-12-07 22:23:19 +02:00
Elian Doran
cd27160905
chore(ckeditor/watchdog): fix typecheck issues 2025-12-07 22:09:30 +02:00
Elian Doran
9ddf4a1308
feat(ckeditor/watchdog): ignore model out of bounds (closes #7739) 2025-12-07 22:00:10 +02:00
Elian Doran
a1c5ed9eb5
feat(ckeditor/watchdog): ignore parent check (closes #5776) 2025-12-07 21:59:52 +02:00
Elian Doran
7a4f19eada
chore(ckeditor): revert breaking change 2025-12-07 21:34:10 +02:00
Elian Doran
397fb785d6
feat(ckeditor/watchdog): functional copy to clipboard button 2025-12-07 21:21:55 +02:00
Elian Doran
75a1fcc933
chore(dialog): fix mandatory parameter 2025-12-07 21:06:56 +02:00
Elian Doran
292cbf1383
feat(ckeditor/watchdog): add a title to the details screen 2025-12-07 21:03:39 +02:00
Elian Doran
37a14fefb3
feat(ckeditor/watchdog): improve layout of info dialog 2025-12-07 21:01:56 +02:00
Elian Doran
f424633d8c
feat(ckeditor/watchdog): improve dialog size 2025-12-07 20:59:53 +02:00
Elian Doran
048258d2d1
feat(toast): improve button layout 2025-12-07 20:59:41 +02:00
Elian Doran
f779108b6c
feat(ckeditor/watchdog): add a more details button 2025-12-07 20:40:29 +02:00
Elian Doran
522f3ae0a1
feat(toast): support buttons 2025-12-07 20:39:27 +02:00
Elian Doran
3fc7067c59
feat(dialog): support React nodes in info dialog 2025-12-07 20:39:11 +02:00
Elian Doran
c600e8ef89
feat(ckeditor/watchdog): add a toast to indicate the error 2025-12-07 20:16:34 +02:00
Elian Doran
5ad267fe1b
chore(ckeditor): try to disable watchdog timer 2025-12-07 20:09:56 +02:00
Elian Doran
d8b3e438f8
chore(ckeditor): solve a few eslint warnings 2025-12-07 19:46:06 +02:00
Elian Doran
2834af66e9
feat(ckeditor/watchdog): restore focus after crash 2025-12-07 19:36:46 +02:00
Elian Doran
1bbf86fbeb
feat(ckeditor/watchdog): use data stored in the spaced update 2025-12-07 19:30:35 +02:00
Elian Doran
f662b95dc9
chore(vscode): remove now unnecessary extension recommendations 2025-12-07 19:03:05 +02:00
Elian Doran
9ad4b725ac
chore(eslint): report missing semicolons 2025-12-07 00:42:25 +02:00
Elian Doran
0182c61aec
chore(vscode): mark all eslint rules as warnings 2025-12-07 00:42:00 +02:00
Elian Doran
78362535c7
chore(eslint): downgrade import sorting to warning 2025-12-07 00:36:39 +02:00
Elian Doran
ae7b31f343
chore(dx): trim trailing whitespace in CSS 2025-12-07 00:35:28 +02:00
Elian Doran
f16441bba4
Port toast to React (#7975) 2025-12-07 00:34:25 +02:00
Elian Doran
d3f9bb6def
chore(toast): address requested changes 2025-12-07 00:33:37 +02:00
Elian Doran
e02440aa59
fix(toast): persistent toasts no longer working 2025-12-07 00:20:56 +02:00
Elian Doran
f1d87c29d3
chore(toast): fix typecheck issues 2025-12-07 00:15:00 +02:00
Elian Doran
21335b1b00
refactor(toast): get rid of autohide 2025-12-07 00:07:43 +02:00
Elian Doran
7463570e76
refactor(toast): rename delay to timeout 2025-12-07 00:06:42 +02:00
Elian Doran
da17a63ef5
refactor(toast): get rid of closeAfter in favor of delay 2025-12-07 00:04:12 +02:00
Elian Doran
eb8f2021cb
fix(toast): add fallback if icon doesn't start with bx- 2025-12-06 23:49:56 +02:00
Elian Doran
888ff33be1
fix(toast): missing message icon 2025-12-06 23:46:21 +02:00
Elian Doran
b46850e86e
refactor(toast): relocate styles into own file 2025-12-06 23:38:40 +02:00
Elian Doran
f053587f09
chore(toast): port toast to react 2025-12-06 23:37:56 +02:00
Elian Doran
7a3092a23b
fix(read-only-bar): button shrinks when window is small 2025-12-06 23:00:57 +02:00
Elian Doran
d95450ae07
feat(client): detect communication errors with Traefik 2025-12-06 22:57:13 +02:00
Elian Doran
230def10fe
feat(client): improve error message for HTTP errors 2025-12-06 22:12:06 +02:00
Elian Doran
036f8e49a4
docs(server/proxy): breaking change in Traefik 3.6.4 2025-12-06 21:51:56 +02:00
Elian Doran
4eca8a5640
feat(dx): add a way to run traefik reverse proxy 2025-12-06 21:37:24 +02:00
Elian Doran
08f96a91f3
docs(readme): fix a space 2025-12-06 19:37:25 +02:00
Elian Doran
2e915eccd6
Clean up _regroup (#7970) 2025-12-06 19:27:15 +02:00
Elian Doran
c05c58c82b
Merge remote-tracking branch 'origin/main' into chore/cleanup_regroup 2025-12-06 19:18:23 +02:00
Elian Doran
572feed918
chore(regroup): address requested changes 2025-12-06 19:17:56 +02:00
Elian Doran
d30d207ab5
test(server): solve some local timeouts 2025-12-06 19:08:19 +02:00
Elian Doran
2a6b91dd04
chore(regroup): reintroduce code coverage 2025-12-06 19:08:03 +02:00
Elian Doran
3dee1725b3
chore(regroup): reintroduce old e2e tests 2025-12-06 18:54:38 +02:00
Elian Doran
f7ac465e67
chore(eslint): integrate preact config 2025-12-06 15:31:38 +02:00
Elian Doran
912f14549c
chore(eslint): integrate playwright e2e 2025-12-06 15:20:05 +02:00
Elian Doran
21079335e7
chore(eslint): remove unnecessary files 2025-12-06 14:58:38 +02:00
Elian Doran
85741240f1
chore(eslint): reintegrate simple import sort 2025-12-06 14:50:41 +02:00
Elian Doran
3df9a87b29
chore(eslint): clean up unnecessary dependency in client 2025-12-06 14:48:00 +02:00
Elian Doran
acd60007ac
chore(eslint): integrate formatter config 2025-12-06 14:43:08 +02:00
Elian Doran
f66c9630e3
chore(deps): update dependency vite to v7.2.6 (#7951) 2025-12-06 12:25:52 +02:00
Elian Doran
50a5892a31
chore(deps): update typescript-eslint monorepo to v8.48.1 (#7953) 2025-12-06 12:25:14 +02:00
renovate[bot]
c5f58437b1
chore(deps): update typescript-eslint monorepo to v8.48.1 2025-12-06 10:10:32 +00:00
Elian Doran
a915424d9a
chore(deps): update softprops/action-gh-release action to v2.5.0 (#7958) 2025-12-06 12:10:09 +02:00
renovate[bot]
be7699c600
chore(deps): update dependency vite to v7.2.6 2025-12-06 10:09:14 +00:00
Elian Doran
a7c946ddae
fix(deps): update codemirror themes (#7955) 2025-12-06 12:08:43 +02:00
Elian Doran
4b741a9434
chore(deps): update dependency openai to v6.10.0 (#7957) 2025-12-06 12:07:52 +02:00
Elian Doran
cd963272d4
chore(deps): update vitest monorepo to v4.0.15 (#7954) 2025-12-06 12:07:11 +02:00
Elian Doran
9de17ead91
Translations update from Hosted Weblate (#7966) 2025-12-06 12:05:21 +02:00
pythaac
d98b133d63
Translated using Weblate (Korean)
Currently translated at 52.6% (80 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ko/
2025-12-06 11:04:27 +01:00
Elian Doran
361e8e0066
chore(deps): update dependency electron to v39 (#7536) 2025-12-06 12:04:20 +02:00
Elian Doran
523c44b796
fix(deps): update dependency mermaid to v11.12.2 (#7956) 2025-12-06 11:53:14 +02:00
Elian Doran
4bd60ed6a1
chore(deps): update react monorepo to v19.2.1 (#7952) 2025-12-06 11:52:11 +02:00
Elian Doran
7d57f08baf
chore(deps): update dependency express to v5.2.1 (#7950) 2025-12-06 11:35:10 +02:00
Elian Doran
5e7f54dbc3
chore(deps): update dependency esbuild to v0.27.1 (#7949) 2025-12-06 11:34:36 +02:00
Elian Doran
dfb9ce990d
chore(eslint): basic config 2025-12-06 11:05:34 +02:00
Elian Doran
e87a368e87
chore(regroup): remove some redundant files 2025-12-06 10:52:41 +02:00
Elian Doran
44506057fd
chore(regroup): clean bin dir 2025-12-06 10:50:42 +02:00
Elian Doran
ff08eadb23
fix(server/scripts): generate-document failing (closes #5422) 2025-12-06 10:49:14 +02:00
Elian Doran
ebb1a3feb2
chore(regroup): integrate generate_document 2025-12-06 10:35:57 +02:00
Elian Doran
81bc85b8e4
chore(regroup): adapt export-schema script 2025-12-06 10:29:08 +02:00
Elian Doran
4a749f52e9
chore(regroup): remove old release scripts 2025-12-06 10:11:28 +02:00
Elian Doran
25e37ddd78
chore(regroup): relocate icon scripts 2025-12-06 10:07:23 +02:00
renovate[bot]
46a9cfcc67
chore(deps): update react monorepo to v19.2.1 2025-12-06 08:00:01 +00:00
Elian Doran
66ff944660
chore(deps): update dependency @types/reveal.js to v5.2.2 (#7948) 2025-12-06 09:58:15 +02:00
Elian Doran
988db59197
chore(deps): update dependency @smithy/middleware-retry to v4.4.14 (#7947) 2025-12-06 09:57:54 +02:00
Elian Doran
34e321407a
chore(deps): update dependency @redocly/cli to v2.12.3 (#7946) 2025-12-06 09:57:31 +02:00
Elian Doran
44c0028a51
chore(regroup): clean up translation scripts 2025-12-06 09:43:54 +02:00
Elian Doran
264b75cd68
chore(regroup): clean up migration scripts 2025-12-06 09:43:02 +02:00
renovate[bot]
cf9ccdcab6
chore(deps): update dependency electron to v39 2025-12-06 07:36:35 +00:00
renovate[bot]
48e18e533c
chore(deps): update dependency openai to v6.10.0 2025-12-06 07:35:53 +00:00
renovate[bot]
12ef778bf4
fix(deps): update dependency mermaid to v11.12.2 2025-12-06 07:35:15 +00:00
Elian Doran
6c31a1788a
Port launch bar to React (#7934) 2025-12-06 09:35:06 +02:00
renovate[bot]
aa7c6da8ef
fix(deps): update codemirror themes 2025-12-06 07:34:30 +00:00
renovate[bot]
1ff40cace0
chore(deps): update vitest monorepo to v4.0.15 2025-12-06 07:33:52 +00:00
renovate[bot]
0a1dadbea1
chore(deps): update dependency express to v5.2.1 2025-12-06 07:30:48 +00:00
renovate[bot]
24edbdba5e
chore(deps): update dependency esbuild to v0.27.1 2025-12-06 07:30:09 +00:00
renovate[bot]
db504eff88
chore(deps): update dependency @types/reveal.js to v5.2.2 2025-12-06 07:29:26 +00:00
renovate[bot]
5e09925659
chore(deps): update dependency @smithy/middleware-retry to v4.4.14 2025-12-06 07:28:42 +00:00
renovate[bot]
d1b2b351c8
chore(deps): update dependency @redocly/cli to v2.12.3 2025-12-06 07:28:02 +00:00
Elian Doran
50b0dc178e
chore(regroup): clean up old ETAPI tests
They are already integrated in apps/server/spec/etapi.
2025-12-06 09:27:56 +02:00
Elian Doran
b34118e395
fix(deps): update ckeditor monorepo to v47.3.0 (#7959) 2025-12-06 09:26:03 +02:00
Elian Doran
e6436f9021
fix(text): code block background not correct 2025-12-06 09:16:20 +02:00
Elian Doran
831d1b4f3a
chore(text): remove workaround for superscript icon 2025-12-06 09:15:40 +02:00
renovate[bot]
0456d1ca29
fix(deps): update ckeditor monorepo to v47.3.0 2025-12-06 07:04:27 +00:00
Elian Doran
fcd151022e
fix(deps): update dependency i18next to v25.7.1 (#7960) 2025-12-06 08:59:19 +02:00
Elian Doran
0c1998002e
fix(deps): update dependency preact to v10.28.0 (#7961) 2025-12-06 08:58:33 +02:00
Elian Doran
b8c33ce7fa
e2e(server): locator failing due to removal of "visible" 2025-12-06 08:54:35 +02:00
Elian Doran
454cd633e8
fix(read_only_text): missing padding in <pre> without <code> 2025-12-06 08:46:44 +02:00
renovate[bot]
53cb9a6e10
fix(deps): update dependency preact to v10.28.0 2025-12-06 06:43:06 +00:00
renovate[bot]
8d6ff763d6
fix(deps): update dependency i18next to v25.7.1 2025-12-06 06:42:29 +00:00
Elian Doran
ecf15af3a0
fix(deps): update dependency react-i18next to v16.4.0 (#7962) 2025-12-06 08:38:20 +02:00
Elian Doran
716823789d
chore(deps): update apple-actions/import-codesign-certs action to v6 (#7963) 2025-12-06 08:37:58 +02:00
Elian Doran
3c192badce
chore(deps): update dependency @anthropic-ai/sdk to v0.71.2 (#7945) 2025-12-06 08:37:04 +02:00
renovate[bot]
d94b611d10
chore(deps): update apple-actions/import-codesign-certs action to v6 2025-12-06 02:54:20 +00:00
renovate[bot]
e2ce329b6c
fix(deps): update dependency react-i18next to v16.4.0 2025-12-06 02:54:16 +00:00
renovate[bot]
ef902fc706
chore(deps): update softprops/action-gh-release action to v2.5.0 2025-12-06 02:51:28 +00:00
renovate[bot]
a7fc94c303
chore(deps): update dependency @anthropic-ai/sdk to v0.71.2 2025-12-06 02:42:34 +00:00
Elian Doran
c8c6d1bb1e
docs(user): document launch bar widgets 2025-12-05 23:24:18 +02:00
Elian Doran
a205108681
chore(react/launch_bar): address requested changes 2025-12-05 22:57:07 +02:00
Elian Doran
31561879b3
chore(launch_bar): address requested changes 2025-12-05 19:40:36 +02:00
Elian Doran
fdb6677153
chore(launch_bar): reintroduce keyboard shortcuts 2025-12-05 19:23:40 +02:00
Elian Doran
17241be4bc
fix(launch_bar): note context not properly set for legacy widgets 2025-12-05 18:01:46 +02:00
Elian Doran
3bf6de9c76
fix(launch_bar): calendar month selector dropdown wrongly positioned 2025-12-05 17:36:04 +02:00
Elian Doran
a53322e7cb
refactor(launch_bar): deduplicate launcher note props 2025-12-05 17:16:55 +02:00
Elian Doran
a107c126e4
fix(launch_bar): dynamic dropdown not repositioning 2025-12-05 17:11:53 +02:00
Elian Doran
3a8dcae53a
fix(launch_bar): wrong position of dropdown 2025-12-05 16:45:38 +02:00
Elian Doran
b99d4532df
fix(react): duplicate tooltips on focus vs hover 2025-12-05 16:39:55 +02:00
Elian Doran
6e8f8ea357
fix(launch_bar): horizontal launch bar scrolling with dropdown open 2025-12-05 15:53:17 +02:00
Elian Doran
83838bbe76
fix(launch_bar): calendar month selector not actually working 2025-12-05 15:50:25 +02:00
Elian Doran
66620aabe2
fix(launch_bar): calendar dropdown hiding on month selection 2025-12-05 15:43:44 +02:00
Elian Doran
74fcf8270d
chore(launch_bar): improve positioning of the month dropdown 2025-12-05 15:31:14 +02:00
Elian Doran
91b4e32a38
fix(launch_bar): calendar month selector clipped 2025-12-05 15:29:25 +02:00
Elian Doran
3f0c114f24
fix(launch_bar): handle week number wrap-around for next year in calendar 2025-12-05 15:17:51 +02:00
Elian Doran
30fe6b93c4
chore(launch_bar): remove now redundant file 2025-12-05 15:10:48 +02:00
Elian Doran
ec99242314
fix(launch_bar): dropdown tooltip visible when hovering popup 2025-12-05 15:06:55 +02:00
Elian Doran
9149fb7a85
fix(launch_bar): tooltip error for dropdowns 2025-12-05 15:02:13 +02:00
Elian Doran
3c919d9a8a
fix(launch_bar): global menu size 2025-12-05 14:52:57 +02:00
Elian Doran
22f9ce1e2e
Merge remote-tracking branch 'origin/main' into react/launch_bar 2025-12-05 12:22:36 +02:00
Elian Doran
72b01cec70
Merge branch 'stable' 2025-12-05 12:22:14 +02:00
Elian Doran
982fb212e4
docs(release): update change log for #7939 2025-12-05 12:19:12 +02:00
Elian Doran
9fcee9cc53
Fix (NoteMap): map overflows when switching type in ribbon (#7939) 2025-12-05 12:17:08 +02:00
Elian Doran
57b8bc2645
feat(launch_bar): faster tooltips 2025-12-05 12:12:02 +02:00
Elian Doran
3ad4ca3943
fix(launch_bar): bootstrap tooltip for dropdown 2025-12-05 12:06:53 +02:00
Elian Doran
237ffeff52
fix(launch_bar): title position of action buttons 2025-12-05 12:04:26 +02:00
Elian Doran
fb491d9790
Fix (NoteMap): map overflows when switching type in ribbon (#7939) 2025-12-05 11:59:08 +02:00
Elian Doran
facd03b6ad
feat(launch_bar): horizontal scroll using mouse wheel 2025-12-05 11:54:31 +02:00
Elian Doran
f5f38ca670
refactor(widgets): relocate AI chat button 2025-12-05 11:53:38 +02:00
Elian Doran
83e599f0e9
refactor(widgets): relocate note launcher & command button 2025-12-05 11:52:52 +02:00
Elian Doran
48cd06f37e
feat(bundle): improve error handling message 2025-12-05 11:49:09 +02:00
Elian Doran
aac9d2d1c4
fix(toast): icon missing for error messages 2025-12-05 11:45:02 +02:00
Elian Doran
7e2e1c12b9
chore(widgets): fix error icon in toast & improve message reporting 2025-12-05 11:42:56 +02:00
Elian Doran
3410dd4eba
chore(react/launch_bar): bring back reporting widget that failed 2025-12-05 11:40:50 +02:00
Elian Doran
d511085db3
chore(react/launch_bar): port launcher container & launcher 2025-12-05 11:31:52 +02:00
Elian Doran
caaa3583a7
chore(react/launch_bar): port sync status 2025-12-05 10:22:34 +02:00
Elian Doran
185e5691a4
chore(react/launch_bar): bring back week highlighting 2025-12-05 09:52:46 +02:00
Elian Doran
20f44cc64f
chore(react/launch_bar): reimplement week notes 2025-12-05 09:36:21 +02:00
SiriusXT
07ef94afd9 Merge branch 'main' into fix/note_map 2025-12-05 15:21:30 +08:00
SiriusXT
2d33b8a958 fix(note_map): initialize map state when switching map type in ribbon 2025-12-05 15:21:06 +08:00
Elian Doran
d283f5dbb4
chore(react/launch_bar): hide dropdown when selecting date 2025-12-05 09:15:01 +02:00
Elian Doran
1af76c4d06
chore(react/launch_bar): clicking on calendar days 2025-12-05 09:11:50 +02:00
Elian Doran
07498c6bef
chore(react/launch_bar): add link to existing days 2025-12-05 09:02:51 +02:00
Elian Doran
18f9ebbc4f
chore(react/launch_bar): reintroduce day highlighting 2025-12-05 08:56:35 +02:00
SiriusXT
85b4f652f4 chore(note_map): improve the icon for expanding/collapsing the map 2025-12-05 11:21:44 +08:00
SiriusXT
eec6f7336c fix (note_map): map overflows when switching map type in ribbon 2025-12-05 11:21:33 +08:00
Lucas
f976dd8d30
Apply suggestions from code review
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-12-04 13:08:28 -08:00
Lucas
2d3aa3a96e
Merge branch 'main' into main 2025-12-04 13:04:24 -08:00
Elian Doran
1195cbd772
Translations update from Hosted Weblate (#7937) 2025-12-04 22:59:00 +02:00
Hosted Weblate
cebfa674ef
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-12-04 21:56:39 +01:00
Elian Doran
3ed596496d
Merge branch 'main' of github.com:TriliumNext/Trilium 2025-12-04 22:56:20 +02:00
Elian Doran
d99ef78348
fix(client): find and replace in floating toolbar 2025-12-04 22:56:15 +02:00
lzinga
2666c1e196 feat(snapdom): update screenshot generation options for SVG and PNG exports 2025-12-04 12:52:01 -08:00
Lucas
4b8c8888ee
Merge branch 'TriliumNext:main' into main 2025-12-04 12:49:37 -08:00
lzinga
ce1fd64aa9 feat(export): enhance SVG and PNG export functionality with snapdom integration 2025-12-04 12:49:10 -08:00
Elian Doran
bd1479b14a
Translations update from Hosted Weblate (#7935) 2025-12-04 22:32:47 +02:00
Elian Doran
baee9520d1
Apply suggestion from @gemini-code-assist[bot]
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-12-04 22:32:08 +02:00
green
adb30a526e
Translated using Weblate (Japanese)
Currently translated at 100.0% (1636 of 1636 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-12-04 21:27:44 +01:00
noobhjy
60c40457fc
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1636 of 1636 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-12-04 21:27:43 +01:00
noobhjy
a6df457c9c
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1636 of 1636 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-12-04 21:27:42 +01:00
Francis C.
3fd8fb0308
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1636 of 1636 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-12-04 21:27:41 +01:00
Elian Doran
7d4a7d4ab6
feat(dev): option to crash CKEditor 2025-12-04 22:15:13 +02:00
Elian Doran
4571b95683
chore(react/launch_bar): fix style for month selector 2025-12-04 21:37:02 +02:00
Elian Doran
a65d2a1bba
chore(react/launch_bar): reintroduce year selector 2025-12-04 21:24:35 +02:00
lzinga
5c9503732d fix(mind-map): show text in links between nodes on export 2025-12-04 11:08:44 -08:00
Elian Doran
2dbbf7f350
chore(react/launch_bar): reintroduce month dropdown 2025-12-04 20:13:46 +02:00
Elian Doran
e1cce220b3
chore(react/launch_bar): add back icons for previous/next month 2025-12-04 19:56:44 +02:00
Elian Doran
e0aed26f63
refactor(react/launch_bar): extract calendar impl into single file 2025-12-04 19:46:25 +02:00
Elian Doran
62fd07258e
chore(react/launch_bar): get days of the week to render 2025-12-04 19:43:47 +02:00
Elian Doran
0d8127140f
chore(react/launch_bar): get week numbers to render 2025-12-04 19:38:56 +02:00
Elian Doran
bab5326d7c
refactor(react/launch_bar): use different mechanism for gathering calendar info 2025-12-04 19:22:28 +02:00
Elian Doran
5c8445f3fe
chore(react/launch_bar): get calendar to render days 2025-12-04 19:03:28 +02:00
Elian Doran
604488b166
chore(react/launch_bar): port custom widget 2025-12-04 17:55:38 +02:00
Elian Doran
b7d7fc8b67
chore(react/launch_bar): remove an old file 2025-12-04 17:17:41 +02:00
Elian Doran
1f4872f72b
chore(react/launch_bar): port script launcher 2025-12-04 17:16:47 +02:00
Elian Doran
f89c40cde6
fix(react/launch_bar): type error in bookmarks 2025-12-04 17:07:13 +02:00
Elian Doran
670edbc22a
chore(react/launch_bar): port quick search launcher 2025-12-04 17:01:35 +02:00
Elian Doran
54f70c8158
chore(react/launch_bar): port today launcher 2025-12-04 16:53:05 +02:00
Elian Doran
0d6bcba023
chore(react/launch_bar): port note launcher 2025-12-04 16:33:58 +02:00
Elian Doran
06a9f95979
chore(react/launch_bar): remove old file 2025-12-04 16:23:14 +02:00
Elian Doran
03cdfc259e
refactor(react/launch_bar): deduplicate launcher icon and title 2025-12-04 16:22:46 +02:00
Elian Doran
1963b5732a
refactor(react/launch_bar): extract note launcher from bookmark button 2025-12-04 16:13:16 +02:00
Elian Doran
1e05dc937c
refactor(react/launch_bar): port command buttons 2025-12-04 16:04:14 +02:00
Elian Doran
c3b22ff737
refactor(react/launch_bar): port protected session status widget 2025-12-04 15:54:27 +02:00
Elian Doran
991f07e148
refactor(react/launch_bar): port ai chat button 2025-12-04 15:47:42 +02:00
Elian Doran
8efb849391
refactor(react/launch_bar): port history navigation 2025-12-04 15:44:10 +02:00
Elian Doran
5b310f3e46
refactor(react/launch_bar): port spacer 2025-12-04 15:02:46 +02:00
Elian Doran
5f54e42a43
refactor(react/launch_bar): extract icon class 2025-12-04 14:47:30 +02:00
Elian Doran
a83f20e454
refactor(react/launch_bar): extract dropdown & button style 2025-12-04 14:46:23 +02:00
Elian Doran
cdab86bd83
chore(react/launch_bar): port bookmark_folder 2025-12-04 14:41:07 +02:00
Elian Doran
48cbb80e79
chore(react/launch_bar): port open_note_button_widget 2025-12-04 14:18:04 +02:00
Elian Doran
1af6200655
chore(react/launch_bar): get launch bar to render React widgets 2025-12-04 13:24:47 +02:00
Elian Doran
b8585594cd
fix(text): duplicate search dialogs (closes #5735) 2025-12-04 13:03:08 +02:00
Elian Doran
d173cc982c
chore(release): prepare for v0.100.0 2025-12-04 12:21:40 +02:00
Elian Doran
471c57b3ed
docs(release): changelog for v0.100.0 2025-12-04 10:43:34 +02:00
Elian Doran
093d7d783b
fix(promoted_attributes): value sometimes empty when reopening note 2025-12-04 10:38:07 +02:00
Elian Doran
7cc20600e7
Disable spell-check on code-snippets (#7929) 2025-12-04 07:47:02 +00:00
Elian Doran
559c654fbb
fix(promoted_attributes): not reacting to inheritable changes 2025-12-04 09:44:54 +02:00
Elian Doran
01a03e3e97
docs(user): mark #calendar:color as completely removed 2025-12-04 09:27:17 +02:00
Elian Doran
dd3233a556
docs(user): document calendar interaction on mobile 2025-12-04 09:22:25 +02:00
Elian Doran
c4a426566f
feat(collections/calendar): change click behaviour on mobile 2025-12-04 09:09:23 +02:00
Elian Doran
c081a596df
Unify Dayjs between client and server (#7930) 2025-12-04 07:08:11 +00:00
Elian Doran
6b07908cf7
chore(server): fix some more dependencies to JSON 2025-12-04 08:45:28 +02:00
Elian Doran
2985bd0a1c
chore(dayjs): fix typecheck 2025-12-03 23:29:38 +02:00
Lucas
975e8487fc
Merge branch 'TriliumNext:main' into main 2025-12-03 12:59:47 -08:00
Elian Doran
54408d3ec8
chore(dayjs): address requested changes 2025-12-03 22:24:30 +02:00
Elian Doran
8b3afc1f49
fix(share): reference links outside share appear as [missing note] 2025-12-03 22:22:10 +02:00
Elian Doran
e15bc5a232
Merge branch 'main' into main 2025-12-03 20:05:00 +00:00
Elian Doran
8fdda59440
Merge branch 'main' into feature/unify_dayjs 2025-12-03 20:04:48 +00:00
Elian Doran
d5cbf362f8
test(client): fix typecheck issue 2025-12-03 22:04:39 +02:00
Elian Doran
6f85d3370c
docs(technical): dayjs intro & supported plugins 2025-12-03 22:01:06 +02:00
Elian Doran
8c324cd185
test(client): running script bundle with dayjs 2025-12-03 21:44:34 +02:00
Elian Doran
f7f7fda040
feat(dayjs): enable duration plugin (closes #4456) 2025-12-03 21:26:10 +02:00
Elian Doran
74c11f4d4e
chore(test): warning of unsupported requests 2025-12-03 21:15:16 +02:00
Elian Doran
0525cfab79
feat(client): set dayjs locale 2025-12-03 21:10:54 +02:00
Elian Doran
2d73627908
test(dayjs): add a test for all plugins 2025-12-03 20:58:52 +02:00
Elian Doran
94d015789d
test(dayjs): relocate dayjs tests into commons 2025-12-03 20:54:35 +02:00
Elian Doran
af2f6246e8
chore(commons): tests not run 2025-12-03 20:49:57 +02:00
Elian Doran
ebbdf0294a
refactor(dayjs): relocate locale loading in commons 2025-12-03 20:49:15 +02:00
Elian Doran
5df539f0a4
refactor(dayjs): relocate all plugins and imports to commons 2025-12-03 20:44:48 +02:00
lzinga
4f6dfeb773 fixed whitespace and redundant lines. 2025-12-03 10:12:05 -08:00
lzinga
52bb83e878 feat(plugins): add InlineCodeNoSpellcheck plugin to disable spellcheck for inline code 2025-12-03 10:02:35 -08:00
Elian Doran
286a8626d1
Translations update from Hosted Weblate (#7928) 2025-12-03 17:54:26 +00:00
Elian Doran
aa62dc3f32
Translated using Weblate (Romanian)
Currently translated at 100.0% (1636 of 1636 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ro/
2025-12-03 17:52:47 +00:00
Elian Doran
045e7977d5
fix(map): markers disappearing due to infinite map 2025-12-03 19:51:01 +02:00
Elian Doran
e0dc25ad23
fix(print): fails if included note could not be found 2025-12-03 19:16:58 +02:00
Elian Doran
9d0499a306
fix(note_actions): print disabled not reacting to note type changes 2025-12-03 19:06:20 +02:00
Elian Doran
b971e002ce
chore(tree_context_menu): clarify "Convert to attachment" message 2025-12-03 18:56:49 +02:00
Elian Doran
5fd488e210
feat(tree_context_menu): disable "Convert to attachment" if no eligible notes 2025-12-03 18:55:10 +02:00
Elian Doran
eb84da4c51
fix(code): too much padding 2025-12-03 18:47:14 +02:00
Elian Doran
49243148a2
fix(note_list): note list shown when switching types (e.g. for mindmap) 2025-12-03 18:40:24 +02:00
Elian Doran
276241cdff
style(attachment): basic attachment card design 2025-12-03 18:29:49 +02:00
Elian Doran
6772453b3a
fix(attachment): duplicate padding in code blocks 2025-12-03 18:23:31 +02:00
Elian Doran
18e2f1f90c
fix(attachment): attachment content overlapping 2025-12-03 18:22:52 +02:00
Elian Doran
67d2175ce9
Translations update from Hosted Weblate (#7924) 2025-12-03 08:46:09 +00:00
Elian Doran
8a3283f1ea
Update apps/client/src/translations/it/translation.json
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-12-03 08:45:42 +00:00
green
2fb47fc186
Translated using Weblate (Japanese)
Currently translated at 100.0% (1636 of 1636 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-12-03 09:18:16 +01:00
Giovi
4530c9a40c
Translated using Weblate (Italian)
Currently translated at 100.0% (1636 of 1636 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-12-03 09:18:15 +01:00
Elian Doran
a867a25d5f
fix(markdown): show 'import successful' when canceling markdown import (#7899) 2025-12-02 12:11:25 +00:00
Elian Doran
10910ac2ed
fix(backlinks): list not refreshing & not reacting to all changes 2025-12-02 13:30:37 +02:00
Elian Doran
514f5a0c81
chore(markdown_import): don't display anything on empty input 2025-12-02 12:26:47 +02:00
Elian Doran
6b18ed6477
refactor(markdown_import): deduplicate submit 2025-12-02 12:24:22 +02:00
Elian Doran
e07b6cc409
Merge remote-tracking branch 'origin/main' into fix/markdown
; Conflicts:
;	apps/client/src/stylesheets/style.css
2025-12-02 12:20:01 +02:00
Elian Doran
5ae67fda7f
fix(ckeditor/math): math can be inserted in code blocks (closes #7913) 2025-12-02 12:13:40 +02:00
Elian Doran
1a03c0ca9f
fix(collections/calendar): events not updating sometimes 2025-12-02 10:56:58 +02:00
Elian Doran
dc211b4d00
fix(ckeditor): markdown icon broken due to a workaround 2025-12-02 10:27:13 +02:00
Elian Doran
2e767ffde1
fix(ribbon): formatting toolbar not showing up if focus on edited notes is active 2025-12-02 10:13:54 +02:00
Elian Doran
9f74a54c0d
fix(react/type_widgets): revision causes jump at start of editor (closes #7912) 2025-12-02 10:06:08 +02:00
Elian Doran
a7870495ac
docs(user): mention split focus 2025-12-02 09:44:20 +02:00
Elian Doran
a8ec323ea8
docs(user): document split functionality on mobile 2025-12-02 09:42:38 +02:00
Elian Doran
4b7d243406
Prototype/mobile split (#7906) 2025-12-02 07:35:34 +00:00
Elian Doran
1855588270
chore(client): fix missing argument in context menu 2025-12-02 09:02:11 +02:00
Elian Doran
e545e0c3a5
Translations update from Hosted Weblate (#7919) 2025-12-02 06:50:19 +00:00
Hosted Weblate
b24a0f1595
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/
2025-12-02 06:48:51 +00:00
Elian Doran
3f2bfc3050
docs: add comprehensive AI coding agent instructions for copilot-instructions (#7917) 2025-12-02 06:48:40 +00:00
Elian Doran
66f100d534
chore(i18n/client): remove two unused messages 2025-12-02 08:46:53 +02:00
Elian Doran
e641d5ba0f
Translations update from Hosted Weblate (#7911) 2025-12-02 06:46:23 +00:00
Marble127
6f8cebf954
Translated using Weblate (Dutch)
Currently translated at 26.2% (31 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/nl/
2025-12-02 07:26:27 +01:00
Marble127
2d2f2457cb
Translated using Weblate (Dutch)
Currently translated at 3.2% (53 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/nl/
2025-12-02 07:26:26 +01:00
Marble127
68fa243af4
Translated using Weblate (Dutch)
Currently translated at 12.8% (50 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/nl/
2025-12-02 07:26:25 +01:00
Marble127
9cb133c8a6
Translated using Weblate (Dutch)
Currently translated at 20.3% (31 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/nl/
2025-12-02 07:26:25 +01:00
green
33f6c75917
Translated using Weblate (Japanese)
Currently translated at 100.0% (1639 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-12-02 07:26:24 +01:00
Lluís Forns
49acd5e8c2
Translated using Weblate (Catalan)
Currently translated at 6.8% (112 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ca/
2025-12-02 07:26:23 +01:00
Elian Doran
85266adf20
Translated using Weblate (Spanish)
Currently translated at 99.6% (1633 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/es/
2025-12-02 07:26:22 +01:00
Elian Doran
27edea8380
Translated using Weblate (French)
Currently translated at 98.3% (1612 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/fr/
2025-12-02 07:26:22 +01:00
Elian Doran
dccddb8d43
Translated using Weblate (Portuguese)
Currently translated at 94.6% (1551 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pt/
2025-12-02 07:26:21 +01:00
Elian Doran
5f9d7a223a
Translated using Weblate (Arabic)
Currently translated at 64.0% (1049 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-12-02 07:26:20 +01:00
Elian Doran
29b71262d6
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.8% (1636 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-12-02 07:26:20 +01:00
Lluís Forns
0cfcbcf5df
Translated using Weblate (Catalan)
Currently translated at 1.6% (2 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ca/
2025-12-02 07:26:19 +01:00
Elian Doran
e1258384d8
Translated using Weblate (Polish)
Currently translated at 31.1% (511 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pl/
2025-12-02 07:26:18 +01:00
Lluís Forns
8837eddd40
Translated using Weblate (Catalan)
Currently translated at 18.2% (71 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ca/
2025-12-02 07:26:17 +01:00
Lluís Forns
f919d46e9a
Translated using Weblate (Catalan)
Currently translated at 2.6% (4 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ca/
2025-12-02 07:26:16 +01:00
Elian Doran
98094fac63
Translated using Weblate (Italian)
Currently translated at 99.7% (1635 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-12-02 07:26:15 +01:00
Elian Doran
f94ccee252
Translated using Weblate (German)
Currently translated at 99.8% (1637 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-12-02 07:26:14 +01:00
Elian Doran
7c4b338539
Translated using Weblate (Russian)
Currently translated at 97.3% (1595 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-12-02 07:26:14 +01:00
Elian Doran
d88431f9e3
Translated using Weblate (Ukrainian)
Currently translated at 97.1% (1593 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/uk/
2025-12-02 07:26:13 +01:00
Elian Doran
5f86068489
Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.8% (1587 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pt_BR/
2025-12-02 07:26:12 +01:00
Elian Doran
36bc226674
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 99.7% (1635 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-12-02 07:26:12 +01:00
Hosted Weblate
7947745218
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/
2025-12-02 07:26:11 +01:00
Hosted Weblate
19697aabfb
Update translation files
Updated by "Remove blank strings" add-on in Weblate.

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/
2025-12-02 07:26:10 +01:00
Elian Doran
87af23598d
Translated using Weblate (Romanian)
Currently translated at 99.5% (1631 of 1639 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ro/
2025-12-02 07:26:09 +01:00
Hosted Weblate
4ed7966a5a
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/
2025-12-02 07:26:08 +01:00
Giovi
8d86b5c7e6
Translated using Weblate (Italian)
Currently translated at 100.0% (1638 of 1638 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-12-02 07:26:07 +01:00
Elian Doran
cdf9458962
chore(deps): update dependency express to v5.2.0 [security] (#7915) 2025-12-02 06:25:40 +00:00
Lucas
83df37c2d1
Update .github/copilot-instructions.md
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-12-01 16:25:09 -08:00
Lucas
bc7b3165c8
Update .github/copilot-instructions.md
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-12-01 16:25:02 -08:00
Lucas
c332e9764a
Update .github/copilot-instructions.md
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-12-01 16:24:50 -08:00
lzinga
004d48d36c docs: add comprehensive AI coding agent instructions for copilot-instructions 2025-12-01 16:15:43 -08:00
Elian Doran
28b263a445
chore(mobile/split): address requested changes 2025-12-01 23:51:12 +02:00
Elian Doran
e0e9310907
feat(mobile/split): rephase open in note split if a split is already open 2025-12-01 23:46:29 +02:00
renovate[bot]
68b9159b2b
chore(deps): update dependency express to v5.2.0 [security] 2025-12-01 21:38:46 +00:00
Elian Doran
f5940cbf70
feat(mobile/split): hide split button if split is already open 2025-12-01 23:36:15 +02:00
Elian Doran
bfb143bb51
Merge remote-tracking branch 'origin/main' into prototype/mobile_split 2025-12-01 23:27:58 +02:00
Adorian Doran
64662d5215 Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-12-01 16:33:41 +02:00
Adorian Doran
31cedad976 documentation: mark "calendar:color" as deprecated 2025-12-01 16:33:31 +02:00
Elian Doran
9682df6240
feat(mobile/split): collapse inactive split when keyboard is opened 2025-12-01 15:48:18 +02:00
Elian Doran
a718908385
fix(mobile/split): link context menu opening in the wrong split 2025-12-01 15:23:57 +02:00
Elian Doran
12ac5147d3
Merge branch 'main' of github.com:TriliumNext/Trilium 2025-12-01 14:40:25 +02:00
Elian Doran
17291ff61d
chore(deps): remove unnecessary package 2025-12-01 14:34:55 +02:00
Adorian Doran
f3e334470e style: refactor 2025-12-01 14:27:49 +02:00
Adorian Doran
9407051f1e style: refactor 2025-12-01 14:24:13 +02:00
Adorian Doran
08a6d36153 style/calendar collection/list view: use separate style for the archived events 2025-12-01 14:13:23 +02:00
Adorian Doran
f906fb9b4c Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-12-01 14:08:32 +02:00
Adorian Doran
b4a6356724 style/calendar collection/list view: fix dot colors 2025-12-01 14:08:24 +02:00
Elian Doran
8eca14069a
fix(e2e): i18n test failing to due to English selection 2025-12-01 14:02:32 +02:00
Elian Doran
1af0477ac0
chore(ci): fix duplicate artifact name error 2025-12-01 13:53:07 +02:00
Elian Doran
43920f12ae
feat(backlinks): use proper plural 2025-12-01 13:50:59 +02:00
Elian Doran
5a0beec6cb
fix(backlinks): not refreshed after inserting a new link 2025-12-01 13:37:15 +02:00
Elian Doran
98241fb54b
fix(promoted_attributes): value carrying over onto new notes 2025-12-01 13:37:15 +02:00
Adorian Doran
3051664228 style: fix typo 2025-12-01 13:34:36 +02:00
Adorian Doran
1ed774365c client/Kanban board collection: reorder context menu items 2025-12-01 13:33:20 +02:00
Adorian Doran
f2e33dfd58 Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-12-01 13:29:39 +02:00
Adorian Doran
90b5282b39 client/calendar collection: add "Archive note" command to the context menu 2025-12-01 13:29:28 +02:00
Elian Doran
d520fc46b9
fix(text): code blocks cannot wrap automatically (#7910) 2025-12-01 11:18:31 +00:00
Adorian Doran
e69b5988ec style: fix custom title bar buttons on the legacy theme 2025-12-01 11:48:42 +02:00
Adorian Doran
3cdc1ba794 style/calendar collection: fix colors on the legacy theme 2025-12-01 11:38:48 +02:00
Adorian Doran
25e1008c5c Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-12-01 11:24:52 +02:00
Adorian Doran
a093862311 style/calendar collection: use a separate style for archived notes 2025-12-01 11:24:39 +02:00
Elian Doran
53057ea9fc
Translations update from Hosted Weblate (#7907) 2025-12-01 08:09:22 +00:00
Francis C.
94db96de3e
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1638 of 1638 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-12-01 09:04:54 +01:00
Mr Mejri
60e4fbbf75
Translated using Weblate (Persian)
Currently translated at 15.2% (18 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/fa/
2025-12-01 09:04:53 +01:00
green
d35dd67632
Translated using Weblate (Japanese)
Currently translated at 100.0% (1638 of 1638 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-12-01 07:28:44 +01:00
Francis C.
8813985c68
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1638 of 1638 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-12-01 07:28:44 +01:00
Mr Mejri
538c98b587
Translated using Weblate (Persian)
Currently translated at 5.9% (7 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/fa/
2025-12-01 07:28:44 +01:00
Hosted Weblate
389c7029cf
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-12-01 07:28:44 +01:00
Elian Doran
d47f9e1131
chore(deps): update dependency eslint-plugin-playwright to v2.4.0 (#7908) 2025-12-01 06:28:37 +00:00
Elian Doran
c0a8d29756
fix(deps): update dependency tsx to v4.21.0 (#7909) 2025-12-01 06:26:48 +00:00
SiriusXT
668fd34af6 fix(text): code blocks cannot wrap automatically 2025-12-01 13:55:21 +08:00
renovate[bot]
8aa08cf8fe
fix(deps): update dependency tsx to v4.21.0 2025-12-01 01:19:56 +00:00
renovate[bot]
16c04f5ae4
chore(deps): update dependency eslint-plugin-playwright to v2.4.0 2025-12-01 01:19:12 +00:00
Adorian Doran
32c16021c4 style/calendar collection: refactor 2025-12-01 03:00:38 +02:00
Adorian Doran
7713c1173a style/calendar collection: tweak the color of the today column / cell 2025-12-01 02:40:07 +02:00
Adorian Doran
8018f400c3 style/calendar collection: correct a hover color 2025-12-01 02:26:16 +02:00
Adorian Doran
79c8293881 style/calendar collection: handle dot events as normal events 2025-12-01 02:21:19 +02:00
Adorian Doran
db5652623b style/calendar collection: fix broken background color for events without a hue 2025-12-01 02:04:26 +02:00
Adorian Doran
0f7a48b323 style/calendar collection: add basic support for the legacy theme 2025-12-01 01:55:03 +02:00
Elian Doran
309fbab2e6
feat(mobile/split): hide sidebar button for secondary item 2025-11-30 23:34:37 +02:00
Elian Doran
99da145d65
fix(mobile/split): swapping between splits 2025-11-30 23:32:29 +02:00
Adorian Doran
415d2826c6 style/calendar collection: tweak dark theme colors 2025-11-30 23:30:30 +02:00
Adorian Doran
7787e7085e style/calendar collection: tweak dark theme colors 2025-11-30 23:22:41 +02:00
Elian Doran
4ab8417168
feat(forge): add safeguard for ARM64 better-sqlite3 binary 2025-11-30 22:57:14 +02:00
Adorian Doran
a77e76d5c6 Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-11-30 21:33:08 +02:00
Adorian Doran
ca6660e2ff style/calendar collection: tweak appearance 2025-11-30 21:33:00 +02:00
Elian Doran
af94410c55
Merge branch 'main' of github.com:TriliumNext/Trilium 2025-11-30 21:26:50 +02:00
Elian Doran
b47bc50147
fix(revisions): double scrolling on mobile 2025-11-30 21:24:57 +02:00
Elian Doran
5ff77c16ab
feat(revisions): improve layout on mobile 2025-11-30 21:13:07 +02:00
Adorian Doran
11618260cf style/calendar collection: tweak the appearance of events without a color 2025-11-30 20:18:16 +02:00
Adorian Doran
63f9006d17 style/calendar collection: improve the support for colored notes 2025-11-30 20:08:24 +02:00
Elian Doran
7779acc7bc
refactor(client): split revisions CSS into file 2025-11-30 19:56:13 +02:00
Elian Doran
aacd92eee3
chore(popup-editor): implement switch to full editor button 2025-11-30 19:47:17 +02:00
Adorian Doran
1bf8be2874 Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-11-30 19:46:26 +02:00
Adorian Doran
66f2d0c7dc style/note colors: use a more elegant way to retrieve the theme-aware note color 2025-11-30 19:46:15 +02:00
Elian Doran
597d952254
Add British English (en-GB) translations (#7904) 2025-11-30 17:37:49 +00:00
Adorian Doran
288595ce5d Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-11-30 19:34:45 +02:00
Elian Doran
c89e8c78d3
Translations update from Hosted Weblate (#7905) 2025-11-30 17:34:39 +00:00
Adorian Doran
81a37e3fc4 client/CSS class manager: fix a bug when handling red hues 2025-11-30 19:34:31 +02:00
Elian Doran
368c590976
Translated using Weblate (English (United Kingdom))
Currently translated at 0.8% (1 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/en_GB/
2025-11-30 18:33:26 +01:00
Elian Doran
6e982e646d
Translated using Weblate (English (United Kingdom))
Currently translated at 1.6% (2 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/en_GB/
2025-11-30 18:29:39 +01:00
Elian Doran
030582b2d5
feat(i18n): add English (United Kingdom) 2025-11-30 19:14:21 +02:00
copilot-swe-agent[bot]
7dd4b10a96 Add British English (en-GB) translations for client
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-30 17:10:30 +00:00
copilot-swe-agent[bot]
b055e79b4c Initial plan 2025-11-30 17:02:01 +00:00
Elian Doran
ba980aa93f
Translations update from Hosted Weblate (#7903) 2025-11-30 16:59:52 +00:00
Elian Doran
15baf04ce9
Added translation using Weblate (English (United Kingdom)) 2025-11-30 17:58:03 +01:00
Elian Doran
4dc2587817
Added translation using Weblate (English (United Kingdom)) 2025-11-30 17:58:00 +01:00
Elian Doran
d5e046c289
Added translation using Weblate (English (United Kingdom)) 2025-11-30 17:57:58 +01:00
Elian Doran
ef8073ac58
Added translation using Weblate (English (United Kingdom)) 2025-11-30 17:57:56 +01:00
green
38c9d25214
Translated using Weblate (Japanese)
Currently translated at 100.0% (1637 of 1637 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-11-30 17:57:54 +01:00
Elian Doran
e2f0e4089f
Merge branch 'main' of github.com:TriliumNext/Trilium 2025-11-30 18:41:43 +02:00
Elian Doran
80ce2c04ed
chore(ci): apply platform changes for nightly
See https://github.com/TriliumNext/Trilium/pull/7002/files
2025-11-30 18:41:39 +02:00
Elian Doran
4ebd82beeb
feat(ckeditor5): add formatPainter (#7902) 2025-11-30 13:27:15 +00:00
SiriusXT
8cc43cd9a6 docs(user): add format painter 2025-11-30 20:08:27 +08:00
SiriusXT
15190abb69 feat(ckeditor5): add formatPainter 2025-11-30 16:53:14 +08:00
Elian Doran
0b28159e8e
fix(ribbon): formatting toolbar overrides edited notes activation (closes #7900) 2025-11-30 10:43:06 +02:00
Elian Doran
d9e8f8e69b
refactor(options): remove unnecessary ribbon activation option 2025-11-30 10:41:26 +02:00
Elian Doran
fa224e46bc
chore(deps): update dependency typedoc to v0.28.15 (#7897) 2025-11-30 09:41:04 +02:00
Elian Doran
06320953e8
chore(deps): update dependency webdriverio to v9.21.0 (#7898) 2025-11-30 09:40:31 +02:00
SiriusXT
2163334c4f fix(css): the import-markdown icon was displayed as a black square 2025-11-30 15:27:33 +08:00
SiriusXT
f5d180af6b fix(markdown): show 'import successful' when canceling markdown import 2025-11-30 15:27:08 +08:00
renovate[bot]
d676084cb3
chore(deps): update dependency webdriverio to v9.21.0 2025-11-30 02:49:59 +00:00
renovate[bot]
0cb5941be0
chore(deps): update dependency typedoc to v0.28.15 2025-11-30 02:49:23 +00:00
Adorian Doran
732494dfc5 client/keyboard shortcuts cheatsheet: add an edit button 2025-11-30 02:54:51 +02:00
Adorian Doran
b8748b856a client/note menu: use proper style for development-only actions section header 2025-11-30 02:34:09 +02:00
Adorian Doran
cc71f15700 client/quick edit: remove fixed toolbar transparency 2025-11-30 02:17:43 +02:00
Adorian Doran
124ef640b1 client/quick edit: tweak layout 2025-11-30 02:04:40 +02:00
Adorian Doran
f5e3df0cd2 client/quick edit: add placeholder for "open in full editor" custom title bar button 2025-11-30 01:54:28 +02:00
Adorian Doran
c8431181c8 client/dialogs/custom title bar buttons: tweak 2025-11-30 01:52:55 +02:00
Adorian Doran
07fb5ab017 client/dialogs: add support for custom title bar buttons 2025-11-30 01:44:20 +02:00
Adorian Doran
6735b257b4 style/promoted color attributes: fix the layout on narrow width 2025-11-30 01:09:07 +02:00
Adorian Doran
cef242a9ce style/button group: fix the appearance of the active button 2025-11-30 00:55:34 +02:00
Elian Doran
2923d917e5
Translations update from Hosted Weblate (#7891) 2025-11-29 22:58:03 +02:00
Elian Doran
1d1639e5e1
feat(mobile/split): limit to maximum two splits per tab 2025-11-29 21:27:27 +02:00
Elian Doran
6ab05fdb76
chore(mobile/split): improve obtaining of the note context 2025-11-29 21:17:03 +02:00
Elian Doran
91ae8c0aaf
feat(mobile/split): add a border between splits 2025-11-29 21:14:03 +02:00
Elian Doran
fcb69c0190
fix(mobile/split): errors due to split 2025-11-29 21:12:55 +02:00
Elian Doran
2cf6fe4352
feat(mobile/split): option to close split 2025-11-29 21:11:16 +02:00
Elian Doran
e3a2623a53
feat(mobile/split): layout horizontally on tablet 2025-11-29 21:06:11 +02:00
Elian Doran
e0c0a423c1
feat(mobile/split): layout vertically on mobile 2025-11-29 21:04:22 +02:00
Elian Doran
fd99246c49
feat(mobile/split): add an option to create new split 2025-11-29 21:04:13 +02:00
Elian Doran
d247edd870
feat(mobile/split): add split container to layout 2025-11-29 21:02:53 +02:00
Hosted Weblate
9a76a9069c
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/
2025-11-29 20:01:42 +01:00
pythaac
8e1d796870
Translated using Weblate (Korean)
Currently translated at 44.7% (68 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ko/
2025-11-29 20:01:38 +01:00
Andreas H.
8b0d4e5c3b
Translated using Weblate (German)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/de/
2025-11-29 20:01:37 +01:00
Elian Doran
b9e257a39d
refactor(client): redundant interface 2025-11-29 20:18:43 +02:00
Elian Doran
e7eaa5fd58
fix(mobile): global menu backdrop on tablet view 2025-11-29 19:49:38 +02:00
Elian Doran
c9aa992e73
fix(read-only-bar): displayed when viewing attachments 2025-11-29 19:40:00 +02:00
Elian Doran
f325930f68
chore(read-only-bar): use in-app help 2025-11-29 19:37:38 +02:00
Adorian Doran
1346ffb77e Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-11-29 18:50:24 +02:00
Adorian Doran
3378746530 style: disable text selection in UI 2025-11-29 18:50:16 +02:00
Elian Doran
ce2d94f04e
Resolve focus issues within split pane (#7877) 2025-11-29 18:34:26 +02:00
Elian Doran
b3c2a1e6c5
fix(insertDateTime): unable to insert date/time via quick editor or s… (#7889) 2025-11-29 18:30:28 +02:00
Elian Doran
dbf63787da
Merge branches 'main' and 'main' of ssh://github.com/TriliumNext/trilium 2025-11-29 18:08:19 +02:00
Elian Doran
88a7ebef69
fix(quick-edit): background broke for colors with no hue 2025-11-29 18:07:24 +02:00
Adorian Doran
a716151dd9 Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-11-29 18:04:53 +02:00
Adorian Doran
7462f1b7a5 style/empty tab: improve layout 2025-11-29 18:04:45 +02:00
Elian Doran
ec76b9dc5c
chore(quick-edit): increase max-width on mobile 2025-11-29 18:01:07 +02:00
Elian Doran
79cd96ade9
style(context_menu): improve submenu separator style 2025-11-29 17:47:26 +02:00
Elian Doran
a5b84406be
style(context_menu): improve submenu bg on mobile 2025-11-29 17:35:37 +02:00
Elian Doran
8c1a04c4b2
fix(mobile): shortcut keyboard + visible 2025-11-29 17:32:32 +02:00
Elian Doran
ee81037173
feat(quick_edit): smooth transition between colors 2025-11-29 17:26:17 +02:00
Elian Doran
453349be26
feat(quick_edit): seamless transition between color changes 2025-11-29 17:19:43 +02:00
Elian Doran
81a9e06b23
feat(quick_edit): basic reactivity to color changes 2025-11-29 17:19:43 +02:00
Elian Doran
7d8af0f252
refactor(client): use var for modal max height 2025-11-29 17:19:43 +02:00
Elian Doran
a68cd7526b
style(mobile): improve quick edit max height 2025-11-29 17:19:43 +02:00
Elian Doran
470ca3b6dc
style(mobile): improve quick edit max width 2025-11-29 17:19:43 +02:00
Elian Doran
e8bae61afc
style(mobile): center modals on tablet view 2025-11-29 17:19:43 +02:00
Elian Doran
c1f663a200
style(mobile): no bottom border radius on modals 2025-11-29 17:19:43 +02:00
Elian Doran
22b2e21df0
Translations update from Hosted Weblate (#7887) 2025-11-29 17:11:15 +02:00
SiriusXT
5f19710791 fix(insertDateTime): unable to insert date/time via quick editor or shortcut 2025-11-29 22:40:49 +08:00
pythaac
d3f3ff4eab
Translated using Weblate (Korean)
Currently translated at 43.4% (66 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ko/
2025-11-29 14:02:26 +00:00
noobhjy
5af7425cae
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1637 of 1637 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-11-29 14:02:25 +00:00
Elian Doran
fe10c9f8c8
fix(text): strikethrough icon appears disabled 2025-11-29 15:34:43 +02:00
Elian Doran
cd2a085d00
fix(type_widgets/notemap): bottom part not visible 2025-11-29 15:30:17 +02:00
Elian Doran
3c61626370
fix(launch_bar/calendar): tooltip showing over the calendar dropdown 2025-11-29 15:16:43 +02:00
Elian Doran
351fe5848f
fix(launch_bar/calendar): clicking on the edges would dismiss modal 2025-11-29 13:26:48 +02:00
Elian Doran
ca7bbefbdc
fix(launch_bar/calendar): dropdown remains open when switching years 2025-11-29 13:19:49 +02:00
Elian Doran
7094f71e32
refactor(server): remove now unnecessary attachment without size 2025-11-29 13:08:05 +02:00
Elian Doran
88b5e9db87
fix(server): uploading new attachments doesn't report size 2025-11-29 13:03:08 +02:00
Elian Doran
b4ab07bd78
feat(board): add keyboard navigation for "Add column" button 2025-11-29 12:40:41 +02:00
Elian Doran
fd6ad6dce3
fix(type_widgets): partially prevent wrong note type rendering due to async race condition 2025-11-29 12:40:41 +02:00
Elian Doran
ab97068a1d
fix(quick_edit): classic toolbar dropdowns not working 2025-11-29 12:40:41 +02:00
Elian Doran
70fe3b9773
fix(quick_edit): block popup not working 2025-11-29 12:40:41 +02:00
Elian Doran
1fe8079fd5
fix(type_widgets): empty type widget when hot-reloading NoteDetail 2025-11-29 12:40:41 +02:00
Elian Doran
80627997d1
fix(type_widgets): read-only text sometimes rendering wrong blob 2025-11-29 12:40:41 +02:00
Elian Doran
12abdcaf6c
fix(ribbon): formatting toolbar disappearing after viewing attachments 2025-11-29 12:40:41 +02:00
Elian Doran
a6ed4d92c9
chore(deps): update dependency stylelint to v16.26.1 (#7881) 2025-11-29 12:39:51 +02:00
Elian Doran
0471640f54
fix(deps): update dependency better-sqlite3 to v12.5.0 (#7882) 2025-11-29 12:39:41 +02:00
Elian Doran
4cf3e82fb5
Translations update from Hosted Weblate (#7880) 2025-11-29 12:38:59 +02:00
noobhjy
fbbe999806
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1637 of 1637 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-11-29 07:41:54 +00:00
Francis C.
76af488d35
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1637 of 1637 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-11-29 07:41:54 +00:00
Andreas H.
a54d2a5f22
Translated using Weblate (German)
Currently translated at 100.0% (1637 of 1637 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-11-29 07:41:53 +00:00
Sam.Lee
a1df075194
Translated using Weblate (Korean)
Currently translated at 2.4% (40 of 1637 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ko/
2025-11-29 07:41:52 +00:00
Sam.Lee
4de2182b40
Translated using Weblate (Korean)
Currently translated at 42.7% (65 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ko/
2025-11-29 07:41:51 +00:00
Tomas Adamek
6fa88123f1
Translated using Weblate (Czech)
Currently translated at 5.4% (89 of 1637 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/cs/
2025-11-29 07:41:50 +00:00
Sam.Lee
f81dbde15e
Translated using Weblate (Korean)
Currently translated at 21.0% (82 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ko/
2025-11-29 07:41:50 +00:00
Tomas Adamek
484fbc6b9d
Translated using Weblate (Czech)
Currently translated at 69.0% (105 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/cs/
2025-11-29 07:41:49 +00:00
green
8ba30135a1
Translated using Weblate (Japanese)
Currently translated at 100.0% (1637 of 1637 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-11-29 07:41:48 +00:00
Andreas H.
ba5a72fdad
Translated using Weblate (German)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/de/
2025-11-29 07:41:47 +00:00
Elian Doran
70b39ddadf
fix(mobile/context_menu): global menu not scrollable 2025-11-29 09:40:51 +02:00
Elian Doran
8200c0b0ab
style(mobile/context_menu): improve delimiter color in light theme 2025-11-29 09:36:46 +02:00
Elian Doran
59ebfa6cc7
style(mobile/context_menu): alter submenu separator style 2025-11-29 09:33:11 +02:00
Elian Doran
57b694162d
style(mobile/context_menu): rounded corners for anchored positioning 2025-11-29 09:29:00 +02:00
Elian Doran
2e6bdc225f
style(mobile/context_menu): missing backdrop for global menu 2025-11-29 09:22:51 +02:00
Elian Doran
8ced689432
style(mobile/context_menu): make color picker easier to press 2025-11-29 09:15:28 +02:00
SiriusXT
53a8f6b4c0 Merge branch 'main' into fix/split_pane 2025-11-29 11:39:05 +08:00
SiriusXT
9ae1a55896 chore(react/empty): obtain ntxId via React props instead of DOM query 2025-11-29 11:38:45 +08:00
renovate[bot]
5ecafe214f
fix(deps): update dependency better-sqlite3 to v12.5.0 2025-11-29 02:49:33 +00:00
renovate[bot]
8baf0ad6af
chore(deps): update dependency stylelint to v16.26.1 2025-11-29 02:49:04 +00:00
Elian Doran
3cc64b5764
fix(mobile/context_menu): note color picker not working 2025-11-28 23:43:16 +02:00
Elian Doran
19cf07564f
style(mobile/context_menu): taller height + small animation when expanding items 2025-11-28 23:21:31 +02:00
Elian Doran
5847ce5c14
feat(dev): enable CSS source maps 2025-11-28 23:21:14 +02:00
Elian Doran
a7ad45635e
style(mobile/context_menu): clean up border radiuses 2025-11-28 21:27:06 +02:00
Elian Doran
781215394e
refactor(mobile/context_menu): unify styles 2025-11-28 21:24:51 +02:00
Elian Doran
0aafdca999
style(mobile/context_menu): improve backdrop 2025-11-28 21:21:07 +02:00
Elian Doran
18d3cb6f0c
style(mobile/context_menu): dark submenu style 2025-11-28 21:14:06 +02:00
Elian Doran
263a96e8b7
style(mobile/context_menu): improve submenu style 2025-11-28 20:57:42 +02:00
Elian Doran
27d5009486
style(mobile/context_menu): disable hover color 2025-11-28 20:44:29 +02:00
SiriusXT
4d1a91baa6 Merge branch 'main' into fix/split_pane 2025-11-28 19:49:08 +08:00
SiriusXT
1898efa282 chore(e2e): add Playwright tests for split pane 2025-11-28 19:48:37 +08:00
SiriusXT
648ab4d736 fix(left-pane): only focus the note when toggling left pane visibility if necessary 2025-11-28 19:45:19 +08:00
SiriusXT
407cac588a fix(split): only trigger focusOnDetail when necessary 2025-11-28 19:42:04 +08:00
SiriusXT
210dcfb989 fix(empty): open note in the correct split pane 2025-11-28 19:38:52 +08:00
Elian Doran
2e431b1135
chore(deps): update dependency electron to v38.7.2 (#7873) 2025-11-28 11:26:12 +02:00
Elian Doran
e2ec27250c
chore(deps): update dependency happy-dom to v20.0.11 (#7874) 2025-11-28 08:24:15 +02:00
Elian Doran
1228eda5ea
chore(deps): update pnpm to v10.24.0 (#7875) 2025-11-28 08:23:01 +02:00
renovate[bot]
435794df73
chore(deps): update pnpm to v10.24.0 2025-11-28 01:16:30 +00:00
renovate[bot]
7e3d0639f7
chore(deps): update dependency happy-dom to v20.0.11 2025-11-28 01:16:18 +00:00
renovate[bot]
86b0005821
chore(deps): update dependency electron to v38.7.2 2025-11-28 01:15:07 +00:00
Elian Doran
2fb78275f7
Translations update from Hosted Weblate (#7871) 2025-11-27 21:52:13 +02:00
Elian Doran
98f421c697
Apply suggestions from code review
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-11-27 21:49:17 +02:00
Francis C.
a5572b7d45
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1635 of 1635 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-11-27 20:42:07 +01:00
Manfred Manni
fdecbaaa6a
Translated using Weblate (German)
Currently translated at 100.0% (389 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/de/
2025-11-27 20:42:06 +01:00
green
c6afd7fa24
Translated using Weblate (Japanese)
Currently translated at 100.0% (1635 of 1635 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-11-27 20:42:06 +01:00
Tomas Adamek
5cad522a60
Translated using Weblate (Czech)
Currently translated at 5.3% (88 of 1635 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/cs/
2025-11-27 20:42:05 +01:00
Tomas Adamek
82f64677cb
Translated using Weblate (Czech)
Currently translated at 27.2% (106 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/cs/
2025-11-27 20:42:04 +01:00
Manfred Manni
3ee086a063
Translated using Weblate (German)
Currently translated at 99.7% (1631 of 1635 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-11-27 20:42:03 +01:00
Francis C.
13da444a69
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1635 of 1635 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-11-27 20:42:02 +01:00
Tomas Adamek
b51ceaaadc
Translated using Weblate (Czech)
Currently translated at 65.1% (99 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/cs/
2025-11-27 20:42:01 +01:00
Elian Doran
2024c72209
i18n(client): two missing translations for dialogs 2025-11-27 21:41:24 +02:00
Elian Doran
b5959c55e1
chore(client): remove redundant log 2025-11-27 21:12:47 +02:00
Elian Doran
16f0ac97f4
fix(ckeditor): revert workaround which breaks shift-selection 2025-11-27 20:39:59 +02:00
Elian Doran
073c02ee0c
fix(ckeditor): Cmd+Up/Down not working properly 2025-11-27 20:00:15 +02:00
Elian Doran
786f0db4bb
fix(ckeditor): move block interfering with normal shortcut (closes #6964) 2025-11-27 19:37:21 +02:00
Elian Doran
6958e4b74f
feat(desktop): collapse spacing in full screen 2025-11-27 18:24:00 +02:00
Elian Doran
22c4fba665
docs(user): improve documentation on tree keyboard shortcuts 2025-11-27 14:22:45 +02:00
Elian Doran
f7c0e56cec
Translations update from Hosted Weblate (#7867) 2025-11-27 07:35:08 +02:00
Elian Doran
5f423cd22e
Apply suggestions from code review
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-11-27 07:34:46 +02:00
Hosted Weblate
282b3a109c
Update translation files
Updated by "Remove blank strings" add-on in Weblate.

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/
2025-11-27 05:14:32 +00:00
Tomas Adamek
dddb051d8b
Translated using Weblate (Czech)
Currently translated at 26.3% (40 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/cs/
2025-11-27 05:14:31 +00:00
Vedat Botuk
63d3706003
Translated using Weblate (Turkish)
Currently translated at 7.2% (11 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/tr/
2025-11-27 05:14:30 +00:00
Tomas Adamek
22ca2494f5
Translated using Weblate (Czech)
Currently translated at 18.5% (72 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/cs/
2025-11-27 05:14:29 +00:00
Aitanuqui
a0f02b6877
Translated using Weblate (Spanish)
Currently translated at 100.0% (1635 of 1635 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/es/
2025-11-27 05:14:28 +00:00
Vedat Botuk
487fcff61f
Translated using Weblate (Turkish)
Currently translated at 9.3% (11 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/tr/
2025-11-27 05:14:27 +00:00
Elian Doran
bfb8897188
Translated using Weblate (Romanian)
Currently translated at 100.0% (1635 of 1635 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ro/
2025-11-27 05:14:26 +00:00
Francis C.
ce1ccf378a
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1635 of 1635 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-11-27 05:14:25 +00:00
Francis C.
96d5ee3d46
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1635 of 1635 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-11-27 05:14:23 +00:00
Tomas Adamek
6f3771e7cd
Translated using Weblate (Czech)
Currently translated at 25.6% (39 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/cs/
2025-11-27 05:14:22 +00:00
Tomas Adamek
e6b00b05a2
Translated using Weblate (Czech)
Currently translated at 3.3% (54 of 1635 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/cs/
2025-11-27 05:14:21 +00:00
Tomas Adamek
148d0afe81
Translated using Weblate (Czech)
Currently translated at 11.0% (43 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/cs/
2025-11-27 05:14:20 +00:00
Aitanuqui
c5d63dbdb9
Translated using Weblate (Spanish)
Currently translated at 99.7% (1631 of 1635 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/es/
2025-11-27 05:14:18 +00:00
Tomas Adamek
1af072b059
Translated using Weblate (Czech)
Currently translated at 36.4% (43 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/cs/
2025-11-27 05:14:17 +00:00
Hosted Weblate
a6a8fdd2f8
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/
2025-11-27 05:14:16 +00:00
Andreas Haan
8836021ff9
Translated using Weblate (German)
Currently translated at 99.9% (1631 of 1632 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-11-27 05:14:14 +00:00
Andreas Haan
915803c5be
Translated using Weblate (German)
Currently translated at 99.7% (388 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/de/
2025-11-27 05:14:13 +00:00
green
cd95d43457
Translated using Weblate (Japanese)
Currently translated at 100.0% (1632 of 1632 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-11-27 05:14:11 +00:00
Andreas Haan
35af5fd13c
Translated using Weblate (German)
Currently translated at 39.4% (60 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/de/
2025-11-27 05:14:10 +00:00
Elian Doran
35e602f75f
style(mobile/context_menu): increase size and padding 2025-11-27 07:13:23 +02:00
Elian Doran
b4f0a1acc0
style(mobile/context_menu): card-style design on next theme 2025-11-26 21:54:35 +02:00
Elian Doran
7b7e9f6868
fix(context_menu): no bottom padding on mobile 2025-11-26 21:26:52 +02:00
Elian Doran
de3892950c
fix(context_menu): 1px overflow in height on mobile 2025-11-26 21:24:03 +02:00
Elian Doran
5c53826da3
fix(context_menu): color picker not dismissing on mobile 2025-11-26 21:20:27 +02:00
Elian Doran
d358073081
fix(global_menu): toggling advanced hides the menu most of the time 2025-11-26 20:44:53 +02:00
Elian Doran
d2d7fd7c4c
fix(context_menu): toggling submenu hides the menu most of the time 2025-11-26 20:35:02 +02:00
Elian Doran
706da768e2
chore(collections/board): hide "Add new column" while loading 2025-11-26 19:47:15 +02:00
Elian Doran
408073ee19
fix(note_list): subtree leaking into classic collections 2025-11-26 19:11:43 +02:00
Elian Doran
2695b7fc38
fix(print): included notes not rendering 2025-11-26 15:26:33 +02:00
Elian Doran
c32b6393af
refactor(client): split text content rendering to separate module 2025-11-26 15:18:02 +02:00
Elian Doran
abbb4e793f
feat(dev): action to open print page easily 2025-11-26 15:10:17 +02:00
Elian Doran
e4fae2d660
docs(user): document expanding/collapsing in list collection 2025-11-26 14:27:12 +02:00
Elian Doran
dc572c3815
fix(ribbon): tooltip for expand button 2025-11-26 11:59:46 +02:00
Elian Doran
c65b03db41
chore(collections/list): use translations for expand depth 2025-11-26 11:57:06 +02:00
Elian Doran
45d2e1f5e2
feat(collections/list): checkboxes for expand depth 2025-11-26 11:54:08 +02:00
Elian Doran
b658f5bd0e
feat(collections/list): adjustable expansion depth (closes #7669) 2025-11-26 10:36:53 +02:00
Elian Doran
f199d85d5b
chore(react): split button implementation 2025-11-26 10:36:00 +02:00
Elian Doran
445dfaaeb4
chore(deps): update dependency chokidar to v5 (#7866) 2025-11-26 08:07:28 +02:00
Elian Doran
cccd4122c5
chore(deps): update vitest monorepo to v4.0.14 (#7863) 2025-11-26 07:25:42 +02:00
Elian Doran
1fcbe828bd
chore(deps): update dependency @playwright/test to v1.57.0 (#7864) 2025-11-26 07:24:59 +02:00
Elian Doran
e94b78a37b
chore(deps): update dependency @redocly/cli to v2.12.0 (#7865) 2025-11-26 07:24:30 +02:00
renovate[bot]
af7cecb667
chore(deps): update dependency chokidar to v5 2025-11-26 01:13:15 +00:00
renovate[bot]
4068e9c6b8
chore(deps): update dependency @redocly/cli to v2.12.0 2025-11-26 01:12:23 +00:00
renovate[bot]
185c1fcdac
chore(deps): update dependency @playwright/test to v1.57.0 2025-11-26 01:11:33 +00:00
renovate[bot]
29c5d35c08
chore(deps): update vitest monorepo to v4.0.14 2025-11-26 01:10:40 +00:00
Elian Doran
0117f54ef8
fix(shortcuts): default shortcuts for nav in macOS (closes #3708) 2025-11-25 22:30:42 +02:00
Elian Doran
56d41916c4
Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-11-25 21:09:00 +02:00
Elian Doran
fddf73b1bb
fix(collections/table): colons in attribute name not working (closes #7860) 2025-11-25 21:03:27 +02:00
Elian Doran
d670c2ae5e
Translations update from Hosted Weblate (#7862) 2025-11-25 20:40:30 +02:00
green
6f5c9eb600
Translated using Weblate (Japanese)
Currently translated at 100.0% (1631 of 1631 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-11-25 17:51:44 +00:00
green
49c416c90d
Translated using Weblate (Japanese)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ja/
2025-11-25 17:51:43 +00:00
Giovi
8fef468eb9
Translated using Weblate (Italian)
Currently translated at 100.0% (1631 of 1631 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-11-25 17:51:42 +00:00
Elian Doran
976b1e1e0f
fix(note_list): not rendering correctly when switching notes 2025-11-25 19:51:24 +02:00
Elian Doran
d6de7cca96
Search selected text in trilium (#7859) 2025-11-25 19:44:01 +02:00
contributor
fb02751bdd note context menu: change search wording to match other menu items 2025-11-25 16:24:55 +02:00
Elian Doran
3fb5c52af1
Translations update from Hosted Weblate (#7861) 2025-11-25 16:09:39 +02:00
Hosted Weblate
18d17570f6
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-11-25 14:47:04 +01:00
Elian Doran
fa5eb16054
fix(note_autocomplete): regression in board entry 2025-11-25 15:46:41 +02:00
contributor
b1c77b508a note context menu: cache appContext import call 2025-11-25 13:25:56 +02:00
contributor
b982ca2c5b note context menu: search selected text in Trilium 2025-11-25 13:25:51 +02:00
Elian Doran
219753039d
fix(mermaid): one more case of "Matrix is not inversible" 2025-11-25 08:56:31 +02:00
Elian Doran
c16f9af6a9
feat(popup_editor): add read-only bar 2025-11-25 08:34:35 +02:00
Elian Doran
a544b0dc19
chore(popup_editor): improve alignment for read-only text 2025-11-25 08:31:44 +02:00
Elian Doran
a398f07f9f
fix(type_widgets): double wrapper for read-only text 2025-11-25 08:31:26 +02:00
Elian Doran
7ecdee7a89
refactor(popup_editor): use simpler mechanism for retrieving note ID 2025-11-25 08:24:26 +02:00
Elian Doran
24361ccd97
fix(popup_editor): respect user's read-only choice (closes #7715) 2025-11-25 08:19:48 +02:00
Elian Doran
3afe6df9f2
Translations update from Hosted Weblate (#7856) 2025-11-25 07:30:04 +02:00
vcodesai
df7f79004d
Translated using Weblate (Greek)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/el/
2025-11-25 05:14:44 +00:00
Hosted Weblate
405bce9f82
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-11-25 05:14:43 +00:00
Elian Doran
b9ef7af791
chore(deps): update dependency @anthropic-ai/sdk to v0.71.0 (#7854) 2025-11-25 07:14:21 +02:00
Elian Doran
761891abe9
chore(deps): update typescript-eslint monorepo to v8.48.0 (#7855) 2025-11-25 07:13:56 +02:00
Elian Doran
6a52637695
chore(deps): update dependency rcedit to v5.0.2 (#7853) 2025-11-25 07:13:33 +02:00
renovate[bot]
b4b957d2c3
chore(deps): update typescript-eslint monorepo to v8.48.0 2025-11-25 01:55:47 +00:00
renovate[bot]
dda4a0a887
chore(deps): update dependency @anthropic-ai/sdk to v0.71.0 2025-11-25 01:54:50 +00:00
renovate[bot]
b069a936ab
chore(deps): update dependency rcedit to v5.0.2 2025-11-25 01:53:49 +00:00
Elian Doran
15c088ec21
feat(popup_editor): hide some unwanted floating buttons 2025-11-24 21:56:16 +02:00
Elian Doran
015d70afb6
feat(popup_editor): enable floating buttons 2025-11-24 21:45:33 +02:00
Elian Doran
2158f69c09
feat(popup_editor): seamless mermaid code editor 2025-11-24 21:38:34 +02:00
Elian Doran
c49c5fd58c
fix(popup_editor): full-height taller than 100% 2025-11-24 21:33:17 +02:00
Elian Doran
26be131b4b
fix(mermaid): matrix not inversible 2025-11-24 21:25:27 +02:00
Elian Doran
f8533eb2c6
feat(popup_editor): immersive code notes editing 2025-11-24 19:50:51 +02:00
Elian Doran
4cc545659b
fix(popup_editor): keep in DOM 2025-11-24 19:38:18 +02:00
Elian Doran
70a0b5c22f
fix(promoted_attributes): "attribute is not owned" in auto-complete after switching notes 2025-11-24 18:58:52 +02:00
Elian Doran
a2976d9ad5
refactor(mime): proper typechecking of supported MIME types 2025-11-24 18:58:21 +02:00
Elian Doran
01b05f186e
chore(options/code): hide tooltip for plain text 2025-11-24 18:43:07 +02:00
Elian Doran
79a4da9db8
docs(dev): refresh documentation on syntax highlighting 2025-11-24 18:39:51 +02:00
Elian Doran
84890fd5ad
feat(mime): support SAS ABAP (closes #7851) 2025-11-24 18:39:34 +02:00
Elian Doran
29f9d0c1cd
chore(mime): fix MD language code for Batch files 2025-11-24 18:11:31 +02:00
Elian Doran
95169bbc84
feat(mime): support KDL (closes #7848) 2025-11-24 18:06:24 +02:00
Elian Doran
9a2979e577
chore(options/code): improve tooltip positioning & speed 2025-11-24 17:45:19 +02:00
Elian Doran
9f381a7b30
feat(options/code): display tooltip for syntax highlighting support 2025-11-24 17:43:02 +02:00
Elian Doran
c07ad348bd
Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-11-24 10:56:43 +02:00
Elian Doran
d7ae2e4307
fix(search): double results if search has inheritable viewType 2025-11-24 10:56:39 +02:00
Elian Doran
71b86b3cbc
Fixes #7826 CORP (Resource Policy) defaults to same-origin (#7830) 2025-11-24 09:21:58 +02:00
Elian Doran
621e8078d9
fix(geomap): map not loading at zero zoom 2025-11-24 09:18:16 +02:00
Lucas
7155ab8bdc
Merge branch 'TriliumNext:main' into main 2025-11-23 13:24:24 -08:00
Elian Doran
0a3e788d21
fix(client/collections): collections not visible after viewing attachments 2025-11-23 21:53:47 +02:00
Elian Doran
f83c46d1c7
fix(client/promoted_attributes): unnecessary space when empty 2025-11-23 21:51:48 +02:00
Elian Doran
11932353f7
fix(client/attachments): scroll padding reducing in size after visiting attachments 2025-11-23 21:47:27 +02:00
Elian Doran
ed373107c2
fix(client/attachments): full-height attachment not displayed correctly (closes #7847) 2025-11-23 21:46:04 +02:00
Elian Doran
1cca15ca5d
Revert "fix(react/promoted_attributes): removing relation sometimes not refreshing"
This reverts commit 320f064775926a9512db91f077fd9a532f6b47da.
2025-11-23 21:31:40 +02:00
Elian Doran
11e59a970e
fix(deps): update dependency mind-elixir to v5.3.7 (#7844) 2025-11-23 18:13:19 +02:00
Elian Doran
5abb69d022
chore(mindmap): add Romanian locale 2025-11-23 17:23:07 +02:00
Elian Doran
dc1d497ff3
Port promoted attributes to React (#7846) 2025-11-23 16:43:52 +02:00
Elian Doran
7f909fa098
chore(promoted_attributes): address review 2025-11-23 16:34:38 +02:00
Elian Doran
320f064775
fix(react/promoted_attributes): removing relation sometimes not refreshing 2025-11-23 14:59:23 +02:00
Elian Doran
c9b1691998
fix(react/promoted_attributes): non-existing attribute ID when deleting relations 2025-11-23 14:42:31 +02:00
Elian Doran
08ade8371c
fix(react/promoted_attributes): unable to read trim at server level 2025-11-23 13:55:25 +02:00
Elian Doran
081ac2d109
chore(react/quick_edit): reintegrate promoted attributes 2025-11-23 13:44:24 +02:00
Elian Doran
3fde546b83
feat(react/promoted_attributes): debounce label editing 2025-11-23 13:43:40 +02:00
Elian Doran
a12b3cb51a
chore(react/promoted_attributes): fix type issue 2025-11-23 13:40:05 +02:00
Elian Doran
6160945b9e
chore(react/promoted_attributes): bring back reacting to changes 2025-11-23 13:35:16 +02:00
Elian Doran
6a126009a8
refactor(react/promoted_attributes): deduplicate server API typings 2025-11-23 13:15:33 +02:00
Elian Doran
891e71aec6
refactor(react/promoted_attributes): remove unnecessary action cell 2025-11-23 13:13:15 +02:00
Elian Doran
cd164049b7
refactor(react/promoted_attributes): use simplified class name handling 2025-11-23 13:12:42 +02:00
Elian Doran
709a47bc6b
chore(react/promoted_attributes): handle relations 2025-11-23 13:11:12 +02:00
Elian Doran
9c6cd80867
chore(react/promoted_attributes): improve boolean handling 2025-11-23 12:56:43 +02:00
Elian Doran
832d9a2ab8
chore(react/promoted_attributes): handle URL open button 2025-11-23 12:46:06 +02:00
Elian Doran
8d4e30a2e4
chore(react/promoted_attributes): handle color picker 2025-11-23 12:32:13 +02:00
Elian Doran
baf41eb104
chore(react/promoted_attributes): handle input steps 2025-11-23 12:11:18 +02:00
Elian Doran
7f0fe1681b
chore(react/promoted_attributes): integrate value change listener 2025-11-23 11:57:31 +02:00
Elian Doran
49189bc63e
chore(react/promoted_attributes): map promoted attribute types 2025-11-23 11:38:53 +02:00
Elian Doran
87f30ed3d5
chore(react/promoted_attributes): add back text label autocomplete 2025-11-23 11:33:14 +02:00
Elian Doran
aca390ee19
chore(react/promoted_attributes): add more attributes to the input 2025-11-23 11:24:44 +02:00
Elian Doran
598bb6d742
chore(react/promoted_attributes): add logic to remove multi labels 2025-11-23 11:19:41 +02:00
Elian Doran
33b19e40e0
chore(react/promoted_attributes): add logic to add new labels 2025-11-23 10:46:56 +02:00
Elian Doran
5b9401fafe
chore(react/promoted_attributes): add logic to filter out tables 2025-11-23 10:25:57 +02:00
Elian Doran
9bed6b7e22
chore(react/promoted_attributes): port multiplicity buttons (without implementation) 2025-11-23 10:22:58 +02:00
Elian Doran
aca003c554
Translations update from Hosted Weblate (#7845) 2025-11-23 09:56:04 +02:00
Hosted Weblate
3c806558eb
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-11-23 07:51:10 +00:00
Elian Doran
d195d46f8f
chore(deps): update dependency rollup-plugin-webpack-stats to v2.1.8 (#7843) 2025-11-23 09:50:54 +02:00
renovate[bot]
755abc6487
fix(deps): update dependency mind-elixir to v5.3.7 2025-11-23 00:36:56 +00:00
renovate[bot]
718282bae3
chore(deps): update dependency rollup-plugin-webpack-stats to v2.1.8 2025-11-23 00:36:05 +00:00
lzinga
8cc4d08eae fix(config): update corsResourcePolicy type to string, typecheck did not like previous method 2025-11-22 15:54:21 -08:00
Lucas
0bcc02dfab
Merge branch 'TriliumNext:main' into main 2025-11-22 15:53:36 -08:00
Elian Doran
33c3fb7de0
chore(react/promoted_attributes): reintroduce labels 2025-11-22 22:25:32 +02:00
Elian Doran
d99b8f5864
chore(promoted_attributes): build list of cells 2025-11-22 22:10:51 +02:00
Elian Doran
98bf63e94b
chore(promoted_attributes): start with empty widget 2025-11-22 21:58:52 +02:00
Elian Doran
2d8b1299b3
Port Quick edit popup to React (#7840) 2025-11-22 21:53:19 +02:00
Elian Doran
5edc4abfb4
chore(quick_edit): address requested changes 2025-11-22 21:37:41 +02:00
Elian Doran
26f7264f3c
chore(client): fix typecheck 2025-11-22 21:37:37 +02:00
Elian Doran
56c82d7f0f
chore(quick_edit): address requested changes 2025-11-22 21:20:24 +02:00
Elian Doran
6946da3571
chore(mermaid): avoid crash if "Matrix is not invertible" 2025-11-22 21:07:17 +02:00
Elian Doran
2985c762e6
chore(quick_edit): add back most of the components 2025-11-22 21:00:55 +02:00
Elian Doran
8001d940eb
chore(quick_edit): bring back coloring 2025-11-22 20:43:57 +02:00
Elian Doran
2f440eba37
chore(quick_edit): bring back focus 2025-11-22 19:34:23 +02:00
Elian Doran
bb9cb2fb75
fix(quick_edit): note context not injected on first render 2025-11-22 19:25:35 +02:00
Elian Doran
5531c15126
chore(quick_edit): get note content to render 2025-11-22 19:19:16 +02:00
Elian Doran
29f049c411
chore(quick_edit): inject note context 2025-11-22 19:11:20 +02:00
Elian Doran
31180afbd1
react(quick_edit): set up empty dialog 2025-11-22 19:07:50 +02:00
Elian Doran
435b856b72
fix(quick_edit): keyboard shortcuts triggering on wrong editor 2025-11-22 18:35:18 +02:00
Adorian Doran
af62526b92 client/context menu: fix data type errors 2025-11-22 13:43:40 +02:00
Adorian Doran
beb7d09aee client/tree context menu: improve handling the case when the note color picker is not available 2025-11-22 13:35:36 +02:00
Adorian Doran
b4b1b7a3fa client/context menus: skip consecutive separators 2025-11-22 13:33:48 +02:00
Elian Doran
d0342598c4
Translations update from Hosted Weblate (#7838) 2025-11-22 12:40:12 +02:00
Francis C.
4a71b00b71
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1628 of 1628 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-11-22 10:39:04 +00:00
green
268bbf3b9e
Translated using Weblate (Japanese)
Currently translated at 100.0% (1628 of 1628 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-11-22 10:39:03 +00:00
Marc
24cdeb06e8
Translated using Weblate (French)
Currently translated at 99.2% (1616 of 1628 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/fr/
2025-11-22 10:39:02 +00:00
Marc
6b64d85db0
Translated using Weblate (French)
Currently translated at 97.3% (148 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/fr/
2025-11-22 10:39:01 +00:00
Francis C.
08e542dfb3
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1628 of 1628 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-11-22 10:39:00 +00:00
Elian Doran
8b997cffdd
fix(collections/board): mouse horizontal scroll no longer working 2025-11-22 12:37:08 +02:00
Elian Doran
33aece6f96
fix(collections): flicker when adding new entries 2025-11-22 12:16:48 +02:00
Elian Doran
6040eea3bd
fix(text): note with empty table carries over to new notes 2025-11-22 11:52:16 +02:00
Elian Doran
9b3ca65492
fix(text): classic toolbar broken on mobile due to prior change 2025-11-22 11:37:34 +02:00
Elian Doran
c76f368fa0
fix(text): classic toolbar sometimes not showing 2025-11-22 11:21:51 +02:00
Elian Doran
664d28f105
docs(scripting): remove workaround for sidebar visibility 2025-11-22 11:03:00 +02:00
Elian Doran
7daee36d3e
fix(toc): table of contents not rendering for doc notes 2025-11-22 10:59:50 +02:00
Elian Doran
5fc10fe041
chore(react/sidebar): basic right panel widget implementation 2025-11-22 10:58:51 +02:00
Elian Doran
6692de33b1
fix(sidebar): not displayed if items are enabled from the start 2025-11-22 10:58:46 +02:00
Elian Doran
494bd425af
feat(print): avoid error message for print job cancelled 2025-11-22 10:13:46 +02:00
Elian Doran
135ce2285d
feat(collections): don't load all collection types at once 2025-11-22 10:10:37 +02:00
Elian Doran
be2e82788f
chore(deps): update dependency @anthropic-ai/sdk to v0.70.1 (#7816) 2025-11-22 09:49:28 +02:00
Elian Doran
e84fb63343
fix(deps): update dependency mime-types to v3.0.2 (#7820) 2025-11-22 09:49:09 +02:00
Elian Doran
97422c1d7a
chore(deps): update vitest monorepo to v4.0.13 (#7835) 2025-11-22 09:48:40 +02:00
renovate[bot]
66cc739bb2
chore(deps): update dependency @anthropic-ai/sdk to v0.70.1 2025-11-22 07:12:56 +00:00
renovate[bot]
790454f194
chore(deps): update vitest monorepo to v4.0.13 2025-11-22 07:10:46 +00:00
Elian Doran
d751966078
chore(server/mime): remove mp4 workaround 2025-11-22 09:10:41 +02:00
renovate[bot]
a8e9f7b445
fix(deps): update dependency mime-types to v3.0.2 2025-11-22 07:08:13 +00:00
Elian Doran
144afc346d
chore(deps): update dependency express-openid-connect to v2.19.3 (#7834) 2025-11-22 09:07:15 +02:00
Elian Doran
63854156eb
chore(deps): update dependency stylelint to v16.26.0 (#7837) 2025-11-22 09:06:15 +02:00
Elian Doran
7800e76b26
fix(deps): update dependency better-sqlite3 to v12.4.6 (#7836) 2025-11-22 09:05:49 +02:00
renovate[bot]
1e5b95f64a
fix(deps): update dependency better-sqlite3 to v12.4.6 2025-11-22 06:05:44 +00:00
renovate[bot]
097e36677a
chore(deps): update dependency stylelint to v16.26.0 2025-11-22 01:42:35 +00:00
renovate[bot]
7e6e10e3ef
chore(deps): update dependency express-openid-connect to v2.19.3 2025-11-22 01:40:32 +00:00
Elian Doran
f72ce697a7
Table printing support (#7833) 2025-11-21 23:11:11 +02:00
Lucas
e6843bc3e0
Merge branch 'main' into main 2025-11-21 12:40:52 -08:00
Elian Doran
5c0cf09c42
chore(print/table): revert back to using the export module only 2025-11-21 22:35:29 +02:00
Elian Doran
ab14bdbb18
chore(print/table): address review 2025-11-21 22:33:48 +02:00
Elian Doran
8dc43dab59
docs(user): update printing documentation 2025-11-21 22:28:43 +02:00
Elian Doran
0c5a6a7548
feat(print/table): integrate with the printing mechanism 2025-11-21 22:17:54 +02:00
Elian Doran
779e2f4633
chore(print/table): monochrome checkboxes 2025-11-21 22:15:56 +02:00
Elian Doran
644e3e200d
chore(print/table): stop copying styles and apply own 2025-11-21 22:15:01 +02:00
Elian Doran
670cc474a4
chore(print/table): grayed out table headers 2025-11-21 22:13:55 +02:00
Elian Doran
c43820776f
fix(print/table): missing title 2025-11-21 22:12:05 +02:00
Elian Doran
749740242e
fix(print/table) formatters not rendering 2025-11-21 22:09:07 +02:00
Elian Doran
f864746b54
feat(print/table): render using internal mechanism 2025-11-21 22:05:22 +02:00
lzinga
42dcd4750a Merge branch 'main' of https://github.com/lzinga/Trilium 2025-11-21 12:00:03 -08:00
lzinga
cb0c6a344f Fixed missing comma 2025-11-21 11:59:57 -08:00
Lucas
d1d652495d
Add default value for CORSRESOURCEPOLICY
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-11-21 11:55:48 -08:00
lzinga
4b574cecf7 feat(config): add CORS Resource Policy environment variable documentation 2025-11-21 11:39:08 -08:00
lzinga
e7dbaf78b5 feat(config): add CORS Resource Policy configuration 2025-11-21 11:30:29 -08:00
Elian Doran
6f83b932b0
feat(print/table): basic implementation using export module 2025-11-21 21:28:42 +02:00
Elian Doran
4552b2b158
fix(geomap): marker color not respected 2025-11-21 20:50:06 +02:00
Elian Doran
5b708e77aa
fix(client/text): wrong strike-through of nested TODOs 2025-11-21 20:20:52 +02:00
Elian Doran
a3f1e46107
Merge branch 'main' of https://github.com/TriliumNext/Trilium into feature/print_progress_reporting 2025-11-21 20:16:43 +02:00
Elian Doran
097808752d
feat(client/print): report progress for presentation printing 2025-11-21 20:15:27 +02:00
Elian Doran
39be268969
chore(client/print): fix types 2025-11-21 20:14:44 +02:00
Elian Doran
6023d53506
feat(print): report progress on export to PDF as well 2025-11-21 20:05:43 +02:00
Elian Doran
1a6e653600
feat(print): support progress report on electron 2025-11-21 19:57:13 +02:00
Elian Doran
586c707e51
feat(print): display progress in toast 2025-11-21 12:24:01 +02:00
Elian Doran
6ca941e8e9
chore(print): basic infrastructure to support reporting progress 2025-11-21 12:06:32 +02:00
Elian Doran
b83675cdd0
chore(deps): update vitest monorepo to v4.0.12 (#7818) 2025-11-21 09:18:46 +02:00
Elian Doran
1a583913a7
chore(css): fix overly narrow empty tab layout on mobile (#7824) 2025-11-21 09:17:43 +02:00
SiriusXT
d98a644b75 chore(css): fix overly narrow empty tab layout on mobile 2025-11-21 14:44:09 +08:00
renovate[bot]
11c0c93fe2
chore(deps): update vitest monorepo to v4.0.12 2025-11-21 06:41:27 +00:00
Elian Doran
6d78867d69
Translations update from Hosted Weblate (#7815) 2025-11-21 08:38:39 +02:00
Flowerlywind
54813b8b93
Translated using Weblate (Vietnamese)
Currently translated at 3.3% (55 of 1625 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/vi/
2025-11-21 06:38:13 +00:00
pythaac
6ab31c67fc
Translated using Weblate (Korean)
Currently translated at 38.8% (59 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ko/
2025-11-21 06:38:12 +00:00
green
69af2ff7e8
Translated using Weblate (Japanese)
Currently translated at 100.0% (1625 of 1625 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-11-21 06:38:11 +00:00
Elian Doran
b505a2a94d
chore(deps): update dependency vite to v7.2.4 (#7817) 2025-11-21 08:38:05 +02:00
Elian Doran
6a5fd0d6f0
fix(deps): update dependency marked to v17.0.1 (#7819) 2025-11-21 08:37:44 +02:00
Elian Doran
e21557645b
chore(deps): update pnpm to v10.23.0 (#7821) 2025-11-21 08:36:43 +02:00
Elian Doran
28cab146f3
chore(deps): update actions/checkout action to v6 (#7822) 2025-11-21 08:36:17 +02:00
renovate[bot]
43df4ae0e7
chore(deps): update actions/checkout action to v6 2025-11-21 00:20:47 +00:00
renovate[bot]
5037027030
chore(deps): update pnpm to v10.23.0 2025-11-21 00:20:40 +00:00
renovate[bot]
5e11684665
fix(deps): update dependency marked to v17.0.1 2025-11-21 00:20:02 +00:00
renovate[bot]
c7793beb0f
chore(deps): update dependency vite to v7.2.4 2025-11-21 00:18:58 +00:00
Adorian Doran
33b9e6d0c1
Add support for changing note colors via UI (#7795) 2025-11-21 02:16:25 +02:00
Adorian Doran
d87e8b729f client/note color picker/clear color cell: fix icon alignment 2025-11-21 02:12:52 +02:00
Adorian Doran
0db08f4c62 client/note color picker: decrease the debouncer interval 2025-11-21 01:30:45 +02:00
Adorian Doran
e9796c9a35 client/note color picker: fix the custom color picker on Safari 2025-11-21 01:29:54 +02:00
Adorian Doran
36350bd71a Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui/note-color 2025-11-21 00:02:51 +02:00
Adorian Doran
e53a2255a9 client/tree context menu: relocate the note color picker 2025-11-20 23:55:26 +02:00
Adorian Doran
d42f911df9 client/note color picker: dismiss the menu when a color is clicked 2025-11-20 23:43:08 +02:00
Adorian Doran
1b2d922c3f client/note color picker: tweak style 2025-11-20 23:37:03 +02:00
Adorian Doran
a5c5486474 client/note color picker: tweak style 2025-11-20 23:34:37 +02:00
Adorian Doran
926f0f85f3 client/note color picker: refactor 2025-11-20 23:10:36 +02:00
Elian Doran
63d430c3d9
Translations update from Hosted Weblate (#7811) 2025-11-20 21:54:00 +02:00
Elian Doran
26a009b397
Printable list collection (#7812) 2025-11-20 21:52:55 +02:00
Elian Doran
be115c74c3
chore(print/list): address review 2025-11-20 21:42:50 +02:00
Elian Doran
049721bbfe
docs(user): update limitations for printing/exporting 2025-11-20 21:32:06 +02:00
Elian Doran
8b4e76832f
docs(user): update documentation regarding printing multiple notes 2025-11-20 21:28:55 +02:00
Elian Doran
25a51a71a0
feat(print/list): unlink references to notes that are not printed 2025-11-20 21:20:24 +02:00
Elian Doran
f4d6e98d61
feat(print/list): rewrite links 2025-11-20 21:06:25 +02:00
Elian Doran
eee496a050
chore(print/list): get rid of inner div 2025-11-20 20:59:34 +02:00
Elian Doran
89a83a625b
refactor(print/list): extract into functions 2025-11-20 20:58:50 +02:00
Elian Doran
c17df24a19
refactor(print/list): use separate file 2025-11-20 20:56:55 +02:00
Elian Doran
bbcc2f4be4
feat(print/list): rewrite headings while preserving depth 2025-11-20 20:51:41 +02:00
Elian Doran
5e63d9015f
feat(print/list): start rewriting headings 2025-11-20 20:48:39 +02:00
Elian Doran
4958b89636
feat(print/list): process notes recursively 2025-11-20 20:31:45 +02:00
Elian Doran
f4b6e9c25a
feat(print/list): display parent note title 2025-11-20 20:27:01 +02:00
Elian Doran
a59d407f12
fix(print/list): note content not shown due to race condition 2025-11-20 20:24:19 +02:00
Elian Doran
c95cb79672
chore(print/list): enable print dialog 2025-11-20 20:17:20 +02:00
Elian Doran
73e7fa0f85
chore(print/list): get note content to render 2025-11-20 20:15:44 +02:00
Elian Doran
7f81b83955
chore(print/list): get note titles to render 2025-11-20 20:13:20 +02:00
Hosted Weblate
a42ae62042
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-11-20 19:03:46 +01:00
Elian Doran
165357f444
fix(global_menu): uncaught exception if update request fails (closes #5700) 2025-11-20 19:52:13 +02:00
Adorian Doran
e4c928ae87 client/note color picker: refactor 2025-11-20 19:11:51 +02:00
Elian Doran
d51e3de674
feat(text): strike-through todo items (closes #4269) 2025-11-20 19:10:54 +02:00
Adorian Doran
b0476c7017 client/note color picker: refactor 2025-11-20 18:49:47 +02:00
Adorian Doran
1de9f715fa client/note color picker: refactor 2025-11-20 18:46:27 +02:00
Adorian Doran
f15e048763 client/note color picker menu item: refactor stylesheet 2025-11-20 18:43:16 +02:00
Adorian Doran
422b324f7c client/note color picker menu item: add tooltips 2025-11-20 18:15:56 +02:00
Adorian Doran
fb163367d4 client/note color picker menu item: refactor 2025-11-20 17:50:32 +02:00
Adorian Doran
c91eec8b3e client/note color picker menu item: add a new color to the palette 2025-11-20 17:42:36 +02:00
Elian Doran
c16eee79d4
fix(share): broken reference links in static HTML export 2025-11-20 14:50:52 +02:00
Elian Doran
1e86d85035
fix(share): some reference links appear with [missing note] 2025-11-20 14:41:00 +02:00
Elian Doran
abfc2fea3e
feat(print): render inline mermaid 2025-11-20 14:30:04 +02:00
Elian Doran
991d61600d
fix(server): redundant CSS import (closes #7772) 2025-11-20 14:30:04 +02:00
Elian Doran
0f4713bddc
chore(deps): update dependency @smithy/middleware-retry to v4.4.12 (#7796) 2025-11-20 11:25:40 +02:00
Elian Doran
51205fffa0
fix(deps): update dependency i18next to v25.6.3 (#7801) 2025-11-20 11:24:27 +02:00
renovate[bot]
9f4fd92452
fix(deps): update dependency i18next to v25.6.3 2025-11-20 06:54:46 +00:00
Elian Doran
354fccab8b
Translations update from Hosted Weblate (#7803) 2025-11-20 08:53:02 +02:00
yunus uçan
a6ba87c2f8
Translated using Weblate (Turkish)
Currently translated at 4.3% (70 of 1625 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/tr/
2025-11-20 07:52:04 +01:00
yunus uçan
ae8aa0374f
Translated using Weblate (Turkish)
Currently translated at 3.0% (12 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/tr/
2025-11-20 07:52:03 +01:00
yunus uçan
dc5e073715
Translated using Weblate (Turkish)
Currently translated at 3.2% (5 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/tr/
2025-11-20 07:52:03 +01:00
Hosted Weblate
8c68ff5419
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-11-20 07:52:02 +01:00
Elian Doran
bc10408729
chore(deps): update dependency @stylistic/eslint-plugin to v5.6.1 (#7797) 2025-11-20 08:51:54 +02:00
renovate[bot]
96b059f657
chore(deps): update dependency @smithy/middleware-retry to v4.4.12 2025-11-20 06:51:48 +00:00
Elian Doran
4db2ae53cb
chore(deps): update dependency lint-staged to v16.2.7 (#7799) 2025-11-20 08:51:27 +02:00
Elian Doran
f7308f53d3
chore(deps): update dependency rimraf to v6.1.2 (#7800) 2025-11-20 08:51:00 +02:00
Elian Doran
17fbd78b97
chore(deps): update dependency electron to v38.7.1 (#7798) 2025-11-20 08:50:42 +02:00
Elian Doran
3ad03ebc1d
fix(deps): update dependency react-i18next to v16.3.5 (#7802) 2025-11-20 08:49:42 +02:00
renovate[bot]
32e4e69930
fix(deps): update dependency react-i18next to v16.3.5 2025-11-20 02:04:09 +00:00
renovate[bot]
b20f7aca53
chore(deps): update dependency rimraf to v6.1.2 2025-11-20 02:01:35 +00:00
renovate[bot]
e72ee606fd
chore(deps): update dependency lint-staged to v16.2.7 2025-11-20 02:01:27 +00:00
renovate[bot]
1386d1ae32
chore(deps): update dependency electron to v38.7.1 2025-11-20 02:00:10 +00:00
renovate[bot]
903d678f30
chore(deps): update dependency @stylistic/eslint-plugin to v5.6.1 2025-11-20 01:59:14 +00:00
Adorian Doran
828a786414 client/note color picker menu item: improve 2025-11-20 01:35:44 +02:00
Elian Doran
3ee8e7b755
fix(server): note type not changed for webview template (closes #7557) 2025-11-19 22:37:41 +02:00
Elian Doran
0d0448d86b
fix(scripting): RightPanelWidget requiring async doRenderBody (closes #7778) 2025-11-19 22:10:42 +02:00
Elian Doran
5da4762f40
Translations update from Hosted Weblate (#7793) 2025-11-19 17:20:26 +02:00
Elian Doran
36bcb2ce92
Update apps/client/src/translations/it/translation.json
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-11-19 17:19:27 +02:00
anotheranonymoususer
151d7c1ba5
Translated using Weblate (Czech)
Currently translated at 3.2% (53 of 1625 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/cs/
2025-11-19 13:51:17 +01:00
Giovi
19d444e387
Translated using Weblate (Italian)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/it/
2025-11-19 13:51:16 +01:00
Giovi
e41c718bb3
Translated using Weblate (Italian)
Currently translated at 100.0% (1625 of 1625 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-11-19 13:51:16 +01:00
Elian Doran
2e5d91a5bc
chore(share): fix escape in reference link and handling of attachment links 2025-11-19 09:19:02 +02:00
Elian Doran
ae184ab894
feat(share): display note icon in reference links 2025-11-19 09:07:33 +02:00
Elian Doran
1ceedf2372
fix(share): missing or protected notes leaking through reference links (closes #4801) 2025-11-19 08:59:52 +02:00
Elian Doran
416c05ed3b
fix(share): footer navigation doesn't respect #shareHiddenFromTree (closes #7781) 2025-11-19 08:43:57 +02:00
Elian Doran
623da7eade
fix(share): syntax highlighting doesn't unescape properly (closes #7783) 2025-11-19 08:34:25 +02:00
Elian Doran
84b3d6db76
fix(tree): fix failure to auto-activate hoisted note (#7782) 2025-11-19 08:20:21 +02:00
Elian Doran
25a27c9b11
fix(tree): keep moved notes always visible (#7776) 2025-11-19 08:19:08 +02:00
Elian Doran
456d59f582
chore(deps): update typescript-eslint monorepo to v8.47.0 (#7789) 2025-11-19 08:12:37 +02:00
Elian Doran
1d641cdf82
chore(deps): update dependency @vitest/coverage-v8 to v4 (#7790) 2025-11-19 07:36:44 +02:00
Elian Doran
4420d7962e
chore(deps): update dependency @stylistic/eslint-plugin to v5.6.0 (#7788) 2025-11-19 07:35:25 +02:00
Elian Doran
21e6e3df3f
chore(deps): update dependency @anthropic-ai/sdk to v0.70.0 (#7787) 2025-11-19 07:34:19 +02:00
renovate[bot]
7e04098971
chore(deps): update typescript-eslint monorepo to v8.47.0 2025-11-19 05:33:42 +00:00
Elian Doran
24df4dd0c1
fix(deps): update dependency @codemirror/view to v6.38.8 (#7786) 2025-11-19 07:33:27 +02:00
Elian Doran
8ed87e77be
chore(deps): update vitest monorepo to v4.0.10 (#7785) 2025-11-19 07:32:35 +02:00
renovate[bot]
10c0ce26dc
chore(deps): update vitest monorepo to v4.0.10 2025-11-19 05:32:11 +00:00
Elian Doran
3a38b59dad
chore(deps): update dependency webdriverio to v9.20.1 (#7784) 2025-11-19 07:29:49 +02:00
SiriusXT
24820b914c chore(e2e): add tests for tree 2025-11-19 12:15:18 +08:00
renovate[bot]
97339fd45d
chore(deps): update dependency @vitest/coverage-v8 to v4 2025-11-19 01:57:00 +00:00
renovate[bot]
a1314d645b
chore(deps): update dependency @stylistic/eslint-plugin to v5.6.0 2025-11-19 01:56:29 +00:00
renovate[bot]
571a4dca7a
chore(deps): update dependency @anthropic-ai/sdk to v0.70.0 2025-11-19 01:56:25 +00:00
renovate[bot]
36f5e62537
fix(deps): update dependency @codemirror/view to v6.38.8 2025-11-19 01:56:02 +00:00
renovate[bot]
a21b716d0a
chore(deps): update dependency webdriverio to v9.20.1 2025-11-19 01:55:11 +00:00
Adorian Doran
c25859cee9 client/debouncer: report pending updates before destroying 2025-11-19 00:57:45 +02:00
Adorian Doran
79dc5e4344 client/note color picker menu item: tweak style 2025-11-19 00:53:18 +02:00
Adorian Doran
c81aef6d05 client/note color picker menu item: update the color palette 2025-11-18 22:18:15 +02:00
Elian Doran
c744e36f3b
fix(deps): update dependency marked to v17 (#7652) 2025-11-18 20:39:02 +02:00
Elian Doran
9d96b3d1d0
Merge branch 'renovate/marked-17.x' of https://github.com/TriliumNext/Trilium into renovate/marked-17.x 2025-11-18 20:17:35 +02:00
Elian Doran
b246c638fd
fix(import/markdown): TODO not properly handled after upgrade 2025-11-18 20:17:34 +02:00
renovate[bot]
15dd8dfe8c
fix(deps): update dependency marked to v17 2025-11-18 18:11:35 +00:00
Elian Doran
50859fd661
Merge remote-tracking branch 'origin/main' into renovate/marked-17.x 2025-11-18 20:10:33 +02:00
Elian Doran
eada994a82
chore(server): remove unnecessary js-yaml dependency 2025-11-18 20:08:47 +02:00
Elian Doran
3da2046fa0
chore(deps): update vitest monorepo to v4 (major) (#7509) 2025-11-18 20:07:36 +02:00
Elian Doran
989ca08c94
test(server): increase global hook timeout 2025-11-18 19:50:15 +02:00
Elian Doran
e9ccd7120d
test(server): mocks in AI service manager 2025-11-18 19:47:45 +02:00
Elian Doran
c15ae293aa
test(server): LLM provider tests failing due to mocks 2025-11-18 19:39:11 +02:00
Elian Doran
50501aef56
test: fix typecheck issues by using classes 2025-11-18 19:21:33 +02:00
Adorian Doran
45747183e7 client/refactor: extract the debouncer to a separate module 2025-11-18 19:20:17 +02:00
Elian Doran
c9424d6f8d
Merge remote-tracking branch 'origin/main' into renovate/major-vitest-monorepo 2025-11-18 19:09:53 +02:00
Adorian Doran
5ecd8b41e5 client/note color picker menu item: add support to select a custom color 2025-11-18 19:05:20 +02:00
Adorian Doran
01d6dee9fc client/note color picker menu item: improve label handling 2025-11-18 17:23:57 +02:00
renovate[bot]
12865ac7cc
fix(deps): update dependency marked to v17 2025-11-18 14:07:16 +00:00
Elian Doran
362f0b2fe5
fix share url can be broken because of extra slash (#7779) 2025-11-18 16:04:23 +02:00
SiriusXT
9f800df5ad fix(tree): fix failure to auto-activate hoisted note 2025-11-18 19:54:50 +08:00
contributor
e937f1b601 shareUrl: use URL interface instead of string manipulations 2025-11-18 10:32:33 +02:00
contributor
5b387a0b11 fix share url can be broken because of extra slash 2025-11-18 10:22:19 +02:00
SiriusXT
9226b165bd fix(tree): fix error when moving a note to its parent node 2025-11-18 15:37:20 +08:00
SiriusXT
a6586c9d1c fix(tree): keep moved notes always visible 2025-11-18 15:33:32 +08:00
Elian Doran
0a36d759e4
fix(board): extra bottom margin 2025-11-18 09:14:39 +02:00
Elian Doran
328bcd0532
feat(collections): display no children warning for empty presentations 2025-11-18 08:51:47 +02:00
Elian Doran
ec76e9cf2a
refactor(collections): fix typecheck and remove generics 2025-11-18 08:49:07 +02:00
Elian Doran
88ae996694
fix(collections): view type not refreshing properly 2025-11-18 08:46:00 +02:00
Elian Doran
d1d1d05ce7
fix(collections): children warning stuck when changing view mode 2025-11-18 08:39:58 +02:00
Elian Doran
c62a03c97b
fix(collections): no children warning missing for newly created collection 2025-11-18 08:39:11 +02:00
Elian Doran
65cc57ec03
feat(split): allow closing any split pane (#7763) 2025-11-18 07:35:56 +02:00
Elian Doran
806c9a57fc
Translations update from Hosted Weblate (#7777) 2025-11-18 07:33:16 +02:00
Yunho Park
3a18ce0cf9
Translated using Weblate (Korean)
Currently translated at 38.1% (58 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ko/
2025-11-18 06:31:44 +01:00
anotheranonymoususer
4fde6e1293
Translated using Weblate (Czech)
Currently translated at 3.2% (5 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/cs/
2025-11-18 06:31:43 +01:00
anotheranonymoususer
31b43301a4
Translated using Weblate (Czech)
Currently translated at 13.5% (16 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/cs/
2025-11-18 06:31:42 +01:00
anotheranonymoususer
6a77e412fa
Translated using Weblate (Czech)
Currently translated at 3.2% (53 of 1625 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/cs/
2025-11-18 06:31:41 +01:00
federico
53a6424348
Translated using Weblate (Italian)
Currently translated at 100.0% (1625 of 1625 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-11-18 06:31:40 +01:00
Francis C.
c8d933469a
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1625 of 1625 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-11-18 06:31:39 +01:00
Francis C.
e456373671
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1625 of 1625 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-11-18 06:31:38 +01:00
Elian Doran
afdb806083
chore(deps): update dependency openai to v6.9.1 (#7775) 2025-11-18 07:31:30 +02:00
renovate[bot]
02c63dd22f
chore(deps): update dependency openai to v6.9.1 2025-11-18 03:00:14 +00:00
SiriusXT
529f9a2fb9 Merge branch 'main' into siriusbcd_close_split 2025-11-18 09:54:59 +08:00
SiriusXT
6b0bcf93d3 feat(split): improve support for closing any split pane 2025-11-18 09:14:50 +08:00
SiriusXT
13afe33244 fix(tab_manager): correct order when reopening split pane 2025-11-18 09:05:18 +08:00
Adorian Doran
d441bccf8b client/note color picker menu item: refactor 2025-11-18 02:18:14 +02:00
Adorian Doran
e6847355e7 client/note color picker menu item: improve the integration with the tree context menu 2025-11-18 02:12:41 +02:00
Adorian Doran
72051c8660 client/note color picker menu item: add a separator to the tree context menu 2025-11-18 01:24:05 +02:00
Adorian Doran
87afc64f16 client/note color picker menu item: fix current selection 2025-11-18 01:21:26 +02:00
Adorian Doran
870fef3ea6 client/note color picker menu item: fix a typo 2025-11-18 01:17:13 +02:00
Adorian Doran
e5ac8a0a67 client/note color picker menu item: refactor 2025-11-18 01:16:32 +02:00
Adorian Doran
87fcc0afe6 client/note color picker menu item: add to the table row context menu 2025-11-18 01:14:05 +02:00
Adorian Doran
79830870dd client/note color picker menu item: add to the geo map item context menu 2025-11-18 01:13:21 +02:00
Adorian Doran
69ad40c27f client/note color picker menu item: add to the board item context menu 2025-11-18 01:12:28 +02:00
Adorian Doran
1ac7ce00fb client/note color picker menu item: add to the calendar item context menu 2025-11-18 01:11:55 +02:00
Adorian Doran
e239bca0f2 client/note color picker menu item: fix data type 2025-11-18 01:10:10 +02:00
Adorian Doran
8729fe48c3 client/note color picker menu item: add support to operate with note IDs as well 2025-11-18 01:09:22 +02:00
Adorian Doran
441c55eb31 client/note color picker menu item: add initial implementation 2025-11-18 00:09:12 +02:00
Adorian Doran
5291a6856e client: create a placeholder for a color picker menu item 2025-11-17 19:14:34 +02:00
Adorian Doran
e011f99161 client: add support for custom menu items 2025-11-17 18:58:40 +02:00
Elian Doran
64a756cc04
fix(share): mermaid breaking in share (closes #7765) 2025-11-17 17:34:52 +02:00
SiriusXT
f57e90b35c Merge branch 'main' into siriusbcd_close_split 2025-11-17 21:03:54 +08:00
SiriusXT
5a5d242ea0 fix(tab_manager): correct order when reopening split pane 2025-11-17 21:01:21 +08:00
SiriusXT
4afea27fa5 fix(tab_manager): correct order when reopening tabs 2025-11-17 21:00:27 +08:00
Elian Doran
fc8042aa25
Add Traefik configuration documentation (#7769) 2025-11-17 08:30:08 +02:00
Elian Doran
2b6220beb8
docs(user): sync 2025-11-17 08:26:06 +02:00
Elian Doran
78426a6c7b
Merge remote-tracking branch 'origin/main' into patch-2 2025-11-17 08:20:18 +02:00
Elian Doran
620e53c255
docs(user): fix broken reference link (see #7766) 2025-11-17 08:19:23 +02:00
Elian Doran
753fc6c769
Calendar: Lock calendar initialDate using label (#7694) 2025-11-17 08:10:36 +02:00
Elian Doran
3d6e1dfc0a
fix(deps): update dependency mind-elixir to v5.3.6 (#7771) 2025-11-17 07:30:41 +02:00
renovate[bot]
d92431ad65
fix(deps): update dependency mind-elixir to v5.3.6 2025-11-17 02:06:54 +00:00
SiriusXT
be19d1f5b5 fix(split pane): hide the close button when no split panes exist 2025-11-17 09:24:18 +08:00
Andrea Santoro
ca08a52998
Fix volume path syntax in Traefik documentation 2025-11-16 22:39:50 +01:00
Andrea Santoro
e54822f3b0
Clarify TRILIUM_NETWORK_TRUSTEDREVERSEPROXY config
Added example IP address for TRILIUM_NETWORK_TRUSTEDREVERSEPROXY.
2025-11-16 22:27:14 +01:00
Andrea Santoro
3863e657ef
Update docs/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Traefik.md
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-11-16 22:25:06 +01:00
Andrea Santoro
341ef79b49
Update docs/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Traefik.md
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-11-16 22:23:39 +01:00
Andrea Santoro
335f34b824
Update docs/User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Traefik.md
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-11-16 22:23:15 +01:00
Andrea Santoro
c864863be4
Add Traefik configuration documentation
Added documentation for configuring Traefik as a reverse proxy with HTTPS support, including example docker-compose configuration.
2025-11-16 22:19:46 +01:00
Elian Doran
c3ebef0dde
Translations update from Hosted Weblate (#7762) 2025-11-16 22:10:05 +02:00
Elian Doran
7b7058c77b
Translated using Weblate (Romanian)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ro/
2025-11-16 21:08:43 +01:00
Elian Doran
192cf9bc26
Translated using Weblate (Romanian)
Currently translated at 100.0% (1625 of 1625 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ro/
2025-11-16 21:08:43 +01:00
Elian Doran
1cccbcfabe
Translated using Weblate (Romanian)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ro/
2025-11-16 21:02:49 +01:00
Elian Doran
a85b37985a
Translated using Weblate (Romanian)
Currently translated at 100.0% (118 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ro/
2025-11-16 21:02:48 +01:00
Elian Doran
8b6b1ee315
Translated using Weblate (Romanian)
Currently translated at 100.0% (389 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ro/
2025-11-16 21:02:47 +01:00
Elian Doran
021c655a1a
Translated using Weblate (Romanian)
Currently translated at 100.0% (1625 of 1625 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ro/
2025-11-16 21:02:45 +01:00
Elian Doran
8af8968b49
Internationalization v2 (#7767) 2025-11-16 22:02:37 +02:00
Elian Doran
17298edfcc
chore: handle requested changes 2025-11-16 21:32:08 +02:00
Elian Doran
5281e8e5b4
docs(dev): document adding a new locale 2025-11-16 21:24:34 +02:00
Elian Doran
cc0e30e3f5
test(ckeditor): test all languages are mapped correctly 2025-11-16 21:18:34 +02:00
Elian Doran
497bb35209
test(canvas): test all languages are mapped correctly 2025-11-16 21:03:53 +02:00
Elian Doran
7d1453ffbd
feat(canvas): add support for locales 2025-11-16 17:49:55 +02:00
Elian Doran
89228f264f
feat(mindmap): add support for locales 2025-11-16 17:34:56 +02:00
Elian Doran
a10d99f938
feat(ckeditor5): set up multi-language support 2025-11-16 14:24:07 +02:00
Elian Doran
d014ae4fcf
chore(ckeditor5): set up dependency to commons 2025-11-16 14:23:48 +02:00
SiriusXT
a22687e2d8 Merge branch 'main' into siriusbcd_close_split 2025-11-16 20:15:43 +08:00
SiriusXT
44475853df feat(split): allow closing any split pane 2025-11-16 20:12:56 +08:00
Elian Doran
bbcc670655
feat(client/link): render reference links same as in editor 2025-11-16 11:01:37 +02:00
Elian Doran
ae58b4af35
feat(help): render reference links with icon 2025-11-16 11:01:37 +02:00
Elian Doran
fbc2ffac59
chore(deps): update dependency i18next-fs-backend to v2.6.1 (#7760) 2025-11-16 09:23:30 +02:00
renovate[bot]
f279839e6f
chore(deps): update dependency i18next-fs-backend to v2.6.1 2025-11-16 02:27:29 +00:00
Elian Doran
1844a7d666
fix(calendar): unable to delete in journal (closes #7702) 2025-11-15 22:43:35 +02:00
Elian Doran
c9f648fcb8
fix(tree): #top/#bottom reversed in desc order (closes #7716) 2025-11-15 22:27:02 +02:00
Elian Doran
948688a4ea
fix(note_list): no longer displayed in help or search 2025-11-15 22:05:32 +02:00
Elian Doran
35ca295d48
fix(settings/appearance): font size can't be typed out properly (closes #7740) 2025-11-15 21:38:17 +02:00
Elian Doran
cacc4ad01d
Translations update from Hosted Weblate (#7756) 2025-11-15 21:32:13 +02:00
Hosted Weblate
b12085f61f
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-11-15 19:29:45 +00:00
Elian Doran
39dacafa82
Fix #6696 by using shell.openExternal (#7737) 2025-11-15 21:29:30 +02:00
Elian Doran
57deb36027
Merge branch 'main' into patch-1 2025-11-15 21:24:24 +02:00
Elian Doran
2840df82f4
chore(client): fix typecheck issue 2025-11-15 17:52:08 +02:00
Elian Doran
3d971108b8
chore(ci/docker): update nightly version on main branch 2025-11-15 17:47:20 +02:00
Elian Doran
5bcdce72ef
chore(client): remove redundant log 2025-11-15 17:33:06 +02:00
Elian Doran
398329a219
fix(text): insert link sometimes occurs in the wrong tab 2025-11-15 17:32:06 +02:00
Elian Doran
754a06343f
Translations update from Hosted Weblate (#7751) 2025-11-15 16:44:12 +02:00
minkipark
55a79e5fbf
Translated using Weblate (Korean)
Currently translated at 7.8% (12 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ko/
2025-11-15 15:36:43 +01:00
Yunho Park
c78a97fed1
Translated using Weblate (Korean)
Currently translated at 7.8% (12 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ko/
2025-11-15 15:36:43 +01:00
Elian Doran
13c8ff5cb3
Kanban board v3 (#7753) 2025-11-15 16:36:39 +02:00
Elian Doran
9e34d3a668
chore(client): fix typecheck issue 2025-11-15 16:01:30 +02:00
Elian Doran
57f220e64c
Apply suggestions from code review
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-15 15:37:00 +02:00
Elian Doran
a89756a76c
docs(user): improve documentation on promoted attributes 2025-11-15 15:25:36 +02:00
Elian Doran
88c1aa163e
docs(user): working with the note tree in board 2025-11-15 13:41:48 +02:00
Elian Doran
d2184682e5
docs(user): grouping by relation in board 2025-11-15 13:37:24 +02:00
Elian Doran
63cc5b21b4
feat(board): scroll snapping on mobile 2025-11-15 13:06:51 +02:00
Elian Doran
b7703fc4df
style(next): use main background color on mobile 2025-11-15 12:52:20 +02:00
Elian Doran
254d3a1c8e
fix(board): not reacting to external title changes 2025-11-15 12:42:49 +02:00
Elian Doran
8d3892757a
fix(board): not refreshing on status attribute change 2025-11-15 12:37:25 +02:00
Elian Doran
a8992d08b3
fix(board): escape not working in "Add column" 2025-11-15 12:35:10 +02:00
Elian Doran
5e35aa8079
fix(board): columns leaking between notes 2025-11-15 12:24:18 +02:00
Elian Doran
df8da0fd4f
feat(board): warn when column already exists 2025-11-15 11:34:01 +02:00
Elian Doran
f820c6f23b
feat(board/relation): react to column title changes 2025-11-15 11:28:35 +02:00
Elian Doran
0c616fecdf
feat(board/relation): improve relation editing experience 2025-11-15 11:21:23 +02:00
Elian Doran
092a84693f
feat(board/relation): basic support for editing relations in columns 2025-11-15 11:13:55 +02:00
Elian Doran
d1e80815d5
feat(board/relation): add support for more APIs 2025-11-15 10:50:55 +02:00
Elian Doran
0f000ccd93
fix(board/relation): not reacting to status change 2025-11-15 10:42:32 +02:00
Elian Doran
f90e0767cb
feat(board/relation): allow dragging between columns 2025-11-15 10:26:19 +02:00
Elian Doran
ad6d61f1f7
feat(board/relation): display note titles 2025-11-15 10:17:40 +02:00
Elian Doran
47f7968dc4
feat(board/relation): group by relation 2025-11-15 10:15:11 +02:00
Elian Doran
455b190a5b
refactor(client): rename to user attributes 2025-11-15 09:36:18 +02:00
Elian Doran
0bc8584c35
chore(deps): update dependency electron to v38.7.0 (#7748) 2025-11-15 09:01:14 +02:00
Elian Doran
da39cdb27f
chore(deps): update dependency @ckeditor/ckeditor5-package-tools to v5.0.1 (#7741) 2025-11-15 09:00:57 +02:00
Elian Doran
769c2e9b4e
chore(deps): update dependency @smithy/middleware-retry to v4.4.11 (#7742) 2025-11-15 09:00:48 +02:00
Elian Doran
783d2b8843
chore(deps): update dependency @types/yargs to v17.0.35 (#7743) 2025-11-15 09:00:13 +02:00
Elian Doran
baca0a17c3
chore(deps): update dependency rcedit to v5.0.1 (#7744) 2025-11-15 08:59:50 +02:00
Elian Doran
f48d47bac5
fix(deps): update dependency @codemirror/view to v6.38.7 (#7745) 2025-11-15 08:59:29 +02:00
Elian Doran
14fa5d2723
fix(deps): update dependency color to v5.0.3 (#7746) 2025-11-15 08:58:40 +02:00
Elian Doran
70845611a4
chore(deps): update dependency @anthropic-ai/sdk to v0.69.0 (#7747) 2025-11-15 08:58:20 +02:00
Elian Doran
7be11da85f
chore(deps): update dependency node-abi to v4.24.0 (#7749) 2025-11-15 08:56:25 +02:00
renovate[bot]
f2f4b0e75b
chore(deps): update dependency node-abi to v4.24.0 2025-11-15 01:04:53 +00:00
renovate[bot]
491cd27f2d
chore(deps): update dependency electron to v38.7.0 2025-11-15 01:04:10 +00:00
renovate[bot]
7b62881113
chore(deps): update dependency @anthropic-ai/sdk to v0.69.0 2025-11-15 01:03:30 +00:00
renovate[bot]
22f46919f9
fix(deps): update dependency color to v5.0.3 2025-11-15 01:02:49 +00:00
renovate[bot]
1ef7fd401f
fix(deps): update dependency @codemirror/view to v6.38.7 2025-11-15 01:02:07 +00:00
renovate[bot]
5f1dbc23b4
chore(deps): update dependency rcedit to v5.0.1 2025-11-15 01:01:27 +00:00
renovate[bot]
8d750417ec
chore(deps): update dependency @types/yargs to v17.0.35 2025-11-15 01:01:22 +00:00
renovate[bot]
52f30052d5
chore(deps): update dependency @smithy/middleware-retry to v4.4.11 2025-11-15 01:00:40 +00:00
renovate[bot]
655e6bafd1
chore(deps): update dependency @ckeditor/ckeditor5-package-tools to v5.0.1 2025-11-15 00:59:58 +00:00
Elian Doran
d4dfb0cb53
Translations update from Hosted Weblate (#7738) 2025-11-14 18:19:39 +02:00
Hosted Weblate
8d08973d48
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-11-14 15:38:37 +00:00
Elian Doran
9b1b56a381
fix NoteLink component is unable to display path for root note (#7736) 2025-11-14 17:38:19 +02:00
laund
f709c27329
use shell.openExternal for URI protocol handling, clean up and unify logic 2025-11-14 15:31:51 +01:00
contributor
02859039ec fix NoteLink component is unable to display path for root note 2025-11-14 16:02:43 +02:00
Elian Doran
e6810ef753
Fix toggle tray wont restore from tray (#7735) 2025-11-14 11:57:31 +02:00
contributor
ef86e195c6 remove constant and import, it is type safe as is #7730 2025-11-14 11:45:44 +02:00
contributor
d69dd2a83f handle toggleTray global shortcut differently from other global shortcuts #7730 2025-11-14 11:45:39 +02:00
Elian Doran
5dd21ac539
fix(flake): upgrade to Nodejs 24 (#7732) 2025-11-14 10:53:47 +02:00
FliegendeWurst
bd6575982b fix(flake): revert pname to just trilium-* 2025-11-14 08:54:25 +01:00
FliegendeWurst
80313527c5 fix(flake): upgrade to Nodejs 24
This ensures consistency with the main server build.
2025-11-14 08:53:40 +01:00
Elian Doran
78901e03d7
fix markdown headings are rendered with extra character (#7720) 2025-11-14 08:28:56 +02:00
Elian Doran
01c1b19601
chore(deps): update dependency openai to v6.9.0 (#7727) 2025-11-14 08:27:10 +02:00
Elian Doran
1d837092a2
Translations update from Hosted Weblate (#7731) 2025-11-14 08:26:47 +02:00
Elian Doran
bde04919fe
chore(deps): update dependency @ckeditor/ckeditor5-package-tools to v5 (#7729) 2025-11-14 08:26:14 +02:00
Hosted Weblate
0dd0416346
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-11-14 06:25:56 +00:00
Yunho Park
711dd64093
Translated using Weblate (Korean)
Currently translated at 3.9% (6 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ko/
2025-11-14 06:25:47 +00:00
Hosted Weblate
db7b4829b5
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-11-14 06:25:46 +00:00
Elian Doran
f97c63fe93
chore(deps): update ckeditor5 config packages to v13 (major) (#7728) 2025-11-14 08:25:38 +02:00
renovate[bot]
cb5fe95768
chore(deps): update dependency openai to v6.9.0 2025-11-14 06:25:29 +00:00
Elian Doran
34359dd7b6
fix(deps): update dependency react-i18next to v16.3.3 (#7725) 2025-11-14 08:24:40 +02:00
Elian Doran
476d1d274e
chore(deps): update dependency node-abi to v4.23.0 (#7726) 2025-11-14 08:24:07 +02:00
Elian Doran
c52265c046
fix(deps): update dependency @mind-elixir/node-menu to v5.0.1 (#7724) 2025-11-14 08:23:26 +02:00
Elian Doran
4fbf3d79c7
chore(deps): update dependency ollama to v0.6.3 (#7723) 2025-11-14 08:22:51 +02:00
renovate[bot]
e8cc92db95
chore(deps): update dependency @ckeditor/ckeditor5-package-tools to v5 2025-11-14 02:38:29 +00:00
renovate[bot]
40e969bab9
chore(deps): update ckeditor5 config packages to v13 2025-11-14 02:37:48 +00:00
renovate[bot]
3df2105016
chore(deps): update dependency node-abi to v4.23.0 2025-11-14 02:36:26 +00:00
renovate[bot]
0aa3cc3d6f
fix(deps): update dependency react-i18next to v16.3.3 2025-11-14 02:35:52 +00:00
renovate[bot]
666f26f516
fix(deps): update dependency @mind-elixir/node-menu to v5.0.1 2025-11-14 02:35:12 +00:00
renovate[bot]
7662dde294
chore(deps): update dependency ollama to v0.6.3 2025-11-14 02:34:31 +00:00
contributor
d28dda876c fix markdown headings are rendered with extra character 2025-11-13 23:18:38 +02:00
Elian Doran
1ca46e3505
Fix enex import stores wrong format in database for dateCreated, dateModified (#7718) 2025-11-13 20:48:09 +02:00
Elian Doran
6b6dc47f2b
Translations update from Hosted Weblate (#7714) 2025-11-13 20:43:39 +02:00
contributor
98b5b81d7d add typing and improve readability 2025-11-13 20:33:03 +02:00
contributor
48a20500f8 explicit param to keep or convert local date for enex import 2025-11-13 20:13:46 +02:00
contributor
a3bd15e102 move date conversion function to enex directly
to protect from future potential refactoring
2025-11-13 17:41:45 +00:00
contributor
f728b2b0e7 fix enex import saves local dates in wrong format (with Z, like UTC fields)
the proper format for dateCreated, dateModified is: +0000
2025-11-13 17:41:45 +00:00
Magnus Johansson
50dfd1d329
Translated using Weblate (Swedish)
Currently translated at 4.2% (5 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/sv/
2025-11-13 13:47:27 +00:00
kamykO
c0375b34fd
Translated using Weblate (Polish)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/pl/
2025-11-13 13:47:27 +00:00
Dong-ha, Lee
d8e7832f07
Translated using Weblate (Korean)
Currently translated at 15.6% (61 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ko/
2025-11-13 13:47:26 +00:00
green
f2415916aa
Translated using Weblate (Japanese)
Currently translated at 100.0% (1624 of 1624 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-11-13 13:47:25 +00:00
Francis C.
7f67b2a1ee
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (389 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hant/
2025-11-13 13:47:23 +00:00
Francis C.
bc9ad5012e
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1624 of 1624 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-11-13 13:47:23 +00:00
Francis C.
096deda23c
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (389 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hans/
2025-11-13 13:47:22 +00:00
qingmo_dev
8b5544268b
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1624 of 1624 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-11-13 13:47:21 +00:00
Francis C.
d492c0e091
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1624 of 1624 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-11-13 13:47:20 +00:00
Elian Doran
20b301ac0e
fix(collections/list): archived notes not shown on first render 2025-11-13 10:59:56 +02:00
Elian Doran
bacbe9f47c
chore(collections/list): style archived notes differently 2025-11-13 10:35:39 +02:00
Elian Doran
4ecb693be5
chore(collections/list): use more performant mechanism for searching by note ID 2025-11-13 10:26:47 +02:00
Elian Doran
454310c3e4
feat(collections/list): enable "Show archived notes" checkmark in collections 2025-11-13 10:24:57 +02:00
Elian Doran
e51daad5da
feat(collections/list): filter archived notes 2025-11-13 10:21:45 +02:00
Elian Doran
b13c0fe7a2
refactor(board/promoted_attributes): reduce duplication 2025-11-13 09:56:47 +02:00
Elian Doran
3036d18df5
feat(board/promoted_attributes): improve rendering for color badge 2025-11-13 09:56:47 +02:00
Elian Doran
5dbe9e7da6
feat(board/promoted_attributes): render non-promoted attribute defs too 2025-11-13 09:56:47 +02:00
Elian Doran
fd9b6e9e67
fix(board/promoted_attributes): status attribute displayed when it shouldn't 2025-11-13 09:56:46 +02:00
Elian Doran
4f580a37a3
fix(quick_search): resolve word issues to not trigger substring matches (#7708) 2025-11-13 09:53:14 +02:00
Elian Doran
f64d11b7c8
chore(deps): update dependency @smithy/middleware-retry to v4.4.10 (#7709) 2025-11-13 09:42:30 +02:00
Elian Doran
2bf9e0edd9
chore(deps): update dependency js-yaml to v4.1.1 (#7710) 2025-11-13 09:42:18 +02:00
Elian Doran
b807079c55
chore: add class name to content-header (#7713) 2025-11-13 09:41:35 +02:00
SiriusXT
2cc5b896e0 Merge branch 'main' into share 2025-11-13 14:24:04 +08:00
SiriusXT
7c79caba78 chore: add class name to content-header 2025-11-13 14:21:07 +08:00
Elian Doran
fbf4a910fa
Merge branch 'main' into renovate/smithy-middleware-retry-4.x 2025-11-13 08:07:46 +02:00
Elian Doran
95947a9f8c
chore(deps): update node.js to v24.11.1 (#7697) 2025-11-13 07:43:55 +02:00
Elian Doran
1c05acf5ed
fix(deps): update dependency react-i18next to v16.3.1 (#7712) 2025-11-13 07:43:18 +02:00
Elian Doran
5cc5f3ffae
chore(deps): update pnpm to v10.22.0 (#7711) 2025-11-13 07:42:47 +02:00
renovate[bot]
54556c73e2
fix(deps): update dependency react-i18next to v16.3.1 2025-11-13 01:08:04 +00:00
renovate[bot]
5aa63ac50c
chore(deps): update pnpm to v10.22.0 2025-11-13 01:07:17 +00:00
renovate[bot]
38eaa94a53
chore(deps): update node.js to v24.11.1 2025-11-13 01:07:05 +00:00
renovate[bot]
7810f6c8da
chore(deps): update dependency js-yaml to v4.1.1 2025-11-13 01:06:16 +00:00
renovate[bot]
6d94efb6c8
chore(deps): update dependency @smithy/middleware-retry to v4.4.10 2025-11-13 01:05:36 +00:00
perfectra1n
e89646ee7c fix(quick_search): centralize the repeated exactWordMatch function, per Gemini's suggestion 2025-11-12 16:49:43 -08:00
perfectra1n
dee8c115ab fix(quick_search): resolve word issues to not trigger substring matches 2025-11-12 16:43:59 -08:00
Elian Doran
54d3936c7b
feat(board/promoted_attributes): support multiple values 2025-11-12 21:06:44 +02:00
Elian Doran
02452a0513
feat(board/promoted_attributes): display relations with icon 2025-11-12 21:01:53 +02:00
Elian Doran
e9f40c48e3
feat(board/promoted_attributes): basic support for color attributes 2025-11-12 20:56:15 +02:00
Elian Doran
6b74b227cb
feat(board/promoted_attributes): format URL 2025-11-12 20:50:01 +02:00
Elian Doran
00874840b7
feat(board/promoted_attributes): format time 2025-11-12 20:48:45 +02:00
Elian Doran
d79a23bc9e
feat(board/promoted_attributes): format boolean 2025-11-12 20:42:30 +02:00
Elian Doran
3015576d7e
feat(board/promoted_attributes): format date & time 2025-11-12 20:34:48 +02:00
Elian Doran
46c2e162f0
feat(board/promoted_attributes): format number with precision 2025-11-12 20:31:27 +02:00
Elian Doran
3c42577da4
feat(board/promoted_attributes): react to changes 2025-11-12 20:27:13 +02:00
Elian Doran
76f791da93
Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-11-12 19:59:36 +02:00
Elian Doran
0c5adcee2d
fix(board): no promoted attributes creates margin 2025-11-12 19:58:42 +02:00
Elian Doran
b11b3ff67f
refactor(board): use hook for obtaining the list of attributes 2025-11-12 19:57:28 +02:00
Elian Doran
e006afc5a2
feat(board): display in chip format 2025-11-12 19:38:56 +02:00
Elian Doran
40dbb818c5
feat(board): ignore status attribute 2025-11-12 19:09:59 +02:00
Elian Doran
62dc570d38
feat(board): display promoted attributes 2025-11-12 19:07:23 +02:00
Elian Doran
b759c5e7d2
feat(board): display number of items in column 2025-11-12 18:47:29 +02:00
Diego Herrera
309d7e704c Add feature to docs 2025-11-12 12:58:56 -03:00
Diego Herrera
ecf9ce586c Use NoteLabel instead of CustomisableLabel 2025-11-12 12:43:37 -03:00
Elian Doran
3f93d191b3
Translations update from Hosted Weblate (#7701) 2025-11-12 08:27:40 +02:00
green
3a83e7f632
Translated using Weblate (Japanese)
Currently translated at 100.0% (389 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ja/
2025-11-12 07:18:19 +01:00
green
2acede95d7
Translated using Weblate (Japanese)
Currently translated at 100.0% (1623 of 1623 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-11-12 07:18:18 +01:00
Unknown
052a60ba58
Translated using Weblate (Spanish)
Currently translated at 100.0% (389 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/es/
2025-11-12 07:18:17 +01:00
Unknown
a633c6eecd
Translated using Weblate (Spanish)
Currently translated at 100.0% (1623 of 1623 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/es/
2025-11-12 07:18:16 +01:00
Elian Doran
b6561e6375
"Open note on server" menu item (#7477) 2025-11-12 08:17:53 +02:00
Elian Doran
7af9df2ee3
chore(deps): update dependency @redocly/cli to v2.11.1 (#7695) 2025-11-12 08:08:29 +02:00
Elian Doran
3c4b7fd490
chore(deps): update dependency @smithy/middleware-retry to v4.4.7 (#7696) 2025-11-12 08:08:15 +02:00
Elian Doran
f5ed4007e3
chore(deps): update typescript-eslint monorepo to v8.46.4 (#7698) 2025-11-12 08:07:55 +02:00
Elian Doran
f26469bdc2
fix(deps): update dependency i18next to v25.6.2 (#7699) 2025-11-12 08:07:38 +02:00
Elian Doran
3326d803a0
Translations update from Hosted Weblate (#7700) 2025-11-12 08:07:15 +02:00
Hosted Weblate
b60a28c52c
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-11-12 05:55:12 +00:00
Elian Doran
139c60ac73
Hotfix (#7679) 2025-11-12 07:54:54 +02:00
renovate[bot]
c7ad6131cb
fix(deps): update dependency i18next to v25.6.2 2025-11-12 02:54:22 +00:00
renovate[bot]
86e2a762a4
chore(deps): update typescript-eslint monorepo to v8.46.4 2025-11-12 02:53:34 +00:00
renovate[bot]
bf9f880a21
chore(deps): update dependency @smithy/middleware-retry to v4.4.7 2025-11-12 02:51:14 +00:00
renovate[bot]
5491aaab85
chore(deps): update dependency @redocly/cli to v2.11.1 2025-11-12 02:50:29 +00:00
Diego Herrera
d0de9e5e21 calendar: Lock calendar initialDate using label 2025-11-11 18:06:11 -03:00
Elian Doran
25563c6687
chore(release): prepare for v0.99.5 2025-11-11 22:16:13 +02:00
Elian Doran
48608adbd3
Merge branch 'hotfix' of https://github.com/TriliumNext/Trilium into hotfix 2025-11-11 15:33:00 +02:00
Elian Doran
362ecba98d
fix(popup_editor): drag indicator not visible (closes #7686) 2025-11-11 15:32:59 +02:00
Elian Doran
a13892da66
refactor(popup_editor): different handling for z-index 2025-11-11 15:32:18 +02:00
Elian Doran
40568ac547
Translations update from Hosted Weblate (#7689) 2025-11-11 13:56:40 +02:00
Elian Doran
e8dc19a1a6
chore(forge): display logs when building for flatpak 2025-11-11 13:49:00 +02:00
Elian Doran
cc326547d1
Merge branch 'hotfix' of github.com:TriliumNext/Trilium into hotfix 2025-11-11 13:41:22 +02:00
Elian Doran
a45b147462
fix(flatpak): global shortcuts not working (closes #7563) 2025-11-11 13:41:18 +02:00
Elian Doran
4e73f20165
fix(flatpak): system tray missing 2025-11-11 13:37:35 +02:00
hulmgulm
0039e5e60c
Translated using Weblate (German)
Currently translated at 21.7% (33 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/de/
2025-11-11 11:51:35 +01:00
Ondřej Soldát
813e2e8c9b
Translated using Weblate (Czech)
Currently translated at 1.9% (3 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/cs/
2025-11-11 11:51:34 +01:00
Dong-ha, Lee
f186e929b2
Translated using Weblate (Korean)
Currently translated at 10.5% (41 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ko/
2025-11-11 11:51:25 +01:00
Giovi
31d2abf954
Translated using Weblate (Italian)
Currently translated at 100.0% (389 of 389 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/it/
2025-11-11 11:51:23 +01:00
Giovi
bd69280735
Translated using Weblate (Italian)
Currently translated at 100.0% (1623 of 1623 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-11-11 11:51:21 +01:00
Elian Doran
80c77eeb18
fix(ribbon): "Open attribute list" shortcut not focusing (closes #7463) 2025-11-11 12:20:16 +02:00
Elian Doran
c30282fbd0
Merge branch 'hotfix' of https://github.com/TriliumNext/Trilium into hotfix 2025-11-11 11:24:47 +02:00
Elian Doran
7b8f1ed6ec
fix(collections/calendar): unable to drag to/from all-day (closes #7685) 2025-11-11 11:24:45 +02:00
Elian Doran
b86c656895
Note info ribbon flex layout (#7678) 2025-11-10 22:18:05 +02:00
Elian Doran
bc32fe749d
chore(deps): update pnpm to v10.21.0 (#7672) 2025-11-10 22:12:20 +02:00
Elian Doran
5970a242c9
chore(deps): update dependency esbuild to v0.27.0 (#7671) 2025-11-10 22:11:36 +02:00
Elian Doran
118e11c3fd
edited notes: better sql like statement (#7681) 2025-11-10 21:16:29 +02:00
Elian Doran
4fc9848a3b
Translations update from Hosted Weblate (#7682) 2025-11-10 20:36:02 +02:00
Hosted Weblate
b8de5b3348
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-11-10 18:29:41 +00:00
Elian Doran
5a01f75d67
edited notes: better sql like statement (#7681) 2025-11-10 20:29:25 +02:00
contributor
d0a994c102 fix sql like pattern 2025-11-10 20:15:08 +02:00
contributor
e883f32f89 edited notes: better sql like statement 2025-11-10 20:04:50 +02:00
Elian Doran
a6fc54cb81
fix(mindmap): switching between read-only and editable mode 2025-11-10 19:59:01 +02:00
Elian Doran
76bd6a5ab9
refactor(mindmap): unnecessary content logic 2025-11-10 19:44:45 +02:00
Elian Doran
3b5d749d86
docs(dev): branching strategy 2025-11-10 19:31:10 +02:00
Elian Doran
b54765113e
fix(ci): wrong dir for arm64 2025-11-10 19:10:55 +02:00
Elian Doran
ed08893996
chore(ci): disable fail-fast for matrix 2025-11-10 19:05:41 +02:00
Elian Doran
20286d53c8
feat(ci): test server on ARM as well 2025-11-10 18:56:04 +02:00
Elian Doran
9c1a34fe7c
fix(ci): proper port 2025-11-10 18:30:03 +02:00
Elian Doran
e70c6b69b8
fix(ci): set proper environment variables for playwright 2025-11-10 18:20:35 +02:00
Elian Doran
9b69b0ad0d
fix(server): use right packaged version 2025-11-10 17:51:04 +02:00
Elian Doran
3776c40b8d
chore(ci): add playwright testing to the server 2025-11-10 17:25:39 +02:00
renovate[bot]
6761f741ca
chore(deps): update dependency esbuild to v0.27.0 2025-11-10 13:48:16 +00:00
Elian Doran
c7369bc9b3
fix(print): copy to clipboard button visible 2025-11-10 14:26:24 +02:00
Adorian Doran
b741662fde
style/empty note: fix alignment 2025-11-10 14:17:49 +02:00
Adorian Doran
624610b17c
close #7668 2025-11-10 14:17:44 +02:00
Adorian Doran
de004bd8ba
fix #7667 2025-11-10 14:17:37 +02:00
contributor
a1c959aabd use class instead of inline style for note info calculate button 2025-11-10 13:18:07 +02:00
contributor
4d1ebd011c ribbon Note Info in flex layout instead of table 2025-11-10 13:18:07 +02:00
renovate[bot]
2947967b79
chore(deps): update pnpm to v10.21.0 2025-11-10 02:58:46 +00:00
Adorian Doran
52691b9e88 style/empty note: fix alignment 2025-11-10 03:05:05 +02:00
Adorian Doran
daba806e12 close #7668 2025-11-10 02:09:14 +02:00
Adorian Doran
d7f7049b5d fix #7667 2025-11-10 02:01:45 +02:00
contributor
e811db3651 only show "Open note on server" for electron app 2025-11-10 00:26:28 +02:00
contributor
a1d38b6bb8 add 'Open note on server' menu item to NoteActions drop-down 2025-11-10 00:26:28 +02:00
Elian Doran
c781eab061
Translations update from Hosted Weblate (#7664) 2025-11-09 22:53:15 +02:00
Elian Doran
fb91d4fbd4
docs(user): mention updates after react improvements 2025-11-09 22:52:02 +02:00
Sir-Ivysaur
cd6fcbd283
Translated using Weblate (Indonesian)
Currently translated at 9.8% (15 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/id/
2025-11-09 20:32:53 +00:00
Elian Doran
0ccc350ddf
Port type widgets to React (#7044) 2025-11-09 22:32:35 +02:00
Elian Doran
efa7fd0b7d
chore(client): use backward-compatible hiding mechanism 2025-11-09 22:20:49 +02:00
Elian Doran
5f4d0325aa
Merge remote-tracking branch 'origin/main' into react/type_widgets 2025-11-09 21:37:56 +02:00
Elian Doran
06eb30c69d
chore(release): prepare for v0.99.4 2025-11-09 21:29:21 +02:00
Elian Doran
b9b5c13d9c
fix(client): ribbon adapter not working 2025-11-09 21:14:28 +02:00
Elian Doran
763fa0b515
fix(client/type_widgets): empty tab not working when closing last tab 2025-11-09 20:41:29 +02:00
Elian Doran
8e697d0578
fix(ribbon): not dismissing active tab after change 2025-11-09 20:17:13 +02:00
Elian Doran
6f245ec8d5
fix(ribbon): not refreshing if note is temporarily edited 2025-11-09 20:15:06 +02:00
Elian Doran
532df6559a
fix(ribbon): formatting toolbar displayed in read-only notes 2025-11-09 20:15:06 +02:00
Adorian Doran
8589f7f164 style/note list widget: fix broken CSS selector 2025-11-09 19:50:48 +02:00
Elian Doran
7ba91b7a9d
chore(desktop): fix import 2025-11-09 19:36:58 +02:00
Adorian Doran
4eadf40e20 Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-11-09 19:35:59 +02:00
Adorian Doran
7b9303b392 style/zen mode: do not show an empty toolbar container when the toolbar is not actually available 2025-11-09 19:35:47 +02:00
Elian Doran
7fc9f08843
Merge remote-tracking branch 'origin/main' into react/type_widgets 2025-11-09 19:30:46 +02:00
Elian Doran
e28794d706
chore(edit-docs): fix typecheck 2025-11-09 19:28:08 +02:00
Elian Doran
521152ec0e
Translations update from Hosted Weblate (#7661) 2025-11-09 17:50:54 +02:00
Hosted Weblate
2ff746253d
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-11-09 16:39:21 +01:00
Elian Doran
c270aef738
Translations update from Hosted Weblate (#7660) 2025-11-09 17:39:06 +02:00
Sir-Ivysaur
d0881c09ed
Translated using Weblate (Indonesian)
Currently translated at 1.9% (3 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/id/
2025-11-09 16:15:11 +01:00
Adorian Doran
b905c1d03a style: different appearance tweaks 2025-11-09 17:10:23 +02:00
Adorian Doran
f03448bae4 style/gutter: tweak color on horizontal layout when background effects are enabled 2025-11-09 16:32:32 +02:00
Adorian Doran
f8ac09df38 style/right pane: tweak appearance 2025-11-09 16:16:37 +02:00
Adorian Doran
15c329c331 style/scrolling container widget: fix CSS selector 2025-11-09 15:51:29 +02:00
Adorian Doran
f6afc0b718 style/scrolling container widget: improve full-height widget handling 2025-11-09 15:46:57 +02:00
Elian Doran
ae1c8f0a0b
chore(client): review from Copilot 2025-11-09 15:13:57 +02:00
Elian Doran
1257e46852
chore(client): review from Gemini 2025-11-09 15:10:40 +02:00
Elian Doran
40a7f286a3
fix(client): typecheck issues 2025-11-09 15:04:29 +02:00
Elian Doran
652cccadd7
fix(type_widgets/code): read-only bar not visible for dark themes 2025-11-09 14:59:47 +02:00
Elian Doran
308fd00508
fix(type_widgets/code): not reacting to language changes 2025-11-09 14:48:31 +02:00
Adorian Doran
ecfa333491 style/note cards: remove shadow 2025-11-09 14:47:31 +02:00
Adorian Doran
21b0ef9554 style/note cards: improve style, remove no longer unused CSS variables 2025-11-09 14:43:59 +02:00
Elian Doran
35f413505c
fix(type_widgets/code): background color leaking in SQLite 2025-11-09 14:40:14 +02:00
Elian Doran
a82d15e83d
fix(type_widgets/attachments): attachments not refreshing when uploading new revision 2025-11-09 14:26:32 +02:00
Adorian Doran
2f3be96dff style/info bar: improve style 2025-11-09 14:17:04 +02:00
Adorian Doran
4ba7907bee client/content header container: fix parent detection 2025-11-09 14:07:27 +02:00
Elian Doran
24b169d667
fix(type_widgets): "empty" note type displayed on refresh 2025-11-09 13:52:07 +02:00
Elian Doran
b36ef54507
fix(type_widgets): code background leaking when switching types 2025-11-09 13:37:31 +02:00
Elian Doran
c772430dd0
fix(type_widgets): switching between note types shows wrong content 2025-11-09 13:24:12 +02:00
Elian Doran
d4194c503c
fix(type_widgets/relation_map): map emptied when switching fast 2025-11-09 12:38:12 +02:00
Elian Doran
33a41d2f86
Merge remote-tracking branch 'origin/main' into react/type_widgets
; Conflicts:
;	apps/client/src/layouts/desktop_layout.tsx
;	apps/client/src/layouts/mobile_layout.tsx
;	apps/client/src/widgets/note_detail.ts
;	apps/client/src/widgets/react/hooks.tsx
2025-11-09 12:08:50 +02:00
Elian Doran
afa92551ea
fix(tree): type issues & error if active node is empty 2025-11-09 11:16:35 +02:00
Elian Doran
cc0646e79c
style(next): remove alignment of last toolbar group 2025-11-09 10:35:03 +02:00
Elian Doran
4c8f20be9a
ignore toggle tray command if tray is disabled (#7654) 2025-11-09 09:45:37 +02:00
Elian Doran
3407528c03
chore(deps): update softprops/action-gh-release action to v2.4.2 (#7657) 2025-11-09 09:44:45 +02:00
Elian Doran
70575a00cb
Translations update from Hosted Weblate (#7656) 2025-11-09 09:34:41 +02:00
renovate[bot]
74ba4b9ee5
chore(deps): update softprops/action-gh-release action to v2.4.2 2025-11-09 00:42:36 +00:00
Francis C.
706abeb307
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-11-09 01:41:35 +01:00
Francis C.
7158c48831
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-11-09 01:41:35 +01:00
Adorian Doran
78e2814068
UI improvements (#7655) 2025-11-09 02:41:20 +02:00
Adorian Doran
7659224e3a style/read-only note info bar: fix zen mode appearance 2025-11-09 02:26:37 +02:00
Adorian Doran
baff349fa2 client: refactor 2025-11-09 02:23:57 +02:00
Adorian Doran
50869d29db client/shared note info bar: improve appearance 2025-11-09 02:14:43 +02:00
Adorian Doran
c4603fce25 client/shared note message: convert to an info bar 2025-11-09 01:56:52 +02:00
Adorian Doran
220aab2b76 client/read-only note info bar: refactor 2025-11-09 01:35:33 +02:00
Adorian Doran
285a7253e3 client: make the info bar part of the scrollable content, prevent overlapping with the floating buttons 2025-11-09 01:19:45 +02:00
Adorian Doran
d8d80ed936 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-11-08 21:25:39 +02:00
Elian Doran
3463cb83a0
fix(collections/board): cloned notes appearing twice (closes #6786) 2025-11-08 20:17:56 +02:00
Elian Doran
b0bd60b9a4
feat(collections/calendar): use formatting locale 2025-11-08 18:01:58 +02:00
contributor
3d70a0534b ignore toggle tray command if tray is disabled 2025-11-08 13:03:42 +02:00
Elian Doran
53805e9c49
fix(server/notes): images not saved on duplication (fixes #7471) 2025-11-08 11:27:18 +02:00
Elian Doran
0e95610d4e
fix(server): attachments not copied for templates (closes #7612) 2025-11-08 11:18:03 +02:00
Elian Doran
051e2b4eef
Send global shortcut to current window (#7645) 2025-11-08 08:31:17 +02:00
Elian Doran
1d750bde64
chore(deps): update dependency vite to v7.2.2 (#7647) 2025-11-08 08:28:13 +02:00
Elian Doran
4476615d33
fix(deps): update dependency marked to v16.4.2 (#7649) 2025-11-08 08:27:36 +02:00
Elian Doran
bbcc16daab
fix(deps): update dependency i18next to v25.6.1 (#7648) 2025-11-08 08:27:05 +02:00
Elian Doran
457dd070c6
chore(deps): update dependency rcedit to v5 (#7651) 2025-11-08 08:26:05 +02:00
Elian Doran
ce229dd6f5
chore(deps): update dependency electron to v38.6.0 (#7650) 2025-11-08 08:22:22 +02:00
renovate[bot]
2e59d9d7bc
chore(deps): update dependency rcedit to v5 2025-11-08 01:39:22 +00:00
renovate[bot]
bbe96c3967
chore(deps): update dependency electron to v38.6.0 2025-11-08 01:39:17 +00:00
renovate[bot]
d95eb9f5d3
fix(deps): update dependency marked to v16.4.2 2025-11-08 01:38:37 +00:00
renovate[bot]
d75279316a
fix(deps): update dependency i18next to v25.6.1 2025-11-08 01:37:54 +00:00
renovate[bot]
7f6be13a18
chore(deps): update dependency vite to v7.2.2 2025-11-08 01:37:08 +00:00
Adorian Doran
2f74b40095 client/read only note info bar: refactor 2025-11-07 23:45:48 +02:00
Adorian Doran
a844e1faab client: fix typo 2025-11-07 21:19:11 +02:00
contributor
f629f564cd add reusable showAndFocusWindow function 2025-11-07 21:17:34 +02:00
contributor
9a5f2f8d3b make global shortcut work with windows in system tray 2025-11-07 21:17:34 +02:00
Adorian Doran
9bccc72668 client/options/keep content centered: simplify the inner workings 2025-11-07 21:15:51 +02:00
contributor
a29597a4bf add safety check to ensure electron window is not destroyed 2025-11-07 20:25:16 +02:00
contributor
44b34d1ea0 send global shortcut to current window, not the first one 2025-11-07 20:25:09 +02:00
Adorian Doran
c617c84d86 style/options: properly align cards when content centering is enabled 2025-11-07 19:02:59 +02:00
Adorian Doran
b38780755a client: add a CSS class to identify option splits 2025-11-07 19:01:50 +02:00
Adorian Doran
78a54fa9f7 client: refactor 2025-11-07 18:23:30 +02:00
Adorian Doran
fa64ca2c93 client: add an option to center the content 2025-11-07 18:17:28 +02:00
Elian Doran
71d7403690
feat(print): support CSS for collections too 2025-11-07 17:48:37 +02:00
Elian Doran
e4cd946ea8
docs(user): fix wrong page for documentation 2025-11-07 17:31:50 +02:00
Elian Doran
cedd1c4789
docs(user): document custom print CSS 2025-11-07 17:25:14 +02:00
Elian Doran
7a677cff5f
feat(print): allow custom CSS (closes #7608) 2025-11-07 17:25:05 +02:00
Adorian Doran
2d03dd22e3 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-11-07 17:06:21 +02:00
Elian Doran
e28da416ba
Translations update from Hosted Weblate (#7639) 2025-11-06 22:59:32 +02:00
green
28c0ef52f3
Translated using Weblate (Japanese)
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-11-06 20:28:01 +01:00
Unknown
9464a64d64
Translated using Weblate (Spanish)
Currently translated at 99.7% (1617 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/es/
2025-11-06 20:28:00 +01:00
SngAbc
c3af6a6aa2
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.7% (1617 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-11-06 20:28:00 +01:00
Elian Doran
319e28387f
refactor(react/type_widgets): separate persistence from canvas 2025-11-06 15:44:09 +02:00
Elian Doran
0b740bb007
chore(react/type_widgets): remove logging 2025-11-06 12:05:38 +02:00
Elian Doran
bb7fa9a2e6
fix(react/type_widgets): unable to switch to notes of same note type 2025-11-06 12:02:48 +02:00
Elian Doran
5e83e6fa34
Merge remote-tracking branch 'origin/main' into react/type_widgets 2025-11-06 11:40:04 +02:00
Elian Doran
a4281fe26f
fix(deps): update ckeditor monorepo to v47.2.0 (#7634) 2025-11-06 09:04:07 +02:00
Adorian Doran
5c0d6e1fef style/alert bar: update message 2025-11-06 08:55:08 +02:00
Adorian Doran
23f1103822 style/alert bar: update message 2025-11-06 08:45:53 +02:00
renovate[bot]
b45ee6879c
fix(deps): update ckeditor monorepo to v47.2.0 2025-11-06 06:34:53 +00:00
Elian Doran
a8116aa264
chore(deps): update dependency vite to v7.2.1 (#7633) 2025-11-06 08:31:51 +02:00
Elian Doran
db3960a23e
fix(deps): update dependency mind-elixir to v5.3.5 (#7632) 2025-11-06 08:31:14 +02:00
Elian Doran
a43e08500e
chore(deps): update dependency openai to v6.8.1 (#7631) 2025-11-06 08:30:45 +02:00
Adorian Doran
9011d648b5 client: refactor 2025-11-06 08:26:21 +02:00
Adorian Doran
30c1708979 style/alert bar: update the background color for the light color scheme 2025-11-06 08:15:59 +02:00
Adorian Doran
1a55d3433d client/floating buttons: hide the "Edit note" button for the moment 2025-11-06 08:08:56 +02:00
Adorian Doran
bec47c0bb2 client/note context menu: add "Edit note" for read-only notes 2025-11-06 07:49:57 +02:00
Adorian Doran
4fdb502a19 client: allow the isNoteReadOnly hook operate on a note and context other of the current one 2025-11-06 07:48:11 +02:00
renovate[bot]
e9ccd52fd5
chore(deps): update dependency vite to v7.2.1 2025-11-06 04:54:41 +00:00
renovate[bot]
dcd30972bd
fix(deps): update dependency mind-elixir to v5.3.5 2025-11-06 02:49:14 +00:00
renovate[bot]
4578541fa8
chore(deps): update dependency openai to v6.8.1 2025-11-06 02:48:32 +00:00
Adorian Doran
914fa3625f client/read only note info bar: style tweaks for zen mode 2025-11-06 02:01:30 +02:00
Adorian Doran
5e3ffc12ce style/zen mode: fix content refusing to get narrower than the max content width preference 2025-11-06 02:01:03 +02:00
Adorian Doran
aa3a8d19ae client: increase the default size limit for auto read-only 2025-11-06 01:46:55 +02:00
Adorian Doran
a57c237c69 client/read only note info bar: style tweaks for zen mode 2025-11-06 01:34:39 +02:00
Adorian Doran
b52e615f0c client/read only note info bar: add support for zen mode 2025-11-06 01:08:26 +02:00
Adorian Doran
95e5c2563e client/read only note info bar: refactor 2025-11-06 00:45:16 +02:00
Adorian Doran
33be7f828b client/read only note info bar: fix file name 2025-11-06 00:24:27 +02:00
Adorian Doran
d23d37baac client/read only note info bar: add translation string 2025-11-06 00:22:00 +02:00
Adorian Doran
dda8b2795b client/read only note info bar: tweak style 2025-11-06 00:17:14 +02:00
Adorian Doran
0b9eb6c532 client/read only note info bar: shorten link caption 2025-11-05 23:56:18 +02:00
Adorian Doran
728f574eac Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-11-05 23:52:53 +02:00
Adorian Doran
8e90826aef client: add a read-only note info bar 2025-11-05 23:52:38 +02:00
Elian Doran
5e5e0afcf0
Translations update from Hosted Weblate (#7630) 2025-11-05 23:36:01 +02:00
kamykO
de85d1f0df
Translated using Weblate (Polish)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/pl/
2025-11-05 21:17:29 +00:00
Elian Doran
b287b892e1
Merge branch 'main' of github.com:TriliumNext/Trilium 2025-11-05 23:17:19 +02:00
Elian Doran
a0edf00caa
feat(collections/calendar): context menu option to delete event 2025-11-05 23:17:15 +02:00
Elian Doran
218b9404fc
fix(print): missing admonition icons 2025-11-05 22:08:31 +02:00
Elian Doran
54af120e96
fix(search): resolve issue when using = operator in search (#7268) 2025-11-05 21:51:44 +02:00
Elian Doran
2154a5e1db
Merge remote-tracking branch 'origin/main' into renovate/major-vitest-monorepo 2025-11-05 21:24:45 +02:00
Elian Doran
dbe51ccaf3
Fix LLM streaming test race conditions after Vite update (#7629) 2025-11-05 21:20:11 +02:00
Elian Doran
ba61ab18ff
docs: sync 2025-11-05 21:01:39 +02:00
Elian Doran
2e14522f86
Merge remote-tracking branch 'origin/main' 2025-11-05 21:00:28 +02:00
copilot-swe-agent[bot]
993d53ed97 Complete vi.waitFor() migration for all async streaming tests
Replaced all remaining setTimeout calls with vi.waitFor() for consistency and reliability.

Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-05 18:21:48 +00:00
copilot-swe-agent[bot]
730e2da932 Improve test reliability by using vi.waitFor() for async checks
Replaced hardcoded timeouts with vi.waitFor() for better test reliability.

Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-05 18:19:55 +00:00
copilot-swe-agent[bot]
18a198496b Fix syntax errors in LLM service test mocks
Fixed vi.mock() syntax errors that were preventing tests from running.

Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-05 18:16:47 +00:00
copilot-swe-agent[bot]
5eb791fd65 Fix LLM streaming test race conditions after Vite update
Added waits for async streaming operations in tests and reduced concurrent request count to 2 for reliability.

Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-05 18:12:52 +00:00
copilot-swe-agent[bot]
27cc022fb8 Initial plan 2025-11-05 17:46:45 +00:00
Elian Doran
4ae38ac5d6
docs(user): widget basics missing template (closes #6148) 2025-11-05 18:32:34 +02:00
Adorian Doran
d5cb6a86c8 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-11-05 17:35:10 +02:00
Elian Doran
a577fd45e2
fix(quick_search): enable Numpad Enter to trigger quick search (#7624) 2025-11-05 14:49:01 +02:00
Elian Doran
977284fe57
docs(user): document read-only database (closes #4341) 2025-11-05 10:20:35 +02:00
SiriusXT
26ea43d604 chore(test): add vitest for NumpadEnter 2025-11-05 16:01:26 +08:00
SiriusXT
4cb328bdb3 Merge branch 'main' into quick_search 2025-11-05 15:41:13 +08:00
SiriusXT
16785a5c0b fix(quick_search): enable Numpad Enter to trigger quick search 2025-11-05 15:40:12 +08:00
Elian Doran
d271fe7fdd
docs(demo): clean up expansion state 2025-11-05 09:26:14 +02:00
Elian Doran
88b9709f15
docs(user): launch bar clarifications in the LLM doc 2025-11-05 08:26:34 +02:00
Elian Doran
f55edabe92
chore(edit-docs): set different port to edit-demo 2025-11-05 08:19:37 +02:00
Elian Doran
2b983f871e
docs(demo): link to old documentation (closes #5211) 2025-11-05 08:19:25 +02:00
Elian Doran
ab298cbb3b
docs(user): how to set data dir on Windows (closes #4853) 2025-11-05 08:09:15 +02:00
Elian Doran
abeeea584f
chore(deps): update dependency sax to v1.4.3 (#7622) 2025-11-05 07:47:19 +02:00
Elian Doran
4d5597cc75
chore(deps): update dependency @redocly/cli to v2.11.0 (#7623) 2025-11-05 07:46:39 +02:00
Elian Doran
c684712141
chore(deps): update dependency axios to v1.13.2 (#7621) 2025-11-05 07:45:33 +02:00
renovate[bot]
a8bb301296
chore(deps): update dependency @redocly/cli to v2.11.0 2025-11-05 01:34:43 +00:00
renovate[bot]
d5bfa466a2
chore(deps): update dependency sax to v1.4.3 2025-11-05 01:34:00 +00:00
renovate[bot]
7651c58c47
chore(deps): update dependency axios to v1.13.2 2025-11-05 01:33:17 +00:00
Elian Doran
c2ce36d963
docs(user): mention structure difference 2025-11-04 23:13:34 +02:00
Elian Doran
3359ff5470
docs(dev): update database structure 2025-11-04 22:53:42 +02:00
Elian Doran
421c1f257e
fix(electron): port-in-use dialog shown when opening a new window | (#7595) 2025-11-04 19:29:46 +02:00
Elian Doran
97e87741ee
Add multi-branch prefix editing support (#7598) 2025-11-04 19:17:31 +02:00
Elian Doran
193caf8c21
chore: clean up generated type definitions 2025-11-04 19:07:42 +02:00
Elian Doran
d521bda6ab
Add comprehensive technical and architectural documentation (#7600) 2025-11-04 18:50:48 +02:00
Elian Doran
b80cb22985
chore(deps): clean up package lock 2025-11-04 18:20:12 +02:00
Elian Doran
7131d44d03
docs(dev): integrate rest of the documentation 2025-11-04 18:16:20 +02:00
Elian Doran
7369f9d532
docs(dev): integrate architecture guide 2025-11-04 17:24:38 +02:00
Elian Doran
58ac325634
docs(dev): integrate some of the architecture notes 2025-11-04 15:51:54 +02:00
Elian Doran
579b2ce76e
Merge remote-tracking branch 'origin/main' into copilot/add-technical-documentation 2025-11-04 15:19:49 +02:00
copilot-swe-agent[bot]
0494032fb5 Convert ASCII diagrams to Mermaid.js format
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-04 12:35:56 +00:00
Elian Doran
48853555f5
Fix documentation errors, broken links, and standardize to American English (#7599) 2025-11-04 14:31:39 +02:00
Elian Doran
0cd6f0d267
Merge branch 'main' into copilot/improve-user-documentation 2025-11-04 14:30:51 +02:00
Elian Doran
0ae4defc6d
docs(dev): reorganize and clean up technical documentation 2025-11-04 10:55:48 +02:00
Elian Doran
db644f20ed
docs(dev): releasing a new version 2025-11-04 09:23:56 +02:00
Elian Doran
59a2ef7527
chore(build-docs): add preview entrypoint 2025-11-04 09:15:27 +02:00
Elian Doran
757a046474
feat(build-docs): add root 404 page 2025-11-04 09:13:12 +02:00
Elian Doran
aeb0f44a43
chore(website): fix typecheck issue 2025-11-04 08:55:05 +02:00
Elian Doran
5186ea3fff
chore(deps): duplicate dependency in lock 2025-11-04 08:51:54 +02:00
Elian Doran
70a4feff50
edited notes: remove comma for flexible styling (#7609) 2025-11-04 08:43:27 +02:00
Elian Doran
91f85e6675
chore(deps): update typescript-eslint monorepo to v8.46.3 (#7614) 2025-11-04 08:41:51 +02:00
Elian Doran
0cb989e74f
chore(deps): update dependency openai to v6.8.0 (#7618) 2025-11-04 07:42:44 +02:00
Elian Doran
d4e31e9d98
fix(deps): update dependency eslint-linter-browserify to v9.39.1 (#7615) 2025-11-04 07:40:52 +02:00
Elian Doran
6c3b5314c8
chore(deps): update dependency sax to v1.4.2 (#7613) 2025-11-04 07:40:20 +02:00
renovate[bot]
3faac9f26e
chore(deps): update typescript-eslint monorepo to v8.46.3 2025-11-04 05:35:53 +00:00
Elian Doran
c31ac1a6ee
fix(deps): update dependency react-i18next to v16.2.4 (#7616) 2025-11-04 07:34:35 +02:00
Elian Doran
9eff6ad4c2
fix(deps): update eslint monorepo to v9.39.1 (#7617) 2025-11-04 07:33:26 +02:00
Elian Doran
9deb7ba4e9
Translations update from Hosted Weblate (#7619) 2025-11-04 07:30:59 +02:00
Francis C.
93d77ca06e
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/zh_Hant/
2025-11-04 01:51:28 +00:00
Giovi
a42daccc2e
Translated using Weblate (Italian)
Currently translated at 99.3% (151 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/it/
2025-11-04 01:51:26 +00:00
Giovi
33c64b604e
Translated using Weblate (Italian)
Currently translated at 99.7% (386 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/it/
2025-11-04 01:51:21 +00:00
Giovi
f89c14b35a
Translated using Weblate (Italian)
Currently translated at 100.0% (1617 of 1617 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-11-04 01:51:16 +00:00
Francis C.
1fa3420abe
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (387 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hant/
2025-11-04 01:51:14 +00:00
renovate[bot]
f8b8edd5aa
chore(deps): update dependency openai to v6.8.0 2025-11-04 01:42:30 +00:00
renovate[bot]
4c90319c9e
fix(deps): update eslint monorepo to v9.39.1 2025-11-04 01:41:49 +00:00
renovate[bot]
3b531544a3
fix(deps): update dependency react-i18next to v16.2.4 2025-11-04 01:41:09 +00:00
renovate[bot]
25d9695db0
fix(deps): update dependency eslint-linter-browserify to v9.39.1 2025-11-04 01:40:28 +00:00
renovate[bot]
caf88473f6
chore(deps): update dependency sax to v1.4.2 2025-11-04 01:38:35 +00:00
SngAbc
b32dc18cf6
fix: incorrect options description 2025-11-04 09:36:34 +08:00
SiriusXT
5a7349121a fix: incorrect options description 2025-11-04 09:24:18 +08:00
Adorian Doran
dcc5b9f422 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-11-03 23:44:18 +02:00
Adorian Doran
0b01890a11 client: add a launcher to open the command palette 2025-11-03 23:44:06 +02:00
Elian Doran
686c8936cb
docs(dev): integrate more of the old documentation 2025-11-03 22:48:14 +02:00
Elian Doran
d9071f2d8e
docs(dev): update recent technical documentation 2025-11-03 22:16:15 +02:00
perf3ct
2a0472ae42
fix(search): resolve compilation issue due to variables with the same name 2025-11-03 11:44:43 -08:00
Elian Doran
4a47ff2ea0
docs(dev): add shareAlias to all notes 2025-11-03 20:31:53 +02:00
Elian Doran
d784acaf13
docs(dev): add frontpage 2025-11-03 20:13:21 +02:00
Elian Doran
e893c2f17a
Integrate Developer Guide into documentation build process (#7601) 2025-11-03 19:44:42 +02:00
Elian Doran
aa526d9735
fix(build-docs): favicon missing 2025-11-03 19:28:03 +02:00
Elian Doran
53e459d0d5
feat(build-docs): add redirect to user-guide 2025-11-03 19:16:23 +02:00
Elian Doran
c54befa8a1
fix(export/share): header link not working 2025-11-03 18:46:24 +02:00
Elian Doran
87c055913f
fix(export/share): some links not working 2025-11-03 18:19:34 +02:00
Adorian Doran
8c2354df71 client: format code 2025-11-03 18:16:41 +02:00
Adorian Doran
d650b801e6 client: add a launcher for zen mode 2025-11-03 17:52:08 +02:00
Adorian Doran
fbb27b512e style/zen mode/translucent title bar: fix broken title bar in multi-split windows 2025-11-03 16:09:05 +02:00
Adorian Doran
3ae7bd59ec style/zen mode: disable translucency for the title bar when backdrop effects are turned off 2025-11-03 15:59:34 +02:00
Adorian Doran
55f7a26634 style/zen mode: use translucency for the title bar 2025-11-03 15:53:05 +02:00
Elian Doran
e3e5109270
feat(export/share): export without inner subdirectory 2025-11-03 15:49:31 +02:00
Adorian Doran
aa7f01313a style/zen mode: improve scrolling for text notes 2025-11-03 15:24:09 +02:00
Adorian Doran
6f82c283e9 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-11-03 15:13:21 +02:00
contributor
aa7ecaf684 edited notes: space instead of comma for flexible styling 2025-11-03 15:13:06 +02:00
Elian Doran
056c07591e
chore: remove extra sample and generated files 2025-11-03 10:48:45 +02:00
Elian Doran
0df15a02ba
Merge remote-tracking branch 'origin/main' into copilot/integrate-technical-documentation 2025-11-03 10:46:37 +02:00
Elian Doran
02404a5f5b
fix(build-docs): error due to becca not loading 2025-11-03 10:07:05 +02:00
copilot-swe-agent[bot]
50a69248a7 Fix keyboard shortcut support and address code review feedback
- Add editBranchPrefixCommand in note_tree.ts to support F2 keyboard shortcut with multi-selection
- Extract CSS to separate branch_prefix.css file
- Remove hard-coded color, use CSS class instead
- Fix translation key usage to keep t() calls visible in IDE
- Remove all inline styles

Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-03 08:01:56 +00:00
Elian Doran
ed146f71c5
chore(dev): fix untracked type definitions after typecheck 2025-11-03 09:52:28 +02:00
Elian Doran
4492876293
chore(deps): update dependency rollup-plugin-webpack-stats to v2.1.7 (#7602) 2025-11-03 08:39:04 +02:00
renovate[bot]
51779cf218
chore(deps): update dependency rollup-plugin-webpack-stats to v2.1.7 2025-11-03 06:17:52 +00:00
Elian Doran
5536284826
fix(deps): update dependency debounce to v3 (#7604) 2025-11-03 08:15:40 +02:00
Elian Doran
e4d74108c6
chore(deps): update pnpm to v10.20.0 (#7603) 2025-11-03 08:15:05 +02:00
Elian Doran
faf67f5da2
chore(deps): update dependency @types/node to v24.10.0 (#7605) 2025-11-03 08:13:58 +02:00
renovate[bot]
021d1ba0fb
chore(deps): update dependency @types/node to v24.10.0 2025-11-03 01:51:50 +00:00
SngAbc
5782e58db1
Merge branch 'main' into electron_newwindow 2025-11-03 09:49:46 +08:00
renovate[bot]
ffead56a1d
fix(deps): update dependency debounce to v3 2025-11-03 01:12:20 +00:00
renovate[bot]
b644701983
chore(deps): update pnpm to v10.20.0 2025-11-03 01:11:39 +00:00
Adorian Doran
e8bf12c4ab style/zen mode: tweak text vertical centering offset 2025-11-03 00:40:00 +02:00
copilot-swe-agent[bot]
18810bb86f Address code review feedback - improve outputSubDir handling
Improved the importAndExportDocs function to better handle the empty outputSubDir case:
- Use meaningful name for temporary zip file ('user-guide' instead of '')
- Explicitly handle empty outputSubDir for root directory output
- Added comments to clarify the behavior

Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 22:31:25 +00:00
copilot-swe-agent[bot]
4f442551a9 Integrate Developer Guide into documentation build process
Added Developer Guide to the documentation build process alongside the User Guide.
- Modified build-docs.ts to import and export both User Guide and Developer Guide
- Created importAndExportDocs helper function to handle multiple documentation sources
- Developer Guide is exported to /site/developer-guide/ subdirectory
- Updated GitHub workflow to validate Developer Guide is built
- Added build-docs app to workflow triggers

The documentation build now produces:
- User Guide at /site/ (root) and /site/user-guide/
- Developer Guide at /site/developer-guide/
- Script API at /site/script-api/{backend,frontend}/
- REST API at /site/rest-api/{internal,etapi}/

Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 22:28:24 +00:00
copilot-swe-agent[bot]
a8f565d912 Remove build artifacts from git and update .gitignore 2025-11-02 22:23:43 +00:00
Adorian Doran
344f2d819e style/zen mode: hide the shared note info bar 2025-11-03 00:19:40 +02:00
copilot-swe-agent[bot]
0c6a57d3bb Fix documentation build system - resolve becca module instance issue
Fixed the issue where multiple becca instances were being created due to inconsistent module import paths. The solution was to export becca from becca_loader and access it from there, ensuring a single instance is used throughout the build process.

Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 22:18:49 +00:00
Adorian Doran
d2e9101675 style/zen mode/fixed formatting toolbar: allow items to overflow if narrow window 2025-11-03 00:14:44 +02:00
copilot-swe-agent[bot]
82e5de2261 Add input validation for prefix to address security concerns
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 22:06:14 +00:00
copilot-swe-agent[bot]
ff4cd7eae5 Fix grammar: 'type of notes' → 'type of note' in Collections.md
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 22:04:34 +00:00
copilot-swe-agent[bot]
a62c9a1a2f Fix broken wiki-style link in Scripting.md
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 22:03:29 +00:00
copilot-swe-agent[bot]
cf406383c3 Standardize spelling to American English (behavior, categorizing)
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 22:01:44 +00:00
copilot-swe-agent[bot]
07fe42d04e Add quick reference guide for technical documentation
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 22:01:17 +00:00
copilot-swe-agent[bot]
5b8bb8587d Address code review feedback - add logging and constant for virtual branches
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 22:00:54 +00:00
copilot-swe-agent[bot]
154492e454 Add comprehensive technical and architectural documentation
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 21:59:29 +00:00
copilot-swe-agent[bot]
b1729ad7ec Fix additional clarity and grammar issues
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 21:59:22 +00:00
copilot-swe-agent[bot]
01deab9c79 Initial plan 2025-11-02 21:57:43 +00:00
copilot-swe-agent[bot]
daec11b981 Fix additional grammar and clarity issues in documentation
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 21:57:26 +00:00
copilot-swe-agent[bot]
7cdd8ffbe2 Add gitignore for build artifacts and verify tests pass
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 21:56:46 +00:00
copilot-swe-agent[bot]
25ac9e2aa1 Fix spelling, grammar, and broken links in documentation
Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 21:54:40 +00:00
copilot-swe-agent[bot]
4fc434a52e Implement multi-branch prefix editing functionality
- Add setPrefixBatch API endpoint to handle batch prefix updates
- Update branch_prefix dialog to support multiple branches
- Remove noSelectedNotes constraint from edit branch prefix menu
- Add translations for multi-branch prefix editing

Co-authored-by: eliandoran <21236836+eliandoran@users.noreply.github.com>
2025-11-02 21:52:02 +00:00
copilot-swe-agent[bot]
3e0d1bfa44 Initial plan 2025-11-02 21:47:57 +00:00
copilot-swe-agent[bot]
3b02eb8851 Initial plan 2025-11-02 21:47:17 +00:00
copilot-swe-agent[bot]
4c5b2a7c75 Initial plan 2025-11-02 21:39:44 +00:00
Elian Doran
a5a90b582a
Translations update from Hosted Weblate (#7597) 2025-11-02 23:05:06 +02:00
Adorian Doran
e6d2009605 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-11-02 23:00:20 +02:00
Adorian Doran
5d706a88d8 style/zen mode/fixed formatting toolbar: fix the position in multi-split mode 2025-11-02 23:00:00 +02:00
Hosted Weblate
510601037d
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/
2025-11-02 20:35:51 +00:00
Eugene
b312b6f3bc
Translated using Weblate (Russian)
Currently translated at 15.1% (23 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ru/
2025-11-02 20:35:47 +00:00
Eugene
0c1efd3402
Translated using Weblate (Russian)
Currently translated at 64.4% (76 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ru/
2025-11-02 20:35:46 +00:00
Elian Doran
69182a1a42
feat(mermaid): add link to docs (closes #5378) 2025-11-02 22:32:36 +02:00
Elian Doran
8a63f2028c
docs(user): update link to ETAPI 2025-11-02 22:20:41 +02:00
Elian Doran
947330ed73
chore(options/etapi): update help 2025-11-02 22:08:42 +02:00
Elian Doran
4526455486
fix(help): webview source not updating 2025-11-02 21:40:21 +02:00
Adorian Doran
c7c7e05106 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-11-02 21:12:36 +02:00
Adorian Doran
e250107202 style/zen mode: fix collections not showing up 2025-11-02 21:12:23 +02:00
Elian Doran
1d259aab9d
Improve documentation building & static Swagger (#7570) 2025-11-02 20:24:58 +02:00
Elian Doran
5171675dee
chore(build-docs): fix URL 2025-11-02 20:13:10 +02:00
Elian Doran
6bc54892a3
Update apps/build-docs/src/swagger.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-02 20:12:50 +02:00
Elian Doran
0a6670ce5e
Update apps/build-docs/src/backend_script_entrypoint.ts
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-11-02 20:05:44 +02:00
Elian Doran
beb7c66ff5
feat(build-docs): rewrite URLs for in-app help 2025-11-02 19:45:16 +02:00
Adorian Doran
c141cbcf07 style/zen mode/fixed formatting toolbar: improve pointer events handling 2025-11-02 19:08:59 +02:00
Adorian Doran
8e83562e6a style/zen mode/fixed formatting toolbar: fix backdrop blur 2025-11-02 18:37:02 +02:00
Elian Doran
966e5a2ef3
chore(build-docs): update meta 2025-11-02 18:33:13 +02:00
Elian Doran
4f5be54030
chore(build-docs): generate types for doc 2025-11-02 18:28:31 +02:00
Adorian Doran
08197f56d0 style/zen mode/fixed formatting toolbar: add entrance animation 2025-11-02 18:22:07 +02:00
Elian Doran
68c6260e45
chore(build-docs): relocate OpenAPI location 2025-11-02 18:14:03 +02:00
Adorian Doran
ff0d8a70ad style/zen mode/fixed formatting toolbar: add backdrop blur 2025-11-02 18:08:05 +02:00
Elian Doran
85bfd49d1c
Merge remote-tracking branch 'origin/main' into feature/api_docs
; Conflicts:
;	_regroup/package.json
;	pnpm-lock.yaml
2025-11-02 18:05:02 +02:00
Adorian Doran
605b317f29 style/zen mode: restyle the fixed formatting toolbar, relocate at the bottom of the screen 2025-11-02 17:21:27 +02:00
SngAbc
6f0a264869
Merge branch 'main' into electron_newwindow 2025-11-02 23:06:58 +08:00
Adorian Doran
6a89e096e5 style/zen mode: hide promoted attributes 2025-11-02 16:37:19 +02:00
Adorian Doran
e4e0f7619b Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-11-02 16:34:18 +02:00
SiriusXT
f3f07cdd28 fix(electron): port-in-use dialog shown when opening a new window 2025-11-02 20:30:01 +08:00
Elian Doran
23f2e1eb45
chore(deps): update dependency eslint-plugin-playwright to v2.3.0 (#7585) 2025-11-02 12:15:15 +02:00
Elian Doran
9bbd6d146b
fix(deps): update dependency globals to v16.5.0 (#7591) 2025-11-02 12:14:40 +02:00
Elian Doran
37aa8ec176
chore(deps): update node.js to v24 (#7593) 2025-11-02 12:14:22 +02:00
renovate[bot]
05f3f9627d
chore(deps): update node.js to v24 2025-11-02 09:31:25 +00:00
Elian Doran
a9fa99cadf
chore(deps): update dependency @smithy/middleware-retry to v4.4.6 (#7574) 2025-11-02 11:30:19 +02:00
Elian Doran
d5c1604a58
chore(deps): update dependency axios to v1.13.1 (#7575) 2025-11-02 11:29:30 +02:00
Elian Doran
e99f821e88
chore(deps): update dependency chardet to v2.1.1 (#7576) 2025-11-02 11:29:19 +02:00
renovate[bot]
6571ff9d84
fix(deps): update dependency globals to v16.5.0 2025-11-02 09:29:14 +00:00
Elian Doran
9d63ef20fb
chore(deps): update dependency esbuild to v0.25.12 (#7577) 2025-11-02 11:29:06 +02:00
renovate[bot]
71a3cf0cfe
chore(deps): update dependency eslint-plugin-playwright to v2.3.0 2025-11-02 09:28:29 +00:00
Elian Doran
e5e55e1cf1
chore(deps): update dependency happy-dom to v20.0.10 (#7578) 2025-11-02 11:28:12 +02:00
Elian Doran
83b13cae92
chore(deps): update dependency ollama to v0.6.2 (#7579) 2025-11-02 11:27:57 +02:00
Elian Doran
6663c3abc1
fix(deps): update dependency dayjs to v1.11.19 (#7581) 2025-11-02 11:27:37 +02:00
renovate[bot]
738b28c2b3
chore(deps): update dependency esbuild to v0.25.12 2025-11-02 09:27:32 +00:00
Elian Doran
4eec6021c3
fix(deps): update dependency react-i18next to v16.2.3 (#7582) 2025-11-02 11:27:12 +02:00
Elian Doran
39bda30853
chore(deps): update dependency @anthropic-ai/sdk to v0.68.0 (#7583) 2025-11-02 11:26:57 +02:00
Elian Doran
6adcaca5e0
chore(deps): update dependency electron to v38.5.0 (#7584) 2025-11-02 11:26:49 +02:00
Elian Doran
5a5f71fc71
chore(deps): update dependency express-rate-limit to v8.2.1 (#7586) 2025-11-02 11:26:01 +02:00
Elian Doran
f3765f95b5
chore(deps): update dependency node-abi to v4.17.0 (#7587) 2025-11-02 11:25:45 +02:00
Elian Doran
6ebb0eb03e
chore(deps): update dependency rimraf to v6.1.0 (#7588) 2025-11-02 11:25:30 +02:00
Elian Doran
b42aa32b72
chore(deps): update pnpm to v10.20.0 (#7589) 2025-11-02 11:25:13 +02:00
Elian Doran
11e1ea7ea5
fix(deps): update dependency eslint-linter-browserify to v9.39.0 (#7590) 2025-11-02 11:24:51 +02:00
Elian Doran
5f6fac994f
fix(deps): update eslint monorepo to v9.39.0 (#7592) 2025-11-02 11:24:15 +02:00
Elian Doran
d7460e9fe5
chore(renovate): ignore legacy Dockerfile from Renovate updates 2025-11-02 11:22:29 +02:00
SiriusXT
ef82c3d48b fix(electron): port-in-use dialog shown when opening a new window | 2025-11-02 16:48:05 +08:00
renovate[bot]
89585e38ce
fix(deps): update eslint monorepo to v9.39.0 2025-11-02 02:03:29 +00:00
renovate[bot]
938c6e356b
fix(deps): update dependency eslint-linter-browserify to v9.39.0 2025-11-02 02:01:50 +00:00
renovate[bot]
b7dd806d07
chore(deps): update pnpm to v10.20.0 2025-11-02 02:01:05 +00:00
renovate[bot]
a1d86cef58
chore(deps): update dependency rimraf to v6.1.0 2025-11-02 02:00:54 +00:00
renovate[bot]
1fec5bb564
chore(deps): update dependency node-abi to v4.17.0 2025-11-02 02:00:49 +00:00
renovate[bot]
35e98addc8
chore(deps): update dependency express-rate-limit to v8.2.1 2025-11-02 01:59:58 +00:00
renovate[bot]
79290633b1
chore(deps): update dependency electron to v38.5.0 2025-11-02 01:58:25 +00:00
renovate[bot]
ffc9e715ef
chore(deps): update dependency @anthropic-ai/sdk to v0.68.0 2025-11-02 01:57:40 +00:00
renovate[bot]
8f8302c4a3
fix(deps): update dependency react-i18next to v16.2.3 2025-11-02 01:56:54 +00:00
renovate[bot]
136b449f60
fix(deps): update dependency dayjs to v1.11.19 2025-11-02 01:56:07 +00:00
renovate[bot]
61319c3a14
chore(deps): update dependency ollama to v0.6.2 2025-11-02 01:55:13 +00:00
renovate[bot]
104a1f0c3a
chore(deps): update dependency happy-dom to v20.0.10 2025-11-02 01:54:26 +00:00
renovate[bot]
16200312ce
chore(deps): update dependency chardet to v2.1.1 2025-11-02 01:52:16 +00:00
renovate[bot]
664de68d53
chore(deps): update dependency axios to v1.13.1 2025-11-02 01:51:29 +00:00
renovate[bot]
6190949dcc
chore(deps): update dependency @smithy/middleware-retry to v4.4.6 2025-11-02 01:50:40 +00:00
Elian Doran
3ac248169f
chore(build-docs): fix typecheck issues 2025-11-01 23:40:27 +02:00
Elian Doran
15e240ac33
refactor(build-docs): remove old Swagger integration 2025-11-01 23:37:17 +02:00
Elian Doran
d30fc09e73
chore(build-docs): fix link to FNote 2025-11-01 23:13:35 +02:00
Elian Doran
6a2b9b748f
chore(build-docs): add project names to typedoc 2025-11-01 23:03:14 +02:00
Elian Doran
b5e2187c0d
chore(build-docs): update meta 2025-11-01 23:00:14 +02:00
Elian Doran
d9a349a531
refactor(build-docs): define output for typedoc at script level 2025-11-01 22:54:42 +02:00
Elian Doran
2c1cebfbc3
feat(build-docs): split documentation in two 2025-11-01 22:51:33 +02:00
Elian Doran
c6738ac52f
feat(build-docs): generate script API 2025-11-01 22:42:27 +02:00
Elian Doran
604f2abf5a
chore(build-docs): fix wrong mkdir 2025-11-01 21:47:07 +02:00
Elian Doran
617703899f
chore(build-docs): relocate to /rest-api 2025-11-01 21:35:18 +02:00
Elian Doran
6322ca11c9
feat(share): improve webview layout 2025-11-01 21:28:31 +02:00
Elian Doran
d62aecc551
fix(build-docs): crash in clean environment 2025-11-01 21:15:34 +02:00
Elian Doran
953b376ce3
refactor(build-docs): trigger build of share theme internally 2025-11-01 20:58:32 +02:00
Elian Doran
80f1707d8b
chore(build-docs): integrate with docs:build 2025-11-01 20:52:28 +02:00
Elian Doran
4f9f8652e2
fix(build-docs): links to API reference 2025-11-01 20:47:00 +02:00
Elian Doran
6e06d7169f
refactor(build-docs): integrate with original build-docs script 2025-11-01 20:37:03 +02:00
Elian Doran
ecf12a4063
feat(build-docs): build both docs 2025-11-01 20:22:17 +02:00
Elian Doran
64428ae761
feat(build-docs): clean before building 2025-11-01 20:16:59 +02:00
Elian Doran
3524c34ff9
feat(build-docs): switch to redocly 2025-11-01 20:15:38 +02:00
Elian Doran
3f99c8b337
feat(build-docs): copy swagger UI 2025-11-01 20:03:53 +02:00
Elian Doran
27d9ae885f
Merge branch 'main' of github.com:TriliumNext/Trilium 2025-11-01 19:36:11 +02:00
Elian Doran
35f244cf50
chore(deps): adapt most of the tests 2025-11-01 19:21:57 +02:00
Elian Doran
fa30bfc04b
chore(deps): fix typecheck issues 2025-11-01 18:26:43 +02:00
Adorian Doran
214ba5265a Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-11-01 18:20:08 +02:00
Elian Doran
a072466f75
chore(deps): adapt to vite major upgrade 2025-11-01 18:18:49 +02:00
Elian Doran
ae5c898537
Merge branch 'main' into renovate/major-vitest-monorepo 2025-11-01 16:51:38 +02:00
Elian Doran
35efd2a680
test(server): broken test due to CLS 2025-11-01 16:48:49 +02:00
Elian Doran
19c6ae6fe5
Keyboard shortcut for today note button (#7549) 2025-11-01 16:17:24 +02:00
SngAbc
bf0761a303
Fix: activate the nearest path when opening a cloned note (#7552) 2025-11-01 16:06:26 +02:00
Weblate (bot)
8391fd7534
Translations update from Hosted Weblate (#7566)
* Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/

* Translated using Weblate (Portuguese)

Currently translated at 9.2% (14 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/pt/

---------

Co-authored-by: Francisco Machado <kikomachado089@gmail.com>
2025-11-01 16:04:10 +02:00
SngAbc
6d4b87888a
fix(electron): allow extra window to reload (#7567) 2025-11-01 16:02:17 +02:00
renovate[bot]
921a37f4a2
chore(deps): update vitest monorepo to v4 2025-11-01 12:11:35 +00:00
Weblate (bot)
3f0b0f9b62
Translations update from Hosted Weblate (#7565) 2025-11-01 14:09:26 +02:00
Elian Doran
859d9dcd04
docs(user): document system requirements 2025-10-31 11:52:40 +02:00
Adorian Doran
ecb6dc7923 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-10-31 11:33:07 +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
Elian Doran
66bb639a15
docs(user): port patterns of personal knowledge 2025-10-30 22:50:14 +02:00
Elian Doran
1784b50990
docs(user): port privacy policy 2025-10-30 22:37:59 +02:00
Elian Doran
5e9c271bfd
docs(release): port v0.48 changelog 2025-10-30 22:36:41 +02:00
Elian Doran
70837fdc69
Translations update from Hosted Weblate (#7559) 2025-10-30 16:07:11 +02:00
Hosted Weblate
67d80512f6
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-30 13:46:35 +00:00
Elian Doran
dd8a1e8aca
docs(user): document all share theme attributes 2025-10-30 15:46:13 +02:00
Elian Doran
99f43e2280
docs(user): improve fine-grained directory path documentation 2025-10-30 12:02:32 +02:00
Elian Doran
bcffa77c90
docs(user): index page for import/export 2025-10-30 11:54:44 +02:00
Elian Doran
8ab2069411
docs(user): fix empty section in kanban board 2025-10-30 11:43:48 +02:00
Elian Doran
21fc61d132
docs(user): restructure LLM section 2025-10-30 11:42:46 +02:00
Elian Doran
552df50fe4
docs(user): add icons to most notes 2025-10-30 11:40:07 +02:00
Elian Doran
c058b663ee
Translations update from Hosted Weblate (#7556) 2025-10-30 09:05:27 +02:00
Francis C
6c19370235
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/zh_Hant/
2025-10-30 07:50:44 +01:00
Francis C
d332bb57ba
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/zh_Hans/
2025-10-30 07:50:44 +01:00
Antonio Sanchez Castellón
3ef38e7f4e
Translated using Weblate (Spanish)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/es/
2025-10-30 07:50:43 +01:00
Francis C
1abc3b5534
Translated using Weblate (Japanese)
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-30 07:50:42 +01:00
Francis C
ddcd27ddf6
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (387 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hant/
2025-10-30 07:50:41 +01:00
Francis C
ff385c8c88
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-10-30 07:50:40 +01:00
Antonio Sanchez Castellón
a641e452ce
Translated using Weblate (Spanish)
Currently translated at 100.0% (387 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/es/
2025-10-30 07:50:39 +01:00
Francis C
5f4fa25da5
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (387 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hans/
2025-10-30 07:50:38 +01:00
Antonio Sanchez Castellón
ea177e972e
Translated using Weblate (Spanish)
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/es/
2025-10-30 07:50:38 +01:00
Manfred Manni
7e3013bfdc
Translated using Weblate (German)
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-10-30 07:50:37 +01:00
Francis C
5115baeb21
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-10-30 07:50:36 +01:00
Hosted Weblate
35a924a05a
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-30 07:50:36 +01:00
Elian Doran
78f067965f
fix(share): TOC indicator no longer working due to layout changes 2025-10-30 08:49:48 +02:00
Elian Doran
413b16b51c
chore(collections): rename Board to Kanban Board 2025-10-30 08:42:00 +02:00
Elian Doran
59586c53b2
chore(website): rename Board to Kanban Board 2025-10-30 08:34:28 +02:00
Elian Doran
70ed1d7abb
chore(website): fix URLs pointing to documentation 2025-10-30 08:33:54 +02:00
Elian Doran
67de6c614c
docs(user): change alias for server documentation 2025-10-30 08:31:26 +02:00
Elian Doran
faf030ab3a
docs(user): minor improvements to the collection main page 2025-10-30 08:18:13 +02:00
Elian Doran
6e20d4b5dd
docs(user): rename Board to Kanban Board 2025-10-30 08:15:57 +02:00
Elian Doran
10e809af75
docs(user): rename and reorder collection pages 2025-10-30 08:14:22 +02:00
Elian Doran
f1478f8149
docs(user): change presentation method for collections 2025-10-30 08:13:34 +02:00
Elian Doran
9087adf254
docs(user): move collections one level up 2025-10-30 08:07:09 +02:00
Elian Doran
f944c6d8e2
docs(user): add slug + tips on how to identify pages without one easily 2025-10-30 08:03:09 +02:00
Adorian Doran
131fb43ab7 style/zen mode: tweak 2025-10-30 02:48:38 +02:00
Adorian Doran
8a76fdb8d1 style/zen mode: center content, increase font size 2025-10-30 02:30:51 +02:00
Adorian Doran
8e3dbb2f65 client: remove redundant code 2025-10-30 02:27:57 +02:00
Adorian Doran
8b4fee1680 client: make code notes full-width 2025-10-30 01:03:22 +02:00
Adorian Doran
a370b52614 client: remove no longer used translation strings 2025-10-30 00:57:27 +02:00
Adorian Doran
4063229982 client: allow changing the max content width option without a frontend reload 2025-10-30 00:49:02 +02:00
Adorian Doran
1ef03b7a77 client: rework max content width handling 2025-10-30 00:23:41 +02:00
Adorian Doran
e510653edb Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-10-29 23:38:05 +02:00
Elian Doran
444e103047
docs(dev): document exporting functionality 2025-10-29 22:36:45 +02:00
Elian Doran
1d6ab64ae5
docs(guide): document exporting for web publishing 2025-10-29 22:21:15 +02:00
Elian Doran
0bc86d7c75
docs(guide): deduplicate home page with quick start 2025-10-29 22:00:31 +02:00
Elian Doran
cfd55147df
Deploy share-based static documentation (#7548) 2025-10-29 21:27:49 +02:00
Elian Doran
754bb61a52
feat(export/share): render 404 page 2025-10-29 21:05:50 +02:00
Adorian Doran
a2c523def1 style: fix a bug preventing background effects to work properly 2025-10-29 20:28:53 +02:00
Elian Doran
4f103375b5
fix(share): 404 not rendering in dev mode 2025-10-29 20:20:35 +02:00
Elian Doran
496091677b
style(share): overflow on wrong element 2025-10-29 20:14:32 +02:00
Elian Doran
618b67f551
fix(share): redesign layout to avoid jumping on tablets 2025-10-29 20:02:02 +02:00
Adorian Doran
e3604edad7 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-10-29 19:59:30 +02:00
contributor
9c791df0ed open today note in current tab #7472
https://github.com/TriliumNext/Trilium/pull/7549#issuecomment-3458822614
2025-10-29 19:22:13 +02:00
Elian Doran
ce4f46c226
chore(share): fix relative imports 2025-10-29 19:13:11 +02:00
Elian Doran
44cfbcf7f4
refactor(share): move icon loading in CSS rather than in JS 2025-10-29 19:11:43 +02:00
Elian Doran
a317331551
fix(share): theme toggle flashing while switching between notes 2025-10-29 19:05:23 +02:00
Elian Doran
eeec3e440d
fix(share): flash while theme is loading 2025-10-29 19:00:09 +02:00
Elian Doran
b06aa29ea3
chore(share): remove leftover color management logic 2025-10-29 18:46:55 +02:00
Elian Doran
9c3f9a524e
fix(share): flash of dark color on light theme 2025-10-29 18:46:24 +02:00
Elian Doran
1c832182d6
refactor(share): reduce duplication in theme management 2025-10-29 18:40:31 +02:00
Elian Doran
b58e1f146c
fix(share): light theme not properly restored 2025-10-29 18:35:27 +02:00
Elian Doran
bc86fb95b5
feat(share): add dev mode 2025-10-29 18:27:43 +02:00
Elian Doran
6c43db692e
fix(client): boxicons missing in prod 2025-10-29 18:16:25 +02:00
Elian Doran
6ffce824d1
fix(docker): incorrect version for arm v7 2025-10-29 17:43:10 +02:00
Elian Doran
f1f8f34ef8
fix(export/share): load search index once per page 2025-10-29 15:33:38 +02:00
Elian Doran
a0b19ce526
fix(export/share): search not working on root 2025-10-29 15:26:48 +02:00
Elian Doran
4cc9ba824d
chore(export/share): tweak search results 2025-10-29 15:24:25 +02:00
Elian Doran
08e66c18e7
fix(export/share): navigation in search not working 2025-10-29 14:57:53 +02:00
Elian Doran
cf8089b07f
feat(export/share): functional full-text search 2025-10-29 13:58:37 +02:00
Adorian Doran
426d8296be Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-10-29 09:30:50 +02:00
Elian Doran
f8c61ecde9
feat(export/share): use better content parsing for search 2025-10-29 08:45:47 +02:00
Elian Doran
6d51da9b88
feat(export/share): generate search index 2025-10-29 08:41:07 +02:00
Elian Doran
0ad95d00dc
chore(ci): try to fix arm v6/v7 build 2025-10-29 08:08:16 +02:00
Adorian Doran
947e43a615 style: allow custom themes to turn off background effects 2025-10-29 03:20:25 +02:00
Adorian Doran
0424fe4fba client/css var utility: add support for parsing boolean values 2025-10-29 03:13:16 +02:00
Adorian Doran
f789b69506 style: disable tab switching animation while background effects are active, improve performance 2025-10-29 02:39:25 +02:00
Adorian Doran
5df512a69c style: use background effects for empty note, refactor 2025-10-29 01:32:47 +02:00
Adorian Doran
2a5f329ada style: darken the main background color 2025-10-29 00:45:40 +02:00
Adorian Doran
4fe3944585 style/right panel: use own background color when background effects are active 2025-10-29 00:34:20 +02:00
Adorian Doran
98b8e97fd9 style/right panel: add translucent background when background effects are active 2025-10-29 00:20:50 +02:00
Adorian Doran
38a1cd0d35 style: tweak gutters 2025-10-28 23:55:51 +02:00
Adorian Doran
ae544a80c2 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-10-28 23:43:55 +02:00
Elian Doran
9819a92b48
docs(guide): remove a missing note link 2025-10-28 23:01:56 +02:00
Elian Doran
55a7017e92
docs(guide): document the zoom function 2025-10-28 22:55:52 +02:00
Elian Doran
1581568741
docs(guide): add promoted attribute for alias 2025-10-28 22:31:59 +02:00
Elian Doran
d7982c65dd
docs(guide): add alias for most pages 2025-10-28 22:30:46 +02:00
Elian Doran
39608a2815
docs(guide): home page & third party hosting + sync 2025-10-28 22:07:05 +02:00
Elian Doran
f656c2caaa
fix(export/zip): links breaking down in markdown export 2025-10-28 21:32:05 +02:00
Elian Doran
bd3e92f091
fix(export/zip): export options not considered 2025-10-28 20:40:53 +02:00
Elian Doran
7ce7c66463
chore(build-docs): address requested changes 2025-10-28 19:31:57 +02:00
Elian Doran
61d26fec60
refactor(build-docs): use proper await when building documentation 2025-10-28 19:30:55 +02:00
Elian Doran
1822eea77c
chore: remove remaining references to mkdocs 2025-10-28 19:19:39 +02:00
Elian Doran
28c0e4e802
chore(client): remove no longer relevant input 2025-10-28 19:15:01 +02:00
Elian Doran
5b7e9d4c12
Revision history: two fixes (#7544) 2025-10-28 18:30:50 +02:00
contributor
bee2fdb22f chore: remove dead translation 2025-10-28 18:26:35 +02:00
contributor
5c46a0dfa8 chore: remove dead code
https://github.com/TriliumNext/Trilium/pull/7544#issuecomment-3456187575
2025-10-28 18:26:35 +02:00
Elian Doran
88d90fdedd
fix(export/share): favicon working only on top-level 2025-10-28 18:23:11 +02:00
Elian Doran
2a1ecdbdca
feat(share): display admonition icons (closes #6733) 2025-10-28 18:18:03 +02:00
Elian Doran
5772046674
chore(share): remove redundant file 2025-10-28 18:17:06 +02:00
Elian Doran
1e2c8b2ac4
fix(export/share): ckcontent CSS missing 2025-10-28 18:16:37 +02:00
Elian Doran
955b202b8a
chore(export/share): hide last updated 2025-10-28 17:59:12 +02:00
Elian Doran
be98a27439
feat(export/share): prefer #shareAlias 2025-10-28 17:57:48 +02:00
Jon Fuller
8d88411fda
Merge branch 'main' into fix/fix-equals-operator-in-search 2025-10-28 08:41:47 -07:00
Elian Doran
54200fa0cb
chore(export/share): disable non-functional search 2025-10-28 17:33:36 +02:00
Elian Doran
5d82a26c87
fix(build-docs): missing favicon 2025-10-28 17:23:31 +02:00
Elian Doran
e51070e389
chore(share): handle BAttachments too 2025-10-28 17:16:34 +02:00
Elian Doran
e0dc4fee20
fix(share): reference links not working 2025-10-28 17:14:33 +02:00
contributor
e683dc1d66 add openTodayNote to CommandMappings #7472 2025-10-28 16:59:46 +02:00
contributor
14a3438a20 move shortcut definition to "Note navigation" section #7472 2025-10-28 16:59:41 +02:00
contributor
dd483fccbc use common translation for openTodayNote #7472 2025-10-28 16:59:36 +02:00
contributor
5620e7f4a7 feat: add command openTodayNote with empty keyboard shortcut #7472 2025-10-28 16:59:28 +02:00
Elian Doran
187e9b57de
fix(share): note tree not visible on mobile 2025-10-28 16:57:04 +02:00
Elian Doran
d6d67e7957
fix(docs/share): share theme not built 2025-10-28 16:45:27 +02:00
Elian Doran
bde03e8378
feat(docs/share): integrate in the CI 2025-10-28 16:42:52 +02:00
Elian Doran
4c3fcdba4a
fix(share): images appearing stretched 2025-10-28 16:34:38 +02:00
Elian Doran
7a5c1277f1
feat(docs/share): set up script to build documentation 2025-10-28 16:24:55 +02:00
Elian Doran
69b262040a
Translations update from Hosted Weblate (#7547) 2025-10-28 16:22:15 +02:00
Manfred Manni
8731fa6c31
Translated using Weblate (German)
Currently translated at 59.3% (70 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/de/
2025-10-28 13:50:36 +00:00
Elian Doran
f4e8fc4d83
Export with share theme (#5830) 2025-10-28 15:50:21 +02:00
Elian Doran
dd5b3a3c1c
chore(server): address requested changes 2025-10-28 15:44:00 +02:00
Elian Doran
17319d25e8
chore(server): fix a few type issues 2025-10-28 14:51:03 +02:00
Elian Doran
2f189b6961
chore(share): remove now redundant project 2025-10-28 14:47:51 +02:00
Elian Doran
b1f8d44576
Merge remote-tracking branch 'origin/main' into feature/export_with_share_theme 2025-10-28 14:29:37 +02:00
Elian Doran
7f22532a0a
fix: import markdown to text note (#7538) 2025-10-28 14:15:29 +02:00
Elian Doran
c7beb87980
Update dependency node to v24 (#7537) 2025-10-28 14:14:00 +02:00
Elian Doran
5cd1fd53d4
Translations update from Hosted Weblate (#7546) 2025-10-28 14:11:20 +02:00
Elian Doran
2eadbe3f01
Translated using Weblate (German)
Currently translated at 44.9% (53 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/de/
2025-10-28 13:10:51 +01:00
Hosted Weblate
4e7493f648
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-28 13:06:25 +01:00
Elian Doran
b9d54a44f6
Translations update from Hosted Weblate (#7545) 2025-10-28 14:06:08 +02:00
Elian Doran
a1ad8be02b
Apply suggestion from @gemini-code-assist[bot]
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-28 14:05:06 +02:00
Elian Doran
b02514f395
Apply suggestion from @gemini-code-assist[bot]
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-28 14:04:47 +02:00
Elian Doran
dcef3f2be5
Apply suggestion from @gemini-code-assist[bot]
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-28 14:04:39 +02:00
Rugved Inamdar
585fdabd27
Translated using Weblate (Hindi)
Currently translated at 0.6% (1 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/hi/
2025-10-28 12:02:42 +00:00
Rugved Inamdar
71fcb77a22
Translated using Weblate (Hindi)
Currently translated at 0.8% (1 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/hi/
2025-10-28 12:02:41 +00:00
Rugved Inamdar
33ecf6aa6d
Translated using Weblate (Hindi)
Currently translated at 0.1% (1 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/hi/
2025-10-28 12:02:40 +00:00
Rugved Inamdar
1f75de83c6
Added translation using Weblate (Marathi) 2025-10-28 12:02:39 +00:00
Rugved Inamdar
31b52f72d2
Added translation using Weblate (Marathi) 2025-10-28 12:02:39 +00:00
Rugved Inamdar
01aaf81196
Added translation using Weblate (Marathi) 2025-10-28 12:02:38 +00:00
Rugved Inamdar
3ecfdd62e8
Added translation using Weblate (Marathi) 2025-10-28 12:02:38 +00:00
Rugved Inamdar
3c74d0714a
Added translation using Weblate (Hindi) 2025-10-28 12:02:37 +00:00
Rugved Inamdar
f58d9adff2
Added translation using Weblate (Hindi) 2025-10-28 12:02:36 +00:00
Rugved Inamdar
0eecf5b132
Added translation using Weblate (Hindi) 2025-10-28 12:02:36 +00:00
Rugved Inamdar
9e3cca333a
Added translation using Weblate (Hindi) 2025-10-28 12:02:35 +00:00
Manfred Manni
81c233463e
Translated using Weblate (German)
Currently translated at 44.9% (53 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/de/
2025-10-28 12:02:34 +00:00
DerVogel101
87946e7e85
Translated using Weblate (German)
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-10-28 12:02:33 +00:00
Elian Doran
c3768a051d
Fix some CSS issues (#7543) 2025-10-28 14:02:24 +02:00
contributor
c579cd3ce7 fix: no note on edited notes view if a revision made between note created/modified date 2025-10-28 12:55:34 +02:00
contributor
945e2625d3 fix: wrong dates in “Note Revisions” view 2025-10-28 12:55:13 +02:00
Adorian Doran
ea45024559 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-10-28 09:51:32 +02:00
Elian Doran
ff36414a55
chore(deps): update dependency @types/serve-static to v2 (#7535) 2025-10-28 08:24:02 +02:00
renovate[bot]
8f184c5b10
chore(deps): update dependency node to v24 2025-10-28 06:23:07 +00:00
Elian Doran
c027a2bbfa
chore(deps): update dependency @types/archiver to v7 (#7534) 2025-10-28 08:22:36 +02:00
Elian Doran
91adc2258d
fix(deps): update dependency react-i18next to v16.2.1 (#7532) 2025-10-28 08:22:12 +02:00
Elian Doran
6701e83927
chore(deps): update dependency axios to v1.13.0 (#7533) 2025-10-28 08:21:44 +02:00
Elian Doran
3f54e589d8
fix(deps): update dependency mermaid to v11.12.1 (#7531) 2025-10-28 08:21:09 +02:00
Elian Doran
f65be73f71
chore(deps): update dependency @types/express to v5.0.5 (#7530) 2025-10-28 08:20:33 +02:00
Elian Doran
346e9282bd
Translations update from Hosted Weblate (#7528) 2025-10-28 08:19:57 +02:00
SiriusXT
8f8ea7adc3 fix(types): correct CommandMappings key for pasteMarkdownIntoText 2025-10-28 14:10:11 +08:00
SiriusXT
4affd3a955 fix: note map button overlapping menu 2025-10-28 11:28:36 +08:00
SiriusXT
bcce05cc4d fix(zen): Show fixed toolbar in Zen mode 2025-10-28 11:20:36 +08:00
SiriusXT
ac16c42e23 Merge branch 'main' into patch_import_markdown 2025-10-28 11:03:41 +08:00
SiriusXT
5025329e92 fix: restore editor focus after inserting markdown 2025-10-28 11:00:53 +08:00
SiriusXT
507910b0ce fix: import markdown to text note 2025-10-28 10:17:37 +08:00
renovate[bot]
b59fab9dba
chore(deps): update dependency @types/serve-static to v2 2025-10-28 01:53:53 +00:00
renovate[bot]
ac7e4580f6
chore(deps): update dependency @types/archiver to v7 2025-10-28 01:53:07 +00:00
renovate[bot]
27d1044ba8
chore(deps): update dependency axios to v1.13.0 2025-10-28 01:52:22 +00:00
renovate[bot]
96c949b2fc
fix(deps): update dependency react-i18next to v16.2.1 2025-10-28 01:51:32 +00:00
renovate[bot]
927cd0255e
fix(deps): update dependency mermaid to v11.12.1 2025-10-28 01:50:45 +00:00
renovate[bot]
c2c8417c42
chore(deps): update dependency @types/express to v5.0.5 2025-10-28 01:49:55 +00:00
migraine-user
3bb224e682
Translated using Weblate (Korean)
Currently translated at 1.3% (2 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ko/
2025-10-27 20:43:03 +00:00
Elian Doran
6f126ea17b
Fix typo in German translation for 'copy-link' (#7527) 2025-10-27 22:42:52 +02:00
DerVogel101
61a5cf1452
Fix typo in German translation for 'copy-link'
Fixed a missing character in the German translation of the context menu action copy-link.
2025-10-27 21:25:08 +01:00
Elian Doran
14b8d0a47e
chore(share): bring back syntax highlight 2025-10-27 22:18:08 +02:00
Elian Doran
12df6a0d6e
chore(uikit): create empty project 2025-10-27 20:53:13 +02:00
Elian Doran
21d243eec1
fix(desktop): share not working 2025-10-27 20:29:56 +02:00
Elian Doran
161238ca11
fix(windows script): add -command flag (#7513) 2025-10-27 18:47:03 +02:00
Elian Doran
4d5267e18b
fix (empty tab): recent notes not showing when creating a empty tab (#7523) 2025-10-27 18:43:31 +02:00
Elian Doran
0fa52907b3
Website static fixes (#7525) 2025-10-27 18:39:20 +02:00
Elian Doran
c4f57f3d15
refactor(website): simplify loop 2025-10-27 18:34:26 +02:00
Elian Doran
6bde264156
fix(website): lang/dir not updating after switching language 2025-10-27 18:31:03 +02:00
Elian Doran
4f72f81a95
chore(website): fix typecheck issues 2025-10-27 18:19:35 +02:00
Elian Doran
c212c5d6ff
Merge remote-tracking branch 'origin/main' into fix/website_static 2025-10-27 18:11:39 +02:00
Elian Doran
f24880d42c
fix(website): incorrect default language 2025-10-27 18:10:21 +02:00
Elian Doran
ee9bf1d47b
fix(website): incorrect lang tag 2025-10-27 18:04:49 +02:00
Elian Doran
b069fab82f
chore(website): use static loading of translations 2025-10-27 17:17:37 +02:00
Elian Doran
d5ce01a65b
Revert "fix(website): missing suspense"
This reverts commit dbfa94a9ee45a7fef43cd97c90df35f85d7bad34.
2025-10-27 16:45:52 +02:00
Elian Doran
dbfa94a9ee
fix(website): missing suspense 2025-10-27 16:35:26 +02:00
Elian Doran
86aaa97809
fix(website): language-specific pages not properly determined 2025-10-27 16:30:03 +02:00
Elian Doran
c4c8fe23a9
fix(website): pages not prerendered 2025-10-27 16:29:44 +02:00
Elian Doran
715fe77db3
Translations update from Hosted Weblate (#7519) 2025-10-27 16:20:42 +02:00
Francis C
40f5abd6e3
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/zh_Hant/
2025-10-27 14:18:09 +00:00
Giovi
f3f7e5900b
Translated using Weblate (Italian)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/it/
2025-10-27 14:18:08 +00:00
green
f4402a6d81
Translated using Weblate (Japanese)
Currently translated at 100.0% (152 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ja/
2025-10-27 14:18:08 +00:00
green
6966efd374
Translated using Weblate (Japanese)
Currently translated at 98.0% (149 of 152 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ja/
2025-10-27 14:18:07 +00:00
Hosted Weblate
cd3e025fdc
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/
2025-10-27 14:18:06 +00:00
marc hooijschuur
a224b774d3
Translated using Weblate (Dutch)
Currently translated at 2.9% (48 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/nl/
2025-10-27 14:18:05 +00:00
Elian Doran
f20078f3b0
fix(print): some images not loading 2025-10-27 16:17:51 +02:00
SiriusXT
56019e5449 fix (empty tab): recent notes not showing when creating a empty tab 2025-10-27 16:59:28 +08:00
SiriusXT
7dd517d8f7 fix (empty tab): recent notes not showing when creating a empty tab 2025-10-27 14:42:22 +08:00
Elian Doran
b2f1b3c910
chore(deps): update dependency @types/turndown to v5.0.6 (#7521) 2025-10-27 08:13:12 +02:00
renovate[bot]
2197fae700
chore(deps): update dependency @types/turndown to v5.0.6 2025-10-27 01:55:23 +00:00
Elian Doran
3661733f07
chore(server): remove duplicate math handling 2025-10-26 22:00:11 +02:00
Elian Doran
52a6f2597e
fix(share): template directory in production 2025-10-26 21:38:16 +02:00
Elian Doran
8828e36624
Merge remote-tracking branch 'origin/main' into react/type_widgets 2025-10-26 20:19:47 +02:00
Elian Doran
d8e9cad23d
feat(website): describe presentation collection 2025-10-26 19:24:43 +02:00
Elian Doran
6ed333d222
style(website): redesign list with screenshot 2025-10-26 19:11:11 +02:00
Elian Doran
ba26c478d6
fix(export/share): assets incorrectly rewritten 2025-10-26 12:15:35 +02:00
Elian Doran
055fcb7b2a
fix(export/share): handling of fonts 2025-10-26 11:34:09 +02:00
Elian Doran
f4468706ef
fix(export/share): asset path for styles and scripts 2025-10-26 11:07:08 +02:00
Elian Doran
212956201a
chore(export/share): export full share script & styles 2025-10-26 11:02:19 +02:00
Elian Doran
1182592fc5
chore(share): fix another typecheck issue 2025-10-26 10:07:42 +02:00
Elian Doran
d534db29c9
feat(note_icon): add an empty option (closes #7370) 2025-10-26 10:03:51 +02:00
Elian Doran
40edd42740
Translations update from Hosted Weblate (#7516) 2025-10-25 23:57:24 +03:00
Newcomer1989
d2c7011735
Translated using Weblate (German)
Currently translated at 20.5% (30 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/de/
2025-10-25 20:54:49 +00:00
Manfred Manni
a050d1741b
Translated using Weblate (German)
Currently translated at 22.8% (27 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/de/
2025-10-25 20:54:48 +00:00
greenfork
18982865da
Translated using Weblate (Russian)
Currently translated at 99.1% (1607 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-10-25 20:54:48 +00:00
Newcomer1989
3aa810fed7
Translated using Weblate (German)
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-10-25 20:54:47 +00:00
Elian Doran
c5ecc22c67
chore(website): update macOS requirement 2025-10-25 23:54:37 +03:00
Elian Doran
252f8ccb1f
Internationalization improvements for the website (#7515) 2025-10-25 23:46:43 +03:00
Elian Doran
e1bb704383
fix(website/i18n): language list fit on mobile 2025-10-25 23:33:54 +03:00
Elian Doran
dce0d9400b
chore(website/i18n): bring back root-level pages 2025-10-25 23:11:02 +03:00
Elian Doran
615c783fe3
chore(website/i18n): add t to list of deps 2025-10-25 22:52:38 +03:00
Elian Doran
f29411baf7
fix(website/i18n): header link not indicating active 2025-10-25 22:49:22 +03:00
Adorian Doran
64d3589b40 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-10-25 22:42:20 +03:00
Elian Doran
be5e70130c
feat(website/i18n): highlight current language 2025-10-25 22:39:04 +03:00
Elian Doran
9ba1e9d732
feat(website/i18n): swap locale when footer 2025-10-25 22:36:27 +03:00
Elian Doran
e1dc4d1433
chore(website/i18n): another missing translation 2025-10-25 22:18:07 +03:00
Elian Doran
d0d268496c
Update apps/website/src/components/Header.tsx
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-25 22:16:50 +03:00
Elian Doran
8a6950c945
Merge branch 'main' into feature/website_i18n 2025-10-25 22:03:18 +03:00
Elian Doran
477592d176
fix(website/i18n): language detection not always working 2025-10-25 21:55:53 +03:00
Elian Doran
7e5c2ed79d
chore(website): set up testing 2025-10-25 21:54:30 +03:00
Elian Doran
bc580f2a88
feat(website/i18n): language auto-detection 2025-10-25 21:39:02 +03:00
Elian Doran
71cd92e0b5
fix(website/i18n): header sometimes not correctly translated 2025-10-25 21:13:48 +03:00
Elian Doran
a4d92e12be
chore(website/i18n): add more CJK fonts 2025-10-25 21:05:54 +03:00
Elian Doran
c40279b480
chore(website): missing a translation 2025-10-25 20:40:05 +03:00
Elian Doran
4c7e7c157c
chore(website): solve a warning about sectioned h1 size 2025-10-25 20:31:08 +03:00
Elian Doran
c08386450a
chore(website/i18n): different load mechanism for translations 2025-10-25 20:27:42 +03:00
Elian Doran
eb93762ecc
chore(website/i18n): missing translations in header 2025-10-25 20:27:23 +03:00
Elian Doran
2697f9a25d
fix(website/i18n): get started in download button not working 2025-10-25 20:00:09 +03:00
Elian Doran
9515e2099b
feat(website/i18n): set right dir and lang tags 2025-10-25 19:58:31 +03:00
Elian Doran
966c08da87
fix(website/i18n): home page link not working 2025-10-25 19:53:36 +03:00
Elian Doran
ea04446e81
chore(website/i18n): handle Chinese 2025-10-25 19:17:26 +03:00
Elian Doran
e4f806ed14
feat(website/i18n): get translation to actually render 2025-10-25 19:13:28 +03:00
Elian Doran
49cf7ae1a3
feat(website/i18n): render pages by locale 2025-10-25 18:54:24 +03:00
Elian Doran
1a6f5a027f
chore(website/i18n): add English too 2025-10-25 18:21:52 +03:00
Elian Doran
f4796f0f9e
feat(website/i18n): footer navigation 2025-10-25 18:18:47 +03:00
Elian Doran
30480b2c23
chore(website/i18n): start generating routes 2025-10-25 17:25:58 +03:00
Elian Doran
b7b1d17817
chore(website): add list of locales 2025-10-25 16:41:10 +03:00
Elian Doran
c4e5494c14
chore(deps): update dependency @types/express to v5.0.4 (#7487) 2025-10-25 16:37:47 +03:00
Elian Doran
b0f63c02c9
chore(deps): update dependency vite to v7.1.12 (#7495) 2025-10-25 16:37:20 +03:00
Elian Doran
2480509811
chore(deps): update dependency electron to v38.4.0 (#7500) 2025-10-25 16:28:45 +03:00
Elian Doran
7872193ed0
chore(deps): update dependency node-abi to v4.15.0 (#7501) 2025-10-25 16:28:37 +03:00
Adorian Doran
638cb4281e style/center pane: optimize the identification of options pages 2025-10-25 11:28:26 +03:00
Adorian Doran
1568908982 style/center pane: allow distinct background colors for note splits 2025-10-25 11:12:00 +03:00
Ryan Keane
1a68bdfe02
fix(windows script): add -command flag
I don't know why if I replace old, system builtin powershell executable
with powershell 7, scripts fail with this error:

The argument 'Set-Item -Path ...' is not recognized as the name of a
script file. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.

Adding -Command at the end of flags just fixed it.

Signed-off-by: Ryan Keane <the.ra2.ifv@gmail.com>
2025-10-25 01:07:28 -07:00
Adorian Doran
4459561308 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-10-25 10:20:28 +03:00
Elian Doran
14e06c4555
chore(dev): add entry point for starting web site in dev mode 2025-10-25 09:34:53 +03:00
Elian Doran
b8e17959ae
Translations update from Hosted Weblate (#7512) 2025-10-25 09:19:43 +03:00
Sarah Hussein
c16a135efc
Translated using Weblate (Arabic)
Currently translated at 55.4% (81 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ar/
2025-10-25 06:18:55 +00:00
Sarah Hussein
cbc756ba06
Translated using Weblate (Arabic)
Currently translated at 85.7% (332 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ar/
2025-10-25 06:18:54 +00:00
Sarah Hussein
64daeb0826
Translated using Weblate (Arabic)
Currently translated at 65.0% (1055 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-25 06:18:53 +00:00
Hosted Weblate
e15839db47
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-25 06:18:53 +00:00
Elian Doran
dcdffed003
chore(deps): remove unused types for session-file-store 2025-10-25 09:18:41 +03:00
renovate[bot]
48e85fad43
chore(deps): update dependency node-abi to v4.15.0 2025-10-25 06:17:51 +00:00
renovate[bot]
189071deb8
chore(deps): update dependency electron to v38.4.0 2025-10-25 06:17:20 +00:00
Elian Doran
354f1d65c1
chore(deps): update dependency eslint-plugin-react-hooks to v7.0.1 (#7491) 2025-10-25 09:14:40 +03:00
renovate[bot]
b78893b106
chore(deps): update dependency vite to v7.1.12 2025-10-25 06:14:32 +00:00
Elian Doran
9310315c6a
chore(deps): update dependency @types/tabulator-tables to v6.3.0 (#7499) 2025-10-25 09:13:38 +03:00
renovate[bot]
1794f8546d
chore(deps): update dependency @types/express to v5.0.4 2025-10-25 06:12:41 +00:00
Elian Doran
b3bc0572e5
chore(deps): update ckeditor5 config packages to v12.2.0 (#7498) 2025-10-25 09:12:04 +03:00
Elian Doran
253ce1f223
fix(deps): update dependency preact-render-to-string to v6.6.3 (#7497) 2025-10-25 09:11:45 +03:00
Elian Doran
2f3bf94b47
fix(deps): update dependency mind-elixir to v5.3.4 (#7496) 2025-10-25 09:11:26 +03:00
Elian Doran
d802caa03b
chore(deps): update dependency turndown to v7.2.2 (#7494) 2025-10-25 09:10:35 +03:00
renovate[bot]
e69751a8b3
fix(deps): update dependency preact-render-to-string to v6.6.3 2025-10-25 06:10:07 +00:00
Elian Doran
0760ea22fb
chore(deps): update dependency lint-staged to v16.2.6 (#7493) 2025-10-25 09:09:27 +03:00
Elian Doran
8a8f407e99
chore(deps): update dependency happy-dom to v20.0.8 (#7492) 2025-10-25 09:09:09 +03:00
renovate[bot]
e030dd96da
chore(deps): update dependency eslint-plugin-react-hooks to v7.0.1 2025-10-25 06:08:45 +00:00
Elian Doran
01abfc2528
chore(deps): update dependency @types/yargs to v17.0.34 (#7490) 2025-10-25 09:08:36 +03:00
Elian Doran
042b929dc5
chore(deps): update dependency @types/serve-static to v1.15.10 (#7488) 2025-10-25 09:08:03 +03:00
Elian Doran
ab1d5e31fb
chore(deps): update dependency @types/cookie-parser to v1.4.10 (#7486) 2025-10-25 09:07:41 +03:00
Elian Doran
d073e4c37f
chore(deps): update dependency @types/archiver to v6.0.4 (#7485) 2025-10-25 09:07:29 +03:00
Elian Doran
d60d965a42
chore(deps): update dependency @smithy/middleware-retry to v4.4.5 (#7484) 2025-10-25 09:07:13 +03:00
Elian Doran
1c87cfbbd9
chore(deps): update dependency ini to v6 (#7507) 2025-10-25 09:06:21 +03:00
Elian Doran
fee333512a
chore(deps): update dependency openai to v6.7.0 (#7502) 2025-10-25 09:05:53 +03:00
Elian Doran
38a3f46506
chore(deps): update node.js to v22.21.0 (#7503) 2025-10-25 09:05:35 +03:00
Elian Doran
bf7506fcd8
chore(deps): update pnpm to v10.19.0 (#7504) 2025-10-25 09:05:05 +03:00
Elian Doran
6fbba426de
fix(deps): update codemirror (#7505) 2025-10-25 09:04:29 +03:00
Elian Doran
d5bdec13b5
fix(deps): update dependency react-i18next to v16.2.0 (#7506) 2025-10-25 09:04:02 +03:00
Elian Doran
cc1b6eb42d
chore(deps): update github artifact actions (major) (#7508) 2025-10-25 09:03:36 +03:00
renovate[bot]
8baf496f96
chore(deps): update github artifact actions 2025-10-25 01:23:17 +00:00
renovate[bot]
23a20c4490
chore(deps): update dependency ini to v6 2025-10-25 01:23:11 +00:00
renovate[bot]
c8b98f2db6
fix(deps): update dependency react-i18next to v16.2.0 2025-10-25 01:22:39 +00:00
renovate[bot]
3f36f515db
fix(deps): update codemirror 2025-10-25 01:22:07 +00:00
renovate[bot]
892eb5b95d
chore(deps): update pnpm to v10.19.0 2025-10-25 01:21:37 +00:00
renovate[bot]
62a69a0da0
chore(deps): update node.js to v22.21.0 2025-10-25 01:21:29 +00:00
renovate[bot]
3588e38543
chore(deps): update dependency openai to v6.7.0 2025-10-25 01:21:24 +00:00
renovate[bot]
41450ab85a
chore(deps): update dependency @types/tabulator-tables to v6.3.0 2025-10-25 01:19:49 +00:00
renovate[bot]
0526d99560
chore(deps): update ckeditor5 config packages to v12.2.0 2025-10-25 01:19:14 +00:00
renovate[bot]
557d576b85
fix(deps): update dependency mind-elixir to v5.3.4 2025-10-25 01:18:06 +00:00
renovate[bot]
041c961cfa
chore(deps): update dependency turndown to v7.2.2 2025-10-25 01:16:54 +00:00
renovate[bot]
dcc35bd507
chore(deps): update dependency lint-staged to v16.2.6 2025-10-25 01:16:19 +00:00
renovate[bot]
09c3e5b56e
chore(deps): update dependency happy-dom to v20.0.8 2025-10-25 01:15:41 +00:00
renovate[bot]
950793377d
chore(deps): update dependency @types/yargs to v17.0.34 2025-10-25 01:13:27 +00:00
renovate[bot]
7dac61dc26
chore(deps): update dependency @types/serve-static to v1.15.10 2025-10-25 01:11:50 +00:00
renovate[bot]
42dcb8f141
chore(deps): update dependency @types/cookie-parser to v1.4.10 2025-10-25 01:10:08 +00:00
renovate[bot]
43dc8a4b87
chore(deps): update dependency @types/archiver to v6.0.4 2025-10-25 01:09:20 +00:00
renovate[bot]
35316a4c45
chore(deps): update dependency @smithy/middleware-retry to v4.4.5 2025-10-25 01:08:32 +00:00
Elian Doran
1366489f99
Translations update from Hosted Weblate (#7479) 2025-10-24 23:31:57 +03:00
Elian Doran
0c399a676a
chore(share): fix typecheck issue 2025-10-24 23:28:42 +03:00
brtkcs
31ee78b1aa
Translated using Weblate (Hungarian)
Currently translated at 21.2% (31 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/hu/
2025-10-24 20:14:05 +00:00
brtkcs
808ba75ee0
Translated using Weblate (Hungarian)
Currently translated at 27.1% (32 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/hu/
2025-10-24 20:14:04 +00:00
brtkcs
ac1399a139
Translated using Weblate (Hungarian)
Currently translated at 8.2% (32 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/hu/
2025-10-24 20:14:04 +00:00
brtkcs
1e4793351a
Translated using Weblate (Hungarian)
Currently translated at 1.9% (32 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/hu/
2025-10-24 20:14:03 +00:00
Sarah Hussein
f502fe41c7
Translated using Weblate (Arabic)
Currently translated at 52.7% (77 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ar/
2025-10-24 20:14:02 +00:00
brtkcs
0ec0091357
Translated using Weblate (Hungarian)
Currently translated at 19.1% (28 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/hu/
2025-10-24 20:14:02 +00:00
brtkcs
0e2196f872
Translated using Weblate (Hungarian)
Currently translated at 24.5% (29 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/hu/
2025-10-24 20:14:01 +00:00
Sarah Hussein
32dee254cd
Translated using Weblate (Arabic)
Currently translated at 82.4% (319 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ar/
2025-10-24 20:14:01 +00:00
Sarah Hussein
d4a6a297f4
Translated using Weblate (Arabic)
Currently translated at 64.3% (1043 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-24 20:14:00 +00:00
brtkcs
a64d8cd8e2
Translated using Weblate (Hungarian)
Currently translated at 7.4% (29 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/hu/
2025-10-24 20:14:00 +00:00
brtkcs
bf4cfb9c02
Translated using Weblate (Hungarian)
Currently translated at 1.7% (29 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/hu/
2025-10-24 20:13:59 +00:00
Manfred Manni
a99dfecf43
Translated using Weblate (German)
Currently translated at 100.0% (387 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/de/
2025-10-24 20:13:59 +00:00
Manfred Manni
1530d96eca
Translated using Weblate (German)
Currently translated at 99.8% (1619 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-10-24 20:13:58 +00:00
Elian Doran
5dc066f4c6
chore(dev): add work-around to run on Ubuntu
See https://github.com/electron/electron/issues/42510.
2025-10-24 23:03:20 +03:00
Elian Doran
395f33cd5b
chore(share): bring back boxicons 2025-10-24 22:32:42 +03:00
Elian Doran
21b20cf575
chore(share): bring back most of the logic 2025-10-24 21:18:06 +03:00
Elian Doran
e3dd25b591
chore(share): set up math 2025-10-24 21:13:40 +03:00
Elian Doran
b9a4e7ab11
chore(share): enable code splitting 2025-10-24 20:52:54 +03:00
Elian Doran
6ae67c410c
chore(share): load Mermaid only when necessary 2025-10-24 20:52:47 +03:00
Elian Doran
4ef7667484
chore(share): bring back inline mermaid rendering 2025-10-24 19:09:19 +03:00
Elian Doran
3660e2f127
refactor(share): store assets at /share/asset level 2025-10-24 19:00:26 +03:00
Elian Doran
357d294f2d
chore(export/share): address review 2025-10-24 18:25:16 +03:00
Elian Doran
bb636128b0
fix(export/share): missing files and wrong meta handling 2025-10-24 16:02:20 +03:00
Elian Doran
aa102ab393
fix(export/share): missing templates after merge 2025-10-24 14:54:20 +03:00
Elian Doran
ea53665e64
Merge remote-tracking branch 'origin/main' into feature/export_with_share_theme 2025-10-24 14:43:20 +03:00
Adorian Doran
3341e59a80 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-10-24 02:43:52 +03:00
Adorian Doran
74a805056b style/settings: use Mica for settings pages 2025-10-24 01:03:28 +03:00
Elian Doran
1e8f179f81
Translations update from Hosted Weblate (#7469) 2025-10-23 20:37:39 +03:00
Elian Doran
54c906de8d
Apply suggestion from @gemini-code-assist[bot]
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-23 20:35:34 +03:00
Elian Doran
114b3ef4d1
Apply suggestion from @gemini-code-assist[bot]
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-23 20:33:43 +03:00
Elian Doran
f6fa1e69b3
Apply suggestion from @gemini-code-assist[bot]
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-23 20:33:03 +03:00
Elian Doran
fcc8086f9c
Apply suggestion from @gemini-code-assist[bot]
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-23 20:32:21 +03:00
Adorian Doran
f42e870de1 style/dropdowns: increase the radius of the backdrop blur 2025-10-23 20:28:36 +03:00
Bond
7eefff0a74
Translated using Weblate (Vietnamese)
Currently translated at 10.9% (16 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/vi/
2025-10-23 19:28:31 +02:00
Микола Копитін
1b842e35ff
Translated using Weblate (Ukrainian)
Currently translated at 26.0% (38 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/uk/
2025-10-23 19:28:30 +02:00
Bond
c9021ca742
Translated using Weblate (Vietnamese)
Currently translated at 55.9% (66 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/vi/
2025-10-23 19:28:29 +02:00
Микола Копитін
b229ab3c02
Translated using Weblate (Ukrainian)
Currently translated at 32.2% (38 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/uk/
2025-10-23 19:28:29 +02:00
Bond
6825f28ba0
Translated using Weblate (Vietnamese)
Currently translated at 3.0% (50 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/vi/
2025-10-23 19:28:28 +02:00
Микола Копитін
5e72f271ea
Translated using Weblate (Ukrainian)
Currently translated at 21.9% (32 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/uk/
2025-10-23 19:28:27 +02:00
Микола Копитін
9ad6dfd5e9
Translated using Weblate (Ukrainian)
Currently translated at 27.9% (33 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/uk/
2025-10-23 19:28:27 +02:00
Marc
81031673c3
Translated using Weblate (French)
Currently translated at 100.0% (146 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/fr/
2025-10-23 19:28:26 +02:00
Микола Копитін
1a6423fd36
Translated using Weblate (Ukrainian)
Currently translated at 20.5% (30 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/uk/
2025-10-23 19:28:26 +02:00
onlyfranz
9b872617e6
Translated using Weblate (German)
Currently translated at 2.7% (4 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/de/
2025-10-23 19:28:25 +02:00
Sarah Hussein
57be2e2474
Translated using Weblate (Arabic)
Currently translated at 25.4% (30 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ar/
2025-10-23 19:28:25 +02:00
Микола Копитін
1d65afef53
Translated using Weblate (Ukrainian)
Currently translated at 26.2% (31 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/uk/
2025-10-23 19:28:24 +02:00
Sarah Hussein
b6385618d1
Translated using Weblate (Arabic)
Currently translated at 63.5% (1030 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-23 19:28:23 +02:00
Giovi
e3d7c7419f
Translated using Weblate (Italian)
Currently translated at 100.0% (387 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/it/
2025-10-23 19:28:22 +02:00
Giovi
2a6c295967
Translated using Weblate (Italian)
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-10-23 19:28:22 +02:00
green
f5f32df847
Translated using Weblate (Japanese)
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-23 19:28:21 +02:00
Francis C
1f350b2730
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-10-23 19:28:20 +02:00
Marc
386992255e
Translated using Weblate (French)
Currently translated at 100.0% (387 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/fr/
2025-10-23 19:28:20 +02:00
Bilal Janati
eb505c4615
Translated using Weblate (French)
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/fr/
2025-10-23 19:28:19 +02:00
Marc
003d2b5354
Translated using Weblate (French)
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/fr/
2025-10-23 19:28:19 +02:00
Elian Doran
b452f78242
feat(mobile/search): search definitions always shown 2025-10-23 20:24:16 +03:00
Adorian Doran
ca3964f8b7 style/floating buttons: tweak position 2025-10-23 20:18:52 +03:00
Elian Doran
7d1abee8e4
feat(mobile/search): show results (closes #5655) 2025-10-23 20:16:17 +03:00
Elian Doran
d503993a74
chore(mobile/search): further improve the layout 2025-10-23 20:03:44 +03:00
Adorian Doran
ddafda5f4e style/quick edit dialog: tweak the colors for the dark color scheme 2025-10-23 20:01:29 +03:00
Adorian Doran
40b08e1828 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-10-23 19:43:17 +03:00
Adorian Doran
5141f0a0d5 style/quick edit dialog: tweak the colors for the dark color scheme 2025-10-23 19:43:06 +03:00
Elian Doran
fe98ba8c8c
chore(mobile/search): improve actions fit 2025-10-23 19:15:38 +03:00
Elian Doran
18608ecb34
feat(mobile): render search definition 2025-10-23 19:07:40 +03:00
Elian Doran
ab6da26a25
refactor(client): standalone rendering mechanism for ribbon 2025-10-23 18:09:32 +03:00
Elian Doran
f95082ccdb
fix(server): calendar tooltip positioning (closes #5675) 2025-10-23 16:57:48 +03:00
Elian Doran
e94b5ac07a
fix(server): edited notes listing automatically generated hidden notes (closes #5683) 2025-10-23 16:42:27 +03:00
Elian Doran
5d0669b464
fix(canvas): images appearing muted in dark mode (closes #5708) 2025-10-23 16:11:05 +03:00
Elian Doran
af95d85b73
chore(client): disable import/export for help notes 2025-10-23 14:43:04 +03:00
Elian Doran
aae90ede19
chore(share): keep diacritics in slug instead of stripping them in 2025-10-23 14:29:47 +03:00
Elian Doran
0fa1c0f5c4
chore(share): improve slugification to strip diacritics cleanly 2025-10-23 14:26:15 +03:00
Elian Doran
d2b6014b49
fix(share): HTML tags displayed escaped in headings 2025-10-23 14:19:54 +03:00
Elian Doran
94d62f810a
fix(share): heading and navigation not supporting CJK (closes #6430) 2025-10-23 14:06:13 +03:00
Elian Doran
e953f0cc1a
Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-10-23 13:22:26 +03:00
Adorian Doran
8c165c0401 style/quick edit dialog: add support for the dark color scheme 2025-10-23 10:57:01 +03:00
Adorian Doran
b4dd40e128 style/quick edit dialog: refactor 2025-10-23 10:48:04 +03:00
Adorian Doran
535b960b76 style/quick edit dialog: ignore monochromatic custom colors 2025-10-23 10:44:23 +03:00
Adorian Doran
b58f37cd4a style/quick edit dialog: tint the dialog background, border and promoted attributes card according to the note's custom color 2025-10-23 10:18:52 +03:00
Adorian Doran
a01fb39599 client/quick edit dialog: make available the CSS variables with the custom color of the edited note 2025-10-23 10:16:18 +03:00
Adorian Doran
be15934b22 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-10-23 10:03:03 +03:00
Elian Doran
347da8abde
fix(collections/list): excessive spacing in empty note content (closes #7319) 2025-10-23 08:16:26 +03:00
Elian Doran
5ff07820d3
chore(release): prepare for 0.99.3 2025-10-22 22:37:46 +03:00
Adorian Doran
6eccaac4bb style: fix broken colored links inside read-only notes (hover color) 2025-10-22 22:12:58 +03:00
Adorian Doran
f5038a08e5 style/board/board items: make the note custom color be applied again as the text color 2025-10-22 22:05:16 +03:00
Adorian Doran
96b3464f00 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-10-22 21:53:07 +03:00
Adorian Doran
d1e6bd9c3a Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-10-22 21:52:21 +03:00
Adorian Doran
7911973a83 style: fix broken colored links inside read-only notes 2025-10-22 21:52:08 +03:00
Jon Fuller
968b595aec
fix(scheduler): change session expiration check interval to 30 seconds from 1ms
Increase interval for checking protected session expiration from 1ms to 30s.
2025-10-22 11:20:14 -07:00
Adorian Doran
2470b0b334 style: tweak the appearance of the promoted attributes cards 2025-10-22 20:06:06 +03:00
Adorian Doran
4344687303 style: tweak the appearance of the promoted attributes cards 2025-10-22 19:58:42 +03:00
Adorian Doran
b4fe46eba3 style: tweak the appearance of option cards 2025-10-22 19:41:49 +03:00
Elian Doran
704f2c2238
Translations update from Hosted Weblate (#7461) 2025-10-22 18:30:09 +03:00
Hosted Weblate
f6b86d725c
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-22 17:27:54 +02:00
Elian Doran
a7e0866e0d
Flatpak improvements (#7460) 2025-10-22 18:27:33 +03:00
Elian Doran
2cb3b877d1
chore(forge): fixup electron-forge:make scripts 2025-10-22 18:24:34 +03:00
Elian Doran
0b808b8db3
fix(forge): missing icon in flatpak build 2025-10-22 18:05:38 +03:00
Elian Doran
f02af893bb
fix(forge): wrong exec in flatpak desktop template (closes #5516) 2025-10-22 18:03:52 +03:00
Elian Doran
cb3f941760
chore(forge): add script to make flatpak 2025-10-22 17:45:31 +03:00
Elian Doran
93f145a20f
fix(forge): missing flatpak permissions (closes #7454) 2025-10-22 17:44:19 +03:00
Elian Doran
d34e2a0246
Translations update from Hosted Weblate (#7453) 2025-10-22 08:00:27 +03:00
Hosted Weblate
9a0b4f67ed
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-22 07:59:55 +03:00
Marc
651e158e3a
Translated using Weblate (French)
Currently translated at 88.8% (1440 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/fr/
2025-10-22 07:59:55 +03:00
Elian Doran
d11784a894
Translations update from Hosted Weblate (#7449) 2025-10-22 07:54:29 +03:00
Elian Doran
14db789b7f
Apply suggestion from @gemini-code-assist[bot]
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-22 07:53:45 +03:00
Marc
c4a4995da0
Translated using Weblate (French)
Currently translated at 71.9% (105 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/fr/
2025-10-22 07:53:12 +03:00
Marc
45de9da893
Translated using Weblate (French)
Currently translated at 90.9% (352 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/fr/
2025-10-22 07:53:12 +03:00
Marc
a6fce1b4c8
Translated using Weblate (French)
Currently translated at 86.9% (1409 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/fr/
2025-10-22 07:53:12 +03:00
Hosted Weblate
1d28a5e5b8
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-22 07:53:12 +03:00
Adorian Doran
d4b05fa0a0 style/dialogs/delete confirmation: fix the spacing of the note list 2025-10-22 01:29:54 +03:00
Adorian Doran
4bcf209072 style/reference links: enable colors in table collections as well 2025-10-22 00:57:55 +03:00
Adorian Doran
4b34ae3fd4 style/text editor/reference links: make the underline use the same color as the link caption 2025-10-22 00:51:58 +03:00
Adorian Doran
8590ff1f46 style/text editor/reference links color: fix regression 2025-10-22 00:45:51 +03:00
perf3ct
8e227a6146
fix(search): make sure to highlight exact search results too 2025-10-21 14:35:31 -07:00
Elian Doran
c4e2c003de
feat(i18n): enable Italian language 2025-10-21 21:35:05 +03:00
Jon Fuller
b03cb1ce1b
Merge branch 'main' into fix/fix-equals-operator-in-search 2025-10-21 11:30:05 -07:00
Elian Doran
eee3aa2bb4
feat(i18n): update Italian translations 2025-10-21 20:59:28 +03:00
Elian Doran
ce9f703e0c
feat(scripts): import weblate CSVs into translations 2025-10-21 20:59:12 +03:00
perf3ct
fb0d971e48
fix(search): also support exact phrase matching such as ='test phrase' 2025-10-21 10:12:14 -07:00
Elian Doran
279ccec3ab
Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-10-21 19:14:33 +03:00
Elian Doran
ab3852678e
chore(splitjs): get rid of minified version
Not useful for the app.
2025-10-21 19:14:31 +03:00
Elian Doran
65f7aaeee8
Translations update from Hosted Weblate (#7445) 2025-10-21 18:49:40 +03:00
Elian Doran
7a76b9dd0b
Translated using Weblate (Dutch)
Currently translated at 16.1% (19 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/nl/
2025-10-21 17:49:04 +02:00
Marc
e7b7afabea
Translated using Weblate (French)
Currently translated at 23.9% (35 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/fr/
2025-10-21 17:33:25 +02:00
d-rekked
c072c1fd9d
Translated using Weblate (Dutch)
Currently translated at 16.4% (24 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/nl/
2025-10-21 17:33:25 +02:00
green
1f3d9db161
Translated using Weblate (Japanese)
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-21 17:33:24 +02:00
Hosted Weblate
62852b8978
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-21 17:33:23 +02:00
Elian Doran
429767e45c
chore(splitjs): get build & test to work 2025-10-21 18:33:12 +03:00
Elian Doran
87d6771c47
fix(client/rtl): split reversed 2025-10-21 18:07:45 +03:00
Elian Doran
68033580a5
feat(split): add right to left support
See https://github.com/nathancahill/split/issues/739
2025-10-21 18:06:51 +03:00
Elian Doran
8a3b6ea694
chore(split): wire into monorepo 2025-10-21 17:57:12 +03:00
Elian Doran
ac269bb51e
Merge remote-tracking branch 'split/master' 2025-10-21 17:52:25 +03:00
Elian Doran
1d583a2d1f
fix(client/options): dev locale showing in prod 2025-10-21 17:21:01 +03:00
Elian Doran
cdde69cc7c
test(server): add adjustable type to becca mocking 2025-10-21 16:59:32 +03:00
Elian Doran
9e1e300c72
fix(client): normalize locale when formatting time (closes #7444) 2025-10-21 16:59:13 +03:00
Elian Doran
797741c7d0
fix(client): crash if locale is incorrect 2025-10-21 16:54:38 +03:00
Elian Doran
10f844f232
test(server): use becca mocking for single export test 2025-10-21 12:31:26 +03:00
Elian Doran
5291649c50
docs(release): add missing entry to changelog 2025-10-21 12:24:36 +03:00
Elian Doran
fc57314905
docs: improve demo note (#7407) 2025-10-21 11:39:53 +03:00
Elian Doran
1df0e7b2b0
Merge remote-tracking branch 'origin/main' into patch-2 2025-10-21 11:39:20 +03:00
Elian Doran
6486c741a2
docs(demo): update Trilium Demo first page 2025-10-21 11:33:14 +03:00
Elian Doran
2aa9ddc026
Merge remote-tracking branch 'origin/main' into patch-2 2025-10-21 11:26:18 +03:00
Elian Doran
d45177042c
docs: remove garbage from Amazon URL (#7406) 2025-10-21 11:25:14 +03:00
Elian Doran
b24dbc6462
docs(demo): use clean URLs for links to Amazon 2025-10-21 11:24:07 +03:00
Elian Doran
5dc2630d2a
Merge remote-tracking branch 'origin/main' into patch-1 2025-10-21 11:17:22 +03:00
Elian Doran
800c668962
chore(deps): update node.js to v22.21.0 (#7438) 2025-10-21 09:37:42 +03:00
renovate[bot]
b2955afa61
chore(deps): update node.js to v22.21.0 2025-10-21 06:07:01 +00:00
Elian Doran
052f4f65cd
chore(deps): update dependency openai to v6.6.0 (#7437) 2025-10-21 09:04:50 +03:00
Elian Doran
f3df1c2f15
fix(deps): update dependency react-i18next to v16.1.2 (#7436) 2025-10-21 09:04:35 +03:00
Elian Doran
272ac1b990
chore(deps): update typescript-eslint monorepo to v8.46.2 (#7435) 2025-10-21 09:04:22 +03:00
Elian Doran
c4af60480a
chore(deps): update dependency lint-staged to v16.2.5 (#7434) 2025-10-21 09:04:06 +03:00
Elian Doran
ef94033908
chore(deps): update dependency vite to v7.1.11 [security] (#7432) 2025-10-21 09:03:47 +03:00
Elian Doran
78bb10b1df
Translations update from Hosted Weblate (#7440) 2025-10-21 09:02:50 +03:00
Elian Doran
43ac3ac0fe
Translated using Weblate (Greek)
Currently translated at 25.3% (37 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/el/
2025-10-21 07:56:41 +02:00
Marc
bdc274ebba
Translated using Weblate (French)
Currently translated at 2.7% (4 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/fr/
2025-10-21 05:43:03 +00:00
vcodesai
2baaf12d24
Translated using Weblate (Greek)
Currently translated at 25.3% (37 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/el/
2025-10-21 05:43:02 +00:00
Marc
11e2632b61
Translated using Weblate (French)
Currently translated at 2.5% (3 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/fr/
2025-10-21 05:43:01 +00:00
vcodesai
70bc09b306
Translated using Weblate (Greek)
Currently translated at 1.6% (2 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/el/
2025-10-21 05:43:01 +00:00
Luk On
0f73cbeec3
Translated using Weblate (Polish)
Currently translated at 30.9% (502 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pl/
2025-10-21 05:43:00 +00:00
vcodesai
ac28411b36
Translated using Weblate (Greek)
Currently translated at 1.0% (4 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/el/
2025-10-21 05:43:00 +00:00
vcodesai
1dbfe0950b
Translated using Weblate (Greek)
Currently translated at 0.7% (12 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/el/
2025-10-21 05:42:59 +00:00
green
f02c499168
Translated using Weblate (Japanese)
Currently translated at 100.0% (1621 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-21 05:42:58 +00:00
Manfred Manni
f9db642abb
Translated using Weblate (German)
Currently translated at 99.6% (1616 of 1621 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-10-21 05:42:58 +00:00
Elian Doran
bd243e36e5
chore(release): prepare for 0.99.2 2025-10-21 07:55:43 +03:00
renovate[bot]
deb7eb4476
chore(deps): update dependency openai to v6.6.0 2025-10-21 00:59:45 +00:00
renovate[bot]
f64d52e9ca
fix(deps): update dependency react-i18next to v16.1.2 2025-10-21 00:58:53 +00:00
renovate[bot]
dddbbe64ea
chore(deps): update typescript-eslint monorepo to v8.46.2 2025-10-21 00:58:00 +00:00
renovate[bot]
adfb268dd6
chore(deps): update dependency lint-staged to v16.2.5 2025-10-21 00:56:19 +00:00
renovate[bot]
bc0750947e
chore(deps): update dependency vite to v7.1.11 [security] 2025-10-20 22:13:01 +00:00
Elian Doran
ad8135c2a9
chore(client/import): rephrase ZIP import recommendation 2025-10-20 20:40:34 +03:00
Elian Doran
bcb2daf9b6
feat(client/import): clarify importing from zip (closes #7429) 2025-10-20 20:34:57 +03:00
Elian Doran
8fc7a20220
fix(client/import): file remains from previous instance (closes #7428) 2025-10-20 20:24:43 +03:00
Elian Doran
00720ae58f
docs(user): mention printing PDF manually from browser 2025-10-20 19:42:06 +03:00
Elian Doran
51f559b332
feat(client/search): apply full-width for collection view 2025-10-20 19:37:19 +03:00
Elian Doran
a7a8f806e8
fix(client): search results taking up space when not needed 2025-10-20 19:30:44 +03:00
Elian Doran
25e1c45562
style(search): decrease opacity of note path 2025-10-20 18:59:44 +03:00
Elian Doran
d90e02d8f4
fix(search): note path not visible in search (closes #7404) 2025-10-20 18:56:28 +03:00
Elian Doran
d4a46ed4da
fix(settings): max content width forces minimum when typing (closes #7423) 2025-10-20 18:34:57 +03:00
Elian Doran
a664a58076
Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-10-20 18:23:10 +03:00
Elian Doran
ca2cc38bad
fix(website): wrong docker command (closes #7426) 2025-10-20 18:23:08 +03:00
Elian Doran
1c6b3fba03
Translations update from Hosted Weblate (#7424) 2025-10-20 18:20:34 +03:00
kamykO
77b0d541b1
Translated using Weblate (Polish)
Currently translated at 29.4% (477 of 1620 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pl/
2025-10-20 15:17:06 +00:00
green
e72dc5c5c3
Translated using Weblate (Japanese)
Currently translated at 100.0% (387 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ja/
2025-10-20 15:17:05 +00:00
green
d81fcef1f3
Translated using Weblate (Japanese)
Currently translated at 100.0% (1620 of 1620 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-20 15:17:04 +00:00
Francis C
77ac0bfbdd
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (387 of 387 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hant/
2025-10-20 15:17:04 +00:00
Francis C
434e3f6035
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1620 of 1620 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-10-20 15:17:03 +00:00
Luk On
0d2dc86fb9
Translated using Weblate (Polish)
Currently translated at 29.4% (476 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pl/
2025-10-20 15:17:02 +00:00
Manfred Manni
fa57966b01
Translated using Weblate (German)
Currently translated at 99.8% (1616 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-10-20 15:17:01 +00:00
Elian Doran
29682cef49
docs(user): update documentation on search in collections 2025-10-20 18:16:28 +03:00
Elian Doran
b224267e3b
fix(ribbon): wrong default view type in search 2025-10-20 18:03:55 +03:00
Elian Doran
6d09c7116f
fix(client/search): freeze in presentation collection 2025-10-20 17:59:05 +03:00
Elian Doran
f36535d061
fix(client/syntax_highlighting): avoid crash if language not found 2025-10-20 17:58:54 +03:00
Elian Doran
95987d474d
fix(client/search): freeze in board 2025-10-20 17:49:14 +03:00
Elian Doran
1d8b55be5e
feat(client/search): disable nesting depth in collection 2025-10-20 17:46:21 +03:00
Elian Doran
5d66b7e66f
feat(client/search): enable collection properties 2025-10-20 17:38:25 +03:00
Elian Doran
f8066417d9
fix(client/search): full screen collections not visible 2025-10-20 17:36:12 +03:00
Elian Doran
ee9c3f49da
chore(client/search): ensure nested note IDs don't work in search everywhere 2025-10-20 17:33:48 +03:00
Elian Doran
3743fff21c
chore(client/search): ensure all notes are loaded 2025-10-20 17:15:08 +03:00
Elian Doran
8939fac447
fix(client/search): table freezing due to nesting 2025-10-20 17:14:47 +03:00
Elian Doran
c7224bc0d1
fix(client/search): note IDs being calculated recursively in table 2025-10-20 17:14:26 +03:00
Elian Doran
929eee1350
fix(client/search): note IDs being calculated twice in search 2025-10-20 16:17:36 +03:00
Elian Doran
e904feb179
fix(client/search): collection rendering twice 2025-10-20 16:05:24 +03:00
Elian Doran
44c379fce1
Better PDF export mechanism (part I) (#7399) 2025-10-20 14:37:35 +03:00
Elian Doran
0ea7e9fc04
Translations update from Hosted Weblate (#7422) 2025-10-20 14:30:07 +03:00
Elian Doran
66896d6457
fix(client/print): text notes affecting slides 2025-10-20 14:27:35 +03:00
Elian Doran
fffb8317cb
fix(client/print): disable printing for unsupported collection types 2025-10-20 14:24:14 +03:00
Elian Doran
cc09a450c9
docs(user): improve & update documentation for printing 2025-10-20 14:16:20 +03:00
Elian Doran
04f6777627
chore(client/print): address requested changes 2025-10-20 14:04:11 +03:00
Luk On
3daa39cff8
Translated using Weblate (Polish)
Currently translated at 6.7% (8 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/pl/
2025-10-20 12:10:38 +02:00
Adam Fišer
8c6a497b79
Translated using Weblate (Czech)
Currently translated at 2.5% (3 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/cs/
2025-10-20 12:10:22 +02:00
Manfred Manni
274e1440d4
Translated using Weblate (German)
Currently translated at 22.0% (26 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/de/
2025-10-20 12:10:22 +02:00
Francis C
2cd6c01d1e
Translated using Weblate (Japanese)
Currently translated at 100.0% (118 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ja/
2025-10-20 12:10:21 +02:00
Francis C
0ce8fa1115
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (118 of 118 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/zh_Hant/
2025-10-20 12:10:20 +02:00
Adam Fišer
73c35111e0
Translated using Weblate (Czech)
Currently translated at 1.9% (32 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/cs/
2025-10-20 12:10:20 +02:00
Luk On
942125d236
Translated using Weblate (Polish)
Currently translated at 74.0% (286 of 386 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/pl/
2025-10-20 12:10:19 +02:00
Francis C
2296e5a089
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (386 of 386 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hant/
2025-10-20 12:10:19 +02:00
Francis C
453c29c160
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1618 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-10-20 12:10:18 +02:00
Manfred Manni
e0aa49b36d
Translated using Weblate (German)
Currently translated at 100.0% (386 of 386 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/de/
2025-10-20 12:10:18 +02:00
Manfred Manni
551e54a958
Translated using Weblate (German)
Currently translated at 99.6% (1613 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-10-20 12:10:17 +02:00
Elian Doran
acae069b9e
chore(client/print): fix typecheck issues 2025-10-20 12:56:46 +03:00
Elian Doran
29d6784c59
feat(client/print): render 404 errors 2025-10-20 12:46:24 +03:00
Elian Doran
e6c8f238f9
fix(client/print): stylesheet not loading in prod 2025-10-20 12:40:41 +03:00
Elian Doran
e069d87fe8
fix(client/print): wrong entrypoint in prod 2025-10-20 12:39:38 +03:00
Elian Doran
1ae32c4547
feat(client/print): integrate old print stylesheet 2025-10-20 11:27:21 +03:00
Elian Doran
7c08864444
feat(client/print): enforce VS code theme when printing code notes 2025-10-20 11:06:26 +03:00
Elian Doran
74c26b42da
fix(client/print): syntax highlighting not loading on code notes 2025-10-20 11:00:49 +03:00
Elian Doran
f0fa55715c
fix(client/print): ckeditor stylesheet missing 2025-10-20 10:48:55 +03:00
Elian Doran
1514432f77
fix(client/print): circular dependency affecting ws 2025-10-20 10:40:14 +03:00
Elian Doran
08d2cc2ae5
Merge remote-tracking branch 'origin/main' into feature/pdf_export_presentation 2025-10-20 10:15:24 +03:00
Elian Doran
7a0a3182eb
chore(deps): update dependency @playwright/test to v1.56.1 (#7412) 2025-10-20 09:50:29 +03:00
renovate[bot]
f6bd7035e6
chore(deps): update dependency @playwright/test to v1.56.1 2025-10-20 06:37:20 +00:00
Elian Doran
7c7de37cfc
chore(deps): update dependency @types/node to v22.18.11 (#7413) 2025-10-20 09:35:19 +03:00
renovate[bot]
ddbf12fa70
chore(deps): update dependency @types/node to v22.18.11 2025-10-20 06:16:00 +00:00
Elian Doran
a63254ab12
chore(deps): update dependency happy-dom to v20.0.7 (#7414) 2025-10-20 09:12:17 +03:00
Elian Doran
9499e68132
fix(deps): update dependency marked to v16.4.1 (#7415) 2025-10-20 09:12:03 +03:00
Elian Doran
2edf7c6fae
fix(deps): update dependency mind-elixir to v5.3.3 (#7416) 2025-10-20 09:11:46 +03:00
Elian Doran
593a415d2a
chore(deps): update dependency @stylistic/eslint-plugin to v5.5.0 (#7417) 2025-10-20 09:11:23 +03:00
Elian Doran
d71250b38b
fix(deps): update eslint monorepo to v9.38.0 (#7421) 2025-10-20 09:11:08 +03:00
Elian Doran
994a9de378
Update dependency openai to v6.5.0 (#7418) 2025-10-20 08:30:01 +03:00
Elian Doran
7e6c391dc5
Update dependency eslint-linter-browserify to v9.38.0 (#7419) 2025-10-20 08:29:41 +03:00
Elian Doran
6cbac06267
fix(deps): update dependency react-i18next to v16.1.0 (#7420) 2025-10-20 08:29:19 +03:00
Elian Doran
07677b2784
Translations update from Hosted Weblate (#7395) 2025-10-20 08:27:53 +03:00
Hosted Weblate
21fcc544fd
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-20 04:57:36 +00:00
devmorkon
f88c0415af
Translated using Weblate (Dutch)
Currently translated at 3.4% (5 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/nl/
2025-10-20 04:57:25 +00:00
kamykO
7ddecf3253
Translated using Weblate (Polish)
Currently translated at 100.0% (146 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/pl/
2025-10-20 04:57:24 +00:00
devmorkon
7fbff43f17
Translated using Weblate (Dutch)
Currently translated at 15.6% (18 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/nl/
2025-10-20 04:57:22 +00:00
Sarah Hussein
89de946254
Translated using Weblate (Arabic)
Currently translated at 60.4% (978 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-20 04:57:21 +00:00
kamykO
7d521218cf
Translated using Weblate (Polish)
Currently translated at 29.4% (476 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pl/
2025-10-20 04:57:20 +00:00
Giovi
bb7cde786f
Translated using Weblate (Italian)
Currently translated at 33.5% (543 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-10-20 04:57:19 +00:00
Sarah Hussein
2d2e52f47b
Translated using Weblate (Arabic)
Currently translated at 50.0% (73 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ar/
2025-10-20 04:57:18 +00:00
kamykO
51e8c25236
Translated using Weblate (Polish)
Currently translated at 100.0% (146 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/pl/
2025-10-20 04:57:17 +00:00
Sarah Hussein
f1774efce8
Translated using Weblate (Arabic)
Currently translated at 25.2% (29 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ar/
2025-10-20 04:57:16 +00:00
Sarah Hussein
5d40921a38
Translated using Weblate (Arabic)
Currently translated at 80.3% (310 of 386 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ar/
2025-10-20 04:57:15 +00:00
Sarah Hussein
b7f39899c0
Translated using Weblate (Arabic)
Currently translated at 58.5% (947 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-20 04:57:14 +00:00
green
e5db40c789
Translated using Weblate (Japanese)
Currently translated at 100.0% (386 of 386 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ja/
2025-10-20 04:57:13 +00:00
green
82d2894f5c
Translated using Weblate (Japanese)
Currently translated at 100.0% (1618 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-20 04:57:12 +00:00
renovate[bot]
b6284b1830
fix(deps): update eslint monorepo to v9.38.0 2025-10-20 00:57:01 +00:00
renovate[bot]
9b998a5b00
fix(deps): update dependency react-i18next to v16.1.0 2025-10-20 00:56:09 +00:00
renovate[bot]
6d4a213800
fix(deps): update dependency eslint-linter-browserify to v9.38.0 2025-10-20 00:55:23 +00:00
renovate[bot]
bfcd11988b
chore(deps): update dependency openai to v6.5.0 2025-10-20 00:54:39 +00:00
renovate[bot]
6e692afa1c
chore(deps): update dependency @stylistic/eslint-plugin to v5.5.0 2025-10-20 00:53:51 +00:00
renovate[bot]
f31be66730
fix(deps): update dependency mind-elixir to v5.3.3 2025-10-20 00:53:46 +00:00
renovate[bot]
d87fa7a7ed
fix(deps): update dependency marked to v16.4.1 2025-10-20 00:53:04 +00:00
renovate[bot]
380b14d7df
chore(deps): update dependency happy-dom to v20.0.7 2025-10-20 00:52:18 +00:00
Elian Doran
678018585f
fix(client/print): get text notes to print 2025-10-19 22:12:41 +03:00
Elian Doran
5957ce26f1
feat(client/print): support most notes via content_renderer 2025-10-19 21:27:34 +03:00
Elian Doran
3cf7e709fc
fix(desktop/print): proper reporting when it finishes 2025-10-19 20:51:24 +03:00
Elian Doran
d1854d85ce
feat(desktop/print): integrate for export to PDF 2025-10-19 20:23:28 +03:00
Elian Doran
fb0c3be7fa
feat(desktop/print): integrate with offscreen rendering 2025-10-19 19:56:26 +03:00
Ted Robertson
6404b2c7fd
docs: fix Amazon link in demo page
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-19 11:45:28 -04:00
Ted Robertson
921dfe9cc5
docs: improve demo note 2025-10-19 11:43:00 -04:00
Ted Robertson
c5abeafc70
docs: remove garbage from Amazon URL 2025-10-19 11:32:42 -04:00
Adorian Doran
de9314a271 client/note tree item tinting: optimize 2025-10-19 17:39:21 +03:00
Adorian Doran
d999d60302 client/note tree item tinting: refactor 2025-10-19 17:22:38 +03:00
Elian Doran
61bdcf2a53
feat(client/print): add a toast when printing is in progress 2025-10-19 17:12:41 +03:00
Elian Doran
c160ab4721
feat(client/print): don't connect to websocket 2025-10-19 16:45:04 +03:00
Elian Doran
76c337602b
chore(print): clean up some logs 2025-10-19 16:35:13 +03:00
Elian Doran
64576458b7
feat(client/print): print presentations with waiting for slides to load 2025-10-19 16:27:13 +03:00
Elian Doran
89dac52f49
fix(client/print): read note ID properly from note path 2025-10-19 15:38:10 +03:00
Elian Doran
44b9c6e0f6
Merge remote-tracking branch 'origin/main' into feature/pdf_export_presentation 2025-10-19 11:51:36 +03:00
Elian Doran
c58c18d688
Readme: add a download section (#7401) 2025-10-19 11:50:32 +03:00
Elian Doran
e04bd36dfe
chore(client): fix typecheck 2025-10-19 11:38:34 +03:00
Adorian Doran
1aad2d8c09 client/note tree item tinting: tweak colors for the light theme 2025-10-19 03:58:28 +03:00
Adorian Doran
75a79775f4 client/note tree: tint the active item background according to the item's custom color 2025-10-19 03:28:34 +03:00
Adorian Doran
c95577c478 readme: use en-dash instead of em-dash 2025-10-19 00:53:40 +03:00
Adorian Doran
e0614d14f3 readme: add a download section 2025-10-19 00:48:39 +03:00
Adorian Doran
5b75d20c80 client: add missing semicolon 2025-10-19 00:15:06 +03:00
Adorian Doran
87f1cb23be client: refactor 2025-10-19 00:11:37 +03:00
Adorian Doran
f079c7aad2 client: refactor 2025-10-19 00:02:22 +03:00
Adorian Doran
21581c78f9 client: refactor 2025-10-18 23:52:43 +03:00
Elian Doran
49cd8b2a24
chore(client/print): use different approach than custom route (WIP) 2025-10-18 22:54:29 +03:00
Elian Doran
b0234a75f8
fix(client/print): variables not loading for printing presentations 2025-10-18 22:25:50 +03:00
Elian Doran
df176c4e4a
fix(client/print): title interfering with presentation 2025-10-18 22:11:33 +03:00
Elian Doran
750c4104f7
feat(client/print): automatically apply right query param 2025-10-18 22:05:57 +03:00
Elian Doran
55fde593a3
fix(client/print): slides not paginating correctly 2025-10-18 21:59:09 +03:00
Elian Doran
f6d7ecab40
feat(client/print): render presentation without shadow DOM 2025-10-18 21:57:12 +03:00
Adorian Doran
0ae5270f5b docs: add a notice for the "color" label 2025-10-18 21:45:37 +03:00
Adorian Doran
a59f5ebc24
Note Tree: ensure readability of tree items regardless of the user-defined color (#7397) 2025-10-18 21:35:46 +03:00
Elian Doran
e374b31a1c
feat(client/print): get collections to render 2025-10-18 21:35:19 +03:00
Adorian Doran
177577e80f style: improve comment 2025-10-18 21:31:42 +03:00
Adorian Doran
0390fadf34 style/note tree: tweak the light theme custom color lightness limit 2025-10-18 21:29:39 +03:00
Adorian Doran
93c7b8dea7 client: fix the issues pointed by gemini-code-assist 2025-10-18 21:22:55 +03:00
Elian Doran
e416caffe3
chore(client/print): wire printing for collections 2025-10-18 21:19:53 +03:00
Elian Doran
62855f4bb1
chore(client/print): render title using preact 2025-10-18 21:09:39 +03:00
Adorian Doran
2b460be63a client/note tree: adjust the custom color of tree items to maintain readability 2025-10-18 21:05:34 +03:00
Elian Doran
54724b8c58
chore(client/print): load nota into forca 2025-10-18 21:02:44 +03:00
Elian Doran
e83eacb18b
chore(server): get printing template in order 2025-10-18 20:23:17 +03:00
Elian Doran
63bcd80375
chore(server): set up template for printing 2025-10-18 20:15:28 +03:00
Elian Doran
fac31ff8be
chore(server): set up route for printing 2025-10-18 20:07:08 +03:00
Elian Doran
0d94ae9f61
Merge branch 'main' of github.com:TriliumNext/trilium 2025-10-18 20:03:08 +03:00
Elian Doran
e5c7feb2aa
test(collection/presentation): fix broken test 2025-10-18 19:34:57 +03:00
Elian Doran
27cc858b67
feat(collection/presentation): make cross-slide links work 2025-10-18 19:04:28 +03:00
Elian Doran
bfa1c2a2dd
chore(collection/presentation): rewrite vertical slide links 2025-10-18 18:41:05 +03:00
Elian Doran
c04c38e61d
chore(collection/presentation): rewrite horizontal slide links 2025-10-18 18:37:29 +03:00
Adorian Doran
82f4ea2dea Fix #3634 2025-10-18 18:05:44 +03:00
Elian Doran
0c3d225379
test(collection/presentation): test empty slide 2025-10-18 15:34:40 +03:00
Elian Doran
7e6231698c
test(collection/presentation): test slide order 2025-10-18 15:31:30 +03:00
Elian Doran
13f2061e75
fix(collection/presentation): empty slides are confusing 2025-10-18 14:45:01 +03:00
Elian Doran
e188702df8
Translations update from Hosted Weblate (#7392) 2025-10-17 22:04:58 +03:00
Elian Doran
566ff95540
Revert "Translated using Weblate (Italian)"
This reverts commit d7a0255185b175e035eb31bd874c8849bb099bef.
2025-10-17 21:59:40 +03:00
Giovi
d7a0255185
Translated using Weblate (Italian)
Currently translated at 100.0% (1618 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-10-17 20:49:52 +02:00
Zexin Yuan
d10a4aed6a
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 19.8% (29 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/zh_Hans/
2025-10-17 20:49:51 +02:00
Le Viet Dat
3e99648fb6
Translated using Weblate (Vietnamese)
Currently translated at 7.5% (11 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/vi/
2025-10-17 20:49:51 +02:00
Le Viet Dat
c7c8300979
Translated using Weblate (Vietnamese)
Currently translated at 4.9% (19 of 386 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/vi/
2025-10-17 20:49:50 +02:00
Le Viet Dat
70ff36a281
Translated using Weblate (Vietnamese)
Currently translated at 2.7% (45 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/vi/
2025-10-17 20:49:49 +02:00
Zexin Yuan
c5b878965b
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (386 of 386 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hans/
2025-10-17 20:49:48 +02:00
Zexin Yuan
3e5cb7c423
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1618 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-10-17 20:49:48 +02:00
Hosted Weblate
addd8dc78d
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-17 20:49:47 +02:00
Elian Doran
3ff5ba79f6
feat(collection/presentation): react to color changes 2025-10-17 21:38:32 +03:00
Elian Doran
ceedcb1a2c
fix(collection/presentation): sync not called properly 2025-10-17 21:37:08 +03:00
Elian Doran
9403ea2028
docs(user): document presentation view 2025-10-17 21:19:43 +03:00
Elian Doran
0f52e42017
chore(collection/presentation): increase video size 2025-10-17 20:07:09 +03:00
Elian Doran
7ce223451c
chore(collection/presentation): hide video footer buttons 2025-10-17 20:04:03 +03:00
Adorian Doran
cb275e5031 style/canvas: tweak the arrowhead picker position 2025-10-17 17:33:03 +03:00
Adorian Doran
3194d848e1 style/canvas: remove unused style 2025-10-17 17:12:26 +03:00
Adorian Doran
3ec7ccd6dc canvas: apply blur backdrop on other components as well 2025-10-17 17:10:39 +03:00
Adorian Doran
bf53744609 style/canvas: fix arrowheads picker being improperly positioned 2025-10-17 16:42:19 +03:00
Elian Doran
0dd8be1599
feat(collection/presentation): add color picker for slide bg 2025-10-17 09:39:19 +03:00
Elian Doran
d9b4f7345b
feat(collection/presentation): support gradients as well 2025-10-17 09:34:40 +03:00
Elian Doran
bbda8d3357
feat(collection/presentation): support custom background color per slide 2025-10-17 09:28:44 +03:00
Elian Doran
f377df32ed
refactor(collection/presentation): deduplicate slide building 2025-10-17 09:23:12 +03:00
Elian Doran
3f3b8893a3
chore(deps): update dependency @anthropic-ai/sdk to v0.67.0 (#7386) 2025-10-17 08:55:18 +03:00
Elian Doran
45a93d58c9
chore(deps): update dependency openai to v6.4.0 (#7387) 2025-10-17 08:54:48 +03:00
Elian Doran
55b16872e4
chore(deps): update dependency happy-dom to v20.0.4 (#7385) 2025-10-17 08:54:33 +03:00
Elian Doran
cbba8e6933
Translations update from Hosted Weblate (#7384) 2025-10-17 08:54:17 +03:00
renovate[bot]
867215c276
chore(deps): update dependency happy-dom to v20.0.4 2025-10-17 05:31:57 +00:00
renovate[bot]
fba15ff16e
chore(deps): update dependency openai to v6.4.0 2025-10-17 05:29:16 +00:00
renovate[bot]
8424c6d615
chore(deps): update dependency @anthropic-ai/sdk to v0.67.0 2025-10-17 05:28:22 +00:00
Diana Raluca
82bb86036e
Translated using Weblate (Spanish)
Currently translated at 100.0% (146 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/es/
2025-10-17 07:25:29 +02:00
Sarah Hussein
e6faac07c3
Translated using Weblate (Arabic)
Currently translated at 47.9% (70 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ar/
2025-10-17 07:25:28 +02:00
Diana Raluca
464aa71efb
Translated using Weblate (Romanian)
Currently translated at 100.0% (146 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ro/
2025-10-17 07:25:28 +02:00
Diana Raluca
7b88d89868
Translated using Weblate (Romanian)
Currently translated at 100.0% (115 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ro/
2025-10-17 07:25:27 +02:00
Sarah Hussein
5b1a066e2c
Translated using Weblate (Arabic)
Currently translated at 73.5% (283 of 385 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ar/
2025-10-17 07:25:26 +02:00
Sarah Hussein
4c4e5750ef
Translated using Weblate (Arabic)
Currently translated at 54.5% (883 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-17 07:25:26 +02:00
green
cbd06b81ff
Translated using Weblate (Japanese)
Currently translated at 100.0% (385 of 385 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ja/
2025-10-17 07:25:25 +02:00
Giovi
9cc5b98551
Translated using Weblate (Italian)
Currently translated at 100.0% (385 of 385 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/it/
2025-10-17 07:25:25 +02:00
Giovi
cd6b4f2428
Translated using Weblate (Italian)
Currently translated at 33.1% (537 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-10-17 07:25:24 +02:00
green
e3178f6984
Translated using Weblate (Japanese)
Currently translated at 100.0% (1618 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-17 07:25:23 +02:00
Diana Raluca
460d168d37
Translated using Weblate (Romanian)
Currently translated at 100.0% (385 of 385 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ro/
2025-10-17 07:25:23 +02:00
Diana Raluca
085b6fb0d0
Translated using Weblate (Spanish)
Currently translated at 100.0% (385 of 385 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/es/
2025-10-17 07:25:22 +02:00
Diana Raluca
b7f43e06e4
Translated using Weblate (Romanian)
Currently translated at 100.0% (1618 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ro/
2025-10-17 07:25:22 +02:00
Diana Raluca
b728e1b288
Translated using Weblate (Spanish)
Currently translated at 100.0% (1618 of 1618 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/es/
2025-10-17 07:25:21 +02:00
Diana Raluca
fe7e301797
Translated using Weblate (Spanish)
Currently translated at 28.7% (42 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/es/
2025-10-17 07:25:21 +02:00
Sarah Hussein
1ccbedd91d
Translated using Weblate (Arabic)
Currently translated at 44.5% (65 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ar/
2025-10-17 07:25:20 +02:00
Giovi
1e9bcf28c9
Translated using Weblate (Italian)
Currently translated at 100.0% (146 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/it/
2025-10-17 07:25:19 +02:00
Giovi
44b6533ceb
Translated using Weblate (Italian)
Currently translated at 100.0% (115 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/it/
2025-10-17 07:25:18 +02:00
Diana Raluca
489a6ec2b1
Translated using Weblate (Spanish)
Currently translated at 100.0% (115 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/es/
2025-10-17 07:25:18 +02:00
Francis C
9713fa3bab
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 63.4% (73 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/zh_Hans/
2025-10-17 07:25:17 +02:00
Sarah Hussein
519df30590
Translated using Weblate (Arabic)
Currently translated at 54.1% (874 of 1614 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-17 07:25:16 +02:00
Giovi
1f44c36590
Translated using Weblate (Italian)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/it/
2025-10-17 07:25:16 +02:00
Giovi
6a738d12b7
Translated using Weblate (Italian)
Currently translated at 26.5% (429 of 1614 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-10-17 07:25:15 +02:00
Francis C
56d5db79a9
Translated using Weblate (Japanese)
Currently translated at 100.0% (1614 of 1614 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-17 07:25:15 +02:00
Francis C
be31fe310e
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1614 of 1614 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-10-17 07:25:14 +02:00
Francis C
f9a009c446
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1614 of 1614 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-10-17 07:25:13 +02:00
Elian Doran
307591e9c1
fix(deps): update ckeditor monorepo to v47.1.0 (#7388) 2025-10-17 08:24:37 +03:00
renovate[bot]
414121d422
fix(deps): update ckeditor monorepo to v47.1.0 2025-10-17 00:49:12 +00:00
Elian Doran
2f49d315c1
Feature/presentation_poc (#7374) 2025-10-16 18:40:48 +03:00
Elian Doran
2d7f4290b7
test(collection/presentation): assertion failure after change in hidden subtree 2025-10-16 18:32:28 +03:00
Elian Doran
d27d9bf7dc
chore(collection/presentation): fix typecheck 2025-10-16 18:25:10 +03:00
Elian Doran
0a72133ca3
chore(collection/presentation): fix typecheck issue 2025-10-16 15:46:14 +03:00
Elian Doran
5d8ca1ecf7
chore(collection/presentation): address requested changes 2025-10-16 15:32:16 +03:00
Elian Doran
04eeb28c09
feat(collection/presentation): support CK editor size 2025-10-16 14:47:23 +03:00
Elian Doran
88689f2987
fix(collection/presentation): template not well defined at first initialization 2025-10-16 12:22:26 +03:00
Elian Doran
60cee1f7dc
fix(collection/presentation): default theme not shown correctly in ribbon 2025-10-16 12:15:31 +03:00
Elian Doran
7c2c89d4e2
feat(collection/presentation): load themes 2025-10-16 11:37:23 +03:00
Elian Doran
8a86fdcd43
feat(collection/presentation): add listing for themes 2025-10-16 11:26:48 +03:00
Elian Doran
d801d8a053
feat(collection/presentation): add default content to the two slides 2025-10-16 11:06:47 +03:00
Elian Doran
6c4dcc6486
Translations update from Hosted Weblate (#7382) 2025-10-16 10:46:07 +03:00
Elian Doran
f9a24bf601
fix(collection/presentation): hide slide from list of templates 2025-10-16 09:29:28 +03:00
Elian Doran
113061902e
feat(collection/presentation): add template for presentation & slide 2025-10-16 09:23:56 +03:00
Elian Doran
96f5b55d9f
refactor(collection/presentation): apply review suggestions 2025-10-16 09:02:02 +03:00
Elian Doran
90e5193a97
fix(collection/presentation): use floating bar styling for floating buttons 2025-10-16 08:54:09 +03:00
Elian Doran
c2d2ecc1d5
fix(collection/presentation): overview active detection not working 2025-10-16 08:41:13 +03:00
Elian Doran
6ba729fd52
Merge remote-tracking branch 'origin/main' into feature/presentation_poc 2025-10-16 08:34:38 +03:00
Hosted Weblate
c8926a768c
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-16 05:25:23 +00:00
Elian Doran
253ef633dc
refactor(e2e): wrapper class for dropdown locator 2025-10-16 08:24:51 +03:00
Elian Doran
0958204779
e2e(server): broken test after switch to combobox 2025-10-16 08:16:48 +03:00
Adorian Doran
5d961e1a9a translations: remove deprecated string 2025-10-16 07:43:14 +03:00
Adorian Doran
4abd32b032 Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-10-16 07:39:40 +03:00
Elian Doran
ca5ffd64ab
Translations update from Hosted Weblate (#7369) 2025-10-16 07:39:32 +03:00
Adorian Doran
b6788298b5 client/global menu: reduce the width of the "Download update" menu item 2025-10-16 07:39:27 +03:00
Mattia Mascarello
2aad4ce81b
Translated using Weblate (Italian)
Currently translated at 68.4% (100 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/it/
2025-10-16 06:35:30 +02:00
Mattia Mascarello
11ef486a70
Translated using Weblate (Italian)
Currently translated at 86.0% (99 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/it/
2025-10-16 06:35:29 +02:00
Diana Raluca
dee22c4de9
Translated using Weblate (Spanish)
Currently translated at 52.1% (60 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/es/
2025-10-16 06:35:29 +02:00
Mattia Mascarello
54ea785a60
Translated using Weblate (Italian)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/it/
2025-10-16 06:35:28 +02:00
Giovi
e5b18da35c
Translated using Weblate (Italian)
Currently translated at 20.3% (329 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-10-16 06:35:28 +02:00
Diana Raluca
2094ceab26
Translated using Weblate (Spanish)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/es/
2025-10-16 06:35:27 +02:00
Aitanuqui
04c24fa64c
Translated using Weblate (Spanish)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/es/
2025-10-16 06:35:26 +02:00
Aitanuqui
02ed73828a
Translated using Weblate (Spanish)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/es/
2025-10-16 06:35:26 +02:00
Hosted Weblate
278b889a4d
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-16 06:35:25 +02:00
Mattia Mascarello
487433f454
Translated using Weblate (Italian)
Currently translated at 63.0% (92 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/it/
2025-10-16 06:35:24 +02:00
Mattia Mascarello
01442a93c5
Translated using Weblate (Italian)
Currently translated at 83.4% (96 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/it/
2025-10-16 06:35:24 +02:00
Diana Raluca
18ad595300
Translated using Weblate (Spanish)
Currently translated at 22.6% (26 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/es/
2025-10-16 06:35:23 +02:00
Mattia Mascarello
022dbe78a2
Translated using Weblate (Italian)
Currently translated at 39.6% (151 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/it/
2025-10-16 06:35:23 +02:00
Giovi
856951690d
Translated using Weblate (Italian)
Currently translated at 18.6% (301 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-10-16 06:35:22 +02:00
Elian Doran
4a359ffa0e
Update dependency happy-dom to v20.0.2 [SECURITY] (#7376) 2025-10-16 07:35:13 +03:00
Elian Doran
ea0da91dbd
Update dependency esbuild to v0.25.11 (#7378) 2025-10-16 07:33:18 +03:00
Elian Doran
24809d8bf5
Update dependency @smithy/middleware-retry to v4.4.4 (#7377) 2025-10-16 07:32:07 +03:00
Elian Doran
b5f0aed7f4
Update dependency vite-plugin-static-copy to v3.1.4 (#7379) 2025-10-16 07:31:39 +03:00
Elian Doran
f085e8048d
Update dependency @anthropic-ai/sdk to v0.66.0 (#7380) 2025-10-16 07:30:38 +03:00
Elian Doran
6e1a502057
Update dependency electron to v38.3.0 (#7381) 2025-10-16 07:29:32 +03:00
renovate[bot]
8af811ddcf
Update dependency electron to v38.3.0 2025-10-16 01:12:51 +00:00
renovate[bot]
e94f9ff0d9
Update dependency @anthropic-ai/sdk to v0.66.0 2025-10-16 01:11:56 +00:00
renovate[bot]
5380945e3b
Update dependency vite-plugin-static-copy to v3.1.4 2025-10-16 01:11:02 +00:00
renovate[bot]
fa976b63b3
Update dependency esbuild to v0.25.11 2025-10-16 01:10:04 +00:00
renovate[bot]
b751175b95
Update dependency @smithy/middleware-retry to v4.4.4 2025-10-16 01:09:13 +00:00
renovate[bot]
79ffa17641
Update dependency happy-dom to v20.0.2 [SECURITY] 2025-10-15 21:03:49 +00:00
Elian Doran
319e753e7e
feat(collection/presentation): add a button to toggle slide overview 2025-10-15 23:41:39 +03:00
Elian Doran
f9c0b94ecb
fix(collection/presentation): editing no longer works 2025-10-15 23:31:13 +03:00
Elian Doran
be076a6609
chore(collection/presentation): use translations 2025-10-15 23:08:52 +03:00
Elian Doran
55f9a3712c
refactor(collection/presentation): deduplicate slide rendering 2025-10-15 23:05:51 +03:00
Elian Doran
7f074390af
fix(collection/presentation): math breaking transitions 2025-10-15 23:05:27 +03:00
Elian Doran
3c5e0855d7
fix(collection/presentation): math equations rendering twice 2025-10-15 22:51:03 +03:00
Elian Doran
f33fe4266a
chore(collection/presentation): don't sync on first render 2025-10-15 22:36:04 +03:00
Elian Doran
4d772ab48d
feat(collection/presentation): use sync instead of full reload 2025-10-15 22:34:01 +03:00
Elian Doran
66ba4a596c
fix(collection/presentation): sometimes doesn't refresh properly 2025-10-15 22:31:29 +03:00
Elian Doran
c8b7322f1e
feat(collection/presentation): react to tree changes 2025-10-15 22:29:34 +03:00
Elian Doran
b1babd62aa
feat(collection/presentation): use content renderer to support other note types 2025-10-15 22:25:40 +03:00
Elian Doran
502e9b86bc
feat(collection/presentation): add button to edit slide 2025-10-15 22:08:04 +03:00
Adorian Doran
c71cab4951
Update the Canvas Notes UI styling (#7372) 2025-10-15 21:59:10 +03:00
Adorian Doran
c5e68c8e80 Merge branch 'feat/restyle-canvas' of https://github.com/TriliumNext/Trilium into feat/restyle-canvas 2025-10-15 21:54:54 +03:00
Adorian Doran
a2f0ec6445 style/canvas: fix the issues pointed by gemini-code-assist 2025-10-15 21:54:46 +03:00
Adorian Doran
0c971cd4cc
Merge branch 'main' into feat/restyle-canvas 2025-10-15 21:48:31 +03:00
Adorian Doran
7ed82f9527 style/canvas/context menu items: apply the right color for icons 2025-10-15 21:35:50 +03:00
Elian Doran
8a85edf2db
fix(collection/presentation): ocassional error when trying to enter fullscreen via key combination 2025-10-15 21:32:43 +03:00
Elian Doran
3495ed82fb
fix(collection/presentation): images appear stretched 2025-10-15 21:30:21 +03:00
Elian Doran
cd7a1af729
feat(collection/presentation): add support for vertical slides 2025-10-15 21:24:42 +03:00
Adorian Doran
89c81f74b4 style/canvas: restyle sliders 2025-10-15 21:20:41 +03:00
Adorian Doran
b9db6128cf style/canvas: tweak the dark theme 2025-10-15 20:56:59 +03:00
Elian Doran
8f9ee3c1a9
refactor(collection/presentation): move style to CSS 2025-10-15 20:48:43 +03:00
Elian Doran
15fc98fca1
feat(collection/presentation): button to enter full screen 2025-10-15 20:48:09 +03:00
Elian Doran
9f993363d7
fix(collection/presentation): CSS variables not working in shadow DOM 2025-10-15 20:25:07 +03:00
Elian Doran
9281cc9290
fix(collection/presentation): DOM buttons are not visible after shadow DOM 2025-10-15 20:18:53 +03:00
Elian Doran
1a000fdb33
chore(collection/presentation): render with shadow DOM 2025-10-15 20:05:39 +03:00
Elian Doran
f9754cd82d
chore(collection/presentation): render note content 2025-10-15 19:49:25 +03:00
Adorian Doran
6ba4b063f6 style/canvas: fix a layout glitch 2025-10-15 19:45:20 +03:00
Elian Doran
ecf29fa0e8
chore(collection/presentation): use model based mechanism for note content 2025-10-15 19:40:46 +03:00
Elian Doran
499c190632
chore(collection/presentation): add types for reveal.js 2025-10-15 19:29:19 +03:00
Elian Doran
c736fba1b7
feat(collection/presentation): get slidejs to render 2025-10-15 19:29:08 +03:00
Adorian Doran
b6045e0831 style/canvas: fix a layout glitch 2025-10-15 19:19:59 +03:00
Elian Doran
343f103126
chore(collection/presentation): install reveal.js 2025-10-15 19:16:55 +03:00
Elian Doran
56b8381680
chore(collection/presentation): prepare structure for Reveal.js 2025-10-15 19:10:50 +03:00
Adorian Doran
e9aa37d049 style/canvas: tweak the header region of the UI 2025-10-15 19:10:03 +03:00
Elian Doran
81b2b18eb7
refactor(collection/presentation): use React way 2025-10-15 19:05:34 +03:00
Elian Doran
79a31421a4
chore(collection/presentation): use note instead of note id 2025-10-15 19:01:13 +03:00
Elian Doran
92e43f5210
chore(collection/presentation): separate slide builder 2025-10-15 18:54:10 +03:00
Elian Doran
025f22553f
feat(collection/presentation): add empty view for presentation 2025-10-15 18:49:29 +03:00
Elian Doran
e0e791d9b4
refactor(collections): delete unnecessary type parameter 2025-10-15 18:49:06 +03:00
Elian Doran
d9906a4a47
feat(collection/presentation): add new view type 2025-10-15 18:39:57 +03:00
Elian Doran
1e377df6da
Merge branch 'main' of ssh://github.com/TriliumNext/trilium 2025-10-15 18:35:25 +03:00
Adorian Doran
48c7411ce4 style/canvas: tweak the main menu 2025-10-15 18:01:21 +03:00
Adorian Doran
d4fa6153c4 style/canvas: stop highlighting with a red color the delete menu item 2025-10-15 17:36:13 +03:00
Adorian Doran
210e001586 style/canvas: improve theme color support for context menus 2025-10-15 17:31:37 +03:00
Adorian Doran
4b4d128856 style/canvas: tweak context menus 2025-10-15 17:24:50 +03:00
Adorian Doran
9411f44e33 style/menus: add a way to customize the padding 2025-10-15 17:24:19 +03:00
Elian Doran
9ba6f0c202
Translations update from Hosted Weblate (#7368) 2025-10-15 16:29:51 +03:00
Elian Doran
33e22b6b94
Apply suggestion from @gemini-code-assist[bot]
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-15 16:28:42 +03:00
Sarah Hussein
6bf9caa253
Translated using Weblate (Arabic)
Currently translated at 33.5% (49 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ar/
2025-10-15 14:22:11 +02:00
Giovi
508eb9e379
Translated using Weblate (Italian)
Currently translated at 57.5% (84 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/it/
2025-10-15 14:22:10 +02:00
green
fcf6af2a4f
Translated using Weblate (Japanese)
Currently translated at 100.0% (146 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ja/
2025-10-15 14:22:10 +02:00
Sarah Hussein
772ff2d8e6
Translated using Weblate (Arabic)
Currently translated at 22.6% (26 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ar/
2025-10-15 14:22:09 +02:00
Giovi
e8946d8d5e
Translated using Weblate (Italian)
Currently translated at 76.5% (88 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/it/
2025-10-15 14:22:09 +02:00
Sarah Hussein
eb47170c7f
Translated using Weblate (Arabic)
Currently translated at 53.6% (865 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-15 14:22:09 +02:00
Giovi
8268a28997
Translated using Weblate (Italian)
Currently translated at 38.0% (145 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/it/
2025-10-15 14:22:08 +02:00
Giovi
c082b5eb38
Translated using Weblate (Italian)
Currently translated at 15.3% (248 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-10-15 14:22:08 +02:00
Adorian Doran
46901cf3fb style/canvas: improve context menus 2025-10-15 13:10:23 +03:00
Adorian Doran
93af4f24e5 style/canvas: restyle context menus 2025-10-15 12:27:04 +03:00
Elian Doran
0cc05a8cba
chore(deps): update dependency @smithy/middleware-retry to v4.4.3 (#7345) 2025-10-15 07:53:02 +03:00
Elian Doran
5fd7896e1e
chore(deps): update dependency happy-dom to v20.0.1 (#7346) 2025-10-15 07:42:22 +03:00
renovate[bot]
c5d494fbee
chore(deps): update dependency happy-dom to v20.0.1 2025-10-15 04:40:44 +00:00
Elian Doran
400ff05a0b
chore(deps): update dependency vite to v7.1.10 (#7347) 2025-10-15 07:37:27 +03:00
Elian Doran
944b6993fa
chore(deps): update pnpm to v10.18.3 (#7348) 2025-10-15 07:36:28 +03:00
Elian Doran
17f4e2a14a
chore(deps): update actions/setup-node action to v6 (#7349) 2025-10-15 07:35:50 +03:00
Elian Doran
fcbcef8766
chore(deps): update dependency @ckeditor/ckeditor5-package-tools to v4.1.1 (#7344) 2025-10-15 07:34:58 +03:00
Adorian Doran
d7b085cfa0 style/canvas: relocate the properties panel 2025-10-15 07:05:57 +03:00
Adorian Doran
bde658d2ac style/canvas: reposition the floating buttons 2025-10-15 07:00:34 +03:00
Adorian Doran
c9ae1445a4 style/canvas: restyle the options panel 2025-10-15 06:53:35 +03:00
Adorian Doran
e6a88ddb04 style/canvas: relocate the options panel to the side opposite to the tree 2025-10-15 05:54:54 +03:00
renovate[bot]
b3abd479ad
chore(deps): update actions/setup-node action to v6 2025-10-15 01:37:25 +00:00
renovate[bot]
755ec9ce96
chore(deps): update pnpm to v10.18.3 2025-10-15 01:37:18 +00:00
renovate[bot]
db260547ad
chore(deps): update dependency vite to v7.1.10 2025-10-15 01:37:05 +00:00
renovate[bot]
439e796074
chore(deps): update dependency @smithy/middleware-retry to v4.4.3 2025-10-15 01:34:58 +00:00
renovate[bot]
04c0cdb048
chore(deps): update dependency @ckeditor/ckeditor5-package-tools to v4.1.1 2025-10-15 01:34:13 +00:00
Adorian Doran
5951072f03 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/restyle-canvas 2025-10-14 22:24:53 +03:00
Adorian Doran
7b24f7f57d style/canvas: tweak the UI 2025-10-14 22:24:37 +03:00
Elian Doran
8ef88f5e83
chore(i18n): shorten name for English RTL 2025-10-14 18:54:49 +03:00
Elian Doran
a68e4bdbec
chore(ribbon): add an icon to "Configure languages" 2025-10-14 18:43:56 +03:00
Elian Doran
dd9d13b175
refactor(options/i18n): share locale selector with content language selector 2025-10-14 18:42:20 +03:00
Elian Doran
5693b59318
chore(options/i18n): fix click on label not working on select 2025-10-14 18:15:45 +03:00
Elian Doran
0c2b186e50
refactor(options/i18n): use select for language selection 2025-10-14 18:11:42 +03:00
Elian Doran
1cc0e686ea
fix(client/rtl): bad alignment of launcher container if no scroll 2025-10-14 17:53:33 +03:00
Elian Doran
fa017fde62
fix(desktop/rtl): native buttons overlapping on darwin 2025-10-14 17:31:52 +03:00
Elian Doran
067383a87d
fix(desktop): window button alignment not corresponding OK if formatting locale is different 2025-10-14 15:04:07 +03:00
Elian Doran
7e871c3b04
feat(i18n): enable Arabic as UI language 2025-10-14 14:50:00 +03:00
Elian Doran
e0ef8bf1aa
Translations update from Hosted Weblate (#7314) 2025-10-14 14:36:13 +03:00
Hosted Weblate
3c1f7baaae
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-14 11:25:18 +00:00
Hosted Weblate
e992744101
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-14 11:25:09 +00:00
Patric Siesing
f29b50ae41
Translated using Weblate (Swedish)
Currently translated at 2.0% (3 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/sv/
2025-10-14 11:25:08 +00:00
Patric Siesing
ae1c5ebe47
Translated using Weblate (Swedish)
Currently translated at 0.7% (3 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/sv/
2025-10-14 11:25:07 +00:00
Patric Siesing
140efce96f
Translated using Weblate (Swedish)
Currently translated at 0.2% (4 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/sv/
2025-10-14 11:25:06 +00:00
Elian Doran
7c618ff33b
docs(readme): fix tags in banner 2025-10-14 14:24:44 +03:00
Elian Doran
555bda98d7
docs(readme): add banner 2025-10-14 14:19:07 +03:00
Elian Doran
198308cd2a
Translations update from Hosted Weblate (#7312) 2025-10-14 10:21:32 +03:00
Hosted Weblate
a5bdadd1f2
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-14 09:18:01 +02:00
Elian Doran
c968c13ae4
Translations update from Hosted Weblate (#7311) 2025-10-14 10:17:47 +03:00
Patric Siesing
0022a135f6
Added translation using Weblate (Swedish) 2025-10-14 08:17:51 +02:00
Patric Siesing
893ab4539b
Added translation using Weblate (Swedish) 2025-10-14 08:17:50 +02:00
Patric Siesing
502c60884d
Added translation using Weblate (Swedish) 2025-10-14 08:17:49 +02:00
Patric Siesing
8788079599
Added translation using Weblate (Swedish) 2025-10-14 08:17:48 +02:00
Elian Doran
d5c0134897
Translated using Weblate (Romanian)
Currently translated at 95.2% (139 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ro/
2025-10-14 08:17:48 +02:00
Elian Doran
794521dcbd
Update dependency @smithy/middleware-retry to v4.4.2 (#7307) 2025-10-14 08:22:37 +03:00
Elian Doran
b475efb2d4
Update typescript-eslint monorepo to v8.46.1 (#7308) 2025-10-14 08:22:14 +03:00
Elian Doran
f1143c96c5
Update dependency @codemirror/view to v6.38.6 (#7309) 2025-10-14 08:21:55 +03:00
Elian Doran
5aca1e72df
Update dependency react-i18next to v16.0.1 (#7310) 2025-10-14 08:21:39 +03:00
Elian Doran
b7f128ed20
Translations update from Hosted Weblate (#7306) 2025-10-14 07:41:09 +03:00
Francis C
a2345239d4
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (146 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/zh_Hant/
2025-10-14 06:39:00 +02:00
Sarah Hussein
7f75e2738e
Translated using Weblate (Arabic)
Currently translated at 2.0% (3 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ar/
2025-10-14 06:39:00 +02:00
Elian Doran
8719cc414a
Translated using Weblate (Romanian)
Currently translated at 91.7% (134 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ro/
2025-10-14 06:38:59 +02:00
Francis C
32ea4844d2
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (115 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/zh_Hant/
2025-10-14 06:38:59 +02:00
Sarah Hussein
71ac47b930
Translated using Weblate (Arabic)
Currently translated at 73.2% (279 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ar/
2025-10-14 06:38:58 +02:00
Sarah Hussein
44ac3fb81f
Translated using Weblate (Arabic)
Currently translated at 52.2% (842 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-14 06:38:58 +02:00
Francis C
7e67cbdbc6
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1613 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-10-14 06:38:58 +02:00
renovate[bot]
c4ea93f663
fix(deps): update dependency react-i18next to v16.0.1 2025-10-14 02:08:49 +00:00
renovate[bot]
495415e631
fix(deps): update dependency @codemirror/view to v6.38.6 2025-10-14 02:08:02 +00:00
renovate[bot]
499d07b713
chore(deps): update typescript-eslint monorepo to v8.46.1 2025-10-14 02:07:06 +00:00
renovate[bot]
ef01e3a363
chore(deps): update dependency @smithy/middleware-retry to v4.4.2 2025-10-14 02:05:22 +00:00
Languages add-on
9cebae5fd9
Added translation using Weblate (md (generated) (md)) 2025-10-14 02:46:35 +02:00
Languages add-on
620748c7fc
Added translation using Weblate (Norwegian Bokmål) 2025-10-14 02:46:34 +02:00
Languages add-on
5cf3975686
Added translation using Weblate (Chinese (Simplified Han script)) 2025-10-14 02:46:34 +02:00
Languages add-on
4b054db235
Added translation using Weblate (Chinese (Traditional Han script)) 2025-10-14 02:46:33 +02:00
Languages add-on
fa66baa20b
Added translation using Weblate (Slovenian) 2025-10-14 02:46:32 +02:00
Languages add-on
fb78807a02
Added translation using Weblate (Korean) 2025-10-14 02:46:32 +02:00
Languages add-on
0ac4b87ffb
Added translation using Weblate (Serbian) 2025-10-14 02:46:31 +02:00
Languages add-on
3a406a0de0
Added translation using Weblate (Finnish) 2025-10-14 02:46:31 +02:00
Languages add-on
82f5fb3195
Added translation using Weblate (Persian) 2025-10-14 02:46:30 +02:00
Languages add-on
7ccf0428d6
Added translation using Weblate (French) 2025-10-14 02:46:29 +02:00
Languages add-on
fb2de3d149
Added translation using Weblate (Spanish) 2025-10-14 02:46:29 +02:00
Languages add-on
754c2980f8
Added translation using Weblate (Dutch) 2025-10-14 02:46:28 +02:00
Languages add-on
f89b1bd2e4
Added translation using Weblate (Indonesian) 2025-10-14 02:46:27 +02:00
Languages add-on
9bc91b31d3
Added translation using Weblate (Arabic) 2025-10-14 02:46:27 +02:00
Languages add-on
08efa10f95
Added translation using Weblate (Italian) 2025-10-14 02:46:26 +02:00
Languages add-on
6aa21397e0
Added translation using Weblate (Polish) 2025-10-14 02:46:25 +02:00
Languages add-on
b98bde5eed
Added translation using Weblate (Hungarian) 2025-10-14 02:46:25 +02:00
Languages add-on
a9def845df
Added translation using Weblate (Croatian) 2025-10-14 02:46:24 +02:00
Languages add-on
bf6d0e128f
Added translation using Weblate (Vietnamese) 2025-10-14 02:46:24 +02:00
Languages add-on
ccd4bf553b
Added translation using Weblate (Portuguese) 2025-10-14 02:46:23 +02:00
Languages add-on
f83ce81cc8
Added translation using Weblate (Czech) 2025-10-14 02:46:22 +02:00
Languages add-on
b1715b60fb
Added translation using Weblate (Catalan) 2025-10-14 02:46:21 +02:00
Languages add-on
0b7e8e8efc
Added translation using Weblate (Japanese) 2025-10-14 02:46:21 +02:00
Languages add-on
6b7c71ba18
Added translation using Weblate (Ukrainian) 2025-10-14 02:46:20 +02:00
Languages add-on
a072920f80
Added translation using Weblate (Russian) 2025-10-14 02:46:20 +02:00
Languages add-on
2ffda9e8ef
Added translation using Weblate (Greek) 2025-10-14 02:46:19 +02:00
Languages add-on
04c4257dee
Added translation using Weblate (German) 2025-10-14 02:46:18 +02:00
Languages add-on
e892b79f10
Added translation using Weblate (Portuguese (Brazil)) 2025-10-14 02:46:18 +02:00
Languages add-on
ab98e86fde
Added translation using Weblate (Turkish) 2025-10-14 02:46:17 +02:00
renato rinaldi
cce927b6ec
Translated using Weblate (Italian)
Currently translated at 13.7% (221 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-10-14 02:46:17 +02:00
Elian Doran
c7a9e585f8
Translated using Weblate (Romanian)
Currently translated at 91.7% (134 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ro/
2025-10-14 02:46:16 +02:00
Elian Doran
7a44bdbe87
Translated using Weblate (Romanian)
Currently translated at 48.6% (71 of 146 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ro/
2025-10-14 02:46:15 +02:00
Elian Doran
5c51891959
Translated using Weblate (Romanian)
Currently translated at 28.1% (43 of 153 strings)

Translation: Trilium Notes/Website
Translate-URL: https://hosted.weblate.org/projects/trilium/website/ro/
2025-10-14 02:46:15 +02:00
Elian Doran
b003033f87
Added translation using Weblate (Romanian) 2025-10-14 02:46:14 +02:00
Adorian Doran
d87f626975 style/tree: improve icon alignment 2025-10-14 01:09:34 +03:00
Adorian Doran
8d3c64dc54 style/launcher/left pane toggle button arrow: fix the transform property being overidden 2025-10-14 00:41:21 +03:00
Adorian Doran
86bc4a6046 Fix #7230 2025-10-14 00:31:02 +03:00
Adorian Doran
fcc2e00f03 style/admonitions: add background color 2025-10-14 00:15:52 +03:00
Adorian Doran
a68f351797 style/launcher: fix arrow rotation on the legacy theme 2025-10-13 22:17:46 +03:00
Adorian Doran
a95a2ea7dc style/launcher: tweak (again) the left pane toggle button 2025-10-13 22:09:56 +03:00
Adorian Doran
fba51f2cd0 style/launcher: tweak the left pane toggle button 2025-10-13 22:07:05 +03:00
Adorian Doran
6fd37c4c8d style/global menu: tweak the update available indicators 2025-10-13 20:18:04 +03:00
Elian Doran
2ef4aeb884
chore(website/i18n): remove unnecessary translations 2025-10-13 20:08:34 +03:00
Elian Doran
016ba1e617
Add translation support for the website (#7277) 2025-10-13 19:49:27 +03:00
Elian Doran
51b00a5407
chore(website/i18n): address requested changes 2025-10-13 19:42:22 +03:00
Elian Doran
c28cf4da16
chore(website/i18n): fix typecheck issue 2025-10-13 19:33:50 +03:00
Elian Doran
2b915a1217
feat(website/i18n): translate download options 2025-10-13 19:22:14 +03:00
Elian Doran
d978c38b80
feat(website/i18n): translate 404 2025-10-13 19:05:05 +03:00
Elian Doran
b129349236
feat(website/i18n): translate support us 2025-10-13 19:03:56 +03:00
Elian Doran
d20ebd6b2d
chore(vscode): support <Trans> syntax for i18n-ally 2025-10-13 19:01:12 +03:00
Elian Doran
b9e1b46884
chore(website/i18n): few translations in support us 2025-10-13 18:42:15 +03:00
Elian Doran
828ad79de2
fix(website/i18n): missing msgid 2025-10-13 18:36:10 +03:00
Elian Doran
d45e3a7a43
Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-10-13 18:33:02 +03:00
Elian Doran
296b63d855
docs(user): mention reverse proxy config (closes #4910) 2025-10-13 18:32:02 +03:00
Elian Doran
1fb95c5128
Translations update from Hosted Weblate (#7305) 2025-10-13 17:54:34 +03:00
Adhe Kurniawan
3b5c253672
Translated using Weblate (Indonesian)
Currently translated at 21.5% (82 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/id/
2025-10-13 16:52:02 +02:00
Adhe Kurniawan
3dcd176f35
Translated using Weblate (Indonesian)
Currently translated at 1.1% (18 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/id/
2025-10-13 16:52:01 +02:00
Sarah Hussein
e4d673e14e
Translated using Weblate (Arabic)
Currently translated at 51.2% (826 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-13 16:52:01 +02:00
minkipark
38c9b64bec
Translated using Weblate (Korean)
Currently translated at 2.3% (38 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ko/
2025-10-13 16:52:00 +02:00
Harun Çevik
fd11b34fe1
Translated using Weblate (Turkish)
Currently translated at 0.5% (2 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/tr/
2025-10-13 16:51:59 +02:00
Hosted Weblate
4f568d2870
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-13 16:51:59 +02:00
Elian Doran
36f5060855
chore(ci): revert changes breaking the workflows 2025-10-13 17:51:50 +03:00
Elian Doran
5071f61174
docs(user): using desktop application as server (closes #6431) 2025-10-13 17:50:37 +03:00
Elian Doran
985a54edd1
docs(user): exporting a ZIP using curl & ETAPI (closes #4958) 2025-10-13 17:27:43 +03:00
Elian Doran
8c1914359a
docs(user): minor tweaks to TLS installation 2025-10-13 17:23:48 +03:00
Elian Doran
ef225704c3
docs(user): sync & update a reference to Docker image 2025-10-13 16:57:40 +03:00
Elian Doran
1d95205503
fix(collections/list): children are displayed twice for empty notes (closes #7301) 2025-10-13 13:12:00 +03:00
Elian Doran
6d5ff42225
Translations update from Hosted Weblate (#7296) 2025-10-13 08:22:49 +03:00
Hosted Weblate
41e395f1d7
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-13 07:17:52 +02:00
Elian Doran
901bbfeeaf
fix(deps): update dependency katex to v0.16.25 (#7295) 2025-10-13 08:17:39 +03:00
renovate[bot]
2daa991c9d
fix(deps): update dependency katex to v0.16.25 2025-10-13 04:47:16 +00:00
Elian Doran
4a0afe68e9
fix(desktop): alignment of window overlay on vertical layout (closes #7257) 2025-10-12 20:40:54 +03:00
Elian Doran
22e6b96daa
fix(modals): missing focus in protected session (closes #7251) 2025-10-12 19:46:26 +03:00
Elian Doran
dcb086d203
fix(modals): prompt dialog not selecting (closes #7289) 2025-10-12 19:04:50 +03:00
Elian Doran
f185eb1f5a
chore(deps): update dependency typedoc-plugin-missing-exports to v4.1.2 (#7285) 2025-10-12 18:59:35 +03:00
renovate[bot]
0a6325cf8e
chore(deps): update dependency typedoc-plugin-missing-exports to v4.1.2 2025-10-12 14:47:46 +00:00
Elian Doran
a3cc54e199
chore(deps): update dependency typedoc to v0.28.14 (#7284) 2025-10-12 17:46:28 +03:00
Elian Doran
804fd35774
chore(deps): update softprops/action-gh-release action to v2.4.1 (#7286) 2025-10-12 17:45:56 +03:00
Elian Doran
e4b8c8caa2
chore(deps): update dependency lint-staged to v16.2.4 (#7283) 2025-10-12 17:45:33 +03:00
Elian Doran
5c2f5e92eb
chore(deps): update dependency @types/node to v22.18.10 (#7282) 2025-10-12 17:45:14 +03:00
Elian Doran
76ad386c70
chore(deps): update dependency @types/leaflet to v1.9.21 (#7281) 2025-10-12 08:18:47 +03:00
Elian Doran
c6b2044492
Translations update from Hosted Weblate (#7280) 2025-10-12 08:18:19 +03:00
renovate[bot]
4a953fad72
chore(deps): update softprops/action-gh-release action to v2.4.1 2025-10-12 01:45:40 +00:00
renovate[bot]
f06d8f27a1
chore(deps): update dependency typedoc to v0.28.14 2025-10-12 01:45:30 +00:00
renovate[bot]
ffd4201a73
chore(deps): update dependency lint-staged to v16.2.4 2025-10-12 01:45:24 +00:00
renovate[bot]
bc529e7089
chore(deps): update dependency @types/node to v22.18.10 2025-10-12 01:44:28 +00:00
renovate[bot]
f143cac61e
chore(deps): update dependency @types/leaflet to v1.9.21 2025-10-12 01:43:32 +00:00
AndreR
e7657d4eb1
Translated using Weblate (German)
Currently translated at 9.5% (11 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/de/
2025-10-12 00:08:09 +02:00
Sarah Hussein
b6ad98e9ff
Translated using Weblate (Arabic)
Currently translated at 69.5% (265 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ar/
2025-10-12 00:08:08 +02:00
Sarah Hussein
128120ad12
Translated using Weblate (Arabic)
Currently translated at 50.0% (807 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-12 00:08:08 +02:00
green
efa8fef4cf
Translated using Weblate (Japanese)
Currently translated at 100.0% (1613 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-12 00:08:07 +02:00
CactusTrebleFraming
f5db38950a
Translated using Weblate (French)
Currently translated at 85.5% (1380 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/fr/
2025-10-12 00:08:07 +02:00
Newcomer1989
d187da46a0
Translated using Weblate (German)
Currently translated at 100.0% (1613 of 1613 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-10-12 00:08:07 +02:00
Elian Doran
fb2afb5794
feat(website/i18n): translate footer 2025-10-11 22:45:37 +03:00
Elian Doran
6fe261836e
feat(website/i18n): translate download button 2025-10-11 22:35:31 +03:00
Elian Doran
fc9f2bceb0
feat(website/i18n): translate final call-to-action 2025-10-11 22:27:15 +03:00
Elian Doran
ce88afee1b
feat(website/i18n): translate FAQ section 2025-10-11 22:26:10 +03:00
Elian Doran
07eb3f64e3
feat(website/i18n): translate collections 2025-10-11 22:19:08 +03:00
Elian Doran
e32ba61a3c
feat(website/i18n): translate extensibility benefits 2025-10-11 22:16:01 +03:00
Elian Doran
43e66fa4a6
Translations update from Hosted Weblate (#7276) 2025-10-11 22:10:07 +03:00
Elian Doran
ee9de82203
feat(website/i18n): translate note types 2025-10-11 22:08:53 +03:00
Hosted Weblate
df3baf1a67
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-11 19:01:58 +00:00
Elian Doran
6968d213bd
Translations update from Hosted Weblate (#7275) 2025-10-11 22:01:42 +03:00
Elian Doran
ffaa011c3e
feat(website/i18n): translate first three sections in the home page 2025-10-11 21:00:03 +03:00
Elian Doran
d56debaa9f
feat(website/i18n): use translations in get-started 2025-10-11 20:46:41 +03:00
Elian Doran
2c71e995f2
feat(website/i18n): set up 2025-10-11 20:46:29 +03:00
Hosted Weblate
4da47979d1
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-11 19:02:49 +02:00
Elian Doran
2751aecab9
fix(deps): update dependency i18next to v25.6.0 (#7273) 2025-10-11 20:02:32 +03:00
renovate[bot]
1dccb6da31
fix(deps): update dependency i18next to v25.6.0 2025-10-11 01:31:47 +00:00
Elian Doran
bca0846565
Merge remote-tracking branch 'origin/main' into react/type_widgets 2025-10-10 23:05:45 +03:00
Elian Doran
8557bad242
chore(docs): bring back relation map updates 2025-10-10 22:58:38 +03:00
Elian Doran
8fef28dcc7
chore(docs): revert changes to documentation 2025-10-10 22:48:20 +03:00
Elian Doran
040ffe945a
Merge remote-tracking branch 'origin/main' into react/type_widgets 2025-10-10 22:46:53 +03:00
perf3ct
4fa4112840
feat(search): also support the use of ="exact match search string" 2025-10-10 12:23:57 -07:00
Elian Doran
f43dfc23c0
Translations update from Hosted Weblate (#7269) 2025-10-10 22:22:13 +03:00
D Walterfang
e2984ec2ab
Translated using Weblate (Dutch)
Currently translated at 13.0% (15 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/nl/
2025-10-10 21:14:10 +02:00
Sarah Hussein
2e14d73c5b
Translated using Weblate (Arabic)
Currently translated at 17.3% (20 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ar/
2025-10-10 21:14:10 +02:00
Sarah Hussein
1afd00f7e8
Translated using Weblate (Arabic)
Currently translated at 51.1% (195 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ar/
2025-10-10 21:14:10 +02:00
Sarah Hussein
23f5f57c92
Translated using Weblate (Arabic)
Currently translated at 39.5% (636 of 1608 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-10 21:14:10 +02:00
Elian Doran
d80d637cc2
Allow any date for first day of the week (#7244) 2025-10-10 22:14:04 +03:00
perf3ct
50f0b88eff
fix(search): resolve issue when using = operator in search 2025-10-10 09:51:52 -07:00
Jakob Schlanstedt
b25ab3a988 fix(calendar): sunday ISO dayjs mismatch 2025-10-10 15:42:16 +02:00
Jakob Schlanstedt
62e978068a feat(calendar.ts): optimize getWeekNumber by using isoWeek 2025-10-10 15:42:16 +02:00
Jakob Schlanstedt
89879a6851 feat(First-day-of-the-week and date-notes)!: make any day configurable to become first day of the week and make date-notes ISO 8601-compliant
Section 4.1.4.1 ISO 8601-1
https://www.loc.gov/standards/datetime/iso-tc154-wg5_n0038_iso_wd_8601-1_2016-02-16.pdf
2025-10-10 15:42:16 +02:00
Elian Doran
e1a0452448
chore(deps): update electron-forge monorepo to v7.10.2 (#7253) 2025-10-10 14:55:59 +03:00
Elian Doran
c9f7d2a457
Translations update from Hosted Weblate (#7259) 2025-10-10 14:55:44 +03:00
Le Viet Dat
fd71a90a8e
Translated using Weblate (Vietnamese)
Currently translated at 53.9% (62 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/vi/
2025-10-10 13:01:16 +02:00
Sarah Hussein
f06d6a4e92
Translated using Weblate (Arabic)
Currently translated at 50.9% (194 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ar/
2025-10-10 13:01:16 +02:00
Sarah Hussein
6bb98c3eae
Translated using Weblate (Arabic)
Currently translated at 29.9% (481 of 1608 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-10 13:01:15 +02:00
renovate[bot]
cf21706f26
chore(deps): update electron-forge monorepo to v7.10.2 2025-10-10 07:28:10 +00:00
Hosted Weblate
d0fbda50fc
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-10 09:26:07 +02:00
Elian Doran
9abef88177
Translations update from Hosted Weblate (#7249) 2025-10-10 10:25:56 +03:00
Elian Doran
1a94e9637d
Translated using Weblate (Arabic)
Currently translated at 13.0% (15 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ar/
2025-10-10 09:23:13 +02:00
Le Viet Dat
e15ff806e5
Translated using Weblate (Vietnamese)
Currently translated at 46.0% (53 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/vi/
2025-10-10 09:23:11 +02:00
Sarah Hussein
7b01165970
Translated using Weblate (Arabic)
Currently translated at 45.4% (173 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ar/
2025-10-10 09:23:11 +02:00
Sarah Hussein
fc3cc6ffec
Translated using Weblate (Arabic)
Currently translated at 19.9% (320 of 1608 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-10 09:23:10 +02:00
Le Viet Dat
6d99ccefdb
Translated using Weblate (Vietnamese)
Currently translated at 7.8% (9 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/vi/
2025-10-10 07:34:38 +02:00
Hosted Weblate
b055c7e2ef
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-10 07:34:37 +02:00
Le Viet Dat
e488845d29
Translated using Weblate (Vietnamese)
Currently translated at 3.4% (4 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/vi/
2025-10-10 07:34:36 +02:00
Sarah Hussein
fcd71052c5
Translated using Weblate (Arabic)
Currently translated at 13.0% (15 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ar/
2025-10-10 07:34:36 +02:00
Le Viet Dat
b465336d0a
Translated using Weblate (Vietnamese)
Currently translated at 2.6% (3 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/vi/
2025-10-10 07:34:35 +02:00
Sarah Hussein
23e4fef078
Translated using Weblate (Arabic)
Currently translated at 35.9% (137 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ar/
2025-10-10 07:34:35 +02:00
Sarah Hussein
32f360979c
Translated using Weblate (Arabic)
Currently translated at 19.0% (306 of 1608 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-10 07:34:34 +02:00
Le Viet Dat
c1cc187a88
Translated using Weblate (Vietnamese)
Currently translated at 0.7% (3 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/vi/
2025-10-10 07:34:34 +02:00
green
f7dbcfb77a
Translated using Weblate (Japanese)
Currently translated at 100.0% (1608 of 1608 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-10 07:34:33 +02:00
Sarah Hussein
52916a8bbb
Translated using Weblate (Arabic)
Currently translated at 17.6% (284 of 1606 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-10 07:34:32 +02:00
Sarah Hussein
c8e311744a
Translated using Weblate (Arabic)
Currently translated at 17.5% (282 of 1606 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-10 07:34:32 +02:00
Sarah Hussein
b87f0c1a57
Translated using Weblate (Arabic)
Currently translated at 16.9% (272 of 1606 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-10 07:34:31 +02:00
Elian Doran
3ebb4c3c9c
chore(deps): update dependency @types/node to v22.18.9 (#7252) 2025-10-10 08:34:23 +03:00
renovate[bot]
10350b1a42
chore(deps): update dependency @types/node to v22.18.9 2025-10-10 05:30:25 +00:00
Elian Doran
a5beb2ae41
chore(deps): update pnpm to v10.18.2 (#7254) 2025-10-10 08:29:36 +03:00
Elian Doran
b081d3fb2d
chore(deps): update dependency openai to v6.3.0 (#7255) 2025-10-10 08:28:59 +03:00
Elian Doran
7bc4c530e8
chore(deps): update dependency happy-dom to v20 (#7256) 2025-10-10 08:28:25 +03:00
renovate[bot]
1002f01e57
chore(deps): update dependency happy-dom to v20 2025-10-10 01:34:28 +00:00
renovate[bot]
f9bcc99bf9
chore(deps): update dependency openai to v6.3.0 2025-10-10 01:33:47 +00:00
renovate[bot]
2956c97983
chore(deps): update pnpm to v10.18.2 2025-10-10 01:33:05 +00:00
Elian Doran
8bf9544bea
Improved right-to-left support (#7227) 2025-10-09 21:22:33 +03:00
Elian Doran
4ea2fdf471
chore(server): hide body in set_password and setup too 2025-10-09 21:02:18 +03:00
Elian Doran
492f481999
chore(rtl): address 2nd set of requested changes 2025-10-09 20:48:30 +03:00
Elian Doran
00b215c093
chore(rtl): address requested changes 2025-10-09 20:46:10 +03:00
Elian Doran
b84010318d
fix(server): RTL not reported correctly to JS 2025-10-09 19:44:22 +03:00
Elian Doran
63a08c4bd3
fix(login): failure to load if password was failed 2025-10-09 19:33:21 +03:00
Elian Doran
b34fbff6d1
test(server): failing i18n test due to dev language 2025-10-09 19:30:55 +03:00
Elian Doran
e08a9e1915
chore(client): add Arabic to full calendar 2025-10-09 19:28:05 +03:00
Elian Doran
519ada3a48
refactor(server): loading runtime JS as early as possible 2025-10-09 19:18:28 +03:00
Elian Doran
90524d99dc
refactor(server): remove template-level loading of bootstrap 2025-10-09 19:16:12 +03:00
Elian Doran
2936a537cf
feat(rtl): apply same mechanism for login/desktop/mobile 2025-10-09 19:12:46 +03:00
Elian Doran
6f51d82f82
fix(login): layout shift due to bootstrap loading later 2025-10-09 18:59:38 +03:00
Elian Doran
ea4fe3f290
feat(i18n): add an option to automatically match formatting locale to set locale 2025-10-09 18:54:55 +03:00
Elian Doran
6d9bdd5c6f
feat(client/rtl): support formatting locale for Arabic 2025-10-09 18:47:10 +03:00
Elian Doran
3c2642e822
feat(client/i18n): enable formatting locale on browser as well & use for date formatting 2025-10-09 18:44:35 +03:00
Elian Doran
f4df7c1eec
feat(client/rtl): improve alignment of the attribute editor 2025-10-09 18:34:32 +03:00
Elian Doran
74d7191222
chore(client/rtl): fix alignment of global menu in horizontal layout 2025-10-09 17:57:58 +03:00
Elian Doran
2c71a56324
chore(client/rtl): revert dropdown arrow 2025-10-09 17:55:17 +03:00
Elian Doran
3ab8627db8
feat(client/rtl): enable Arabic as dev-only language for now 2025-10-09 17:55:05 +03:00
Elian Doran
9d7c513fb7
Merge remote-tracking branch 'origin/main' into feature/rtl_ui 2025-10-09 17:46:26 +03:00
Elian Doran
f880aa769c
fix(client/rtl): wrong order of tabs 2025-10-09 17:45:48 +03:00
Elian Doran
c64e695036
chore(deps): update dependency python to 3.14 (#7237) 2025-10-09 16:18:32 +03:00
Elian Doran
a500dc9067
fix(deps): update dependency @codemirror/view to v6.38.5 (#7236) 2025-10-09 16:18:17 +03:00
Elian Doran
08d6a49cb6
chore(deps): update dependency rollup-plugin-webpack-stats to v2.1.6 (#7235) 2025-10-09 16:17:58 +03:00
Elian Doran
315f8b4503
chore(deps): update dependency jsdoc to v4.0.5 (#7234) 2025-10-09 16:17:44 +03:00
Elian Doran
9dc4de1366
chore(deps): update electron-forge monorepo to v7.10.0 (#7238) 2025-10-09 16:13:31 +03:00
Elian Doran
a22796397a
chore(deps): update softprops/action-gh-release action to v2.4.0 (#7239) 2025-10-09 16:10:56 +03:00
Elian Doran
372297f829
fix(deps): update dependency marked to v16.4.0 (#7240) 2025-10-09 16:10:27 +03:00
Elian Doran
f0908045f1
fix(deps): update dependency mind-elixir to v5.3.2 (#7241) 2025-10-09 16:10:00 +03:00
Elian Doran
b431a70792
chore(deps): update dependency eslint-plugin-react-hooks to v7 (#7242) 2025-10-09 16:09:33 +03:00
Elian Doran
c14cdb618b
chore(deps): update github/codeql-action action to v4 (#7243) 2025-10-09 16:08:55 +03:00
renovate[bot]
f596080d06
chore(deps): update electron-forge monorepo to v7.10.0 2025-10-09 11:42:00 +00:00
Elian Doran
c88f03f4fd
chore(deps): update dependency electron to v38.2.2 (#7233) 2025-10-09 14:39:47 +03:00
Elian Doran
8ca65edc70
chore(deps): update dependency @smithy/middleware-retry to v4.4.1 (#7232) 2025-10-09 14:38:36 +03:00
Elian Doran
5131c1d72c
Translations update from Hosted Weblate (#7245) 2025-10-09 13:49:30 +03:00
Elian Doran
8fab4dd94d
chore(ci): use different check 2025-10-09 13:34:06 +03:00
renovate[bot]
583c488b96
chore(deps): update github/codeql-action action to v4 2025-10-09 10:18:30 +00:00
renovate[bot]
d16598c03d
chore(deps): update dependency eslint-plugin-react-hooks to v7 2025-10-09 10:18:26 +00:00
renovate[bot]
e6e8cdcec1
fix(deps): update dependency mind-elixir to v5.3.2 2025-10-09 10:17:44 +00:00
renovate[bot]
7561bd471b
fix(deps): update dependency marked to v16.4.0 2025-10-09 10:17:03 +00:00
renovate[bot]
b9cc8015fe
chore(deps): update softprops/action-gh-release action to v2.4.0 2025-10-09 10:16:24 +00:00
renovate[bot]
853be9000b
chore(deps): update dependency python to 3.14 2025-10-09 10:15:32 +00:00
renovate[bot]
9a7638cc73
fix(deps): update dependency @codemirror/view to v6.38.5 2025-10-09 10:15:28 +00:00
renovate[bot]
10448a9f36
chore(deps): update dependency rollup-plugin-webpack-stats to v2.1.6 2025-10-09 10:14:36 +00:00
renovate[bot]
360a7f530d
chore(deps): update dependency jsdoc to v4.0.5 2025-10-09 10:13:44 +00:00
renovate[bot]
f457dbf7d4
chore(deps): update dependency electron to v38.2.2 2025-10-09 10:13:39 +00:00
renovate[bot]
3f6d93230e
chore(deps): update dependency @smithy/middleware-retry to v4.4.1 2025-10-09 10:12:43 +00:00
Sarah Hussein
1b2be2c345
Translated using Weblate (Arabic)
Currently translated at 12.1% (14 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ar/
2025-10-09 11:51:32 +02:00
Sarah Hussein
6d1faac772
Translated using Weblate (Arabic)
Currently translated at 14.2% (229 of 1606 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-09 11:51:31 +02:00
Adhe Kurniawan
a9fe48aa0a
Translated using Weblate (Indonesian)
Currently translated at 1.0% (4 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/id/
2025-10-09 11:51:31 +02:00
Adhe Kurniawan
e2e58fee56
Translated using Weblate (Indonesian)
Currently translated at 11.3% (13 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/id/
2025-10-09 11:51:30 +02:00
Adhe Kurniawan
95ac70518b
Translated using Weblate (Indonesian)
Currently translated at 0.2% (4 of 1606 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/id/
2025-10-09 11:51:29 +02:00
green
e95949e4d6
Translated using Weblate (Japanese)
Currently translated at 100.0% (1606 of 1606 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-09 11:51:29 +02:00
Adhe Kurniawan
ae87b9e027
Added translation using Weblate (Indonesian) 2025-10-09 11:51:28 +02:00
Adhe Kurniawan
fe4e5286f7
Added translation using Weblate (Indonesian) 2025-10-09 11:51:27 +02:00
Adhe Kurniawan
b43a5252b1
Added translation using Weblate (Indonesian) 2025-10-09 11:51:27 +02:00
green
a732487e7f
Translated using Weblate (Japanese)
Currently translated at 100.0% (115 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ja/
2025-10-09 11:51:26 +02:00
Sarah Hussein
112b847869
Translated using Weblate (Arabic)
Currently translated at 29.9% (114 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ar/
2025-10-09 11:51:26 +02:00
Sarah Hussein
2fdcbc4726
Translated using Weblate (Arabic)
Currently translated at 12.8% (207 of 1606 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-09 11:51:25 +02:00
green
e9aa215b95
Translated using Weblate (Japanese)
Currently translated at 100.0% (1606 of 1606 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-09 11:51:24 +02:00
Elian Doran
6b6322798e
test(server): protected session timeout crashing on LLM tests 2025-10-09 12:51:11 +03:00
Elian Doran
a8011e4755
refactor(server): fix a few cyclic dependencies regarding protected_session 2025-10-09 12:43:38 +03:00
Elian Doran
b2fcf5fa6c
test(server): tests failing due to CLS and lack of content 2025-10-09 12:18:39 +03:00
Elian Doran
8ac0425ca5
chore(llm): try to fix flaky test 2025-10-09 10:40:35 +03:00
Elian Doran
f9a841245c
fix(client/rtl): mobile detail menu appearing on the wrong side 2025-10-08 22:26:43 +03:00
Elian Doran
a377a0ef15
chore(i18n): translate a missing string 2025-10-08 22:24:45 +03:00
Elian Doran
ea3cf8078e
fix(client/rtl): initial drag of mobile tree not working 2025-10-08 22:13:52 +03:00
Elian Doran
13d2721696
chore(client/rtl): normalize values between RTL and LTR 2025-10-08 22:03:56 +03:00
Elian Doran
b8f0fc722c
chore(client/rtl): use different mechanism for calculating drag state 2025-10-08 21:54:39 +03:00
Elian Doran
3e54e0fc42
fix(client/rtl): sidebar not draggable 2025-10-08 21:46:26 +03:00
Elian Doran
06d87dc94b
fix(client/rtl): sidebar always displayed on mobile 2025-10-08 21:41:48 +03:00
Elian Doran
d35f97d99a
feat(client/rtl): hide English RTL from production 2025-10-08 21:35:57 +03:00
Elian Doran
c4358d52d5
fix(server): crash in prod due to RTL 2025-10-08 21:28:41 +03:00
Elian Doran
b8ffb004ce
fix(client/rtl): minor padding issue 2025-10-08 21:09:49 +03:00
Elian Doran
3a3cb0c68d
Translations update from Hosted Weblate (#7223) 2025-10-08 21:03:38 +03:00
Elian Doran
d98e6fe88a
Translated using Weblate (Arabic)
Currently translated at 8.6% (10 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ar/
2025-10-08 20:02:22 +02:00
Elian Doran
b5f73874cb
fix(client/rtl): tooltips not inverted 2025-10-08 19:06:19 +03:00
Elian Doran
9d1e89268f
fix(client/rtl): bootstrap not in RTL mode 2025-10-08 18:50:27 +03:00
Elian Doran
d9bfa08672
fix(client/rtl): right positioning not adjusted 2025-10-08 18:36:10 +03:00
Elian Doran
8a8727e6df
fix(client/rtl): toggling not working 2025-10-08 18:24:01 +03:00
Elian Doran
d19d05ec7b
fix(client/rtl): select arrow in wrong position 2025-10-08 18:20:45 +03:00
Elian Doran
b0bb93975a
fix(client/rtl): toggle buttons out of bounds 2025-10-08 18:14:35 +03:00
Elian Doran
09c5686cb7
fix(client/rtl): floating buttons on the wrong side 2025-10-08 18:12:06 +03:00
Elian Doran
42b1dcebcd
feat(client/rtl): set lang to body as well 2025-10-08 18:04:57 +03:00
Elian Doran
1e78dd8296
fix(client/rtl): tree chevron in the wrong direction 2025-10-08 18:03:48 +03:00
Elian Doran
3d9861f904
feat(client/rtl): handle transform 2025-10-08 17:58:38 +03:00
Elian Doran
668e1dff4b
feat(client/rtl): handle transform-origin 2025-10-08 17:56:39 +03:00
Elian Doran
c91a03834d
feat(client/rtl): handle text-align 2025-10-08 17:54:40 +03:00
Elian Doran
20e293f5df
feat(client/rtl): handle float 2025-10-08 17:52:41 +03:00
Elian Doran
87fb3c1e82
feat(client/rtl): handle right 2025-10-08 17:51:58 +03:00
Elian Doran
db1bcfda45
feat(client/rtl): handle left 2025-10-08 17:50:54 +03:00
Elian Doran
a8e44afd6d
feat(client/rtl): handle border-right 2025-10-08 17:47:27 +03:00
Elian Doran
1b1bceebfe
feat(client/rtl): handle border-left 2025-10-08 17:46:59 +03:00
Elian Doran
6faccd3b14
feat(client/rtl): handle padding-right 2025-10-08 17:46:10 +03:00
Elian Doran
34117fa9ad
feat(client/rtl): handle padding-left 2025-10-08 17:45:58 +03:00
Elian Doran
6b93013674
feat(client/rtl): handle margin-right 2025-10-08 17:45:31 +03:00
Elian Doran
247ab1aec3
feat(client/rtl): handle margin-left 2025-10-08 17:44:17 +03:00
Elian Doran
adff36cf22
feat(i18n/rtl): apply right to left direction at root level 2025-10-08 12:08:39 +03:00
Elian Doran
034ac59c9a
feat(i18n/rtl): add an English with RTL enabled for testing 2025-10-08 11:51:14 +03:00
Hosted Weblate
80d805a807
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-08 10:44:04 +02:00
Kuzma Simonov
39ca136c5d
Translated using Weblate (Russian)
Currently translated at 22.6% (26 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ru/
2025-10-08 10:44:02 +02:00
Hosted Weblate
29dbfa6fc4
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-08 10:44:01 +02:00
Elian Doran
3e30870c87
feat(i18n): add Portuguese (Portugal) 2025-10-08 11:39:06 +03:00
Elian Doran
ee1a11975c
fix(board): keyboard overlay appears cut 2025-10-08 11:12:25 +03:00
Elian Doran
f0fc3e96ce
docs(readme): use formal GitHub account 2025-10-08 11:01:53 +03:00
Elian Doran
cd75ff9a8a
chore(ci): deploy website on release 2025-10-08 11:00:36 +03:00
Elian Doran
f196140210
chore(i18n): update available not translated 2025-10-08 10:46:19 +03:00
Elian Doran
a77c4e6dfa
Translations update from Hosted Weblate (#7221) 2025-10-08 07:46:28 +03:00
Sarah Hussein
1d4d193552
Translated using Weblate (Arabic)
Currently translated at 6.0% (7 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ar/
2025-10-08 00:01:23 +02:00
ssantos
3225f4c8f5
Translated using Weblate (Portuguese)
Currently translated at 97.3% (1563 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pt/
2025-10-08 00:01:20 +02:00
Sarah Hussein
800c4dc012
Translated using Weblate (Arabic)
Currently translated at 4.9% (19 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ar/
2025-10-08 00:01:19 +02:00
Sarah Hussein
d662882c03
Translated using Weblate (Arabic)
Currently translated at 1.0% (17 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-10-08 00:01:19 +02:00
Elian Doran
31c8e96d70
chore(forge): set wayland socket for flatpak build 2025-10-07 18:38:13 +03:00
Elian Doran
1191421388
fix(flake): bettersqlite3 dependency not build properly 2025-10-07 18:27:13 +03:00
Elian Doran
831a184c2a
test(server): try to use fake timers to avoid flaky test in the CI 2025-10-07 15:34:58 +03:00
Elian Doran
c671f91bca
test(server): fix test failures 2025-10-07 14:27:05 +03:00
Elian Doran
fa436c7ce6
test(server): switch to vmForks due to better error reporting 2025-10-07 14:25:58 +03:00
Elian Doran
d1367286c9
test(server): fix unrejected failure in test 2025-10-07 14:20:06 +03:00
Elian Doran
d10b0fa823
fix(hidden_subtree): builtin templates have #excludeFromNoteMap (closes #7187) 2025-10-07 12:20:29 +03:00
Elian Doran
545c8648b7
feat(demo): add a template with #excludeFromNoteMap (closes #3547) 2025-10-07 11:49:36 +03:00
Elian Doran
d6e9acc149
fix(ckeditor5-math): equation not maintaining styles (closes #7211) 2025-10-07 11:14:56 +03:00
Elian Doran
26e14aff7b
Translations update from Hosted Weblate (#7219) 2025-10-07 10:17:34 +03:00
Elian Doran
280ec5b406
Translated using Weblate (Portuguese)
Currently translated at 0.8% (1 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/pt/
2025-10-07 09:17:03 +02:00
Miguel Dias
26081ffd36
Translated using Weblate (Portuguese)
Currently translated at 0.1% (2 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pt/
2025-10-07 09:17:02 +02:00
Miguel Dias
f106cbf6c0
Translated using Weblate (Portuguese)
Currently translated at 99.7% (380 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/pt/
2025-10-07 09:17:02 +02:00
green
f3877a52ab
Translated using Weblate (Japanese)
Currently translated at 100.0% (1605 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-07 09:17:01 +02:00
Hosted Weblate
5becf60a63
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-07 09:17:00 +02:00
Elian Doran
2ea96dc8f8
Revert "fix(deps): update dependency mind-elixir to v5.3.1" (#7220) 2025-10-07 10:16:54 +03:00
Elian Doran
e48724662e
Revert "fix(deps): update dependency mind-elixir to v5.3.1" 2025-10-07 10:16:42 +03:00
Elian Doran
745ce7de76
fix(deps): update dependency mind-elixir to v5.3.1 (#7202) 2025-10-07 10:16:16 +03:00
Elian Doran
997217861c
chore(deps): update pnpm to v10.18.1 (#7212) 2025-10-07 10:15:49 +03:00
Elian Doran
44f8e8b833
chore(deps): update dependency @playwright/test to v1.56.0 (#7213) 2025-10-07 10:15:25 +03:00
Elian Doran
99e2b63ff0
chore(deps): update dependency @types/express-serve-static-core to v5.1.0 (#7214) 2025-10-07 10:15:08 +03:00
Elian Doran
0139d90ac7
chore(deps): update dependency openai to v6.2.0 (#7215) 2025-10-07 10:14:55 +03:00
Elian Doran
5b7484c27c
chore(deps): update typescript-eslint monorepo to v8.46.0 (#7216) 2025-10-07 10:14:46 +03:00
renovate[bot]
71e64be44c
fix(deps): update dependency mind-elixir to v5.3.1 2025-10-07 07:05:43 +00:00
renovate[bot]
639651329a
chore(deps): update typescript-eslint monorepo to v8.46.0 2025-10-07 07:04:54 +00:00
renovate[bot]
a7a0d3584a
chore(deps): update dependency openai to v6.2.0 2025-10-07 07:04:10 +00:00
renovate[bot]
f765441f1e
chore(deps): update dependency @types/express-serve-static-core to v5.1.0 2025-10-07 07:03:35 +00:00
renovate[bot]
10cd5bf130
chore(deps): update dependency @playwright/test to v1.56.0 2025-10-07 07:02:53 +00:00
renovate[bot]
d93c5dfeea
chore(deps): update pnpm to v10.18.1 2025-10-07 07:02:08 +00:00
Elian Doran
b58aac1298
fix(client): invalid import after moving protocol config 2025-10-07 09:59:33 +03:00
Elian Doran
d662718a4a
feat(client): allow opening obsidian: links (closes #7207) 2025-10-06 20:05:42 +03:00
Elian Doran
bebd3d430b
refactor(commons): deduplicate allowed protocols 2025-10-06 20:04:07 +03:00
Elian Doran
2fca995725
docs(guide): update html docs with sharing 2025-10-06 19:58:33 +03:00
Elian Doran
caa1ea12f1
feat: Add shareHtml relation for custom HTML snippets in shared pages (#7157) 2025-10-06 19:32:17 +03:00
Elian Doran
f25e4ea391
Translations update from Hosted Weblate (#7210) 2025-10-06 19:22:42 +03:00
Elian Doran
6c106300d4
chore(client): launch bar background affecting custom icons (closes #7147) 2025-10-06 19:18:47 +03:00
Hosted Weblate
05b433edb5
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-06 15:55:10 +00:00
Elian Doran
69a59f0935
fix(collections/list): not reacting to expand/collapse button (closes #7209) 2025-10-06 18:55:02 +03:00
Elian Doran
fa7575ed00
fix(collections/table): react to tree state changes (closes #7204) 2025-10-06 18:49:11 +03:00
Elian Doran
b2174549c7
chore(collections/table): avoid rendering if rows didn't load yet 2025-10-06 18:48:13 +03:00
Elian Doran
19f16274ab
Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-10-06 18:29:20 +03:00
Elian Doran
7f88ae5494
fix(mobile): formatting toolbar appears cut off (closes #7206) 2025-10-06 18:29:17 +03:00
Elian Doran
c820b5caa4
feat(collections/board): keep title of the column always visible 2025-10-06 18:10:54 +03:00
Elian Doran
b1638e1ffc
docs(collections/board): keyboard shortcuts 2025-10-06 18:02:45 +03:00
Elian Doran
f2e60f52d2
feat(collections/board): restore focus 2025-10-06 17:54:52 +03:00
Elian Doran
d845343e97
feat(collections/board): basic keyboard interaction 2025-10-06 17:48:08 +03:00
Elian Doran
ee2edc92e7
Translations update from Hosted Weblate (#7205) 2025-10-06 12:28:17 +03:00
green
332216f5f5
Translated using Weblate (Japanese)
Currently translated at 100.0% (115 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ja/
2025-10-06 11:27:05 +02:00
Elian Doran
4d4cd7d130
Translations update from Hosted Weblate (#7200) 2025-10-05 21:51:04 +03:00
AndreR
b3cc51ce63
Translated using Weblate (German)
Currently translated at 5.2% (6 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/de/
2025-10-05 20:32:49 +02:00
Elian Doran
05645d93ef
Translated using Weblate (Russian)
Currently translated at 21.7% (25 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ru/
2025-10-05 20:32:49 +02:00
green
a2d09efca4
Translated using Weblate (Japanese)
Currently translated at 60.0% (69 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ja/
2025-10-05 20:32:48 +02:00
Elian Doran
1212f9a9e9
Translated using Weblate (Italian)
Currently translated at 7.8% (9 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/it/
2025-10-05 20:32:48 +02:00
Elian Doran
75f7986e36
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 63.4% (73 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/zh_Hans/
2025-10-05 20:32:48 +02:00
Elian Doran
4997543fc7
doc(guide): interaction on relation map, including tree operation 2025-10-05 20:19:18 +03:00
Elian Doran
63c91b6741
Revert "fix(deps): downgrade mind-elixir (closes #7170)"
This reverts commit 5969815ed1e33e416815c908088b2325710b0e95.
2025-10-05 20:00:08 +03:00
Elian Doran
27b6e26fa5
Merge remote-tracking branch 'origin/main' into react/type_widgets 2025-10-05 19:59:46 +03:00
Elian Doran
7930745a01
chore(react/type_widgets): fix type errors 2025-10-05 19:55:25 +03:00
Francis C
2447a6fc8d
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 77.3% (89 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/zh_Hant/
2025-10-05 17:43:01 +02:00
green
38a4a3e7b6
Translated using Weblate (Japanese)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ja/
2025-10-05 17:43:00 +02:00
green
28240d549d
Translated using Weblate (Japanese)
Currently translated at 100.0% (1605 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-10-05 17:42:59 +02:00
Languages add-on
5da46a1678
Added translation using Weblate (md (generated) (md)) 2025-10-05 17:42:59 +02:00
Languages add-on
e592a37799
Added translation using Weblate (Norwegian Bokmål) 2025-10-05 17:42:58 +02:00
Languages add-on
15d00b61dd
Added translation using Weblate (Slovenian) 2025-10-05 17:42:57 +02:00
Languages add-on
5d0b6f9fad
Added translation using Weblate (Korean) 2025-10-05 17:42:57 +02:00
Languages add-on
2a40ffd164
Added translation using Weblate (Serbian) 2025-10-05 17:42:56 +02:00
Languages add-on
8c687de3c6
Added translation using Weblate (Finnish) 2025-10-05 17:42:56 +02:00
Languages add-on
27415b4e16
Added translation using Weblate (Persian) 2025-10-05 17:42:55 +02:00
Languages add-on
ce0b39765e
Added translation using Weblate (French) 2025-10-05 17:42:55 +02:00
Languages add-on
fafc4af237
Added translation using Weblate (Dutch) 2025-10-05 17:42:54 +02:00
Languages add-on
76a283ed77
Added translation using Weblate (Arabic) 2025-10-05 17:42:54 +02:00
Languages add-on
99500bca8f
Added translation using Weblate (Polish) 2025-10-05 17:42:53 +02:00
Languages add-on
a982fc326f
Added translation using Weblate (Hungarian) 2025-10-05 17:42:53 +02:00
Languages add-on
b16309d01a
Added translation using Weblate (Croatian) 2025-10-05 17:42:52 +02:00
Languages add-on
1bfc3d450f
Added translation using Weblate (Vietnamese) 2025-10-05 17:42:52 +02:00
Languages add-on
37b63d4ea9
Added translation using Weblate (Portuguese) 2025-10-05 17:42:51 +02:00
Languages add-on
e7315e7d35
Added translation using Weblate (Czech) 2025-10-05 17:42:50 +02:00
Languages add-on
718dffa672
Added translation using Weblate (Catalan) 2025-10-05 17:42:50 +02:00
Languages add-on
c3dd9865e7
Added translation using Weblate (Ukrainian) 2025-10-05 17:42:49 +02:00
Languages add-on
1702ec5644
Added translation using Weblate (Greek) 2025-10-05 17:42:49 +02:00
Languages add-on
dfddf044cf
Added translation using Weblate (German) 2025-10-05 17:42:48 +02:00
Languages add-on
24a632056a
Added translation using Weblate (Portuguese (Brazil)) 2025-10-05 17:42:47 +02:00
Languages add-on
dc7f4a6cf3
Added translation using Weblate (Turkish) 2025-10-05 17:42:47 +02:00
Languages add-on
cd100f37fe
Added translation using Weblate (md (generated) (md)) 2025-10-05 17:42:46 +02:00
Languages add-on
984e8bbba0
Added translation using Weblate (md (generated) (md)) 2025-10-05 17:42:46 +02:00
Elian Doran
fcc22cc212
Translated using Weblate (Romanian)
Currently translated at 96.5% (111 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ro/
2025-10-05 17:42:45 +02:00
Hosted Weblate
4101acc2e3
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-05 17:42:44 +02:00
Elian Doran
f30bdd54b1
fix(relation_map): floating buttons stuck when showing source 2025-10-05 18:38:40 +03:00
Elian Doran
6ffe8a2eb5
chore(react/type_widgets): save on window closing 2025-10-05 18:12:36 +03:00
Elian Doran
0dcaa8719f
chore(react/type_widgets): save code note if needed 2025-10-05 17:56:31 +03:00
Elian Doran
608605af12
chore(react/type_widgets): save if needed 2025-10-05 17:53:19 +03:00
Elian Doran
3f7b8447d0
refactor(react/type_widgets): bring back executeInActiveNoteDetailWidget 2025-10-05 17:34:45 +03:00
Elian Doran
d3594e4a05
refactor(react/type_widgets): bring back printing and exporting to PDF 2025-10-05 17:07:34 +03:00
Elian Doran
156b4101a5
refactor(react/type_widgets): bring back cut to note 2025-10-05 17:05:05 +03:00
Elian Doran
73213d2a17
refactor(react/type_widgets): bring back execute with type widget 2025-10-05 16:59:46 +03:00
Elian Doran
763bcbd394
refactor(react/type_widgets): extract full height to note types 2025-10-05 16:45:26 +03:00
Elian Doran
d90043e586
chore(react/type_widgets): bring back launch bar fixed effect 2025-10-05 16:42:58 +03:00
Elian Doran
c209a699ea
refactor(react/type_widgets): deduplicate containers 2025-10-05 16:36:59 +03:00
Elian Doran
22069d0aef
refactor(react/type_widgets): extract note types to different file 2025-10-05 15:55:25 +03:00
Elian Doran
3248654820
chore(react/type_widgets): cache note types 2025-10-05 15:47:27 +03:00
Elian Doran
269c7c9ce7
feat(ai_chat): allow viewing source of the ai chat 2025-10-05 14:25:08 +03:00
Elian Doran
b0c984decd
chore(react/type_widgets): fix refresh on first start 2025-10-05 14:15:51 +03:00
Elian Doran
cebb54ddf6
chore(react/type_widgets): get LLM note to load 2025-10-05 12:40:55 +03:00
Elian Doran
22f8929da6
Merge remote-tracking branch 'origin/main' into react/type_widgets 2025-10-05 12:14:14 +03:00
Elian Doran
62bb8ac89a
chore(release): prepare for 0.99.1 2025-10-05 11:52:06 +03:00
Elian Doran
33dfcb1c6e
docs(release): 0.99.1 2025-10-05 11:50:52 +03:00
Elian Doran
5969815ed1
fix(deps): downgrade mind-elixir (closes #7170) 2025-10-05 11:27:25 +03:00
Elian Doran
2b2125c702
fix(ai_chat): conversation not visible on Firefox 2025-10-05 11:03:18 +03:00
Elian Doran
7192d40e80
chore(react/type_widgets): get ai chat widget to render 2025-10-05 10:21:52 +03:00
Elian Doran
df9d481a93
refactor(mindmap): use proper way to detect direction
See https://github.com/SSShooter/mind-elixir-core/issues/150.
2025-10-04 19:17:13 +03:00
Adorian Doran
85a4557bb0 website: tweak the hero section 2025-10-04 19:11:44 +03:00
Elian Doran
cf37549f19
refactor(notemap): use proper types 2025-10-04 18:55:26 +03:00
Elian Doran
d2dda95654
fix(notemap): invisible hover color on light theme 2025-10-04 18:28:03 +03:00
Elian Doran
0770f97010
Merge remote-tracking branch 'origin/main' into react/type_widgets
; Conflicts:
;	apps/client/src/widgets/type_widgets/read_only_code.ts
2025-10-04 18:18:11 +03:00
Elian Doran
3caaf2ab79
chore(react/type_widgets): port note map type widget 2025-10-04 18:16:45 +03:00
Elian Doran
8f819a7786
chore(react): reintroduce reactivity to mapRootIdLabel 2025-10-04 18:09:40 +03:00
Adorian Doran
0d9e4a1aa2 website/header: add some style to the GitHub button 2025-10-04 17:07:32 +03:00
Elian Doran
4a01181110
docs(readme): change file naming format 2025-10-04 15:53:33 +03:00
Elian Doran
89dfc480f3
docs(readme): bring back original documents 2025-10-04 15:47:27 +03:00
Elian Doran
c178fc2957
Translations update from Hosted Weblate (#7186) 2025-10-04 15:41:40 +03:00
Elian Doran
0da66617a8
chore(react): reintroduce link distance 2025-10-04 14:14:02 +03:00
Elian Doran
5efe05490d
chore(react): reintroduce force configuration 2025-10-04 13:58:29 +03:00
Elian Doran
656b234740
chore(react): reintroduce centering i note map 2025-10-04 13:55:22 +03:00
Elian Doran
e6e9cd3f35
chore(react): improve style of buttons 2025-10-04 13:44:11 +03:00
Elian Doran
845c76fc42
chore(react): bring back fixing nodes 2025-10-04 13:37:36 +03:00
Elian Doran
a4d6da72a1
chore(react): bring back interaction with nodes 2025-10-04 13:17:57 +03:00
Elian Doran
35438d2599
refactor(react): integrate get color for node in rendering 2025-10-04 13:15:13 +03:00
Elian Doran
9a1e7ca3ae
chore(react): bring back node pointer & link configuration 2025-10-04 13:10:18 +03:00
Elian Doran
2d29d1b41f
chore(react): add back note map link configuration 2025-10-04 13:04:40 +03:00
Elian Doran
ad5ff6e41a
refactor(react): use component for map type switcher 2025-10-04 12:58:24 +03:00
Elian Doran
20dcbff68f
chore(react): reintroduce map type toggles 2025-10-04 12:55:08 +03:00
Elian Doran
c127e19cfa
chore(react): fix obtaining of CSS data for note map 2025-10-04 12:31:35 +03:00
Elian Doran
e32237559e
chore(react): start rendering nodes in note map 2025-10-04 12:29:48 +03:00
Elian Doran
09811d23f6
chore(react): port data part of server API 2025-10-04 11:40:31 +03:00
Elian Doran
b41042fec4
chore(react):start porting note map 2025-10-04 11:07:16 +03:00
Elian Doran
08fae19d19
fix(react/type_widgets): crash when switching between relation maps 2025-10-04 10:37:28 +03:00
Elian Doran
9cceff4f02
chore(react/type_widgets): finalize porting relation map 2025-10-04 10:32:23 +03:00
Elian Doran
67d9154795
chore(react/type_widgets): reintroduce relation note dragging 2025-10-04 10:15:38 +03:00
Elian Doran
1eca9f6541
chore(react/type_widgets): reintroduce relation context menu 2025-10-04 09:54:47 +03:00
Hosted Weblate
9d8c62caaf
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-04 06:44:06 +00:00
minkipark
279f014c42
Translated using Weblate (Korean)
Currently translated at 10.2% (39 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ko/
2025-10-04 06:44:06 +00:00
minkipark
826e9c7114
Translated using Weblate (Korean)
Currently translated at 2.1% (34 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ko/
2025-10-04 06:44:05 +00:00
Languages add-on
384c8649b4
Added translation using Weblate (Norwegian Bokmål) 2025-10-04 06:44:05 +00:00
Languages add-on
ecc8bc3866
Added translation using Weblate (Slovenian) 2025-10-04 06:44:04 +00:00
Languages add-on
bb4d723f18
Added translation using Weblate (Korean) 2025-10-04 06:44:04 +00:00
Languages add-on
e250510ab1
Added translation using Weblate (Serbian) 2025-10-04 06:44:03 +00:00
Languages add-on
dc630f927f
Added translation using Weblate (Finnish) 2025-10-04 06:44:02 +00:00
Languages add-on
e47cb13b89
Added translation using Weblate (Persian) 2025-10-04 06:44:02 +00:00
Languages add-on
838ae315e3
Added translation using Weblate (French) 2025-10-04 06:44:01 +00:00
Languages add-on
58afa86a2b
Added translation using Weblate (Dutch) 2025-10-04 06:44:01 +00:00
Languages add-on
5b90ece12f
Added translation using Weblate (Arabic) 2025-10-04 06:44:00 +00:00
Languages add-on
afb2072b97
Added translation using Weblate (Polish) 2025-10-04 06:44:00 +00:00
Languages add-on
8e0ca56b85
Added translation using Weblate (Hungarian) 2025-10-04 06:43:59 +00:00
Languages add-on
8e4cf38840
Added translation using Weblate (Croatian) 2025-10-04 06:43:58 +00:00
Languages add-on
cb872d3638
Added translation using Weblate (Vietnamese) 2025-10-04 06:43:58 +00:00
Languages add-on
781be26833
Added translation using Weblate (Portuguese) 2025-10-04 06:43:57 +00:00
Languages add-on
0ad5f3493d
Added translation using Weblate (Czech) 2025-10-04 06:43:57 +00:00
Languages add-on
15bb3acb31
Added translation using Weblate (Catalan) 2025-10-04 06:43:56 +00:00
Languages add-on
a43ddf3f9f
Added translation using Weblate (Ukrainian) 2025-10-04 06:43:56 +00:00
Languages add-on
8417bfebb0
Added translation using Weblate (Greek) 2025-10-04 06:43:55 +00:00
Languages add-on
28e8ea2da9
Added translation using Weblate (Portuguese (Brazil)) 2025-10-04 06:43:54 +00:00
Languages add-on
393264b4a1
Added translation using Weblate (Turkish) 2025-10-04 06:43:54 +00:00
Jiho Min
9306a28c87
Translated using Weblate (Korean)
Currently translated at 1.8% (29 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ko/
2025-10-04 06:43:53 +00:00
Newcomer1989
77fef38009
Added translation using Weblate (German) 2025-10-04 06:43:53 +00:00
Elian Doran
c14ea42978
Translated using Weblate (Romanian)
Currently translated at 21.7% (25 of 115 strings)

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/ro/
2025-10-04 06:43:52 +00:00
Elian Doran
341cd62b13
Added translation using Weblate (Romanian) 2025-10-04 06:43:52 +00:00
Hosted Weblate
9e6cfe7c1e
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Trilium Notes/README
Translate-URL: https://hosted.weblate.org/projects/trilium/readme/
2025-10-04 06:43:51 +00:00
Tore Aursand
9695dd404b
Translated using Weblate (Norwegian Bokmål)
Currently translated at 1.8% (7 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/nb_NO/
2025-10-04 06:43:50 +00:00
green
5e6be01251
Translated using Weblate (Japanese)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ja/
2025-10-04 06:43:50 +00:00
Elian Doran
f367a1c776
fix(deps): update eslint monorepo to v9.37.0 (#7197) 2025-10-04 09:43:42 +03:00
Elian Doran
c469fffb6e
chore(react/type_widgets): reintroduce relation creation 2025-10-04 09:37:14 +03:00
Elian Doran
d076d54170
refactor(react/type_widgets): extract context menu to separate file 2025-10-04 09:15:15 +03:00
Elian Doran
3256c14a20
chore(react/type_widgets): accidental double source config 2025-10-04 09:06:24 +03:00
Elian Doran
460e01a2d6
refactor(react/type_widgets): split note box into separate file 2025-10-04 09:04:22 +03:00
Elian Doran
1913355069
chore(react/type_widgets): relation map source/target config 2025-10-04 08:58:06 +03:00
renovate[bot]
bce987c67a
fix(deps): update eslint monorepo to v9.37.0 2025-10-04 05:55:42 +00:00
Elian Doran
e7a9f9c566
chore(deps): update dependency @types/serve-static to v1.15.9 (#7190) 2025-10-04 08:50:10 +03:00
Elian Doran
33150e3a98
chore(deps): update dependency electron to v38.2.1 (#7191) 2025-10-04 08:49:56 +03:00
renovate[bot]
e1aead098e
chore(deps): update dependency @types/serve-static to v1.15.9 2025-10-04 05:49:51 +00:00
Elian Doran
9f9a276a51
chore(deps): update dependency eslint-plugin-react-hooks to v6.1.1 (#7192) 2025-10-04 08:49:41 +03:00
Elian Doran
873df6da6c
chore(deps): update softprops/action-gh-release action to v2.3.4 (#7193) 2025-10-04 08:49:23 +03:00
Elian Doran
2e353afb98
fix(deps): update dependency katex to v0.16.23 (#7194) 2025-10-04 08:48:52 +03:00
Elian Doran
d497688d9a
chore(deps): update dependency stylelint to v16.25.0 (#7195) 2025-10-04 08:48:32 +03:00
Elian Doran
2cf3a04482
fix(deps): update dependency eslint-linter-browserify to v9.37.0 (#7196) 2025-10-04 08:47:55 +03:00
renovate[bot]
e50fd6f540
fix(deps): update dependency eslint-linter-browserify to v9.37.0 2025-10-04 01:11:23 +00:00
renovate[bot]
5096163ae3
chore(deps): update dependency stylelint to v16.25.0 2025-10-04 01:10:24 +00:00
renovate[bot]
0d6640ae14
fix(deps): update dependency katex to v0.16.23 2025-10-04 01:09:28 +00:00
renovate[bot]
52ac93e99c
chore(deps): update softprops/action-gh-release action to v2.3.4 2025-10-04 01:08:33 +00:00
renovate[bot]
674b0a8215
chore(deps): update dependency eslint-plugin-react-hooks to v6.1.1 2025-10-04 01:08:27 +00:00
renovate[bot]
ec56b297dc
chore(deps): update dependency electron to v38.2.1 2025-10-04 01:07:35 +00:00
Elian Doran
f687d91201
chore(react/type_widgets): bring back dragging notes in relation map 2025-10-03 22:40:22 +03:00
Elian Doran
a477cc22e6
docs(readme): normalize file name format 2025-10-03 20:25:49 +03:00
Elian Doran
119278b5f5
docs(readme): redesign support section 2025-10-03 20:12:32 +03:00
Elian Doran
5414fbeacb
docs(readme): improve shoutsout section 2025-10-03 20:00:32 +03:00
Adorian Doran
a4b01bba9b website/GitHub utils: improve 2025-10-03 19:36:36 +03:00
Adorian Doran
bab536751a website: use a pre-defined GitHub stargazers count outside of SSR 2025-10-03 19:22:58 +03:00
Adorian Doran
7657e17373 website: add a GitHub social button to the site's header 2025-10-03 19:09:23 +03:00
Adorian Doran
30f530abdb website: use "Inter" as the main font 2025-10-03 17:09:17 +03:00
Adorian Doran
1d373bc7d5 Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-10-03 16:49:20 +03:00
Adorian Doran
9d3c5d04b9 website: add meta description 2025-10-03 16:49:10 +03:00
Elian Doran
ba91fbbe6b
fix(ribbon): formatting tab not activating automatically (closes #7185) 2025-10-03 16:46:26 +03:00
Elian Doran
f6898779bb
fix(code): unable to search in read-only code notes 2025-10-03 16:09:32 +03:00
Elian Doran
dbb90bdd2b
fix(client/print): split button visible 2025-10-03 16:05:32 +03:00
Elian Doran
f442c56ed6
fix(client/options): missing ribbon widgets section in Appearance 2025-10-03 16:01:31 +03:00
Elian Doran
e971a9cb03
fix(client): enter shortcut key not working 2025-10-03 15:46:53 +03:00
Elian Doran
b450a4faa0
fix(client): delete shortcut key not working 2025-10-03 15:39:27 +03:00
Elian Doran
e8e93e985d
fix(react/type_widgets): relation map getting occassionally wiped 2025-10-03 13:16:20 +03:00
Elian Doran
c5c304f85b
chore(react/type_widgets): add dragigng logic for jsplumb 2025-10-03 11:58:00 +03:00
Elian Doran
58aea03114
fix(react/type_widgets): unable to add new items on existing map 2025-10-03 11:38:05 +03:00
Elian Doran
4af842d2f2
refactor(react/type_widgets): use dedicated component for items 2025-10-03 11:02:33 +03:00
Elian Doran
3b2f5bb09d
refactor(react/type_widgets): extract JSPlumb into a separate file 2025-10-03 10:17:45 +03:00
Elian Doran
2d67aab288
fix(react/type_widgets): unable to add new items if the map is empty 2025-10-03 10:11:21 +03:00
Elian Doran
838d761b50
Merge remote-tracking branch 'origin/main' into react/type_widgets
; Conflicts:
;	apps/client/src/widgets/react/hooks.tsx
;	apps/client/src/widgets/type_widgets/abstract_text_type_widget.ts
2025-10-03 09:28:17 +03:00
Elian Doran
9a2440942b
chore(deps): update dependency vite to v7.1.9 (#7177) 2025-10-03 09:13:39 +03:00
Elian Doran
c3151f9afa
chore(deps): update dependency openai to v6.1.0 (#7178) 2025-10-03 09:13:09 +03:00
renovate[bot]
f277612444
chore(deps): update dependency openai to v6.1.0 2025-10-03 06:12:29 +00:00
renovate[bot]
1b92ad2f53
chore(deps): update dependency vite to v7.1.9 2025-10-03 06:11:33 +00:00
Elian Doran
f96abe0e45
chore(deps): update pnpm to v10.18.0 (#7179) 2025-10-03 09:09:27 +03:00
Elian Doran
142a276cc4
fix(deps): update codemirror (#7180) 2025-10-03 09:09:05 +03:00
renovate[bot]
a52b0a45fe
fix(deps): update codemirror 2025-10-03 00:28:25 +00:00
renovate[bot]
6df40ec80a
chore(deps): update pnpm to v10.18.0 2025-10-03 00:27:33 +00:00
Elian Doran
713340a9ba
docs(guide): advanced CSS customisation 2025-10-02 22:25:47 +03:00
Elian Doran
ee8b41c81b
Equation improvements (#7174) 2025-10-02 21:43:58 +03:00
Elian Doran
dd477258a9
docs(guide): document formatting equations 2025-10-02 21:35:54 +03:00
Elian Doran
7c30e2b4f6
feat(math): inherit attributes from selection 2025-10-02 20:52:05 +03:00
Elian Doran
37a3c00214
Translations update from Hosted Weblate (#7175) 2025-10-02 19:13:50 +03:00
Tore Aursand
d30cdadb2d
Added translation using Weblate (Norwegian Bokmål) 2025-10-02 18:09:59 +02:00
Tore Aursand
58f0d01944
Added translation using Weblate (Norwegian Bokmål) 2025-10-02 18:09:58 +02:00
Elian Doran
d4791944b0
Translated using Weblate (Romanian)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ro/
2025-10-02 18:09:57 +02:00
Elian Doran
92a052674f
Translated using Weblate (Romanian)
Currently translated at 100.0% (1605 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ro/
2025-10-02 18:09:57 +02:00
Elian Doran
d49ce7c289
feat(math): support more attributes 2025-10-02 18:32:46 +03:00
Elian Doran
5f38d52f20
feat(math): support font size adjustment (closes #7172) 2025-10-02 18:31:08 +03:00
Elian Doran
6286745684
Translations update from Hosted Weblate (#7171) 2025-10-02 12:07:03 +03:00
Bilal Janati
4f574f8aa4
Translated using Weblate (French)
Currently translated at 88.4% (337 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/fr/
2025-10-02 11:02:04 +02:00
Bilal Janati
a3e27248ad
Translated using Weblate (French)
Currently translated at 85.0% (1365 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/fr/
2025-10-02 11:02:01 +02:00
Elian Doran
e48569245d
chore(deps): update dependency jiti to v2.6.1 (#7161) 2025-10-02 11:19:28 +03:00
Elian Doran
473f7a83e6
chore(deps): update dependency openai to v6.0.1 (#7162) 2025-10-02 11:19:18 +03:00
Elian Doran
1c622fa848
fix(deps): update dependency mind-elixir to v5.3.1 (#7166) 2025-10-02 11:19:09 +03:00
renovate[bot]
409e650506
fix(deps): update dependency mind-elixir to v5.3.1 2025-10-02 07:47:06 +00:00
renovate[bot]
d461f5474e
chore(deps): update dependency openai to v6.0.1 2025-10-02 07:46:28 +00:00
renovate[bot]
36e731cc2c
chore(deps): update dependency jiti to v2.6.1 2025-10-02 07:45:40 +00:00
Elian Doran
b77fbcb7ad
chore(deps): update dependency vite-plugin-static-copy to v3.1.3 (#7163) 2025-10-02 10:38:46 +03:00
Elian Doran
7b7dc346ca
fix(deps): update dependency i18next to v25.5.3 (#7164) 2025-10-02 10:38:26 +03:00
Elian Doran
b4f8a02ba6
chore(deps): update dependency react-refresh to v0.18.0 (#7165) 2025-10-02 10:38:10 +03:00
Elian Doran
9d6a5d1bb5
chore(deps): update dependency eslint-plugin-react-hooks to v6 (#7167) 2025-10-02 10:37:46 +03:00
renovate[bot]
fa747c5c4b
chore(deps): update dependency eslint-plugin-react-hooks to v6 2025-10-02 04:56:39 +00:00
renovate[bot]
bc93f40cdb
chore(deps): update dependency react-refresh to v0.18.0 2025-10-02 04:54:53 +00:00
renovate[bot]
a9975798d7
fix(deps): update dependency i18next to v25.5.3 2025-10-02 04:54:01 +00:00
renovate[bot]
4ea4404aba
chore(deps): update dependency vite-plugin-static-copy to v3.1.3 2025-10-02 04:53:11 +00:00
Elian Doran
361848b518
fix(deps): update ckeditor monorepo to v47 (major) (#7168) 2025-10-02 07:49:34 +03:00
renovate[bot]
8c46103f63
fix(deps): update ckeditor monorepo to v47 2025-10-02 01:54:42 +00:00
Elian Doran
edcdecb720
Merge branch 'main' of https://github.com/TriliumNext/trilium 2025-10-01 22:27:42 +03:00
Elian Doran
e1ef02058d
fix(client): function keys (e.g. help) not working due to change in modifiers 2025-10-01 22:27:39 +03:00
Elian Doran
d9746df16b
chore(deps): pin all deps to latest (#7159) 2025-10-01 21:13:48 +03:00
Elian Doran
b4c20d9683
fix(client): shortcut keys without modifiers affecting normal usage 2025-10-01 21:08:51 +03:00
Elian Doran
59955b7414
chore(deps): pin all deps to latest 2025-10-01 20:52:25 +03:00
Elian Doran
95b1c82ccb
docs(guide): document script logging 2025-10-01 20:22:50 +03:00
Elian Doran
7cfebbabeb
feat(script): api.log now supports objects 2025-10-01 20:22:02 +03:00
Elian Doran
f412874c73
fix(export): missing toast icon 2025-10-01 19:51:36 +03:00
Elian Doran
873c4c6636
refactor(client): remove string from viewtype 2025-10-01 19:44:55 +03:00
Elian Doran
efcd54be50
fix(ribbon): not visible when coming from view source on same note 2025-10-01 19:41:20 +03:00
Elian Doran
ae0bb78b1c
docs(guide): document included notes in share 2025-10-01 19:41:20 +03:00
Elian Doran
29fa335a27
chore(deps): update dependency typescript to v5.9.3 (#7151) 2025-10-01 19:32:42 +03:00
Elian Doran
3a84a78cd1
chore(deps): update dependency openai to v6 (#7155) 2025-10-01 19:31:40 +03:00
Elian Doran
df6bb7e6bf
fix(deps): broken types after major update 2025-10-01 19:21:51 +03:00
renovate[bot]
dfcaebc613
chore(deps): update dependency openai to v6 2025-10-01 14:03:26 +00:00
renovate[bot]
1ece35536b
chore(deps): update dependency typescript to v5.9.3 2025-10-01 14:02:28 +00:00
Elian Doran
1a90548622
chore(deps): update dependency @types/node to v22.18.8 (#7149) 2025-10-01 16:53:06 +03:00
renovate[bot]
cc7e5bdb80
chore(deps): update dependency @types/node to v22.18.8 2025-10-01 08:18:20 +00:00
Elian Doran
5c73b21ff7
chore(deps): update dependency dotenv to v17.2.3 (#7142) 2025-10-01 11:15:17 +03:00
Elian Doran
e9078107ae
chore(deps): update dependency preact-render-to-string to v6.6.2 (#7150) 2025-10-01 11:14:59 +03:00
Elian Doran
6c24b18bc1
chore(deps): update dependency typescript to v5.9.3 (#7152) 2025-10-01 11:14:44 +03:00
renovate[bot]
be7ff73142
chore(deps): update dependency preact-render-to-string to v6.6.2 2025-10-01 08:14:24 +00:00
renovate[bot]
63ac45d369
chore(deps): update dependency dotenv to v17.2.3 2025-10-01 08:13:59 +00:00
Elian Doran
f164a4b786
fix(deps): update dependency @codemirror/legacy-modes to v6.5.2 (#7153) 2025-10-01 11:13:49 +03:00
Elian Doran
806d601115
chore(deps): update dependency @smithy/middleware-retry to v4.4.0 (#7154) 2025-10-01 11:13:05 +03:00
Elian Doran
6b3cf49398
Translations update from Hosted Weblate (#7158) 2025-10-01 11:11:37 +03:00
Kevin Leutzinger
b8851565eb docs: clarify shareHtmlLocation goes on snippet note 2025-10-01 03:53:40 -04:00
Kevin Leutzinger
888d0d1084 add docs about shareHtml and shareHtmlLocation 2025-10-01 03:47:49 -04:00
Kevin Leutzinger
0a25d4db0d shareHTML to shareHtml 2025-10-01 03:30:16 -04:00
A
4a72f2c6a7
Translated using Weblate (Finnish)
Currently translated at 3.4% (13 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/fi/
2025-10-01 08:02:13 +02:00
A
446bdd6a5e
Translated using Weblate (Finnish)
Currently translated at 6.1% (98 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/fi/
2025-10-01 08:02:12 +02:00
Lorenzo Strambi
cb26fac2ea
Translated using Weblate (Italian)
Currently translated at 35.6% (136 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/it/
2025-10-01 08:02:11 +02:00
Lorenzo Strambi
3a45440c74
Translated using Weblate (Italian)
Currently translated at 12.9% (208 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-10-01 08:02:09 +02:00
Kuzma Simonov
e115d6e275
Translated using Weblate (Russian)
Currently translated at 100.0% (1605 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-10-01 08:02:07 +02:00
Aitanuqui
fc614ccf83
Translated using Weblate (Spanish)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/es/
2025-10-01 08:02:06 +02:00
Aitanuqui
17c9db7698
Translated using Weblate (Spanish)
Currently translated at 99.8% (1603 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/es/
2025-10-01 08:02:04 +02:00
Kevin Leutzinger
d483b6e840 add shareHTML relation 2025-09-30 23:06:20 -04:00
renovate[bot]
032819e812
chore(deps): update dependency @smithy/middleware-retry to v4.4.0 2025-10-01 02:24:12 +00:00
renovate[bot]
9d7d415756
fix(deps): update dependency @codemirror/legacy-modes to v6.5.2 2025-10-01 02:23:26 +00:00
renovate[bot]
e9d432b4bf
chore(deps): update dependency typescript to v5.9.3 2025-10-01 02:22:42 +00:00
Elian Doran
be35584f9a
chore(website): cross-platform preview 2025-09-30 22:22:10 +03:00
Elian Doran
80be4cc6b8
feat(website): improve ARM detection 2025-09-30 22:20:10 +03:00
Elian Doran
c74ba44b91
chore(website): apply download card effect only on desktop 2025-09-30 21:58:44 +03:00
Elian Doran
28a79baa01
fix(website): hamburger menu alignment on mobile 2025-09-30 21:56:32 +03:00
Elian Doran
5279601105
fix(website): screenshot would not fit properly on some screen sizes 2025-09-30 21:53:15 +03:00
Elian Doran
c2639951a5
style(website): improve alignment of download button 2025-09-30 21:38:46 +03:00
Elian Doran
6bfab1387d
chore(website): remove redundant winget link 2025-09-30 21:32:30 +03:00
Elian Doran
4212d208fc
chore(website): build on preview 2025-09-30 21:22:32 +03:00
Elian Doran
9e5bded4cf
chore(website): maintain platform coloring despite reordering 2025-09-30 21:21:26 +03:00
Elian Doran
ce0763f03d
feat(website): reorder platforms to always get the recommended one in center 2025-09-30 21:18:52 +03:00
Elian Doran
e860b7aa32
chore(website): arch & platform not properly rendered statically 2025-09-30 21:08:19 +03:00
Elian Doran
0be9310450
feat(website): highlight which platform to download 2025-09-30 21:06:19 +03:00
Elian Doran
d870a260e1
feat(website): improve download instructions 2025-09-30 20:53:29 +03:00
Elian Doran
2de545be1c
chore(website): fix page title 2025-09-30 19:46:47 +03:00
Elian Doran
bf04e5a15b
feat(website): different download behaviour for Linux 2025-09-30 19:45:56 +03:00
Elian Doran
46d2d7e160
feat(website): linux light/dark screenshot 2025-09-30 19:35:42 +03:00
Elian Doran
1775b22c7a
chore(deps): update dependency @types/node to v22.18.7 (#7140) 2025-09-30 13:37:13 +03:00
Elian Doran
ae022b6389
chore(deps): update dependency dotenv to v17.2.3 (#7141) 2025-09-30 13:37:02 +03:00
renovate[bot]
d4155102c5
chore(deps): update dependency dotenv to v17.2.3 2025-09-30 09:52:06 +00:00
renovate[bot]
3b1a25230f
chore(deps): update dependency @types/node to v22.18.7 2025-09-30 09:51:14 +00:00
Elian Doran
d8639793e0
chore(deps): update dependency happy-dom to v19.0.2 (#7143) 2025-09-30 12:43:46 +03:00
Elian Doran
06fec88214
chore(deps): update dependency @anthropic-ai/sdk to v0.65.0 (#7144) 2025-09-30 12:43:33 +03:00
Elian Doran
da93928976
chore(deps): update dependency cross-env to v10.1.0 (#7145) 2025-09-30 12:43:19 +03:00
Elian Doran
2314443d19
chore(deps): update typescript-eslint monorepo to v8.45.0 (#7146) 2025-09-30 12:42:59 +03:00
renovate[bot]
4b34047324
chore(deps): update typescript-eslint monorepo to v8.45.0 2025-09-30 00:39:57 +00:00
renovate[bot]
bc1d4de13d
chore(deps): update dependency cross-env to v10.1.0 2025-09-30 00:38:12 +00:00
renovate[bot]
6bae4c8075
chore(deps): update dependency @anthropic-ai/sdk to v0.65.0 2025-09-30 00:37:22 +00:00
renovate[bot]
84a89fd0ba
chore(deps): update dependency happy-dom to v19.0.2 2025-09-30 00:36:28 +00:00
Elian Doran
1447fa6f14
Translations update from Hosted Weblate (#7137) 2025-09-29 23:37:41 +03:00
Микола Копитін
bc4937f9d2
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1605 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/uk/
2025-09-29 22:34:06 +02:00
Josue Estrada
43a7b828d9
Translated using Weblate (Spanish)
Currently translated at 99.1% (1591 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/es/
2025-09-29 22:34:06 +02:00
Elian Doran
d611591e1a
docs(user): document a few gaps 2025-09-29 23:33:53 +03:00
Elian Doran
7a2d91e7de
chore(type_widgets): get relations to render 2025-09-29 22:31:53 +03:00
Elian Doran
082ea7b5c1
chore(type_widgets): port relation map overlays 2025-09-29 21:35:44 +03:00
Elian Doran
c58414bbc1
chore(type_widgets): relation map rename title 2025-09-29 21:11:40 +03:00
Elian Doran
1c1243912b
refactor(type_widgets): use API architecture for relation map 2025-09-29 21:05:29 +03:00
Elian Doran
614fc66890
refactor(type_widgets): move relation map to dedicated folder 2025-09-29 20:34:30 +03:00
Elian Doran
0937ef72e2
chore(type_widgets): start porting context menu 2025-09-29 20:33:15 +03:00
Elian Doran
3571023685
chore(type_widgets): bring back relation map zoom controls 2025-09-29 20:16:45 +03:00
Elian Doran
2cd3e3f9c8
chore(type_widgets): bring back relation map note creation 2025-09-29 20:06:22 +03:00
Elian Doran
3d08f686cf
feat(code): pretty-print JSON in view source 2025-09-29 19:47:56 +03:00
Elian Doran
d2bf972305
chore(type_widgets): save pan & zoom 2025-09-29 19:41:08 +03:00
Elian Doran
39bd236799
refactor(type_widgets): use editorspaced update for data 2025-09-29 19:32:50 +03:00
Elian Doran
d8b9d14712
chore(type_widgets): introduce panzoom 2025-09-29 19:28:46 +03:00
Elian Doran
9d4127ba6d
chore(type_widgets): render note box 2025-09-29 19:04:00 +03:00
Elian Doran
04b678ef4c
chore(type_widgets): start porting relation map 2025-09-29 18:50:40 +03:00
Elian Doran
286d7c8228
Merge remote-tracking branch 'origin/main' into react/type_widgets 2025-09-29 17:53:16 +03:00
Elian Doran
f7a565ec73
refactor(collections/table): rework persistence 2025-09-29 17:51:53 +03:00
Elian Doran
6b35e909ab
fix(collections): note list sometimes not restored (fixes #7129) 2025-09-29 17:51:53 +03:00
Elian Doran
53b9ce0f3d
Automatically resize webview (#7125) 2025-09-29 10:48:47 +03:00
Elian Doran
5e1cd7d6ac
Replace jsdom with node-html-parser (#7128) 2025-09-29 10:47:33 +03:00
Elian Doran
acb98061ce
chore(deps): remove jsdom as dev dependency 2025-09-29 09:59:39 +03:00
Elian Doran
979ef6287f
chore(server): different handling of buffer vs string 2025-09-29 09:55:34 +03:00
Elian Doran
58a883797d
fix(server): infinite loop in note map 2025-09-29 09:45:16 +03:00
Elian Doran
f718e87673
chore(server): fix share content renderer 2025-09-29 09:25:46 +03:00
Elian Doran
4c6a742af7
chore(server): fix clipper 2025-09-29 09:25:31 +03:00
Elian Doran
848dc51a7a
Merge remote-tracking branch 'origin/main' into refactor/replace_jsdom 2025-09-29 09:22:36 +03:00
Elian Doran
44541b66c4
chore(deps): update dependency lint-staged to v16.2.3 (#7130) 2025-09-29 09:20:13 +03:00
Elian Doran
3694018441
chore(deps): update dependency rollup-plugin-webpack-stats to v2.1.5 (#7131) 2025-09-29 09:20:00 +03:00
Elian Doran
3874e54d76
fix(deps): update dependency @codemirror/view to v6.38.4 (#7132) 2025-09-29 09:19:48 +03:00
Elian Doran
10de141c00
chore(deps): update dependency electron to v38.2.0 (#7133) 2025-09-29 09:19:32 +03:00
Elian Doran
806ba320a8
chore(deps): update dependency preact-iso to v2.11.0 (#7134) 2025-09-29 09:19:11 +03:00
Elian Doran
09ef24d27d
chore(deps): update dependency happy-dom to v19 (#7135) 2025-09-29 09:18:58 +03:00
renovate[bot]
236f3cada7
chore(deps): update dependency happy-dom to v19 2025-09-29 05:59:00 +00:00
renovate[bot]
c2afef4832
chore(deps): update dependency preact-iso to v2.11.0 2025-09-29 05:58:11 +00:00
renovate[bot]
b9fa7d70bb
chore(deps): update dependency electron to v38.2.0 2025-09-29 05:56:26 +00:00
renovate[bot]
9ac31f2667
fix(deps): update dependency @codemirror/view to v6.38.4 2025-09-29 05:55:32 +00:00
renovate[bot]
639d1befef
chore(deps): update dependency rollup-plugin-webpack-stats to v2.1.5 2025-09-29 05:54:31 +00:00
renovate[bot]
b99c8d5cc1
chore(deps): update dependency lint-staged to v16.2.3 2025-09-29 05:53:37 +00:00
Elian Doran
0770398010
Translations update from Hosted Weblate (#7136) 2025-09-29 08:51:13 +03:00
green
c3d24451b7
Translated using Weblate (Japanese)
Currently translated at 100.0% (1605 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-09-29 03:02:01 +00:00
Francis C
4db1a3bdec
Translated using Weblate (Japanese)
Currently translated at 100.0% (1605 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-09-29 03:02:00 +00:00
Elian Doran
2a0410f597
chore(types): fill in gap from jsdom 2025-09-28 20:55:20 +03:00
Elian Doran
7e79d907be
feat(server): replace jsdom 2025-09-28 19:43:04 +03:00
Elian Doran
c0ea441c59
chore(server): fix tests 2025-09-28 19:19:39 +03:00
Elian Doran
290d134d88
test(server/similarity): reward map 2025-09-28 19:10:49 +03:00
Elian Doran
517bfd2c9a
test(server/note_map): clipper processing notes & images 2025-09-28 19:02:38 +03:00
Papierkorb2292
31990a9992 Let browser display webview with max size instead of manually adjusting the size, so the webview size is sure to be updated when a parent element changes size 2025-09-28 17:41:25 +02:00
Elian Doran
151a2c284d
test(server/note_map): backlinks with excerpts 2025-09-28 17:12:01 +03:00
Elian Doran
614a8f177c
test(server/share): attachment links 2025-09-28 15:43:39 +03:00
Elian Doran
8b5e53e579
test(server/share): included text notes 2025-09-28 15:07:10 +03:00
Elian Doran
1ad8b1bf85
test(server/share): protected notes 2025-09-28 14:48:14 +03:00
Elian Doran
a393584a2a
test(server/share): implement basic shaca mocking with content 2025-09-28 14:40:30 +03:00
Elian Doran
804fc72ed8
test(server/share): basic text rendering check 2025-09-28 14:07:55 +03:00
Elian Doran
3f8f05368c
fix(modal): event leak for onHidden 2025-09-28 11:10:39 +03:00
Elian Doran
5a56ba2fd5
chore: fix various references to the old repo 2025-09-28 11:02:24 +03:00
Elian Doran
de7c1329f8
fix(add_link): focus resets to start of note (closes #7115) 2025-09-28 10:55:48 +03:00
Elian Doran
6fc5aa0090
fix(bulk_actions): deleting a bulk action would execute all bulk actions 2025-09-28 10:42:15 +03:00
Elian Doran
2eaeccda05
fix(next): toasts unreadable with background effects on 2025-09-28 10:38:24 +03:00
Elian Doran
56f970ab08
chore(deps): update dependency webdriverio to v9.20.0 (#7119) 2025-09-28 10:37:49 +03:00
renovate[bot]
d1cb9e4a3f
chore(deps): update dependency webdriverio to v9.20.0 2025-09-28 00:59:17 +00:00
Elian Doran
992adcab65
Correct 'febuary' key and fix Russian typos (#7103) 2025-09-28 02:14:11 +03:00
Elian Doran
d3b3a83477
Translations update from Hosted Weblate (#7118) 2025-09-28 02:12:34 +03:00
Miljenko Šuflaj
98ad371d01
Translated using Weblate (Croatian)
Currently translated at 25.7% (98 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/hr/
2025-09-28 01:02:04 +02:00
green
3cdae245e1
Translated using Weblate (Japanese)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ja/
2025-09-28 01:02:03 +02:00
Kuzma Simonov
887c78d893
Translated using Weblate (Russian)
Currently translated at 99.6% (1600 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-09-28 01:02:02 +02:00
green
e208497d71
Translated using Weblate (Japanese)
Currently translated at 100.0% (1605 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-09-28 01:02:01 +02:00
Elian Doran
dd744b4e0d
Landing page (#7108) 2025-09-28 01:34:06 +03:00
Elian Doran
647cbc7e7a
chore(ci): set up pnpm cache for website deployment 2025-09-28 01:08:27 +03:00
Elian Doran
cc93102859
fix(website): null error in download-helper 2025-09-28 01:03:31 +03:00
Elian Doran
5b673e753b
fix(website): hydration issues due to rendering on the server of client-side logic 2025-09-28 00:58:15 +03:00
Elian Doran
bd2eb6fdbb
fix(website): screenshot not loading due to SSR 2025-09-28 00:36:21 +03:00
Elian Doran
c25f783980
fix(website): typecheck failing due to asset import 2025-09-28 00:29:40 +03:00
Elian Doran
9b37708f0c
fix(ci): missing deployment secrets in reusable action 2025-09-28 00:21:05 +03:00
Elian Doran
7386bb35e5
fix(website): yet another case of server-side rendering failing 2025-09-28 00:16:51 +03:00
Elian Doran
9274522877
chore(ci): don't run playwright on website changes 2025-09-28 00:15:15 +03:00
Elian Doran
1b444686af
fix(website): another case of server-side rendering failing 2025-09-28 00:15:04 +03:00
Elian Doran
b3dfdacdc3
fix(ci): failing due to electron-rebuild 2025-09-28 00:10:54 +03:00
Elian Doran
159fab41ce
fix(website): SSR not working due to download helper 2025-09-28 00:02:41 +03:00
Elian Doran
093f48f76a
feat(ci): filter dependencies to make installation faster 2025-09-28 00:00:29 +03:00
Elian Doran
6998a3593e
feat(ci): set up deployment workflow for website 2025-09-27 23:57:56 +03:00
Elian Doran
c3250cfd72
style(website): minor missing margin on mobile 2025-09-27 22:59:28 +03:00
Elian Doran
e52eb9bcb0
feat(website): switch assets to webp 2025-09-27 22:42:08 +03:00
Elian Doran
5ac2892e34
chore(website): fix typecheck issues 2025-09-27 22:36:26 +03:00
Elian Doran
a15aab395a
feat(website): add alt + lazy loading 2025-09-27 22:26:41 +03:00
Elian Doran
f991276152
feat(website): add link to older versions 2025-09-27 22:23:10 +03:00
Elian Doran
1f71ceb611
fix(website): favicon no longer working 2025-09-27 22:16:38 +03:00
Elian Doran
92e14159b9
feat(website): display version to be downloaded 2025-09-27 22:16:19 +03:00
Elian Doran
b8419604e5
fix(website): discrepancies in production build 2025-09-27 21:29:39 +03:00
Elian Doran
096fd82e64
style(website): minor tweaks on light/dark mode 2025-09-27 21:20:28 +03:00
Elian Doran
cbaae52a7e
style(website): minor improvements to get started 2025-09-27 21:14:20 +03:00
Elian Doran
5905299331
fix(website): mobile regression and layout tweaks 2025-09-27 21:11:34 +03:00
Elian Doran
2df0763141
refactor(website): use nested CSS 2025-09-27 21:02:23 +03:00
Elian Doran
fb7453f7b0
feat(website): improve icon fit 2025-09-27 19:59:12 +03:00
Elian Doran
974d20b0ba
feat(website): add icons to collections 2025-09-27 19:56:11 +03:00
Elian Doran
c2f6d9aa07
feat(website): add icons to note types 2025-09-27 19:53:47 +03:00
Elian Doran
6194386464
feat(website): reorder sections around 2025-09-27 19:39:39 +03:00
Elian Doran
329ecd6894
feat(website): improve FAQ section 2025-09-27 19:29:40 +03:00
Elian Doran
150f470aee
chore(website): improve scoop link 2025-09-27 19:26:29 +03:00
Elian Doran
83b843f047
style(website): disable link underline globally 2025-09-27 19:23:16 +03:00
Elian Doran
24043611c3
feat(website): split REST API into separate entry 2025-09-27 19:20:03 +03:00
Elian Doran
2c99ba64bc
feat(website): add links to all feature descriptions 2025-09-27 19:08:39 +03:00
Elian Doran
ffe30bed75
chore(website): use same more info mechanism for list with screenshot 2025-09-27 19:02:13 +03:00
Elian Doran
b6088f488f
feat(website): use list with screenshot for note types 2025-09-27 18:59:51 +03:00
Elian Doran
e04165a184
feat(website): use list with screenshot for note types 2025-09-27 18:47:45 +03:00
Elian Doran
d7aa95ce8e
feat(website): add icons for each benefit 2025-09-27 18:40:00 +03:00
Elian Doran
28214ec9fb
feat(website): split benefits into three different sections 2025-09-27 18:27:15 +03:00
Elian Doran
28952a5253
feat(website): list with screenshot for collections 2025-09-27 18:17:20 +03:00
Elian Doran
d66505e5bc
fix(website): hover effect for buttons 2025-09-27 17:57:24 +03:00
Elian Doran
c4354032b5
feat(website): add a final call-to-action 2025-09-27 17:56:59 +03:00
Elian Doran
d23550d3ef
fix(website): mobile menu causing issues with scroll anchoring 2025-09-27 17:39:40 +03:00
Elian Doran
894ec1e3c1
feat(website): social buttons in mobile menu 2025-09-27 17:37:01 +03:00
Elian Doran
bdb03f8d51
style(website): use color in header instead of bold for active 2025-09-27 17:28:14 +03:00
Elian Doran
61ea27c8f4
style(website): misalignment of icon in button 2025-09-27 17:27:02 +03:00
Elian Doran
ac45617d8f
feat(website): mobile toggle menu 2025-09-27 17:23:44 +03:00
Elian Doran
35853ff988
fix(website): logo not working in subfolder 2025-09-27 17:04:31 +03:00
Elian Doran
80009f99e8
chore(website): rebrand donate to support us 2025-09-27 17:03:39 +03:00
Elian Doran
0b1d001c20
chore(website): rebrand download to get started 2025-09-27 17:01:54 +03:00
Elian Doran
cb63e88cdc
style(website): colored download links 2025-09-27 16:52:43 +03:00
Elian Doran
a5c7f4221b
feat(website): full-width Docker card 2025-09-27 16:49:32 +03:00
Elian Doran
f61010a65e
feat(website): further improve alignment in download cards 2025-09-27 16:42:06 +03:00
Elian Doran
b99f5b2cbe
feat(website): multiple recommended downloads for better fit 2025-09-27 16:39:10 +03:00
Elian Doran
9919d0cbfa
style(website): align download buttons slightly 2025-09-27 16:35:09 +03:00
Elian Doran
fe8099d8d1
feat(website): change URL for NixOS server module 2025-09-27 16:30:25 +03:00
Elian Doran
0da336c8e1
feat(website): homebrew cask for macOS 2025-09-27 16:25:10 +03:00
Elian Doran
37f5d19739
feat(website): quick start for downloads 2025-09-27 16:23:12 +03:00
Elian Doran
2ac0d84cee
feat(website): help button for Linux and Docker 2025-09-27 16:09:16 +03:00
Elian Doran
e639961b68
feat(website): open external links in new tab in downloads 2025-09-27 15:58:37 +03:00
Elian Doran
adf29b4e6e
refactor(website): use button component in downloads 2025-09-27 15:57:23 +03:00
Elian Doran
b00cd032a3
feat(website): add dedicated card for docker in downloads 2025-09-27 15:51:42 +03:00
Elian Doran
60e8f46777
feat(website): add help pages to all note types / collections 2025-09-27 15:38:01 +03:00
Elian Doran
ef2860770f
chore(website): minor adjustment to footer 2025-09-27 15:22:06 +03:00
Elian Doran
aa562e9c26
style(website): full-height for desktop download section 2025-09-27 15:01:59 +03:00
Elian Doran
866ccc1696
feat(website): windows light/dark screenshot 2025-09-27 15:01:03 +03:00
Elian Doran
dbe241dee7
feat(website): macos light/dark screenshot 2025-09-27 14:47:46 +03:00
Elian Doran
bd32a08e11
style(website): slight adjustments to hero section on desktop 2025-09-27 14:29:17 +03:00
Elian Doran
8416dab870
feat(website): improve hero download buttons on mobile 2025-09-27 14:27:31 +03:00
Elian Doran
6fda669307
feat(website): add github & docker links on hero section 2025-09-27 14:15:08 +03:00
Elian Doran
c21a9223f5
refactor(website): use link component with rel 2025-09-27 14:02:49 +03:00
Elian Doran
4e4e65b462
feat(website): adjust page title 2025-09-27 13:55:04 +03:00
Elian Doran
5e07231d78
feat(website): add footer social buttons 2025-09-27 13:37:31 +03:00
Elian Doran
d71d1ce8b4
feat(website): improve the donation page 2025-09-27 13:18:48 +03:00
Elian Doran
892e84deaa
feat(website): outline for donation buttons 2025-09-27 12:46:16 +03:00
Elian Doran
7a73af0299
feat(website): improve download button with icon and platform title 2025-09-27 12:41:33 +03:00
Elian Doran
65dae511e5
feat(website): add icons for donate buttons 2025-09-27 12:14:16 +03:00
Elian Doran
55c70b404c
chore(website): improve header layout on mobile 2025-09-27 11:55:49 +03:00
Elian Doran
8117586548
chore(website): further improve layout on mobile 2025-09-27 11:54:00 +03:00
Elian Doran
3ce9c7ba3d
chore(website): improve screenshot fit on mobile 2025-09-27 11:46:36 +03:00
Elian Doran
ab162efab8
chore(website): improve hero section layout on mobile 2025-09-27 11:43:19 +03:00
Elian Doran
babfc3cfb9
chore(website): hide download buttons on mobile 2025-09-27 11:34:09 +03:00
Elian Doran
3d780d7d02
chore(website): improve main layout on mobile 2025-09-27 11:32:30 +03:00
Elian Doran
5b81aff8be
chore(website): set up name and favicon 2025-09-27 11:26:08 +03:00
Elian Doran
86b14a5763
chore(website): improve contrast on buttons on light theme 2025-09-27 11:22:56 +03:00
Elian Doran
14a2794d15
chore(website): minor changes according to review 2025-09-27 11:19:29 +03:00
Elian Doran
eef68aca0f
chore(deps): update dependency @smithy/middleware-retry to v4.3.1 (#7109) 2025-09-27 10:39:03 +03:00
Elian Doran
f6f7445528
chore(deps): update dependency @anthropic-ai/sdk to v0.64.0 (#7111) 2025-09-27 10:37:47 +03:00
Elian Doran
f7c0184a6b
fix(deps): update dependency react-i18next to v16 (#7112) 2025-09-27 10:37:27 +03:00
renovate[bot]
65bc599a16
fix(deps): update dependency react-i18next to v16 2025-09-27 01:29:01 +00:00
renovate[bot]
b445bef74c
chore(deps): update dependency @anthropic-ai/sdk to v0.64.0 2025-09-27 01:28:15 +00:00
renovate[bot]
93d7ba032d
chore(deps): update dependency @smithy/middleware-retry to v4.3.1 2025-09-27 01:26:19 +00:00
Elian Doran
334e2c3949
chore(website): get rid of package lock 2025-09-27 01:43:28 +03:00
Elian Doran
a11797fe6e
chore(website): remove old website 2025-09-27 01:42:15 +03:00
Elian Doran
3cf0ec5740
feat(website): draft a donation page 2025-09-27 01:40:47 +03:00
Elian Doran
40f578f43f
Translations update from Hosted Weblate (#7106) 2025-09-27 01:39:46 +03:00
Elian Doran
428abb4591
feat(website): improve 404 page 2025-09-27 01:20:59 +03:00
Elian Doran
4954fa89b5
feat(website): add link to documentation 2025-09-27 01:16:39 +03:00
Elian Doran
10f7837a7f
style(website): full-height layout 2025-09-27 01:11:12 +03:00
Miljenko Šuflaj
fca310cc31
Added translation using Weblate (Croatian) 2025-09-27 00:06:19 +02:00
Miljenko Šuflaj
cf58b511df
Added translation using Weblate (Croatian) 2025-09-27 00:06:19 +02:00
green
9da1f52a71
Translated using Weblate (Japanese)
Currently translated at 99.7% (380 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ja/
2025-09-27 00:06:17 +02:00
green
5c8e674ddb
Translated using Weblate (Japanese)
Currently translated at 99.7% (1601 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-09-27 00:06:16 +02:00
Newcomer1989
f027b25bc2
Translated using Weblate (German)
Currently translated at 100.0% (1605 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-09-27 00:06:16 +02:00
Elian Doran
cfe71a3426
style(website): improve footer layout 2025-09-27 01:04:28 +03:00
Elian Doran
70afb636ca
feat(website): architecture switcher for download 2025-09-27 01:01:06 +03:00
Elian Doran
818efe7fb0
feat(website): port download page 2025-09-27 00:46:51 +03:00
Elian Doran
3c2263db86
chore(website): apply content width to 404 page 2025-09-27 00:09:17 +03:00
Elian Doran
7c30bc9c72
feat(website): more options link in the hero section 2025-09-27 00:08:35 +03:00
Elian Doran
ec8d719d41
style(website): improve card title / content contrast 2025-09-26 23:54:39 +03:00
Elian Doran
5f884c4440
style(website): improve card on dark mode 2025-09-26 23:49:22 +03:00
Elian Doran
e6c806d462
style(website): improve hero section 2025-09-26 23:46:29 +03:00
Elian Doran
4afceeca79
style(website): general dark theme 2025-09-26 23:44:07 +03:00
Elian Doran
7990c60ce7
feat(website): clickable header banner 2025-09-26 23:40:34 +03:00
Elian Doran
74c248bce2
style(website): improve header nav layout 2025-09-26 23:37:36 +03:00
Elian Doran
2df646f80c
refactor(website): move back into website2 2025-09-26 23:35:28 +03:00
Elian Doran
768260782a
refactor(website): split each section into a component 2025-09-26 23:34:14 +03:00
Elian Doran
4eff105af5
refactor(website): split CSS 2025-09-26 23:32:09 +03:00
Elian Doran
68ef6ea142
chore(website): reimplement download button 2025-09-26 23:28:58 +03:00
Elian Doran
772d4ac5a1
chore(website): port the rest of the layout 2025-09-26 23:24:28 +03:00
Elian Doran
b3e1a79d40
chore(website): port FAQ 2025-09-26 23:21:41 +03:00
Elian Doran
d7afa8526d
chore(website): port collections 2025-09-26 23:18:38 +03:00
Elian Doran
b4a2a6c12b
chore(website): port note types 2025-09-26 23:16:06 +03:00
Elian Doran
32c15f5e03
chore(website): port benefits section 2025-09-26 23:06:57 +03:00
Elian Doran
b5a491820c
chore(website): start with fresh template for preact 2025-09-26 22:54:56 +03:00
Elian Doran
8a477c87e0
chore(website): small adjustments to layout 2025-09-26 22:48:37 +03:00
Elian Doran
8bcae8cdb8
feat(website): smart download now button in header 2025-09-26 22:44:27 +03:00
Elian Doran
ea87161a91
feat(website): smart download now button 2025-09-26 22:40:27 +03:00
Elian Doran
f2bb6cb848
chore(website): remove unnecessary spacing in links 2025-09-26 22:21:12 +03:00
Elian Doran
fecb677552
chore(website): remove unnecessary nbsp 2025-09-26 22:19:21 +03:00
Elian Doran
3ba9b56833
chore(website): fix charset 2025-09-26 22:18:50 +03:00
Elian Doran
a329e7d72a
chore(website): fix image references 2025-09-26 22:18:24 +03:00
Elian Doran
2568f6bb53
chore(website): improve formatting slightly 2025-09-26 22:11:15 +03:00
Elian Doran
23936596fa
chore(website): extract stylesheet 2025-09-26 22:05:23 +03:00
Elian Doran
398db56fe7
chore(website): add existing structure 2025-09-26 22:04:17 +03:00
Elian Doran
423ef14ca6
chore(website): create empty template 2025-09-26 22:01:07 +03:00
Elian Doran
9921d3e0a7
feat(share): render included notes 2025-09-26 18:42:59 +03:00
e.lednev
ac22fd8d60 - Renamed localization key febuary to february.
- Corrected various spelling and grammatical errors in the `ru.json` translation file.
2025-09-26 13:17:19 +03:00
Elian Doran
ff065964e9
chore(deps): update dependency @sveltejs/kit to v2.43.5 (#7095) 2025-09-26 09:45:21 +03:00
Elian Doran
951dda50ac
chore(deps): update dependency tsx to v4.20.6 (#7097) 2025-09-26 09:45:08 +03:00
renovate[bot]
01bd2f1815
chore(deps): update dependency tsx to v4.20.6 2025-09-26 05:42:18 +00:00
renovate[bot]
570f8fd155
chore(deps): update dependency @sveltejs/kit to v2.43.5 2025-09-26 05:41:31 +00:00
Elian Doran
5d348e3ad6
chore(deps): update dependency lint-staged to v16.2.1 (#7096) 2025-09-26 08:33:19 +03:00
Elian Doran
9573346d55
chore(deps): update dependency tsx to v4.20.6 (#7098) 2025-09-26 08:32:55 +03:00
Elian Doran
e4570a1bb0
chore(deps): update dependency @inlang/paraglide-js to v2.4.0 (#7099) 2025-09-26 08:32:18 +03:00
Elian Doran
b884aba244
Translations update from Hosted Weblate (#7100) 2025-09-26 08:31:57 +03:00
Jiri Novacek
9c73908560
Translated using Weblate (Czech)
Currently translated at 5.2% (20 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/cs/
2025-09-26 03:02:11 +00:00
Jiri Novacek
b399d292a9
Translated using Weblate (Czech)
Currently translated at 1.3% (21 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/cs/
2025-09-26 03:02:10 +00:00
green
a557d9770f
Translated using Weblate (Japanese)
Currently translated at 98.9% (377 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ja/
2025-09-26 03:02:08 +00:00
greenfork
a11ebfeb42
Translated using Weblate (Russian)
Currently translated at 99.6% (1599 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-09-26 03:02:07 +00:00
green
4695c3726d
Translated using Weblate (Japanese)
Currently translated at 93.0% (1494 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-09-26 03:02:05 +00:00
Francis C
324f79ceb9
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1605 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-09-26 03:02:04 +00:00
Antonio Martín Villaseñor
fc5e459895
Translated using Weblate (Spanish)
Currently translated at 99.0% (1589 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/es/
2025-09-26 03:02:03 +00:00
Francis C
bdaba67859
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1605 of 1605 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-09-26 03:02:01 +00:00
renovate[bot]
2b01e2fdaf
chore(deps): update dependency @inlang/paraglide-js to v2.4.0 2025-09-26 02:12:30 +00:00
renovate[bot]
9967da6ea1
chore(deps): update dependency tsx to v4.20.6 2025-09-26 02:11:43 +00:00
renovate[bot]
a56a00ba2f
chore(deps): update dependency lint-staged to v16.2.1 2025-09-26 02:10:11 +00:00
Elian Doran
82df26031f
fix(client): Use number sorting for number columns in Table view (#7094) 2025-09-25 21:28:04 +03:00
Florian Meißner
b4af8e7339 fix(client): Use number sorting for number columns in Table view 2025-09-25 19:28:02 +02:00
Elian Doran
e6180f427b
fix(client): note buttons visible in zen mode 2025-09-25 19:49:06 +03:00
Elian Doran
9a95ec170d
fix(client): resize gutter not available in zen mode (fixes #7093) 2025-09-25 19:40:40 +03:00
Elian Doran
5547c3fc2b
feat(canvas): read-only mode 2025-09-25 19:28:03 +03:00
Elian Doran
4381399978
feat(mindmap): read-only mode 2025-09-25 19:12:37 +03:00
Elian Doran
5bfa0d13e3
chore(react/type_widgets): refresh on all viewscope changes 2025-09-25 18:44:06 +03:00
Elian Doran
5c21759de9
fix(react/type_widgets): unable to switch view-mode for same note 2025-09-25 18:39:47 +03:00
Elian Doran
e2ef58ed50
chore(react/type_widgets): finalize porting 2025-09-25 18:26:52 +03:00
Elian Doran
7af610a5b4
chore(react/type_widgets): set up image opening 2025-09-25 18:22:58 +03:00
Elian Doran
8a442ba492
chore(react/type_widgets): port executeWithTextEditor 2025-09-25 18:07:47 +03:00
Elian Doran
3ed399a888
chore(react/type_widgets): port text touchbar (untested) 2025-09-25 17:53:48 +03:00
Elian Doran
37d33fb975
chore(react/type_widgets): port @-mention note creation 2025-09-25 17:21:03 +03:00
Elian Doran
d443d79685
chore(react/type_widgets): port and fix follow link under cursor 2025-09-25 14:35:52 +03:00
Elian Doran
a975576214
chore(react/type_widgets): react to snippet changes 2025-09-25 14:21:12 +03:00
Elian Doran
3673162a48
chore(react/type_widgets): bring back add include to note 2025-09-25 13:53:11 +03:00
Elian Doran
0ac428b57a
chore(react/type_widgets): remove already integrated file 2025-09-25 13:26:50 +03:00
Elian Doran
45bd9b72b9
chore(react/type_widgets): set up code block word wrap 2025-09-25 13:24:43 +03:00
Elian Doran
cc6ac7d1da
chore(react/type_widgets): port text link insertion mechanism 2025-09-25 12:07:06 +03:00
Elian Doran
232fe4e63a
refactor(react/type_widgets): move mobile_editor_toolbar 2025-09-25 11:17:55 +03:00
Elian Doran
597426f10d
Merge remote-tracking branch 'origin/main' into react/type_widgets 2025-09-25 11:12:28 +03:00
Elian Doran
a0a904766f
fix(options/mfa): significant calls to OAuth status endpoint 2025-09-25 10:29:09 +03:00
Elian Doran
7be0507db5
chore(deps): update dependency electron to v38 (#6879) 2025-09-25 09:55:01 +03:00
Elian Doran
1d324ab3b0
chore(deps): override node-abi 2025-09-25 09:45:52 +03:00
Elian Doran
9e00ed7e14
chore(deps): update better-sqlite3 to 12.4.1 2025-09-25 09:38:13 +03:00
renovate[bot]
02a6652b44
chore(deps): update dependency electron to v38 2025-09-25 06:10:38 +00:00
Elian Doran
e19f7b286a
chore(deps): update node.js to v22.20.0 (#7089) 2025-09-25 09:06:19 +03:00
Elian Doran
50301a97f3
chore(deps): update dependency @tailwindcss/typography to v0.5.19 (#7087) 2025-09-25 09:06:03 +03:00
Elian Doran
408e31079c
chore(deps): update dependency ollama to v0.6.0 (#7088) 2025-09-25 09:05:49 +03:00
renovate[bot]
bf81e159ca
chore(deps): update node.js to v22.20.0 2025-09-25 02:02:48 +00:00
renovate[bot]
b1f89296ff
chore(deps): update dependency ollama to v0.6.0 2025-09-25 02:02:42 +00:00
renovate[bot]
1948302a64
chore(deps): update dependency @tailwindcss/typography to v0.5.19 2025-09-25 02:01:53 +00:00
Elian Doran
187585b32f
style(next): fix alignment of multiplicity in promoted attrs 2025-09-24 23:37:00 +03:00
Elian Doran
d351fd506a
chore(toast): get rid of redundant titles 2025-09-24 23:10:14 +03:00
Elian Doran
1cf29c985e
Translations update from Hosted Weblate (#7086) 2025-09-24 22:57:32 +03:00
Jiri Novacek
04374540ad
Translated using Weblate (Czech)
Currently translated at 2.8% (11 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/cs/
2025-09-24 21:40:24 +02:00
Jiri Novacek
ce8f3a4f8f
Translated using Weblate (Czech)
Currently translated at 0.6% (11 of 1603 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/cs/
2025-09-24 21:40:24 +02:00
Krzysztof Kaplon
acb21b992d
Translated using Weblate (Polish)
Currently translated at 75.0% (286 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/pl/
2025-09-24 21:40:23 +02:00
Elian Doran
15f344fe4a
feat(toast): improve layout for toasts without title 2025-09-24 22:40:03 +03:00
Elian Doran
120324c3f0
style(next): show toast titles again 2025-09-24 22:03:35 +03:00
Elian Doran
59ce8b912d
feat(ws): add a warning toast if websocket gets disconnected 2025-09-24 21:56:15 +03:00
Elian Doran
619888847b
chore(options/mfa): alert contained escaped characters 2025-09-24 21:56:15 +03:00
Elian Doran
06b782e91d
chore(deps): update dependency jiti to v2.6.0 (#7066) 2025-09-24 21:22:43 +03:00
renovate[bot]
1d7e0a193a
chore(deps): update dependency jiti to v2.6.0 2025-09-24 18:09:03 +00:00
Elian Doran
2d815852e4
chore(deps): update typescript-eslint monorepo to v8.44.1 (#7062) 2025-09-24 21:06:45 +03:00
Elian Doran
735a7104f1
chore(deps): update dependency @eslint/compat to v1.4.0 (#7065) 2025-09-24 21:06:17 +03:00
Elian Doran
e3e4772aab
chore(deps): update dependency lint-staged to v16.2.0 (#7067) 2025-09-24 21:05:54 +03:00
Elian Doran
8bb65b94d0
chore(deps): update svelte monorepo (#7068) 2025-09-24 21:04:20 +03:00
renovate[bot]
b9edae4fc9
chore(deps): update svelte monorepo 2025-09-24 17:20:37 +00:00
renovate[bot]
27aae18345
chore(deps): update dependency @eslint/compat to v1.4.0 2025-09-24 17:19:28 +00:00
renovate[bot]
47db63d909
chore(deps): update typescript-eslint monorepo to v8.44.1 2025-09-24 17:18:48 +00:00
renovate[bot]
8ebeead32c
chore(deps): update dependency lint-staged to v16.2.0 2025-09-24 17:15:03 +00:00
Elian Doran
09d43e710f
chore(deps): update dependency @smithy/middleware-retry to v4.3.0 (#7081) 2025-09-24 20:12:54 +03:00
Elian Doran
7240f64a49
chore(deps): update dependency @playwright/test to v1.55.1 (#7080) 2025-09-24 20:12:42 +03:00
Elian Doran
ab868d76db
chore(deps): update dependency @anthropic-ai/sdk to v0.63.1 (#7079) 2025-09-24 20:12:24 +03:00
renovate[bot]
acdaf6a636
chore(deps): update dependency @playwright/test to v1.55.1 2025-09-24 17:11:12 +00:00
Elian Doran
6dccef1689
fix(deps): update dependency mind-elixir to v5.2.1 (#7064) 2025-09-24 20:10:13 +03:00
Elian Doran
f7ec726b15
fix(deps): update dependency @codemirror/view to v6.38.3 (#7063) 2025-09-24 20:09:47 +03:00
Elian Doran
781570f950
chore(deps): update pnpm to v10.17.1 (#7061) 2025-09-24 20:08:51 +03:00
Elian Doran
7774d41457
chore(deps): update dependency vite to v7.1.7 (#7060) 2025-09-24 20:08:38 +03:00
Elian Doran
27e6d1b00b
chore(release): prepare for v0.99.0 2025-09-24 19:20:20 +03:00
Elian Doran
73ea0cce32
docs(release): document v0.99.0 2025-09-24 19:19:59 +03:00
Elian Doran
a1741b8634
chore(ci/docker): version number set to late 2025-09-24 19:12:28 +03:00
Elian Doran
a0f1a63fb6
Revert "fix: re-enable rootless images" (#7082) 2025-09-24 19:07:06 +03:00
Elian Doran
7c13373f16
Revert "fix: re-enable rootless images" 2025-09-24 19:06:27 +03:00
Elian Doran
239b7b810d
Translations update from Hosted Weblate (#7077) 2025-09-24 07:52:45 +03:00
renovate[bot]
29c8bcaf6e
chore(deps): update dependency @smithy/middleware-retry to v4.3.0 2025-09-24 01:16:44 +00:00
renovate[bot]
2b3ae94f8d
chore(deps): update dependency @anthropic-ai/sdk to v0.63.1 2025-09-24 01:15:20 +00:00
green
e753924c4b
Translated using Weblate (Japanese)
Currently translated at 83.8% (1341 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-09-23 19:20:39 +00:00
Elian Doran
8080d3b8a7
fix(client/search): unable to search for empty string 2025-09-23 22:20:25 +03:00
Elian Doran
1f4dd04ef0
fix(client/search): highlight remaining stuck 2025-09-23 22:08:17 +03:00
Elian Doran
348432bd5b
fix(client/search): not reacting to change 2025-09-23 21:55:39 +03:00
Elian Doran
d2962b060e
fix(client/search): results not being displayed 2025-09-23 21:44:39 +03:00
Elian Doran
fae66e555e
chore(client/search): fix improper nesting 2025-09-23 20:33:43 +03:00
Elian Doran
aeb9bfc1fd
feat(client/options): add a description for the editor features 2025-09-23 20:31:15 +03:00
Elian Doran
5a15024e59
refactor(client): use type safety for option names 2025-09-23 20:24:55 +03:00
Elian Doran
23c2acaab7
fix(client): note title shown for read-only notes for the first time 2025-09-23 20:24:55 +03:00
Elian Doran
4cc55b02ab
feat(client/text): provide a way to disable slash commands 2025-09-23 20:24:55 +03:00
Elian Doran
71ce9c459e
refactor(client/options): deduplicate editor feature checkbox 2025-09-23 20:24:55 +03:00
Elian Doran
97b5ea0798
fix(share): text not visible under dark theme in prod 2025-09-23 20:24:54 +03:00
Elian Doran
5fd0f79d44
Translations update from Hosted Weblate (#7074) 2025-09-23 17:30:17 +03:00
Krzysztof Kaplon
2a090c7014
Translated using Weblate (Polish)
Currently translated at 72.9% (278 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/pl/
2025-09-23 15:02:09 +02:00
Krzysztof Kaplon
126030f17e
Translated using Weblate (Polish)
Currently translated at 29.7% (476 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pl/
2025-09-23 15:02:07 +02:00
Микола Копитін
f22fd1d454
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/uk/
2025-09-23 15:02:06 +02:00
green
8d4c656a6f
Translated using Weblate (Japanese)
Currently translated at 98.1% (374 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ja/
2025-09-23 15:02:05 +02:00
greenfork
3c5a053a2c
Translated using Weblate (Russian)
Currently translated at 100.0% (1599 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-09-23 15:02:04 +02:00
green
664b7e45e7
Translated using Weblate (Japanese)
Currently translated at 74.5% (1192 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-09-23 15:02:00 +02:00
renovate[bot]
5c618abc79
fix(deps): update dependency mind-elixir to v5.2.1 2025-09-23 00:29:35 +00:00
renovate[bot]
220cf8aedd
fix(deps): update dependency @codemirror/view to v6.38.3 2025-09-23 00:28:46 +00:00
renovate[bot]
78f16ddc12
chore(deps): update pnpm to v10.17.1 2025-09-23 00:27:00 +00:00
renovate[bot]
0048e95e0c
chore(deps): update dependency vite to v7.1.7 2025-09-23 00:26:49 +00:00
Elian Doran
13e9fcbfba
chore(global_menu): indicate external changes to zoom 2025-09-22 20:19:00 +03:00
Elian Doran
5249911ddb
chore(client): remove redundant log 2025-09-22 20:08:37 +03:00
Elian Doran
59fe1299b2
chore(global_menu): make zoom item unclickable to avoid misclicks 2025-09-22 20:07:10 +03:00
Elian Doran
1c9f1ba82c
chore(global_menu): dismiss menu when entering fullscreen 2025-09-22 20:06:01 +03:00
Elian Doran
311f4aded8
fix(global_menu): zoom controls tooltip overlapping 2025-09-22 20:03:06 +03:00
Elian Doran
ed8df51216
fix(desktop): wrong separator in spellcheck context menu 2025-09-22 19:59:45 +03:00
Elian Doran
5e4d403556
fix(ci/docker): upload digest failing due to x64 name 2025-09-22 19:51:58 +03:00
Elian Doran
f3a9c718ad
fix(ci/docker): upload digest failing 2025-09-22 19:32:55 +03:00
Elian Doran
f3733eb341
fix: re-enable rootless images (#7050) 2025-09-22 19:14:21 +03:00
Elian Doran
3b06845a71
fix(board): unable to create by clicking outside 2025-09-22 18:52:41 +03:00
Elian Doran
94e20c44e5
fix(desktop): background effects always on 2025-09-22 18:45:45 +03:00
Elian Doran
1638fd8590
fix(ribbon): unable to set content language to "none" 2025-09-22 18:37:03 +03:00
Elian Doran
effe0a4f51
chore(options_init): disable bold & italic as default highlight options 2025-09-22 18:33:15 +03:00
Elian Doran
bb3ac277f4
feat(ribbon): hide file details when opening PDF (closes #6873) 2025-09-22 18:27:13 +03:00
Elian Doran
db46ca0a76
chore(react/type_widget): insert date/time to text 2025-09-22 18:03:19 +03:00
Elian Doran
a26ee0d769
chore(react/type_widget): hot-pluggable keyboard shortcuts 2025-09-22 17:52:05 +03:00
Adorian Doran
68aacfea6f Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-09-22 13:57:09 +03:00
Adorian Doran
e0056a457e style(legacy)/jump to note: fix broken selection colors 2025-09-22 13:56:58 +03:00
Elian Doran
4d6c2fd8cb
Update typo in ru translation (#7053) 2025-09-22 13:53:02 +03:00
Elian Doran
f63b8cef2d
Translations update from Hosted Weblate (#7055) 2025-09-22 13:51:55 +03:00
renato rinaldi
f19da292c1
Translated using Weblate (Italian)
Currently translated at 35.6% (136 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/it/
2025-09-22 12:51:18 +02:00
Elian Doran
36003b76e9
Translations update from Hosted Weblate (#7054) 2025-09-22 13:50:17 +03:00
Elian Doran
46db047fa0
chore(react/type_widget): scroll to end & focus 2025-09-22 13:36:18 +03:00
Elian Doran
efaa1815ec
chore(react/type_widget): classic editor & inspector 2025-09-22 13:19:20 +03:00
Jukka Tainio
1c627dec05
Translated using Weblate (Finnish)
Currently translated at 2.6% (10 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/fi/
2025-09-22 10:02:00 +00:00
Elian Doran
2eab8b92d5
chore(react/type_widget): react to content language changes 2025-09-22 12:49:03 +03:00
Elian Doran
8a185262fb
chore(react/type_widget): refactor event handling slightly 2025-09-22 12:43:43 +03:00
Elian Doran
f6631b7b9a
chore(react/type_widget): save on change 2025-09-22 12:41:32 +03:00
Elian Doran
1e323de01b
chore(react/type_widget): port watchdog state change 2025-09-22 12:13:31 +03:00
Elian Doran
f00f2ee5e4
chore(react/type_widget): port notification warning 2025-09-22 12:07:44 +03:00
Elian Doran
78b83cd17b
chore(react/type_widget): get editable text to show up 2025-09-22 12:02:45 +03:00
Dmitry Matveyev
2dcb67b099
Update typo in ru translation 2025-09-22 10:59:08 +03:00
Elian Doran
adea3abff4
chore(react/type_widget): add missing interface 2025-09-22 10:52:03 +03:00
Elian Doran
206618fd54
style(next): improve code block hiehgt in note list 2025-09-22 10:45:55 +03:00
Elian Doran
58a6d70cbb
chore(react/type_widget): finalize porting canvas 2025-09-22 10:40:57 +03:00
Elian Doran
44b92a024c
chore(react/type_widget): set up self-hosted fonts 2025-09-22 10:14:24 +03:00
Elian Doran
68bf5b7e68
chore(react/type_widget): set up canvas persistence 2025-09-22 09:22:09 +03:00
Elian Doran
8c85aa343c
chore(react/type_widget): add more options to canvas 2025-09-22 08:40:56 +03:00
Elian Doran
de8a090410
Update dependency jsonc-eslint-parser to v2.4.1 (#7051) 2025-09-22 08:09:56 +03:00
Elian Doran
fc09a41ba0
Update svelte monorepo (#7052) 2025-09-22 08:09:37 +03:00
renovate[bot]
12f461d0ea
Update svelte monorepo 2025-09-22 01:26:01 +00:00
renovate[bot]
1256338ab5
Update dependency jsonc-eslint-parser to v2.4.1 2025-09-22 01:25:21 +00:00
Quik2007
43c761328d fix: re-enable rootless images 2025-09-21 23:09:20 +02:00
Elian Doran
592a8b2232
chore(react/type_widgets): start porting canvas 2025-09-21 23:33:38 +03:00
Elian Doran
e1ac319a7b
chore(react/type_widgets): active note not refreshing 2025-09-21 22:59:16 +03:00
Elian Doran
763c489cd3
feat(render): integrate with search 2025-09-21 22:58:58 +03:00
Elian Doran
b990770e48
feat(render): add a floating button to refresh 2025-09-21 22:44:39 +03:00
Elian Doran
344607d437
chore(react/type_widgets): get render to work 2025-09-21 22:33:11 +03:00
Elian Doran
70d0a5441a
chore(react/type_widget): port render note partially 2025-09-21 22:24:51 +03:00
Elian Doran
61278e1f5a
chore(react/type_widget): use different loading mechanism 2025-09-21 21:49:23 +03:00
Elian Doran
b73ea6ac4f
chore(react/type_widget): reflect note type changes 2025-09-21 21:13:04 +03:00
Elian Doran
5d833c1ac4
chore(react/type_widget): finalize read-only text 2025-09-21 20:50:26 +03:00
Elian Doran
2947682783
chore(react/type_widget): add code block & image integration 2025-09-21 20:47:40 +03:00
Elian Doran
fb46e09428
chore(react/type_widget): render reference links 2025-09-21 20:34:02 +03:00
Elian Doran
ff941b2cb1
chore(react/type_widget): render math in read-only text 2025-09-21 20:29:38 +03:00
Elian Doran
a8007b9063
chore(react/type_widget): render included notes in read-only text 2025-09-21 20:27:58 +03:00
Elian Doran
2f3c2bbac8
chore(react/type_widget): render inline mermaid in read-only text 2025-09-21 20:15:57 +03:00
Elian Doran
e4eb96a1ae
chore(react/type_widget): start porting read-only text 2025-09-21 20:03:28 +03:00
Elian Doran
ffe4e9b8de
chore(react/type_widget): add deletion widget 2025-09-21 19:43:36 +03:00
Elian Doran
f2b4f49be2
chore(react/type_widget): convert attachment actions 2025-09-21 19:34:03 +03:00
Adorian Doran
6f565afd44 style/global menu: improve the full screen / zoom buttons, refactor 2025-09-21 15:13:08 +03:00
Elian Doran
376ef0c679
chore(react/type_widgets): introduce disabled tooltip 2025-09-21 12:02:02 +03:00
Adorian Doran
5c27e96960 style(next)/tab bar: tweak appearance 2025-09-21 12:00:23 +03:00
Adorian Doran
c0337befa7 style/tab bar: tweak the alignment of icons 2025-09-21 11:41:05 +03:00
Adorian Doran
3bda10caf0 style/title row/note icon: tweak alignment 2025-09-21 11:37:32 +03:00
Elian Doran
b7574b3ca7
chore(react/type_widget): start porting attachment actions 2025-09-21 11:06:20 +03:00
Adorian Doran
a25e376f85 style/ribbon/similar notes: reduce the font size of the items 2025-09-21 11:04:22 +03:00
Adorian Doran
1b238a98de style(next)/ribbon/note map: fix the padding of the "fix nodes" button 2025-09-21 10:59:00 +03:00
Adorian Doran
38659e501e style(next)/ribbon: tweak the editability dropdown 2025-09-21 10:57:41 +03:00
Elian Doran
ae1954c320
chore(react/type_widget): port attachment detail 2025-09-21 10:57:08 +03:00
Elian Doran
3171413a18
chore(react/type_widget): react to attachment changes 2025-09-21 10:40:19 +03:00
Elian Doran
dc73467d34
chore(react/type_widget): list attachments with content 2025-09-21 10:32:12 +03:00
Elian Doran
58b14ae31c
fix(react/type_widget): mind map attachment incorrect 2025-09-21 10:32:01 +03:00
Adorian Doran
113af940c1 client/dialogs/note type chooser: fix broken headings regression 2025-09-21 10:31:36 +03:00
Elian Doran
e117fbd471
chore(react/type_widget): port atttachment list header 2025-09-21 09:57:09 +03:00
Elian Doran
9a3f675950
chore(react/type_widget): finalize mind map with export PNG/SVG 2025-09-21 09:46:58 +03:00
Elian Doran
26400f2590
fix(mindmap): search not working 2025-09-21 09:35:23 +03:00
Elian Doran
7d99a92bd9
chore(react/type_widget): save mindmap attachment 2025-09-21 09:26:44 +03:00
Elian Doran
3417e37f16
chore(react/type_widget): save direction upon button press 2025-09-21 09:20:00 +03:00
Elian Doran
089ca7fd29
Update dependency mind-elixir to v5.2.0 (#7047) 2025-09-21 08:45:03 +03:00
renovate[bot]
529523dd4e
Update dependency mind-elixir to v5.2.0 2025-09-21 00:33:07 +00:00
Adorian Doran
89417f15dc
UI improvements (#7046) 2025-09-21 03:30:49 +03:00
Adorian Doran
51692aabd5 style(next)/dropdowns: fix scrollbar broken corners 2025-09-21 03:09:39 +03:00
Adorian Doran
9cde4c26d9 style(next)/horizontal layout launcher: increase the contrast of icons for the dark theme 2025-09-21 02:28:27 +03:00
Adorian Doran
c7bce91b67 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/ui-improvements 2025-09-21 02:26:02 +03:00
Adorian Doran
91b6910a9c style(next)/horizontal layout launcher: increase the contrast of icons for the dark theme 2025-09-21 02:25:49 +03:00
Adorian Doran
9fb37968f8 style(next)/quick search/results dropdown: temporary workaround - improve appearance 2025-09-21 02:18:33 +03:00
Adorian Doran
6cfc6509f6 style(next)/quick search/results dropdown: add a temporary workaround for the broken backdrop effect when the background effects are active 2025-09-21 02:09:55 +03:00
Adorian Doran
fd054693d9 style(next)/note map: fix the broken padding of the "Fix nodes" button 2025-09-21 01:54:44 +03:00
Adorian Doran
8b65de2442 style/editor forms/text inputs: fix the hover state background color overriding the focused state background color 2025-09-21 01:44:08 +03:00
Adorian Doran
25905ebff7 style/dropdowns: tweak the appearance of keyboard selected items 2025-09-21 01:34:11 +03:00
Elian Doran
e88b59009a
Translations update from Hosted Weblate (#7043) 2025-09-20 23:11:57 +03:00
Kuzma Simonov
3aee1c8546
Translated using Weblate (Russian)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ru/
2025-09-20 20:02:08 +00:00
Kuzma Simonov
2dd554a8be
Translated using Weblate (Russian)
Currently translated at 100.0% (1599 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-09-20 20:02:06 +00:00
fr0st
f4fae04327
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/pt_BR/
2025-09-20 20:02:04 +00:00
fr0st
21032d1bb8
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (1599 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pt_BR/
2025-09-20 20:02:02 +00:00
Adorian Doran
6745b887fb style/global menu button: fix the focus indicator 2025-09-20 22:46:56 +03:00
Elian Doran
143e6a556c
chore(react/type_widget): persist data 2025-09-20 22:22:20 +03:00
Adorian Doran
d0d166e426 style/global menu button: tweak appearance 2025-09-20 22:07:59 +03:00
Adorian Doran
754b95876e style/global menu button: tweak appearance 2025-09-20 22:04:37 +03:00
Elian Doran
02259c55f3
chore(react/type_widget): get mindmap to render 2025-09-20 21:52:57 +03:00
Adorian Doran
0bb10cf3ee style/global menu button: tweak appearance 2025-09-20 21:50:27 +03:00
Elian Doran
cc19a217ad
chore(react/type_widget): finalize SVG split editor 2025-09-20 21:34:56 +03:00
Elian Doran
d95ed4a5d2
chore(react/type_widget): export as SVG/PNG 2025-09-20 21:29:20 +03:00
Elian Doran
469683f30f
chore(react/type_widget): reimplement zoom + reset buttons 2025-09-20 21:23:34 +03:00
Elian Doran
42d0cc12b5
chore(react/type_widget): more generic repositioning 2025-09-20 21:19:19 +03:00
Elian Doran
b376842e2d
chore(react/type_widget): reposition on split resize 2025-09-20 21:12:29 +03:00
Elian Doran
145ff1a2a5
chore(react/type_widget): restore pan/zoom 2025-09-20 21:07:51 +03:00
Adorian Doran
d276cdf519 style/floating buttons: fix the offset of the "Show buttons" button on canvas notes 2025-09-20 17:05:06 +03:00
Adorian Doran
2768b76278 style(next)/horizontal layout: tweak the show/hide tree button 2025-09-20 16:36:43 +03:00
Elian Doran
8e9f5fb486
chore(react/type_widget): fix 4px scroll in SVG editor 2025-09-20 14:34:15 +03:00
Elian Doran
d244803501
chore(deps): update dependency svelte to v5.39.3 (#7038) 2025-09-20 14:18:21 +03:00
Elian Doran
3dd757a857
chore(react/type_widget): disable code background change in split 2025-09-20 14:16:34 +03:00
Elian Doran
bde7b753a0
chore(react/type_widget): save SVG attachment 2025-09-20 14:08:50 +03:00
Elian Doran
02017ebd9d
chore(react/type_widget): bring back on error opacity 2025-09-20 13:47:12 +03:00
Elian Doran
8caaa99415
chore(react/type_widget): basic SVG rendering 2025-09-20 13:27:58 +03:00
Elian Doran
c49b90d33f
chore(react/type_widget): add preview buttons 2025-09-20 13:15:13 +03:00
Elian Doran
6dd939df14
chore(react/type_widget): bring back update interval 2025-09-20 13:04:36 +03:00
Elian Doran
b19da81572
chore(react/type_widget): force line wrapping 2025-09-20 13:00:15 +03:00
Elian Doran
425ffc02d8
chore(react/type_widget): bring back split resizer 2025-09-20 12:54:18 +03:00
Elian Doran
695e8489ad
chore(react/type_widget): pass error information 2025-09-20 12:41:39 +03:00
Elian Doran
2f4e13b1bb
chore(react/type_widget): bring back order of editor/preview 2025-09-20 12:38:05 +03:00
Elian Doran
c8a9b994d6
chore(react/type_widget): bring back read-only 2025-09-20 12:34:36 +03:00
Elian Doran
3d5b319eb2
chore(react/type_widget): bring back split orientation 2025-09-20 12:31:45 +03:00
Elian Doran
bed3c2dc67
chore(react/type_widget): prepare structure for split editor 2025-09-20 12:25:11 +03:00
Elian Doran
256d1863d2
chore(react/type_widget): port backend log 2025-09-20 12:16:51 +03:00
Elian Doran
4a4502dfea
chore(react/type_widget): bring back read-only temporary disable 2025-09-20 11:59:43 +03:00
Elian Doran
91f21e149b
chore(react/type_widget): bring back focusing after tab switch 2025-09-20 11:46:23 +03:00
Elian Doran
6ef468adc4
chore(react/type_widget): bring back scroll to end 2025-09-20 11:38:28 +03:00
Elian Doran
e576fa03da
chore(react/type_widget): fix sizing 2025-09-20 11:30:40 +03:00
Elian Doran
6bcce08042
chore(react/type_widget): react to line wrapping 2025-09-20 11:25:07 +03:00
Elian Doran
f496caa92c
refactor(react/type_widget): separate Trilium-specific implementation 2025-09-20 11:22:48 +03:00
Elian Doran
43dcdf8925
chore(react/type_widget): apply background color for read-only code notes 2025-09-20 11:11:00 +03:00
Elian Doran
2c014fb071
chore(react/type_widget): set up background color for code notes 2025-09-20 11:02:43 +03:00
Elian Doran
2273507ef4
chore(react/type_widget): unnecessary imports 2025-09-20 10:37:34 +03:00
Elian Doran
70a710be79
chore(react/type_widget): react to code theme 2025-09-20 10:14:21 +03:00
Elian Doran
7a3ee7971c
chore(react/type_widget): add back keyboard shortcut for editable code 2025-09-20 10:08:46 +03:00
Elian Doran
c86123e3a9
chore(react/type_widget): integrate touch bar for editable code 2025-09-20 10:03:00 +03:00
Elian Doran
9480227b69
chore(react/type_widget): add more options to editable code 2025-09-20 09:59:49 +03:00
Elian Doran
79be13e6c7
chore(react/type_widget): reload content on external change 2025-09-20 09:56:55 +03:00
Elian Doran
63e3a27b34
refactor(react/type_widget): simplify handling of new notes 2025-09-20 09:47:28 +03:00
Elian Doran
9eae6620d0
chore(react/type_widget): basic editable code 2025-09-20 09:44:36 +03:00
Elian Doran
6517dd1190
chore(react/type_widget): finalize readonly code 2025-09-20 09:06:55 +03:00
Elian Doran
f72087acc3
chore(react/type_widget): port read only code basic functionality 2025-09-20 08:57:47 +03:00
renovate[bot]
158ca2acf2
chore(deps): update dependency svelte to v5.39.3 2025-09-20 05:17:09 +00:00
Elian Doran
3ef44febd8
chore(deps): update dependency @tailwindcss/typography to v0.5.18 (#7037) 2025-09-20 08:14:52 +03:00
Elian Doran
5be41ee669
chore(deps): update dependency @stylistic/eslint-plugin to v5.4.0 (#7039) 2025-09-20 08:14:05 +03:00
Elian Doran
b887d4a7d2
fix(deps): update dependency eslint-linter-browserify to v9.36.0 (#7040) 2025-09-20 08:13:46 +03:00
Elian Doran
be1de86a42
fix(deps): update eslint monorepo to v9.36.0 (#7041) 2025-09-20 08:13:06 +03:00
renovate[bot]
345d098e5f
fix(deps): update eslint monorepo to v9.36.0 2025-09-20 01:17:03 +00:00
renovate[bot]
fae5421516
fix(deps): update dependency eslint-linter-browserify to v9.36.0 2025-09-20 01:15:47 +00:00
renovate[bot]
934f144bf9
chore(deps): update dependency @stylistic/eslint-plugin to v5.4.0 2025-09-20 01:14:52 +00:00
renovate[bot]
5affb837a6
chore(deps): update dependency @tailwindcss/typography to v0.5.18 2025-09-20 01:14:03 +00:00
Adorian Doran
188319d2d9
UI / theme improvements (#7036) 2025-09-20 04:11:40 +03:00
Adorian Doran
fe762577b1
Merge branch 'main' into feat/theme/improvements 2025-09-20 04:04:51 +03:00
Adorian Doran
f30da3d13b client/menus: improve the multicolumn breaking strategy 2025-09-20 04:02:46 +03:00
Adorian Doran
053a84483c client/menus: improve the multicolumn breaking strategy 2025-09-20 03:25:16 +03:00
Adorian Doran
34338a795f style/menus: document a style 2025-09-20 03:17:12 +03:00
Adorian Doran
012aceb7f2 style/menus: remove no longer used styles 2025-09-20 03:11:54 +03:00
Adorian Doran
a92604e92f client/menus: avoid unnecessary menu item no-column-break grouping 2025-09-20 03:09:56 +03:00
Adorian Doran
9a9edf16c4 client/menus: manage proper column breaking on Firefox 2025-09-20 02:59:41 +03:00
Adorian Doran
daba190e74 client/menus: rearrange "Insert note" submenu items 2025-09-20 01:57:58 +03:00
Adorian Doran
8877eded9b style/menus: tweak header layout and add multi-column menu divider line 2025-09-20 01:11:24 +03:00
Adorian Doran
0b05f597dc client/menus: refactor 2025-09-20 01:08:36 +03:00
Adorian Doran
b26803b627 client/menus: refactor 2025-09-20 00:34:25 +03:00
Adorian Doran
17e87278eb client/menus: add support for menu headers 2025-09-20 00:18:56 +03:00
Adorian Doran
79718c7e6e style(next)/bulk actions dialog: fix the alignment of the help and close buttons for actions 2025-09-19 23:46:14 +03:00
Elian Doran
0917c25bce
Translations update from Hosted Weblate (#7034) 2025-09-19 22:49:56 +03:00
Elian Doran
77e7c414b6
chore(react/type_widget): react to note revisions 2025-09-19 22:45:12 +03:00
Elian Doran
3a68395ca7
feat(react/type_widget): add copy image reference floating button to image 2025-09-19 22:42:06 +03:00
Elian Doran
0a0d9775b2
chore(react/type_widget): port image 2025-09-19 22:41:18 +03:00
Elian Doran
aa6e68ad39
chore(react/type_widget): port file 2025-09-19 22:22:45 +03:00
Elian Doran
034073a5e1
chore(react/type_widget): fix missing tbody 2025-09-19 22:18:10 +03:00
ssantos
45c3f6d44a
Translated using Weblate (Portuguese)
Currently translated at 99.7% (380 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/pt/
2025-09-19 21:02:01 +02:00
Elian Doran
d83ff641d7
chore(react/type_widget): bring back full-height 2025-09-19 21:55:37 +03:00
Adorian Doran
90337016e7 style(next)/launcher/calendar: fix the rounded corners of the arrow buttons 2025-09-19 21:49:01 +03:00
Adorian Doran
c0c1c8a9c2 style(next)/launcher/calendar: restyle the week number column 2025-09-19 21:41:44 +03:00
Elian Doran
071fcb85c9
chore(react/type_widget): basic integration of web view 2025-09-19 21:27:45 +03:00
Elian Doran
daa5ee93e9
chore(react/type_widget): port content widget 2025-09-19 21:18:09 +03:00
Adorian Doran
42a082f11b style: fix the spacing of the keyboard shortcuts in menu items 2025-09-19 21:10:26 +03:00
Elian Doran
db7cda3fe6
chore(react/type_widget): have book react to reloaded children 2025-09-19 19:06:07 +03:00
Elian Doran
fa55c5720e
chore(react/type_widget): port book 2025-09-19 19:03:31 +03:00
Elian Doran
d1a9890932
chore(react/type_widget): port protected session 2025-09-19 18:55:04 +03:00
Elian Doran
c9fe358811
chore(react/type_widget): port none type widget 2025-09-19 18:35:49 +03:00
Elian Doran
bbb927c83f
chore(react/type_widget): port doc widget 2025-09-19 18:32:45 +03:00
Elian Doran
07b86c8cf7
chore(react/type_widget): port empty workspace switcher 2025-09-19 18:15:10 +03:00
Elian Doran
3dbf20af52
chore(react/type_widget): port empty search 2025-09-19 18:09:23 +03:00
Elian Doran
1fb329565f
chore(react/type_widget): move old widgets 2025-09-19 17:40:24 +03:00
Elian Doran
06bfb0073a
chore(react/type_widget): determine note type 2025-09-19 17:31:10 +03:00
Elian Doran
3d64c320fb
chore(react/type_widget): start with fresh note detail 2025-09-19 16:53:31 +03:00
Elian Doran
891e6b9751
fix(canvas): canvas overwriting other notes (closes #6788) 2025-09-19 16:35:27 +03:00
Elian Doran
2be9d71659
fix(canvas): error when trying to save due to uninitialized API 2025-09-19 16:26:06 +03:00
Elian Doran
3f562332c7
chore(deps): update dependency @sveltejs/kit to v2.42.2 (#7028) 2025-09-19 09:31:17 +03:00
renovate[bot]
edd7e43b41
chore(deps): update dependency @sveltejs/kit to v2.42.2 2025-09-19 05:43:38 +00:00
Elian Doran
6ea1e31350
chore(deps): update dependency vite to v7.1.6 (#7029) 2025-09-19 08:41:19 +03:00
Elian Doran
770648619e
fix(deps): update dependency mermaid to v11.12.0 (#7030) 2025-09-19 08:40:39 +03:00
renovate[bot]
08c3e97a46
fix(deps): update dependency mermaid to v11.12.0 2025-09-19 02:26:36 +00:00
renovate[bot]
9a08b864ee
chore(deps): update dependency vite to v7.1.6 2025-09-19 02:25:50 +00:00
Elian Doran
039d6e6a4e
chore(ckeditor): update license 2025-09-18 23:09:16 +03:00
Elian Doran
36692a5ad7
Translations update from Hosted Weblate (#7027) 2025-09-18 22:41:55 +03:00
ssantos
67c7d7575d
Translated using Weblate (Portuguese)
Currently translated at 99.2% (378 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/pt/
2025-09-18 20:17:21 +02:00
Languages add-on
bb51eed0bc
Added translation using Weblate (Portuguese) 2025-09-18 18:13:46 +00:00
ssantos
adce041b02
Added translation using Weblate (Portuguese) 2025-09-18 20:13:44 +02:00
Elian Doran
183d11ff72
fix(client): global menu has outline 2025-09-18 16:19:23 +03:00
Elian Doran
a9f5b44fac
fix(client): dangling tooltips after closing split 2025-09-18 15:30:11 +03:00
Elian Doran
c4560c2bc8
fix(ribbon): classic toolbar becoming empty sometimes 2025-09-18 13:39:30 +03:00
Elian Doran
ba740eff9b
fix(client): global menu blur-behind not working 2025-09-18 12:36:39 +03:00
Elian Doran
9dcf46cbb3
chore(deps): update dependency @types/node to v22.18.6 (#7016) 2025-09-18 08:59:00 +03:00
renovate[bot]
7782b11186
chore(deps): update dependency @types/node to v22.18.6 2025-09-18 05:12:52 +00:00
Elian Doran
e1b8f973d5
chore(deps): update dependency @smithy/middleware-retry to v4.2.4 (#7015) 2025-09-18 08:08:35 +03:00
Elian Doran
a51e475095
chore(deps): update dependency electron to v37.5.1 (#7017) 2025-09-18 08:08:08 +03:00
Elian Doran
13685d2688
chore(deps): update dependency esbuild to v0.25.10 (#7018) 2025-09-18 08:07:10 +03:00
Elian Doran
8bef36c6c7
chore(deps): update dependency @anthropic-ai/sdk to v0.63.0 (#7019) 2025-09-18 08:05:41 +03:00
Elian Doran
207807e0c2
chore(deps): update dependency svelte to v5.39.2 (#7020) 2025-09-18 08:05:21 +03:00
renovate[bot]
b5c82af464
chore(deps): update dependency svelte to v5.39.2 2025-09-18 04:51:39 +00:00
Elian Doran
3fa95d4fee
Translations update from Hosted Weblate (#7022) 2025-09-18 07:50:31 +03:00
Newcomer1989
ee43b21b0c
Translated using Weblate (German)
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/de/
2025-09-18 04:49:38 +00:00
Newcomer1989
29e091461f
Translated using Weblate (German)
Currently translated at 100.0% (1599 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-09-18 04:49:38 +00:00
Elian Doran
5b6a2b1f5d
chore(deps): update pnpm to v10.17.0 (#7021) 2025-09-18 07:49:32 +03:00
Elian Doran
d657303f2f
fix(client): keyboard shortcuts offset in tree menu 2025-09-18 07:47:10 +03:00
renovate[bot]
a4d541ae1c
chore(deps): update pnpm to v10.17.0 2025-09-18 00:54:54 +00:00
renovate[bot]
b38631b04b
chore(deps): update dependency @anthropic-ai/sdk to v0.63.0 2025-09-18 00:53:04 +00:00
renovate[bot]
fe0f8ad83d
chore(deps): update dependency esbuild to v0.25.10 2025-09-18 00:52:13 +00:00
renovate[bot]
46950cbceb
chore(deps): update dependency electron to v37.5.1 2025-09-18 00:51:23 +00:00
renovate[bot]
9893de4642
chore(deps): update dependency @smithy/middleware-retry to v4.2.4 2025-09-18 00:49:37 +00:00
Elian Doran
b9055c6810
fix(client): close button not working on first render 2025-09-17 22:57:09 +03:00
Elian Doran
f068b335f5
Translations update from Hosted Weblate (#7014) 2025-09-17 20:53:57 +03:00
Dong-ha, Lee
7c750811cc
Translated using Weblate (Korean)
Currently translated at 1.3% (21 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ko/
2025-09-17 19:02:05 +02:00
Francis C
2edce23a29
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hant/
2025-09-17 19:02:03 +02:00
Francis C
3efe628eb7
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (381 of 381 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hans/
2025-09-17 19:02:01 +02:00
Elian Doran
fdbb88ccd1
Merge branch 'main' of https://github.com/TriliumNext/Trilium 2025-09-17 18:14:04 +03:00
Elian Doran
c44395887b
refactor(react): remove deprecated import 2025-09-17 12:05:06 +03:00
Elian Doran
1ae81abf0a
fix(collections/board): double entry on Enter + dismiss not working 2025-09-17 10:55:03 +03:00
Elian Doran
74b89098c5
fix(deps): update ckeditor monorepo (#7011) 2025-09-17 08:56:34 +03:00
Elian Doran
ae46798d1d
fix(client/dialogs): branch prefix initial value incorrect 2025-09-17 08:52:47 +03:00
Elian Doran
b502e999de
style(client): improve read-only note title 2025-09-17 08:50:37 +03:00
Elian Doran
57004ab848
fix(client): note title not working for in-app help 2025-09-17 08:50:23 +03:00
Elian Doran
fbd47025d6
chore(react): monkey patch boostrap tooltip handling 2025-09-17 08:47:13 +03:00
Elian Doran
f87d270caa
refactor(react): get rid of jQuery in static tooltip 2025-09-17 08:26:05 +03:00
renovate[bot]
2ccaf5f97c
fix(deps): update ckeditor monorepo 2025-09-17 05:01:16 +00:00
Elian Doran
641c6f4595
chore(dx/nix): fix flake fully (#7004) 2025-09-17 08:00:23 +03:00
Elian Doran
eb1039d9f7
chore(deps): update dependency @smithy/middleware-retry to v4.2.2 (#7007) 2025-09-17 07:59:32 +03:00
Elian Doran
349d946e6f
chore(deps): update dependency @types/node to v22.18.5 (#7008) 2025-09-17 07:59:10 +03:00
Elian Doran
170e271bb4
chore(deps): update dependency fs-extra to v11.3.2 (#7009) 2025-09-17 07:58:41 +03:00
Elian Doran
adca755598
chore(deps): update dependency ollama to v0.5.18 (#7010) 2025-09-17 07:58:19 +03:00
Elian Doran
f58cbc64bb
chore(deps): update dependency @sveltejs/kit to v2.42.1 (#7012) 2025-09-17 07:57:02 +03:00
Elian Doran
8d5e8c7ea8
chore(deps): update typescript-eslint monorepo to v8.44.0 (#7013) 2025-09-17 07:55:12 +03:00
renovate[bot]
411d61d251
chore(deps): update typescript-eslint monorepo to v8.44.0 2025-09-17 01:54:31 +00:00
renovate[bot]
e7556f7dfa
chore(deps): update dependency @sveltejs/kit to v2.42.1 2025-09-17 01:53:05 +00:00
renovate[bot]
3e0f07aa48
chore(deps): update dependency ollama to v0.5.18 2025-09-17 01:51:03 +00:00
renovate[bot]
e5a90662eb
chore(deps): update dependency fs-extra to v11.3.2 2025-09-17 01:50:24 +00:00
renovate[bot]
9886376738
chore(deps): update dependency @types/node to v22.18.5 2025-09-17 01:49:49 +00:00
renovate[bot]
73603f6593
chore(deps): update dependency @smithy/middleware-retry to v4.2.2 2025-09-17 01:49:04 +00:00
Elian Doran
88bc6739ca
chore(react): port create_pane_button 2025-09-16 23:05:43 +03:00
Elian Doran
a4e8e62452
chore(react): port close_pane_button 2025-09-16 23:01:33 +03:00
Elian Doran
78e45d095b
chore(react): port move_pane_button 2025-09-16 22:45:54 +03:00
FliegendeWurst
834c67aeff chore(dx/nix): fix flake fully 2025-09-16 18:05:56 +02:00
Elian Doran
23b798e392
Fix(build): Fix the issue that on ARM64 Linux failed to launch due to missing better_sqlite3.node (#7002) 2025-09-16 19:01:55 +03:00
Elian Doran
bd374bf617
Translations update from Hosted Weblate (#7003) 2025-09-16 18:59:38 +03:00
hllverel
87d8bcdde5
Translated using Weblate (Turkish)
Currently translated at 3.6% (59 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/tr/
2025-09-16 15:53:46 +00:00
Elian Doran
a840d91379
feat(desktop): use unique appdata if port is different 2025-09-16 18:43:01 +03:00
Elian Doran
0fcff6639f
refactor(desktop): use shorter imports 2025-09-16 18:27:52 +03:00
Elian Doran
f607c9793d
chore(desktop): use translation 2025-09-16 18:24:44 +03:00
Elian Doran
06254442c9
chore(desktop): use different mechanism for second instance 2025-09-16 18:22:32 +03:00
Linull/李林
c5725a5850
Merge branch 'main' into fix-arm64-sqlite 2025-09-16 22:22:00 +08:00
linull
dbad13c4e2 Add comments explaining exclude/include matrix configuration 2025-09-16 22:13:26 +08:00
linull
a274da80b7 Remove test workflow, prepare for PR
Core changes for ARM64 Linux better-sqlite3 fix:
- .github/workflows/release.yml: Use ubuntu-24.04-arm for ARM64 Linux
- .github/actions/build-electron/action.yml: Add TARGET_ARCH env var
- scripts/electron-rebuild.mts: Add arch parameter to rebuild
2025-09-16 22:02:51 +08:00
linull
66c05619df Fix path checking in test workflow 2025-09-16 21:51:27 +08:00
linull
67c99dea2d Fix flatpak dependencies for ARM64 build 2025-09-16 21:40:34 +08:00
linull
c77b7f8c74 Add detailed better_sqlite3.node checking
- Check exact path: app.asar.unpacked/node_modules/better-sqlite3/build/Release/
- Verify file existence and architecture
- Upload artifacts for manual inspection
2025-09-16 21:35:50 +08:00
linull
cc51fbe77e Update test workflow to build and check packages 2025-09-16 21:35:00 +08:00
linull
2e510f9dbb Fix better-sqlite3 for ARM64 Linux
- Use ubuntu-24.04-arm for ARM64 Linux builds
- Add TARGET_ARCH support to electron-rebuild
- Add test workflow for ARM64 fix
2025-09-16 21:29:16 +08:00
Elian Doran
e12df98d12
fix(desktop): export failing due to missing ckeditor5-content 2025-09-16 16:13:17 +03:00
Elian Doran
d8402755ee
chore(client): add fallback font 2025-09-16 16:03:27 +03:00
Elian Doran
614b704702
Translations update from Hosted Weblate (#6995) 2025-09-16 14:33:29 +03:00
dev loupiz
fb6e87b0a5
Translated using Weblate (Arabic)
Currently translated at 0.1% (1 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ar/
2025-09-16 11:55:33 +02:00
dev loupiz
80baa31221
Added translation using Weblate (Arabic) 2025-09-16 11:44:45 +02:00
dev loupiz
e2f1f56e06
Added translation using Weblate (Arabic) 2025-09-16 11:44:44 +02:00
Микола Копитін
8ed6aeb278
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (380 of 380 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/uk/
2025-09-16 11:44:43 +02:00
Микола Копитін
7123dc305f
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1599 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/uk/
2025-09-16 11:44:43 +02:00
Francis C
43cb632528
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1599 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-09-16 11:44:42 +02:00
Francis C
74c5b12a33
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1599 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-09-16 11:44:41 +02:00
Guido
acebed10b0
Translated using Weblate (Dutch)
Currently translated at 2.7% (44 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/nl/
2025-09-15 16:43:59 +00:00
Kuzma Simonov
21f5c36c05
Translated using Weblate (Russian)
Currently translated at 100.0% (380 of 380 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ru/
2025-09-15 16:43:58 +00:00
Kuzma Simonov
35c297e0d1
Translated using Weblate (Russian)
Currently translated at 100.0% (1599 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-09-15 16:43:57 +00:00
Elian Doran
e672890bd4
Translated using Weblate (Romanian)
Currently translated at 100.0% (380 of 380 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ro/
2025-09-15 16:43:56 +00:00
Elian Doran
a3f2dc5e76
Translated using Weblate (Romanian)
Currently translated at 100.0% (1599 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ro/
2025-09-15 16:43:56 +00:00
openapphub
a19db4fd2d
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1599 of 1599 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-09-15 16:43:55 +00:00
Elian Doran
982d136151
fix(client): menu stays active while printing 2025-09-15 19:42:31 +03:00
Elian Doran
377de59df9
fix(client): printing triggers twice 2025-09-15 19:40:32 +03:00
Elian Doran
b394fb1e86
fix(demo): geomap incorrect 2025-09-15 19:29:00 +03:00
Elian Doran
a5171ce093
fix(client): pressing "Download" on PDF preview also opens note 2025-09-15 18:58:58 +03:00
Elian Doran
c5dbaccea8
fix(client): pressing "Open" on PDF preview also opens note 2025-09-15 18:58:22 +03:00
Elian Doran
0c9d1e91bb
fix(client): opening a new tab doesn't preserve view scope 2025-09-15 18:46:08 +03:00
Elian Doran
a1ee0cb5d0
feat(client): disable background effects setting if native title bar is on 2025-09-15 18:41:03 +03:00
Elian Doran
a2d41247fe
fix(desktop): background effects breaking if native title bar is enabled 2025-09-15 18:35:04 +03:00
Elian Doran
97bb38e4f3
chore(deps): update dependency @types/node to v22.18.3 (#6976) 2025-09-15 09:03:48 +03:00
Elian Doran
8e8ae26828
chore(deps): update dependency debug to v4.4.3 (#6979) 2025-09-15 09:02:05 +03:00
Elian Doran
e241e91a84
fix(deps): update dependency @inlang/paraglide-js to v2.3.2 (#6983) 2025-09-15 08:41:00 +03:00
renovate[bot]
ea277cf972
chore(deps): update dependency debug to v4.4.3 2025-09-15 05:39:00 +00:00
Elian Doran
046e7ac4c3
fix(deps): update dependency @codemirror/lang-html to v6.4.10 (#6981) 2025-09-15 08:37:43 +03:00
Elian Doran
beea8d9edf
chore(deps): update dependency typedoc to v0.28.13 (#6980) 2025-09-15 08:37:08 +03:00
Elian Doran
1c928bb139
chore(deps): update dependency axios to v1.12.2 (#6978) 2025-09-15 08:36:43 +03:00
Elian Doran
987e6ad4c6
fix(deps): update dependency preact to v10.27.2 (#6984) 2025-09-15 08:36:12 +03:00
Elian Doran
b7732e53c6
chore(deps): update pnpm to v10.16.1 (#6985) 2025-09-15 08:34:37 +03:00
renovate[bot]
bfb34cf236
chore(deps): update dependency @types/node to v22.18.3 2025-09-15 05:34:26 +00:00
Elian Doran
50b9bebf98
chore(deps): update svelte monorepo (#6986) 2025-09-15 08:32:58 +03:00
Elian Doran
e21624ed52
fix(deps): update dependency marked to v16.3.0 (#6987) 2025-09-15 08:27:24 +03:00
Elian Doran
86a8085239
feat(readme): update readme with new docs site (#6990) 2025-09-15 08:20:06 +03:00
perf3ct
19c756a971
feat(readme): update readme with new docs site 2025-09-15 04:16:57 +00:00
renovate[bot]
b76c6ed444
fix(deps): update dependency marked to v16.3.0 2025-09-15 01:16:38 +00:00
renovate[bot]
bd07342689
chore(deps): update svelte monorepo 2025-09-15 01:16:02 +00:00
renovate[bot]
be1d7309fd
chore(deps): update pnpm to v10.16.1 2025-09-15 01:15:25 +00:00
renovate[bot]
9471fad7bb
fix(deps): update dependency preact to v10.27.2 2025-09-15 01:15:15 +00:00
renovate[bot]
642bf60f45
fix(deps): update dependency @inlang/paraglide-js to v2.3.2 2025-09-15 01:14:26 +00:00
renovate[bot]
7245e32876
fix(deps): update dependency @codemirror/lang-html to v6.4.10 2025-09-15 01:13:40 +00:00
renovate[bot]
dcc1a2dc51
chore(deps): update dependency typedoc to v0.28.13 2025-09-15 01:13:01 +00:00
renovate[bot]
2b3874d8e9
chore(deps): update dependency axios to v1.12.2 2025-09-15 01:12:15 +00:00
Elian Doran
29f9c311d2
chore(client): missing class selector 2025-09-14 20:57:36 +03:00
Elian Doran
adae78e747
fix(client): typecheck 2025-09-14 20:16:38 +03:00
Elian Doran
5b5f3233d8
feat: create a more seamless PWA top bar (#6960) 2025-09-14 19:10:03 +03:00
Elian Doran
e6889798ff
Translations update from Hosted Weblate (#6973) 2025-09-14 19:05:20 +03:00
Newcomer1989
a5ae6f7013
Translated using Weblate (German)
Currently translated at 100.0% (380 of 380 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/de/
2025-09-14 18:01:48 +02:00
Elian Doran
0ac2df8102
Port collections to React (#6837) 2025-09-14 19:01:30 +03:00
Elian Doran
ec5e7607f0
Merge branch 'main' into react/collections 2025-09-14 19:01:18 +03:00
Elian Doran
7588026640
fix(collapse-subtree): improve performance of collapsing subtrees from O(n) to O(v) (#6971) 2025-09-14 18:27:29 +03:00
Elian Doran
ad366ee928
docs(help): document new features for collections 2025-09-14 18:25:14 +03:00
Jakob Schlanstedt
1fc38e941e fix(collapse-subtree): improve performance of collapsing subtrees from O(n) to O(v)
Only collapse currently expanded descendants instead of the entire subtree.
Assuming n is the number of subnotes and v is the number of opened notes
2025-09-14 10:56:18 +02:00
Elian Doran
b80c4ed921
chore(client): remove unnecessary file 2025-09-14 11:43:26 +03:00
Elian Doran
1de9634c44
chore(client): remove unnecessary logs 2025-09-14 11:29:19 +03:00
Elian Doran
d8386bfbe8
(fix)redirectBareDomain not working when MFA is on (#6961) 2025-09-14 11:18:20 +03:00
Elian Doran
3a02ad7836
chore(deps): update dependency axios to v1.12.0 [security] (#6968) 2025-09-14 11:15:46 +03:00
Elian Doran
d36716bdb6
chore(client): tests not being able to access .tsx 2025-09-14 10:59:15 +03:00
Elian Doran
970f4b028d
chore(server): fix a few more type errors 2025-09-14 10:58:11 +03:00
Elian Doran
6077da0df8
chore(react/collections): fix the rest of client type errors 2025-09-14 10:53:54 +03:00
Elian Doran
e77e0c54f0
chore(react/collections): clean up old files 2025-09-14 10:40:14 +03:00
Elian Doran
4040f8ba89
chore(react): solve most type errors 2025-09-14 10:38:05 +03:00
Elian Doran
3ac0dfb2ad
refactor(react): add type safety for note relations 2025-09-14 10:22:20 +03:00
Elian Doran
b8e4947adb
refactor(react): add type safety for note labels 2025-09-14 10:17:06 +03:00
perf3ct
d1f2dfca05
fix(docs): handle quoted and unquoted paths in mkdocs fixer 2025-09-13 19:42:32 +00:00
renovate[bot]
c6a9b48aa0
chore(deps): update dependency axios to v1.12.0 [security] 2025-09-13 19:18:14 +00:00
perf3ct
fd690592ba
feat(docs): cleanse .md from hyperlinks in compiled mkdocs 2025-09-13 19:14:45 +00:00
Elian Doran
8a66ee7565
feat(tree): allow multiple selection for archive/unarchive 2025-09-13 17:26:27 +03:00
Elian Doran
f42d375cc7
feat(tree): archive/unarchive notes 2025-09-13 17:16:02 +03:00
Elian Doran
68beb0d419
feat(collections/table): disable "Insert row above/below" if sorting 2025-09-13 16:52:26 +03:00
Elian Doran
50d2814044
Translations update from Hosted Weblate (#6963) 2025-09-13 16:33:24 +03:00
Guido
8ddd27c258
Translated using Weblate (Dutch)
Currently translated at 12.8% (49 of 380 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/nl/
2025-09-13 15:02:01 +02:00
Francis C
ac78eada0a
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (380 of 380 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hant/
2025-09-13 15:02:00 +02:00
Francis C
6b0395dec8
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (380 of 380 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hans/
2025-09-13 15:01:59 +02:00
Elian Doran
5bb1432450
fix(react/collections/geomap): "note not found" when deleting GPX 2025-09-13 15:46:09 +03:00
Elian Doran
dc854cbd10
fix(react/collections/geomap): react to icon & color changes 2025-09-13 15:16:58 +03:00
Elian Doran
3128f2dace
fix(react/collections/geomap): corrupted map after closing split 2025-09-13 15:12:26 +03:00
Elian Doran
6ba494999c
chore(collections): support child notes on import as well 2025-09-13 14:47:40 +03:00
Elian Doran
050ff5d8cd
fix(collections): not updating on import 2025-09-13 14:42:02 +03:00
Elian Doran
9c8b0611ea
refactor: add typesafety to TaskContext 2025-09-13 13:44:23 +03:00
Elian Doran
777d5ab3b7
refactor: extract WS API into separate file 2025-09-13 13:07:31 +03:00
Elian Doran
39fecb3ffe
refactor: further improve task context types 2025-09-13 13:06:28 +03:00
Elian Doran
4cd0702cbb
refactor: proper websocket message types 2025-09-13 12:59:00 +03:00
Elian Doran
998688573d
refactor(server): integrate entity types changes into commons 2025-09-13 12:00:20 +03:00
Elian Doran
a6833f5a6f
fix(react/notelist): normal list/grid not showing if text 2025-09-13 11:46:17 +03:00
Elian Doran
a162d697da
fix(react/collections/geomap): note shifting on its own randomly 2025-09-13 11:14:46 +03:00
Elian Doran
f281e9691d
fix(react/ribbon/collection): default property not working 2025-09-13 11:05:37 +03:00
Elian Doran
cbc2ee3cd1
chore(react/collections/board): simply column dragging slightly 2025-09-13 11:02:56 +03:00
Elian Doran
4f469d0d3c
chore(react/collections/board): fix column dragging offset 2025-09-13 11:01:39 +03:00
Elian Doran
e77a49ace6
chore(react/collections/board): improve column dragging experience slightly 2025-09-13 10:43:48 +03:00
Elian Doran
8bde2092c6
chore(react/collections/board): improve note dragging experience 2025-09-13 10:13:37 +03:00
Elian Doran
7edfaad04e
chore(react/collections/board): note not properly marked as dragged 2025-09-13 09:59:01 +03:00
Elian Doran
ae5576f2a3
chore(react/collections/board): fix dragging from tree 2025-09-13 09:46:09 +03:00
Elian Doran
b934b2b6ca
chore(react/collections/board): use custom type for dragging cards 2025-09-13 09:41:54 +03:00
Elian Doran
87648f340b
chore(react/collections/board): prevent crash if dragging wrong JSON 2025-09-13 09:31:37 +03:00
Elian Doran
679abc6e3e
chore(react/collections/board): drag interfering with column title editing 2025-09-13 09:29:29 +03:00
Elian Doran
dd930261bf
feat(react/collections/board): improve multiline in "New item" 2025-09-13 09:21:33 +03:00
Elian Doran
92a0faf475
feat(react/collections/board): title editor not dismissing on blur 2025-09-13 09:20:18 +03:00
Elian Doran
3ce6b43018
feat(react/collections/board): disable autofill when entering note title 2025-09-13 09:18:52 +03:00
Elian Doran
220858926f
feat(react/collections/board): flickerless add new item 2025-09-13 09:15:31 +03:00
Elian Doran
d908a1b0d2
chore(react/collections/board): ignore empty titles 2025-09-12 23:41:56 +03:00
Elian Doran
b361cc0630
chore(react/collections/board): start with no name for new notes 2025-09-12 23:40:40 +03:00
Elian Doran
cd3663e041
chore(react/collections/board): fix add on blur if value not changed 2025-09-12 23:29:13 +03:00
Elian Doran
c53e927a55
fix(react/collections/board): column and card drag mixing 2025-09-12 23:14:15 +03:00
Elian Doran
7bbb15a535
fix(react/collections/board): no columns if dragging column onto itself 2025-09-12 22:49:58 +03:00
Elian Doran
0dddcbcfa1
feat(collections/board): remove note from board 2025-09-12 22:25:33 +03:00
Elian Doran
3175b75192
feat(collections/board): unarchive note 2025-09-12 22:08:32 +03:00
Elian Doran
6703b78457
refactor(collections/board): move within board to API 2025-09-12 21:50:56 +03:00
Elian Doran
7a61bbc297
feat(collections/board): allow dragging from note tree 2025-09-12 21:42:25 +03:00
Elian Doran
dd6003172d
feat(collections/geomap): show toast if drag not enabled 2025-09-12 21:06:54 +03:00
Elian Doran
338f3d536f
chore(ribbon): use "show" instead of "include" for archived notes 2025-09-12 19:51:53 +03:00
Elian Doran
27804384db
feat(ribbon): improve display of note ID 2025-09-12 19:48:35 +03:00
Elian Doran
7e5069c7d1
feat(collections/board): support archived notes 2025-09-12 19:34:54 +03:00
Elian Doran
0a813f9b53
feat(collections/table): support archived notes 2025-09-12 19:02:10 +03:00
Judging28
c79c21e965 (fix)check redirectBareDomain option first 2025-09-12 23:49:32 +08:00
Elian Doran
0c0bcb87f9
feat(collections/calendar): support archived notes 2025-09-12 18:35:15 +03:00
Elian Doran
f537852469
fix(ribbon): book properties overlapping 2025-09-12 18:20:17 +03:00
Elian Doran
ff422d112b
feat(collections/geomap): react to archived notes 2025-09-12 18:08:55 +03:00
Elian Doran
bf92280ed9
feat(collections): add book property to include archived notes 2025-09-12 18:03:07 +03:00
Elian Doran
d1e57e85b6
feat(collections): add label to show archived notes 2025-09-12 17:57:58 +03:00
Elian Doran
f300b6c8a2
refactor(collections/board): use API to reorder column 2025-09-12 17:39:52 +03:00
qwreey
4c0addd929
feat: Create a more seamless PWA top bar 2025-09-12 14:29:19 +00:00
Elian Doran
a08bc79ae4
feat(collections/board): add option to archive note 2025-09-12 17:21:59 +03:00
Elian Doran
8ad00084e1
style(collections/board): slightly bigger card padding 2025-09-12 17:08:36 +03:00
Elian Doran
0d275b3259
refactor(collections/board): use same title editor for new columns 2025-09-12 17:05:17 +03:00
Elian Doran
ede4b99bcd
style(collections/board): better new item that creates only after enter 2025-09-12 16:57:23 +03:00
Elian Doran
e99748e45f
style(collections/board): minor improvements to Add item 2025-09-12 16:28:26 +03:00
Elian Doran
114fdd6f91
style(collections/board): smoother shadows, no shift 2025-09-12 16:26:45 +03:00
Elian Doran
245675d409
chore(collections/board): reintroduce note click on the board 2025-09-12 16:24:35 +03:00
Elian Doran
e156f0a2e8
chore(collections/board): improve font size 2025-09-12 16:16:12 +03:00
Elian Doran
519d76d809
chore(collections/board): normalize line height when editing 2025-09-12 16:07:44 +03:00
Elian Doran
b4fa70d1d5
chore(collections/board): improve fit in multiline 2025-09-12 16:06:19 +03:00
Elian Doran
3825fb24f4
chore(collections/board): basic multiline editing 2025-09-12 16:02:44 +03:00
Elian Doran
79e51b543a
chore(collections/board): icon as part of the text for better fit on multiline 2025-09-12 15:49:45 +03:00
Elian Doran
54fe9dde70
chore(collections/board): floating edit button for note titles 2025-09-12 15:46:39 +03:00
Elian Doran
d224ffd6d3
chore(collections/board): remove more of the old files 2025-09-12 15:39:44 +03:00
Elian Doran
1e1a458add
chore(collections/board): bring back scrolling inside columns 2025-09-12 15:39:30 +03:00
Elian Doran
0844f60343
chore(collections/board): fix unnecessary repaint 2025-09-12 15:29:20 +03:00
Elian Doran
c8f9d6e6df
chore(collections/board): fix dragging notes across columns 2025-09-12 15:10:20 +03:00
Elian Doran
95a392ccfa
chore(collections/board): fix dragging notes not working 2025-09-12 15:08:00 +03:00
Elian Doran
2972a23f19
chore(collections/board): use context for column dragging 2025-09-12 14:48:05 +03:00
Elian Doran
f55a39eab6
chore(collections/board): clean up old code 2025-09-12 14:31:59 +03:00
Elian Doran
8611328a03
chore(collections/board): reordering notes not refreshing properly 2025-09-12 14:21:10 +03:00
Elian Doran
08dc05c504
chore(collections/board): extract dragging to separate hook 2025-09-12 14:13:00 +03:00
Elian Doran
174f796b56
chore(collections/board): context menu wrongly positioned 2025-09-12 13:58:52 +03:00
Elian Doran
85949a0464
Merge remote-tracking branch 'origin/main' into react/collections
; Conflicts:
;	pnpm-lock.yaml
2025-09-12 13:58:00 +03:00
Elian Doran
1b711e2c08
fix(client/dialogs): shrink images checked when it shouldn't (closes #6930) 2025-09-12 13:50:06 +03:00
Elian Doran
60ea415361
Merge branch 'main' of ssh://github.com/TriliumNext/trilium 2025-09-12 13:00:32 +03:00
Elian Doran
01613da38f
Translations update from Hosted Weblate (#6952) 2025-09-12 12:53:28 +03:00
Elian Doran
d6e6e78acc
chore(server): improve & translate DB not initialized message 2025-09-12 12:49:25 +03:00
Elian Doran
0e5e439f69
docs(help): remove clone causing small issues in hidden subtree 2025-09-12 12:43:54 +03:00
Elian Doran
fc78f68fa7
chore(server): display startup info right at the beginning 2025-09-12 12:36:59 +03:00
Elian Doran
2f6d81ce2c
chore(server): remove LLM features ready log 2025-09-12 12:34:02 +03:00
Elian Doran
08a600167a
chore(server): integrate DB size into startup info 2025-09-12 12:27:41 +03:00
Elian Doran
9779e706c5
chore(server): improve the display of the start-up information 2025-09-12 12:17:22 +03:00
Tino Elfering
b8e9d853e5
Translated using Weblate (Dutch)
Currently translated at 2.6% (41 of 1573 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/nl/
2025-09-12 10:56:34 +02:00
Elian Doran
4041746240
chore(server): add a logo at startup 2025-09-12 09:34:00 +03:00
Elian Doran
c96a65b21d
chore(react/collections/board): minor flicker when renaming note 2025-09-11 22:44:17 +03:00
Elian Doran
d67018b6d7
chore(react/collections/board): use translations 2025-09-11 22:35:31 +03:00
Elian Doran
f7e47b5120
feat(react/collections/table): make note title editable 2025-09-11 22:22:50 +03:00
Elian Doran
5bc28b63a6
fix(deps): update ckeditor monorepo to v46.1.0 (#6943) 2025-09-11 22:15:35 +03:00
Elian Doran
62452b61b1
refactor(react/collections/table): deduplicate editing 2025-09-11 21:51:02 +03:00
Elian Doran
cb84e4c7b6
refactor(react/collections/table): split card/column 2025-09-11 21:42:59 +03:00
Elian Doran
60ef816f0c
chore(react/collections/table): bring back renaming columns 2025-09-11 21:37:33 +03:00
Elian Doran
d367cf9972
chore(react/collections/table): bring back wheel scroll 2025-09-11 21:20:25 +03:00
Elian Doran
05973672e4
chore(react/collections/table): add back insert above/below 2025-09-11 21:11:44 +03:00
Elian Doran
c4398e92e1
Translations update from Hosted Weblate (#6950) 2025-09-11 20:53:05 +03:00
Elian Doran
68b8ba691f
chore(react/collections/table): fix one extra rendering of wrong type 2025-09-11 20:45:54 +03:00
Elian Doran
d52cf455a9
chore(react/collections/table): not loading config correctly 2025-09-11 20:37:09 +03:00
Elian Doran
fee822c689
chore(react/collections/table): slightly improve editing experience 2025-09-11 20:32:21 +03:00
Elian Doran
228a1ad0da
chore(react/collections/table): reintroduce icon while editing 2025-09-11 20:07:01 +03:00
Elian Doran
1ce42d1301
chore(react/collections/table): reintroduce editing of newly added item 2025-09-11 20:02:58 +03:00
Elian Doran
3d2a4d8c38
chore(react/collections/table): reintroduce item context menu partially 2025-09-11 19:35:55 +03:00
Elian Doran
803164791f
chore(react/collections/table): reintroduce column context menu 2025-09-11 19:25:17 +03:00
Elian Doran
2b452a18df
refactor(react/collections/table): use class-based API 2025-09-11 19:14:54 +03:00
Elian Doran
efcdac75e4
chore(react/collections/table): fix adding new columns 2025-09-11 19:03:25 +03:00
Elian Doran
c30c9a7360
chore(react/collections/table): set up column dragging 2025-09-11 18:57:01 +03:00
Elian Doran
ce0da3fb80
chore(react/collections/table): use a placeholder for items 2025-09-11 18:32:06 +03:00
Elian Doran
728c20c184
chore(react/collections/table): bring back repositioning 2025-09-11 18:27:42 +03:00
Elian Doran
e10475679b
chore(react/collections/table): bring back refresh 2025-09-11 18:17:24 +03:00
Elian Doran
d9af0461ef
chore(react/collections/table): add drop indicator 2025-09-11 18:11:12 +03:00
Elian Doran
2e4791d377
chore(react/collections/table): basic drag support to change columns 2025-09-11 18:05:09 +03:00
Jan Mareš
d1244e02db
Translated using Weblate (Czech)
Currently translated at 0.2% (1 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/cs/
2025-09-11 17:01:59 +02:00
renovate[bot]
867d1841e9
fix(deps): update ckeditor monorepo to v46.1.0 2025-09-11 14:50:50 +00:00
Elian Doran
3232900bdc
chore(deps): update dependency electron to v37.5.0 (#6939) 2025-09-11 16:57:06 +03:00
Elian Doran
077de9f539
chore(deps): update dependency @anthropic-ai/sdk to v0.62.0 (#6938) 2025-09-11 16:56:12 +03:00
Elian Doran
b37f4bf0df
chore(deps): update dependency globals to v16.4.0 (#6940) 2025-09-11 16:55:38 +03:00
renovate[bot]
64dd83e8fb
chore(deps): update dependency globals to v16.4.0 2025-09-11 07:37:53 +00:00
renovate[bot]
5a615970c2
chore(deps): update dependency electron to v37.5.0 2025-09-11 07:37:25 +00:00
Elian Doran
2a5cb85199
fix(client/dialogs): include note not respecting size (closes #6947) 2025-09-11 10:06:07 +03:00
Elian Doran
5f1f27a4f9
chore(deps): update dependency @smithy/middleware-retry to v4.2.1 (#6937) 2025-09-11 08:16:43 +03:00
Elian Doran
0d9f398de2
chore(deps): update electron-forge monorepo to v7.9.0 (#6941) 2025-09-11 08:16:11 +03:00
Elian Doran
b0e84952c8
fix(deps): update dependency @inlang/paraglide-js to v2.3.0 (#6944) 2025-09-11 08:13:50 +03:00
Elian Doran
3df8cf3c13
fix(deps): update dependency globals to v16.4.0 (#6945) 2025-09-11 08:13:30 +03:00
Elian Doran
975e5a89af
chore(deps): update svelte monorepo (#6942) 2025-09-11 08:11:08 +03:00
renovate[bot]
7102615eaa
chore(deps): update svelte monorepo 2025-09-11 04:42:47 +00:00
renovate[bot]
68fa273c75
fix(deps): update dependency globals to v16.4.0 2025-09-11 01:33:09 +00:00
renovate[bot]
f8ecf0ec0b
fix(deps): update dependency @inlang/paraglide-js to v2.3.0 2025-09-11 01:32:37 +00:00
renovate[bot]
888aba0b04
chore(deps): update electron-forge monorepo to v7.9.0 2025-09-11 01:31:03 +00:00
renovate[bot]
2216136de3
chore(deps): update dependency @anthropic-ai/sdk to v0.62.0 2025-09-11 01:29:29 +00:00
renovate[bot]
4163c5534a
chore(deps): update dependency @smithy/middleware-retry to v4.2.1 2025-09-11 01:28:57 +00:00
Elian Doran
3ddcaddd79
Merge branch 'react/collections' of https://github.com/TriliumNext/trilium into react/collections 2025-09-10 22:53:22 +03:00
Elian Doran
b029e0d790
chore(react/collections/board): add columns without refresh yet 2025-09-10 22:20:17 +03:00
Elian Doran
6f2d51f3ff
chore(react/collections/board): attempt to reload events 2025-09-10 21:41:15 +03:00
Elian Doran
ecf8c4ffbe
chore(react/collections/board): get new items to be created 2025-09-10 21:10:31 +03:00
Elian Doran
4b769da90b
chore(react/collections/board): render items 2025-09-10 20:38:47 +03:00
Elian Doran
4247c8fdc6
chore(react/collections/board): render empty columns 2025-09-10 20:18:17 +03:00
Elian Doran
7777cd5238
chore(react/collections/table): integrate relation editor 2025-09-10 19:05:01 +03:00
Elian Doran
cb959e93f2
chore(react/collections/table): fix type error 2025-09-10 18:48:42 +03:00
Elian Doran
30979b460b
Translations update from Hosted Weblate (#6936) 2025-09-10 18:44:46 +03:00
Jan Mareš
901d1ecf4a
Added translation using Weblate (Czech) 2025-09-10 16:41:48 +02:00
Jan Mareš
c84a38f2b2
Added translation using Weblate (Czech) 2025-09-10 16:41:48 +02:00
Elian Doran
ed461bc22f
Translations update from Hosted Weblate (#6935) 2025-09-10 10:06:39 +03:00
Alberto Rossi
28368e6e12
Translated using Weblate (Italian)
Currently translated at 13.1% (207 of 1573 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-09-10 09:02:03 +02:00
Kuzma Simonov
8247855330
Translated using Weblate (Russian)
Currently translated at 100.0% (1573 of 1573 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-09-10 09:02:02 +02:00
Elian Doran
7cd6237f16
chore(deps): update dependency express-http-proxy to v2.1.2 (#6933) 2025-09-10 09:28:13 +03:00
Elian Doran
ca9bdc337a
chore(deps): update dependency @types/tabulator-tables to v6.2.11 (#6932) 2025-09-10 09:27:33 +03:00
Elian Doran
e6d2394d54
chore(deps): update svelte monorepo (#6934) 2025-09-10 09:27:04 +03:00
renovate[bot]
3d43665603
chore(deps): update svelte monorepo 2025-09-09 21:27:22 +00:00
renovate[bot]
f135ffbe49
chore(deps): update dependency express-http-proxy to v2.1.2 2025-09-09 21:26:51 +00:00
renovate[bot]
3d99bc7166
chore(deps): update dependency @types/tabulator-tables to v6.2.11 2025-09-09 21:26:20 +00:00
Elian Doran
3789edf53a
chore(react/collections/table): port note relation formatter 2025-09-09 21:20:52 +03:00
Elian Doran
4d57134aa2
chore(react/collections/table): port note title formatter 2025-09-09 21:11:06 +03:00
Elian Doran
e3d9a120cb
chore(react/collections/table): port row number formatter 2025-09-09 21:03:55 +03:00
Elian Doran
043791fc91
chore(react/collections/table): port note ID formatter 2025-09-09 20:35:57 +03:00
Elian Doran
33a37be378
chore(react/collections/table): fix occasional error when initializing 2025-09-09 19:49:57 +03:00
Elian Doran
32ce6e7a08
chore(react/collections/table): integrate cleanup 2025-09-09 19:41:38 +03:00
Elian Doran
3046cfd6ee
chore(react/collections/table): react to external data changes 2025-09-09 19:34:22 +03:00
Elian Doran
9758632bf0
chore(react/collections/table): react to sorted change 2025-09-09 19:18:27 +03:00
Elian Doran
0c7f926421
chore(react/collections/table): react to nesting depth change 2025-09-09 19:00:08 +03:00
Elian Doran
ab6fc9303b
chore(react/collections/table) reintroduce delete/rename 2025-09-09 18:56:53 +03:00
Elian Doran
4e37a5f08e
chore(react/collections/table): fix some issues with col editing 2025-09-09 18:48:09 +03:00
Elian Doran
426b4dde54
chore(deps): update dependency vite to v7.1.5 (#6924) 2025-09-09 09:33:52 +03:00
renovate[bot]
d3cc79a28c
chore(deps): update dependency vite to v7.1.5 2025-09-09 06:24:53 +00:00
Elian Doran
b0a826aaca
chore(deps): update typescript-eslint monorepo to v8.43.0 (#6925) 2025-09-09 07:40:54 +03:00
Elian Doran
9c0e678e50
chore(deps): update dependency chalk to v5.6.2 (#6923) 2025-09-09 07:40:23 +03:00
renovate[bot]
bbb2571215
chore(deps): update typescript-eslint monorepo to v8.43.0 2025-09-09 00:51:37 +00:00
renovate[bot]
d2a0d75906
chore(deps): update dependency chalk to v5.6.2 2025-09-09 00:49:23 +00:00
Elian Doran
e16dc941d2
chore(deps): update dependency eslint-plugin-svelte to v3.12.2 (#6920) 2025-09-08 18:00:21 +03:00
Elian Doran
fa61e7bacb
chore(deps): update dependency stylelint to v16.24.0 (#6921) 2025-09-08 17:59:54 +03:00
Elian Doran
439a182103
Translations update from Hosted Weblate (#6922) 2025-09-08 13:24:51 +03:00
Микола Копитін
7eb478cc6a
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1573 of 1573 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/uk/
2025-09-08 11:03:19 +02:00
Francis C
4341c1fbc8
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1573 of 1573 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-09-08 11:03:18 +02:00
Elian Doran
e8039715e7
Translated using Weblate (Romanian)
Currently translated at 100.0% (1573 of 1573 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ro/
2025-09-08 11:03:18 +02:00
Newcomer1989
3cacfdfd6f
Translated using Weblate (German)
Currently translated at 100.0% (1573 of 1573 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-09-08 11:03:18 +02:00
Francis C
7b2cd20cff
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1573 of 1573 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-09-08 11:03:18 +02:00
renovate[bot]
79a5fab39e
chore(deps): update dependency stylelint to v16.24.0 2025-09-08 02:12:38 +00:00
renovate[bot]
b03d687f75
chore(deps): update dependency eslint-plugin-svelte to v3.12.2 2025-09-08 02:12:02 +00:00
Elian Doran
61ec341c27
Revert "fix: close context menu when clicking items with submenus"
This reverts commit 2f93af4d6fdb89ba0773385c646db817ded2bf29.
2025-09-07 22:57:27 +03:00
Elian Doran
22835108be
fix: add left-click check for tree button handlers (#6903) 2025-09-07 22:53:42 +03:00
Elian Doran
1e654fbcd6
chore(react/collections/table): refresh columns 2025-09-07 22:29:01 +03:00
Elian Doran
49c4776dbd
chore(react/collections/table): reintroduce column creation 2025-09-07 22:16:21 +03:00
Elian Doran
41c4bc69cc
chore(react/collections/table): get attribute detail to show 2025-09-07 22:08:26 +03:00
Elian Doran
6eea921820
chore(react/collections/table): bring back dragging rows 2025-09-07 21:23:04 +03:00
Elian Doran
3d97b317f2
chore(react/collections/table): fix when empty 2025-09-07 21:13:29 +03:00
Elian Doran
7ba24968d8
chore(react/collections/table): bring editing cells 2025-09-07 21:07:55 +03:00
Elian Doran
57046d714b
chore(react/collections/table): bring back adding new rows 2025-09-07 20:44:39 +03:00
Elian Doran
0526445d3c
chore(react/collections/table): add datatree props 2025-09-07 19:49:01 +03:00
Elian Doran
b62d1a303c
chore(react/collections/table): add more properties 2025-09-07 19:41:25 +03:00
Elian Doran
e25c5cc6c7
refactor(react/collections/table): move events to dedicated prop 2025-09-07 19:19:09 +03:00
Elian Doran
e761cd7c27
chore(react/collections/table): set up writing to attachment 2025-09-07 19:03:16 +03:00
SiriusXT
617548f6b6 Merge branch 'main' into sirius_tree_patch 2025-09-07 19:18:23 +08:00
SiriusXT
2f93af4d6f fix: close context menu when clicking items with submenus 2025-09-07 17:15:09 +08:00
Elian Doran
c2504bb6db
Merge remote-tracking branch 'origin/main' into react/collections 2025-09-07 11:54:34 +03:00
Elian Doran
145f89eded
fix(shortcuts): try to fix ime composition checks (#6851) 2025-09-07 11:17:35 +03:00
Elian Doran
6c0e4b6a48
Merge branch 'main' into fix/ime-shortcut-input-fix 2025-09-07 11:13:18 +03:00
Elian Doran
87d1eefc86
chore(deps): update softprops/action-gh-release action to v2.3.3 (#6915) 2025-09-07 11:07:52 +03:00
Elian Doran
a87ec6f2e7
Translations update from Hosted Weblate (#6916) 2025-09-07 11:01:48 +03:00
donut
a9d5478bcd
Translated using Weblate (Polish)
Currently translated at 37.8% (143 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/pl/
2025-09-07 09:59:34 +02:00
Elian Doran
5eae51a1b4
Apply note wrapper on mobile (#6847) 2025-09-07 10:59:28 +03:00
Elian Doran
ac94ab6914
feat: Make splits resizable (#6866) 2025-09-07 10:48:37 +03:00
Elian Doran
38673a85c9
feat: show source diff between note and revision (#6887) 2025-09-07 10:42:21 +03:00
renovate[bot]
d75951c869
chore(deps): update softprops/action-gh-release action to v2.3.3 2025-09-07 07:24:01 +00:00
Elian Doran
67d36a9e28
fix(deps): update dependency mind-elixir to v5.1.1 (#6914) 2025-09-07 10:02:35 +03:00
renovate[bot]
de8e8915ff
fix(deps): update dependency mind-elixir to v5.1.1 2025-09-07 01:22:19 +00:00
Elian Doran
2161816ef4
fix(deps): update ckeditor monorepo to v46.0.3 (#6895) 2025-09-06 23:15:09 +03:00
renovate[bot]
d046bdec65
fix(deps): update ckeditor monorepo to v46.0.3 2025-09-06 20:05:18 +00:00
Elian Doran
cddd7d1562
fix(deps): update dependency ckeditor5 to v46.0.3 [security] (#6885) 2025-09-06 23:01:30 +03:00
renovate[bot]
15a3104904
fix(deps): update dependency ckeditor5 to v46.0.3 [security] 2025-09-06 19:53:33 +00:00
Elian Doran
e1ca6eca0f
chore(deps): update dependency vite to v7.1.4 (#6893) 2025-09-06 22:52:01 +03:00
Elian Doran
cc0137bdc9
fix(deps): update dependency @mermaid-js/layout-elk to v0.2.0 (#6899) 2025-09-06 22:42:06 +03:00
Elian Doran
86a620bc08
Add an option to disable smooth scrolling for the Electron app (#6912) 2025-09-06 22:41:26 +03:00
Elian Doran
3ba9c3b4a8
Merge branch 'main' into history_diff 2025-09-06 22:37:55 +03:00
Elian Doran
8dc5ada553
Style: improve window background effects (#6913) 2025-09-06 22:36:59 +03:00
Elian Doran
9fe744c545
chore(deps): update actions/setup-node action to v5 (#6902) 2025-09-06 22:36:15 +03:00
Elian Doran
cc29eb0f9b
chore(deps): update svelte monorepo (#6892) 2025-09-06 22:27:17 +03:00
renovate[bot]
901edde634
chore(deps): update dependency vite to v7.1.4 2025-09-06 19:24:39 +00:00
Elian Doran
44dd6d499d
fix(deps): update dependency eslint-linter-browserify to v9.35.0 (#6905) 2025-09-06 22:24:05 +03:00
renovate[bot]
375f09cbaf
fix(deps): update dependency @mermaid-js/layout-elk to v0.2.0 2025-09-06 19:23:04 +00:00
Elian Doran
d4e5a31de4
chore(deps): update tailwindcss monorepo to v4.1.13 (#6894) 2025-09-06 22:22:25 +03:00
Elian Doran
f3fa3864b2
chore(deps): update dependency node to v22 (#6891) 2025-09-06 22:21:44 +03:00
Elian Doran
1c978c2497
chore(deps): update dependency @types/leaflet-gpx to v1.3.8 (#6890) 2025-09-06 22:21:05 +03:00
Elian Doran
0f4ec2b3e2
chore(deps): update dependency @anthropic-ai/sdk to v0.61.0 (#6896) 2025-09-06 22:20:02 +03:00
Elian Doran
e30b1abaa4
chore(deps): update dependency @smithy/middleware-retry to v4.2.0 (#6897) 2025-09-06 22:19:26 +03:00
renovate[bot]
16cbee1fb2
chore(deps): update svelte monorepo 2025-09-06 19:18:48 +00:00
Elian Doran
56932f2b56
chore(deps): update dependency express-rate-limit to v8.1.0 (#6898) 2025-09-06 22:18:40 +03:00
Elian Doran
6a8f6b8370
fix(deps): update dependency i18next to v25.5.2 (#6900) 2025-09-06 22:17:19 +03:00
Elian Doran
7fa8e65015
fix(deps): update dependency mermaid to v11.11.0 (#6901) 2025-09-06 22:16:53 +03:00
Elian Doran
4f50b8c7d5
fix(deps): update eslint monorepo to v9.35.0 (#6907) 2025-09-06 22:15:36 +03:00
Elian Doran
eca85d9978
chore(deps): update actions/setup-python action to v6 (#6909) 2025-09-06 22:15:10 +03:00
Elian Doran
f0ea2eb39b
fix(deps): update dependency force-graph to v1.51.0 (#6906) 2025-09-06 22:14:42 +03:00
Elian Doran
4c5b229680
chore(deps): update actions/github-script action to v8 (#6908) 2025-09-06 22:13:07 +03:00
Elian Doran
83251cbc43
Merge branch 'main' into feat/performance/disable-smooth-scroll 2025-09-06 22:12:19 +03:00
Adorian Doran
c2f20cce32
Merge branch 'main' into feat/electron-app/background-effects-improvements 2025-09-06 22:02:47 +03:00
Adorian Doran
ec5ab44519 style/background effects: tweak launcher pane colors 2025-09-06 22:00:16 +03:00
renovate[bot]
ed6d21a05a
chore(deps): update dependency node to v22 2025-09-06 18:58:17 +00:00
renovate[bot]
a2f3913fe5
chore(deps): update actions/setup-python action to v6 2025-09-06 18:57:17 +00:00
renovate[bot]
d66c0ef308
chore(deps): update actions/setup-node action to v5 2025-09-06 18:57:14 +00:00
renovate[bot]
0f9f6746ed
chore(deps): update actions/github-script action to v8 2025-09-06 18:57:10 +00:00
renovate[bot]
9b534a0dc1
fix(deps): update eslint monorepo to v9.35.0 2025-09-06 18:57:07 +00:00
renovate[bot]
1ce73c1238
fix(deps): update dependency mermaid to v11.11.0 2025-09-06 18:56:11 +00:00
renovate[bot]
3b5b7ca01d
fix(deps): update dependency i18next to v25.5.2 2025-09-06 18:55:40 +00:00
renovate[bot]
ce64a7816d
fix(deps): update dependency force-graph to v1.51.0 2025-09-06 18:55:09 +00:00
renovate[bot]
37e095a93c
fix(deps): update dependency eslint-linter-browserify to v9.35.0 2025-09-06 18:54:39 +00:00
Adorian Doran
300f6a103f style/background effects: tweak launcher pane colors 2025-09-06 21:53:47 +03:00
renovate[bot]
e7cb5a6b92
chore(deps): update dependency express-rate-limit to v8.1.0 2025-09-06 18:53:07 +00:00
renovate[bot]
67296fabf7
chore(deps): update dependency @smithy/middleware-retry to v4.2.0 2025-09-06 18:52:37 +00:00
renovate[bot]
d868f7fb26
chore(deps): update dependency @anthropic-ai/sdk to v0.61.0 2025-09-06 18:52:08 +00:00
renovate[bot]
1555d98f7d
chore(deps): update tailwindcss monorepo to v4.1.13 2025-09-06 18:51:05 +00:00
renovate[bot]
3a02941b38
chore(deps): update dependency @types/leaflet-gpx to v1.3.8 2025-09-06 18:49:37 +00:00
Elian Doran
f25de1ffbe
chore(ci): bring back typecheck 2025-09-06 21:43:48 +03:00
Adorian Doran
008e90324f style/background effects: tweak launcher pane colors 2025-09-06 21:43:09 +03:00
Adorian Doran
73dcc2eb26 style/background effects: convert the tree action button background color to a transparent color 2025-09-06 21:32:31 +03:00
Adorian Doran
eae2540a31 style/background effects: convert the tree item hover color to a transparent color 2025-09-06 21:21:43 +03:00
Adorian Doran
2a7fc8edb6 style/background effects: extract color overrides as theme variables 2025-09-06 21:13:09 +03:00
Elian Doran
cd67299b1d
chore(react/collections/table): bring back footer 2025-09-06 21:08:32 +03:00
Elian Doran
ff38008207
chore(react/collections/table): react to note changes 2025-09-06 20:31:44 +03:00
Elian Doran
76e903a782
chore(react/collections/table): set up context menu partially 2025-09-06 20:25:50 +03:00
Adorian Doran
25698f5d9b electron app: display the smooth scrolling setting only on the Electron app 2025-09-06 19:31:45 +03:00
Adorian Doran
c729731c7e electron app: mention that a restart is required for the smooth scrolling setting to take effect 2025-09-06 19:24:32 +03:00
Elian Doran
9d877ec97a
chore(react/collections/table): enable modules 2025-09-06 19:19:52 +03:00
Elian Doran
b4cead757d
chore(react/collections/table): get rid of react-tables 2025-09-06 19:12:24 +03:00
Adorian Doran
dcc2f28079 electron app: add Romanian translation 2025-09-06 19:05:20 +03:00
Adorian Doran
97aa00e18b electron app: add an option to disable smooth scrolling 2025-09-06 19:00:45 +03:00
Elian Doran
f076581bed
chore(react/collections/table): get table to render 2025-09-06 18:48:58 +03:00
Elian Doran
5d8f789791
fix(desktop): background effects causing issues on Win10 2025-09-06 17:47:13 +03:00
Elian Doran
4faabb7770
Translations update from Hosted Weblate (#6911) 2025-09-06 17:34:54 +03:00
Elian Doran
1cffff77bf
fix(client): touch bar triggering on server 2025-09-06 17:26:48 +03:00
donut
8f9b3df681
Translated using Weblate (Polish)
Currently translated at 37.3% (141 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/pl/
2025-09-06 14:08:09 +00:00
Mik Piet
449575e0f7
Translated using Weblate (Polish)
Currently translated at 7.3% (115 of 1566 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pl/
2025-09-06 14:08:08 +00:00
donut
b7d47779d6
Translated using Weblate (Polish)
Currently translated at 7.3% (115 of 1566 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pl/
2025-09-06 14:08:08 +00:00
Elian Doran
fe443c8a89
fix(next): window border cut-off on macOS 2025-09-06 17:07:56 +03:00
Elian Doran
f01a772d8d
chore(react/collections/geomap): remove some logs 2025-09-06 16:23:42 +03:00
Elian Doran
76d068aa23
chore(react/collections/calendar): optimize button building 2025-09-06 16:13:33 +03:00
Elian Doran
b151db0843
chore(react/collections/calendar): header & touchbar sometimes not updating 2025-09-06 16:09:02 +03:00
Elian Doran
5a3f432d89
feat(react/collections/calendar): improve performance on option change 2025-09-06 16:02:25 +03:00
Elian Doran
8dcef5ea9f
chore(react/collections): add spacer for calendar touch bar 2025-09-06 15:40:47 +03:00
Elian Doran
05299952a9
chore(react/collections): use normal buttons for calendar prev/next 2025-09-06 15:36:37 +03:00
Elian Doran
5966b9ff23
chore(react/collections): add date navigation buttons to calendar touchbar 2025-09-06 15:20:22 +03:00
Elian Doran
1917c04baf
chore(react/collections): reintroduce calendar title & type touch bar 2025-09-06 14:59:57 +03:00
Elian Doran
4c20ac0b1c
chore(react/collections): reintroduce geomap touch bar buttons 2025-09-06 14:31:41 +03:00
Elian Doran
6bd548cc22
refactor(react/touchbar): use more performant mechanism 2025-09-06 14:23:43 +03:00
Elian Doran
3e7f0ad0a8
chore(react/touchbar): add slider 2025-09-06 14:18:32 +03:00
Elian Doran
785f72ecd6
chore(react/touchbar): react to updates 2025-09-06 14:08:00 +03:00
Elian Doran
62cdb1a797
chore(react): basic React-like touch bar support 2025-09-06 14:00:23 +03:00
Elian Doran
24e17c4e4f
style(collections/calendar): improve button style 2025-09-06 13:28:16 +03:00
Elian Doran
d664c0166d
style(collections/calendar): bring back some header styles + layout 2025-09-06 13:19:25 +03:00
Elian Doran
05ebe821f2
Revert "chore(collections/calendar): experiment with avoiding floating buttons"
This reverts commit 6c4ac347db9be75d730fbabbc309c430289a853c.
2025-09-06 13:17:21 +03:00
Elian Doran
6c4ac347db
chore(collections/calendar): experiment with avoiding floating buttons 2025-09-06 13:09:24 +03:00
Elian Doran
e8024ce341
fix(collections/calendar): header not initializing properly on first render 2025-09-06 12:34:18 +03:00
Elian Doran
afc17f41f6
feat(collections/calendar): use own UI for header 2025-09-06 12:26:42 +03:00
Elian Doran
49c80f0e0b
fix(client): sql result taking unnecessary space when inactive 2025-09-06 11:28:19 +03:00
Elian Doran
10a6a3056a
chore(react/collections/calendar): reintroduce tests 2025-09-06 11:20:39 +03:00
Elian Doran
69af62cde0
refactor(react/collections/calendar): split editing 2025-09-06 11:06:24 +03:00
Elian Doran
0cc8b5def0
chore(react/collections/calendar): add back event customization 2025-09-06 10:58:24 +03:00
Elian Doran
fc52e73153
refactor(react/collections/calendar): change event handling 2025-09-06 10:54:18 +03:00
Elian Doran
ce67e460c6
refactor(react/collections/calendar): add a few more options 2025-09-06 10:53:15 +03:00
Elian Doran
85e5f4d2c0
refactor(react/collections/calendar): add back clicking on date notes 2025-09-06 10:52:14 +03:00
Elian Doran
6237afe3cd
refactor(react/collections/calendar): change event in api 2025-09-06 10:43:43 +03:00
Elian Doran
cfddb6f04e
chore(react/collections/calendar): port dragging items 2025-09-06 10:36:32 +03:00
perf3ct
3bf1a77381
feat(docs): also deploy docs upon README change 2025-09-05 19:52:03 +00:00
perf3ct
c4d430c62d
feat(docs): use readme as index.md in mkdocs deployment 2025-09-05 19:40:59 +00:00
perf3ct
d583ee2de3
feat(docs): just remove the other language READMEs from the hide list 2025-09-05 19:34:54 +00:00
perf3ct
406a381ef4
feat(docs): try to continue fixing the links in the mkdocs 2025-09-05 19:18:14 +00:00
Elian Doran
1d82308c43
feat(docs): create docs.triliumnotes.org as additional place to serve user-facing docs (#6889) 2025-09-05 21:49:36 +03:00
perf3ct
5c1595b1fd
feat(docs): remove unused python 2025-09-05 15:15:12 +00:00
perf3ct
667cfb999b
feat(docs): oops forgot to add it to the package.json 2025-09-05 15:11:48 +00:00
Elian Doran
f0b5954c54
refactor(react/collections/calendar): refactor into API 2025-09-05 18:10:34 +03:00
perf3ct
9b0e817635
feat(docs): transition from python to ts 2025-09-05 15:09:27 +00:00
Elian Doran
b93d9a6b6e
chore(react/collections/calendar): render calendar events 2025-09-05 18:00:27 +03:00
Elian Doran
5bb9117fde
chore(react/collections/calendar): render non-calendar events 2025-09-05 17:56:35 +03:00
Elian Doran
84d35c1a37
chore(react/collections/calendar): create event from selection 2025-09-05 17:44:24 +03:00
Elian Doran
ba42e90502
chore(react/collections/calendar): handle resize 2025-09-05 17:33:46 +03:00
Elian Doran
10d1ec1bb2
chore(react/collections/calendar): bring back saving of view 2025-09-05 17:18:02 +03:00
Elian Doran
d6ccd106e6
chore(react/collections/calendar): bring back locale 2025-09-05 16:51:36 +03:00
Elian Doran
7f7eaea2b1
chore(react/collections/calendar): hide weekends & week numbers 2025-09-05 16:28:34 +03:00
Elian Doran
d33b1eb394
chore(react/collections/calendar): add views & first day of week 2025-09-05 16:26:52 +03:00
Elian Doran
feb984649f
chore(react/collections/calendar): set up CSS 2025-09-05 16:22:48 +03:00
Elian Doran
aada49e548
chore(react/collections/calendar): get calendar to render 2025-09-05 16:03:12 +03:00
SiriusXT
7f3c34178b fix: add left-click check for tree button handlers 2025-09-05 19:32:42 +08:00
Elian Doran
c79dd43105
chore(react/collections): bring back touch bar 2025-09-05 11:54:58 +03:00
Elian Doran
cb53ff880d
chore(react/collections/geomap): clean up 2025-09-05 11:04:36 +03:00
Elian Doran
3d88b3c74b
fix(react/collections/geomap): drag not always working 2025-09-05 10:32:26 +03:00
Elian Doran
d3c66714c2
fix(react/collections/geomap): crash for notes without location 2025-09-05 08:48:24 +03:00
perf3ct
e8ca443697
feat(docs): try to fix local doc links 2025-09-04 22:16:43 -07:00
perf3ct
94089113ef
feat(docs): try to handle moved files too in script 2025-09-04 21:55:28 -07:00
perf3ct
1847fc2060
feat(docs): fix nav and scripts 2025-09-04 23:50:22 +00:00
perf3ct
7ca21b52a0
feat(docs): fix references to zadam 2025-09-04 23:46:50 +00:00
perf3ct
444beb4908
feat(docs): get images to work now 2025-09-04 23:39:40 +00:00
perf3ct
791869ca9e
feat(docs): try to capture all pages 2025-09-04 23:30:20 +00:00
perf3ct
33c8406b8a
feat(docs): try to make pnpm happy for mkdocs
asfd

asdf
2025-09-04 21:57:26 +00:00
perf3ct
b6212c4e98
feat(docs): try to get wrangler to work...
feat(docs)asdf

asdf
2025-09-04 21:32:32 +00:00
perf3ct
fcd2409ee3
feat(docs): try to get mkdocs to work again 2025-09-04 21:20:01 +00:00
perf3ct
dad060d0c9
feat(docs): let's try to deploy our stuff to mkdocs 2025-09-04 21:13:12 +00:00
Elian Doran
9444195de7
chore(react/collections): set up dragging (partially) 2025-09-04 23:35:18 +03:00
Elian Doran
b25f3094b7
refactor(react/collections): reintroduce gpx tracks 2025-09-04 22:53:39 +03:00
Elian Doran
ec378a8fc5
refactor(react/collections): reintroduce scale 2025-09-04 22:05:44 +03:00
Elian Doran
9adf9a841c
chore(react/collections/geomap): bring back remove from map 2025-09-04 21:52:41 +03:00
Elian Doran
8bb8e011f3
chore(react/collections/geomap): properly dispose 2025-09-04 21:50:45 +03:00
Elian Doran
3b66522a5e
chore(react/collections/geomap): bring back map context menu 2025-09-04 21:46:05 +03:00
Elian Doran
dd2b718974
chore(react/collections/geomap): bring back dark theme labels 2025-09-04 21:40:12 +03:00
Elian Doran
50121153dd
chore(react/collections/geomap): bring back adding new items 2025-09-04 21:37:08 +03:00
Elian Doran
189b7e20db
chore(react/collections/geomap): bring back context menu 2025-09-04 21:26:09 +03:00
SiriusXT
5e572a8c6a fix: remove unnecessary line breaks 2025-09-04 22:07:04 +08:00
Elian Doran
dd654fcd8d
chore(react/collections/geomap): bring back open on click 2025-09-04 16:51:03 +03:00
Elian Doran
0f9a529647
chore(react/collections/geomap): fix editability 2025-09-04 16:47:38 +03:00
Elian Doran
5854adb806
chore(react/collections/geomap): bring back dragging 2025-09-04 16:44:35 +03:00
SiriusXT
c60c738c7e feat: show source diff between note and revision 2025-09-04 21:34:13 +08:00
Elian Doran
ec40d20e6a
chore(react/collections/geomap): middle click 2025-09-04 16:24:01 +03:00
Elian Doran
3e2b777c30
chore(react/collections/geomap): fix color class 2025-09-04 16:19:56 +03:00
Elian Doran
4a02981c09
refactor(react/collections/geomap): display reactive icon, text 2025-09-04 16:17:27 +03:00
Elian Doran
3382ccc7bf
refactor(react/collections/geomap): use different mechanism for markers 2025-09-04 15:58:50 +03:00
Elian Doran
581303c923
chore(react/collections/geomap): get markers to show up 2025-09-04 15:47:56 +03:00
Elian Doran
63dd79e23c
chore(react/collections/geomap): restore state 2025-09-04 15:16:49 +03:00
Elian Doran
2346230d36
chore(react/collections/geomap): save state 2025-09-04 14:26:29 +03:00
SiriusXT
1c451fb98a fix: adapt diff highlight for dark theme 2025-09-04 18:47:14 +08:00
SiriusXT
7eeb43a83b Merge branch 'main' into history_diff 2025-09-04 17:37:00 +08:00
SiriusXT
fa2188f087 fix: improve <pre> tag regex handling when formatting HTML strings 2025-09-04 17:36:19 +08:00
Elian Doran
df1b87e3ac
chore(dx/nix): fix flake partially 2025-09-04 12:12:23 +03:00
Elian Doran
62a0a44049
chore(dx): have electron-rebuild read from path on NixOS too 2025-09-04 09:26:16 +03:00
SiriusXT
0ae25d2212 feat: show source diff between note and revision 2025-09-04 10:53:46 +08:00
Elian Doran
620e6012da
refactor(react/collections): reintroduce view mode 2025-09-03 23:57:38 +03:00
Elian Doran
330b17bff8
refactor(react/collections): move layer name to view 2025-09-03 23:35:29 +03:00
Elian Doran
1969ce562a
chore(react/collections): start porting geomap 2025-09-03 23:23:42 +03:00
Elian Doran
5ea15cc7eb
Merge remote-tracking branch 'origin/main' into react/collections 2025-09-03 22:41:44 +03:00
Elian Doran
88aa76bcab
Improve development experience (#6842) 2025-09-03 22:13:17 +03:00
Elian Doran
401120fa28
Merge remote-tracking branch 'origin/main' into feature/dx_improvement 2025-09-03 21:24:51 +03:00
Elian Doran
534113b303
fix(dx/share): ckcontent for share theme not preserved 2025-09-03 21:09:56 +03:00
Elian Doran
53df7835d3
Revert "chore(dx/server): remove dependency on CKEditor for now"
This reverts commit 4739e2e3b265bd2e6f7e603bb0e380f613186d7e.
2025-09-03 20:24:23 +03:00
Elian Doran
ee9afb7fa0
fix(next): 1px border on tab when background effects are on 2025-09-03 20:09:19 +03:00
Elian Doran
6163ab8c42
refactor(dx): remove unused .env files 2025-09-03 20:08:29 +03:00
Elian Doran
e73724a576
chore(dx/desktop): integrate e2e tests in same project 2025-09-03 20:08:17 +03:00
Elian Doran
e71284d887
chore(dx): get rid of references to NX 2025-09-03 18:23:47 +03:00
Elian Doran
11d95b89e1
chore(dx/edit-docs): de-nxify 2025-09-03 18:16:03 +03:00
Elian Doran
ee7052ebc2
chore(deps): update dependency dotenv to v17.2.2 (#6876) 2025-09-03 18:02:23 +03:00
renovate[bot]
9059642738
chore(deps): update dependency dotenv to v17.2.2 2025-09-03 14:14:24 +00:00
Elian Doran
fe8e3b4489
chore(deps): update svelte monorepo (#6874) 2025-09-03 17:11:58 +03:00
Elian Doran
4e00e5b995
chore(deps): update dependency dotenv to v17.2.2 (#6875) 2025-09-03 17:11:45 +03:00
Elian Doran
05ae0ca9d7
chore(deps): update dependency @anthropic-ai/sdk to v0.61.0 (#6877) 2025-09-03 17:11:38 +03:00
Elian Doran
ac0116109b
chore(deps): update typescript-eslint monorepo to v8.42.0 (#6878) 2025-09-03 17:11:28 +03:00
renovate[bot]
710ed9dd0e
chore(deps): update svelte monorepo 2025-09-03 12:45:44 +00:00
Elian Doran
c75d2435fa
fix(dx/share): ckcontent missing 2025-09-03 15:23:32 +03:00
Elian Doran
050aa40e20
fix(dx/share): templates and script not accessible 2025-09-03 12:12:01 +03:00
Elian Doran
cb6d87302d
fix(dx/client): doc notes not working 2025-09-03 12:00:06 +03:00
Elian Doran
f9e725bcf8
chore(dx): add aliases to desktop 2025-09-03 11:56:44 +03:00
Elian Doran
a56d622df7
chore(dx): address self-review 2025-09-03 10:55:40 +03:00
Adorian Doran
267f5105b2
Theme tweaks (#6832) 2025-09-03 10:53:57 +03:00
SiriusXT
4e2ffad70d Merge branch 'main' into siriusxt_split 2025-09-03 14:05:08 +08:00
Elian Doran
7db3bde933
chore(e2e): merge .env in playwright config + add retry 2025-09-03 09:02:10 +03:00
Adorian Doran
a9564f8f38 style/launchbar buttons: fix broken hover state when background effects are enabled 2025-09-03 05:25:26 +03:00
Adorian Doran
9c5a130ab4 style/text editor/forms: restyle text areas 2025-09-03 04:38:37 +03:00
Adorian Doran
c40398df5d style/text editor/forms: tweak text boxes 2025-09-03 04:29:02 +03:00
Adorian Doran
27fdd9e715 style/text editor/find and replace: add style for the "replace" buttons 2025-09-03 04:13:29 +03:00
renovate[bot]
59697095b1
chore(deps): update typescript-eslint monorepo to v8.42.0 2025-09-03 00:40:09 +00:00
renovate[bot]
a16f5f5505
chore(deps): update dependency @anthropic-ai/sdk to v0.61.0 2025-09-03 00:38:49 +00:00
renovate[bot]
922d484a33
chore(deps): update dependency dotenv to v17.2.2 2025-09-03 00:37:18 +00:00
Elian Doran
f63f24ac9d
feat(server/e2e): upload test report if it fails 2025-09-02 22:51:57 +03:00
Elian Doran
e7521fe30c
chore(server/e2e): increase timeout of a flaky test 2025-09-02 22:30:09 +03:00
Elian Doran
f6579ac434
fix(e2e/server): data dir not working 2025-09-02 21:45:59 +03:00
Elian Doran
e1b4a0b720
fix(deps): update dependency @codemirror/view to v6.38.2 (#6860) 2025-09-02 21:33:12 +03:00
Elian Doran
9c43d661be
fix(desktop): forge building for the wrong arch 2025-09-02 21:13:32 +03:00
Elian Doran
d2d8bff9f7
fix(e2e/server): wrong database dir 2025-09-02 21:06:41 +03:00
Elian Doran
a1beb13094
chore(ci): add logs for electron-forge flatpak build 2025-09-02 20:46:44 +03:00
Elian Doran
37d66848d6
Merge remote-tracking branch 'origin/main' into feature/dx_improvement
; Conflicts:
;	pnpm-lock.yaml
2025-09-02 20:43:43 +03:00
Elian Doran
991399fe4f
Merge branch 'main' into renovate/codemirror 2025-09-02 20:41:41 +03:00
Elian Doran
27855456a0
chore(deps): update dependency lint-staged to v16.1.6 (#6856) 2025-09-02 20:40:55 +03:00
Elian Doran
0687ed9ec4
chore(deps): update dependency typedoc to v0.28.12 (#6857) 2025-09-02 20:40:42 +03:00
Elian Doran
632976e71f
chore(deps): update pnpm to v10.15.1 (#6859) 2025-09-02 20:40:25 +03:00
Elian Doran
98addef614
fix(deps): update dependency dayjs to v1.11.18 (#6861) 2025-09-02 20:40:10 +03:00
Elian Doran
c72c9934b5
fix(deps): update dependency react-i18next to v15.7.3 (#6862) 2025-09-02 20:39:54 +03:00
Elian Doran
6362f24ae9
chore(deps): update dependency @stylistic/eslint-plugin to v5.3.1 (#6863) 2025-09-02 20:39:41 +03:00
Elian Doran
dc2d2fe25b
chore(deps): update dependency vite to v7.1.4 (#6858) 2025-09-02 20:39:20 +03:00
renovate[bot]
bbc007e6cf
chore(deps): update dependency vite to v7.1.4 2025-09-02 17:36:12 +00:00
Elian Doran
3dfd195630
chore(deps): update dependency @sveltejs/kit to v2.37.0 (#6864) 2025-09-02 20:34:24 +03:00
Elian Doran
e3f72baab3
chore(deps): update node.js to v22.19.0 (#6865) 2025-09-02 20:33:23 +03:00
Elian Doran
1bb19d0d9e
Translations update from Hosted Weblate (#6871) 2025-09-02 20:31:45 +03:00
Микола Копитін
bc1b69a836
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1566 of 1566 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/uk/
2025-09-02 17:03:22 +00:00
Elian Doran
26c7f0b017
feat(dx/desktop): improve rebuilding experience on NixOS 2025-09-02 19:56:27 +03:00
Elian Doran
d058dbe9af
chore(dx/desktop): clean up env 2025-09-02 19:56:18 +03:00
Elian Doran
c1c237402a
chore(dx/desktop): clean up package.json 2025-09-02 19:49:36 +03:00
Elian Doran
bb20de6c24
chore(dx/env): remove unnecessary nx config 2025-09-02 19:44:38 +03:00
Elian Doran
8d7af7b01d
chore(dx/server): de-nxify 2025-09-02 19:44:28 +03:00
Elian Doran
fd1c122cd4
chore(dx/apps): build db-compare & dump-db 2025-09-02 19:29:38 +03:00
Elian Doran
3925ba3eef
chore(dx/ci): fix sequential/parallel tests 2025-09-02 19:16:49 +03:00
Elian Doran
4306072ca7
chore(dx/ci): sequential/parallel tests 2025-09-02 19:09:45 +03:00
Elian Doran
15fba23ad7
chore(dx/ci): denx-ify playwright 2025-09-02 19:00:49 +03:00
Elian Doran
04753226e5
chore(dx/ci): fix package command 2025-09-02 18:42:30 +03:00
Elian Doran
3fda97a9bd
chore(dx/client): allocate more memory for the build 2025-09-02 18:38:50 +03:00
Elian Doran
26afdd105f
chore(dx/server): get tests to run 2025-09-02 18:33:22 +03:00
Elian Doran
7c50251c37
chore(dx): clean up global package.json 2025-09-02 18:32:03 +03:00
Elian Doran
3de9d07769
chore: update lock 2025-09-02 17:54:05 +03:00
Elian Doran
d60899e362
chore(dx): remove unnecessary nx configs 2025-09-02 17:43:32 +03:00
Elian Doran
7c8019ac5b
chore(dx/ci): get rid of nx-specific workflows 2025-09-02 17:38:24 +03:00
Elian Doran
1258d0cf7d
chore(dx/desktop): read electron version from package.json 2025-09-02 17:37:57 +03:00
SiriusXT
2264369e9e feat: Make splits resizable 2025-09-02 22:05:26 +08:00
Elian Doran
e18a8556c1
chore(dx/ci): remove most references to NX, apart from unit test 2025-09-02 16:40:52 +03:00
SiriusXT
5436011f8e feat: Make splits resizable 2025-09-02 20:17:01 +08:00
Elian Doran
ce0fd3cec2
chore(dx/desktop): get forge to run 2025-09-02 13:59:09 +03:00
Elian Doran
bd349f5abc
feat(dx/desktop): support raw NixOS via LD_LIBRARY_PATH injection 2025-09-02 12:18:22 +03:00
Elian Doran
7fdea613ff
feat(dx/desktop): perfect way to override bettersqlite native 2025-09-02 11:50:58 +03:00
Elian Doran
16beeb2e88
fix(dx): broken imports after changing hoisting 2025-09-02 11:03:24 +03:00
Elian Doran
ae74f8ea83
feat(dx/desktop): isolate node_modules dependency 2025-09-02 10:45:42 +03:00
SiriusXT
88b748e67b Merge branch 'main' into siriusxt_split 2025-09-02 09:36:06 +08:00
SiriusXT
3254069999 feat: Make splits resizable 2025-09-02 09:28:53 +08:00
renovate[bot]
0bfa9f0c58
chore(deps): update node.js to v22.19.0 2025-09-02 01:18:18 +00:00
renovate[bot]
498ffa806d
chore(deps): update dependency @sveltejs/kit to v2.37.0 2025-09-02 01:18:13 +00:00
renovate[bot]
9bfed2a80d
chore(deps): update dependency @stylistic/eslint-plugin to v5.3.1 2025-09-02 01:17:37 +00:00
renovate[bot]
ec902c5762
fix(deps): update dependency react-i18next to v15.7.3 2025-09-02 01:17:32 +00:00
renovate[bot]
bb1d31f877
fix(deps): update dependency dayjs to v1.11.18 2025-09-02 01:16:58 +00:00
renovate[bot]
09f938fb72
fix(deps): update dependency @codemirror/view to v6.38.2 2025-09-02 01:16:21 +00:00
renovate[bot]
a3e9192998
chore(deps): update pnpm to v10.15.1 2025-09-02 01:15:40 +00:00
renovate[bot]
80b7c0b4c9
chore(deps): update dependency typedoc to v0.28.12 2025-09-02 01:14:46 +00:00
renovate[bot]
f01d6938f3
chore(deps): update dependency lint-staged to v16.1.6 2025-09-02 01:14:40 +00:00
Adorian Doran
ab95d707a3 style/text editor/forms: refactor 2025-09-02 02:43:11 +03:00
Adorian Doran
6475b4029a style/text editor/forms: restyle number inputs 2025-09-02 02:42:05 +03:00
Adorian Doran
f646b3dc5c style/text editor/color selector dropdown: fix layout 2025-09-02 02:14:43 +03:00
Adorian Doran
bcef0802e4 style/text editor/insert emoji flyout: fix the spacing of the skin tone dropdown items 2025-09-02 02:08:04 +03:00
Adorian Doran
47099cc77b style/text editor/insert math flyout: fix layout 2025-09-02 02:03:49 +03:00
Elian Doran
793102f3ad
chore(dx/electron): fix tray icons 2025-09-01 22:55:53 +03:00
Elian Doran
6f29bdf355
chore(dx/electron): different window icon 2025-09-01 22:25:06 +03:00
Elian Doran
edf53c8a0f
chore(dx/desktop): configure dev & start-prod 2025-09-01 21:16:10 +03:00
Elian Doran
24859e33c1
chore(dx/desktop): generate prod package.json 2025-09-01 21:15:44 +03:00
Elian Doran
ebcf4315f7
chore(dx/desktop): remote main not working in dist build 2025-09-01 21:15:17 +03:00
Elian Doran
135e2bb10e
chore(dx/desktop): get prod build 2025-09-01 20:50:22 +03:00
Elian Doran
72a256eccf
refactor(dx/server): simplify build script even further 2025-09-01 20:29:34 +03:00
Elian Doran
1e991c0526
refactor(dx/server): extract basic build commands to separate file 2025-09-01 19:36:14 +03:00
Elian Doran
978e6b9dde
chore(dx/server): unnecessary import 2025-09-01 19:22:46 +03:00
perf3ct
a2acb3cbb7
fix(shortcuts): try to fix ime composition checks 2025-09-01 16:21:58 +00:00
Papierkorb2292
623fcce3d1 Also update note context in other note context events in note wrapper so it works with tabs 2025-09-01 11:33:15 +02:00
Papierkorb2292
c99ef4a549 Make note wrapper widget aware of note context on mobile 2025-09-01 11:01:29 +02:00
Papierkorb2292
c629ce6ef8 Add note wrapper widget in mobile_layout.tsx 2025-09-01 11:01:08 +02:00
Elian Doran
35743de0df
fix(dx/client): client not starting due to duplicate config 2025-09-01 11:53:17 +03:00
Elian Doran
5cf182cf98
fix(dx/client): not serving Vite due to NODE_ENV 2025-09-01 11:50:41 +03:00
Elian Doran
01022546e8
fix(dx/client): insert math not working due to icon import 2025-09-01 11:33:18 +03:00
Elian Doran
83be42f4ea
Translations update from Hosted Weblate (#6843) 2025-09-01 09:10:52 +03:00
Mik Piet
ab9fec0186
Translated using Weblate (Polish)
Currently translated at 7.0% (111 of 1566 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pl/
2025-09-01 06:02:00 +02:00
Flowerlywind
c6dd32ea7b
Translated using Weblate (Vietnamese)
Currently translated at 2.5% (40 of 1566 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/vi/
2025-09-01 06:01:58 +02:00
Kuzma Simonov
1d4cd538ac
Translated using Weblate (Russian)
Currently translated at 100.0% (1566 of 1566 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-09-01 06:01:57 +02:00
rodrigomescua
dc99f725f9
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (1566 of 1566 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pt_BR/
2025-09-01 06:01:55 +02:00
Newcomer1989
2f804f3eac
Translated using Weblate (German)
Currently translated at 100.0% (1566 of 1566 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-09-01 06:01:54 +02:00
Elian Doran
4b9688af04
chore(dx/server): minify output 2025-08-31 23:19:07 +03:00
Elian Doran
897b896c11
chore(dx/server): fix vite interfering in production 2025-08-31 23:12:52 +03:00
Elian Doran
3600b46824
chore(dx/server): fix missing path to client 2025-08-31 23:04:18 +03:00
Elian Doran
9266fe63b9
chore(dx/client): disable share CSS for now 2025-08-31 23:03:38 +03:00
Elian Doran
a3ea52968f
chore(dx/client): fix codemirror dep 2025-08-31 23:03:30 +03:00
Elian Doran
a06f2aeb8b
chore(dx/server): trigger build of client & copy artifacts 2025-08-31 23:03:21 +03:00
Elian Doran
f4a56d4e19
chore(dx/client): get vite build to work 2025-08-31 23:02:41 +03:00
Elian Doran
f3f7ff5622
chore(dx/server): copy share templates when building 2025-08-31 22:48:50 +03:00
Elian Doran
dbf016adaf
chore(dx/server): build all entrypoints with right ext 2025-08-31 22:43:21 +03:00
Elian Doran
0e5108bd08
chore(dx/server): start building & copying assets 2025-08-31 22:30:07 +03:00
Elian Doran
cf1180faa9
chore(dx/server): remove babel compacting for tiny gain in perf 2025-08-31 21:05:23 +03:00
Elian Doran
1b25275b2e
fix(dx/electron): web contents not working 2025-08-31 20:43:48 +03:00
Elian Doran
886c694db7
chore(dx/server): update server:start command 2025-08-31 20:43:33 +03:00
Elian Doran
3d38a2aa14
chore(dx/desktop): get dev mode for Electron 2025-08-31 20:43:20 +03:00
Elian Doran
51d879ba6f
style(client): toast sometimes going out of bounds 2025-08-31 20:42:46 +03:00
Elian Doran
91ae9d75f7
Revert "chore(dx/server): improve asset management for DB init"
This reverts commit 42559364e46830b52093d1b6306e44ea03a0c2c7.
2025-08-31 20:31:51 +03:00
Elian Doran
42559364e4
chore(dx/server): improve asset management for DB init 2025-08-31 20:28:21 +03:00
Elian Doran
9d6bb306e7
fix(electron): history navigation context menu not working 2025-08-31 19:39:54 +03:00
Elian Doran
c92860ae49
chore(dx/client): fix error when optimizing premium plugins 2025-08-31 19:27:05 +03:00
Elian Doran
b012624b67
chore(dx/client): fix emoji import error 2025-08-31 19:26:56 +03:00
Elian Doran
5f1d2f02ee
chore(dx/client): fix SVG icons causing errors in CKEditor 2025-08-31 19:26:47 +03:00
Elian Doran
46cb869237
chore(dx/server): client paths not correct 2025-08-31 19:21:36 +03:00
Elian Doran
054c497678
chore(dx/client): improve startup speed by properly configuring middleware 2025-08-31 18:57:31 +03:00
Elian Doran
8362424976
chore(dx/client): fix highlightjs not working 2025-08-31 18:52:52 +03:00
Elian Doran
f7a0dc00e8
chore(dx/client): fix bootstrap CSS imports 2025-08-31 18:52:22 +03:00
Elian Doran
e49c4655a6
chore(dx/client): ckeditor5 CSS imports 2025-08-31 18:51:18 +03:00
Elian Doran
1dcb3b1529
chore(dx/server): set up cache for Vite 2025-08-31 18:28:20 +03:00
Elian Doran
cc474f39d8
chore(dx/server): basic middleware integration for vite 2025-08-31 18:24:02 +03:00
Elian Doran
113d36f5dd
chore(dx/client): set paths for client dependencies 2025-08-31 18:19:03 +03:00
Elian Doran
63c0841c32
chore(dx/server): get server to run up to missing public server 2025-08-31 16:58:57 +03:00
Elian Doran
4739e2e3b2
chore(dx/server): remove dependency on CKEditor for now 2025-08-31 16:52:32 +03:00
Elian Doran
aa316091e6
chore(dx): fix cannot read properties of undefined if DB dir is missing 2025-08-31 16:41:03 +03:00
Elian Doran
2297721228
chore(dx): get rid of nx 2025-08-31 16:36:55 +03:00
Adorian Doran
03ab912495 style/text editor/forms: tweak buttons 2025-08-31 03:33:30 +03:00
Adorian Doran
d12dfabd0b style/text editor/forms: various layout fixes 2025-08-31 03:19:33 +03:00
Adorian Doran
ed748bbebd style/text editor/forms: restyle dropdowns 2025-08-31 02:58:53 +03:00
Adorian Doran
e85858d22d style/text editor/forms: fix visible focus for buttons 2025-08-31 02:30:13 +03:00
Adorian Doran
0afa9717e5 style/text editor/forms: restyle buttons 2025-08-31 02:28:24 +03:00
Adorian Doran
1e2e3498c6 style/text editor/forms: restyle text boxes 2025-08-31 01:45:12 +03:00
Elian Doran
59a01b816c
Translations update from Hosted Weblate (#6838) 2025-08-30 20:33:31 +03:00
Francis C
508f46af42
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (378 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hant/
2025-08-30 19:24:31 +02:00
Francis C
1af865a577
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1566 of 1566 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-08-30 19:24:31 +02:00
Francis C
74834af222
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1566 of 1566 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-08-30 19:24:31 +02:00
Elian Doran
f55e33f303
refactor(note_tree): improve type safety 2025-08-30 20:02:32 +03:00
Elian Doran
5b8394d685
chore(react/collections): display books even if collections only 2025-08-30 19:50:20 +03:00
Elian Doran
34fc30b8db
chore(react/collections): avoid intersection observer when not needed 2025-08-30 19:48:05 +03:00
Elian Doran
6e575df40b
chore(react/collections): add intersection observer 2025-08-30 19:42:16 +03:00
Elian Doran
2689b22674
chore(react): not reacting to deleted note labels 2025-08-30 19:33:32 +03:00
Elian Doran
5570f3bdcf
chore(react/collections): title stretched thin 2025-08-30 19:27:41 +03:00
Elian Doran
cc7edbe3a7
chore(react/collections): full-height rendering for non-legacy 2025-08-30 19:24:32 +03:00
Adorian Doran
fcb77360e1 style/text editor/text alignment dropdown: use a horizontal toolbar instead of a vertical one 2025-08-30 19:22:27 +03:00
Elian Doran
c49e84efc6
refactor(react/collections): rename 2025-08-30 19:21:26 +03:00
Elian Doran
98a4a8d8c6
chore(react/collections): fix list body 2025-08-30 19:13:08 +03:00
Elian Doran
5f73532d62
chore(react/collections): fix expand state when switching notes 2025-08-30 19:11:12 +03:00
Elian Doran
d52f9f2a92
chore(react/collections): highlighting in grid title 2025-08-30 19:07:06 +03:00
Elian Doran
1cee01a22a
chore(react/collections): content highlighting in list 2025-08-30 19:03:18 +03:00
Elian Doran
68dff71512
chore(react/collections): title highlighting in list title 2025-08-30 18:49:32 +03:00
Adorian Doran
3d285e105e style/text editor/insert text snippet dropdown: tweak appearance 2025-08-30 18:25:44 +03:00
Elian Doran
f92948d65c
chore(react/collections): bring back attribute rendering 2025-08-30 17:39:09 +03:00
Elian Doran
c4d771f2c6
chore(react/collections): use translation 2025-08-30 17:30:35 +03:00
Elian Doran
566ffbdde2
fix(react/collections): pagination displayed when not needed 2025-08-30 17:26:43 +03:00
Elian Doran
5cf18ae17c
chore(react/collections/view): first implementation 2025-08-30 17:26:00 +03:00
Elian Doran
4891721cc0
chore(react): fix editorconfig 2025-08-30 17:07:10 +03:00
Elian Doran
49b189e7a9
chore(react/collections/list): add note count to pagination 2025-08-30 17:05:33 +03:00
Elian Doran
a9c5a3105f
chore(react/collections/list): add class to title 2025-08-30 17:00:24 +03:00
Elian Doran
c13f5a9b04
refactor(react/collections/list): split pagination into separate file 2025-08-30 16:58:23 +03:00
Elian Doran
12f805c020
chore(react/collections/list): display pagination 2025-08-30 16:40:25 +03:00
Elian Doran
c2a5f437fd
chore(react/collections/list): display children recursively 2025-08-30 16:19:21 +03:00
Elian Doran
1c986e2bf6
chore(react/collections/list): display note content 2025-08-30 16:01:02 +03:00
Elian Doran
09fd1c7628
chore(react/collections): get list view to show something 2025-08-30 15:44:49 +03:00
Elian Doran
ecf44deecf
chore(react/collections): calculate note Ids 2025-08-30 15:11:49 +03:00
Elian Doran
5fb843268f
chore(react/collections): fix imports of ViewTypeOptions 2025-08-30 14:32:06 +03:00
Elian Doran
ffb90c2b4b
chore(react/collections): move files around for ease of development 2025-08-30 14:29:54 +03:00
Elian Doran
bb55544f25
Translations update from Hosted Weblate (#6834) 2025-08-30 14:08:47 +03:00
Hosted Weblate
2e9e9a60bf
Update translation files
Updated by "Remove blank strings" add-on in Weblate.

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/
2025-08-30 13:08:15 +02:00
Elian Doran
f7e77cd6cb
fix(auth): add missing TOTP verification for /login/token (#6823) 2025-08-30 14:08:10 +03:00
Elian Doran
a7a94789e6
chore(server/tree): improve type safety 2025-08-30 14:06:35 +03:00
Elian Doran
864ac1a270
fix(tree): defend against stray null values that may occur when multi… (#6821) 2025-08-30 14:04:02 +03:00
Elian Doran
fbec6d8873
feat(react/widgets): port shared_info 2025-08-30 13:59:53 +03:00
Elian Doran
5f647a932d
Port small widgets to React (#6830) 2025-08-30 12:51:31 +03:00
Elian Doran
6e5046c0d4
chore(react/widgets): fix import error 2025-08-30 12:16:29 +03:00
Elian Doran
3c9a8e38d3
feat(react/widgets): port close zen button 2025-08-30 12:04:31 +03:00
Elian Doran
b3a3196136
style(react/widgets): improve api log slightly 2025-08-30 11:36:47 +03:00
Elian Doran
3229b7d106
feat(react/widgets): port api_log 2025-08-30 11:31:49 +03:00
Elian Doran
4213c377f8
fix(react/widgets): alignment of shortcuts in context menu 2025-08-30 11:15:06 +03:00
Elian Doran
86365ebd44
feat(react/widgets): port left pane toggle 2025-08-30 10:29:03 +03:00
Elian Doran
20cf685174
Translations update from Hosted Weblate (#6833) 2025-08-30 09:32:32 +03:00
nvcutrb
aeb5a7b251
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1565 of 1565 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-08-30 04:01:58 +02:00
Aitanuqui
47a50bb449
Translated using Weblate (Spanish)
Currently translated at 100.0% (1565 of 1565 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/es/
2025-08-30 04:01:57 +02:00
nvcutrb
a2a5b67496
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1565 of 1565 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-08-30 04:01:55 +02:00
Adorian Doran
a94cc5bdab style/text editor/insert text snippet dropdown: tweak appearance 2025-08-30 02:55:23 +03:00
Adorian Doran
526c5a6dd8 Merge branch 'main' of https://github.com/TriliumNext/Trilium into feat/theme/improvements 2025-08-30 01:06:02 +03:00
Elian Doran
3f5239706f
feat(text_snippets): support color class as well 2025-08-29 23:41:46 +03:00
Elian Doran
d2761abd04
feat(text_snippets): display actual note icon 2025-08-29 23:39:40 +03:00
Elian Doran
57983b54d2
fix(react/widgets): electron imports breaking browser 2025-08-29 23:24:12 +03:00
Elian Doran
703cf8434a
fix(react/widgets): unnecessary padding due to SQL schemas 2025-08-29 22:45:20 +03:00
Elian Doran
aa4375e25f
feat(react/widgets): port mobile editor toolbar 2025-08-29 22:40:03 +03:00
Adorian Doran
7d3a672b55 style/toasts: prevent long text from overflowing 2025-08-29 21:36:09 +03:00
Adorian Doran
c08b30a060 style/text editor: hide icons from the text snippets dropdown 2025-08-29 21:30:04 +03:00
Elian Doran
d579e39b40
feat(react/widgets): port mobile detail menu 2025-08-29 21:18:34 +03:00
Adorian Doran
b147d4bdeb style: brighten the border of dropdowns 2025-08-29 21:17:43 +03:00
Adorian Doran
48faa8a813 client/quick search results: tweak the busy indicator 2025-08-29 21:06:48 +03:00
Elian Doran
ec646809dd
feat(react/widgets): port toggle sidebar 2025-08-29 19:39:46 +03:00
Elian Doran
ab48a28635
refactor(react/widgets): typings for dynamic require + solve type errors 2025-08-29 19:29:15 +03:00
Elian Doran
3fd7afbb57
feat(react/widgets): port title bar buttons 2025-08-29 19:09:40 +03:00
Elian Doran
4074929c6b
chore(react/global_menu): disable auto-show 2025-08-29 18:50:21 +03:00
Adorian Doran
d73e84ea6c client/quick search results: tweak icon alignment 2025-08-29 18:37:02 +03:00
Elian Doran
753f1dc7b6
feat(react/widgets): sql table schemas 2025-08-29 17:14:27 +03:00
Adorian Doran
9464667323 client/quick search results: remove deprecated styles 2025-08-29 17:12:52 +03:00
Adorian Doran
4d82f2f22d client/quick search results: tweak footer divider margins 2025-08-29 17:11:10 +03:00
Adorian Doran
e3d28e703f client/quick search results: tweak snippet background color 2025-08-29 17:01:08 +03:00
Adorian Doran
5f39a314b5 client/quick search results: fix overflowing snippets 2025-08-29 16:58:13 +03:00
Adorian Doran
43caadc472 client/quick search results: refactor the item delimiter line 2025-08-29 16:57:02 +03:00
Elian Doran
f2ce8b9f3c
feat(react/widgets): search results interfering with SQL results + bad note path style 2025-08-29 16:28:49 +03:00
Elian Doran
735e91e636
feat(react/widgets): port sql_result 2025-08-29 16:10:37 +03:00
Elian Doran
4df94d1f20
chore(react/global_menu): add missing command names 2025-08-29 15:02:56 +03:00
Elian Doran
70440520e1
fix(react/global_menu): misalignment of the "advanced" submenu 2025-08-29 15:01:29 +03:00
Elian Doran
e49e2d5093
fix(react/global_menu): styling and layout of keyboard shortcuts 2025-08-29 13:01:54 +03:00
Elian Doran
f0ac301417
refactor(react/global_menu): get rid of outsideChildren 2025-08-29 12:50:45 +03:00
Elian Doran
168ff90e38
fix(react/global_menu): menu layout on mobile 2025-08-29 12:48:10 +03:00
Elian Doran
5e4f529b26
chore(react/global_menu): advanced submenu toggle on mobile 2025-08-29 12:40:16 +03:00
Elian Doran
0d1bd3e298
feat(react/global_menu): add show/hide conditions 2025-08-29 12:36:12 +03:00
Elian Doran
70f826b737
feat(react/global_menu): add update indicator 2025-08-29 12:30:22 +03:00
Elian Doran
8bd5af3fd2
feat(react/global_menu): add a few more items 2025-08-29 12:00:45 +03:00
Elian Doran
dbbae87cd3
feat(react/global_menu): port advanced options 2025-08-29 11:55:05 +03:00
Elian Doran
83fd42aff2
feat(react): add bootstrap tooltip to menu items 2025-08-29 11:54:16 +03:00
Nriver
93c9383a92 fix(auth): add missing TOTP verification for /login/token to align with /login 2025-08-29 11:13:50 +08:00
Romain DEP.
7c490d8b72 fix(tree): defend against stray null values that may occur when multiple sorting overrides are defined
fixes #6820
2025-08-29 01:57:18 +02:00
Elian Doran
b4b5e86a14
Translations update from Hosted Weblate (#6819) 2025-08-29 01:31:37 +03:00
Elian Doran
e166b97b8f
feat(react/widgets): port a few more global menu items 2025-08-29 01:07:11 +03:00
Elian Doran
829f382726
feat(react/widgets): global menu with zoom controls 2025-08-29 00:47:47 +03:00
Elian Doran
4ef103063d
feat(react/widgets): port search result 2025-08-28 23:16:04 +03:00
Elian Doran
fa66e50193
feat(react/widgets): port scroll padding 2025-08-28 22:12:39 +03:00
Antonio Liccardo (TuxmAL)
255ad96c8b
Translated using Weblate (Italian)
Currently translated at 12.9% (202 of 1565 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/it/
2025-08-28 20:52:03 +02:00
Kuzma Simonov
a12fa1177b
Translated using Weblate (Russian)
Currently translated at 100.0% (1565 of 1565 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-08-28 20:52:02 +02:00
rodrigomescua
6fa7cc8201
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (378 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/pt_BR/
2025-08-28 20:52:02 +02:00
Newcomer1989
2fff5418a9
Translated using Weblate (German)
Currently translated at 100.0% (378 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/de/
2025-08-28 20:52:01 +02:00
rodrigomescua
2e805cd5a3
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (1565 of 1565 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pt_BR/
2025-08-28 20:52:00 +02:00
Newcomer1989
61eaa89de6
Translated using Weblate (German)
Currently translated at 100.0% (1565 of 1565 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-08-28 20:51:59 +02:00
Elian Doran
aa0c021f8b
Theme tweaks (#6783) 2025-08-28 21:51:52 +03:00
Elian Doran
4fd02db079
chore(react): remove irrelevant TODO 2025-08-28 21:03:33 +03:00
Elian Doran
88bbc7e8c1
Port floating buttons to React (#6811) 2025-08-28 21:01:43 +03:00
Elian Doran
af0ba32dd9
chore(react/floating_buttons): fix wrong import of fnote 2025-08-28 20:28:55 +03:00
Elian Doran
938d295bf3
chore(react/floating_buttons): fix type error 2025-08-28 20:13:55 +03:00
Elian Doran
f82667066f
feat(react/floating_buttons): add mobile support 2025-08-28 20:10:21 +03:00
Elian Doran
03a7fe1282
fix(react/floating_buttons): react to note type/mime changes 2025-08-28 20:04:47 +03:00
Elian Doran
0c0504ffd1
refactor(react/floating_buttons): use enabled at component level 2025-08-28 19:56:53 +03:00
Elian Doran
e4900ce87b
fix(react/floating_buttons): style differences from original 2025-08-28 19:12:26 +03:00
Elian Doran
04de87722b
fix(react/floating_buttons): backlinks affecting show/hide button 2025-08-28 19:05:30 +03:00
Elian Doran
a95e28c085
feat(react/floating_buttons): port backlinks 2025-08-28 18:35:37 +03:00
Elian Doran
9fbcfb0f0f
fix(deps): update dependency marked to v16.2.1 (#6815) 2025-08-28 08:52:41 +03:00
renovate[bot]
f24a3442fb
fix(deps): update dependency marked to v16.2.1 2025-08-28 05:05:28 +00:00
Elian Doran
918a945e3b
chore(deps): update dependency svelte to v5.38.6 (#6813) 2025-08-28 08:03:31 +03:00
Elian Doran
3b96b5779b
fix(deps): update dependency dayjs to v1.11.14 (#6814) 2025-08-28 08:02:48 +03:00
Elian Doran
a93b20428e
chore(deps): update dependency electron to v37.4.0 (#6816) 2025-08-28 08:02:23 +03:00
renovate[bot]
0522024f6d
chore(deps): update dependency electron to v37.4.0 2025-08-28 02:54:57 +00:00
renovate[bot]
f27f135a61
fix(deps): update dependency dayjs to v1.11.14 2025-08-28 02:53:40 +00:00
renovate[bot]
6a76136878
chore(deps): update dependency svelte to v5.38.6 2025-08-28 02:53:04 +00:00
Elian Doran
1766d28fc2
feat(react/floating_buttons): port show/hide 2025-08-28 00:44:18 +03:00
Elian Doran
f51d944bb3
feat(react/floating_buttons): port in-app help button 2025-08-28 00:23:00 +03:00
Elian Doran
cabe240e7e
refactor(react/floating_buttons): split into two buttons 2025-08-28 00:06:40 +03:00
Elian Doran
e72fb39c4d
feat(react/floating_buttons): port PNG/SVG export buttons 2025-08-28 00:02:02 +03:00
Elian Doran
0ca30e0e87
feat(react/floating_buttons): port copy image reference 2025-08-27 23:57:33 +03:00
Elian Doran
cc362393be
chore(react/floating_buttons): port geo map buttons 2025-08-27 23:45:51 +03:00
Elian Doran
40bfd827d2
chore(react/floating_buttons): improve sizing 2025-08-27 23:36:50 +03:00
Elian Doran
a4046fbf6e
feat(react/floating_buttons): port relation map buttons 2025-08-27 23:33:07 +03:00
Elian Doran
28605f2687
feat(react/floating_buttons): fancy title + keyboard shortcut 2025-08-27 23:20:19 +03:00
Elian Doran
2085d1bbba
feat(react/floating_buttons): port save to note button 2025-08-27 23:14:25 +03:00
Elian Doran
08db03800e
feat(react/floating_buttons): port open Trilium API docs 2025-08-27 22:59:07 +03:00
Elian Doran
04b7e0cde9
feat(react/floating_buttons): port execute note button 2025-08-27 22:54:05 +03:00
Elian Doran
401260d3ca
feat(react/floating_buttons): port highlights list 2025-08-27 22:47:20 +03:00
Elian Doran
53e0c05290
feat(react/floating_buttons): port toc 2025-08-27 22:44:11 +03:00
Elian Doran
cdbb89482e
feat(react/floating_buttons): port edit button 2025-08-27 22:33:36 +03:00
Elian Doran
e290635ba5
feat(react/floating_buttons): port toggle read only button 2025-08-27 22:09:00 +03:00
Elian Doran
e340e6f5e3
feat(react/floating_buttons): port switch split orientation 2025-08-27 21:56:02 +03:00
Elian Doran
2d950e8f3a
refactor(react/floating_buttons): use component-driven approach 2025-08-27 21:37:48 +03:00
Elian Doran
4c70d72ba2
feat(react/floating_buttons): port refresh button 2025-08-27 21:29:49 +03:00
Elian Doran
80edc4c4e0
feat(react): base structure for floating buttons 2025-08-27 21:15:54 +03:00
Adorian Doran
4d07a1aab6
client/quick search results: add a whitespace between attributes 2025-08-27 20:51:12 +03:00
Adorian Doran
e2cd357319
style/quick search results: customize the highlight color 2025-08-27 20:51:12 +03:00
Adorian Doran
620b57bfa6
style/quick search results: refactor 2025-08-27 20:51:12 +03:00
Adorian Doran
934c9d3df8
style/quick search results: improve appearance 2025-08-27 20:51:12 +03:00
Adorian Doran
f034e8bb37
style/quick search results: tweak layout 2025-08-27 20:51:12 +03:00
Adorian Doran
93f80c6837
client/quick search: extract inline styles 2025-08-27 20:51:12 +03:00
Adorian Doran
a54177fee0
style(legacy)/checkboxes and radios: add a gap between the tickbox and the label 2025-08-27 20:51:12 +03:00
Adorian Doran
0e6ad42923
style: fix button class 2025-08-27 20:51:12 +03:00
Adorian Doran
b0beb74011
style/dropdown buttons: tweak 2025-08-27 20:51:12 +03:00
Adorian Doran
4857fecc41
style/launcher/calendar: fix the width for the horizontal layout 2025-08-27 20:49:01 +03:00
Adorian Doran
8405d960be
style/ribbon/attribute editor: improve layout 2025-08-27 20:45:17 +03:00
Adorian Doran
b9101c9fb2
style/delete note dialog: tweak layout 2025-08-27 20:41:14 +03:00
Adorian Doran
e457e6a2f2
style/note icon buttons: fade the color and use the default cursor when disabled 2025-08-27 20:41:14 +03:00
Elian Doran
f3416fa03e
Translations update from Hosted Weblate (#6807) 2025-08-27 20:31:34 +03:00
rodrigomescua
3e5ab2b1e1
Translated using Weblate (Portuguese (Brazil))
Currently translated at 82.0% (1284 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pt_BR/
2025-08-27 17:15:24 +00:00
Newcomer1989
5c0bc9a7c2
Translated using Weblate (German)
Currently translated at 91.8% (1437 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-08-27 17:15:23 +00:00
Elian Doran
2adfa55acd
React context-aware widgets (ribbon, note actions, note title) (#6731) 2025-08-27 20:15:04 +03:00
Elian Doran
8125e8afcd
fix(react/options): plain text not disabled 2025-08-27 20:14:33 +03:00
Elian Doran
e328f18558
feat(react/ribbon): edit content languages in modal 2025-08-27 19:56:14 +03:00
Elian Doran
cbdfa9079c
fix(react/ribbon): bad right margin of note type 2025-08-27 19:51:24 +03:00
Elian Doran
e08c4515a7
fix(react/ribbon): note type not always updating 2025-08-27 19:49:22 +03:00
Elian Doran
650aa16b89
feat(react/ribbon): improve style of note type modal 2025-08-27 19:46:26 +03:00
Elian Doran
11d908218b
feat(react/ribbon): allow editing code types directly 2025-08-27 19:42:20 +03:00
Elian Doran
3627a7dc93
refactor(react/dialogs): allow modals in sub-components 2025-08-27 19:35:47 +03:00
Elian Doran
1e1c8cc4ff
fix(ribbon): code note types not refreshing 2025-08-27 19:13:30 +03:00
Elian Doran
d616bc09c9
chore(e2e): remove test that is no longer relevant 2025-08-27 18:55:52 +03:00
Elian Doran
f1cef44d5d
Merge remote-tracking branch 'origin/main' into react/note_context_aware
; Conflicts:
;	pnpm-lock.yaml
2025-08-27 18:30:19 +03:00
Elian Doran
3795be4750
Translations update from Hosted Weblate (#6802) 2025-08-27 18:29:13 +03:00
Elian Doran
2bb66a7526
chore(react): fix some more type errors 2025-08-27 18:27:47 +03:00
Elian Doran
28a472782f
chore(react): remove debug log 2025-08-27 18:26:27 +03:00
Elian Doran
a4da002352
fix(react/ribbon): saving from attribute dialog not working 2025-08-27 18:25:54 +03:00
Elian Doran
94fdc2beee
fix(react/dialogs): formatting toolbar shown in code notes in quick edit 2025-08-27 18:12:39 +03:00
Elian Doran
dd4a01d9f8
fix(react/dialogs): jump to note sometimes showing empty list 2025-08-27 17:59:37 +03:00
Elian Doran
a2a6c67350
fix(react): alignment and size of search/bulk action buttons 2025-08-27 17:53:27 +03:00
Elian Doran
2152ca7ba6
fix(react): search crashing due to bad rendering mechanism 2025-08-27 17:46:20 +03:00
Elian Doran
40e4d236f4
fix(react): owned attributes not showing up the first time 2025-08-27 17:42:38 +03:00
Elian Doran
0450cd080d
fix(react): note context sometimes not working on mobile 2025-08-27 17:37:28 +03:00
Elian Doran
1eaac79d63
fix(react/ribbon): note context menu button looking off 2025-08-27 16:58:01 +03:00
Elian Doran
19c0305ed9
fix(react/revisions): revision list overflowing when too many 2025-08-27 16:41:42 +03:00
Elian Doran
f0d14a966a
fix(react/revisions): wrong selection when navigating between notes 2025-08-27 16:39:48 +03:00
Elian Doran
37e6ccdc1a
fix(react/revisions): selection not possible due to new hierarchy 2025-08-27 16:37:07 +03:00
Elian Doran
06cea99b40
fix(react): note title not selecting text 2025-08-27 16:28:07 +03:00
Elian Doran
1851336862
fix(react/ribbon): solve some type errors 2025-08-27 16:17:19 +03:00
Elian Doran
461eb273d9
fix(react/ribbon): attribute editor sometimes not clearing between notes 2025-08-27 15:53:27 +03:00
Elian Doran
470edc4d70
fix(react/ribbon): attribute editor saving unnecessarily 2025-08-27 15:35:44 +03:00
Elian Doran
26132a2a56
fix(react/ribbon): crash due to misuse of component rendering 2025-08-27 15:19:31 +03:00
Elian Doran
d92bd16042
chore(react/ribbon): react to note type changes 2025-08-27 14:56:18 +03:00
Elian Doran
1c7dfa6c91
chore(react/ribbon): fix activation of add new label to all tabs 2025-08-27 13:19:52 +03:00
Elian Doran
3a3fed4314
chore(react/ribbon): fix 3px height of the ribbon when collapsed 2025-08-27 13:13:02 +03:00
Elian Doran
82bdb76d75
chore(react/ribbon): simplify useNoteContext & handle setNoteContext 2025-08-27 13:06:57 +03:00
Elian Doran
066f3ea078
chore(react/ribbon): react to add new label/relation even when not shown 2025-08-27 13:05:51 +03:00
Elian Doran
9d760a21d5
chore(react/ribbon): disable when view mode is not good 2025-08-27 12:20:11 +03:00
Elian Doran
976c795ac6
chore(react/ribbon): add tooltip with keyboard shortcut 2025-08-27 12:16:40 +03:00
Elian Doran
ed320e4e24
chore(client): fix type error due to React integration 2025-08-27 11:59:07 +03:00
Newcomer1989
3111738700
Translated using Weblate (German)
Currently translated at 100.0% (378 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/de/
2025-08-27 10:28:44 +02:00
rodrigomescua
1fa0bada23
Translated using Weblate (Portuguese (Brazil))
Currently translated at 62.5% (978 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pt_BR/
2025-08-27 10:28:44 +02:00
Newcomer1989
11eca7e58b
Translated using Weblate (German)
Currently translated at 90.3% (1413 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-08-27 10:28:44 +02:00
toaik
4b50e2f14d
Translated using Weblate (German)
Currently translated at 90.3% (1413 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-08-27 10:28:43 +02:00
Newcomer1989
63faba9603
Translated using Weblate (German)
Currently translated at 90.3% (1413 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-08-27 10:28:43 +02:00
Elian Doran
3e213699e0
chore(client): fix type error due to React integration 2025-08-27 11:27:49 +03:00
Elian Doran
c88ff07691
chore(deps): update dependency typedoc to v0.28.11 (#6792) 2025-08-27 11:25:52 +03:00
Elian Doran
b53aa5cf6e
chore(deps): update svelte monorepo (#6793) 2025-08-27 11:25:44 +03:00
Elian Doran
2641b9b3fe
fix(deps): update dependency bootstrap to v5.3.8 (#6794) 2025-08-27 11:25:35 +03:00
Elian Doran
3a2a73992c
chore(deps): update dependency @types/node to v22.18.0 (#6795) 2025-08-27 11:24:39 +03:00
Elian Doran
b82b17a701
chore(deps): update typescript-eslint monorepo to v8.41.0 (#6796) 2025-08-27 11:24:27 +03:00
renovate[bot]
a6202edcd1
chore(deps): update typescript-eslint monorepo to v8.41.0 2025-08-27 02:40:21 +00:00
renovate[bot]
6eac0cb75d
chore(deps): update dependency @types/node to v22.18.0 2025-08-27 02:38:43 +00:00
renovate[bot]
83672d6138
fix(deps): update dependency bootstrap to v5.3.8 2025-08-27 02:38:15 +00:00
renovate[bot]
51dadf72d0
chore(deps): update svelte monorepo 2025-08-27 02:37:45 +00:00
renovate[bot]
0cbf61acb3
chore(deps): update dependency typedoc to v0.28.11 2025-08-27 02:37:12 +00:00
Elian Doran
399c7435ac
Merge remote-tracking branch 'origin/main' into react/note_context_aware 2025-08-26 23:49:00 +03:00
Elian Doran
d51fae7878
fix(mobile): file properties not displayed 2025-08-26 23:23:45 +03:00
Elian Doran
9750e25ad5
fix(mobile): note title not working 2025-08-26 22:21:42 +03:00
Elian Doran
2f9b2f0e8f
refactor(react): rename formatting toolbar for clarity 2025-08-26 21:57:28 +03:00
Elian Doran
8deaf22544
fix(quick_edit): classic toolbar not shown 2025-08-26 21:45:22 +03:00
Elian Doran
b192f43187
chore(release): prepare for 0.98.1 2025-08-26 20:35:41 +03:00
Elian Doran
8cb8d1303c
docs(release): v0.98.1 2025-08-26 20:34:36 +03:00
Elian Doran
5237348975
chore(docs): fix quick search documentation not in meta 2025-08-26 19:44:01 +03:00
Elian Doran
72e2f6757e
fix(client): autocomplete looking off in new tab 2025-08-26 19:15:36 +03:00
Elian Doran
cf059e7f86
Translations update from Hosted Weblate (#6787) 2025-08-26 15:36:21 +03:00
Elian Doran
44d69216b6
Translated using Weblate (Romanian)
Currently translated at 100.0% (1564 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ro/
2025-08-26 14:35:50 +02:00
Elian Doran
c38bf09af0
chore(client): fix a table nesting issue 2025-08-26 11:53:58 +03:00
Elian Doran
9373d47e86
fix: log same error message on api 401 as on login error to allow fail2ban blocking (#6782) 2025-08-26 08:53:55 +03:00
hulmgulm
29350628c3
Merge branch 'main' into main 2025-08-26 06:26:41 +02:00
Elian Doran
83d1a68879
fix(i18n): pt_BR still not working 2025-08-25 23:32:20 +03:00
hulmgulm
f188408099
Merge branch 'main' into main 2025-08-25 21:22:07 +02:00
Elian Doran
449ab3a798
fix(client/about): directory not displayed on desktop 2025-08-25 22:19:17 +03:00
hulmgulm
21504d1417 Logout same error message on api 401 as on login error 2025-08-25 21:18:01 +02:00
Elian Doran
3060b496e3
chore(client): remove redundant log 2025-08-25 22:09:29 +03:00
Elian Doran
bd35539fa1
fix(i18n): electron locale for pt_BR 2025-08-25 21:34:59 +03:00
Elian Doran
df6447e3ad
feat(quick_search): also allow for the equals operator in note title's quick search (#6769) 2025-08-25 20:49:45 +03:00
Elian Doran
24fd898f0d
fix(add_link): inserting link to selection not working properly (closes #6776) 2025-08-25 20:48:15 +03:00
Elian Doran
1aa6238288
chore(deps): update dependency @types/jquery to v3.5.33 (#6748) 2025-08-25 20:22:33 +03:00
Elian Doran
c16c4788da
fix(client): type error 2025-08-25 20:18:51 +03:00
Elian Doran
0c35daab85
Merge remote-tracking branch 'origin/main' into renovate/jquery-3.x 2025-08-25 20:01:59 +03:00
Elian Doran
4a19639e92
fix(deps): update dependency tsx to v4.20.5 (#6775) 2025-08-25 20:00:55 +03:00
renovate[bot]
36cceea677
fix(deps): update dependency tsx to v4.20.5 2025-08-25 16:33:16 +00:00
Elian Doran
4dbc76790a
Merge remote-tracking branch 'origin/main' into react/note_context_aware 2025-08-25 19:33:14 +03:00
Elian Doran
b32a344a21
chore(deps): update dependency tsx to v4.20.5 (#6772) 2025-08-25 19:31:04 +03:00
Elian Doran
3896ab822f
Translations update from Hosted Weblate (#6778) 2025-08-25 19:30:49 +03:00
OKiU Network
cfa4ba57d4
Translated using Weblate (Dutch)
Currently translated at 1.8% (7 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/nl/
2025-08-25 18:29:51 +02:00
OKiU Network
da051e0269
Translated using Weblate (Dutch)
Currently translated at 0.3% (5 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/nl/
2025-08-25 18:29:50 +02:00
Cédric MARCOUX
3eda77a91f
Translated using Weblate (French)
Currently translated at 88.3% (334 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/fr/
2025-08-25 18:29:49 +02:00
OKiU Network
5c2f4be5dd
Added translation using Weblate (Dutch) 2025-08-25 18:29:49 +02:00
OKiU Network
435b501db9
Added translation using Weblate (Dutch) 2025-08-25 18:29:48 +02:00
Newcomer1989
5a27ffef5f
Translated using Weblate (German)
Currently translated at 100.0% (378 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/de/
2025-08-25 18:29:47 +02:00
Luis Rebhan
02256d9a45
Translated using Weblate (German)
Currently translated at 82.9% (1297 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-08-25 18:29:47 +02:00
Newcomer1989
7e069009d6
Translated using Weblate (German)
Currently translated at 82.9% (1297 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/de/
2025-08-25 18:29:46 +02:00
Elian Doran
3c25cda4c0
feat(docs): also improve how environment variables are shown in docs (#6727) 2025-08-25 19:29:40 +03:00
Elian Doran
70d7ad0b1a
fix(jump_to): fix issue where attributes/tags don't show in results (#6752) 2025-08-25 19:26:48 +03:00
Elian Doran
e793b2f661
feat(config): fix previously documented env var formula not working (#6726) 2025-08-25 19:23:35 +03:00
Elian Doran
917ea3e401
feat(react): set up ESLint 2025-08-25 18:42:07 +03:00
Elian Doran
5a54dd666f
refactor(react): fix a few more rules of hooks violations 2025-08-25 18:41:48 +03:00
Elian Doran
733ec2c145
refactor(react): fix a few rules of hooks violations 2025-08-25 18:00:10 +03:00
Elian Doran
e386b03b90
refactor(react): fix all eslint issues in .tsx files 2025-08-25 17:20:47 +03:00
Elian Doran
25d5d51085
chore(react): fix note path when empty 2025-08-25 16:15:13 +03:00
Elian Doran
50c4301a34
chore(react): fix height of title bar 2025-08-25 16:05:09 +03:00
Elian Doran
0f60c0696b
chore(react): fix leak in content widget 2025-08-25 15:53:21 +03:00
Elian Doran
3ec2947c4f
chore(react): fix configure languages open in background 2025-08-25 14:48:13 +03:00
Elian Doran
e89162838e
chore(react): fix events not updating properly 2025-08-25 14:48:00 +03:00
Elian Doran
72181090a5
refactor(react): get rid of ReactBasicWidget 2025-08-25 14:36:17 +03:00
Elian Doran
72b2a5cc0d
chore(react): use effects for event handlers to prevent leaks 2025-08-25 14:27:32 +03:00
Elian Doran
1eaeec8100
Revert "chore(react): prototype for note context"
This reverts commit 660db3b3ab4ff97ba173594092a737bab656cdc8.
2025-08-25 13:51:43 +03:00
Elian Doran
660db3b3ab
chore(react): prototype for note context 2025-08-25 11:48:56 +03:00
Elian Doran
89d2fcb81e
refactor(react): add debug information for devtools 2025-08-25 11:01:12 +03:00
Elian Doran
ccda623840
refactor(react/ribbon): remove unnecessary hook 2025-08-25 10:32:11 +03:00
renovate[bot]
a6e7dff61e
chore(deps): update dependency tsx to v4.20.5 2025-08-25 06:59:19 +00:00
Elian Doran
86d1bbe8ff
chore(deps): update dependency webdriverio to v9.19.2 (#6773) 2025-08-25 09:54:52 +03:00
Elian Doran
a10cb06f14
fix(deps): update dependency i18next to v25.4.2 (#6774) 2025-08-25 09:54:41 +03:00
renovate[bot]
dd9a62818b
fix(deps): update dependency i18next to v25.4.2 2025-08-25 00:34:50 +00:00
renovate[bot]
c0e936675c
chore(deps): update dependency webdriverio to v9.19.2 2025-08-25 00:34:18 +00:00
Jon Fuller
b0b788b7dc
Merge branch 'main' into fix/quick-search-equals-operator 2025-08-24 14:47:31 -07:00
Jon Fuller
18f0f3ecac
Fix for casing and formatting in i18n.ts which was causing compile errors (#6770) 2025-08-24 14:47:18 -07:00
Sky Swimmer
e7d745ac94
Update calendar_view.ts
Same as the previous, another casing error
2025-08-24 23:22:54 +02:00
Sky Swimmer
24abf7f0ed
Update i18n.ts
Another casing error throwing off tests
2025-08-24 23:22:24 +02:00
Elian Doran
36fb097d1d
chore(react/ribbon): add CSS for context menu 2025-08-25 00:21:44 +03:00
Elian Doran
35ef5fd0d3
chore(react/ribbon): add disable rules for context menu 2025-08-25 00:19:12 +03:00
Sky Swimmer
9a08f6534b
Fix casing and formatting in i18n.ts which was causing compile errors 2025-08-24 23:14:45 +02:00
Elian Doran
885dd2053b
chore(react/ribbon): add rest of the note action items 2025-08-25 00:08:40 +03:00
Elian Doran
6f6f280bdd
chore(react/ribbon): add part of the note actions menu 2025-08-24 23:56:05 +03:00
Elian Doran
a3e8fd374f
chore(react/ribbon): port convert to attachment 2025-08-24 23:21:28 +03:00
Elian Doran
f91c1f4180
chore(react/ribbon): port revisions button 2025-08-24 22:56:47 +03:00
Elian Doran
d85746c1b9
Revert "refactor(react/ribbon): use effects for event handling"
This reverts commit 5a17075eef907fecc969633b161c53b81dbb0855.
2025-08-24 22:43:20 +03:00
Elian Doran
5a17075eef
refactor(react/ribbon): use effects for event handling 2025-08-24 22:21:11 +03:00
Elian Doran
6cab47fb55
feat(react/ribbon): bring back toggling tabs via keyboard shortcut 2025-08-24 22:14:42 +03:00
perf3ct
93c5413790
feat(quick_search): also allow for the equals operator in note title's quick search 2025-08-24 18:53:05 +00:00
Elian Doran
f2db7baeba
refactor(react): use beta approach for handling events everywhere 2025-08-24 21:18:48 +03:00
Elian Doran
a507991808
refactor(react/modals): use classless components 2025-08-24 20:57:23 +03:00
Elian Doran
7c86f90ac6
chore(react/ribbon): fix some more crashes when rapidly switching tabs 2025-08-24 20:31:39 +03:00
Elian Doran
1e9b772692
chore(react/ribbon): fix cannot set style when switching attributes 2025-08-24 20:25:11 +03:00
Elian Doran
096ab52216
refactor(react/ribbon): solve type errors 2025-08-24 20:23:00 +03:00
Elian Doran
88c3cd5cdd
refactor(react/ribbon): move files around & remove imports 2025-08-24 20:16:58 +03:00
Elian Doran
99a911a220
chore(react/ribbon): port bulk actions for search 2025-08-24 20:12:22 +03:00
Elian Doran
3218ab971b
chore(react/ribbon): fix alignment of help/close buttons 2025-08-24 19:03:19 +03:00
Elian Doran
274e3c1f7f
refactor(react/ribbon): split into two files 2025-08-24 18:40:05 +03:00
Elian Doran
f8916a6e35
chore(react/ribbon): port limit 2025-08-24 18:34:29 +03:00
Elian Doran
73f20d01e4
chore(react/ribbon): port order by 2025-08-24 18:29:47 +03:00
Elian Doran
2fd3a875b6
chore(react/ribbon): port include archived notes 2025-08-24 18:11:29 +03:00
Elian Doran
68cba8d3b2
chore(react/ribbon): port debug 2025-08-24 18:09:33 +03:00
Elian Doran
6b28fd405e
chore(react/ribbon): port fast search 2025-08-24 18:07:16 +03:00
Elian Doran
3bccbabe53
chore(react/ribbon): port ancestor depth 2025-08-24 18:02:18 +03:00
Elian Doran
c97c66ed8a
Translations update from Hosted Weblate (#6767) 2025-08-24 17:30:55 +03:00
Elian Doran
4b212232c8
chore(react/ribbon): port ancestor (without depth) 2025-08-24 17:29:48 +03:00
Elian Doran
ac3a8edf2b
chore(react/ribbon): add search script 2025-08-24 17:20:40 +03:00
Sleepy0Duck5
b581025bbe
Translated using Weblate (Korean)
Currently translated at 10.0% (38 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ko/
2025-08-24 16:02:09 +02:00
Sleepy0Duck5
7bc5331747
Translated using Weblate (Korean)
Currently translated at 0.9% (15 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ko/
2025-08-24 16:02:07 +02:00
Kuzma Simonov
2415976475
Translated using Weblate (Russian)
Currently translated at 100.0% (1564 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-08-24 16:02:06 +02:00
Francis C
8d0d0f0449
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (378 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/zh_Hant/
2025-08-24 16:02:02 +02:00
Francis C
16b00ed160
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1564 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-08-24 16:02:01 +02:00
chdagenais
df73a420f9
Translated using Weblate (French)
Currently translated at 83.5% (316 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/fr/
2025-08-24 16:01:59 +02:00
Newcomer1989
1e4d57f275
Translated using Weblate (German)
Currently translated at 92.8% (351 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/de/
2025-08-24 16:01:56 +02:00
chdagenais
19a238c8d3
Translated using Weblate (French)
Currently translated at 82.2% (1287 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/fr/
2025-08-24 16:01:54 +02:00
Francis C
5ffd8a79eb
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1564 of 1564 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-08-24 16:01:53 +02:00
Elian Doran
04fbc82d7c
chore(react/ribbon): save search to note 2025-08-24 16:58:10 +03:00
Elian Doran
3f105f7b8b
chore(react/ribbon): focus on search textbox 2025-08-24 16:45:17 +03:00
Elian Doran
b9193a5562
chore(react/ribbon): handle search error 2025-08-24 16:41:44 +03:00
Elian Doran
e1fa188244
chore(react/ribbon): refresh options 2025-08-24 16:17:10 +03:00
Elian Doran
80ad87671a
chore(react/ribbon): search & execute button 2025-08-24 16:02:15 +03:00
Elian Doran
b6d5a6ec2e
chore(react/ribbon): dynamic rendering of search options 2025-08-24 15:59:22 +03:00
Elian Doran
759398d804
chore(react/ribbon): working execute search button 2025-08-24 15:48:53 +03:00
Elian Doran
c1b30db3d1
chore(react/ribbon): port search string 2025-08-24 15:29:07 +03:00
Elian Doran
0c8bfc39ef
refactor(react/ribbon): bring back tab activation 2025-08-24 12:23:25 +03:00
Elian Doran
3815fddb27
Merge branch 'react/note_context_aware' of https://github.com/TriliumNext/trilium into react/note_context_aware 2025-08-24 12:22:16 +03:00
Elian Doran
b585a64a38
Merge remote-tracking branch 'origin/main' into react/note_context_aware 2025-08-24 12:05:05 +03:00
Elian Doran
58e58c192f
Merge branch 'main' of https://github.com/TriliumNext/trilium 2025-08-24 11:58:56 +03:00
Elian Doran
5939344378
fix(deps): update dependency i18next to v25.4.1 (#6754) 2025-08-24 11:49:48 +03:00
Elian Doran
ad85ee3531
feat(react/ribbon): start porting search definitions (buttons) 2025-08-24 11:42:25 +03:00
renovate[bot]
349f19fef7
fix(deps): update dependency i18next to v25.4.1 2025-08-24 08:18:50 +00:00
Elian Doran
d5777a024e
chore(deps): update svelte monorepo (#6753) 2025-08-24 11:17:52 +03:00
Elian Doran
b7f4ee6171
fix(deps): update dependency react-i18next to v15.7.2 (#6755) 2025-08-24 11:17:05 +03:00
Elian Doran
a83c4e3970
fix(deps): update dependency eslint-linter-browserify to v9.34.0 (#6756) 2025-08-24 11:16:53 +03:00
Elian Doran
5a767dae34
feat(i18n): add support for Brazilian Portuguese 2025-08-24 11:05:52 +03:00
Elian Doran
9f93d30b99
feat(i18n): add support for Ukrainian 2025-08-24 10:53:21 +03:00
Elian Doran
dff525edc6
Translations update from Hosted Weblate (#6743) 2025-08-24 10:52:42 +03:00
renovate[bot]
26da431320
fix(deps): update dependency react-i18next to v15.7.2 2025-08-24 07:32:43 +00:00
renovate[bot]
cde4622693
fix(deps): update dependency eslint-linter-browserify to v9.34.0 2025-08-24 07:30:44 +00:00
renovate[bot]
5ede7ecc69
chore(deps): update svelte monorepo 2025-08-24 01:36:13 +00:00
Elian Doran
b607d1e628
refactor(react/ribbon): shared component for labelled entry 2025-08-23 23:59:41 +03:00
Elian Doran
d7e36bdf93
feat(react/ribbon): reintroduce combobox collection properties 2025-08-23 23:54:14 +03:00
Elian Doran
2b8b185b5b
feat(react/ribbon): reintroduce number collection properties 2025-08-23 23:39:47 +03:00
Elian Doran
927ebcbec9
feat(react/ribbon): reintroduce checkbox collection properties 2025-08-23 23:32:12 +03:00
Elian Doran
ea1397de63
feat(react/ribbon): reintroduce button collection properties 2025-08-23 23:25:25 +03:00
Elian Doran
ce1f5c6204
feat(react/ribbon): port view type 2025-08-23 22:49:32 +03:00
Elian Doran
652114c7b5
feat(react/ribbon): finalize port of inherited attributes tab 2025-08-23 22:18:04 +03:00
Elian Doran
17cd2128fd
chore(react): add editorconfig for .tsx 2025-08-23 22:02:41 +03:00
Elian Doran
bc4378cb3e
chore(react/ribbon): port inherited attributes partially 2025-08-23 22:02:33 +03:00
perf3ct
513878dfef
feat(jump_to): got the styling to look exactly how we were hoping for 2025-08-23 18:58:18 +00:00
perf3ct
753d5529b2
feat(jump_to): get the styling very close to what we want it to look like... 2025-08-23 18:40:11 +00:00
Elian Doran
9f217b88e4
refactor(react/ribbon): set up keyboard shortcuts 2025-08-23 20:59:21 +03:00
Elian Doran
d53faa8c01
refactor(react/ribbon): imperative api for saving, reloading, updating attributes 2025-08-23 20:49:54 +03:00
Elian Doran
a934760960
refactor(react/ribbon): use custom method for injecting handlers 2025-08-23 20:44:03 +03:00
Elian Doran
82914fc2aa
chore(react/ribbon): unable to create notes in attribute editor 2025-08-23 20:35:19 +03:00
Elian Doran
db687197de
chore(react/ribbon): add focus to attribute editor 2025-08-23 20:31:00 +03:00
Elian Doran
efd713dc61
chore(react/ribbon): add blur & keydown events 2025-08-23 19:54:02 +03:00
Elian Doran
3f3c7cfe88
chore(react/ribbon): add menu 2025-08-23 19:48:01 +03:00
Elian Doran
73ca285b7a
chore(react/ribbon): support reference links in attributes 2025-08-23 19:26:23 +03:00
Elian Doran
168d25c020
chore(react/ribbon): fix save icon displayed when it shouldn't 2025-08-23 19:13:48 +03:00
Elian Doran
e8ae5486c8
chore(react/ribbon): display attribute errors 2025-08-23 18:28:42 +03:00
Elian Doran
f049b8b915
chore(react/ribbon): save attribute changes 2025-08-23 18:23:38 +03:00
Микола Копитін
4e755dc537
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1560 of 1560 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/uk/
2025-08-23 14:16:31 +02:00
Francis C
5351310a38
Translated using Weblate (Japanese)
Currently translated at 67.9% (1060 of 1560 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ja/
2025-08-23 14:16:31 +02:00
Микола Копитін
211ca43a82
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (378 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/uk/
2025-08-23 14:16:31 +02:00
Микола Копитін
e5235e7f22
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1560 of 1560 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/uk/
2025-08-23 14:16:31 +02:00
Astryd Park
e72298f0b4
Translated using Weblate (Korean)
Currently translated at 0.2% (1 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ko/
2025-08-23 14:16:31 +02:00
Микола Копитін
3abf5c65c6
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (378 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/uk/
2025-08-23 14:16:31 +02:00
Микола Копитін
268acb0b88
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1560 of 1560 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/uk/
2025-08-23 14:16:30 +02:00
Kuzma Simonov
196b3b873f
Translated using Weblate (Russian)
Currently translated at 100.0% (378 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/ru/
2025-08-23 14:16:30 +02:00
Микола Копитін
4d9801a372
Translated using Weblate (Russian)
Currently translated at 100.0% (1560 of 1560 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-08-23 14:16:30 +02:00
Kuzma Simonov
bd710ba665
Translated using Weblate (Russian)
Currently translated at 100.0% (1560 of 1560 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/ru/
2025-08-23 14:16:30 +02:00
Francis C
afe369c876
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1560 of 1560 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hant/
2025-08-23 14:16:30 +02:00
Newcomer1989
206007bbce
Translated using Weblate (German)
Currently translated at 81.7% (309 of 378 strings)

Translation: Trilium Notes/Server
Translate-URL: https://hosted.weblate.org/projects/trilium/server/de/
2025-08-23 14:16:30 +02:00
rodrigomescua
8ad05b92c0
Translated using Weblate (Portuguese (Brazil))
Currently translated at 60.8% (950 of 1560 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/pt_BR/
2025-08-23 14:16:30 +02:00
Francis C
735da2a855
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1560 of 1560 strings)

Translation: Trilium Notes/Client
Translate-URL: https://hosted.weblate.org/projects/trilium/client/zh_Hans/
2025-08-23 14:16:30 +02:00
Elian Doran
980077f559
Add UI performance-related settings (#6747) 2025-08-23 15:16:22 +03:00
Elian Doran
12053e75bb
chore(react/ribbon): fix size of attribute widget 2025-08-23 13:13:01 +03:00
Elian Doran
62372ed4c5
chore(react/ribbon): add logic for displaying attribute detail 2025-08-23 12:55:48 +03:00
Elian Doran
e5caf37697
chore(react/ribbon): load current attributes in editor 2025-08-23 12:39:49 +03:00
Elian Doran
befc5a9530
feat(react/ribbon): display help tooltip in attribute editor 2025-08-23 12:31:54 +03:00
Elian Doran
1e00407864
chore(react/ribbon): use separate component for editor 2025-08-23 12:05:03 +03:00
Elian Doran
73038efccf
chore(react/ribbon): add some CKEditor events 2025-08-23 11:52:40 +03:00
Elian Doran
6d37e19b40
chore(react/ribbon): start implementing attribute editor 2025-08-23 11:44:51 +03:00
Elian Doran
2c33ef2b0d
chore(react/ribbon): similar notes style 2025-08-23 11:28:10 +03:00
Elian Doran
6c30e0836f
chore(react/ribbon): also react to width, not just height 2025-08-23 11:21:05 +03:00
Elian Doran
5f77ca31bd
chore(react/ribbon): react note map to height changes 2025-08-23 11:12:14 +03:00
Elian Doran
f7c82d6b09
chore(react/ribbon): watch note map size 2025-08-23 11:00:25 +03:00
Elian Doran
86dd9aa42a
chore(react/ribbon): integrate expand/collapse button 2025-08-23 10:47:46 +03:00
Elian Doran
5daca270e4
fix(deps): update dependency mermaid to v11.10.1 (#6749) 2025-08-23 08:47:35 +03:00
Elian Doran
e18813a4bf
fix(deps): update eslint monorepo to v9.34.0 (#6750) 2025-08-23 08:47:16 +03:00
renovate[bot]
4aa7e211f3
fix(deps): update eslint monorepo to v9.34.0 2025-08-23 00:25:46 +00:00
renovate[bot]
419dc7edfb
fix(deps): update dependency mermaid to v11.10.1 2025-08-23 00:24:33 +00:00
renovate[bot]
eaa84a6b39
chore(deps): update dependency @types/jquery to v3.5.33 2025-08-23 00:23:57 +00:00
Adorian Doran
1d0503d0e4 client/settings/ui-performance-settings: remove form groups 2025-08-23 03:22:59 +03:00
Adorian Doran
f7f98aa9a3 client/settings/ui-performance-settings: improve code formatting 2025-08-23 03:10:51 +03:00
Adorian Doran
575d14261a Merge branch 'main' of https://github.com/TriliumNext/Trilium into client/settings/ui-performance-settings 2025-08-23 02:20:37 +03:00
Adorian Doran
9aab606deb style: improve the support of disabled backdrop effects 2025-08-23 02:15:06 +03:00
Adorian Doran
2e11681b52 client/settings/disable backdrop effects: add the CSS implementation 2025-08-23 01:26:21 +03:00
Adorian Doran
8cca6637f7 client/settings/disable backdrop effects: react to the option change 2025-08-23 01:23:20 +03:00
Adorian Doran
82e076378c client/settings/disable backdrop effects: add the corresponding checkbox in the Appearance settings page 2025-08-23 01:20:54 +03:00
Adorian Doran
94ddad3c49 client/settings/disable backdrop effects: add an option to enable or disable backdrop effects 2025-08-23 01:15:00 +03:00
Adorian Doran
d35dbca18b client/settings/disable shadows: add the CSS implementation 2025-08-23 00:58:50 +03:00
Adorian Doran
7468d6147a client/settings/disable shadows: react to the option change 2025-08-23 00:55:46 +03:00
Adorian Doran
7c78d749de client/settings/disable shadows: add the corresponding checkbox in the Appearance settings page 2025-08-23 00:49:35 +03:00
Adorian Doran
85dd99a3c4 client/settings/disable shadows: add an option to enable or disable shadows 2025-08-23 00:43:49 +03:00
Adorian Doran
0a9c0234e2 client/settings/disable motion: update translation 2025-08-23 00:38:06 +03:00
JYC333
fad77ba5a0
chore(deps): update dependency vite-plugin-static-copy to v3.1.2 [security] (#6735) 2025-08-22 23:30:13 +02:00
JYC333
12723f3216
fix(deps): update dependency react-i18next to v15.7.1 (#6739) 2025-08-22 23:29:38 +02:00
JYC333
a43140515f
chore(deps): update ckeditor5 config packages to v12.1.1 (#6738) 2025-08-22 23:29:26 +02:00
Adorian Doran
3e3cc8c541 client/settings/disable motion: refactor 2025-08-23 00:19:26 +03:00
Elian Doran
a85141ace2
feat(react/ribbon): port note map partially 2025-08-22 23:47:02 +03:00
Elian Doran
c33280bbb2
chore(react): fix leak & adjustable class name 2025-08-22 23:45:31 +03:00
Elian Doran
df3aa04787
chore(react): proper legacy widget injection & event handling 2025-08-22 23:33:02 +03:00
Elian Doran
4bd25a0d4a
chore(react): use different injection mechanism 2025-08-22 23:24:00 +03:00
Elian Doran
7fadf4c6e1
chore(react): prototype hook to render legacy widgets 2025-08-22 23:12:14 +03:00
Adorian Doran
d1538508e8 client/settings/disable motion: turn off jQuery animations if motion is disabled 2025-08-22 22:20:57 +03:00
Elian Doran
b24d786933
chore(react/ribbon): fix a few type errors 2025-08-22 21:58:35 +03:00
Elian Doran
8f69b87dd1
feat(react/ribbon): port note paths tab 2025-08-22 21:45:03 +03:00
Adorian Doran
9b1da8c311 Settings/Appearance: improve CSS selector specificity 2025-08-22 21:37:56 +03:00
Elian Doran
8287063aab
feat(react/ribbon): port image properties 2025-08-22 21:09:51 +03:00
Adorian Doran
e4a8258acf client/settings/disable motion: fix submenus not opening 2025-08-22 20:52:31 +03:00
Adorian Doran
5e88043c7b client/settings/disable motion: add the CSS implementation 2025-08-22 20:48:26 +03:00
Adorian Doran
bedf9112fb client/settings/disable motion: add localization support 2025-08-22 20:42:17 +03:00
Adorian Doran
03681d23c5 client/settings/disable motion: add an option to allow transitions and animations to be disabled 2025-08-22 20:32:08 +03:00
Elian Doran
21683db0b8
refactor(react/ribbon): dedicated component for file upload 2025-08-22 20:25:15 +03:00
Elian Doran
978d829150
feat(react/ribbon): port file notes 2025-08-22 20:17:00 +03:00
Elian Doran
cc05572a35
feat(react/ribbon): port similar notes 2025-08-22 19:27:58 +03:00
Elian Doran
c5bb310613
chore(react/ribbon): bring back note info auto-refresh 2025-08-22 19:07:04 +03:00
Elian Doran
77551b1fed
feat(react/ribbon): port note info tab 2025-08-22 18:23:54 +03:00
Elian Doran
70728c274e
feat(react/ribbon): port note properties 2025-08-22 17:41:45 +03:00
Elian Doran
cee4714665
feat(react/ribbon): port edited notes 2025-08-22 17:31:15 +03:00
Elian Doran
c3eca3b626
feat(react/ribbon): port script tab 2025-08-22 16:58:44 +03:00
Elian Doran
01e4cd2e78
chore(react/ribbon): set up formatting toolbar 2025-08-22 16:34:16 +03:00
Elian Doran
b99d01ad7b
chore(react/ribbon): bring back tab filtering 2025-08-22 16:07:30 +03:00
Elian Doran
bf0213907e
chore(react/ribbon): finalize language switcher 2025-08-22 15:40:36 +03:00
Elian Doran
eff5b6459d
chore(react/ribbon): fix event 2025-08-22 15:11:12 +03:00
Elian Doran
8e29b5eed6
feat(react/ribbon): port note language 2025-08-22 12:34:21 +03:00
Elian Doran
c91748da15
feat(react/ribbon): port template switch 2025-08-22 12:15:03 +03:00
Elian Doran
f04f9dc262
feat(react/ribbon): port shared switch 2025-08-22 11:57:45 +03:00
Elian Doran
e873cdab7e
chore(react/ribbon): fix width of editability select 2025-08-22 11:42:07 +03:00
Elian Doran
f9b6fd6ac5
feat(react): port bookmark switch 2025-08-22 11:40:27 +03:00
renovate[bot]
aa191e110c
fix(deps): update dependency react-i18next to v15.7.1 2025-08-22 02:44:08 +00:00
renovate[bot]
dd09907925
chore(deps): update ckeditor5 config packages to v12.1.1 2025-08-22 02:43:31 +00:00
Elian Doran
da4810672d
feat(react/ribbon): improve editability select 2025-08-21 22:24:35 +03:00
Elian Doran
f772f59d7c
feat(react/ribbon): port editability select 2025-08-21 22:19:26 +03:00
Elian Doran
1964fb90d5
feat(react/ribbon): port toggle protected note 2025-08-21 21:26:45 +03:00
Elian Doran
5945f2860a
chore(react/ribbon): finalize note type selection 2025-08-21 21:01:57 +03:00
Elian Doran
f45da049b9
chore(react/ribbon): change note type 2025-08-21 20:56:37 +03:00
Elian Doran
c0beab8a5d
chore(react/ribbon): display current note type 2025-08-21 20:38:19 +03:00
Elian Doran
cabeb13adb
chore(react/ribbon): add note types 2025-08-21 20:30:12 +03:00
Elian Doran
e2e9721d5f
chore(react/ribbon): add basic note types & badges 2025-08-21 20:16:06 +03:00
Elian Doran
4e9deab605
chore(react/ribbon): make content work 2025-08-21 19:59:56 +03:00
Elian Doran
9bb048fb01
chore(react/ribbon): toggleable tabs 2025-08-21 19:48:07 +03:00
Elian Doran
6849f80506
chore(react/ribbon): make tabs activable 2025-08-21 19:35:21 +03:00
Elian Doran
5597f4e2e0
chore(react/ribbon): add all ribbon tab titles & icon 2025-08-21 19:27:18 +03:00
renovate[bot]
35e9508bde
chore(deps): update dependency vite-plugin-static-copy to v3.1.2 [security] 2025-08-21 15:41:25 +00:00
Elian Doran
45fbcec805
feat(react/ribbon): port base structure 2025-08-21 18:29:13 +03:00
Elian Doran
d76d50f30e
chore(react): fix a type error 2025-08-21 17:16:03 +03:00
Elian Doran
4685aef88d
chore(react/note_icon): reset to default icon 2025-08-21 16:19:18 +03:00
Elian Doran
a106510924
chore(react/note_icon): react to icon changes 2025-08-21 15:50:14 +03:00
Elian Doran
9d54503ef7
chore(react/note_icon): reintroduce setting the icon 2025-08-21 15:21:32 +03:00
Elian Doran
b1449eebf3
chore(react/note_icon): reintroduce read-only 2025-08-21 15:14:19 +03:00
Elian Doran
b213453062
refactor(react/note_icon): introduce autofocus at text box level 2025-08-21 15:11:08 +03:00
Elian Doran
076c0321cf
chore(react/note_icon): focus search by default 2025-08-21 15:09:25 +03:00
Elian Doran
4d71b73f38
chore(react/note_icon): case insensitive search 2025-08-21 15:07:41 +03:00
Elian Doran
b20ffdf7db
chore(react/note_icon): sort by count 2025-08-21 15:05:55 +03:00
Elian Doran
ef018e22d6
feat(react/note_icon): render dropdown only when needed 2025-08-21 15:03:54 +03:00
Elian Doran
3fa290a257
chore(react/note_icon): add back filter by category 2025-08-21 14:57:54 +03:00
Elian Doran
cdde530b60
chore(react/note_icon): add back filter by text 2025-08-21 14:45:19 +03:00
Elian Doran
aa608510d0
feat(react): port note icon 2025-08-21 14:41:59 +03:00
Elian Doran
009fd63ce9
chore(react): finalize note title porting 2025-08-21 13:18:39 +03:00
Elian Doran
bea352855a
refactor(react): allow binding multiple events at once 2025-08-21 13:17:28 +03:00
Elian Doran
51e8a80ca3
chore(react/note_title): delete new notes on escape 2025-08-21 13:13:48 +03:00
Elian Doran
8a543d4513
chore(react/note_title): focus content on enter 2025-08-21 13:00:08 +03:00
Elian Doran
945e180a6f
chore(react/note_title): add before unload listener 2025-08-21 12:55:33 +03:00
Elian Doran
b93fa332d3
fix(client): please wait for save showing up multiple times 2025-08-21 12:49:03 +03:00
Elian Doran
9e947f742d
fix(react/note_title): title shown on empty widget pane 2025-08-21 12:15:12 +03:00
Elian Doran
033e90f8b7
fix(react/note_title): not refreshing on protected session 2025-08-21 12:13:30 +03:00
Elian Doran
be576176c5
feat(react/note_title): bring back navigation title 2025-08-21 11:08:33 +03:00
Elian Doran
4da3e8a4d8
refactor(react/note_title): use note property for title as well 2025-08-21 10:54:38 +03:00
Elian Doran
db2bf537ea
refactor(react/note_title): use hook for listening to note property 2025-08-21 10:44:58 +03:00
Elian Doran
9a4fdcaef2
chore(react/note_title): bring back styles 2025-08-21 10:34:30 +03:00
Elian Doran
ca40360f7d
feat(react): basic implementation of note title 2025-08-21 10:08:49 +03:00
Elian Doran
799e705ff8
fix(react): note context not always updated 2025-08-21 09:18:52 +03:00
perf3ct
4ce9102f93
feat(docs): try to also improve how environment variables are shown in docs 2025-08-21 02:21:00 +00:00
perf3ct
eb27ec2234
feat(config): fix previously documented env var formula not working
asdf
2025-08-21 02:18:08 +00:00
Elian Doran
59486cd55d
feat(react): basic handling of note context aware 2025-08-20 23:53:13 +03:00
Elian Doran
afe3904ea3
feat(react): render raw react components 2025-08-20 22:13:52 +03:00
Elian Doran
9cf7fa1997
fix(export/share): use right extension for clones 2025-06-24 22:14:15 +03:00
Elian Doran
fded714f18
fix(export/share): use right extension for images 2025-06-24 19:53:21 +03:00
Elian Doran
06de06b501
refactor(export/share): share type for format 2025-06-24 19:21:09 +03:00
Elian Doran
9abdbbbc5b
refactor(export/share): fix type 2025-06-24 19:06:18 +03:00
Elian Doran
3ebfee8bd2
fix(export/share): tree error in prod 2025-06-24 18:49:19 +03:00
Elian Doran
6d446c5b27
fix(export/share): asset path in prod 2025-06-24 18:49:11 +03:00
Elian Doran
3a55490bbf
refactor(share): use a string cache for templates 2025-06-24 18:08:29 +03:00
Elian Doran
bc4643fed2
refactor(share): use internal rendering method for subtemplates 2025-06-24 17:48:52 +03:00
Elian Doran
a2110ca631
fix(export/share): tree not expanding properly 2025-06-24 17:45:06 +03:00
Elian Doran
413137ac64
chore(nx): sync tsconfig 2025-06-23 21:23:44 +03:00
Elian Doran
9bc966491d
fix(edit-docs): import error 2025-06-23 21:22:45 +03:00
Elian Doran
61dbc15fc6
feat(export/share): use translation 2025-06-23 20:14:13 +03:00
Elian Doran
b475037127
feat(export/share): render non-text note types 2025-06-23 20:00:40 +03:00
Elian Doran
35622a2122
feat(export/share): always render empty files 2025-06-23 19:38:47 +03:00
Elian Doran
77e4c3d0ec
refactor(export/share): use different URL rewriting mechanism 2025-06-23 19:28:45 +03:00
Elian Doran
8523050ab2
fix(export/share): note children preview links not working 2025-06-23 19:00:20 +03:00
Elian Doran
0efdf65202
refactor(export/share): build index file 2025-06-23 18:46:21 +03:00
Elian Doran
acb0991d05
refactor(export/zip): separate building provider into own method 2025-06-23 18:24:59 +03:00
Elian Doran
a9f68f5487
feat(export/zip): add option to export with share theme 2025-06-23 18:13:47 +03:00
Elian Doran
55bb2fdb9b
refactor(export/zip): extract prepare content into providers 2025-06-23 16:22:42 +03:00
Elian Doran
e529633b8b
chore(export/zip): bring back markdown exporter 2025-06-23 16:17:29 +03:00
Elian Doran
dfd575b6eb
refactor(export/zip): extract into separate provider 2025-06-23 16:08:31 +03:00
Elian Doran
c5196721d4
chore(nx): sync tsconfig 2025-06-23 15:36:10 +03:00
Elian Doran
968c75b618
Merge remote-tracking branch 'origin/main' into feature/export_with_share_theme 2025-06-23 15:35:30 +03:00
Elian Doran
01beebf660
feat(export/zip): load script as well 2025-06-14 01:23:02 +03:00
Elian Doran
d3115e834a
feat(export/zip): get logo to work 2025-06-14 01:01:12 +03:00
Elian Doran
01a552ceb5
feat(export/zip): get boxicons to work 2025-06-14 00:52:56 +03:00
Elian Doran
d8958adea5
feat(export/zip): basic tree navigation 2025-06-14 00:07:55 +03:00
Elian Doran
4d5e866db6
feat(export/zip): get CSS to load 2025-06-13 23:47:04 +03:00
Elian Doran
f189deb415
feat(export/zip): get tree to render 2025-06-13 23:22:44 +03:00
Elian Doran
9c460dbc87
feat(export/zip): get same rendering engine as share 2025-06-13 23:10:14 +03:00
Elian Doran
2c6ba9ba2c
refactor(share): extract note rendering logic 2025-06-13 17:48:19 +03:00
Nathan Cahill
a1ef80f5ae split.js v1.6.5 react-split v2.0.14 react-split-grid v1.0.4 2022-01-06 18:05:56 -06:00
Johan Sundström
d9a350a003 accept arrays for snapOffset in splitjs 2021-05-11 16:33:35 +02:00
Nathan Cahill
3b9bb98d8d v1.6.4 2021-04-05 08:58:28 -04:00
Nathan Cahill
87e7449da2 update types 2021-04-05 08:57:28 -04:00
Nathan Cahill
a2c8695a6d splitjs v1.6.3, split-grid v1.0.10 2021-04-02 09:27:16 -04:00
Nathan Cahill
2f74e84777 add maxSize option 2021-04-02 09:27:16 -04:00
Nathan Cahill
db9591a011 split.js v1.6.2, react-split-grid v1.0.3 2020-07-07 11:01:34 +02:00
Nathan Cahill
e56e29fd64 add sizes to onDrag 2020-07-07 10:56:14 +02:00
Nathan Cahill
06e4a8bc50 Merge pull request #214 from pgherveou/patch-1
Update splitjs type definitions
2020-07-07 10:52:39 +02:00
Nathan Cahill
d4a1905e73 react-split v2.0.9 2020-06-24 13:39:50 +02:00
Nathan Cahill
bc583b0ceb split.js v1.6.1 2020-06-24 13:39:36 +02:00
Nathan Cahill
d5b8666dee revert from mjs esm build for webpack 2020-06-24 13:39:07 +02:00
PG Herveou
905e311e42 Update index.d.ts 2020-06-15 14:49:22 -04:00
PG Herveou
d3d4c88b47 Merge branch 'master' into patch-1 2020-06-15 14:48:48 -04:00
Nathan Cahill
7cdad71a8e david-dm down 2020-06-15 10:16:04 +02:00
Nathan Cahill
4e2b331ba0 readmes 2020-06-12 15:18:11 +02:00
Nathan Cahill
f0c0c6ec67 split.js - v1.6.0 2020-06-10 18:52:40 +02:00
Nathan Cahill
57656efacc add types 2020-06-10 18:47:40 +02:00
Nathan Cahill
a8b26cbe27 update defs 2020-06-10 18:39:30 +02:00
Nathan Cahill
1c9ffe5378 bump license year 2020-06-10 18:17:04 +02:00
Nathan Cahill
47d3bb7575 allow ssr with global
Co-authored-by: Austin Buckler <buckleraustin@gmail.com>
2020-06-10 18:05:27 +02:00
Nathan Cahill
03d6cb58db drop support for ie 8 2020-06-10 17:31:11 +02:00
Nathan Cahill
5d0f64db46 upgrade jasmine, dependabot, rollup 2020-06-10 16:42:41 +02:00
Nathan Cahill
76a973ac8a remove old browsers 2020-06-10 16:14:40 +02:00
Nathan Cahill
0491f27d55 remove old browsers not working 2020-06-10 16:08:50 +02:00
Nathan Cahill
3caa7fcfa5 run saucelabs 2020-06-10 15:16:17 +02:00
Nathan Cahill
bfdb3caa50 fix saucelabs versions 2020-06-10 14:45:59 +02:00
Nathan Cahill
f815c2ff8d version bump and format 2020-06-10 14:04:08 +02:00
Nathan Cahill
7c654903f6 Merge pull request #221 from inetsoft-anton/patch-1
Unrestrict cursor option typing
2019-11-22 08:54:07 -07:00
inetsoft-anton
27bfaba5ec Unrestrict cursor option typing
There doesn't appear to be a restriction in the code that limits the cursor style to one of col-resize or row-resize.
Change it to string to be more lenient, like gutterAlign.
2019-11-22 10:26:38 -05:00
PG Herveou
c2548cb4fa Update package.json 2019-11-06 11:30:29 -05:00
PG Herveou
086fe79dd9 Update package.json 2019-11-06 11:29:55 -05:00
PG Herveou
e8dfce7421 Update splitjs type definitions
This PR update the drag method definitions
see: https://github.com/nathancahill/split/tree/master/packages/splitjs#ondrag-ondragstart-ondragend
2019-11-06 11:25:32 -05:00
Nathan Cahill
c55da9de12 Merge pull request #198 from donaldpipowitch/patch-1
added missing react section
2019-07-07 15:44:17 -04:00
Nathan Cahill
ed5763d89a update karma conf 2019-07-07 12:46:25 -04:00
Nathan Cahill
e49912e83c docs 2019-07-07 12:08:32 -04:00
Donald Pipowitch
0b90bf460a added missing react section 2019-06-07 09:48:00 +02:00
Nathan Cahill
cf5f5476df splitjs - v1.5.11 2019-06-01 13:18:06 -04:00
Nathan Cahill
a12ba57de7 fix logo 2019-06-01 13:13:54 -04:00
Nathan Cahill
4574a233e6 splitjs - v1.5.10 2019-06-01 13:13:06 -04:00
Nathan Cahill
6e9ebf75ad fix link to flex layout 2019-06-01 10:54:13 -04:00
Nathan Cahill
1e720d4810 remove semi-colons from readme 2019-06-01 10:47:18 -04:00
Nathan Cahill
2e2c20f8a3 bump license year 2019-04-05 16:44:39 -04:00
Nathan Cahill
f1b976d4e4 fix typo in docs 2019-04-05 16:42:24 -04:00
Nathan Cahill
071e8a0cc1 Merge pull request #189 from stoplightio/master
Fix lack of item index in elementStyle
2019-03-11 15:41:31 -04:00
Jakub Rożek
c0006e961b consistently pass index to elementStyle 2019-03-11 15:40:54 +01:00
Nathan Cahill
7754829e1a handle case in hidden iframes - fixes #171 2018-11-22 11:27:53 -08:00
Nathan Cahill
a752e75409 add cdnjs 2018-11-11 17:19:16 -06:00
Nathan Cahill
61a9706b6a add cdnjs 2018-11-11 16:49:17 -06:00
Nathan Cahill
12a510c9c8 add saucelabs 2018-11-08 13:09:44 -07:00
Nathan Cahill
936d274f5a add saucelabs 2018-11-08 12:39:05 -07:00
Nathan Cahill
42fac91aed add saucelabs 2018-11-08 12:38:15 -07:00
Nathan Cahill
b934045cbd add saucelabs 2018-11-08 12:35:59 -07:00
Nathan Cahill
b77ebedf78 add saucelabs 2018-11-08 12:34:37 -07:00
Nathan Cahill
3c09f27676 es builds 2018-11-07 10:08:41 -07:00
Nathan Cahill
c545a4c685 fix paths 2018-11-06 14:35:25 -07:00
Nathan Cahill
9f0c5bf123 ignore minSize if parent is too small 2018-11-06 09:48:52 -07:00
Nathan Cahill
22a1c4cc65 v1.5.9 2018-11-05 15:05:29 -07:00
Nathan Cahill
dcd51d64fb handle views without clientSize 2018-11-05 14:58:27 -07:00
Nathan Cahill
92f95e7288 clarify css layouts 2018-11-05 12:41:25 -07:00
Nathan Cahill
31cbe99224 standardize package json 2018-11-05 07:20:37 -07:00
Nathan Cahill
45aad74b01 switch to saucelabs 2018-11-04 18:04:44 -07:00
Nathan Cahill
f1b8a1b7f2 disable browserstack until ie testing is fixed 2018-11-04 16:40:31 -07:00
Nathan Cahill
4356adcdfe fix browserstack paths 2018-11-04 15:50:10 -07:00
Nathan Cahill
8c1d9c27c2 browserstack config 2018-11-04 15:46:18 -07:00
Nathan Cahill
52c593c54e browserstack 2018-11-04 15:28:54 -07:00
Nathan Cahill
977615aa2b remove old react link 2018-11-04 15:14:11 -07:00
Nathan Cahill
58cc1280ce deprecate bower 2018-11-04 14:37:33 -07:00
Nathan Cahill
eaeb2f1bb2 move off rawgit 2018-11-04 14:36:43 -07:00
Nathan Cahill
f1d912e4bd remove submodules 2018-11-04 14:32:14 -07:00
Nathan Cahill
7c3619675a monorepo 2018-11-04 14:30:29 -07:00
1994 changed files with 113635 additions and 57347 deletions

View File

@ -1,6 +1,6 @@
root = true
[*.{js,ts}]
[*.{js,ts,tsx,css}]
charset = utf-8
end_of_line = lf
indent_size = 4

1
.env
View File

@ -1 +0,0 @@
NODE_OPTIONS=--max_old_space_size=4096

View File

@ -21,7 +21,7 @@ runs:
# Certificate setup
- name: Import Apple certificates
if: inputs.os == 'macos'
uses: apple-actions/import-codesign-certs@v5
uses: apple-actions/import-codesign-certs@v6
with:
p12-file-base64: ${{ env.APPLE_APP_CERTIFICATE_BASE64 }}
p12-password: ${{ env.APPLE_APP_CERTIFICATE_PASSWORD }}
@ -30,7 +30,7 @@ runs:
- name: Install Installer certificate
if: inputs.os == 'macos'
uses: apple-actions/import-codesign-certs@v5
uses: apple-actions/import-codesign-certs@v6
with:
p12-file-base64: ${{ env.APPLE_INSTALLER_CERTIFICATE_BASE64 }}
p12-password: ${{ env.APPLE_INSTALLER_CERTIFICATE_PASSWORD }}
@ -74,7 +74,7 @@ runs:
- name: Update build info
shell: ${{ inputs.shell }}
run: npm run chore:update-build-info
run: pnpm run chore:update-build-info
# Critical debugging configuration
- name: Run electron-forge build with enhanced logging
@ -86,7 +86,8 @@ runs:
APPLE_ID_PASSWORD: ${{ env.APPLE_ID_PASSWORD }}
WINDOWS_SIGN_EXECUTABLE: ${{ env.WINDOWS_SIGN_EXECUTABLE }}
TRILIUM_ARTIFACT_NAME_HINT: TriliumNotes-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }}
run: pnpm nx --project=desktop electron-forge:make -- --arch=${{ inputs.arch }} --platform=${{ inputs.forge_platform }}
TARGET_ARCH: ${{ inputs.arch }}
run: pnpm run --filter desktop electron-forge:make --arch=${{ inputs.arch }} --platform=${{ inputs.forge_platform }}
# Add DMG signing step
- name: Sign DMG

View File

@ -10,9 +10,9 @@ runs:
steps:
- uses: pnpm/action-setup@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 22
node-version: 24
cache: "pnpm"
- name: Install dependencies
shell: bash
@ -23,7 +23,7 @@ runs:
shell: bash
run: |
pnpm run chore:update-build-info
pnpm nx --project=server package
pnpm run --filter server package
- name: Prepare artifacts
shell: bash
run: |

View File

@ -0,0 +1,103 @@
name: "Deploy to Cloudflare Pages"
description: "Deploys to Cloudflare Pages on either a temporary branch with preview comment, or on the production version if on the main branch."
inputs:
project_name:
description: "CloudFlare Pages project name"
comment_body:
description: "The message to display when deployment is ready"
default: "Deployment is ready."
required: false
production_url:
description: "The URL to mention as the production URL."
required: true
deploy_dir:
description: "The directory from which to deploy."
required: true
cloudflare_api_token:
description: "The Cloudflare API token to use for deployment."
required: true
cloudflare_account_id:
description: "The Cloudflare account ID to use for deployment."
required: true
github_token:
description: "The GitHub token to use for posting PR comments."
required: true
runs:
using: composite
steps:
# Install wrangler globally to avoid workspace issues
- name: Install Wrangler
shell: bash
run: npm install -g wrangler
# Deploy using Wrangler (use pre-installed wrangler)
- name: Deploy to Cloudflare Pages
id: deploy
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ inputs.cloudflare_api_token }}
accountId: ${{ inputs.cloudflare_account_id }}
command: pages deploy ${{ inputs.deploy_dir }} --project-name=${{ inputs.project_name}} --branch=${{ github.ref_name }}
wranglerVersion: '' # Use pre-installed version
# Deploy preview for PRs
- name: Deploy Preview to Cloudflare Pages
id: preview-deployment
if: github.event_name == 'pull_request'
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ inputs.cloudflare_api_token }}
accountId: ${{ inputs.cloudflare_account_id }}
command: pages deploy ${{ inputs.deploy_dir }} --project-name=${{ inputs.project_name}} --branch=pr-${{ github.event.pull_request.number }}
wranglerVersion: '' # Use pre-installed version
# Post deployment URL as PR comment
- name: Comment PR with Preview URL
if: github.event_name == 'pull_request'
uses: actions/github-script@v8
env:
COMMENT_BODY: ${{ inputs.comment_body }}
PRODUCTION_URL: ${{ inputs.production_url }}
PROJECT_NAME: ${{ inputs.project_name }}
with:
github-token: ${{ inputs.github_token }}
script: |
const prNumber = context.issue.number;
// Construct preview URL based on Cloudflare Pages pattern
const projectName = process.env.PROJECT_NAME;
const previewUrl = `https://pr-${prNumber}.${projectName}.pages.dev`;
// Check if we already commented
const comments = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber
});
const customMessage = process.env.COMMENT_BODY;
const botComment = comments.data.find(comment =>
comment.user.type === 'Bot' &&
comment.body.includes(customMessage)
);
const mainUrl = process.env.PRODUCTION_URL;
const commentBody = `${customMessage}!\n\n🔗 Preview URL: ${previewUrl}\n📖 Production URL: ${mainUrl}\n\n✅ All checks passed\n\n_This preview will be updated automatically with new commits._`;
if (botComment) {
// Update existing comment
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: botComment.id,
body: commentBody
});
} else {
// Create new comment
await github.rest.issues.createComment({
issue_number: prNumber,
owner: context.repo.owner,
repo: context.repo.repo,
body: commentBody
});
}

View File

@ -44,7 +44,7 @@ runs:
steps:
# Checkout branch to compare to [required]
- name: Checkout base branch
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
ref: ${{ inputs.branch }}
path: br-base

334
.github/copilot-instructions.md vendored Normal file
View File

@ -0,0 +1,334 @@
# Trilium Notes - AI Coding Agent Instructions
## Project Overview
Trilium Notes is a hierarchical note-taking application with advanced features like synchronization, scripting, and rich text editing. Built as a TypeScript monorepo using pnpm, it implements a three-layer caching architecture (Becca/Froca/Shaca) with a widget-based UI system and supports extensive user scripting capabilities.
## Essential Architecture Patterns
### Three-Layer Cache System (Critical to Understand)
- **Becca** (`apps/server/src/becca/`): Server-side entity cache, primary data source
- **Froca** (`apps/client/src/services/froca.ts`): Client-side mirror synchronized via WebSocket
- **Shaca** (`apps/server/src/share/`): Optimized cache for public/shared notes
**Key insight**: Never bypass these caches with direct DB queries. Always use `becca.notes[noteId]`, `froca.getNote()`, or equivalent cache methods.
### Entity Relationship Model
Notes use a **multi-parent tree** via branches:
- `BNote` - The note content and metadata
- `BBranch` - Tree relationships (one note can have multiple parents via cloning)
- `BAttribute` - Key-value metadata attached to notes (labels and relations)
### Entity Change System & Sync
Every entity modification (notes, branches, attributes) creates an `EntityChange` record that drives synchronization:
```typescript
// Entity changes are automatically tracked
note.title = "New Title";
note.save(); // Creates EntityChange record with changeId
// Sync protocol via WebSocket
ws.sendMessage({ type: 'sync-pull-in-progress', ... });
```
**Critical**: This is why you must use Becca/Froca methods instead of direct DB writes - they create the change tracking records needed for sync.
### Entity Lifecycle & Events
The event system (`apps/server/src/services/events.ts`) broadcasts entity lifecycle events:
```typescript
// Subscribe to events in widgets or services
eventService.subscribe('noteChanged', ({ noteId }) => {
// React to note changes
});
// Common events: noteChanged, branchChanged, attributeChanged, noteDeleted
// Widget method: entitiesReloadedEvent({loadResults}) for handling reloads
```
**Becca loader priorities**: Events are emitted in order (notes → branches → attributes) during initial load to ensure referential integrity.
### TaskContext for Long Operations
Use `TaskContext` for operations with progress reporting (imports, exports, bulk operations):
```typescript
const taskContext = new TaskContext("task-id", "import", "Import Notes");
taskContext.increaseProgressCount();
// WebSocket messages: { type: 'taskProgressCount', taskId, taskType, data, progressCount }
**Pattern**: All long-running operations (delete note trees, export, import) use TaskContext to send WebSocket updates to the frontend.
### Protected Session Handling
Protected notes require an active encryption session:
```typescript
// Always check before accessing protected content
if (note.isContentAvailable()) {
const content = note.getContent(); // Safe
} else {
const title = note.getTitleOrProtected(); // Returns "[protected]"
}
// Protected session management
protectedSessionService.isProtectedSessionAvailable() // Check session
protectedSessionService.startProtectedSession() // After password entry
```
**Session timeout**: Protected sessions expire after inactivity. The encryption key is kept in memory only.
### Attribute Inheritance Patterns
Attributes can be inherited through three mechanisms:
```typescript
// 1. Standard inheritance (#hidePromotedAttributes ~hidePromotedAttributes)
note.getInheritableAttributes() // Walks up parent tree
// 2. Child prefix inheritance (child:label copies to children)
parentNote.setLabel("child:icon", "book") // All children inherit this
// 3. Template relation inheritance (#template=templateNoteId)
note.setRelation("template", templateNoteId)
note.getInheritedAttributes() // Includes template's inheritable attributes
```
**Cycle prevention**: Inheritance tracking prevents infinite loops when notes reference each other.
### Widget-Based UI Architecture
All UI components extend from widget base classes (`apps/client/src/widgets/`):
```typescript
// Right panel widget (sidebar)
class MyWidget extends RightPanelWidget {
get position() { return 100; } // Order in panel
get parentWidget() { return 'right-pane'; }
isEnabled() { return this.note && this.note.hasLabel('myLabel'); }
async refreshWithNote(note) { /* Update UI */ }
}
// Note-aware widget (responds to note changes)
class MyNoteWidget extends NoteContextAwareWidget {
async refreshWithNote(note) { /* Refresh when note changes */ }
async entitiesReloadedEvent({loadResults}) { /* Handle entity updates */ }
}
```
**Important**: Widgets use jQuery (`this.$widget`) for DOM manipulation. Don't mix React patterns here.
## Development Workflow
### Running & Testing
```bash
# From root directory
pnpm install # Install dependencies
corepack enable # Enable pnpm if not available
pnpm server:start # Dev server (http://localhost:8080)
pnpm server:start-prod # Production mode server
pnpm desktop:start # Desktop app development
pnpm server:test spec/etapi/search.spec.ts # Run specific test
pnpm test:parallel # Client tests (can run parallel)
pnpm test:sequential # Server tests (sequential due to shared DB)
pnpm test:all # All tests (parallel + sequential)
pnpm coverage # Generate coverage reports
pnpm typecheck # Type check all projects
```
### Building
```bash
pnpm client:build # Build client application
pnpm server:build # Build server application
pnpm desktop:build # Build desktop application
```
### Test Organization
- **Server tests** (`apps/server/spec/`): Must run sequentially (shared database state)
- **Client tests** (`apps/client/src/`): Can run in parallel
- **E2E tests** (`apps/server-e2e/`): Use Playwright for integration testing
- **ETAPI tests** (`apps/server/spec/etapi/`): External API contract tests
**Pattern**: When adding new API endpoints, add tests in `spec/etapi/` following existing patterns (see `search.spec.ts`).
### Monorepo Navigation
```
apps/
client/ # Frontend (shared by server & desktop)
server/ # Node.js backend with REST API
desktop/ # Electron wrapper
web-clipper/ # Browser extension for saving web content
db-compare/ # Database comparison tool
dump-db/ # Database export utility
edit-docs/ # Documentation editing tools
packages/
commons/ # Shared types and utilities
ckeditor5/ # Custom rich text editor with Trilium-specific plugins
codemirror/ # Code editor integration
highlightjs/ # Syntax highlighting
share-theme/ # Theme for shared/published notes
ckeditor5-admonition/ # Admonition blocks plugin
ckeditor5-footnotes/ # Footnotes plugin
ckeditor5-math/ # Math equations plugin
ckeditor5-mermaid/ # Mermaid diagrams plugin
```
**Filter commands**: Use `pnpm --filter server test` to run commands in specific packages.
## Critical Code Patterns
### ETAPI Backwards Compatibility
When adding query parameters to ETAPI endpoints (`apps/server/src/etapi/`), maintain backwards compatibility by checking if new params exist before changing response format.
**Pattern**: ETAPI consumers expect specific response shapes. Always check for breaking changes.
### Frontend-Backend Communication
- **REST API**: `apps/server/src/routes/api/` - Internal endpoints (no auth required when `noAuthentication=true`)
- **ETAPI**: `apps/server/src/etapi/` - External API with authentication
- **WebSocket**: Real-time sync via `apps/server/src/services/ws.ts`
**Auth note**: ETAPI uses basic auth with tokens. Internal API endpoints trust the frontend.
### Database Migrations
- Add scripts in `apps/server/src/migrations/YYMMDD_HHMM__description.sql`
- Update schema in `apps/server/src/assets/db/schema.sql`
- Never bypass Becca cache after migrations
## Common Pitfalls
1. **Never bypass the cache layers** - Always use `becca.notes[noteId]`, `froca.getNote()`, or equivalent cache methods. Direct database queries will cause sync issues between Becca/Froca/Shaca and won't create EntityChange records needed for synchronization.
2. **Protected notes require session check** - Before accessing `note.title` or `note.getContent()` on protected notes, check `note.isContentAvailable()` or use `note.getTitleOrProtected()` which handles this automatically.
3. **Widget lifecycle matters** - Override `refreshWithNote()` for note changes, `doRenderBody()` for initial render, `entitiesReloadedEvent()` for entity updates. Widgets use jQuery (`this.$widget`) - don't mix React patterns.
4. **Tests run differently** - Server tests must run sequentially (shared database state), client tests can run in parallel. Use `pnpm test:sequential` for backend, `pnpm test:parallel` for frontend.
5. **ETAPI requires authentication** - ETAPI endpoints use basic auth with tokens. Internal API endpoints (`apps/server/src/routes/api/`) trust the frontend when `noAuthentication=true`.
6. **Search expressions are evaluated in memory** - The search service loads all matching notes, scores them in JavaScript, then sorts. You cannot add SQL-level LIMIT/OFFSET without losing scoring functionality.
7. **Documentation edits have rules** - `docs/Script API/` is auto-generated (never edit directly). `docs/User Guide/` should be edited via `pnpm edit-docs:edit-docs`, not manually. Only `docs/Developer Guide/` and `docs/Release Notes/` are safe for direct Markdown editing.
8. **pnpm workspace filtering** - Use `pnpm --filter server <command>` or shorthand `pnpm server:test` defined in root `package.json`. Note the `--filter` syntax, not `-F` or other shortcuts.
9. **Event subscription cleanup** - When subscribing to events in widgets, unsubscribe in `cleanup()` or `doDestroy()` to prevent memory leaks.
10. **Attribute inheritance can be complex** - When checking for labels/relations, use `note.getOwnedAttribute()` for direct attributes or `note.getAttribute()` for inherited ones. Don't assume attributes are directly on the note.
## TypeScript Configuration
- **Project references**: Monorepo uses TypeScript project references (`tsconfig.json`)
- **Path mapping**: Use relative imports, not path aliases
- **Build order**: `pnpm typecheck` builds all projects in dependency order
- **Build system**: Uses Vite for fast development, ESBuild for production optimization
- **Patches**: Custom patches in `patches/` directory for CKEditor and other dependencies
## Key Files for Context
- `apps/server/src/becca/entities/bnote.ts` - Note entity methods
- `apps/client/src/services/froca.ts` - Frontend cache API
- `apps/server/src/services/search/services/search.ts` - Search implementation
- `apps/server/src/routes/routes.ts` - API route registration
- `apps/client/src/widgets/basic_widget.ts` - Widget base class
- `apps/server/src/main.ts` - Server startup entry point
- `apps/client/src/desktop.ts` - Client initialization
- `apps/server/src/services/backend_script_api.ts` - Scripting API
- `apps/server/src/assets/db/schema.sql` - Database schema
## Note Types and Features
Trilium supports multiple note types with specialized widgets in `apps/client/src/widgets/type_widgets/`:
- **Text**: Rich text with CKEditor5 (markdown import/export)
- **Code**: Syntax-highlighted code editing with CodeMirror
- **File**: Binary file attachments
- **Image**: Image display with editing capabilities
- **Canvas**: Drawing/diagramming with Excalidraw
- **Mermaid**: Diagram generation
- **Relation Map**: Visual note relationship mapping
- **Web View**: Embedded web pages
- **Doc/Book**: Hierarchical documentation structure
### Collections
Notes can be marked with the `#collection` label to enable collection view modes. Collections support multiple view types:
- **List**: Standard list view
- **Grid**: Card/grid layout
- **Calendar**: Calendar-based view
- **Table**: Tabular data view
- **GeoMap**: Geographic map view
- **Board**: Kanban-style board
- **Presentation**: Slideshow presentation mode
View types are configured via `#viewType` label (e.g., `#viewType=table`). Each view mode stores its configuration in a separate attachment (e.g., `table.json`). Collections are organized separately from regular note type templates in the note creation menu.
## Common Development Tasks
### Adding New Note Types
1. Create widget in `apps/client/src/widgets/type_widgets/`
2. Register in `apps/client/src/services/note_types.ts`
3. Add backend handling in `apps/server/src/services/notes.ts`
### Extending Search
- Search expressions handled in `apps/server/src/services/search/`
- Add new search operators in search context files
- Remember: scoring happens in-memory, not at database level
### Custom CKEditor Plugins
- Create new package in `packages/` following existing plugin structure
- Register in `packages/ckeditor5/src/plugins.ts`
- See `ckeditor5-admonition`, `ckeditor5-footnotes`, `ckeditor5-math`, `ckeditor5-mermaid` for examples
### Database Migrations
- Add migration scripts in `apps/server/src/migrations/YYMMDD_HHMM__description.sql`
- Update schema in `apps/server/src/assets/db/schema.sql`
- Never bypass Becca cache after migrations
## Security & Features
### Security Considerations
- Per-note encryption with granular protected sessions
- CSRF protection for API endpoints
- OpenID and TOTP authentication support
- Sanitization of user-generated content
### Scripting System
Trilium provides powerful user scripting capabilities:
- **Frontend scripts**: Run in browser context with UI access
- **Backend scripts**: Run in Node.js context with full API access
- Script API documentation in `docs/Script API/`
- Backend API available via `api` object in script context
### Internationalization
- Translation files in `apps/client/src/translations/`
- Use translation system via `t()` function
- Automatic pluralization: Add `_other` suffix to translation keys (e.g., `item` and `item_other` for singular/plural)
## Testing Conventions
```typescript
// ETAPI test pattern
describe("etapi/feature", () => {
beforeAll(async () => {
config.General.noAuthentication = false;
app = await buildApp();
token = await login(app);
});
it("should test feature", async () => {
const response = await supertest(app)
.get("/etapi/notes?search=test")
.auth(USER, token, { type: "basic" })
.expect(200);
expect(response.body.results).toBeDefined();
});
});
```
## Questions to Verify Understanding
Before implementing significant changes, confirm:
- Is this touching the cache layer? (Becca/Froca/Shaca must stay in sync via EntityChange records)
- Does this change API response shape? (Check backwards compatibility for ETAPI)
- Are you adding search features? (Understand expression-based architecture and in-memory scoring first)
- Is this a new widget? (Know which base class and lifecycle methods to use)
- Does this involve protected notes? (Check `isContentAvailable()` before accessing content)
- Is this a long-running operation? (Use TaskContext for progress reporting)
- Are you working with attributes? (Understand inheritance patterns: direct, child-prefix, template)

View File

@ -1,40 +0,0 @@
---
applyTo: '**'
---
// This file is automatically generated by Nx Console
You are in an nx workspace using Nx 21.3.9 and pnpm as the package manager.
You have access to the Nx MCP server and the tools it provides. Use them. Follow these guidelines in order to best help the user:
# General Guidelines
- When answering questions, use the nx_workspace tool first to gain an understanding of the workspace architecture
- For questions around nx configuration, best practices or if you're unsure, use the nx_docs tool to get relevant, up-to-date docs!! Always use this instead of assuming things about nx configuration
- If the user needs help with an Nx configuration or project graph error, use the 'nx_workspace' tool to get any errors
- To help answer questions about the workspace structure or simply help with demonstrating how tasks depend on each other, use the 'nx_visualize_graph' tool
# Generation Guidelines
If the user wants to generate something, use the following flow:
- learn about the nx workspace and any specifics the user needs by using the 'nx_workspace' tool and the 'nx_project_details' tool if applicable
- get the available generators using the 'nx_generators' tool
- decide which generator to use. If no generators seem relevant, check the 'nx_available_plugins' tool to see if the user could install a plugin to help them
- get generator details using the 'nx_generator_schema' tool
- you may use the 'nx_docs' tool to learn more about a specific generator or technology if you're unsure
- decide which options to provide in order to best complete the user's request. Don't make any assumptions and keep the options minimalistic
- open the generator UI using the 'nx_open_generate_ui' tool
- wait for the user to finish the generator
- read the generator log file using the 'nx_read_generator_log' tool
- use the information provided in the log file to answer the user's question or continue with what they were doing
# Running Tasks Guidelines
If the user wants help with tasks or commands (which include keywords like "test", "build", "lint", or other similar actions), use the following flow:
- Use the 'nx_current_running_tasks_details' tool to get the list of tasks (this can include tasks that were completed, stopped or failed).
- If there are any tasks, ask the user if they would like help with a specific task then use the 'nx_current_running_task_output' tool to get the terminal output for that task/command
- Use the terminal output from 'nx_current_running_task_output' to see what's wrong and help the user fix their problem. Use the appropriate tools if necessary
- If the user would like to rerun the task or command, always use `nx run <taskId>` to rerun in the terminal. This will ensure that the task will run in the nx context and will be run the same way it originally executed
- If the task was marked as "continuous" do not offer to rerun the task. This task is already running and the user can see the output in the terminal. You can use 'nx_current_running_task_output' to get the output of the task to verify the output.

View File

@ -57,7 +57,7 @@ jobs:
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@v6
# Add any setup steps before running the `github/codeql-action/init` action.
# This includes steps like installing compilers or runtimes (`actions/setup-node`
@ -67,7 +67,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
@ -95,6 +95,6 @@ jobs:
exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{matrix.language}}"

78
.github/workflows/deploy-docs.yml vendored Normal file
View File

@ -0,0 +1,78 @@
name: Deploy Documentation
on:
# Trigger on push to main branch
push:
branches:
- main
- master # Also support master branch
# Only run when docs files change
paths:
- 'docs/**'
- 'apps/edit-docs/**'
- 'apps/build-docs/**'
- 'packages/share-theme/**'
# Allow manual triggering from Actions tab
workflow_dispatch:
# Run on pull requests for preview deployments
pull_request:
branches:
- main
- master
paths:
- 'docs/**'
- 'apps/edit-docs/**'
- 'apps/build-docs/**'
- 'packages/share-theme/**'
jobs:
build-and-deploy:
name: Build and Deploy Documentation
runs-on: ubuntu-latest
timeout-minutes: 10
# Required permissions for deployment
permissions:
contents: read
deployments: write
pull-requests: write # For PR preview comments
id-token: write # For OIDC authentication (if needed)
steps:
- name: Checkout Repository
uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Trigger build of documentation
run: pnpm docs:build
- name: Validate Built Site
run: |
test -f site/index.html || (echo "ERROR: site/index.html not found" && exit 1)
test -f site/developer-guide/index.html || (echo "ERROR: site/developer-guide/index.html not found" && exit 1)
echo "✓ User Guide and Developer Guide built successfully"
- name: Deploy
uses: ./.github/actions/deploy-to-cloudflare-pages
if: github.repository == ${{ vars.REPO_MAIN }}
with:
project_name: "trilium-docs"
comment_body: "📚 Documentation preview is ready"
production_url: "https://docs.triliumnotes.org"
deploy_dir: "site"
cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }}
cloudflare_account_id: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
github_token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -19,45 +19,24 @@ permissions:
pull-requests: write # for PR comments
jobs:
check-affected:
name: Check affected jobs (NX)
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v5
with:
fetch-depth: 0 # needed for https://github.com/marketplace/actions/nx-set-shas
- uses: pnpm/action-setup@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- uses: nrwl/nx-set-shas@v4
- name: Check affected
run: pnpm nx affected --verbose -t typecheck build rebuild-deps test-build
test_dev:
name: Test development
runs-on: ubuntu-latest
needs:
- check-affected
steps:
- name: Checkout the repository
uses: actions/checkout@v5
uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 22
node-version: 24
cache: "pnpm"
- run: pnpm install --frozen-lockfile
- name: Typecheck
run: pnpm typecheck
- name: Run the unit tests
run: pnpm run test:all
@ -66,16 +45,15 @@ jobs:
runs-on: ubuntu-latest
needs:
- test_dev
- check-affected
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Update build info
run: pnpm run chore:update-build-info
- name: Trigger client build
run: pnpm nx run client:build
run: pnpm client:build
- name: Send client bundle stats to RelativeCI
if: false
uses: relative-ci/agent-action@v3
@ -83,7 +61,7 @@ jobs:
webpackStatsFile: ./apps/client/dist/webpack-stats.json
key: ${{ secrets.RELATIVE_CI_CLIENT_KEY }}
- name: Trigger server build
run: pnpm nx run server:build
run: pnpm run server:build
- uses: docker/setup-buildx-action@v3
- uses: docker/build-push-action@v6
with:
@ -95,7 +73,6 @@ jobs:
runs-on: ubuntu-latest
needs:
- build_docker
- check-affected
strategy:
matrix:
include:
@ -103,7 +80,7 @@ jobs:
- dockerfile: Dockerfile
steps:
- name: Checkout the repository
uses: actions/checkout@v5
uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- name: Install dependencies
@ -112,7 +89,7 @@ jobs:
- name: Update build info
run: pnpm run chore:update-build-info
- name: Trigger build
run: pnpm nx run server:build
run: pnpm server:build
- name: Set IMAGE_NAME to lowercase
run: echo "IMAGE_NAME=${IMAGE_NAME,,}" >> $GITHUB_ENV

View File

@ -32,7 +32,7 @@ jobs:
- dockerfile: Dockerfile
steps:
- name: Checkout the repository
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Set IMAGE_NAME to lowercase
run: echo "IMAGE_NAME=${IMAGE_NAME,,}" >> $GITHUB_ENV
@ -44,9 +44,9 @@ jobs:
- uses: pnpm/action-setup@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 22
node-version: 24
cache: "pnpm"
- name: Install npm dependencies
@ -82,16 +82,16 @@ jobs:
require-healthy: true
- name: Run Playwright tests
run: TRILIUM_DOCKER=1 TRILIUM_PORT=8082 pnpm exec nx run server-e2e:e2e
run: TRILIUM_DOCKER=1 TRILIUM_PORT=8082 pnpm --filter=server-e2e e2e
- name: Upload Playwright trace
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: Playwright trace (${{ matrix.dockerfile }})
path: test-output/playwright/output
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v5
if: ${{ !cancelled() }}
with:
name: Playwright report (${{ matrix.dockerfile }})
@ -116,10 +116,10 @@ jobs:
- dockerfile: Dockerfile
platform: linux/arm64
image: ubuntu-24.04-arm
- dockerfile: Dockerfile
- dockerfile: Dockerfile.legacy
platform: linux/arm/v7
image: ubuntu-24.04-arm
- dockerfile: Dockerfile
- dockerfile: Dockerfile.legacy
platform: linux/arm/v8
image: ubuntu-24.04-arm
runs-on: ${{ matrix.image }}
@ -141,23 +141,27 @@ jobs:
run: echo "TEST_TAG=${TEST_TAG,,}" >> $GITHUB_ENV
- name: Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 22
node-version: 24
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run the TypeScript build
run: pnpm run server:build
- name: Update build info
run: pnpm run chore:update-build-info
- name: Update nightly version
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
run: pnpm run chore:ci-update-nightly-version
- name: Run the TypeScript build
run: pnpm run server:build
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
@ -209,9 +213,9 @@ jobs:
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: digests-${{ env.PLATFORM_PAIR }}
name: digests-${{ env.PLATFORM_PAIR }}-${{ matrix.dockerfile }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1
@ -223,7 +227,7 @@ jobs:
- build
steps:
- name: Download digests
uses: actions/download-artifact@v5
uses: actions/download-artifact@v6
with:
path: /tmp/digests
pattern: digests-*

View File

@ -19,7 +19,6 @@ concurrency:
cancel-in-progress: true
env:
GITHUB_UPLOAD_URL: https://uploads.github.com/repos/TriliumNext/Notes/releases/179589950/assets{?name,label}
GITHUB_RELEASE_ID: 179589950
permissions:
@ -46,20 +45,32 @@ jobs:
image: win-signing
shell: cmd
forge_platform: win32
# Exclude ARM64 Linux from default matrix to use native runner
exclude:
- arch: arm64
os:
name: linux
# Add ARM64 Linux with native ubuntu-24.04-arm runner for better-sqlite3 compatibility
include:
- arch: arm64
os:
name: linux
image: ubuntu-24.04-arm
shell: bash
forge_platform: linux
runs-on: ${{ matrix.os.image }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 22
node-version: 24
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- uses: nrwl/nx-set-shas@v4
- name: Update nightly version
run: npm run chore:ci-update-nightly-version
run: pnpm run chore:ci-update-nightly-version
- name: Run the build
uses: ./.github/actions/build-electron
with:
@ -79,7 +90,7 @@ jobs:
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGN_KEY }}
- name: Publish release
uses: softprops/action-gh-release@v2.3.2
uses: softprops/action-gh-release@v2.5.0
if: ${{ github.event_name != 'pull_request' }}
with:
make_latest: false
@ -91,7 +102,7 @@ jobs:
name: Nightly Build
- name: Publish artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
if: ${{ github.event_name == 'pull_request' }}
with:
name: TriliumNotes ${{ matrix.os.name }} ${{ matrix.arch }}
@ -111,7 +122,7 @@ jobs:
runs-on: ubuntu-24.04-arm
runs-on: ${{ matrix.runs-on }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Run the build
uses: ./.github/actions/build-server
@ -120,7 +131,7 @@ jobs:
arch: ${{ matrix.arch }}
- name: Publish release
uses: softprops/action-gh-release@v2.3.2
uses: softprops/action-gh-release@v2.5.0
if: ${{ github.event_name != 'pull_request' }}
with:
make_latest: false

View File

@ -4,6 +4,9 @@ on:
push:
branches:
- main
- hotfix
paths-ignore:
- "apps/website/**"
pull_request:
permissions:
@ -11,33 +14,74 @@ permissions:
contents: read
jobs:
main:
runs-on: ubuntu-latest
e2e:
strategy:
fail-fast: false
matrix:
include:
- name: linux-x64
os: ubuntu-22.04
arch: x64
- name: linux-arm64
os: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.os }}
name: E2E tests on ${{ matrix.name }}
env:
TRILIUM_DOCKER: 1
TRILIUM_PORT: 8082
TRILIUM_DATA_DIR: "${{ github.workspace }}/apps/server/spec/db"
TRILIUM_INTEGRATION_TEST: memory
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
filter: tree:0
fetch-depth: 0
# This enables task distribution via Nx Cloud
# Run this command as early as possible, before dependencies are installed
# Learn more at https://nx.dev/ci/reference/nx-cloud-cli#npx-nxcloud-startcirun
# Connect your workspace by running "nx connect" and uncomment this line to enable task distribution
# - run: npx nx-cloud start-ci-run --distribute-on="3 linux-medium-js" --stop-agents-after="e2e-ci"
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: 22
node-version: 24
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- run: pnpm exec playwright install --with-deps
- uses: nrwl/nx-set-shas@v4
# Prepend any command with "nx-cloud record --" to record its logs to Nx Cloud
# - run: npx nx-cloud record -- echo Hello World
# Nx Affected runs only tasks affected by the changes in this PR/commit. Learn more: https://nx.dev/ci/features/affected
# When you enable task distribution, run the e2e-ci task instead of e2e
- run: pnpm exec nx affected -t e2e --exclude desktop-e2e
- name: Install Playwright browsers
run: pnpm exec playwright install --with-deps
- name: Build the server
uses: ./.github/actions/build-server
with:
os: linux
arch: ${{ matrix.arch }}
- name: Unpack and start the server
run: |
version=$(node --eval "console.log(require('./package.json').version)")
file=$(find ./upload -name '*.tar.xz' -print -quit)
name=$(basename "$file" .tar.xz)
mkdir -p ./server-dist
tar -xvf "$file" -C ./server-dist
server_dir="./server-dist/TriliumNotes-Server-$version-linux-${{ matrix.arch }}"
if [ ! -d "$server_dir" ]; then
echo Missing dir.
exit 1
fi
cd "$server_dir"
"./trilium.sh" &
sleep 10
- name: Server end-to-end tests
run: pnpm --filter server-e2e e2e
- name: Upload test report
if: failure()
uses: actions/upload-artifact@v5
with:
name: e2e report ${{ matrix.arch }}
path: apps/server-e2e/test-output
- name: Kill the server
if: always()
run: pkill -f trilium || true

View File

@ -30,18 +30,30 @@ jobs:
image: win-signing
shell: cmd
forge_platform: win32
# Exclude ARM64 Linux from default matrix to use native runner
exclude:
- arch: arm64
os:
name: linux
# Add ARM64 Linux with native ubuntu-24.04-arm runner for better-sqlite3 compatibility
include:
- arch: arm64
os:
name: linux
image: ubuntu-24.04-arm
shell: bash
forge_platform: linux
runs-on: ${{ matrix.os.image }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 22
node-version: 24
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- uses: nrwl/nx-set-shas@v4
- name: Run the build
uses: ./.github/actions/build-electron
with:
@ -61,7 +73,7 @@ jobs:
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGN_KEY }}
- name: Upload the artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: release-desktop-${{ matrix.os.name }}-${{ matrix.arch }}
path: apps/desktop/upload/*.*
@ -79,7 +91,7 @@ jobs:
runs-on: ubuntu-24.04-arm
runs-on: ${{ matrix.runs-on }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Run the build
uses: ./.github/actions/build-server
@ -88,7 +100,7 @@ jobs:
arch: ${{ matrix.arch }}
- name: Upload the artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: release-server-linux-${{ matrix.arch }}
path: upload/*.*
@ -102,20 +114,20 @@ jobs:
steps:
- run: mkdir upload
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
sparse-checkout: |
docs/Release Notes
- name: Download all artifacts
uses: actions/download-artifact@v5
uses: actions/download-artifact@v6
with:
merge-multiple: true
pattern: release-*
path: upload
- name: Publish stable release
uses: softprops/action-gh-release@v2.3.2
uses: softprops/action-gh-release@v2.5.0
with:
draft: false
body_path: docs/Release Notes/Release Notes/${{ github.ref_name }}.md

51
.github/workflows/website.yml vendored Normal file
View File

@ -0,0 +1,51 @@
name: Deploy website
on:
push:
branches:
- main
paths:
- "apps/website/**"
pull_request:
paths:
- "apps/website/**"
release:
types: [ released ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
name: Build & deploy website
permissions:
contents: read
deployments: write
pull-requests: write # For PR preview comments
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- name: Set up node & dependencies
uses: actions/setup-node@v6
with:
node-version: 24
cache: "pnpm"
- name: Install dependencies
run: pnpm install --filter website --frozen-lockfile
- name: Build the website
run: pnpm website:build
- name: Deploy
uses: ./.github/actions/deploy-to-cloudflare-pages
with:
project_name: "trilium-homepage"
comment_body: "📚 Website preview is ready"
production_url: "https://triliumnotes.org"
deploy_dir: "apps/website/dist"
cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }}
cloudflare_account_id: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
github_token: ${{ secrets.GITHUB_TOKEN }}

12
.gitignore vendored
View File

@ -1,4 +1,5 @@
# See https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files for more about ignoring files.
/.cache
# compiled output
dist
@ -32,14 +33,11 @@ testem.log
.DS_Store
Thumbs.db
.nx/cache
.nx/workspace-data
vite.config.*.timestamp*
vitest.config.*.timestamp*
test-output
apps/*/data
apps/*/data*
apps/*/out
upload
@ -47,4 +45,8 @@ upload
*.tsbuildinfo
/result
.svelte-kit
.svelte-kit
# docs
site/
apps/*/coverage

2
.nvmrc
View File

@ -1 +1 @@
22.18.0
24.11.1

View File

@ -5,12 +5,10 @@
"lokalise.i18n-ally",
"ms-azuretools.vscode-docker",
"ms-playwright.playwright",
"nrwl.angular-console",
"redhat.vscode-yaml",
"tobermory.es6-string-html",
"vitest.explorer",
"yzhang.markdown-all-in-one",
"svelte.svelte-vscode",
"bradlc.vscode-tailwindcss"
"usernamehw.errorlens"
]
}

View File

@ -14,6 +14,7 @@ usageMatchRegex:
# the `{key}` will be placed by a proper keypath matching regex,
# you can ignore it and use your own matching rules as well
- "[^\\w\\d]t\\(['\"`]({key})['\"`]"
- <Trans\s*i18nKey="({key})"[^>]*>
# A RegEx to set a custom scope range. This scope will be used as a prefix when detecting keys
# and works like how the i18next framework identifies the namespace scope from the

8
.vscode/mcp.json vendored
View File

@ -1,8 +0,0 @@
{
"servers": {
"nx-mcp": {
"type": "http",
"url": "http://localhost:9461/mcp"
}
}
}

View File

@ -5,7 +5,8 @@
"i18n-ally.keystyle": "nested",
"i18n-ally.localesPaths": [
"apps/server/src/assets/translations",
"apps/client/src/translations"
"apps/client/src/translations",
"apps/website/public/translations"
],
"npm.exclude": [
"**/dist",
@ -36,5 +37,7 @@
"apps/server/src/assets/doc_notes/**": true,
"apps/edit-docs/demo/**": true
},
"nxConsole.generateAiAgentRules": true
"eslint.rules.customizations": [
{ "rule": "*", "severity": "warn" }
]
}

View File

@ -20,5 +20,10 @@
"scope": "typescript",
"prefix": "jqf",
"body": ["private $${1:name}!: JQuery<HTMLElement>;"]
},
"region": {
"scope": "css",
"prefix": "region",
"body": ["/* #region ${1:name} */\n$0\n/* #endregion */"]
}
}

View File

@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Overview
Trilium Notes is a hierarchical note-taking application with advanced features like synchronization, scripting, and rich text editing. It's built as a TypeScript monorepo using NX, with multiple applications and shared packages.
Trilium Notes is a hierarchical note-taking application with advanced features like synchronization, scripting, and rich text editing. It's built as a TypeScript monorepo using pnpm, with multiple applications and shared packages.
## Development Commands
@ -14,12 +14,9 @@ Trilium Notes is a hierarchical note-taking application with advanced features l
### Running Applications
- `pnpm run server:start` - Start development server (http://localhost:8080)
- `pnpm nx run server:serve` - Alternative server start command
- `pnpm nx run desktop:serve` - Run desktop Electron app
- `pnpm run server:start-prod` - Run server in production mode
### Building
- `pnpm nx build <project>` - Build specific project (server, client, desktop, etc.)
- `pnpm run client:build` - Build client application
- `pnpm run server:build` - Build server application
- `pnpm run electron:build` - Build desktop application
@ -28,13 +25,8 @@ Trilium Notes is a hierarchical note-taking application with advanced features l
- `pnpm test:all` - Run all tests (parallel + sequential)
- `pnpm test:parallel` - Run tests that can run in parallel
- `pnpm test:sequential` - Run tests that must run sequentially (server, ckeditor5-mermaid, ckeditor5-math)
- `pnpm nx test <project>` - Run tests for specific project
- `pnpm coverage` - Generate coverage reports
### Linting & Type Checking
- `pnpm nx run <project>:lint` - Lint specific project
- `pnpm nx run <project>:typecheck` - Type check specific project
## Architecture Overview
### Monorepo Structure
@ -94,7 +86,6 @@ Frontend uses a widget system (`apps/client/src/widgets/`):
- `apps/server/src/assets/db/schema.sql` - Core database structure
4. **Configuration**:
- `nx.json` - NX workspace configuration
- `package.json` - Project dependencies and scripts
## Note Types and Features
@ -154,7 +145,7 @@ Trilium provides powerful user scripting capabilities:
- Update schema in `apps/server/src/assets/db/schema.sql`
## Build System Notes
- Uses NX for monorepo management with build caching
- Uses pnpm for monorepo management
- Vite for fast development builds
- ESBuild for production optimization
- pnpm workspaces for dependency management

130
README.md
View File

@ -1,3 +1,14 @@
<div align="center">
<sup>Special thanks to:</sup><br />
<a href="https://go.warp.dev/Trilium" target="_blank">
<img alt="Warp sponsorship" width="400" src="https://github.com/warpdotdev/brand-assets/blob/main/Github/Sponsor/Warp-Github-LG-03.png"><br />
Warp, built for coding with multiple AI agents<br />
</a>
<sup>Available for macOS, Linux and Windows</sup>
</div>
<hr />
# Trilium Notes
![GitHub Sponsors](https://img.shields.io/github/sponsors/eliandoran) ![LiberaPay patrons](https://img.shields.io/liberapay/patrons/ElianDoran)
@ -5,41 +16,63 @@
![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/triliumnext/trilium/total)
[![RelativeCI](https://badges.relative-ci.com/badges/Di5q7dz9daNDZ9UXi0Bp?branch=develop)](https://app.relative-ci.com/projects/Di5q7dz9daNDZ9UXi0Bp) [![Translation status](https://hosted.weblate.org/widget/trilium/svg-badge.svg)](https://hosted.weblate.org/engage/trilium/)
[English](./README.md) | [Chinese (Simplified)](./docs/README-ZH_CN.md) | [Chinese (Traditional)](./docs/README-ZH_TW.md) | [Russian](./docs/README.ru.md) | [Japanese](./docs/README.ja.md) | [Italian](./docs/README.it.md) | [Spanish](./docs/README.es.md)
<!-- translate:off -->
<!-- LANGUAGE SWITCHER -->
[Chinese (Simplified Han script)](./docs/README-ZH_CN.md) | [Chinese (Traditional Han script)](./docs/README-ZH_TW.md) | [English](./docs/README.md) | [French](./docs/README-fr.md) | [German](./docs/README-de.md) | [Greek](./docs/README-el.md) | [Italian](./docs/README-it.md) | [Japanese](./docs/README-ja.md) | [Romanian](./docs/README-ro.md) | [Spanish](./docs/README-es.md)
<!-- translate:on -->
Trilium Notes is a free and open-source, cross-platform hierarchical note taking application with focus on building large personal knowledge bases.
See [screenshots](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) for quick overview:
<img src="./docs/app.png" alt="Trilium Screenshot" width="1000">
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
## ⏬ Download
- [Latest release](https://github.com/TriliumNext/Trilium/releases/latest) stable version, recommended for most users.
- [Nightly build](https://github.com/TriliumNext/Trilium/releases/tag/nightly) unstable development version, updated daily with the latest features and fixes.
## 📚 Documentation
**Visit our comprehensive documentation at [docs.triliumnotes.org](https://docs.triliumnotes.org/)**
Our documentation is available in multiple formats:
- **Online Documentation**: Browse the full documentation at [docs.triliumnotes.org](https://docs.triliumnotes.org/)
- **In-App Help**: Press `F1` within Trilium to access the same documentation directly in the application
- **GitHub**: Navigate through the [User Guide](./docs/User%20Guide/User%20Guide/) in this repository
### Quick Links
- [Getting Started Guide](https://docs.triliumnotes.org/)
- [Installation Instructions](https://docs.triliumnotes.org/user-guide/setup)
- [Docker Setup](https://docs.triliumnotes.org/user-guide/setup/server/installation/docker)
- [Upgrading TriliumNext](https://docs.triliumnotes.org/user-guide/setup/upgrading)
- [Basic Concepts and Features](https://docs.triliumnotes.org/user-guide/concepts/notes)
- [Patterns of Personal Knowledge Base](https://docs.triliumnotes.org/user-guide/misc/patterns-of-personal-knowledge)
## 🎁 Features
* Notes can be arranged into arbitrarily deep tree. Single note can be placed into multiple places in the tree (see [cloning](https://triliumnext.github.io/Docs/Wiki/cloning-notes))
* Rich WYSIWYG note editor including e.g. tables, images and [math](https://triliumnext.github.io/Docs/Wiki/text-notes) with markdown [autoformat](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat)
* Support for editing [notes with source code](https://triliumnext.github.io/Docs/Wiki/code-notes), including syntax highlighting
* Fast and easy [navigation between notes](https://triliumnext.github.io/Docs/Wiki/note-navigation), full text search and [note hoisting](https://triliumnext.github.io/Docs/Wiki/note-hoisting)
* Seamless [note versioning](https://triliumnext.github.io/Docs/Wiki/note-revisions)
* Note [attributes](https://triliumnext.github.io/Docs/Wiki/attributes) can be used for note organization, querying and advanced [scripting](https://triliumnext.github.io/Docs/Wiki/scripts)
* Notes can be arranged into arbitrarily deep tree. Single note can be placed into multiple places in the tree (see [cloning](https://docs.triliumnotes.org/user-guide/concepts/notes/cloning))
* Rich WYSIWYG note editor including e.g. tables, images and [math](https://docs.triliumnotes.org/user-guide/note-types/text) with markdown [autoformat](https://docs.triliumnotes.org/user-guide/note-types/text/markdown-formatting)
* Support for editing [notes with source code](https://docs.triliumnotes.org/user-guide/note-types/code), including syntax highlighting
* Fast and easy [navigation between notes](https://docs.triliumnotes.org/user-guide/concepts/navigation/note-navigation), full text search and [note hoisting](https://docs.triliumnotes.org/user-guide/concepts/navigation/note-hoisting)
* Seamless [note versioning](https://docs.triliumnotes.org/user-guide/concepts/notes/note-revisions)
* Note [attributes](https://docs.triliumnotes.org/user-guide/advanced-usage/attributes) can be used for note organization, querying and advanced [scripting](https://docs.triliumnotes.org/user-guide/scripts)
* UI available in English, German, Spanish, French, Romanian, and Chinese (simplified and traditional)
* Direct [OpenID and TOTP integration](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Server%20Installation/Multi-Factor%20Authentication.md) for more secure login
* [Synchronization](https://triliumnext.github.io/Docs/Wiki/synchronization) with self-hosted sync server
* there's a [3rd party service for hosting synchronisation server](https://trilium.cc/paid-hosting)
* [Sharing](https://triliumnext.github.io/Docs/Wiki/sharing) (publishing) notes to public internet
* Strong [note encryption](https://triliumnext.github.io/Docs/Wiki/protected-notes) with per-note granularity
* Direct [OpenID and TOTP integration](https://docs.triliumnotes.org/user-guide/setup/server/mfa) for more secure login
* [Synchronization](https://docs.triliumnotes.org/user-guide/setup/synchronization) with self-hosted sync server
* there are [3rd party services for hosting synchronisation server](https://docs.triliumnotes.org/user-guide/setup/server/cloud-hosting)
* [Sharing](https://docs.triliumnotes.org/user-guide/advanced-usage/sharing) (publishing) notes to public internet
* Strong [note encryption](https://docs.triliumnotes.org/user-guide/concepts/notes/protected-notes) with per-note granularity
* Sketching diagrams, based on [Excalidraw](https://excalidraw.com/) (note type "canvas")
* [Relation maps](https://triliumnext.github.io/Docs/Wiki/relation-map) and [link maps](https://triliumnext.github.io/Docs/Wiki/link-map) for visualizing notes and their relations
* [Relation maps](https://docs.triliumnotes.org/user-guide/note-types/relation-map) and [note/link maps](https://docs.triliumnotes.org/user-guide/note-types/note-map) for visualizing notes and their relations
* Mind maps, based on [Mind Elixir](https://docs.mind-elixir.com/)
* [Geo maps](./docs/User%20Guide/User%20Guide/Note%20Types/Geo%20Map.md) with location pins and GPX tracks
* [Scripting](https://triliumnext.github.io/Docs/Wiki/scripts) - see [Advanced showcases](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
* [REST API](https://triliumnext.github.io/Docs/Wiki/etapi) for automation
* [Geo maps](https://docs.triliumnotes.org/user-guide/collections/geomap) with location pins and GPX tracks
* [Scripting](https://docs.triliumnotes.org/user-guide/scripts) - see [Advanced showcases](https://docs.triliumnotes.org/user-guide/advanced-usage/advanced-showcases)
* [REST API](https://docs.triliumnotes.org/user-guide/advanced-usage/etapi) for automation
* Scales well in both usability and performance upwards of 100 000 notes
* Touch optimized [mobile frontend](https://triliumnext.github.io/Docs/Wiki/mobile-frontend) for smartphones and tablets
* Built-in [dark theme](https://triliumnext.github.io/Docs/Wiki/themes), support for user themes
* [Evernote](https://triliumnext.github.io/Docs/Wiki/evernote-import) and [Markdown import & export](https://triliumnext.github.io/Docs/Wiki/markdown)
* [Web Clipper](https://triliumnext.github.io/Docs/Wiki/web-clipper) for easy saving of web content
* Touch optimized [mobile frontend](https://docs.triliumnotes.org/user-guide/setup/mobile-frontend) for smartphones and tablets
* Built-in [dark theme](https://docs.triliumnotes.org/user-guide/concepts/themes), support for user themes
* [Evernote](https://docs.triliumnotes.org/user-guide/concepts/import-export/evernote) and [Markdown import & export](https://docs.triliumnotes.org/user-guide/concepts/import-export/markdown)
* [Web Clipper](https://docs.triliumnotes.org/user-guide/setup/web-clipper) for easy saving of web content
* Customizable UI (sidebar buttons, user-defined widgets, ...)
* [Metrics](./docs/User%20Guide/User%20Guide/Advanced%20Usage/Metrics.md), along with a [Grafana Dashboard](./docs/User%20Guide/User%20Guide/Advanced%20Usage/Metrics/grafana-dashboard.json)
* [Metrics](https://docs.triliumnotes.org/user-guide/advanced-usage/metrics), along with a Grafana Dashboard.
✨ Check out the following third-party resources/communities for more TriliumNext related goodies:
@ -56,19 +89,6 @@ There are no special migration steps to migrate from a zadam/Trilium instance to
Versions up to and including [v0.90.4](https://github.com/TriliumNext/Trilium/releases/tag/v0.90.4) are compatible with the latest zadam/trilium version of [v0.63.7](https://github.com/zadam/trilium/releases/tag/v0.63.7). Any later versions of TriliumNext/Trilium have their sync versions incremented which prevents direct migration.
## 📖 Documentation
We're currently in the progress of moving the documentation to in-app (hit the `F1` key within Trilium). As a result, there may be some missing parts until we've completed the migration. If you'd prefer to navigate through the documentation within GitHub, you can navigate the [User Guide](./docs/User%20Guide/User%20Guide/) documentation.
Below are some quick links for your convenience to navigate the documentation:
- [Server installation](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation.md)
- [Docker installation](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation/1.%20Installing%20the%20server/Using%20Docker.md)
- [Upgrading TriliumNext](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Upgrading%20TriliumNext.md)
- [Concepts and Features - Note](./docs/User%20Guide/User%20Guide/Basic%20Concepts%20and%20Features/Notes.md)
- [Patterns of personal knowledge base](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge)
Until we finish reorganizing the documentation, you may also want to [browse the old documentation](https://triliumnext.github.io/Docs).
## 💬 Discuss with us
Feel free to join our official conversations. We would love to hear what features, suggestions, or issues you may have!
@ -112,7 +132,7 @@ Note: It is best to disable automatic updates on your server installation (see b
### Server
To install TriliumNext on your own server (including via Docker from [Dockerhub](https://hub.docker.com/r/triliumnext/trilium)) follow [the server installation docs](https://triliumnext.github.io/Docs/Wiki/server-installation).
To install TriliumNext on your own server (including via Docker from [Dockerhub](https://hub.docker.com/r/triliumnext/trilium)) follow [the server installation docs](https://docs.triliumnotes.org/user-guide/setup/server).
## 💻 Contribute
@ -142,7 +162,7 @@ Download the repository, install dependencies using `pnpm` and then run the envi
git clone https://github.com/TriliumNext/Trilium.git
cd Trilium
pnpm install
pnpm nx run edit-docs:edit-docs
pnpm edit-docs:edit-docs
```
### Building the Executable
@ -151,7 +171,7 @@ Download the repository, install dependencies using `pnpm` and then build the de
git clone https://github.com/TriliumNext/Trilium.git
cd Trilium
pnpm install
pnpm nx --project=desktop electron-forge:make -- --arch=x64 --platform=win32
pnpm run --filter desktop electron-forge:make --arch=x64 --platform=win32
```
For more details, see the [development docs](https://github.com/TriliumNext/Trilium/tree/main/docs/Developer%20Guide/Developer%20Guide).
@ -162,16 +182,34 @@ Please view the [documentation guide](https://github.com/TriliumNext/Trilium/blo
## 👏 Shoutouts
* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - best WYSIWYG editor on the market, very interactive and listening team
* [FancyTree](https://github.com/mar10/fancytree) - very feature rich tree library without real competition. Trilium Notes would not be the same without it.
* [CodeMirror](https://github.com/codemirror/CodeMirror) - code editor with support for huge amount of languages
* [jsPlumb](https://github.com/jsplumb/jsplumb) - visual connectivity library without competition. Used in [relation maps](https://triliumnext.github.io/Docs/Wiki/relation-map.html) and [link maps](https://triliumnext.github.io/Docs/Wiki/note-map.html#link-map)
* [zadam](https://github.com/zadam) for the original concept and implementation of the application.
* [Sarah Hussein](https://github.com/Sarah-Hussein) for designing the application icon.
* [nriver](https://github.com/nriver) for his work on internationalization.
* [Thomas Frei](https://github.com/thfrei) for his original work on the Canvas.
* [antoniotejada](https://github.com/nriver) for the original syntax highlight widget.
* [Dosu](https://dosu.dev/) for providing us with the automated responses to GitHub issues and discussions.
* [Tabler Icons](https://tabler.io/icons) for the system tray icons.
Trilium would not be possible without the technologies behind it:
* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - the visual editor behind text notes. We are grateful for being offered a set of the premium features.
* [CodeMirror](https://github.com/codemirror/CodeMirror) - code editor with support for huge amount of languages.
* [Excalidraw](https://github.com/excalidraw/excalidraw) - the infinite whiteboard used in Canvas notes.
* [Mind Elixir](https://github.com/SSShooter/mind-elixir-core) - providing the mind map functionality.
* [Leaflet](https://github.com/Leaflet/Leaflet) - for rendering geographical maps.
* [Tabulator](https://github.com/olifolkerd/tabulator) - for the interactive table used in collections.
* [FancyTree](https://github.com/mar10/fancytree) - feature-rich tree library without real competition.
* [jsPlumb](https://github.com/jsplumb/jsplumb) - visual connectivity library. Used in [relation maps](https://docs.triliumnotes.org/user-guide/note-types/relation-map) and [link maps](https://docs.triliumnotes.org/user-guide/advanced-usage/note-map#link-map)
## 🤝 Support
Support for the TriliumNext organization will be possible in the near future. For now, you can:
- Support continued development on TriliumNext by supporting our developers: [eliandoran](https://github.com/sponsors/eliandoran) (See the [repository insights]([developers]([url](https://github.com/TriliumNext/trilium/graphs/contributors))) for a full list)
- Show a token of gratitude to the original Trilium developer ([zadam](https://github.com/sponsors/zadam)) via [PayPal](https://paypal.me/za4am) or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).
Trilium is built and maintained with [hundreds of hours of work](https://github.com/TriliumNext/Trilium/graphs/commit-activity). Your support keeps it open-source, improves features, and covers costs such as hosting.
Consider supporting the main developer ([eliandoran](https://github.com/eliandoran)) of the application via:
- [GitHub Sponsors](https://github.com/sponsors/eliandoran)
- [PayPal](https://paypal.me/eliandoran)
- [Buy Me a Coffee](https://buymeacoffee.com/eliandoran)
## 🔑 License

View File

@ -1,7 +0,0 @@
#!/usr/bin/env node
import anonymizationService from "../src/services/anonymization.js";
import fs from "fs";
import path from "path";
fs.writeFileSync(path.resolve(__dirname, "tpl", "anonymize-database.sql"), anonymizationService.getFullAnonymizationScript());

View File

@ -1,7 +0,0 @@
#!/usr/bin/env bash
SCHEMA_FILE_PATH=db/schema.sql
sqlite3 ./data/document.db .schema | grep -v "sqlite_sequence" > "$SCHEMA_FILE_PATH"
echo "DB schema exported to $SCHEMA_FILE_PATH"

View File

@ -1,16 +0,0 @@
#!/usr/bin/env bash
if [[ $# -eq 0 ]] ; then
echo "Missing argument of new version"
exit 1
fi
VERSION=$1
SERIES=${VERSION:0:4}-latest
docker push zadam/trilium:$VERSION
docker push zadam/trilium:$SERIES
if [[ $1 != *"beta"* ]]; then
docker push zadam/trilium:latest
fi

View File

@ -1,57 +0,0 @@
#!/usr/bin/env bash
if [[ $# -eq 0 ]] ; then
echo "Missing argument of new version"
exit 1
fi
VERSION=$1
if ! [[ ${VERSION} =~ ^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}(-.+)?$ ]] ;
then
echo "Version ${VERSION} isn't in format X.Y.Z"
exit 1
fi
VERSION_DATE=$(git log -1 --format=%aI "v${VERSION}" | cut -c -10)
VERSION_COMMIT=$(git rev-list -n 1 "v${VERSION}")
# expecting the directory at a specific path
cd ~/trilium-flathub || exit
if ! git diff-index --quiet HEAD --; then
echo "There are uncommitted changes"
exit 1
fi
BASE_BRANCH=main
if [[ "$VERSION" == *"beta"* ]]; then
BASE_BRANCH=beta
fi
git switch "${BASE_BRANCH}"
git pull
BRANCH=b${VERSION}
git branch "${BRANCH}"
git switch "${BRANCH}"
echo "Updating files with version ${VERSION}, date ${VERSION_DATE} and commit ${VERSION_COMMIT}"
flatpak-node-generator npm ../trilium/package-lock.json
xmlstarlet ed --inplace --update "/component/releases/release/@version" --value "${VERSION}" --update "/component/releases/release/@date" --value "${VERSION_DATE}" ./com.github.zadam.trilium.metainfo.xml
yq --inplace "(.modules[0].sources[0].tag = \"v${VERSION}\") | (.modules[0].sources[0].commit = \"${VERSION_COMMIT}\")" ./com.github.zadam.trilium.yml
git add ./generated-sources.json
git add ./com.github.zadam.trilium.metainfo.xml
git add ./com.github.zadam.trilium.yml
git commit -m "release $VERSION"
git push --set-upstream origin "${BRANCH}"
gh pr create --fill -B "${BASE_BRANCH}"
gh pr merge --auto --merge --delete-branch

View File

@ -1,49 +0,0 @@
#!/usr/bin/env bash
set -e
if [[ $# -eq 0 ]] ; then
echo "Missing argument of new version"
exit 1
fi
if ! command -v jq &> /dev/null; then
echo "Missing command: jq"
exit 1
fi
VERSION=$1
if ! [[ ${VERSION} =~ ^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}(-.+)?$ ]] ;
then
echo "Version ${VERSION} isn't in format X.Y.Z"
exit 1
fi
if ! git diff-index --quiet HEAD --; then
echo "There are uncommitted changes"
exit 1
fi
echo "Releasing Trilium $VERSION"
jq '.version = "'$VERSION'"' package.json > package.json.tmp
mv package.json.tmp package.json
git add package.json
npm run chore:update-build-info
git add src/services/build.ts
TAG=v$VERSION
echo "Committing package.json version change"
git commit -m "chore(release): $VERSION"
git push
echo "Tagging commit with $TAG"
git tag $TAG
git push origin $TAG

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
</dict>
</plist>

View File

@ -1,51 +0,0 @@
import eslint from "@eslint/js";
import tseslint from "typescript-eslint";
import simpleImportSort from "eslint-plugin-simple-import-sort";
export default tseslint.config(
eslint.configs.recommended,
tseslint.configs.recommended,
// consider using rules below, once we have a full TS codebase and can be more strict
// tseslint.configs.strictTypeChecked,
// tseslint.configs.stylisticTypeChecked,
// tseslint.configs.recommendedTypeChecked,
{
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname
}
}
},
{
plugins: {
"simple-import-sort": simpleImportSort
}
},
{
rules: {
// add rule overrides here
"no-undef": "off",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_"
}
],
"simple-import-sort/imports": "error",
"simple-import-sort/exports": "error"
}
},
{
ignores: [
"build/*",
"dist/*",
"docs/*",
"demo/*",
"src/public/app-dist/*",
"src/public/app/doc_notes/*"
]
}
);

View File

@ -1,47 +0,0 @@
import stylistic from "@stylistic/eslint-plugin";
import tsParser from "@typescript-eslint/parser";
// eslint config just for formatting rules
// potentially to be merged with the linting rules into one single config,
// once we have fixed the majority of lint errors
// Go to https://eslint.style/rules/default/${rule_without_prefix} to check the rule details
export const stylisticRules = {
"@stylistic/indent": [ "error", 4 ],
"@stylistic/quotes": [ "error", "double", { avoidEscape: true, allowTemplateLiterals: "always" } ],
"@stylistic/semi": [ "error", "always" ],
"@stylistic/quote-props": [ "error", "consistent-as-needed" ],
"@stylistic/max-len": [ "error", { code: 100 } ],
"@stylistic/comma-dangle": [ "error", "never" ],
"@stylistic/linebreak-style": [ "error", "unix" ],
"@stylistic/array-bracket-spacing": [ "error", "always" ],
"@stylistic/object-curly-spacing": [ "error", "always" ],
"@stylistic/padded-blocks": [ "error", { classes: "always" } ]
};
export default [
{
files: [ "**/*.{js,ts,mjs,cjs}" ],
languageOptions: {
parser: tsParser
},
plugins: {
"@stylistic": stylistic
},
rules: {
...stylisticRules
}
},
{
ignores: [
"build/*",
"dist/*",
"docs/*",
"demo/*",
// TriliumNextTODO: check if we want to format packages here as well - for now skipping it
"packages/*",
"src/public/app-dist/*",
"src/public/app/doc_notes/*"
]
}
];

View File

@ -1,17 +0,0 @@
import { test as setup, expect } from "@playwright/test";
const authFile = "playwright/.auth/user.json";
const ROOT_URL = "http://localhost:8082";
const LOGIN_PASSWORD = "demo1234";
// Reference: https://playwright.dev/docs/auth#basic-shared-account-in-all-tests
setup("authenticate", async ({ page }) => {
await page.goto(ROOT_URL);
await expect(page).toHaveURL(`${ROOT_URL}/login`);
await page.getByRole("textbox", { name: "Password" }).fill(LOGIN_PASSWORD);
await page.getByRole("button", { name: "Login" }).click();
await page.context().storageState({ path: authFile });
});

View File

@ -1,9 +0,0 @@
import { test, expect } from "@playwright/test";
test("Can duplicate note with broken links", async ({ page }) => {
await page.goto(`http://localhost:8082/#2VammGGdG6Ie`);
await page.locator(".tree-wrapper .fancytree-active").getByText("Note map").click({ button: "right" });
await page.getByText("Duplicate subtree").click();
await expect(page.locator(".toast-body")).toBeHidden();
await expect(page.locator(".tree-wrapper").getByText("Note map (dup)")).toBeVisible();
});

View File

@ -1,18 +0,0 @@
import { test, expect } from "@playwright/test";
test("has title", async ({ page }) => {
await page.goto("https://playwright.dev/");
// Expect a title "to contain" a substring.
await expect(page).toHaveTitle(/Playwright/);
});
test("get started link", async ({ page }) => {
await page.goto("https://playwright.dev/");
// Click the get started link.
await page.getByRole("link", { name: "Get started" }).click();
// Expects page to have a heading with the name of Installation.
await expect(page.getByRole("heading", { name: "Installation" })).toBeVisible();
});

View File

@ -1,21 +0,0 @@
import test, { expect } from "@playwright/test";
test("Native Title Bar not displayed on web", async ({ page }) => {
await page.goto("http://localhost:8082/#root/_hidden/_options/_optionsAppearance");
await expect(page.getByRole("heading", { name: "Theme" })).toBeVisible();
await expect(page.getByRole("heading", { name: "Native Title Bar (requires" })).toBeHidden();
});
test("Tray settings not displayed on web", async ({ page }) => {
await page.goto("http://localhost:8082/#root/_hidden/_options/_optionsOther");
await expect(page.getByRole("heading", { name: "Note Erasure Timeout" })).toBeVisible();
await expect(page.getByRole("heading", { name: "Tray" })).toBeHidden();
});
test("Spellcheck settings not displayed on web", async ({ page }) => {
await page.goto("http://localhost:8082/#root/_hidden/_options/_optionsSpellcheck");
await expect(page.getByRole("heading", { name: "Spell Check" })).toBeVisible();
await expect(page.getByRole("heading", { name: "Tray" })).toBeHidden();
await expect(page.getByText("These options apply only for desktop builds")).toBeVisible();
await expect(page.getByText("Enable spellcheck")).toBeHidden();
});

View File

@ -1,18 +0,0 @@
import test, { expect } from "@playwright/test";
test("Renders on desktop", async ({ page, context }) => {
await page.goto("http://localhost:8082");
await expect(page.locator(".tree")).toContainText("Trilium Integration Test");
});
test("Renders on mobile", async ({ page, context }) => {
await context.addCookies([
{
url: "http://localhost:8082",
name: "trilium-device",
value: "mobile"
}
]);
await page.goto("http://localhost:8082");
await expect(page.locator(".tree")).toContainText("Trilium Integration Test");
});

View File

@ -1,12 +0,0 @@
import { test, expect } from "@playwright/test";
const expectedVersion = "0.90.3";
test("Displays update badge when there is a version available", async ({ page }) => {
await page.goto("http://localhost:8080");
await page.getByRole("button", { name: "" }).click();
await page.getByText(`Version ${expectedVersion} is available,`).click();
const page1 = await page.waitForEvent("popup");
expect(page1.url()).toBe(`https://github.com/TriliumNext/Trilium/releases/tag/v${expectedVersion}`);
});

View File

@ -1,58 +0,0 @@
{
"main": "./electron-main.js",
"bin": {
"trilium": "src/main.js"
},
"type": "module",
"scripts": {
"server:start-safe": "cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev nodemon src/main.ts",
"server:start-no-dir": "cross-env TRILIUM_ENV=dev nodemon src/main.ts",
"server:start-test": "npm run server:switch && rimraf ./data-test && cross-env TRILIUM_DATA_DIR=./data-test TRILIUM_ENV=dev TRILIUM_PORT=9999 nodemon src/main.ts",
"server:qstart": "npm run server:switch && npm run server:start",
"server:switch": "rimraf ./node_modules/better-sqlite3 && npm install",
"electron:start-no-dir": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_ENV=dev TRILIUM_PORT=37742 electron --inspect=5858 .",
"electron:start-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-main.ts --inspect=5858 .\"",
"electron:start-nix-no-dir": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_ENV=dev TRILIUM_PORT=37742 nix-shell -p electron_33 --run \"electron ./electron-main.ts --inspect=5858 .\"",
"electron:start-prod-no-dir": "npm run build:prepare-dist && cross-env TRILIUM_ENV=prod electron --inspect=5858 .",
"electron:start-prod-nix": "electron-rebuild --version 33.3.1 && npm run build:prepare-dist && cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./dist/electron-main.js --inspect=5858 .\"",
"electron:start-prod-nix-no-dir": "electron-rebuild --version 33.3.1 && npm run build:prepare-dist && cross-env TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./dist/electron-main.js --inspect=5858 .\"",
"electron:qstart": "npm run electron:switch && npm run electron:start",
"electron:switch": "electron-rebuild",
"docs:build": "typedoc",
"test": "npm run client:test && npm run server:test",
"client:test": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --root src/public/app",
"client:coverage": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --root src/public/app --coverage",
"test:playwright": "playwright test --workers 1",
"test:integration-edit-db": "cross-env TRILIUM_INTEGRATION_TEST=edit TRILIUM_PORT=8081 TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db nodemon src/main.ts",
"test:integration-mem-db": "cross-env nodemon src/main.ts",
"test:integration-mem-db-dev": "cross-env TRILIUM_INTEGRATION_TEST=memory TRILIUM_PORT=8082 TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db nodemon src/main.ts",
"dev:watch-dist": "tsx ./bin/watch-dist.ts",
"dev:format-check": "eslint -c eslint.format.config.js .",
"dev:format-fix": "eslint -c eslint.format.config.js . --fix",
"dev:linter-check": "eslint .",
"dev:linter-fix": "eslint . --fix",
"chore:generate-document": "cross-env nodemon ./bin/generate_document.ts 1000",
"chore:generate-openapi": "tsx bin/generate-openapi.js"
},
"devDependencies": {
"@playwright/test": "1.55.0",
"@stylistic/eslint-plugin": "5.2.3",
"@types/express": "5.0.3",
"@types/node": "22.17.2",
"@types/yargs": "17.0.33",
"@vitest/coverage-v8": "3.2.4",
"eslint": "9.33.0",
"eslint-plugin-simple-import-sort": "12.1.1",
"esm": "3.2.25",
"jsdoc": "4.0.4",
"lorem-ipsum": "2.0.8",
"rcedit": "4.0.1",
"rimraf": "6.0.1",
"tslib": "2.8.1",
"typedoc": "0.28.10",
"typedoc-plugin-missing-exports": "4.1.0"
},
"optionalDependencies": {
"appdmg": "0.6.6"
}
}

View File

@ -1,9 +0,0 @@
import etapi from "../support/etapi.js";
/* TriliumNextTODO: port to Vitest
etapi.describeEtapi("app_info", () => {
it("get", async () => {
const appInfo = await etapi.getEtapi("app-info");
expect(appInfo.clipperProtocolVersion).toEqual("1.0");
});
});
*/

View File

@ -1,10 +0,0 @@
import etapi from "../support/etapi.js";
/* TriliumNextTODO: port to Vitest
etapi.describeEtapi("backup", () => {
it("create", async () => {
const response = await etapi.putEtapiContent("backup/etapi_test");
expect(response.status).toEqual(204);
});
});
*/

View File

@ -1,26 +0,0 @@
import etapi from "../support/etapi.js";
import fs from "fs";
import path from "path";
import { fileURLToPath } from "url";
/* TriliumNextTODO: port to Vitest
etapi.describeEtapi("import", () => {
// temporarily skip this test since test-export.zip is missing
xit("import", async () => {
const scriptDir = path.dirname(fileURLToPath(import.meta.url));
const zipFileBuffer = fs.readFileSync(path.resolve(scriptDir, "test-export.zip"));
const response = await etapi.postEtapiContent("notes/root/import", zipFileBuffer);
expect(response.status).toEqual(201);
const { note, branch } = await response.json();
expect(note.title).toEqual("test-export");
expect(branch.parentNoteId).toEqual("root");
const content = await (await etapi.getEtapiContent(`notes/${note.noteId}/content`)).text();
expect(content).toContain("test export content");
});
});
*/

View File

@ -1,103 +0,0 @@
import crypto from "crypto";
import etapi from "../support/etapi.js";
/* TriliumNextTODO: port to Vitest
etapi.describeEtapi("notes", () => {
it("create", async () => {
const { note, branch } = await etapi.postEtapi("create-note", {
parentNoteId: "root",
type: "text",
title: "Hello World!",
content: "Content",
prefix: "Custom prefix"
});
expect(note.title).toEqual("Hello World!");
expect(branch.parentNoteId).toEqual("root");
expect(branch.prefix).toEqual("Custom prefix");
const rNote = await etapi.getEtapi(`notes/${note.noteId}`);
expect(rNote.title).toEqual("Hello World!");
const rContent = await (await etapi.getEtapiContent(`notes/${note.noteId}/content`)).text();
expect(rContent).toEqual("Content");
const rBranch = await etapi.getEtapi(`branches/${branch.branchId}`);
expect(rBranch.parentNoteId).toEqual("root");
expect(rBranch.prefix).toEqual("Custom prefix");
});
it("patch", async () => {
const { note } = await etapi.postEtapi("create-note", {
parentNoteId: "root",
type: "text",
title: "Hello World!",
content: "Content"
});
await etapi.patchEtapi(`notes/${note.noteId}`, {
title: "new title",
type: "code",
mime: "text/apl",
dateCreated: "2000-01-01 12:34:56.999+0200",
utcDateCreated: "2000-01-01 10:34:56.999Z"
});
const rNote = await etapi.getEtapi(`notes/${note.noteId}`);
expect(rNote.title).toEqual("new title");
expect(rNote.type).toEqual("code");
expect(rNote.mime).toEqual("text/apl");
expect(rNote.dateCreated).toEqual("2000-01-01 12:34:56.999+0200");
expect(rNote.utcDateCreated).toEqual("2000-01-01 10:34:56.999Z");
});
it("update content", async () => {
const { note } = await etapi.postEtapi("create-note", {
parentNoteId: "root",
type: "text",
title: "Hello World!",
content: "Content"
});
await etapi.putEtapiContent(`notes/${note.noteId}/content`, "new content");
const rContent = await (await etapi.getEtapiContent(`notes/${note.noteId}/content`)).text();
expect(rContent).toEqual("new content");
});
it("create / update binary content", async () => {
const { note } = await etapi.postEtapi("create-note", {
parentNoteId: "root",
type: "file",
title: "Hello World!",
content: "ZZZ"
});
const updatedContent = crypto.randomBytes(16);
await etapi.putEtapiContent(`notes/${note.noteId}/content`, updatedContent);
const rContent = await (await etapi.getEtapiContent(`notes/${note.noteId}/content`)).arrayBuffer();
expect(Buffer.from(new Uint8Array(rContent))).toEqual(updatedContent);
});
it("delete note", async () => {
const { note } = await etapi.postEtapi("create-note", {
parentNoteId: "root",
type: "text",
title: "Hello World!",
content: "Content"
});
await etapi.deleteEtapi(`notes/${note.noteId}`);
const resp = await etapi.getEtapiResponse(`notes/${note.noteId}`);
expect(resp.status).toEqual(404);
const error = await resp.json();
expect(error.status).toEqual(404);
expect(error.code).toEqual("NOTE_NOT_FOUND");
expect(error.message).toEqual(`Note '${note.noteId}' not found.`);
});
});
*/

View File

@ -1,155 +0,0 @@
import type child_process from "child_process";
import { describe, beforeAll, afterAll } from "vitest";
let etapiAuthToken: string | undefined;
const getEtapiAuthorizationHeader = (): string => "Basic " + Buffer.from(`etapi:${etapiAuthToken}`).toString("base64");
const PORT: string = "9999";
const HOST: string = "http://localhost:" + PORT;
type SpecDefinitionsFunc = () => void;
function describeEtapi(description: string, specDefinitions: SpecDefinitionsFunc): void {
describe(description, () => {
let appProcess: ReturnType<typeof child_process.spawn>;
beforeAll(async () => {});
afterAll(() => {});
specDefinitions();
});
}
async function getEtapiResponse(url: string): Promise<Response> {
return await fetch(`${HOST}/etapi/${url}`, {
method: "GET",
headers: {
Authorization: getEtapiAuthorizationHeader()
}
});
}
async function getEtapi(url: string): Promise<any> {
const response = await getEtapiResponse(url);
return await processEtapiResponse(response);
}
async function getEtapiContent(url: string): Promise<Response> {
const response = await fetch(`${HOST}/etapi/${url}`, {
method: "GET",
headers: {
Authorization: getEtapiAuthorizationHeader()
}
});
checkStatus(response);
return response;
}
async function postEtapi(url: string, data: Record<string, unknown> = {}): Promise<any> {
const response = await fetch(`${HOST}/etapi/${url}`, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: getEtapiAuthorizationHeader()
},
body: JSON.stringify(data)
});
return await processEtapiResponse(response);
}
async function postEtapiContent(url: string, data: BodyInit): Promise<Response> {
const response = await fetch(`${HOST}/etapi/${url}`, {
method: "POST",
headers: {
"Content-Type": "application/octet-stream",
Authorization: getEtapiAuthorizationHeader()
},
body: data
});
checkStatus(response);
return response;
}
async function putEtapi(url: string, data: Record<string, unknown> = {}): Promise<any> {
const response = await fetch(`${HOST}/etapi/${url}`, {
method: "PUT",
headers: {
"Content-Type": "application/json",
Authorization: getEtapiAuthorizationHeader()
},
body: JSON.stringify(data)
});
return await processEtapiResponse(response);
}
async function putEtapiContent(url: string, data?: BodyInit): Promise<Response> {
const response = await fetch(`${HOST}/etapi/${url}`, {
method: "PUT",
headers: {
"Content-Type": "application/octet-stream",
Authorization: getEtapiAuthorizationHeader()
},
body: data
});
checkStatus(response);
return response;
}
async function patchEtapi(url: string, data: Record<string, unknown> = {}): Promise<any> {
const response = await fetch(`${HOST}/etapi/${url}`, {
method: "PATCH",
headers: {
"Content-Type": "application/json",
Authorization: getEtapiAuthorizationHeader()
},
body: JSON.stringify(data)
});
return await processEtapiResponse(response);
}
async function deleteEtapi(url: string): Promise<any> {
const response = await fetch(`${HOST}/etapi/${url}`, {
method: "DELETE",
headers: {
Authorization: getEtapiAuthorizationHeader()
}
});
return await processEtapiResponse(response);
}
async function processEtapiResponse(response: Response): Promise<any> {
const text = await response.text();
if (response.status < 200 || response.status >= 300) {
throw new Error(`ETAPI error ${response.status}: ${text}`);
}
return text?.trim() ? JSON.parse(text) : null;
}
function checkStatus(response: Response): void {
if (response.status < 200 || response.status >= 300) {
throw new Error(`ETAPI error ${response.status}`);
}
}
export default {
describeEtapi,
getEtapi,
getEtapiResponse,
getEtapiContent,
postEtapi,
postEtapiContent,
putEtapi,
putEtapiContent,
patchEtapi,
deleteEtapi
};

View File

@ -1,22 +0,0 @@
{
"compilerOptions": {
"module": "NodeNext",
"declaration": false,
"sourceMap": true,
"outDir": "./build",
"strict": true,
"noImplicitAny": true,
"resolveJsonModule": true,
"lib": ["ES2023"],
"downlevelIteration": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowJs": true
},
"include": ["./src/public/app/**/*"],
"files": [
"./src/public/app/types.d.ts",
"./src/public/app/types-lib.d.ts",
"./src/types.d.ts"
]
}

View File

@ -1,15 +0,0 @@
{
"entryPoints": [
"src/services/backend_script_entrypoint.ts",
"src/public/app/services/frontend_script_entrypoint.ts"
],
"plugin": [
"typedoc-plugin-missing-exports"
],
"outputs": [
{
"name": "html",
"path": "./docs/Script API"
}
]
}

View File

@ -0,0 +1,22 @@
{
"name": "build-docs",
"version": "1.0.0",
"description": "",
"main": "src/main.ts",
"scripts": {
"start": "tsx ."
},
"keywords": [],
"author": "Elian Doran <contact@eliandoran.me>",
"license": "AGPL-3.0-only",
"packageManager": "pnpm@10.24.0",
"devDependencies": {
"@redocly/cli": "2.12.3",
"archiver": "7.0.1",
"fs-extra": "11.3.2",
"react": "19.2.1",
"react-dom": "19.2.1",
"typedoc": "0.28.15",
"typedoc-plugin-missing-exports": "4.1.2"
}
}

View File

@ -0,0 +1,36 @@
/**
* The backend script API is accessible to code notes with the "JS (backend)" language.
*
* The entire API is exposed as a single global: {@link api}
*
* @module Backend Script API
*/
/**
* This file creates the entrypoint for TypeDoc that simulates the context from within a
* script note on the server side.
*
* Make sure to keep in line with backend's `script_context.ts`.
*/
export type { default as AbstractBeccaEntity } from "../../server/src/becca/entities/abstract_becca_entity.js";
export type { default as BAttachment } from "../../server/src/becca/entities/battachment.js";
export type { default as BAttribute } from "../../server/src/becca/entities/battribute.js";
export type { default as BBranch } from "../../server/src/becca/entities/bbranch.js";
export type { default as BEtapiToken } from "../../server/src/becca/entities/betapi_token.js";
export type { BNote };
export type { default as BOption } from "../../server/src/becca/entities/boption.js";
export type { default as BRecentNote } from "../../server/src/becca/entities/brecent_note.js";
export type { default as BRevision } from "../../server/src/becca/entities/brevision.js";
import BNote from "../../server/src/becca/entities/bnote.js";
import BackendScriptApi, { type Api } from "../../server/src/services/backend_script_api.js";
export type { Api };
const fakeNote = new BNote();
/**
* The `api` global variable allows access to the backend script API, which is documented in {@link Api}.
*/
export const api: Api = new BackendScriptApi(fakeNote, {});

View File

@ -0,0 +1,147 @@
process.env.TRILIUM_INTEGRATION_TEST = "memory-no-store";
process.env.TRILIUM_RESOURCE_DIR = "../server/src";
process.env.NODE_ENV = "development";
import cls from "@triliumnext/server/src/services/cls.js";
import { dirname, join, resolve } from "path";
import * as fs from "fs/promises";
import * as fsExtra from "fs-extra";
import archiver from "archiver";
import { WriteStream } from "fs";
import { execSync } from "child_process";
import BuildContext from "./context.js";
const DOCS_ROOT = "../../../docs";
const OUTPUT_DIR = "../../site";
async function importAndExportDocs(sourcePath: string, outputSubDir: string) {
const note = await importData(sourcePath);
// Use a meaningful name for the temporary zip file
const zipName = outputSubDir || "user-guide";
const zipFilePath = `output-${zipName}.zip`;
try {
const { exportToZip } = (await import("@triliumnext/server/src/services/export/zip.js")).default;
const branch = note.getParentBranches()[0];
const taskContext = new (await import("@triliumnext/server/src/services/task_context.js")).default(
"no-progress-reporting",
"export",
null
);
const fileOutputStream = fsExtra.createWriteStream(zipFilePath);
await exportToZip(taskContext, branch, "share", fileOutputStream);
await waitForStreamToFinish(fileOutputStream);
// Output to root directory if outputSubDir is empty, otherwise to subdirectory
const outputPath = outputSubDir ? join(OUTPUT_DIR, outputSubDir) : OUTPUT_DIR;
await extractZip(zipFilePath, outputPath);
} finally {
if (await fsExtra.exists(zipFilePath)) {
await fsExtra.rm(zipFilePath);
}
}
}
async function buildDocsInner() {
const i18n = await import("@triliumnext/server/src/services/i18n.js");
await i18n.initializeTranslations();
const sqlInit = (await import("../../server/src/services/sql_init.js")).default;
await sqlInit.createInitialDatabase(true);
// Wait for becca to be loaded before importing data
const beccaLoader = await import("../../server/src/becca/becca_loader.js");
await beccaLoader.beccaLoaded;
// Build User Guide
console.log("Building User Guide...");
await importAndExportDocs(join(__dirname, DOCS_ROOT, "User Guide"), "user-guide");
// Build Developer Guide
console.log("Building Developer Guide...");
await importAndExportDocs(join(__dirname, DOCS_ROOT, "Developer Guide"), "developer-guide");
// Copy favicon.
await fs.copyFile("../../apps/website/src/assets/favicon.ico", join(OUTPUT_DIR, "favicon.ico"));
await fs.copyFile("../../apps/website/src/assets/favicon.ico", join(OUTPUT_DIR, "user-guide", "favicon.ico"));
await fs.copyFile("../../apps/website/src/assets/favicon.ico", join(OUTPUT_DIR, "developer-guide", "favicon.ico"));
console.log("Documentation built successfully!");
}
export async function importData(path: string) {
const buffer = await createImportZip(path);
const importService = (await import("../../server/src/services/import/zip.js")).default;
const TaskContext = (await import("../../server/src/services/task_context.js")).default;
const context = new TaskContext("no-progress-reporting", "importNotes", null);
const becca = (await import("../../server/src/becca/becca.js")).default;
const rootNote = becca.getRoot();
if (!rootNote) {
throw new Error("Missing root note for import.");
}
return await importService.importZip(context, buffer, rootNote, {
preserveIds: true
});
}
async function createImportZip(path: string) {
const inputFile = "input.zip";
const archive = archiver("zip", {
zlib: { level: 0 }
});
console.log("Archive path is ", resolve(path))
archive.directory(path, "/");
const outputStream = fsExtra.createWriteStream(inputFile);
archive.pipe(outputStream);
archive.finalize();
await waitForStreamToFinish(outputStream);
try {
return await fsExtra.readFile(inputFile);
} finally {
await fsExtra.rm(inputFile);
}
}
function waitForStreamToFinish(stream: WriteStream) {
return new Promise<void>((res, rej) => {
stream.on("finish", () => res());
stream.on("error", (err) => rej(err));
});
}
export async function extractZip(zipFilePath: string, outputPath: string, ignoredFiles?: Set<string>) {
const { readZipFile, readContent } = (await import("@triliumnext/server/src/services/import/zip.js"));
await readZipFile(await fs.readFile(zipFilePath), async (zip, entry) => {
// We ignore directories since they can appear out of order anyway.
if (!entry.fileName.endsWith("/") && !ignoredFiles?.has(entry.fileName)) {
const destPath = join(outputPath, entry.fileName);
const fileContent = await readContent(zip, entry);
await fsExtra.mkdirs(dirname(destPath));
await fs.writeFile(destPath, fileContent);
}
zip.readEntry();
});
}
export default async function buildDocs({ gitRootDir }: BuildContext) {
// Build the share theme.
execSync(`pnpm run --filter share-theme build`, {
stdio: "inherit",
cwd: gitRootDir
});
// Trigger the actual build.
await new Promise((res, rej) => {
cls.init(() => {
buildDocsInner()
.catch(rej)
.then(res);
});
});
}

View File

@ -0,0 +1,4 @@
export default interface BuildContext {
gitRootDir: string;
baseDir: string;
}

View File

@ -0,0 +1,28 @@
/**
* The front script API is accessible to code notes with the "JS (frontend)" language.
*
* The entire API is exposed as a single global: {@link api}
*
* @module Frontend Script API
*/
/**
* This file creates the entrypoint for TypeDoc that simulates the context from within a
* script note.
*
* Make sure to keep in line with frontend's `script_context.ts`.
*/
export type { default as BasicWidget } from "../../client/src/widgets/basic_widget.js";
export type { default as FAttachment } from "../../client/src/entities/fattachment.js";
export type { default as FAttribute } from "../../client/src/entities/fattribute.js";
export type { default as FBranch } from "../../client/src/entities/fbranch.js";
export type { default as FNote } from "../../client/src/entities/fnote.js";
export type { Api } from "../../client/src/services/frontend_script_api.js";
export type { default as NoteContextAwareWidget } from "../../client/src/widgets/note_context_aware_widget.js";
export type { default as RightPanelWidget } from "../../client/src/widgets/right_panel_widget.js";
import FrontendScriptApi, { type Api } from "../../client/src/services/frontend_script_api.js";
//@ts-expect-error
export const api: Api = new FrontendScriptApi();

View File

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0; url=/user-guide">
<title>Redirecting...</title>
</head>
<body>
<p>If you are not redirected automatically, <a href="/user-guide">click here</a>.</p>
</body>
</html>

View File

@ -0,0 +1,30 @@
import { join } from "path";
import BuildContext from "./context";
import buildSwagger from "./swagger";
import { cpSync, existsSync, mkdirSync, rmSync } from "fs";
import buildDocs from "./build-docs";
import buildScriptApi from "./script-api";
const context: BuildContext = {
gitRootDir: join(__dirname, "../../../"),
baseDir: join(__dirname, "../../../site")
};
async function main() {
// Clean input dir.
if (existsSync(context.baseDir)) {
rmSync(context.baseDir, { recursive: true });
}
mkdirSync(context.baseDir);
// Start building.
await buildDocs(context);
buildSwagger(context);
buildScriptApi(context);
// Copy index and 404 files.
cpSync(join(__dirname, "index.html"), join(context.baseDir, "index.html"));
cpSync(join(context.baseDir, "user-guide/404.html"), join(context.baseDir, "404.html"));
}
main();

View File

@ -0,0 +1,15 @@
import { execSync } from "child_process";
import BuildContext from "./context";
import { join } from "path";
export default function buildScriptApi({ baseDir, gitRootDir }: BuildContext) {
// Generate types
execSync(`pnpm typecheck`, { stdio: "inherit", cwd: gitRootDir });
for (const config of [ "backend", "frontend" ]) {
const outDir = join(baseDir, "script-api", config);
execSync(`pnpm typedoc --options typedoc.${config}.json --html "${outDir}"`, {
stdio: "inherit"
});
}
}

View File

@ -0,0 +1,32 @@
import BuildContext from "./context";
import { join } from "path";
import { execSync } from "child_process";
import { mkdirSync } from "fs";
interface BuildInfo {
specPath: string;
outDir: string;
}
const DIR_PREFIX = "rest-api";
const buildInfos: BuildInfo[] = [
{
// Paths are relative to Git root.
specPath: "apps/server/internal.openapi.yaml",
outDir: `${DIR_PREFIX}/internal`
},
{
specPath: "apps/server/etapi.openapi.yaml",
outDir: `${DIR_PREFIX}/etapi`
}
];
export default function buildSwagger({ baseDir, gitRootDir }: BuildContext) {
for (const { specPath, outDir } of buildInfos) {
const absSpecPath = join(gitRootDir, specPath);
const targetDir = join(baseDir, outDir);
mkdirSync(targetDir, { recursive: true });
execSync(`pnpm redocly build-docs ${absSpecPath} -o ${targetDir}/index.html`, { stdio: "inherit" });
}
}

View File

@ -0,0 +1,36 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"module": "ESNext",
"moduleResolution": "bundler",
"target": "ES2020",
"outDir": "dist",
"strict": false,
"types": [
"node",
"express"
],
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo"
},
"include": [
"src/**/*.ts",
"../server/src/*.d.ts"
],
"exclude": [
"eslint.config.js",
"eslint.config.cjs",
"eslint.config.mjs"
],
"references": [
{
"path": "../server/tsconfig.app.json"
},
{
"path": "../desktop/tsconfig.app.json"
},
{
"path": "../client/tsconfig.app.json"
}
]
}

View File

@ -0,0 +1,15 @@
{
"extends": "../../tsconfig.base.json",
"include": [],
"references": [
{
"path": "../server"
},
{
"path": "../client"
},
{
"path": "./tsconfig.app.json"
}
]
}

View File

@ -0,0 +1,10 @@
{
"$schema": "https://typedoc.org/schema.json",
"name": "Trilium Backend API",
"entryPoints": [
"src/backend_script_entrypoint.ts"
],
"plugin": [
"typedoc-plugin-missing-exports"
]
}

View File

@ -0,0 +1,10 @@
{
"$schema": "https://typedoc.org/schema.json",
"name": "Trilium Frontend API",
"entryPoints": [
"src/frontend_script_entrypoint.ts"
],
"plugin": [
"typedoc-plugin-missing-exports"
]
}

View File

@ -1,5 +1,4 @@
# The development license key for premium CKEditor features.
# Note: This key must only be used for the Trilium Notes project.
# Expires on: 2025-09-13
VITE_CKEDITOR_KEY=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE3NTc3MjE1OTksImp0aSI6ImFiN2E0NjZmLWJlZGMtNDNiYy1iMzU4LTk0NGQ0YWJhY2I3ZiIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsic2giLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkNNVCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJTRUUiLCJFQ0giLCJFSVMiXSwidmMiOiI1MzlkOWY5YyJ9.2rvKPql4hmukyXhEtWPZ8MLxKvzPIwzCdykO653g7IxRRZy2QJpeRszElZx9DakKYZKXekVRAwQKgHxwkgbE_w
VITE_CKEDITOR_KEY=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE3ODcyNzA0MDAsImp0aSI6IjkyMWE1MWNlLTliNDMtNGRlMC1iOTQwLTc5ZjM2MDBkYjg1NyIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOiJ0cmlsaXVtIiwiZmVhdHVyZXMiOlsiVFJJTElVTSJdLCJ2YyI6ImU4YzRhMjBkIn0.hny77p-U4-jTkoqbwPytrEar5ylGCWBN7Ez3SlB8i6_mJCBIeCSTOlVQk_JMiOEq3AGykUMHzWXzjdMFwgniOw
VITE_CKEDITOR_ENABLE_INSPECTOR=false

View File

@ -1,5 +0,0 @@
import baseConfig from "../../eslint.config.mjs";
export default [
...baseConfig
];

View File

@ -1,16 +1,21 @@
{
"name": "@triliumnext/client",
"version": "0.98.0",
"version": "0.100.0",
"description": "JQuery-based client for TriliumNext, used for both web and desktop (via Electron)",
"private": true,
"license": "AGPL-3.0-only",
"author": {
"name": "Trilium Notes Team",
"email": "contact@eliandoran.me",
"url": "https://github.com/TriliumNext/Notes"
"url": "https://github.com/TriliumNext/Trilium"
},
"scripts": {
"build": "cross-env NODE_OPTIONS=--max-old-space-size=4096 vite build",
"test": "vitest",
"coverage": "vitest --coverage",
"circular-deps": "dpdm -T src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular"
},
"dependencies": {
"@eslint/js": "9.33.0",
"@excalidraw/excalidraw": "0.18.0",
"@fullcalendar/core": "6.1.19",
"@fullcalendar/daygrid": "6.1.19",
@ -19,41 +24,44 @@
"@fullcalendar/multimonth": "6.1.19",
"@fullcalendar/timegrid": "6.1.19",
"@maplibre/maplibre-gl-leaflet": "0.1.3",
"@mermaid-js/layout-elk": "0.1.9",
"@mind-elixir/node-menu": "5.0.0",
"@mermaid-js/layout-elk": "0.2.0",
"@mind-elixir/node-menu": "5.0.1",
"@popperjs/core": "2.11.8",
"@preact/signals": "2.5.1",
"@triliumnext/ckeditor5": "workspace:*",
"@triliumnext/codemirror": "workspace:*",
"@triliumnext/commons": "workspace:*",
"@triliumnext/highlightjs": "workspace:*",
"@triliumnext/share-theme": "workspace:*",
"@triliumnext/split.js": "workspace:*",
"@zumer/snapdom": "2.0.1",
"autocomplete.js": "0.38.1",
"bootstrap": "5.3.7",
"bootstrap": "5.3.8",
"boxicons": "2.1.4",
"dayjs": "1.11.13",
"dayjs-plugin-utc": "0.1.2",
"debounce": "2.2.0",
"clsx": "2.1.1",
"color": "5.0.3",
"debounce": "3.0.0",
"draggabilly": "3.0.0",
"force-graph": "1.50.1",
"globals": "16.3.0",
"i18next": "25.4.0",
"force-graph": "1.51.0",
"globals": "16.5.0",
"i18next": "25.7.1",
"i18next-http-backend": "3.0.2",
"jquery": "3.7.1",
"jquery.fancytree": "2.38.5",
"jsplumb": "2.15.6",
"katex": "0.16.22",
"katex": "0.16.27",
"knockout": "3.5.1",
"leaflet": "1.9.4",
"leaflet-gpx": "2.2.0",
"mark.js": "8.11.1",
"marked": "16.2.0",
"mermaid": "11.10.0",
"mind-elixir": "5.0.6",
"marked": "17.0.1",
"mermaid": "11.12.2",
"mind-elixir": "5.3.7",
"normalize.css": "8.0.1",
"panzoom": "9.4.3",
"preact": "10.27.1",
"react-i18next": "15.7.0",
"split.js": "1.6.5",
"preact": "10.28.0",
"react-i18next": "16.4.0",
"reveal.js": "5.2.1",
"svg-pan-zoom": "3.6.2",
"tabulator-tables": "6.3.1",
"vanilla-js-wheel-zoom": "9.0.4"
@ -62,27 +70,15 @@
"@ckeditor/ckeditor5-inspector": "5.0.0",
"@preact/preset-vite": "2.10.2",
"@types/bootstrap": "5.2.10",
"@types/jquery": "3.5.32",
"@types/leaflet": "1.9.20",
"@types/leaflet-gpx": "1.3.7",
"@types/jquery": "3.5.33",
"@types/leaflet": "1.9.21",
"@types/leaflet-gpx": "1.3.8",
"@types/mark.js": "8.11.12",
"@types/tabulator-tables": "6.2.10",
"@types/reveal.js": "5.2.2",
"@types/tabulator-tables": "6.3.0",
"copy-webpack-plugin": "13.0.1",
"happy-dom": "18.0.1",
"happy-dom": "20.0.11",
"script-loader": "0.7.2",
"vite-plugin-static-copy": "3.1.1"
},
"nx": {
"name": "client",
"targets": {
"serve": {
"dependsOn": [
"^build"
]
},
"circular-deps": {
"command": "pnpx dpdm -T {projectRoot}/src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular"
}
}
"vite-plugin-static-copy": "3.1.4"
}
}

View File

@ -7,6 +7,9 @@
"display": "standalone",
"scope": "/",
"start_url": "/",
"display_override": [
"window-controls-overlay"
],
"icons": [
{
"src": "icon.png",

View File

@ -1,6 +1,6 @@
import froca from "../services/froca.js";
import RootCommandExecutor from "./root_command_executor.js";
import Entrypoints, { type SqlExecuteResults } from "./entrypoints.js";
import Entrypoints from "./entrypoints.js";
import options from "../services/options.js";
import utils, { hasTouchBar } from "../services/utils.js";
import zoomComponent from "./zoom.js";
@ -13,7 +13,6 @@ import MainTreeExecutors from "./main_tree_executors.js";
import toast from "../services/toast.js";
import ShortcutComponent from "./shortcut_component.js";
import { t, initLocale } from "../services/i18n.js";
import type NoteDetailWidget from "../widgets/note_detail.js";
import type { ResolveOptions } from "../widgets/dialogs/delete_notes.js";
import type { PromptDialogOptions } from "../widgets/dialogs/prompt.js";
import type { ConfirmWithMessageOptions, ConfirmWithTitleOptions } from "../widgets/dialogs/confirm.js";
@ -21,8 +20,6 @@ import type LoadResults from "../services/load_results.js";
import type { Attribute } from "../services/attribute_parser.js";
import type NoteTreeWidget from "../widgets/note_tree.js";
import type { default as NoteContext, GetTextEditorCallback } from "./note_context.js";
import type TypeWidget from "../widgets/type_widgets/type_widget.js";
import type EditableTextTypeWidget from "../widgets/type_widgets/editable_text.js";
import type { NativeImage, TouchBar } from "electron";
import TouchBarComponent from "./touch_bar.js";
import type { CKTextEditor } from "@triliumnext/ckeditor5";
@ -31,16 +28,19 @@ import { StartupChecks } from "./startup_checks.js";
import type { CreateNoteOpts } from "../services/note_create.js";
import { ColumnComponent } from "tabulator-tables";
import { ChooseNoteTypeCallback } from "../widgets/dialogs/note_type_chooser.jsx";
import type RootContainer from "../widgets/containers/root_container.js";
import { SqlExecuteResults } from "@triliumnext/commons";
import { AddLinkOpts } from "../widgets/dialogs/add_link.jsx";
import { IncludeNoteOpts } from "../widgets/dialogs/include_note.jsx";
import { ReactWrappedWidget } from "../widgets/basic_widget.js";
import type { MarkdownImportOpts } from "../widgets/dialogs/markdown_import.jsx";
import type { InfoProps } from "../widgets/dialogs/info.jsx";
interface Layout {
getRootWidget: (appContext: AppContext) => RootWidget;
getRootWidget: (appContext: AppContext) => RootContainer;
}
interface RootWidget extends Component {
render: () => JQuery<HTMLElement>;
}
interface BeforeUploadListener extends Component {
export interface BeforeUploadListener extends Component {
beforeUnloadEvent(): boolean;
}
@ -85,7 +85,6 @@ export type CommandMappings = {
focusTree: CommandData;
focusOnTitle: CommandData;
focusOnDetail: CommandData;
focusOnSearchDefinition: Required<CommandData>;
searchNotes: CommandData & {
searchString?: string;
ancestorNoteId?: string | null;
@ -93,6 +92,11 @@ export type CommandMappings = {
closeTocCommand: CommandData;
closeHlt: CommandData;
showLaunchBarSubtree: CommandData;
showHiddenSubtree: CommandData;
showSQLConsoleHistory: CommandData;
logout: CommandData;
switchToMobileVersion: CommandData;
switchToDesktopVersion: CommandData;
showRevisions: CommandData & {
noteId?: string | null;
};
@ -114,14 +118,14 @@ export type CommandMappings = {
openedFileUpdated: CommandData & {
entityType: string;
entityId: string;
lastModifiedMs: number;
lastModifiedMs?: number;
filePath: string;
};
focusAndSelectTitle: CommandData & {
isNewNote?: boolean;
};
showPromptDialog: PromptDialogOptions;
showInfoDialog: ConfirmWithMessageOptions;
showInfoDialog: InfoProps;
showConfirmDialog: ConfirmWithMessageOptions;
showRecentChanges: CommandData & { ancestorNoteId: string };
showImportDialog: CommandData & { noteId: string };
@ -138,6 +142,7 @@ export type CommandMappings = {
showLeftPane: CommandData;
showAttachments: CommandData;
showSearchHistory: CommandData;
showShareSubtree: CommandData;
hoistNote: CommandData & { noteId: string };
leaveProtectedSession: CommandData;
enterProtectedSession: CommandData;
@ -196,7 +201,7 @@ export type CommandMappings = {
resetLauncher: ContextMenuCommandData;
executeInActiveNoteDetailWidget: CommandData & {
callback: (value: NoteDetailWidget | PromiseLike<NoteDetailWidget>) => void;
callback: (value: ReactWrappedWidget) => void;
};
executeWithTextEditor: CommandData &
ExecuteCommandData<CKTextEditor> & {
@ -208,19 +213,19 @@ export type CommandMappings = {
* Generally should not be invoked manually, as it is used by {@link NoteContext.getContentElement}.
*/
executeWithContentElement: CommandData & ExecuteCommandData<JQuery<HTMLElement>>;
executeWithTypeWidget: CommandData & ExecuteCommandData<TypeWidget | null>;
executeWithTypeWidget: CommandData & ExecuteCommandData<ReactWrappedWidget | null>;
addTextToActiveEditor: CommandData & {
text: string;
};
/** Works only in the electron context menu. */
replaceMisspelling: CommandData;
importMarkdownInline: CommandData;
showPasswordNotSet: CommandData;
showProtectedSessionPasswordDialog: CommandData;
showUploadAttachmentsDialog: CommandData & { noteId: string };
showIncludeNoteDialog: CommandData & { textTypeWidget: EditableTextTypeWidget };
showAddLinkDialog: CommandData & { textTypeWidget: EditableTextTypeWidget, text: string };
showIncludeNoteDialog: CommandData & IncludeNoteOpts;
showAddLinkDialog: CommandData & AddLinkOpts;
showPasteMarkdownDialog: CommandData & MarkdownImportOpts;
closeProtectedSessionPasswordDialog: CommandData;
copyImageReferenceToClipboard: CommandData;
copyImageToClipboard: CommandData;
@ -267,6 +272,7 @@ export type CommandMappings = {
closeThisNoteSplit: CommandData;
moveThisNoteSplit: CommandData & { isMovingLeft: boolean };
jumpToNote: CommandData;
openTodayNote: CommandData;
commandPalette: CommandData;
// Keyboard shortcuts
@ -323,6 +329,8 @@ export type CommandMappings = {
printActiveNote: CommandData;
exportAsPdf: CommandData;
openNoteExternally: CommandData;
openNoteCustom: CommandData;
openNoteOnServer: CommandData;
renderActiveNote: CommandData;
unhoist: CommandData;
reloadFrontendApp: CommandData;
@ -438,6 +446,7 @@ type EventMappings = {
error: string;
};
searchRefreshed: { ntxId?: string | null };
textEditorRefreshed: { ntxId?: string | null, editor: CKTextEditor };
hoistedNoteChanged: {
noteId: string;
ntxId: string | null;
@ -479,14 +488,9 @@ type EventMappings = {
relationMapResetPanZoom: { ntxId: string | null | undefined };
relationMapResetZoomIn: { ntxId: string | null | undefined };
relationMapResetZoomOut: { ntxId: string | null | undefined };
activeNoteChanged: {};
showAddLinkDialog: {
textTypeWidget: EditableTextTypeWidget;
text: string;
};
showIncludeDialog: {
textTypeWidget: EditableTextTypeWidget;
};
activeNoteChanged: {ntxId: string | null | undefined};
showAddLinkDialog: AddLinkOpts;
showIncludeDialog: IncludeNoteOpts;
openBulkActionsDialog: {
selectedOrActiveNoteIds: string[];
};
@ -526,7 +530,7 @@ export type FilteredCommandNames<T extends CommandData> = keyof Pick<CommandMapp
export class AppContext extends Component {
isMainWindow: boolean;
components: Component[];
beforeUnloadListeners: WeakRef<BeforeUploadListener>[];
beforeUnloadListeners: (WeakRef<BeforeUploadListener> | (() => boolean))[];
tabManager!: TabManager;
layout?: Layout;
noteTreeWidget?: NoteTreeWidget;
@ -619,7 +623,7 @@ export class AppContext extends Component {
component.triggerCommand(commandName, { $el: $(this) });
});
this.child(rootWidget);
this.child(rootWidget as Component);
this.triggerEvent("initialRenderComplete", {});
}
@ -646,16 +650,24 @@ export class AppContext extends Component {
}
getComponentByEl(el: HTMLElement) {
return $(el).closest(".component").prop("component");
return $(el).closest("[data-component-id]").prop("component");
}
addBeforeUnloadListener(obj: BeforeUploadListener) {
addBeforeUnloadListener(obj: BeforeUploadListener | (() => boolean)) {
if (typeof WeakRef !== "function") {
// older browsers don't support WeakRef
return;
}
this.beforeUnloadListeners.push(new WeakRef<BeforeUploadListener>(obj));
if (typeof obj === "object") {
this.beforeUnloadListeners.push(new WeakRef<BeforeUploadListener>(obj));
} else {
this.beforeUnloadListeners.push(obj);
}
}
removeBeforeUnloadListener(listener: (() => boolean)) {
this.beforeUnloadListeners = this.beforeUnloadListeners.filter(l => l !== listener);
}
}
@ -665,25 +677,29 @@ const appContext = new AppContext(window.glob.isMainWindow);
$(window).on("beforeunload", () => {
let allSaved = true;
appContext.beforeUnloadListeners = appContext.beforeUnloadListeners.filter((wr) => !!wr.deref());
appContext.beforeUnloadListeners = appContext.beforeUnloadListeners.filter((wr) => typeof wr === "function" || !!wr.deref());
for (const weakRef of appContext.beforeUnloadListeners) {
const component = weakRef.deref();
for (const listener of appContext.beforeUnloadListeners) {
if (typeof listener === "object") {
const component = listener.deref();
if (!component) {
continue;
}
if (!component) {
continue;
}
if (!component.beforeUnloadEvent()) {
console.log(`Component ${component.componentId} is not finished saving its state.`);
toast.showMessage(t("app_context.please_wait_for_save"), 10000);
allSaved = false;
if (!component.beforeUnloadEvent()) {
console.log(`Component ${component.componentId} is not finished saving its state.`);
allSaved = false;
}
} else {
if (!listener()) {
allSaved = false;
}
}
}
if (!allSaved) {
toast.showMessage(t("app_context.please_wait_for_save"), 10000);
return "some string";
}
});

View File

@ -1,6 +1,8 @@
import utils from "../services/utils.js";
import type { CommandMappings, CommandNames, EventData, EventNames } from "./app_context.js";
type EventHandler = ((data: any) => void);
/**
* Abstract class for all components in the Trilium's frontend.
*
@ -19,6 +21,7 @@ export class TypedComponent<ChildT extends TypedComponent<ChildT>> {
initialized: Promise<void> | null;
parent?: TypedComponent<any>;
_position!: number;
private listeners: Record<string, EventHandler[]> | null = {};
constructor() {
this.componentId = `${this.sanitizedClassName}-${utils.randomString(8)}`;
@ -76,6 +79,14 @@ export class TypedComponent<ChildT extends TypedComponent<ChildT>> {
handleEventInChildren<T extends EventNames>(name: T, data: EventData<T>): Promise<unknown[] | unknown> | null {
const promises: Promise<unknown>[] = [];
// Handle React children.
if (this.listeners?.[name]) {
for (const listener of this.listeners[name]) {
listener(data);
}
}
// Handle legacy children.
for (const child of this.children) {
const ret = child.handleEvent(name, data) as Promise<void>;
@ -120,6 +131,35 @@ export class TypedComponent<ChildT extends TypedComponent<ChildT>> {
return promise;
}
registerHandler<T extends EventNames>(name: T, handler: EventHandler) {
if (!this.listeners) {
this.listeners = {};
}
if (!this.listeners[name]) {
this.listeners[name] = [];
}
if (this.listeners[name].includes(handler)) {
return;
}
this.listeners[name].push(handler);
}
removeHandler<T extends EventNames>(name: T, handler: EventHandler) {
if (!this.listeners?.[name]?.includes(handler)) {
return;
}
this.listeners[name] = this.listeners[name]
.filter(listener => listener !== handler);
if (!this.listeners[name].length) {
delete this.listeners[name];
}
}
}
export default class Component extends TypedComponent<Component> {}

View File

@ -10,22 +10,7 @@ import bundleService from "../services/bundle.js";
import froca from "../services/froca.js";
import linkService from "../services/link.js";
import { t } from "../services/i18n.js";
import type FNote from "../entities/fnote.js";
// TODO: Move somewhere else nicer.
export type SqlExecuteResults = string[][][];
// TODO: Deduplicate with server.
interface SqlExecuteResponse {
success: boolean;
error?: string;
results: SqlExecuteResults;
}
// TODO: Deduplicate with server.
interface CreateChildrenResponse {
note: FNote;
}
import { CreateChildrenResponse, SqlExecuteResponse } from "@triliumnext/commons";
export default class Entrypoints extends Component {
constructor() {
@ -34,7 +19,7 @@ export default class Entrypoints extends Component {
openDevToolsCommand() {
if (utils.isElectron()) {
utils.dynamicRequire("@electron/remote").getCurrentWindow().toggleDevTools();
utils.dynamicRequire("@electron/remote").getCurrentWindow().webContents.toggleDevTools();
}
}
@ -124,7 +109,7 @@ export default class Entrypoints extends Component {
if (utils.isElectron()) {
// standard JS version does not work completely correctly in electron
const webContents = utils.dynamicRequire("@electron/remote").getCurrentWebContents();
const activeIndex = parseInt(webContents.navigationHistory.getActiveIndex());
const activeIndex = webContents.navigationHistory.getActiveIndex();
webContents.goToIndex(activeIndex - 1);
} else {
@ -136,7 +121,7 @@ export default class Entrypoints extends Component {
if (utils.isElectron()) {
// standard JS version does not work completely correctly in electron
const webContents = utils.dynamicRequire("@electron/remote").getCurrentWebContents();
const activeIndex = parseInt(webContents.navigationHistory.getActiveIndex());
const activeIndex = webContents.navigationHistory.getActiveIndex();
webContents.goToIndex(activeIndex + 1);
} else {
@ -174,6 +159,16 @@ export default class Entrypoints extends Component {
this.openInWindowCommand({ notePath: "", hoistedNoteId: "root" });
}
async openTodayNoteCommand() {
const todayNote = await dateNoteService.getTodayNote();
if (!todayNote) {
console.warn("Missing today note.");
return;
}
await appContext.tabManager.openInSameTab(todayNote.noteId);
}
async runActiveNoteCommand() {
const noteContext = appContext.tabManager.getActiveContext();
if (!noteContext) {

View File

@ -9,10 +9,10 @@ import hoistedNoteService from "../services/hoisted_note.js";
import options from "../services/options.js";
import type { ViewScope } from "../services/link.js";
import type FNote from "../entities/fnote.js";
import type TypeWidget from "../widgets/type_widgets/type_widget.js";
import type { CKTextEditor } from "@triliumnext/ckeditor5";
import type CodeMirror from "@triliumnext/codemirror";
import { closeActiveDialog } from "../services/dialog.js";
import { ReactWrappedWidget } from "../widgets/basic_widget.js";
export interface SetNoteOpts {
triggerSwitchEvent?: unknown;
@ -321,14 +321,20 @@ class NoteContext extends Component implements EventListener<"entitiesReloaded">
return false;
}
if (note.type === "search") {
return false;
}
if (!["default", "contextual-help"].includes(this.viewScope?.viewMode ?? "")) {
return false;
}
// Collections must always display a note list, even if no children.
const viewType = note.getLabelValue("viewType") ?? "grid";
if (!["list", "grid"].includes(viewType)) {
return true;
if (note.type === "book") {
const viewType = note.getLabelValue("viewType") ?? "grid";
if (!["list", "grid"].includes(viewType)) {
return true;
}
}
if (!note.hasChildren()) {
@ -395,7 +401,7 @@ class NoteContext extends Component implements EventListener<"entitiesReloaded">
async getTypeWidget() {
return this.timeout(
new Promise<TypeWidget | null>((resolve) =>
new Promise<ReactWrappedWidget | null>((resolve) =>
appContext.triggerCommand("executeWithTypeWidget", {
resolve,
ntxId: this.ntxId
@ -438,4 +444,22 @@ class NoteContext extends Component implements EventListener<"entitiesReloaded">
}
}
export function openInCurrentNoteContext(evt: MouseEvent | JQuery.ClickEvent | JQuery.MouseDownEvent | React.PointerEvent<HTMLCanvasElement> | null, notePath: string, viewScope?: ViewScope) {
const ntxId = $(evt?.target as Element)
.closest("[data-ntx-id]")
.attr("data-ntx-id");
const noteContext = ntxId ? appContext.tabManager.getNoteContextById(ntxId) : appContext.tabManager.getActiveContext();
if (noteContext) {
noteContext.setNote(notePath, { viewScope }).then(() => {
if (noteContext !== appContext.tabManager.getActiveContext()) {
appContext.tabManager.activateNoteContext(noteContext.ntxId);
}
});
} else {
appContext.tabManager.openContextWithNote(notePath, { viewScope, activate: true });
}
}
export default NoteContext;

View File

@ -7,7 +7,6 @@ import protectedSessionService from "../services/protected_session.js";
import options from "../services/options.js";
import froca from "../services/froca.js";
import utils from "../services/utils.js";
import LlmChatPanel from "../widgets/llm_chat_panel.js";
import toastService from "../services/toast.js";
import noteCreateService from "../services/note_create.js";
@ -43,8 +42,6 @@ export default class RootCommandExecutor extends Component {
const noteContext = await appContext.tabManager.openTabWithNoteWithHoisting(searchNote.noteId, {
activate: true
});
appContext.triggerCommand("focusOnSearchDefinition", { ntxId: noteContext.ntxId });
}
async searchInSubtreeCommand({ notePath }: CommandListenerData<"searchInSubtree">) {
@ -69,6 +66,13 @@ export default class RootCommandExecutor extends Component {
}
}
openNoteOnServerCommand() {
const noteId = appContext.tabManager.getActiveContextNoteId();
if (noteId) {
openService.openNoteOnServer(noteId);
}
}
enterProtectedSessionCommand() {
protectedSessionService.enterProtectedSession();
}
@ -173,7 +177,8 @@ export default class RootCommandExecutor extends Component {
}
toggleTrayCommand() {
if (!utils.isElectron()) return;
if (!utils.isElectron() || options.is("disableTray")) return;
const { BrowserWindow } = utils.dynamicRequire("@electron/remote");
const windows = BrowserWindow.getAllWindows() as Electron.BaseWindow[];
const isVisible = windows.every((w) => w.isVisible());

View File

@ -165,7 +165,7 @@ export default class TabManager extends Component {
const activeNoteContext = this.getActiveContext();
this.updateDocumentTitle(activeNoteContext);
this.triggerEvent("activeNoteChanged", {}); // trigger this even in on popstate event
this.triggerEvent("activeNoteChanged", {ntxId:activeNoteContext?.ntxId}); // trigger this even in on popstate event
}
calculateHash(): string {
@ -265,6 +265,7 @@ export default class TabManager extends Component {
mainNtxId: string | null = null
): Promise<NoteContext> {
const noteContext = new NoteContext(ntxId, hoistedNoteId, mainNtxId);
noteContext.setEmpty();
const existingNoteContext = this.children.find((nc) => nc.ntxId === noteContext.ntxId);
@ -433,6 +434,9 @@ export default class TabManager extends Component {
$autocompleteEl.autocomplete("close");
}
// close dangling tooltips
$("body > div.tooltip").remove();
const noteContextsToRemove = noteContextToRemove.getSubContexts();
const ntxIdsToRemove = noteContextsToRemove.map((nc) => nc.ntxId);
@ -600,18 +604,18 @@ export default class TabManager extends Component {
}
async moveTabToNewWindowCommand({ ntxId }: { ntxId: string }) {
const { notePath, hoistedNoteId } = this.getNoteContextById(ntxId);
const { notePath, hoistedNoteId, viewScope } = this.getNoteContextById(ntxId);
const removed = await this.removeNoteContext(ntxId);
if (removed) {
this.triggerCommand("openInWindow", { notePath, hoistedNoteId });
this.triggerCommand("openInWindow", { notePath, hoistedNoteId, viewScope });
}
}
async copyTabToNewWindowCommand({ ntxId }: { ntxId: string }) {
const { notePath, hoistedNoteId } = this.getNoteContextById(ntxId);
this.triggerCommand("openInWindow", { notePath, hoistedNoteId });
const { notePath, hoistedNoteId, viewScope } = this.getNoteContextById(ntxId);
this.triggerCommand("openInWindow", { notePath, hoistedNoteId, viewScope });
}
async reopenLastTabCommand() {
@ -643,7 +647,32 @@ export default class TabManager extends Component {
...this.noteContexts.slice(-noteContexts.length),
...this.noteContexts.slice(lastClosedTab.position, -noteContexts.length)
];
this.noteContextReorderEvent({ ntxIdsInOrder: ntxsInOrder.map((nc) => nc.ntxId).filter((id) => id !== null) });
// Update mainNtxId if the restored pane is the main pane in the split pane
const { oldMainNtxId, newMainNtxId } = (() => {
if (noteContexts.length !== 1) {
return { oldMainNtxId: undefined, newMainNtxId: undefined };
}
const mainNtxId = noteContexts[0]?.mainNtxId;
const index = this.noteContexts.findIndex(c => c.ntxId === mainNtxId);
// No need to update if the restored position is after mainNtxId
if (index === -1 || lastClosedTab.position > index) {
return { oldMainNtxId: undefined, newMainNtxId: undefined };
}
return {
oldMainNtxId: this.noteContexts[index].ntxId ?? undefined,
newMainNtxId: noteContexts[0]?.ntxId ?? undefined
};
})();
this.triggerCommand("noteContextReorder", {
ntxIdsInOrder: ntxsInOrder.map((nc) => nc.ntxId).filter((id) => id !== null),
oldMainNtxId,
newMainNtxId
});
let mainNtx = noteContexts.find((nc) => nc.isMainContext());
if (mainNtx) {

View File

@ -23,11 +23,11 @@ export default class TouchBarComponent extends Component {
this.$widget = $("<div>");
$(window).on("focusin", async (e) => {
const $target = $(e.target);
const focusedEl = e.target as unknown as HTMLElement;
const $target = $(focusedEl);
this.$activeModal = $target.closest(".modal-dialog");
const parentComponentEl = $target.closest(".component");
this.lastFocusedComponent = appContext.getComponentByEl(parentComponentEl[0]);
this.lastFocusedComponent = appContext.getComponentByEl(focusedEl);
this.#refreshTouchBar();
});
}

View File

@ -8,10 +8,8 @@ import electronContextMenu from "./menus/electron_context_menu.js";
import glob from "./services/glob.js";
import { t } from "./services/i18n.js";
import options from "./services/options.js";
import server from "./services/server.js";
import type ElectronRemote from "@electron/remote";
import type Electron from "electron";
import "./stylesheets/bootstrap.scss";
import "boxicons/css/boxicons.min.css";
import "autocomplete.js/index_jquery.js";
@ -24,6 +22,7 @@ bundleService.getWidgetBundlesByParent().then(async (widgetBundles) => {
appContext.setLayout(new DesktopLayout(widgetBundles));
appContext.start().catch((e) => {
toastService.showPersistent({
id: "critical-error",
title: t("toast.critical-error.title"),
icon: "alert",
message: t("toast.critical-error.message", { message: e.message })
@ -46,6 +45,10 @@ if (utils.isElectron()) {
electronContextMenu.setupContextMenu();
}
if (utils.isPWA()) {
initPWATopbarColor();
}
function initOnElectron() {
const electron: typeof Electron = utils.dynamicRequire("electron");
electron.ipcRenderer.on("globalShortcut", async (event, actionName) => appContext.triggerCommand(actionName));
@ -56,10 +59,14 @@ function initOnElectron() {
initDarkOrLightMode(style);
initTransparencyEffects(style, currentWindow);
initFullScreenDetection(currentWindow);
if (options.get("nativeTitleBarVisible") !== "true") {
initTitleBarButtons(style, currentWindow);
}
// Clear navigation history on frontend refresh.
currentWindow.webContents.navigationHistory.clear();
}
function initTitleBarButtons(style: CSSStyleDeclaration, currentWindow: Electron.BrowserWindow) {
@ -85,6 +92,11 @@ function initTitleBarButtons(style: CSSStyleDeclaration, currentWindow: Electron
}
}
function initFullScreenDetection(currentWindow: Electron.BrowserWindow) {
currentWindow.on("enter-full-screen", () => document.body.classList.add("full-screen"));
currentWindow.on("leave-full-screen", () => document.body.classList.remove("full-screen"));
}
function initTransparencyEffects(style: CSSStyleDeclaration, currentWindow: Electron.BrowserWindow) {
if (window.glob.platform === "win32") {
const material = style.getPropertyValue("--background-material");
@ -114,3 +126,20 @@ function initDarkOrLightMode(style: CSSStyleDeclaration) {
const { nativeTheme } = utils.dynamicRequire("@electron/remote") as typeof ElectronRemote;
nativeTheme.themeSource = themeSource;
}
function initPWATopbarColor() {
const tracker = $("#background-color-tracker");
if (tracker.length) {
const applyThemeColor = () => {
let meta = $("meta[name='theme-color']");
if (!meta.length) {
meta = $(`<meta name="theme-color">`).appendTo($("head"));
}
meta.attr("content", tracker.css("color"));
};
tracker.on("transitionend", applyThemeColor);
applyThemeColor();
}
}

View File

@ -1,12 +1,12 @@
import server from "../services/server.js";
import noteAttributeCache from "../services/note_attribute_cache.js";
import ws from "../services/ws.js";
import protectedSessionHolder from "../services/protected_session_holder.js";
import cssClassManager from "../services/css_class_manager.js";
import type { Froca } from "../services/froca-interface.js";
import type FAttachment from "./fattachment.js";
import type { default as FAttribute, AttributeType } from "./fattribute.js";
import utils from "../services/utils.js";
import search from "../services/search.js";
const LABEL = "label";
const RELATION = "relation";
@ -64,7 +64,7 @@ export interface NoteMetaData {
/**
* Note is the main node and concept in Trilium.
*/
class FNote {
export default class FNote {
private froca: Froca;
noteId!: string;
@ -240,7 +240,7 @@ class FNote {
const aNote = this.froca.getNoteFromCache(aNoteId);
if (aNote.isArchived || aNote.isHiddenCompletely()) {
if (!aNote || aNote.isArchived || aNote.isHiddenCompletely()) {
return 1;
}
@ -256,18 +256,37 @@ class FNote {
return this.children;
}
async getSubtreeNoteIds() {
async getChildNoteIdsWithArchiveFiltering(includeArchived = false) {
const isHiddenNote = this.noteId.startsWith("_");
const isSearchNote = this.type === "search";
if (!includeArchived && !isHiddenNote && !isSearchNote) {
const unorderedIds = new Set(await search.searchForNoteIds(`note.parents.noteId="${this.noteId}" #!archived`));
const results: string[] = [];
for (const id of this.children) {
if (unorderedIds.has(id)) {
results.push(id);
}
}
return results;
} else {
return this.children;
}
}
async getSubtreeNoteIds(includeArchived = false) {
let noteIds: (string | string[])[] = [];
for (const child of await this.getChildNotes()) {
if (child.isArchived && !includeArchived) continue;
noteIds.push(child.noteId);
noteIds.push(await child.getSubtreeNoteIds());
noteIds.push(await child.getSubtreeNoteIds(includeArchived));
}
return noteIds.flat();
}
async getSubtreeNotes() {
const noteIds = await this.getSubtreeNoteIds();
return this.froca.getNotes(noteIds);
return (await this.froca.getNotes(noteIds));
}
async getChildNotes() {
@ -416,7 +435,7 @@ class FNote {
return notePaths;
}
getSortedNotePathRecords(hoistedNoteId = "root"): NotePathRecord[] {
getSortedNotePathRecords(hoistedNoteId = "root", activeNotePath: string | null = null): NotePathRecord[] {
const isHoistedRoot = hoistedNoteId === "root";
const notePaths: NotePathRecord[] = this.getAllNotePaths().map((path) => ({
@ -427,7 +446,23 @@ class FNote {
isHidden: path.includes("_hidden")
}));
// Calculate the length of the prefix match between two arrays
const prefixMatchLength = (path: string[], target: string[]) => {
const diffIndex = path.findIndex((seg, i) => seg !== target[i]);
return diffIndex === -1 ? Math.min(path.length, target.length) : diffIndex;
};
notePaths.sort((a, b) => {
if (activeNotePath) {
const activeSegments = activeNotePath.split('/');
const aOverlap = prefixMatchLength(a.notePath, activeSegments);
const bOverlap = prefixMatchLength(b.notePath, activeSegments);
// Paths with more matching prefix segments are prioritized
// when the match count is equal, other criteria are used for sorting
if (bOverlap !== aOverlap) {
return bOverlap - aOverlap;
}
}
if (a.isInHoistedSubTree !== b.isInHoistedSubTree) {
return a.isInHoistedSubTree ? -1 : 1;
} else if (a.isArchived !== b.isArchived) {
@ -448,10 +483,11 @@ class FNote {
* Returns the note path considered to be the "best"
*
* @param {string} [hoistedNoteId='root']
* @param {string|null} [activeNotePath=null]
* @return {string[]} array of noteIds constituting the particular note path
*/
getBestNotePath(hoistedNoteId = "root") {
return this.getSortedNotePathRecords(hoistedNoteId)[0]?.notePath;
getBestNotePath(hoistedNoteId = "root", activeNotePath: string | null = null) {
return this.getSortedNotePathRecords(hoistedNoteId, activeNotePath)[0]?.notePath;
}
/**
@ -584,7 +620,7 @@ class FNote {
let childBranches = this.getChildBranches();
if (!childBranches) {
ws.logError(`No children for '${this.noteId}'. This shouldn't happen.`);
console.error(`No children for '${this.noteId}'. This shouldn't happen.`);
return [];
}
@ -770,6 +806,16 @@ class FNote {
return this.getAttributeValue(LABEL, name);
}
getLabelOrRelation(nameWithPrefix: string) {
if (nameWithPrefix.startsWith("#")) {
return this.getLabelValue(nameWithPrefix.substring(1));
} else if (nameWithPrefix.startsWith("~")) {
return this.getRelationValue(nameWithPrefix.substring(1));
} else {
return this.getLabelValue(nameWithPrefix);
}
}
/**
* @param name - relation name
* @returns relation value if relation exists, null otherwise
@ -821,8 +867,7 @@ class FNote {
return [];
}
const promotedAttrs = this.getAttributes()
.filter((attr) => attr.isDefinition())
const promotedAttrs = this.getAttributeDefinitions()
.filter((attr) => {
const def = attr.getDefinition();
@ -842,6 +887,11 @@ class FNote {
return promotedAttrs;
}
getAttributeDefinitions() {
return this.getAttributes()
.filter((attr) => attr.isDefinition());
}
hasAncestor(ancestorNoteId: string, followTemplates = false, visitedNoteIds: Set<string> | null = null) {
if (this.noteId === ancestorNoteId) {
return true;
@ -905,8 +955,8 @@ class FNote {
return this.getBlob();
}
async getBlob() {
return await this.froca.getBlob("notes", this.noteId);
getBlob() {
return this.froca.getBlob("notes", this.noteId);
}
toString() {
@ -1020,6 +1070,14 @@ class FNote {
return this.noteId.startsWith("_options");
}
isTriliumSqlite() {
return this.mime === "text/x-sqlite;schema=trilium";
}
isTriliumScript() {
return this.mime.startsWith("application/javascript");
}
/**
* Provides note's date metadata.
*/
@ -1027,5 +1085,3 @@ class FNote {
return await server.get<NoteMetaData>(`notes/${this.noteId}/metadata`);
}
}
export default FNote;

View File

@ -1,78 +1,51 @@
import FlexContainer from "../widgets/containers/flex_container.js";
import GlobalMenuWidget from "../widgets/buttons/global_menu.js";
import TabRowWidget from "../widgets/tab_row.js";
import TitleBarButtonsWidget from "../widgets/title_bar_buttons.js";
import LeftPaneContainer from "../widgets/containers/left_pane_container.js";
import NoteTreeWidget from "../widgets/note_tree.js";
import NoteTitleWidget from "../widgets/note_title.js";
import OwnedAttributeListWidget from "../widgets/ribbon_widgets/owned_attribute_list.js";
import NoteActionsWidget from "../widgets/buttons/note_actions.js";
import NoteDetailWidget from "../widgets/note_detail.js";
import RibbonContainer from "../widgets/containers/ribbon_container.js";
import PromotedAttributesWidget from "../widgets/ribbon_widgets/promoted_attributes.js";
import InheritedAttributesWidget from "../widgets/ribbon_widgets/inherited_attribute_list.js";
import NoteListWidget from "../widgets/note_list.js";
import SearchDefinitionWidget from "../widgets/ribbon_widgets/search_definition.js";
import SqlResultWidget from "../widgets/sql_result.js";
import SqlTableSchemasWidget from "../widgets/sql_table_schemas.js";
import FilePropertiesWidget from "../widgets/ribbon_widgets/file_properties.js";
import ImagePropertiesWidget from "../widgets/ribbon_widgets/image_properties.js";
import NotePropertiesWidget from "../widgets/ribbon_widgets/note_properties.js";
import NoteIconWidget from "../widgets/note_icon.js";
import SearchResultWidget from "../widgets/search_result.js";
import ScrollingContainer from "../widgets/containers/scrolling_container.js";
import RootContainer from "../widgets/containers/root_container.js";
import WatchedFileUpdateStatusWidget from "../widgets/watched_file_update_status.js";
import SpacerWidget from "../widgets/spacer.js";
import QuickSearchWidget from "../widgets/quick_search.js";
import SplitNoteContainer from "../widgets/containers/split_note_container.js";
import LeftPaneToggleWidget from "../widgets/buttons/left_pane_toggle.js";
import CreatePaneButton from "../widgets/buttons/create_pane_button.js";
import { applyModals } from "./layout_commons.js";
import { DESKTOP_FLOATING_BUTTONS } from "../widgets/FloatingButtonsDefinitions.jsx";
import ApiLog from "../widgets/api_log.jsx";
import ClosePaneButton from "../widgets/buttons/close_pane_button.js";
import BasicPropertiesWidget from "../widgets/ribbon_widgets/basic_properties.js";
import NoteInfoWidget from "../widgets/ribbon_widgets/note_info_widget.js";
import BookPropertiesWidget from "../widgets/ribbon_widgets/book_properties.js";
import NoteMapRibbonWidget from "../widgets/ribbon_widgets/note_map.js";
import NotePathsWidget from "../widgets/ribbon_widgets/note_paths.js";
import SimilarNotesWidget from "../widgets/ribbon_widgets/similar_notes.js";
import RightPaneContainer from "../widgets/containers/right_pane_container.js";
import EditButton from "../widgets/floating_buttons/edit_button.js";
import EditedNotesWidget from "../widgets/ribbon_widgets/edited_notes.js";
import ShowTocWidgetButton from "../widgets/buttons/show_toc_widget_button.js";
import ShowHighlightsListWidgetButton from "../widgets/buttons/show_highlights_list_widget_button.js";
import NoteWrapperWidget from "../widgets/note_wrapper.js";
import BacklinksWidget from "../widgets/floating_buttons/zpetne_odkazy.js";
import SharedInfoWidget from "../widgets/shared_info.js";
import CloseZenModeButton from "../widgets/close_zen_button.jsx";
import ContentHeader from "../widgets/containers/content_header.js";
import CreatePaneButton from "../widgets/buttons/create_pane_button.js";
import FindWidget from "../widgets/find.js";
import TocWidget from "../widgets/toc.js";
import FlexContainer from "../widgets/containers/flex_container.js";
import FloatingButtons from "../widgets/FloatingButtons.jsx";
import GlobalMenu from "../widgets/buttons/global_menu.jsx";
import HighlightsListWidget from "../widgets/highlights_list.js";
import PasswordNoteSetDialog from "../widgets/dialogs/password_not_set.js";
import FloatingButtons from "../widgets/floating_buttons/floating_buttons.js";
import RelationMapButtons from "../widgets/floating_buttons/relation_map_buttons.js";
import SvgExportButton from "../widgets/floating_buttons/svg_export_button.js";
import LauncherContainer from "../widgets/containers/launcher_container.js";
import RevisionsButton from "../widgets/buttons/revisions_button.js";
import CodeButtonsWidget from "../widgets/floating_buttons/code_buttons.js";
import ApiLogWidget from "../widgets/api_log.js";
import HideFloatingButtonsButton from "../widgets/floating_buttons/hide_floating_buttons_button.js";
import ScriptExecutorWidget from "../widgets/ribbon_widgets/script_executor.js";
import LeftPaneContainer from "../widgets/containers/left_pane_container.js";
import LeftPaneToggle from "../widgets/buttons/left_pane_toggle.js";
import MovePaneButton from "../widgets/buttons/move_pane_button.js";
import UploadAttachmentsDialog from "../widgets/dialogs/upload_attachments.js";
import CopyImageReferenceButton from "../widgets/floating_buttons/copy_image_reference_button.js";
import ScrollPaddingWidget from "../widgets/scroll_padding.js";
import ClassicEditorToolbar from "../widgets/ribbon_widgets/classic_editor_toolbar.js";
import NoteIconWidget from "../widgets/note_icon.jsx";
import NoteList from "../widgets/collections/NoteList.jsx";
import NoteTitleWidget from "../widgets/note_title.jsx";
import NoteTreeWidget from "../widgets/note_tree.js";
import NoteWrapperWidget from "../widgets/note_wrapper.js";
import options from "../services/options.js";
import utils from "../services/utils.js";
import GeoMapButtons from "../widgets/floating_buttons/geo_map_button.js";
import ContextualHelpButton from "../widgets/floating_buttons/help_button.js";
import CloseZenButton from "../widgets/close_zen_button.js";
import PasswordNoteSetDialog from "../widgets/dialogs/password_not_set.js";
import QuickSearchWidget from "../widgets/quick_search.js";
import ReadOnlyNoteInfoBar from "../widgets/ReadOnlyNoteInfoBar.jsx";
import Ribbon from "../widgets/ribbon/Ribbon.jsx";
import RightPaneContainer from "../widgets/containers/right_pane_container.js";
import RootContainer from "../widgets/containers/root_container.js";
import ScrollingContainer from "../widgets/containers/scrolling_container.js";
import ScrollPadding from "../widgets/scroll_padding.js";
import SearchResult from "../widgets/search_result.jsx";
import SharedInfo from "../widgets/shared_info.jsx";
import SplitNoteContainer from "../widgets/containers/split_note_container.js";
import SqlResults from "../widgets/sql_result.js";
import SqlTableSchemas from "../widgets/sql_table_schemas.js";
import TabRowWidget from "../widgets/tab_row.js";
import TitleBarButtons from "../widgets/title_bar_buttons.jsx";
import TocWidget from "../widgets/toc.js";
import type { AppContext } from "../components/app_context.js";
import type { WidgetsByParent } from "../services/bundle.js";
import SwitchSplitOrientationButton from "../widgets/floating_buttons/switch_layout_button.js";
import ToggleReadOnlyButton from "../widgets/floating_buttons/toggle_read_only_button.js";
import PngExportButton from "../widgets/floating_buttons/png_export_button.js";
import RefreshButton from "../widgets/floating_buttons/refresh_button.js";
import { applyModals } from "./layout_commons.js";
import UploadAttachmentsDialog from "../widgets/dialogs/upload_attachments.js";
import utils from "../services/utils.js";
import WatchedFileUpdateStatusWidget from "../widgets/watched_file_update_status.js";
import NoteDetail from "../widgets/NoteDetail.jsx";
import PromotedAttributes from "../widgets/PromotedAttributes.jsx";
import SpacerWidget from "../widgets/launch_bar/SpacerWidget.jsx";
import LauncherContainer from "../widgets/launch_bar/LauncherContainer.jsx";
import Breadcrumb from "../widgets/Breadcrumb.jsx";
import TabHistoryNavigationButtons from "../widgets/TabHistoryNavigationButtons.jsx";
export default class DesktopLayout {
@ -107,9 +80,10 @@ export default class DesktopLayout {
new FlexContainer("row")
.class("tab-row-container")
.child(new FlexContainer("row").id("tab-row-left-spacer"))
.optChild(launcherPaneIsHorizontal, new LeftPaneToggleWidget(true))
.optChild(launcherPaneIsHorizontal, <LeftPaneToggle isHorizontalLayout={true} />)
.child(<TabHistoryNavigationButtons />)
.child(new TabRowWidget().class("full-width"))
.optChild(customTitleBarButtons, new TitleBarButtonsWidget())
.optChild(customTitleBarButtons, <TitleBarButtons />)
.css("height", "40px")
.css("background-color", "var(--launcher-pane-background-color)")
.setParent(appContext)
@ -130,7 +104,12 @@ export default class DesktopLayout {
new FlexContainer("column")
.id("rest-pane")
.css("flex-grow", "1")
.optChild(!fullWidthTabBar, new FlexContainer("row").child(new TabRowWidget()).optChild(customTitleBarButtons, new TitleBarButtonsWidget()).css("height", "40px"))
.optChild(!fullWidthTabBar,
new FlexContainer("row")
.child(<TabHistoryNavigationButtons />)
.child(new TabRowWidget())
.optChild(customTitleBarButtons, <TitleBarButtons />)
.css("height", "40px"))
.child(
new FlexContainer("row")
.filling()
@ -146,74 +125,43 @@ export default class DesktopLayout {
new NoteWrapperWidget()
.child(
new FlexContainer("row")
.class("title-row")
.css("height", "50px")
.css("min-height", "50px")
.class("breadcrumb-row")
.css("height", "30px")
.css("min-height", "30px")
.css("align-items", "center")
.cssBlock(".title-row > * { margin: 5px; }")
.child(new NoteIconWidget())
.child(new NoteTitleWidget())
.child(new SpacerWidget(0, 1))
.child(new MovePaneButton(true))
.child(new MovePaneButton(false))
.child(new ClosePaneButton())
.child(new CreatePaneButton())
.css("padding", "10px")
.cssBlock(".breadcrumb-row > * { margin: 5px; }")
.child(<Breadcrumb />)
.child(<SpacerWidget baseSize={0} growthFactor={1} />)
.child(<MovePaneButton direction="left" />)
.child(<MovePaneButton direction="right" />)
.child(<ClosePaneButton />)
.child(<CreatePaneButton />)
)
.child(
new RibbonContainer()
// the order of the widgets matter. Some of these want to "activate" themselves
// when visible. When this happens to multiple of them, the first one "wins".
// promoted attributes should always win.
.ribbon(new ClassicEditorToolbar())
.ribbon(new ScriptExecutorWidget())
.ribbon(new SearchDefinitionWidget())
.ribbon(new EditedNotesWidget())
.ribbon(new BookPropertiesWidget())
.ribbon(new NotePropertiesWidget())
.ribbon(new FilePropertiesWidget())
.ribbon(new ImagePropertiesWidget())
.ribbon(new BasicPropertiesWidget())
.ribbon(new OwnedAttributeListWidget())
.ribbon(new InheritedAttributesWidget())
.ribbon(new NotePathsWidget())
.ribbon(new NoteMapRibbonWidget())
.ribbon(new SimilarNotesWidget())
.ribbon(new NoteInfoWidget())
.button(new RevisionsButton())
.button(new NoteActionsWidget())
)
.child(new SharedInfoWidget())
.child(new WatchedFileUpdateStatusWidget())
.child(
new FloatingButtons()
.child(new RefreshButton())
.child(new SwitchSplitOrientationButton())
.child(new ToggleReadOnlyButton())
.child(new EditButton())
.child(new ShowTocWidgetButton())
.child(new ShowHighlightsListWidgetButton())
.child(new CodeButtonsWidget())
.child(new RelationMapButtons())
.child(new GeoMapButtons())
.child(new CopyImageReferenceButton())
.child(new SvgExportButton())
.child(new PngExportButton())
.child(new BacklinksWidget())
.child(new ContextualHelpButton())
.child(new HideFloatingButtonsButton())
)
.child(<FloatingButtons items={DESKTOP_FLOATING_BUTTONS} />)
.child(
new ScrollingContainer()
.filling()
.child(new PromotedAttributesWidget())
.child(new SqlTableSchemasWidget())
.child(new NoteDetailWidget())
.child(new NoteListWidget(false))
.child(new SearchResultWidget())
.child(new SqlResultWidget())
.child(new ScrollPaddingWidget())
.child(new ContentHeader()
.child(new FlexContainer("row")
.class("title-row")
.child(<NoteIconWidget />)
.child(<NoteTitleWidget />)
)
.child(<ReadOnlyNoteInfoBar />)
.child(<SharedInfo />)
)
.child(<Ribbon />)
.child(<PromotedAttributes />)
.child(<SqlTableSchemas />)
.child(<NoteDetail />)
.child(<NoteList media="screen" />)
.child(<SearchResult />)
.child(<SqlResults />)
.child(<ScrollPadding />)
)
.child(new ApiLogWidget())
.child(<ApiLog />)
.child(new FindWidget())
.child(
...this.customWidgets.get("node-detail-pane"), // typo, let's keep it for a while as BC
@ -232,11 +180,11 @@ export default class DesktopLayout {
)
)
)
.child(new CloseZenButton())
.child(<CloseZenModeButton />)
// Desktop-specific dialogs.
.child(new PasswordNoteSetDialog())
.child(new UploadAttachmentsDialog());
.child(<PasswordNoteSetDialog />)
.child(<UploadAttachmentsDialog />);
applyModals(rootContainer);
return rootContainer;
@ -246,14 +194,18 @@ export default class DesktopLayout {
let launcherPane;
if (isHorizontal) {
launcherPane = new FlexContainer("row").css("height", "53px").class("horizontal").child(new LauncherContainer(true)).child(new GlobalMenuWidget(true));
launcherPane = new FlexContainer("row")
.css("height", "53px")
.class("horizontal")
.child(<LauncherContainer isHorizontalLayout={true} />)
.child(<GlobalMenu isHorizontalLayout={true} />);
} else {
launcherPane = new FlexContainer("column")
.css("width", "53px")
.class("vertical")
.child(new GlobalMenuWidget(false))
.child(new LauncherContainer(false))
.child(new LeftPaneToggleWidget(false));
.child(<GlobalMenu isHorizontalLayout={false} />)
.child(<LauncherContainer isHorizontalLayout={false} />)
.child(<LeftPaneToggle isHorizontalLayout={false} />);
}
launcherPane.id("launcher-pane");

View File

@ -1,71 +0,0 @@
import type RootContainer from "../widgets/containers/root_container.js";
import AboutDialog from "../widgets/dialogs/about.js";
import HelpDialog from "../widgets/dialogs/help.js";
import JumpToNoteDialog from "../widgets/dialogs/jump_to_note.js";
import RecentChangesDialog from "../widgets/dialogs/recent_changes.js";
import PromptDialog from "../widgets/dialogs/prompt.js";
import AddLinkDialog from "../widgets/dialogs/add_link.js";
import IncludeNoteDialog from "../widgets/dialogs/include_note.js";
import BulkActionsDialog from "../widgets/dialogs/bulk_actions.js";
import BranchPrefixDialog from "../widgets/dialogs/branch_prefix.js";
import SortChildNotesDialog from "../widgets/dialogs/sort_child_notes.js";
import NoteTypeChooserDialog from "../widgets/dialogs/note_type_chooser.js";
import MoveToDialog from "../widgets/dialogs/move_to.js";
import CloneToDialog from "../widgets/dialogs/clone_to.js";
import ImportDialog from "../widgets/dialogs/import.js";
import ExportDialog from "../widgets/dialogs/export.js";
import MarkdownImportDialog from "../widgets/dialogs/markdown_import.js";
import ProtectedSessionPasswordDialog from "../widgets/dialogs/protected_session_password.js";
import ConfirmDialog from "../widgets/dialogs/confirm.js";
import RevisionsDialog from "../widgets/dialogs/revisions.js";
import DeleteNotesDialog from "../widgets/dialogs/delete_notes.js";
import InfoDialog from "../widgets/dialogs/info.js";
import IncorrectCpuArchDialog from "../widgets/dialogs/incorrect_cpu_arch.js";
import PopupEditorDialog from "../widgets/dialogs/popup_editor.js";
import FlexContainer from "../widgets/containers/flex_container.js";
import NoteIconWidget from "../widgets/note_icon.js";
import NoteTitleWidget from "../widgets/note_title.js";
import ClassicEditorToolbar from "../widgets/ribbon_widgets/classic_editor_toolbar.js";
import PromotedAttributesWidget from "../widgets/ribbon_widgets/promoted_attributes.js";
import NoteDetailWidget from "../widgets/note_detail.js";
import NoteListWidget from "../widgets/note_list.js";
import { CallToActionDialog } from "../widgets/dialogs/call_to_action.jsx";
export function applyModals(rootContainer: RootContainer) {
rootContainer
.child(new BulkActionsDialog())
.child(new AboutDialog())
.child(new HelpDialog())
.child(new RecentChangesDialog())
.child(new BranchPrefixDialog())
.child(new SortChildNotesDialog())
.child(new IncludeNoteDialog())
.child(new NoteTypeChooserDialog())
.child(new JumpToNoteDialog())
.child(new AddLinkDialog())
.child(new CloneToDialog())
.child(new MoveToDialog())
.child(new ImportDialog())
.child(new ExportDialog())
.child(new MarkdownImportDialog())
.child(new ProtectedSessionPasswordDialog())
.child(new RevisionsDialog())
.child(new DeleteNotesDialog())
.child(new InfoDialog())
.child(new ConfirmDialog())
.child(new PromptDialog())
.child(new IncorrectCpuArchDialog())
.child(new PopupEditorDialog()
.child(new FlexContainer("row")
.class("title-row")
.css("align-items", "center")
.cssBlock(".title-row > * { margin: 5px; }")
.child(new NoteIconWidget())
.child(new NoteTitleWidget()))
.child(new ClassicEditorToolbar())
.child(new PromotedAttributesWidget())
.child(new NoteDetailWidget())
.child(new NoteListWidget(true)))
.child(new CallToActionDialog());
}

View File

@ -0,0 +1,56 @@
import type RootContainer from "../widgets/containers/root_container.js";
import AboutDialog from "../widgets/dialogs/about.js";
import HelpDialog from "../widgets/dialogs/help.js";
import JumpToNoteDialog from "../widgets/dialogs/jump_to_note.js";
import RecentChangesDialog from "../widgets/dialogs/recent_changes.js";
import PromptDialog from "../widgets/dialogs/prompt.js";
import AddLinkDialog from "../widgets/dialogs/add_link.js";
import IncludeNoteDialog from "../widgets/dialogs/include_note.js";
import BulkActionsDialog from "../widgets/dialogs/bulk_actions.js";
import BranchPrefixDialog from "../widgets/dialogs/branch_prefix.js";
import SortChildNotesDialog from "../widgets/dialogs/sort_child_notes.js";
import NoteTypeChooserDialog from "../widgets/dialogs/note_type_chooser.js";
import MoveToDialog from "../widgets/dialogs/move_to.js";
import CloneToDialog from "../widgets/dialogs/clone_to.js";
import ImportDialog from "../widgets/dialogs/import.js";
import ExportDialog from "../widgets/dialogs/export.js";
import MarkdownImportDialog from "../widgets/dialogs/markdown_import.js";
import ProtectedSessionPasswordDialog from "../widgets/dialogs/protected_session_password.js";
import ConfirmDialog from "../widgets/dialogs/confirm.js";
import RevisionsDialog from "../widgets/dialogs/revisions.js";
import DeleteNotesDialog from "../widgets/dialogs/delete_notes.js";
import InfoDialog from "../widgets/dialogs/info.js";
import IncorrectCpuArchDialog from "../widgets/dialogs/incorrect_cpu_arch.js";
import CallToActionDialog from "../widgets/dialogs/call_to_action.jsx";
import PopupEditorDialog from "../widgets/dialogs/PopupEditor.jsx";
import ToastContainer from "../widgets/Toast.jsx";
export function applyModals(rootContainer: RootContainer) {
rootContainer
.child(<BulkActionsDialog />)
.child(<AboutDialog />)
.child(<HelpDialog />)
.child(<RecentChangesDialog />)
.child(<BranchPrefixDialog />)
.child(<SortChildNotesDialog />)
.child(<IncludeNoteDialog />)
.child(<NoteTypeChooserDialog />)
.child(<JumpToNoteDialog />)
.child(<AddLinkDialog />)
.child(<CloneToDialog />)
.child(<MoveToDialog />)
.child(<ImportDialog />)
.child(<ExportDialog />)
.child(<MarkdownImportDialog />)
.child(<ProtectedSessionPasswordDialog />)
.child(<RevisionsDialog />)
.child(<DeleteNotesDialog />)
.child(<InfoDialog />)
.child(<ConfirmDialog />)
.child(<PromptDialog />)
.child(<IncorrectCpuArchDialog />)
.child(<PopupEditorDialog />)
.child(<CallToActionDialog />)
.child(<ToastContainer />)
}

View File

@ -1,183 +0,0 @@
import FlexContainer from "../widgets/containers/flex_container.js";
import NoteTitleWidget from "../widgets/note_title.js";
import NoteDetailWidget from "../widgets/note_detail.js";
import QuickSearchWidget from "../widgets/quick_search.js";
import NoteTreeWidget from "../widgets/note_tree.js";
import ToggleSidebarButtonWidget from "../widgets/mobile_widgets/toggle_sidebar_button.js";
import MobileDetailMenuWidget from "../widgets/mobile_widgets/mobile_detail_menu.js";
import ScreenContainer from "../widgets/mobile_widgets/screen_container.js";
import ScrollingContainer from "../widgets/containers/scrolling_container.js";
import FilePropertiesWidget from "../widgets/ribbon_widgets/file_properties.js";
import FloatingButtons from "../widgets/floating_buttons/floating_buttons.js";
import EditButton from "../widgets/floating_buttons/edit_button.js";
import RelationMapButtons from "../widgets/floating_buttons/relation_map_buttons.js";
import SvgExportButton from "../widgets/floating_buttons/svg_export_button.js";
import BacklinksWidget from "../widgets/floating_buttons/zpetne_odkazy.js";
import HideFloatingButtonsButton from "../widgets/floating_buttons/hide_floating_buttons_button.js";
import NoteListWidget from "../widgets/note_list.js";
import GlobalMenuWidget from "../widgets/buttons/global_menu.js";
import LauncherContainer from "../widgets/containers/launcher_container.js";
import RootContainer from "../widgets/containers/root_container.js";
import SharedInfoWidget from "../widgets/shared_info.js";
import PromotedAttributesWidget from "../widgets/ribbon_widgets/promoted_attributes.js";
import SidebarContainer from "../widgets/mobile_widgets/sidebar_container.js";
import type AppContext from "../components/app_context.js";
import TabRowWidget from "../widgets/tab_row.js";
import RefreshButton from "../widgets/floating_buttons/refresh_button.js";
import MobileEditorToolbar from "../widgets/ribbon_widgets/mobile_editor_toolbar.js";
import { applyModals } from "./layout_commons.js";
import CloseZenButton from "../widgets/close_zen_button.js";
const MOBILE_CSS = `
<style>
kbd {
display: none;
}
.dropdown-menu {
font-size: larger;
}
.action-button {
background: none;
border: none;
cursor: pointer;
font-size: 1.25em;
padding-left: 0.5em;
padding-right: 0.5em;
color: var(--main-text-color);
}
.quick-search {
margin: 0;
}
.quick-search .dropdown-menu {
max-width: 350px;
}
</style>`;
const FANCYTREE_CSS = `
<style>
.tree-wrapper {
max-height: 100%;
margin-top: 0px;
overflow-y: auto;
contain: content;
padding-left: 10px;
}
.fancytree-custom-icon {
font-size: 2em;
}
.fancytree-title {
font-size: 1.5em;
margin-left: 0.6em !important;
}
.fancytree-node {
padding: 5px;
}
.fancytree-node .fancytree-expander:before {
font-size: 2em !important;
}
span.fancytree-expander {
width: 24px !important;
margin-right: 5px;
}
.fancytree-loading span.fancytree-expander {
width: 24px;
height: 32px;
}
.fancytree-loading span.fancytree-expander:after {
width: 20px;
height: 20px;
margin-top: 4px;
border-width: 2px;
border-style: solid;
}
.tree-wrapper .collapse-tree-button,
.tree-wrapper .scroll-to-active-note-button,
.tree-wrapper .tree-settings-button {
position: fixed;
margin-right: 16px;
display: none;
}
.tree-wrapper .unhoist-button {
font-size: 200%;
}
</style>`;
export default class MobileLayout {
getRootWidget(appContext: typeof AppContext) {
const rootContainer = new RootContainer(true)
.setParent(appContext)
.class("horizontal-layout")
.cssBlock(MOBILE_CSS)
.child(new FlexContainer("column").id("mobile-sidebar-container"))
.child(
new FlexContainer("row")
.filling()
.id("mobile-rest-container")
.child(
new SidebarContainer("tree", "column")
.class("d-md-flex d-lg-flex d-xl-flex col-12 col-sm-5 col-md-4 col-lg-3 col-xl-3")
.id("mobile-sidebar-wrapper")
.css("max-height", "100%")
.css("padding-left", "0")
.css("padding-right", "0")
.css("contain", "content")
.child(new FlexContainer("column").filling().id("mobile-sidebar-wrapper").child(new QuickSearchWidget()).child(new NoteTreeWidget().cssBlock(FANCYTREE_CSS)))
)
.child(
new ScreenContainer("detail", "column")
.id("detail-container")
.class("d-sm-flex d-md-flex d-lg-flex d-xl-flex col-12 col-sm-7 col-md-8 col-lg-9")
.child(
new FlexContainer("row")
.contentSized()
.css("font-size", "larger")
.css("align-items", "center")
.child(new ToggleSidebarButtonWidget().contentSized())
.child(new NoteTitleWidget().contentSized().css("position", "relative").css("padding-left", "0.5em"))
.child(new MobileDetailMenuWidget(true).contentSized())
)
.child(new SharedInfoWidget())
.child(
new FloatingButtons()
.child(new RefreshButton())
.child(new EditButton())
.child(new RelationMapButtons())
.child(new SvgExportButton())
.child(new BacklinksWidget())
.child(new HideFloatingButtonsButton())
)
.child(new PromotedAttributesWidget())
.child(
new ScrollingContainer()
.filling()
.contentSized()
.child(new NoteDetailWidget())
.child(new NoteListWidget(false))
.child(new FilePropertiesWidget().css("font-size", "smaller"))
)
.child(new MobileEditorToolbar())
)
)
.child(
new FlexContainer("column")
.contentSized()
.id("mobile-bottom-bar")
.child(new TabRowWidget().css("height", "40px"))
.child(new FlexContainer("row").class("horizontal").css("height", "53px").child(new LauncherContainer(true)).child(new GlobalMenuWidget(true)).id("launcher-pane"))
)
.child(new CloseZenButton());
applyModals(rootContainer);
return rootContainer;
}
}

View File

@ -0,0 +1,204 @@
import { applyModals } from "./layout_commons.js";
import { MOBILE_FLOATING_BUTTONS } from "../widgets/FloatingButtonsDefinitions.jsx";
import { useNoteContext } from "../widgets/react/hooks.jsx";
import CloseZenModeButton from "../widgets/close_zen_button.js";
import FilePropertiesTab from "../widgets/ribbon/FilePropertiesTab.jsx";
import FlexContainer from "../widgets/containers/flex_container.js";
import FloatingButtons from "../widgets/FloatingButtons.jsx";
import GlobalMenuWidget from "../widgets/buttons/global_menu.js";
import MobileDetailMenu from "../widgets/mobile_widgets/mobile_detail_menu.js";
import NoteList from "../widgets/collections/NoteList.jsx";
import NoteTitleWidget from "../widgets/note_title.js";
import ContentHeader from "../widgets/containers/content_header.js";
import NoteTreeWidget from "../widgets/note_tree.js";
import NoteWrapperWidget from "../widgets/note_wrapper.js";
import QuickSearchWidget from "../widgets/quick_search.js";
import ReadOnlyNoteInfoBar from "../widgets/ReadOnlyNoteInfoBar.jsx";
import RootContainer from "../widgets/containers/root_container.js";
import ScreenContainer from "../widgets/mobile_widgets/screen_container.js";
import ScrollingContainer from "../widgets/containers/scrolling_container.js";
import SearchDefinitionTab from "../widgets/ribbon/SearchDefinitionTab.jsx";
import SearchResult from "../widgets/search_result.jsx";
import SharedInfoWidget from "../widgets/shared_info.js";
import SidebarContainer from "../widgets/mobile_widgets/sidebar_container.js";
import StandaloneRibbonAdapter from "../widgets/ribbon/components/StandaloneRibbonAdapter.jsx";
import TabRowWidget from "../widgets/tab_row.js";
import ToggleSidebarButton from "../widgets/mobile_widgets/toggle_sidebar_button.jsx";
import type AppContext from "../components/app_context.js";
import NoteDetail from "../widgets/NoteDetail.jsx";
import MobileEditorToolbar from "../widgets/type_widgets/text/mobile_editor_toolbar.jsx";
import PromotedAttributes from "../widgets/PromotedAttributes.jsx";
import SplitNoteContainer from "../widgets/containers/split_note_container.js";
import LauncherContainer from "../widgets/launch_bar/LauncherContainer.jsx";
const MOBILE_CSS = `
<style>
span.keyboard-shortcut,
kbd {
display: none;
}
.dropdown-menu {
font-size: larger;
}
.action-button {
background: none;
border: none;
cursor: pointer;
font-size: 1.25em;
padding-inline-start: 0.5em;
padding-inline-end: 0.5em;
color: var(--main-text-color);
}
.quick-search {
margin: 0;
}
.quick-search .dropdown-menu {
max-width: 350px;
}
</style>`;
const FANCYTREE_CSS = `
<style>
.tree-wrapper {
max-height: 100%;
margin-top: 0px;
overflow-y: auto;
contain: content;
padding-inline-start: 10px;
}
.fancytree-custom-icon {
font-size: 2em;
}
.fancytree-title {
font-size: 1.5em;
margin-inline-start: 0.6em !important;
}
.fancytree-node {
padding: 5px;
}
.fancytree-node .fancytree-expander:before {
font-size: 2em !important;
}
span.fancytree-expander {
width: 24px !important;
margin-inline-end: 5px;
}
.fancytree-loading span.fancytree-expander {
width: 24px;
height: 32px;
}
.fancytree-loading span.fancytree-expander:after {
width: 20px;
height: 20px;
margin-top: 4px;
border-width: 2px;
border-style: solid;
}
.tree-wrapper .collapse-tree-button,
.tree-wrapper .scroll-to-active-note-button,
.tree-wrapper .tree-settings-button {
position: fixed;
margin-inline-end: 16px;
display: none;
}
.tree-wrapper .unhoist-button {
font-size: 200%;
}
</style>`;
export default class MobileLayout {
getRootWidget(appContext: typeof AppContext) {
const rootContainer = new RootContainer(true)
.setParent(appContext)
.class("horizontal-layout")
.cssBlock(MOBILE_CSS)
.child(new FlexContainer("column").id("mobile-sidebar-container"))
.child(
new FlexContainer("row")
.filling()
.id("mobile-rest-container")
.child(
new SidebarContainer("tree", "column")
.class("d-md-flex d-lg-flex d-xl-flex col-12 col-sm-5 col-md-4 col-lg-3 col-xl-3")
.id("mobile-sidebar-wrapper")
.css("max-height", "100%")
.css("padding-inline-start", "0")
.css("padding-inline-end", "0")
.css("contain", "content")
.child(new FlexContainer("column").filling().id("mobile-sidebar-wrapper").child(new QuickSearchWidget()).child(new NoteTreeWidget().cssBlock(FANCYTREE_CSS)))
)
.child(
new ScreenContainer("detail", "row")
.id("detail-container")
.class("d-sm-flex d-md-flex d-lg-flex d-xl-flex col-12 col-sm-7 col-md-8 col-lg-9")
.child(
new SplitNoteContainer(() =>
new NoteWrapperWidget()
.child(
new FlexContainer("row")
.contentSized()
.css("font-size", "larger")
.css("align-items", "center")
.child(<ToggleSidebarButton />)
.child(<NoteTitleWidget />)
.child(<MobileDetailMenu />)
)
.child(<FloatingButtons items={MOBILE_FLOATING_BUTTONS} />)
.child(<PromotedAttributes />)
.child(
new ScrollingContainer()
.filling()
.contentSized()
.child(new ContentHeader()
.child(<ReadOnlyNoteInfoBar />)
.child(<SharedInfoWidget />)
)
.child(<NoteDetail />)
.child(<NoteList media="screen" />)
.child(<StandaloneRibbonAdapter component={SearchDefinitionTab} />)
.child(<SearchResult />)
.child(<FilePropertiesWrapper />)
)
.child(<MobileEditorToolbar />)
)
)
)
)
.child(
new FlexContainer("column")
.contentSized()
.id("mobile-bottom-bar")
.child(new TabRowWidget().css("height", "40px"))
.child(new FlexContainer("row")
.class("horizontal")
.css("height", "53px")
.child(<LauncherContainer isHorizontalLayout />)
.child(<GlobalMenuWidget isHorizontalLayout />)
.id("launcher-pane"))
)
.child(<CloseZenModeButton />);
applyModals(rootContainer);
return rootContainer;
}
}
function FilePropertiesWrapper() {
const { note } = useNoteContext();
return (
<div>
{note?.type === "file" && <FilePropertiesTab note={note} />}
</div>
);
}

View File

@ -1,5 +1,3 @@
import "./stylesheets/bootstrap.scss";
// @ts-ignore - module = undefined
// Required for correct loading of scripts in Electron
if (typeof module === 'object') {window.module = module; module = undefined;}

View File

@ -1,6 +1,8 @@
import keyboardActionService from "../services/keyboard_actions.js";
import { KeyboardActionNames } from "@triliumnext/commons";
import keyboardActionService, { getActionSync } from "../services/keyboard_actions.js";
import note_tooltip from "../services/note_tooltip.js";
import utils from "../services/utils.js";
import { h, JSX, render } from "preact";
export interface ContextMenuOptions<T> {
x: number;
@ -13,8 +15,18 @@ export interface ContextMenuOptions<T> {
onHide?: () => void;
}
interface MenuSeparatorItem {
title: "----";
export interface CustomMenuItem {
kind: "custom",
componentFn: () => JSX.Element | null;
}
export interface MenuSeparatorItem {
kind: "separator";
}
export interface MenuHeader {
title: string;
kind: "header";
}
export interface MenuItemBadge {
@ -38,12 +50,13 @@ export interface MenuCommandItem<T> {
handler?: MenuHandler<T>;
items?: MenuItem<T>[] | null;
shortcut?: string;
keyboardShortcut?: KeyboardActionNames;
spellingSuggestion?: string;
checked?: boolean;
columns?: number;
}
export type MenuItem<T> = MenuCommandItem<T> | MenuSeparatorItem;
export type MenuItem<T> = MenuCommandItem<T> | CustomMenuItem | MenuSeparatorItem | MenuHeader;
export type MenuHandler<T> = (item: MenuCommandItem<T>, e: JQuery.MouseDownEvent<HTMLElement, undefined, HTMLElement, HTMLElement>) => void;
export type ContextMenuEvent = PointerEvent | MouseEvent | JQuery.ContextMenuEvent;
@ -142,117 +155,198 @@ class ContextMenu {
this.$widget
.css({
display: "block",
top: top,
left: left
top,
left
})
.addClass("show");
}
addItems($parent: JQuery<HTMLElement>, items: MenuItem<any>[]) {
for (const item of items) {
addItems($parent: JQuery<HTMLElement>, items: MenuItem<any>[], multicolumn = false) {
let $group = $parent; // The current group or parent element to which items are being appended
let shouldStartNewGroup = false; // If true, the next item will start a new group
let shouldResetGroup = false; // If true, the next item will be the last one from the group
let prevItemKind: string = "";
for (let index = 0; index < items.length; index++) {
const item = items[index];
const itemKind = ("kind" in item) ? item.kind : "";
if (!item) {
continue;
}
if (item.title === "----") {
$parent.append($("<div>").addClass("dropdown-divider"));
// If the current item is a header, start a new group. This group will contain the
// header and the next item that follows the header.
if (itemKind === "header") {
if (multicolumn && !shouldResetGroup) {
shouldStartNewGroup = true;
}
}
// If the next item is a separator, start a new group. This group will contain the
// current item, the separator, and the next item after the separator.
const nextItem = (index < items.length - 1) ? items[index + 1] : null;
if (multicolumn && nextItem && "kind" in nextItem && nextItem.kind === "separator") {
if (!shouldResetGroup) {
shouldStartNewGroup = true;
} else {
shouldResetGroup = true; // Continue the current group
}
}
// Create a new group to avoid column breaks before and after the seaparator / header.
// This is a workaround for Firefox not supporting break-before / break-after: avoid
// for columns.
if (shouldStartNewGroup) {
$group = $("<div class='dropdown-no-break'>");
$parent.append($group);
shouldStartNewGroup = false;
}
if (itemKind === "separator") {
if (prevItemKind === "separator") {
// Skip consecutive separators
continue;
}
$group.append($("<div>").addClass("dropdown-divider"));
shouldResetGroup = true; // End the group after the next item
} else if (itemKind === "header") {
$group.append($("<h6>").addClass("dropdown-header").text((item as MenuHeader).title));
shouldResetGroup = true;
} else {
const $icon = $("<span>");
if ("uiIcon" in item || "checked" in item) {
const icon = (item.checked ? "bx bx-check" : item.uiIcon);
if (icon) {
$icon.addClass(icon);
} else {
$icon.append("&nbsp;");
}
if (itemKind === "custom") {
// Custom menu item
$group.append(this.createCustomMenuItem(item as CustomMenuItem));
} else {
// Standard menu item
$group.append(this.createMenuItem(item as MenuCommandItem<any>));
}
const $link = $("<span>")
.append($icon)
.append(" &nbsp; ") // some space between icon and text
.append(item.title);
// After adding a menu item, if the previous item was a separator or header,
// reset the group so that the next item will be appended directly to the parent.
if (shouldResetGroup) {
$group = $parent;
shouldResetGroup = false;
};
}
if ("badges" in item && item.badges) {
for (let badge of item.badges) {
const badgeElement = $(`<span class="badge">`).text(badge.title);
prevItemKind = itemKind;
if (badge.className) {
badgeElement.addClass(badge.className);
}
}
}
$link.append(badgeElement);
}
}
private createCustomMenuItem(item: CustomMenuItem) {
const element = document.createElement("li");
element.classList.add("dropdown-custom-item");
element.onclick = () => this.hide();
render(h(item.componentFn, {}), element);
return element;
}
if ("shortcut" in item && item.shortcut) {
$link.append($("<kbd>").text(item.shortcut));
}
private createMenuItem(item: MenuCommandItem<any>) {
const $icon = $("<span>");
const $item = $("<li>")
.addClass("dropdown-item")
.append($link)
.on("contextmenu", (e) => false)
// important to use mousedown instead of click since the former does not change focus
// (especially important for focused text for spell check)
.on("mousedown", (e) => {
e.stopPropagation();
if (e.which !== 1) {
// only left click triggers menu items
return false;
}
if (this.isMobile && "items" in item && item.items) {
const $item = $(e.target).closest(".dropdown-item");
$item.toggleClass("submenu-open");
$item.find("ul.dropdown-menu").toggleClass("show");
return false;
}
if ("handler" in item && item.handler) {
item.handler(item, e);
}
this.options?.selectMenuItemHandler(item, e);
// it's important to stop the propagation especially for sub-menus, otherwise the event
// might be handled again by top-level menu
return false;
});
$item.on("mouseup", (e) => {
// Prevent submenu from failing to expand on mobile
if (!this.isMobile || !("items" in item && item.items)) {
e.stopPropagation();
// Hide the content menu on mouse up to prevent the mouse event from propagating to the elements below.
this.hide();
return false;
}
});
if ("enabled" in item && item.enabled !== undefined && !item.enabled) {
$item.addClass("disabled");
}
if ("items" in item && item.items) {
$item.addClass("dropdown-submenu");
$link.addClass("dropdown-toggle");
const $subMenu = $("<ul>").addClass("dropdown-menu");
if (!this.isMobile && item.columns) {
$subMenu.css("column-count", item.columns);
}
this.addItems($subMenu, item.items);
$item.append($subMenu);
}
$parent.append($item);
if ("uiIcon" in item || "checked" in item) {
const icon = (item.checked ? "bx bx-check" : item.uiIcon);
if (icon) {
$icon.addClass(icon);
} else {
$icon.append("&nbsp;");
}
}
const $link = $("<span>")
.append($icon)
.append(" &nbsp; ") // some space between icon and text
.append(item.title);
if ("badges" in item && item.badges) {
for (let badge of item.badges) {
const badgeElement = $(`<span class="badge">`).text(badge.title);
if (badge.className) {
badgeElement.addClass(badge.className);
}
$link.append(badgeElement);
}
}
if ("keyboardShortcut" in item && item.keyboardShortcut) {
const shortcuts = getActionSync(item.keyboardShortcut).effectiveShortcuts;
if (shortcuts) {
const allShortcuts: string[] = [];
for (const effectiveShortcut of shortcuts) {
allShortcuts.push(effectiveShortcut.split("+")
.map(key => `<kbd>${key}</kbd>`)
.join("+"));
}
if (allShortcuts.length) {
const container = $("<span>").addClass("keyboard-shortcut");
container.append($(allShortcuts.join(",")));
$link.append(container);
}
}
} else if ("shortcut" in item && item.shortcut) {
$link.append($("<kbd>").text(item.shortcut));
}
const $item = $("<li>")
.addClass("dropdown-item")
.append($link)
.on("contextmenu", (e) => false)
// important to use mousedown instead of click since the former does not change focus
// (especially important for focused text for spell check)
.on("mousedown", (e) => {
if (e.which !== 1) {
// only left click triggers menu items
return false;
}
if (this.isMobile && "items" in item && item.items) {
const $item = $(e.target).closest(".dropdown-item");
$item.toggleClass("submenu-open");
$item.find("ul.dropdown-menu").toggleClass("show");
return false;
}
// Prevent submenu from failing to expand on mobile
if (!("items" in item && item.items)) {
this.hide();
}
if ("handler" in item && item.handler) {
item.handler(item, e);
}
this.options?.selectMenuItemHandler(item, e);
// it's important to stop the propagation especially for sub-menus, otherwise the event
// might be handled again by top-level menu
return false;
});
if ("enabled" in item && item.enabled !== undefined && !item.enabled) {
$item.addClass("disabled");
}
if ("items" in item && item.items) {
$item.addClass("dropdown-submenu");
$link.addClass("dropdown-toggle");
const $subMenu = $("<ul>").addClass("dropdown-menu");
const hasColumns = !!item.columns && item.columns > 1;
if (!this.isMobile && hasColumns) {
$subMenu.css("column-count", item.columns!);
}
this.addItems($subMenu, item.items, hasColumns);
$item.append($subMenu);
}
return $item;
}
async hide() {

View File

@ -0,0 +1,21 @@
import { t } from "../services/i18n"
import attributes from "../services/attributes"
import FNote from "../entities/fnote"
export function getArchiveMenuItem(note: FNote) {
if (!note.isArchived) {
return {
title: t("board_view.archive-note"),
uiIcon: "bx bx-archive",
handler: () => attributes.addLabel(note.noteId, "archived")
}
} else {
return {
title: t("board_view.unarchive-note"),
uiIcon: "bx bx-archive-out",
handler: async () => {
attributes.removeOwnedLabelByName(note, "archived")
}
}
}
}

View File

@ -0,0 +1,86 @@
:root {
--note-color-picker-clear-color-cell-background: var(--primary-button-background-color);
--note-color-picker-clear-color-cell-color: var(--main-background-color);
--note-color-picker-clear-color-cell-selection-outline-color: var(--primary-button-border-color);
}
.note-color-picker {
display: flex;
gap: 8px;
justify-content: space-between;
}
.note-color-picker .color-cell {
--color-picker-cell-size: 14px;
width: var(--color-picker-cell-size);
height: var(--color-picker-cell-size);
border-radius: 4px;
background-color: var(--color);
}
.note-color-picker .color-cell:not(.selected):hover {
transform: scale(1.2);
}
.note-color-picker .color-cell.disabled-color-cell {
cursor: not-allowed;
}
.note-color-picker .color-cell.selected {
outline: 2px solid var(--outline-color, var(--color));
outline-offset: 2px;
}
/*
* RESET COLOR CELL
*/
.note-color-picker .color-cell-reset {
--color: var(--note-color-picker-clear-color-cell-background);
--outline-color: var(--note-color-picker-clear-color-cell-selection-outline-color);
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
.note-color-picker .color-cell-reset svg {
width: var(--color-picker-cell-size);
height: var(--color-picker-cell-size);
fill: var(--note-color-picker-clear-color-cell-color);
}
/*
* CUSTOM COLOR CELL
*/
.note-color-picker .custom-color-cell::before {
position: absolute;
content: "\ed35";
display: flex;
top: 0;
left: 0;
right: 0;
bottom: 0;
font-size: calc(var(--color-picker-cell-size) * 1.3);
justify-content: center;
align-items: center;
font-family: boxicons;
font-size: 16px;
color: var(--foreground);
}
.note-color-picker .custom-color-cell {
position: relative;
display: flex;
justify-content: center;
overflow: hidden;
}
.note-color-picker .custom-color-cell.custom-color-cell-empty {
background-image: url(./custom-color.png);
background-size: cover;
--foreground: transparent;
}

View File

@ -0,0 +1,204 @@
import "./NoteColorPicker.css";
import { t } from "../../services/i18n";
import { useCallback, useEffect, useRef, useState} from "preact/hooks";
import {ComponentChildren} from "preact";
import attributes from "../../services/attributes";
import clsx from "clsx";
import Color, { ColorInstance } from "color";
import Debouncer from "../../utils/debouncer";
import FNote from "../../entities/fnote";
import froca from "../../services/froca";
import { isMobile } from "../../services/utils";
const COLOR_PALETTE = [
"#e64d4d", "#e6994d", "#e5e64d", "#99e64d", "#4de64d", "#4de699",
"#4de5e6", "#4d99e6", "#4d4de6", "#994de6", "#e64db3"
];
export interface NoteColorPickerProps {
/** The target Note instance or its ID string. */
note: FNote | string | null;
}
export default function NoteColorPicker(props: NoteColorPickerProps) {
if (!props.note) return null;
const [note, setNote] = useState<FNote | null>(null);
const [currentColor, setCurrentColor] = useState<string | null>(null);
const [isCustomColor, setIsCustomColor] = useState<boolean>(false);
useEffect(() => {
const retrieveNote = async (noteId: string) => {
const noteInstance = await froca.getNote(noteId, true);
if (noteInstance) {
setNote(noteInstance);
}
}
if (typeof props.note === "string") {
retrieveNote(props.note); // Get the note from the given ID string
} else {
setNote(props.note);
}
}, []);
useEffect(() => {
const colorLabel = note?.getLabel("color")?.value ?? null;
if (colorLabel) {
let color = tryParseColor(colorLabel);
if (color) {
setCurrentColor(color.hex().toLowerCase());
}
}
}, [note]);
useEffect(() => {
setIsCustomColor(currentColor !== null && COLOR_PALETTE.indexOf(currentColor) === -1);
}, [currentColor])
const onColorCellClicked = useCallback((color: string | null) => {
if (note) {
if (color !== null) {
attributes.setLabel(note.noteId, "color", color);
} else {
attributes.removeOwnedLabelByName(note, "color");
}
setCurrentColor(color);
}
}, [note, currentColor]);
return <div className="note-color-picker">
<ColorCell className="color-cell-reset"
tooltip={t("note-color.clear-color")}
color={null}
isSelected={(currentColor === null)}
isDisabled={(note === null)}
onSelect={onColorCellClicked}>
{/* https://pictogrammers.com/library/mdi/icon/close/ */}
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" />
</svg>
</ColorCell>
{COLOR_PALETTE.map((color) => (
<ColorCell key={color}
tooltip={t("note-color.set-color")}
color={color}
isSelected={(color === currentColor)}
isDisabled={(note === null)}
onSelect={onColorCellClicked} />
))}
<CustomColorCell tooltip={t("note-color.set-custom-color")}
color={currentColor}
isSelected={isCustomColor}
isDisabled={(note === null)}
onSelect={onColorCellClicked} />
</div>
}
interface ColorCellProps {
children?: ComponentChildren,
className?: string,
tooltip?: string,
color: string | null,
isSelected: boolean,
isDisabled?: boolean,
onSelect?: (color: string | null) => void
}
function ColorCell(props: ColorCellProps) {
return <div className={clsx(props.className, {
"color-cell": true,
"selected": props.isSelected,
"disabled-color-cell": props.isDisabled
})}
style={`${(props.color !== null) ? `--color: ${props.color}` : ""}`}
title={props.tooltip}
onClick={() => props.onSelect?.(props.color)}>
{props.children}
</div>;
}
function CustomColorCell(props: ColorCellProps) {
const [pickedColor, setPickedColor] = useState<string | null>(null);
const colorInput = useRef<HTMLInputElement>(null);
const colorInputDebouncer = useRef<Debouncer<string | null> | null>(null);
const callbackRef = useRef(props.onSelect);
useEffect(() => {
colorInputDebouncer.current = new Debouncer(250, (color) => {
callbackRef.current?.(color);
setPickedColor(color);
});
return () => {
colorInputDebouncer.current?.destroy();
}
}, []);
useEffect(() => {
if (props.isSelected && pickedColor === null) {
setPickedColor(props.color);
}
}, [props.isSelected])
useEffect(() => {
callbackRef.current = props.onSelect;
}, [props.onSelect]);
const onSelect = useCallback(() => {
if (pickedColor !== null) {
callbackRef.current?.(pickedColor);
}
colorInput.current?.click();
}, [pickedColor]);
return <div style={`--foreground: ${getForegroundColor(props.color)};`}
onClick={isMobile() ? (e) => {
// The color picker dropdown will close on some browser if the parent context menu is
// dismissed, so stop the click propagation to prevent dismissing the menu.
e.stopPropagation();
} : undefined}>
<ColorCell {...props}
color={pickedColor}
className={clsx("custom-color-cell", {
"custom-color-cell-empty": (pickedColor === null)
})}
onSelect={onSelect}>
<input ref={colorInput}
type="color"
value={pickedColor ?? props.color ?? "#40bfbf"}
onChange={() => {colorInputDebouncer.current?.updateValue(colorInput.current?.value ?? null)}}
style="width: 0; height: 0; opacity: 0" />
</ColorCell>
</div>
}
function getForegroundColor(backgroundColor: string | null) {
if (backgroundColor === null) return "inherit";
const colorHsl = tryParseColor(backgroundColor)?.hsl();
if (colorHsl) {
let l = colorHsl.lightness();
return colorHsl.saturationl(0).lightness(l >= 50 ? 0 : 100).hex();
} else {
return "inherit";
}
}
function tryParseColor(colorStr: string): ColorInstance | null {
try {
return new Color(colorStr);
} catch(ex) {
console.error(ex);
}
return null;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -4,7 +4,7 @@ import zoomService from "../components/zoom.js";
import contextMenu, { type MenuItem } from "./context_menu.js";
import { t } from "../services/i18n.js";
import type { BrowserWindow } from "electron";
import type { CommandNames } from "../components/app_context.js";
import type { CommandNames, AppContext } from "../components/app_context.js";
function setupContextMenu() {
const electron = utils.dynamicRequire("electron");
@ -13,6 +13,8 @@ function setupContextMenu() {
// FIXME: Remove typecast once Electron is properly integrated.
const { webContents } = remote.getCurrentWindow() as BrowserWindow;
let appContext: AppContext;
webContents.on("context-menu", (event, params) => {
const { editFlags } = params;
const hasText = params.selectionText.trim().length > 0;
@ -37,7 +39,7 @@ function setupContextMenu() {
handler: () => webContents.session.addWordToSpellCheckerDictionary(params.misspelledWord)
});
items.push({ title: `----` });
items.push({ kind: "separator" });
}
if (params.isEditable) {
@ -112,13 +114,27 @@ function setupContextMenu() {
// Replace the placeholder with the real search keyword.
let searchUrl = searchEngineUrl.replace("{keyword}", encodeURIComponent(params.selectionText));
items.push({ title: "----" });
items.push({ kind: "separator" });
items.push({
title: t("electron_context_menu.search_online", { term: shortenedSelection, searchEngine: searchEngineName }),
uiIcon: "bx bx-search-alt",
handler: () => electron.shell.openExternal(searchUrl)
});
items.push({
title: t("electron_context_menu.search_in_trilium", { term: shortenedSelection }),
uiIcon: "bx bx-search",
handler: async () => {
if (!appContext) {
appContext = (await import("../components/app_context.js")).default;
}
await appContext.triggerCommand("searchNotes", {
searchString: params.selectionText
});
}
});
}
if (items.length === 0) {

View File

@ -45,16 +45,16 @@ export default class LauncherContextMenu implements SelectMenuItemEventListener<
isVisibleRoot || isAvailableRoot ? { title: t("launcher_context_menu.add-script-launcher"), command: "addScriptLauncher", uiIcon: "bx bx-code-curly" } : null,
isVisibleRoot || isAvailableRoot ? { title: t("launcher_context_menu.add-custom-widget"), command: "addWidgetLauncher", uiIcon: "bx bx-customize" } : null,
isVisibleRoot || isAvailableRoot ? { title: t("launcher_context_menu.add-spacer"), command: "addSpacerLauncher", uiIcon: "bx bx-dots-horizontal" } : null,
isVisibleRoot || isAvailableRoot ? { title: "----" } : null,
isVisibleRoot || isAvailableRoot ? { kind: "separator" } : null,
isAvailableItem ? { title: t("launcher_context_menu.move-to-visible-launchers"), command: "moveLauncherToVisible", uiIcon: "bx bx-show", enabled: true } : null,
isVisibleItem ? { title: t("launcher_context_menu.move-to-available-launchers"), command: "moveLauncherToAvailable", uiIcon: "bx bx-hide", enabled: true } : null,
isVisibleItem || isAvailableItem ? { title: "----" } : null,
isVisibleItem || isAvailableItem ? { kind: "separator" } : null,
{ title: `${t("launcher_context_menu.duplicate-launcher")}`, command: "duplicateSubtree", uiIcon: "bx bx-outline", enabled: isItem },
{ title: `${t("launcher_context_menu.delete")}`, command: "deleteNotes", uiIcon: "bx bx-trash destructive-action-icon", enabled: canBeDeleted },
{ title: "----" },
{ kind: "separator" },
{ title: t("launcher_context_menu.reset"), command: "resetLauncher", uiIcon: "bx bx-reset destructive-action-icon", enabled: canBeReset }
];

View File

@ -2,26 +2,32 @@ import { t } from "../services/i18n.js";
import contextMenu, { type ContextMenuEvent, type MenuItem } from "./context_menu.js";
import appContext, { type CommandNames } from "../components/app_context.js";
import type { ViewScope } from "../services/link.js";
import utils, { isMobile } from "../services/utils.js";
import { getClosestNtxId } from "../widgets/widget_utils.js";
import type { LeafletMouseEvent } from "leaflet";
function openContextMenu(notePath: string, e: ContextMenuEvent, viewScope: ViewScope = {}, hoistedNoteId: string | null = null) {
contextMenu.show({
x: e.pageX,
y: e.pageY,
items: getItems(),
selectMenuItemHandler: ({ command }) => handleLinkContextMenuItem(command, notePath, viewScope, hoistedNoteId)
items: getItems(e),
selectMenuItemHandler: ({ command }) => handleLinkContextMenuItem(command, e, notePath, viewScope, hoistedNoteId)
});
}
function getItems(): MenuItem<CommandNames>[] {
function getItems(e: ContextMenuEvent | LeafletMouseEvent): MenuItem<CommandNames>[] {
const ntxId = getNtxId(e);
const isMobileSplitOpen = isMobile() && appContext.tabManager.getNoteContextById(ntxId).getMainContext().getSubContexts().length > 1;
return [
{ title: t("link_context_menu.open_note_in_new_tab"), command: "openNoteInNewTab", uiIcon: "bx bx-link-external" },
{ title: t("link_context_menu.open_note_in_new_split"), command: "openNoteInNewSplit", uiIcon: "bx bx-dock-right" },
{ title: !isMobileSplitOpen ? t("link_context_menu.open_note_in_new_split") : t("link_context_menu.open_note_in_other_split"), command: "openNoteInNewSplit", uiIcon: "bx bx-dock-right" },
{ title: t("link_context_menu.open_note_in_new_window"), command: "openNoteInNewWindow", uiIcon: "bx bx-window-open" },
{ title: t("link_context_menu.open_note_in_popup"), command: "openNoteInPopup", uiIcon: "bx bx-edit" }
];
}
function handleLinkContextMenuItem(command: string | undefined, notePath: string, viewScope = {}, hoistedNoteId: string | null = null) {
function handleLinkContextMenuItem(command: string | undefined, e: ContextMenuEvent | LeafletMouseEvent, notePath: string, viewScope = {}, hoistedNoteId: string | null = null) {
if (!hoistedNoteId) {
hoistedNoteId = appContext.tabManager.getActiveContext()?.hoistedNoteId ?? null;
}
@ -29,15 +35,8 @@ function handleLinkContextMenuItem(command: string | undefined, notePath: string
if (command === "openNoteInNewTab") {
appContext.tabManager.openContextWithNote(notePath, { hoistedNoteId, viewScope });
} else if (command === "openNoteInNewSplit") {
const subContexts = appContext.tabManager.getActiveContext()?.getSubContexts();
if (!subContexts) {
logError("subContexts is null");
return;
}
const { ntxId } = subContexts[subContexts.length - 1];
const ntxId = getNtxId(e);
if (!ntxId) return;
appContext.triggerCommand("openNewNoteSplit", { ntxId, notePath, hoistedNoteId, viewScope });
} else if (command === "openNoteInNewWindow") {
appContext.triggerCommand("openInWindow", { notePath, hoistedNoteId, viewScope });
@ -46,6 +45,18 @@ function handleLinkContextMenuItem(command: string | undefined, notePath: string
}
}
function getNtxId(e: ContextMenuEvent | LeafletMouseEvent) {
if (utils.isDesktop()) {
const subContexts = appContext.tabManager.getActiveContext()?.getSubContexts();
if (!subContexts) return null;
return subContexts[subContexts.length - 1].ntxId;
} else if (e.target instanceof HTMLElement) {
return getClosestNtxId(e.target);
} else {
return null;
}
}
export default {
getItems,
handleLinkContextMenuItem,

View File

@ -1,3 +1,4 @@
import NoteColorPicker from "./custom-items/NoteColorPicker.jsx";
import treeService from "../services/tree.js";
import froca from "../services/froca.js";
import clipboard from "../services/clipboard.js";
@ -13,6 +14,8 @@ import type NoteTreeWidget from "../widgets/note_tree.js";
import type FAttachment from "../entities/fattachment.js";
import type { SelectMenuItemEventListener } from "../components/events.js";
import utils from "../services/utils.js";
import attributes from "../services/attributes.js";
import { executeBulkActions } from "../services/bulk_action.js";
// TODO: Deduplicate once client/server is well split.
interface ConvertToAttachmentResponse {
@ -61,6 +64,11 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree
// the only exception is when the only selected note is the one that was right-clicked, then
// it's clear what the user meant to do.
const selNodes = this.treeWidget.getSelectedNodes();
const selectedNotes = await froca.getNotes(selNodes.map(node => node.data.noteId));
if (note && !selectedNotes.includes(note)) selectedNotes.push(note);
const isArchived = selectedNotes.every(note => note.isArchived);
const canToggleArchived = !selectedNotes.some(note => note.isArchived !== isArchived);
const noSelectedNotes = selNodes.length === 0 || (selNodes.length === 1 && selNodes[0] === this.node);
const notSearch = note?.type !== "search";
@ -69,27 +77,29 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree
const insertNoteAfterEnabled = isNotRoot && !isHoisted && parentNotSearch;
const items: (MenuItem<TreeCommandNames> | null)[] = [
{ title: `${t("tree-context-menu.open-in-a-new-tab")}`, command: "openInTab", uiIcon: "bx bx-link-external", enabled: noSelectedNotes },
{ title: t("tree-context-menu.open-in-a-new-tab"), command: "openInTab", shortcut: "Ctrl+Click", uiIcon: "bx bx-link-external", enabled: noSelectedNotes },
{ title: t("tree-context-menu.open-in-a-new-split"), command: "openNoteInSplit", uiIcon: "bx bx-dock-right", enabled: noSelectedNotes },
{ title: t("tree-context-menu.open-in-popup"), command: "openNoteInPopup", uiIcon: "bx bx-edit", enabled: noSelectedNotes },
isHoisted
? null
: {
title: `${t("tree-context-menu.hoist-note")} <kbd data-command="toggleNoteHoisting"></kbd>`,
title: `${t("tree-context-menu.hoist-note")}`,
command: "toggleNoteHoisting",
keyboardShortcut: "toggleNoteHoisting",
uiIcon: "bx bxs-chevrons-up",
enabled: noSelectedNotes && notSearch
},
!isHoisted || !isNotRoot
? null
: { title: `${t("tree-context-menu.unhoist-note")} <kbd data-command="toggleNoteHoisting"></kbd>`, command: "toggleNoteHoisting", uiIcon: "bx bx-door-open" },
: { title: t("tree-context-menu.unhoist-note"), command: "toggleNoteHoisting", keyboardShortcut: "toggleNoteHoisting", uiIcon: "bx bx-door-open" },
{ title: "----" },
{ kind: "separator" },
{
title: `${t("tree-context-menu.insert-note-after")}<kbd data-command="createNoteAfter"></kbd>`,
title: t("tree-context-menu.insert-note-after"),
command: "insertNoteAfter",
keyboardShortcut: "createNoteAfter",
uiIcon: "bx bx-plus",
items: insertNoteAfterEnabled ? await noteTypesService.getNoteTypeItems("insertNoteAfter") : null,
enabled: insertNoteAfterEnabled && noSelectedNotes && notOptionsOrHelp,
@ -97,21 +107,22 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree
},
{
title: `${t("tree-context-menu.insert-child-note")}<kbd data-command="createNoteInto"></kbd>`,
title: t("tree-context-menu.insert-child-note"),
command: "insertChildNote",
keyboardShortcut: "createNoteInto",
uiIcon: "bx bx-plus",
items: notSearch ? await noteTypesService.getNoteTypeItems("insertChildNote") : null,
enabled: notSearch && noSelectedNotes && notOptionsOrHelp,
columns: 2
},
{ title: "----" },
{ kind: "separator" },
{ title: t("tree-context-menu.protect-subtree"), command: "protectSubtree", uiIcon: "bx bx-check-shield", enabled: noSelectedNotes },
{ title: t("tree-context-menu.unprotect-subtree"), command: "unprotectSubtree", uiIcon: "bx bx-shield", enabled: noSelectedNotes },
{ title: "----" },
{ kind: "separator" },
{
title: t("tree-context-menu.advanced"),
@ -120,48 +131,58 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree
items: [
{ title: t("tree-context-menu.apply-bulk-actions"), command: "openBulkActionsDialog", uiIcon: "bx bx-list-plus", enabled: true },
{ title: "----" },
{ kind: "separator" },
{
title: `${t("tree-context-menu.edit-branch-prefix")} <kbd data-command="editBranchPrefix"></kbd>`,
title: t("tree-context-menu.edit-branch-prefix"),
command: "editBranchPrefix",
keyboardShortcut: "editBranchPrefix",
uiIcon: "bx bx-rename",
enabled: isNotRoot && parentNotSearch && noSelectedNotes && notOptionsOrHelp
enabled: isNotRoot && parentNotSearch && notOptionsOrHelp
},
{ title: t("tree-context-menu.convert-to-attachment"), command: "convertNoteToAttachment", uiIcon: "bx bx-paperclip", enabled: isNotRoot && !isHoisted && notOptionsOrHelp },
{ title: "----" },
{ title: `${t("tree-context-menu.expand-subtree")} <kbd data-command="expandSubtree"></kbd>`, command: "expandSubtree", uiIcon: "bx bx-expand", enabled: noSelectedNotes },
{ title: `${t("tree-context-menu.collapse-subtree")} <kbd data-command="collapseSubtree"></kbd>`, command: "collapseSubtree", uiIcon: "bx bx-collapse", enabled: noSelectedNotes },
{
title: `${t("tree-context-menu.sort-by")} <kbd data-command="sortChildNotes"></kbd>`,
title:
t("tree-context-menu.convert-to-attachment"),
command: "convertNoteToAttachment",
uiIcon: "bx bx-paperclip",
enabled: isNotRoot && !isHoisted && notOptionsOrHelp && selectedNotes.some(note => note.isEligibleForConversionToAttachment())
},
{ kind: "separator" },
{ title: t("tree-context-menu.expand-subtree"), command: "expandSubtree", keyboardShortcut: "expandSubtree", uiIcon: "bx bx-expand", enabled: noSelectedNotes },
{ title: t("tree-context-menu.collapse-subtree"), command: "collapseSubtree", keyboardShortcut: "collapseSubtree", uiIcon: "bx bx-collapse", enabled: noSelectedNotes },
{
title: t("tree-context-menu.sort-by"),
command: "sortChildNotes",
keyboardShortcut: "sortChildNotes",
uiIcon: "bx bx-sort-down",
enabled: noSelectedNotes && notSearch
},
{ title: "----" },
{ kind: "separator" },
{ title: t("tree-context-menu.copy-note-path-to-clipboard"), command: "copyNotePathToClipboard", uiIcon: "bx bx-directions", enabled: true },
{ title: t("tree-context-menu.recent-changes-in-subtree"), command: "recentChangesInSubtree", uiIcon: "bx bx-history", enabled: noSelectedNotes && notOptionsOrHelp }
]
},
{ title: "----" },
{ kind: "separator" },
{
title: `${t("tree-context-menu.cut")} <kbd data-command="cutNotesToClipboard"></kbd>`,
title: t("tree-context-menu.cut"),
command: "cutNotesToClipboard",
keyboardShortcut: "cutNotesToClipboard",
uiIcon: "bx bx-cut",
enabled: isNotRoot && !isHoisted && parentNotSearch
},
{ title: `${t("tree-context-menu.copy-clone")} <kbd data-command="copyNotesToClipboard"></kbd>`, command: "copyNotesToClipboard", uiIcon: "bx bx-copy", enabled: isNotRoot && !isHoisted },
{ title: t("tree-context-menu.copy-clone"), command: "copyNotesToClipboard", keyboardShortcut: "copyNotesToClipboard", uiIcon: "bx bx-copy", enabled: isNotRoot && !isHoisted },
{
title: `${t("tree-context-menu.paste-into")} <kbd data-command="pasteNotesFromClipboard"></kbd>`,
title: t("tree-context-menu.paste-into"),
command: "pasteNotesFromClipboard",
keyboardShortcut: "pasteNotesFromClipboard",
uiIcon: "bx bx-paste",
enabled: !clipboard.isClipboardEmpty() && notSearch && noSelectedNotes
},
@ -174,39 +195,80 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree
},
{
title: `${t("tree-context-menu.move-to")} <kbd data-command="moveNotesTo"></kbd>`,
title: t("tree-context-menu.move-to"),
command: "moveNotesTo",
keyboardShortcut: "moveNotesTo",
uiIcon: "bx bx-transfer",
enabled: isNotRoot && !isHoisted && parentNotSearch
},
{ title: `${t("tree-context-menu.clone-to")} <kbd data-command="cloneNotesTo"></kbd>`, command: "cloneNotesTo", uiIcon: "bx bx-duplicate", enabled: isNotRoot && !isHoisted },
{ title: t("tree-context-menu.clone-to"), command: "cloneNotesTo", keyboardShortcut: "cloneNotesTo", uiIcon: "bx bx-duplicate", enabled: isNotRoot && !isHoisted },
{
title: `${t("tree-context-menu.duplicate")} <kbd data-command="duplicateSubtree">`,
title: t("tree-context-menu.duplicate"),
command: "duplicateSubtree",
keyboardShortcut: "duplicateSubtree",
uiIcon: "bx bx-outline",
enabled: parentNotSearch && isNotRoot && !isHoisted && notOptionsOrHelp
},
{
title: `${t("tree-context-menu.delete")} <kbd data-command="deleteNotes"></kbd>`,
title: !isArchived ? t("tree-context-menu.archive") : t("tree-context-menu.unarchive"),
uiIcon: !isArchived ? "bx bx-archive" : "bx bx-archive-out",
enabled: canToggleArchived,
handler: () => {
if (!selectedNotes.length) return;
if (selectedNotes.length == 1) {
const note = selectedNotes[0];
if (!isArchived) {
attributes.addLabel(note.noteId, "archived");
} else {
attributes.removeOwnedLabelByName(note, "archived");
}
} else {
const noteIds = selectedNotes.map(note => note.noteId);
if (!isArchived) {
executeBulkActions(noteIds, [{
name: "addLabel", labelName: "archived"
}]);
} else {
executeBulkActions(noteIds, [{
name: "deleteLabel", labelName: "archived"
}]);
}
}
}
},
{
title: t("tree-context-menu.delete"),
command: "deleteNotes",
keyboardShortcut: "deleteNotes",
uiIcon: "bx bx-trash destructive-action-icon",
enabled: isNotRoot && !isHoisted && parentNotSearch && notOptionsOrHelp
},
{ title: "----" },
{ kind: "separator"},
(notOptionsOrHelp && selectedNotes.length === 1) ? {
kind: "custom",
componentFn: () => {
return NoteColorPicker({note});
}
} : null,
{ kind: "separator" },
{ title: t("tree-context-menu.import-into-note"), command: "importIntoNote", uiIcon: "bx bx-import", enabled: notSearch && noSelectedNotes && notOptionsOrHelp },
{ title: t("tree-context-menu.export"), command: "exportNote", uiIcon: "bx bx-export", enabled: notSearch && noSelectedNotes && notOptionsOrHelp },
{ title: "----" },
{ kind: "separator" },
{
title: `${t("tree-context-menu.search-in-subtree")} <kbd data-command="searchInSubtree"></kbd>`,
title: t("tree-context-menu.search-in-subtree"),
command: "searchInSubtree",
keyboardShortcut: "searchInSubtree",
uiIcon: "bx bx-search",
enabled: notSearch && noSelectedNotes
}

View File

@ -1,7 +1,6 @@
import appContext from "./components/app_context.js";
import noteAutocompleteService from "./services/note_autocomplete.js";
import glob from "./services/glob.js";
import "./stylesheets/bootstrap.scss";
import "boxicons/css/boxicons.min.css";
import "autocomplete.js/index_jquery.js";

157
apps/client/src/print.css Normal file
View File

@ -0,0 +1,157 @@
@import "boxicons/css/boxicons.min.css";
:root {
--print-font-size: 11pt;
--ck-content-color-image-caption-background: transparent !important;
}
html,
body {
width: 100%;
height: 100%;
color: black;
}
@page {
margin: 2cm;
}
.note-list-widget.full-height,
.note-list-widget.full-height .note-list-widget-content {
height: unset !important;
}
.component {
contain: none !important;
}
body[data-note-type="text"] .ck-content {
font-size: var(--print-font-size);
text-align: justify;
}
.ck-content figcaption {
font-style: italic;
}
.ck-content a {
text-decoration: none;
}
.ck-content a:not([href^="#root/"]) {
text-decoration: underline;
color: #374a75;
}
.ck-content .todo-list__label * {
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
@supports selector(.todo-list__label__description:has(*)) and (height: 1lh) {
.ck-content .todo-list__label__description {
/* The percentage of the line height that the check box occupies */
--box-ratio: 0.75;
/* The size of the gap between the check box and the caption */
--box-text-gap: 0.25em;
--box-size: calc(1lh * var(--box-ratio));
--box-vert-offset: calc((1lh - var(--box-size)) / 2);
display: inline-block;
padding-inline-start: calc(var(--box-size) + var(--box-text-gap));
/* Source: https://pictogrammers.com/library/mdi/icon/checkbox-blank-outline/ */
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3e%3cpath d='M19%2c3H5C3.89%2c3 3%2c3.89 3%2c5V19A2%2c2 0 0%2c0 5%2c21H19A2%2c2 0 0%2c0 21%2c19V5C21%2c3.89 20.1%2c3 19%2c3M19%2c5V19H5V5H19Z' /%3e%3c/svg%3e");
background-position: 0 var(--box-vert-offset);
background-size: var(--box-size);
background-repeat: no-repeat;
}
.ck-content .todo-list__label:has(input[type="checkbox"]:checked) .todo-list__label__description {
/* Source: https://pictogrammers.com/library/mdi/icon/checkbox-outline/ */
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3e%3cpath d='M19%2c3H5A2%2c2 0 0%2c0 3%2c5V19A2%2c2 0 0%2c0 5%2c21H19A2%2c2 0 0%2c0 21%2c19V5A2%2c2 0 0%2c0 19%2c3M19%2c5V19H5V5H19M10%2c17L6%2c13L7.41%2c11.58L10%2c14.17L16.59%2c7.58L18%2c9' /%3e%3c/svg%3e");
}
.ck-content .todo-list__label input[type="checkbox"] {
display: none !important;
}
}
/* #region Footnotes */
.footnote-reference a,
.footnote-back-link a {
text-decoration: none !important;
}
li.footnote-item {
position: relative;
width: fit-content;
}
.ck-content .footnote-back-link {
margin-right: 0.25em;
}
.ck-content .footnote-content {
display: inline-block;
width: unset;
}
/* #endregion */
/* #region Widows and orphans */
p,
blockquote {
widows: 4;
orphans: 4;
}
pre > code {
widows: 6;
orphans: 6;
overflow: auto;
white-space: pre-wrap !important;
}
h1,
h2,
h3,
h4,
h5,
h6 {
page-break-after: avoid;
break-after: avoid;
}
/* #endregion */
/* #region Tables */
.table thead th,
.table td,
.table th {
/* Fix center vertical alignment of table cells */
vertical-align: middle;
}
pre {
box-shadow: unset !important;
border: 0.75pt solid gray !important;
border-radius: 2pt !important;
}
th,
span[style] {
print-color-adjust: exact;
-webkit-print-color-adjust: exact;
}
/* #endregion */
/* #region Page breaks */
.page-break {
page-break-after: always;
break-after: always;
}
.page-break > *,
.page-break::after {
display: none !important;
}
/* #endregion */

151
apps/client/src/print.tsx Normal file
View File

@ -0,0 +1,151 @@
import FNote from "./entities/fnote";
import { render } from "preact";
import { CustomNoteList, useNoteViewType } from "./widgets/collections/NoteList";
import { useCallback, useLayoutEffect, useRef } from "preact/hooks";
import content_renderer from "./services/content_renderer";
import { dynamicRequire, isElectron } from "./services/utils";
import { applyInlineMermaid } from "./services/content_renderer_text";
interface RendererProps {
note: FNote;
onReady: () => void;
onProgressChanged?: (progress: number) => void;
}
async function main() {
const notePath = window.location.hash.substring(1);
const noteId = notePath.split("/").at(-1);
if (!noteId) return;
await import("./print.css");
const froca = (await import("./services/froca")).default;
const note = await froca.getNote(noteId);
render(<App note={note} noteId={noteId} />, document.body);
}
function App({ note, noteId }: { note: FNote | null | undefined, noteId: string }) {
const sentReadyEvent = useRef(false);
const onProgressChanged = useCallback((progress: number) => {
if (isElectron()) {
const { ipcRenderer } = dynamicRequire('electron');
ipcRenderer.send("print-progress", progress);
} else {
window.dispatchEvent(new CustomEvent("note-load-progress", { detail: { progress } }));
}
}, []);
const onReady = useCallback(() => {
if (sentReadyEvent.current) return;
window.dispatchEvent(new Event("note-ready"));
window._noteReady = true;
sentReadyEvent.current = true;
}, []);
const props: RendererProps | undefined | null = note && { note, onReady, onProgressChanged };
if (!note || !props) return <Error404 noteId={noteId} />
useLayoutEffect(() => {
document.body.dataset.noteType = note.type;
}, [ note ]);
return (
<>
{note.type === "book"
? <CollectionRenderer {...props} />
: <SingleNoteRenderer {...props} />
}
</>
);
}
function SingleNoteRenderer({ note, onReady }: RendererProps) {
const containerRef = useRef<HTMLDivElement>(null);
useLayoutEffect(() => {
async function load() {
if (note.type === "text") {
await import("@triliumnext/ckeditor5/src/theme/ck-content.css");
}
const { $renderedContent } = await content_renderer.getRenderedContent(note, { noChildrenList: true });
const container = containerRef.current!;
container.replaceChildren(...$renderedContent);
// Wait for all images to load.
const images = Array.from(container.querySelectorAll("img"));
await Promise.all(
images.map(img => {
if (img.complete) return Promise.resolve();
return new Promise<void>(resolve => {
img.addEventListener("load", () => resolve(), { once: true });
img.addEventListener("error", () => resolve(), { once: true });
});
})
);
// Initialize mermaid.
if (note.type === "text") {
await applyInlineMermaid(container);
}
// Check custom CSS.
await loadCustomCss(note);
}
load().then(() => requestAnimationFrame(onReady))
}, [ note ]);
return <>
<h1>{note.title}</h1>
<main ref={containerRef} />
</>;
}
function CollectionRenderer({ note, onReady, onProgressChanged }: RendererProps) {
const viewType = useNoteViewType(note);
return <CustomNoteList
viewType={viewType}
isEnabled
note={note}
notePath={note.getBestNotePath().join("/")}
ntxId="print"
highlightedTokens={null}
media="print"
onReady={async () => {
await loadCustomCss(note);
onReady();
}}
onProgressChanged={onProgressChanged}
/>;
}
function Error404({ noteId }: { noteId: string }) {
return (
<main>
<p>The note you are trying to print could not be found.</p>
<small>{noteId}</small>
</main>
)
}
async function loadCustomCss(note: FNote) {
const printCssNotes = await note.getRelationTargets("printCss");
let loadPromises: JQueryPromise<void>[] = [];
for (const printCssNote of printCssNotes) {
if (!printCssNote || (printCssNote.type !== "code" && printCssNote.mime !== "text/css")) continue;
const linkEl = document.createElement("link");
linkEl.href = `/api/notes/${printCssNote.noteId}/download`;
linkEl.rel = "stylesheet";
const promise = $.Deferred();
loadPromises.push(promise.promise());
linkEl.onload = () => promise.resolve();
document.head.appendChild(linkEl);
}
await Promise.allSettled(loadPromises);
}
main();

View File

@ -1,5 +1,15 @@
import $ from "jquery";
async function loadBootstrap() {
if (document.body.dir === "rtl") {
await import("bootstrap/dist/css/bootstrap.rtl.min.css");
} else {
await import("bootstrap/dist/css/bootstrap.min.css");
}
}
(window as any).$ = $;
(window as any).jQuery = $;
await loadBootstrap();
$("body").show();

View File

@ -90,7 +90,8 @@ const HIDDEN_ATTRIBUTES = [
"viewType",
"geolocation",
"docName",
"webViewSrc"
"webViewSrc",
"archived"
];
async function renderNormalAttributes(note: FNote) {

View File

@ -2,6 +2,7 @@ import server from "./server.js";
import froca from "./froca.js";
import type FNote from "../entities/fnote.js";
import type { AttributeRow } from "./load_results.js";
import { AttributeType } from "@triliumnext/commons";
async function addLabel(noteId: string, name: string, value: string = "", isInheritable = false) {
await server.put(`notes/${noteId}/attribute`, {
@ -21,10 +22,27 @@ export async function setLabel(noteId: string, name: string, value: string = "",
});
}
export async function setRelation(noteId: string, name: string, value: string = "", isInheritable = false) {
await server.put(`notes/${noteId}/set-attribute`, {
type: "relation",
name: name,
value: value,
isInheritable
});
}
async function removeAttributeById(noteId: string, attributeId: string) {
await server.remove(`notes/${noteId}/attributes/${attributeId}`);
}
export async function removeOwnedAttributesByNameOrType(note: FNote, type: AttributeType, name: string) {
for (const attr of note.getOwnedAttributes()) {
if (attr.type === type && attr.name === name) {
await server.remove(`notes/${note.noteId}/attributes/${attr.attributeId}`);
}
}
}
/**
* Removes a label identified by its name from the given note, if it exists. Note that the label must be owned, i.e.
* it will not remove inherited attributes.
@ -42,6 +60,23 @@ function removeOwnedLabelByName(note: FNote, labelName: string) {
return false;
}
/**
* Removes a relation identified by its name from the given note, if it exists. Note that the relation must be owned, i.e.
* it will not remove inherited attributes.
*
* @param note the note from which to remove the relation.
* @param relationName the name of the relation to remove.
* @returns `true` if an attribute was identified and removed, `false` otherwise.
*/
function removeOwnedRelationByName(note: FNote, relationName: string) {
const relation = note.getOwnedRelation(relationName);
if (relation) {
removeAttributeById(note.noteId, relation.attributeId);
return true;
}
return false;
}
/**
* Sets the attribute of the given note to the provided value if its truthy, or removes the attribute if the value is falsy.
* For an attribute with an empty value, pass an empty string instead.
@ -52,7 +87,7 @@ function removeOwnedLabelByName(note: FNote, labelName: string) {
* @param value the value of the attribute to set.
*/
export async function setAttribute(note: FNote, type: "label" | "relation", name: string, value: string | null | undefined) {
if (value) {
if (value !== null && value !== undefined) {
// Create or update the attribute.
await server.put(`notes/${note.noteId}/set-attribute`, { type, name, value });
} else {
@ -91,9 +126,7 @@ function isAffecting(attrRow: AttributeRow, affectedNote: FNote | null | undefin
}
}
// TODO: This doesn't seem right.
//@ts-ignore
if (this.isInheritable) {
if (attrRow.isInheritable) {
for (const owningNote of owningNotes) {
if (owningNote.hasAncestor(attrNote.noteId, true)) {
return true;
@ -107,8 +140,10 @@ function isAffecting(attrRow: AttributeRow, affectedNote: FNote | null | undefin
export default {
addLabel,
setLabel,
setRelation,
setAttribute,
removeAttributeById,
removeOwnedLabelByName,
removeOwnedRelationByName,
isAffecting
};

View File

@ -1,6 +1,6 @@
import utils from "./utils.js";
import server from "./server.js";
import toastService, { type ToastOptions } from "./toast.js";
import toastService, { type ToastOptionsWithRequiredId } from "./toast.js";
import froca from "./froca.js";
import hoistedNoteService from "./hoisted_note.js";
import ws from "./ws.js";
@ -176,11 +176,6 @@ async function moveNodeUpInHierarchy(node: Fancytree.FancytreeNode) {
toastService.showError(resp.message);
return;
}
if (!hoistedNoteService.isTopLevelNode(node) && node.getParent().getChildren().length <= 1) {
node.getParent().folder = false;
node.getParent().renderTitle();
}
}
function filterSearchBranches(branchIds: string[]) {
@ -200,17 +195,17 @@ function filterRootNote(branchIds: string[]) {
});
}
function makeToast(id: string, message: string): ToastOptions {
function makeToast(id: string, message: string): ToastOptionsWithRequiredId {
return {
id: id,
id,
title: t("branches.delete-status"),
message: message,
message,
icon: "trash"
};
}
ws.subscribeToMessages(async (message) => {
if (message.taskType !== "deleteNotes") {
if (!("taskType" in message) || message.taskType !== "deleteNotes") {
return;
}
@ -221,14 +216,14 @@ ws.subscribeToMessages(async (message) => {
toastService.showPersistent(makeToast(message.taskId, t("branches.delete-notes-in-progress", { count: message.progressCount })));
} else if (message.type === "taskSucceeded") {
const toast = makeToast(message.taskId, t("branches.delete-finished-successfully"));
toast.closeAfter = 5000;
toast.timeout = 5000;
toastService.showPersistent(toast);
}
});
ws.subscribeToMessages(async (message) => {
if (message.taskType !== "undeleteNotes") {
if (!("taskType" in message) || message.taskType !== "undeleteNotes") {
return;
}
@ -239,7 +234,7 @@ ws.subscribeToMessages(async (message) => {
toastService.showPersistent(makeToast(message.taskId, t("branches.undeleting-notes-in-progress", { count: message.progressCount })));
} else if (message.type === "taskSucceeded") {
const toast = makeToast(message.taskId, t("branches.undeleting-notes-finished-successfully"));
toast.closeAfter = 5000;
toast.timeout = 5000;
toastService.showPersistent(toast);
}
@ -247,7 +242,7 @@ ws.subscribeToMessages(async (message) => {
async function cloneNoteToBranch(childNoteId: string, parentBranchId: string, prefix?: string) {
const resp = await server.put<Response>(`notes/${childNoteId}/clone-to-branch/${parentBranchId}`, {
prefix: prefix
prefix
});
if (!resp.success) {
@ -257,7 +252,7 @@ async function cloneNoteToBranch(childNoteId: string, parentBranchId: string, pr
async function cloneNoteToParentNote(childNoteId: string, parentNoteId: string, prefix?: string) {
const resp = await server.put<Response>(`notes/${childNoteId}/clone-to-note/${parentNoteId}`, {
prefix: prefix
prefix
});
if (!resp.success) {

View File

@ -18,7 +18,7 @@ import type FNote from "../entities/fnote.js";
import toast from "./toast.js";
import { BulkAction } from "@triliumnext/commons";
const ACTION_GROUPS = [
export const ACTION_GROUPS = [
{
title: t("bulk_actions.labels"),
actions: [AddLabelBulkAction, UpdateLabelValueBulkAction, RenameLabelBulkAction, DeleteLabelBulkAction]

View File

@ -0,0 +1,44 @@
import { describe, expect, it } from "vitest";
import { Bundle, executeBundle } from "./bundle";
import { buildNote } from "../test/easy-froca";
describe("Script bundle", () => {
it("dayjs is available", async () => {
const script = /* js */`return api.dayjs().format("YYYY-MM-DD");`;
const bundle = getBundle(script);
const result = await executeBundle(bundle, null, $());
expect(result).toMatch(/^\d{4}-\d{2}-\d{2}$/);
});
it("dayjs is-same-or-before plugin exists", async () => {
const script = /* js */`return api.dayjs("2023-10-01").isSameOrBefore(api.dayjs("2023-10-02"));`;
const bundle = getBundle(script);
const result = await executeBundle(bundle, null, $());
expect(result).toBe(true);
});
});
function getBundle(script: string) {
const id = buildNote({
title: "Script note"
}).noteId;
const bundle: Bundle = {
script: [
'',
`apiContext.modules['${id}'] = { exports: {} };`,
`return await ((async function(exports, module, require, api) {`,
`try {`,
`${script}`,
`;`,
`} catch (e) { throw new Error(\"Load of script note \\\"Client\\\" (${id}) failed with: \" + e.message); }`,
`for (const exportKey in exports) module.exports[exportKey] = exports[exportKey];`,
`return module.exports;`,
`}).call({}, {}, apiContext.modules['${id}'], apiContext.require([]), apiContext.apis['${id}']));`,
''
].join('\n'),
html: "",
noteId: id,
allNoteIds: [ id ]
};
return bundle;
}

View File

@ -27,7 +27,7 @@ async function getAndExecuteBundle(noteId: string, originEntity = null, script =
return await executeBundle(bundle, originEntity);
}
async function executeBundle(bundle: Bundle, originEntity?: Entity | null, $container?: JQuery<HTMLElement>) {
export async function executeBundle(bundle: Bundle, originEntity?: Entity | null, $container?: JQuery<HTMLElement>) {
const apiContext = await ScriptContext(bundle.noteId, bundle.allNoteIds, originEntity, $container);
try {
@ -36,10 +36,17 @@ async function executeBundle(bundle: Bundle, originEntity?: Entity | null, $cont
}.call(apiContext);
} catch (e: any) {
const note = await froca.getNote(bundle.noteId);
const message = `Execution of JS note "${note?.title}" with ID ${bundle.noteId} failed with error: ${e?.message}`;
showError(message);
logError(message);
toastService.showPersistent({
id: `custom-script-failure-${note?.noteId}`,
title: t("toast.bundle-error.title"),
icon: "bx bx-error-circle",
message: t("toast.bundle-error.message", {
id: note?.noteId,
title: note?.title,
message: e.message
})
});
logError("Widget initialization failed: ", e);
}
}
@ -102,8 +109,9 @@ async function getWidgetBundlesByParent() {
const noteId = bundle.noteId;
const note = await froca.getNote(noteId);
toastService.showPersistent({
id: `custom-script-failure-${noteId}`,
title: t("toast.bundle-error.title"),
icon: "alert",
icon: "bx bx-error-circle",
message: t("toast.bundle-error.message", {
id: noteId,
title: note?.title,

View File

@ -2,32 +2,31 @@ import renderService from "./render.js";
import protectedSessionService from "./protected_session.js";
import protectedSessionHolder from "./protected_session_holder.js";
import openService from "./open.js";
import froca from "./froca.js";
import utils from "./utils.js";
import linkService from "./link.js";
import treeService from "./tree.js";
import FNote from "../entities/fnote.js";
import FAttachment from "../entities/fattachment.js";
import imageContextMenuService from "../menus/image_context_menu.js";
import { applySingleBlockSyntaxHighlight, formatCodeBlocks } from "./syntax_highlight.js";
import { applySingleBlockSyntaxHighlight } from "./syntax_highlight.js";
import { loadElkIfNeeded, postprocessMermaidSvg } from "./mermaid.js";
import renderDoc from "./doc_renderer.js";
import { t } from "../services/i18n.js";
import WheelZoom from 'vanilla-js-wheel-zoom';
import { renderMathInElement } from "./math.js";
import { normalizeMimeTypeForCKEditor } from "@triliumnext/commons";
import renderText from "./content_renderer_text.js";
let idCounter = 1;
interface Options {
export interface RenderOptions {
tooltip?: boolean;
trim?: boolean;
imageHasZoom?: boolean;
/** If enabled, it will prevent the default behavior in which an empty note would display a list of children. */
noChildrenList?: boolean;
}
const CODE_MIME_TYPES = new Set(["application/json"]);
async function getRenderedContent(this: {} | { ctx: string }, entity: FNote | FAttachment, options: Options = {}) {
export async function getRenderedContent(this: {} | { ctx: string }, entity: FNote | FAttachment, options: RenderOptions = {}) {
options = Object.assign(
{
@ -42,7 +41,7 @@ async function getRenderedContent(this: {} | { ctx: string }, entity: FNote | FA
const $renderedContent = $('<div class="rendered-content">');
if (type === "text" || type === "book") {
await renderText(entity, $renderedContent);
await renderText(entity, $renderedContent, options);
} else if (type === "code") {
await renderCode(entity, $renderedContent);
} else if (["image", "canvas", "mindMap"].includes(type)) {
@ -114,32 +113,6 @@ async function getRenderedContent(this: {} | { ctx: string }, entity: FNote | FA
};
}
async function renderText(note: FNote | FAttachment, $renderedContent: JQuery<HTMLElement>) {
// entity must be FNote
const blob = await note.getBlob();
if (blob && !utils.isHtmlEmpty(blob.content)) {
$renderedContent.append($('<div class="ck-content">').html(blob.content));
if ($renderedContent.find("span.math-tex").length > 0) {
renderMathInElement($renderedContent[0], { trust: true });
}
const getNoteIdFromLink = (el: HTMLElement) => treeService.getNoteIdFromUrl($(el).attr("href") || "");
const referenceLinks = $renderedContent.find("a.reference-link");
const noteIdsToPrefetch = referenceLinks.map((i, el) => getNoteIdFromLink(el));
await froca.getNotes(noteIdsToPrefetch);
for (const el of referenceLinks) {
await linkService.loadReferenceLinkTitle($(el));
}
await formatCodeBlocks($renderedContent);
} else if (note instanceof FNote) {
await renderChildrenList($renderedContent, note);
}
}
/**
* Renders a code note, by displaying its content and applying syntax highlighting based on the selected MIME type.
*/
@ -161,7 +134,7 @@ async function renderCode(note: FNote | FAttachment, $renderedContent: JQuery<HT
await applySingleBlockSyntaxHighlight($codeBlock, normalizeMimeTypeForCKEditor(note.mime));
}
function renderImage(entity: FNote | FAttachment, $renderedContent: JQuery<HTMLElement>, options: Options = {}) {
function renderImage(entity: FNote | FAttachment, $renderedContent: JQuery<HTMLElement>, options: RenderOptions = {}) {
const encodedTitle = encodeURIComponent(entity.title);
let url;
@ -256,8 +229,19 @@ function renderFile(entity: FNote | FAttachment, type: string, $renderedContent:
</button>
`);
$downloadButton.on("click", () => openService.downloadFileNote(entity.noteId));
$openButton.on("click", () => openService.openNoteExternally(entity.noteId, entity.mime));
$downloadButton.on("click", (e) => {
e.stopPropagation();
openService.downloadFileNote(entity.noteId)
});
$openButton.on("click", async (e) => {
const iconEl = $openButton.find("> .bx");
iconEl.removeClass("bx bx-link-external");
iconEl.addClass("bx bx-loader spin");
e.stopPropagation();
await openService.openNoteExternally(entity.noteId, entity.mime)
iconEl.removeClass("bx bx-loader spin");
iconEl.addClass("bx bx-link-external");
});
// open doesn't work for protected notes since it works through a browser which isn't in protected session
$openButton.toggle(!entity.isProtected);
@ -292,40 +276,6 @@ async function renderMermaid(note: FNote | FAttachment, $renderedContent: JQuery
}
}
/**
* @param {jQuery} $renderedContent
* @param {FNote} note
* @returns {Promise<void>}
*/
async function renderChildrenList($renderedContent: JQuery<HTMLElement>, note: FNote) {
let childNoteIds = note.getChildNoteIds();
if (!childNoteIds.length) {
return;
}
$renderedContent.css("padding", "10px");
$renderedContent.addClass("text-with-ellipsis");
if (childNoteIds.length > 10) {
childNoteIds = childNoteIds.slice(0, 10);
}
// just load the first 10 child notes
const childNotes = await froca.getNotes(childNoteIds);
for (const childNote of childNotes) {
$renderedContent.append(
await linkService.createLink(`${note.noteId}/${childNote.noteId}`, {
showTooltip: false,
showNoteIcon: true
})
);
$renderedContent.append("<br>");
}
}
function getRenderingType(entity: FNote | FAttachment) {
let type: string = "";
if ("type" in entity) {

View File

@ -0,0 +1,126 @@
import { formatCodeBlocks } from "./syntax_highlight.js";
import { getMermaidConfig } from "./mermaid.js";
import { renderMathInElement } from "./math.js";
import FNote from "../entities/fnote.js";
import FAttachment from "../entities/fattachment.js";
import tree from "./tree.js";
import froca from "./froca.js";
import link from "./link.js";
import { isHtmlEmpty } from "./utils.js";
import { default as content_renderer, type RenderOptions } from "./content_renderer.js";
export default async function renderText(note: FNote | FAttachment, $renderedContent: JQuery<HTMLElement>, options: RenderOptions = {}) {
// entity must be FNote
const blob = await note.getBlob();
if (blob && !isHtmlEmpty(blob.content)) {
$renderedContent.append($('<div class="ck-content">').html(blob.content));
await renderIncludedNotes($renderedContent[0]);
if ($renderedContent.find("span.math-tex").length > 0) {
renderMathInElement($renderedContent[0], { trust: true });
}
const getNoteIdFromLink = (el: HTMLElement) => tree.getNoteIdFromUrl($(el).attr("href") || "");
const referenceLinks = $renderedContent.find("a.reference-link");
const noteIdsToPrefetch = referenceLinks.map((i, el) => getNoteIdFromLink(el));
await froca.getNotes(noteIdsToPrefetch);
for (const el of referenceLinks) {
await link.loadReferenceLinkTitle($(el));
}
await rewriteMermaidDiagramsInContainer($renderedContent[0] as HTMLDivElement);
await formatCodeBlocks($renderedContent);
} else if (note instanceof FNote && !options.noChildrenList) {
await renderChildrenList($renderedContent, note);
}
}
async function renderIncludedNotes(contentEl: HTMLElement) {
// TODO: Consider duplicating with server's share/content_renderer.ts.
const includeNoteEls = contentEl.querySelectorAll("section.include-note");
// Gather the list of items to load.
const noteIds: string[] = [];
for (const includeNoteEl of includeNoteEls) {
const noteId = includeNoteEl.getAttribute("data-note-id");
if (noteId) {
noteIds.push(noteId);
}
}
// Load the required notes.
await froca.getNotes(noteIds);
// Render and integrate the notes.
for (const includeNoteEl of includeNoteEls) {
const noteId = includeNoteEl.getAttribute("data-note-id");
if (!noteId) continue;
const note = froca.getNoteFromCache(noteId);
if (!note) {
console.warn(`Unable to include ${noteId} because it could not be found.`);
continue;
}
const renderedContent = (await content_renderer.getRenderedContent(note)).$renderedContent;
includeNoteEl.replaceChildren(...renderedContent);
}
}
/** Rewrite the code block from <pre><code> to <div> in order not to apply a codeblock style to it. */
export async function rewriteMermaidDiagramsInContainer(container: HTMLDivElement) {
const mermaidBlocks = container.querySelectorAll('pre:has(code[class="language-mermaid"])');
if (!mermaidBlocks.length) return;
const nodes: HTMLElement[] = [];
for (const mermaidBlock of mermaidBlocks) {
const div = document.createElement("div");
div.classList.add("mermaid-diagram");
div.innerHTML = mermaidBlock.querySelector("code")?.innerHTML ?? "";
mermaidBlock.replaceWith(div);
nodes.push(div);
}
}
export async function applyInlineMermaid(container: HTMLDivElement) {
// Initialize mermaid
const mermaid = (await import("mermaid")).default;
mermaid.initialize(getMermaidConfig());
const nodes = Array.from(container.querySelectorAll<HTMLElement>("div.mermaid-diagram"));
try {
await mermaid.run({ nodes });
} catch (e) {
console.log(e);
}
}
async function renderChildrenList($renderedContent: JQuery<HTMLElement>, note: FNote) {
let childNoteIds = note.getChildNoteIds();
if (!childNoteIds.length) {
return;
}
$renderedContent.css("padding", "10px");
$renderedContent.addClass("text-with-ellipsis");
if (childNoteIds.length > 10) {
childNoteIds = childNoteIds.slice(0, 10);
}
// just load the first 10 child notes
const childNotes = await froca.getNotes(childNoteIds);
for (const childNote of childNotes) {
$renderedContent.append(
await link.createLink(`${note.noteId}/${childNote.noteId}`, {
showTooltip: false,
showNoteIcon: true
})
);
$renderedContent.append("<br>");
}
}

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