diff --git a/apps/client/package.json b/apps/client/package.json
index e5996a36a..3604c236b 100644
--- a/apps/client/package.json
+++ b/apps/client/package.json
@@ -75,7 +75,7 @@
"@types/leaflet-gpx": "1.3.8",
"@types/mark.js": "8.11.12",
"@types/reveal.js": "5.2.2",
- "@types/tabulator-tables": "6.3.0",
+ "@types/tabulator-tables": "6.3.1",
"copy-webpack-plugin": "13.0.1",
"happy-dom": "20.0.11",
"script-loader": "0.7.2",
diff --git a/apps/client/src/stylesheets/style.css b/apps/client/src/stylesheets/style.css
index 5ea6776ff..5a7d4d923 100644
--- a/apps/client/src/stylesheets/style.css
+++ b/apps/client/src/stylesheets/style.css
@@ -2012,8 +2012,10 @@ body.zen .shared-info-widget,
body.zen .ribbon-container:not(:has(.classic-toolbar-widget)),
body.zen .ribbon-container:has(.classic-toolbar-widget) .ribbon-top-row,
body.zen .ribbon-container .ribbon-body:not(:has(.classic-toolbar-widget)),
-body.zen .note-icon-widget,
body.zen .title-row .icon-action,
+body.zen .note-badges > *:not(.read-only-badge),
+body.zen .ribbon-button-container,
+body.zen .inline-title,
body.zen .promoted-attributes-widget,
body.zen .floating-buttons-children > *:not(.bx-edit-alt),
body.zen .action-button,
@@ -2036,11 +2038,11 @@ body.zen #launcher-pane {
}
body.zen .title-row {
- display: block !important;
height: unset !important;
-webkit-app-region: drag;
padding-inline-start: env(titlebar-area-x);
padding-inline-end: calc(100vw - env(titlebar-area-width, 100vw) + 2.5em);
+ border-bottom: none !important;
}
body.zen .floating-buttons {
@@ -2060,8 +2062,6 @@ body.zen .floating-buttons-children .button-widget {
body.zen .note-title-widget,
body.zen .note-title-widget input {
font-size: 1rem !important;
- background: transparent !important;
- pointer-events: none;
}
body.zen #detail-container {
diff --git a/apps/client/src/stylesheets/theme-next-dark.css b/apps/client/src/stylesheets/theme-next-dark.css
index 150a3ffc6..59e2cb9a1 100644
--- a/apps/client/src/stylesheets/theme-next-dark.css
+++ b/apps/client/src/stylesheets/theme-next-dark.css
@@ -234,6 +234,9 @@
--right-pane-item-hover-background: #ffffff26;
--right-pane-item-hover-color: white;
+ --bottom-panel-background-color: #11111180;
+ --bottom-panel-title-bar-background-color: #3F3F3F80;
+
--scrollbar-thumb-color: #fdfdfd5c;
--scrollbar-thumb-hover-color: #ffffff7d;
--scrollbar-background-color: transparent;
diff --git a/apps/client/src/stylesheets/theme-next-light.css b/apps/client/src/stylesheets/theme-next-light.css
index c5828ab17..6ae0119cf 100644
--- a/apps/client/src/stylesheets/theme-next-light.css
+++ b/apps/client/src/stylesheets/theme-next-light.css
@@ -232,6 +232,9 @@
--right-pane-item-hover-background: #00000013;
--right-pane-item-hover-color: inherit;
+ --bottom-panel-background-color: #0000000a;
+ --bottom-panel-title-bar-background-color: #00000017;
+
--scrollbar-thumb-color: #0000005c;
--scrollbar-thumb-hover-color: #00000066;
--scrollbar-background-color: transparent;
diff --git a/apps/client/src/stylesheets/theme-next/base.css b/apps/client/src/stylesheets/theme-next/base.css
index f77696dc0..b896d4e56 100644
--- a/apps/client/src/stylesheets/theme-next/base.css
+++ b/apps/client/src/stylesheets/theme-next/base.css
@@ -128,6 +128,12 @@ body.backdrop-effects-disabled {
font-size: 0.9rem !important;
}
+.dropdown-menu.tn-dropdown-menu-scrollable {
+ /* Note: scrollable dropdowns does not support submenus */
+ max-height: 90vh;
+ overflow: scroll;
+}
+
body.desktop .dropdown-menu::before,
:root .ck.ck-dropdown__panel::before,
:root .excalidraw .popover::before,
diff --git a/apps/client/src/stylesheets/theme-next/forms.css b/apps/client/src/stylesheets/theme-next/forms.css
index abe65e911..6c4799da3 100644
--- a/apps/client/src/stylesheets/theme-next/forms.css
+++ b/apps/client/src/stylesheets/theme-next/forms.css
@@ -653,7 +653,8 @@ body a.tn-link:focus-visible,
}
body a.tn-link:hover,
-.use-tn-links a:hover {
+.use-tn-links a:hover,
+.use-tn-links a.ck-widget_selected {
box-shadow: 0 0 0 4px var(--link-hover-background);
--background: var(--link-hover-background);
color: var(--link-hover-color);
diff --git a/apps/client/src/stylesheets/theme-next/notes/text.css b/apps/client/src/stylesheets/theme-next/notes/text.css
index deedf02da..d31acc280 100644
--- a/apps/client/src/stylesheets/theme-next/notes/text.css
+++ b/apps/client/src/stylesheets/theme-next/notes/text.css
@@ -670,16 +670,33 @@ html .note-detail-editable-text :not(figure, .include-note, hr):first-child {
color: var(--main-text-color);
}
+/* Links */
+
+.ck-content a.ck-widget {
+ outline: none;
+}
+
+.ck-content a.ck-widget.ck-widget_selected,
+.ck-content a.ck-link_selected {
+ outline: 2px solid var(--input-focus-outline-color);
+ outline-offset: 2px;
+ background: var(--link-hover-background);
+}
+
/* Reference link */
.ck-content a.reference-link,
.ck-content a.reference-link:hover {
/* Apply underline only to the span inside the link so it can follow the
* target note's user defined color */
- text-decoration: none;
+ text-decoration: none;
}
-.ck-content a.reference-link > span {
+.ck-content a.reference-link.use-note-color > span {
+ color: var(--custom-color, inherit);
+}
+
+.ck-content a.reference-link:hover > span {
text-decoration: underline;
}
diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css
index a9707ed53..78ccc9455 100644
--- a/apps/client/src/stylesheets/theme-next/shell.css
+++ b/apps/client/src/stylesheets/theme-next/shell.css
@@ -1230,7 +1230,7 @@ body.layout-vertical .tab-row-widget-is-sorting .note-tab.note-tab-is-dragging .
margin-bottom: 2px;
}
-body.vertical-layout #rest-pane > .classic-toolbar-widget {
+body.layout-vertical #rest-pane > .classic-toolbar-widget {
border-start-start-radius: var(--center-pane-border-radius);
}
diff --git a/apps/client/src/translations/bg/translation.json b/apps/client/src/translations/bg/translation.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/apps/client/src/translations/bg/translation.json
@@ -0,0 +1 @@
+{}
diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json
index 22c6acda9..75e116753 100644
--- a/apps/client/src/translations/en/translation.json
+++ b/apps/client/src/translations/en/translation.json
@@ -826,7 +826,8 @@
},
"inherited_attribute_list": {
"title": "Inherited Attributes",
- "no_inherited_attributes": "No inherited attributes."
+ "no_inherited_attributes": "No inherited attributes.",
+ "none": "none"
},
"note_info_widget": {
"note_id": "Note ID",
@@ -2211,6 +2212,9 @@
"note_paths_title": "Note paths",
"code_note_switcher": "Change language mode"
},
+ "attributes_panel": {
+ "title": "Note Attributes"
+ },
"right_pane": {
"empty_message": "Nothing to show for this note",
"empty_button": "Hide the panel",
diff --git a/apps/client/src/translations/pl/translation.json b/apps/client/src/translations/pl/translation.json
index 79d6687a5..9eab5ddac 100644
--- a/apps/client/src/translations/pl/translation.json
+++ b/apps/client/src/translations/pl/translation.json
@@ -1934,7 +1934,10 @@
},
"highlights_list_2": {
"title": "Lista wyróżnień",
- "options": "Opcje"
+ "options": "Opcje",
+ "modal_title": "Konfiguracja listy wyróżnień",
+ "menu_configure": "Konfiguracja listy wyróżnień...",
+ "no_highlights": "Nie znaleziono wyróżnień."
},
"quick-search": {
"placeholder": "Szybkie wyszukiwanie",
diff --git a/apps/client/src/translations/ru/translation.json b/apps/client/src/translations/ru/translation.json
index e030abbb3..ddbf23a8f 100644
--- a/apps/client/src/translations/ru/translation.json
+++ b/apps/client/src/translations/ru/translation.json
@@ -483,7 +483,7 @@
"workspace_template": "Эта заметка появится в списке доступных шаблонов при создании новой заметки, но только если будет установлен фокус на рабочую область с этим шаблоном",
"workspace_search_home": "новые заметки поиска будут созданы как дочерние записи этой заметки, когда установлен фокус на какую-либо родительскую заметку этого рабочего пространство",
"workspace_calendar_root": "Определяет корень календаря для каждого рабочего пространства",
- "hide_highlight_widget": "Скрыть виджет «Выделенное»",
+ "hide_highlight_widget": "Скрыть виджет «Акценты»",
"is_owned_by_note": "принадлежит заметке",
"and_more": "... и ещё {{count}}.",
"app_theme": "отмечает заметки CSS, которые являются полноценными темами Trilium и, таким образом, доступны в опциях Trilium.",
@@ -750,7 +750,8 @@
},
"toc": {
"table_of_contents": "Оглавление",
- "options": "Параметры"
+ "options": "Параметры",
+ "no_headings": "Заголовки не найдены."
},
"note_tree": {
"hide-archived-notes": "Скрыть архивные заметки",
@@ -1562,7 +1563,13 @@
},
"highlights_list_2": {
"options": "Параметры",
- "title": "Список выделенного"
+ "title": "Акценты",
+ "modal_title": "Настроить акценты",
+ "menu_configure": "Настроить акценты...",
+ "no_highlights": "Акценты в тексте не найдены.",
+ "title_with_count_one": "{{count}} акцент",
+ "title_with_count_few": "{{count}} акцента",
+ "title_with_count_many": "{{count}} акцентов"
},
"include_note": {
"dialog_title": "Вставить заметку",
@@ -1755,15 +1762,15 @@
"enable_tray": "Включить отображение иконки в системном трее (чтобы изменения вступили в силу, необходимо перезапустить Trilium)"
},
"highlights_list": {
- "title": "Список выделенного",
+ "title": "Акценты",
"bold": "Жирный текст",
"italic": "Наклонный текст",
"underline": "Подчеркнутый текст",
"color": "Цветной текст",
- "description": "Вы можете настроить список выделенного, отображаемый на правой панели:",
+ "description": "Вы можете настроить список акцентов, отображаемый на правой панели:",
"bg_color": "Текст с заливкой фона",
- "visibility_title": "Видимость списка выделений",
- "visibility_description": "Вы можете скрыть виджет списка выделенного, добавив атрибут #hideHighlightWidget к заметке.",
+ "visibility_title": "Видимость списка акцентов",
+ "visibility_description": "Вы можете скрыть виджет списка акцентов, добавив атрибут #hideHighlightWidget к заметке.",
"shortcut_info": "Вы можете настроить сочетание клавиш для быстрого переключения правой панели (включая список выделенного) в меню Параметры -> Сочетания клавиш (название \"toggleRightPane\")."
},
"custom_date_time_format": {
@@ -1808,7 +1815,7 @@
"edit_this_note": "Редактировать заметку"
},
"show_highlights_list_widget_button": {
- "show_highlights_list": "Показать список выделенного"
+ "show_highlights_list": "Показать список акцентов"
},
"zen_mode": {
"button_exit": "Покинуть режим \"дзен\""
@@ -2203,5 +2210,11 @@
},
"popup-editor": {
"maximize": "Переключить на полный редактор"
+ },
+ "right_pane": {
+ "custom_widget_go_to_source": "Исходный код",
+ "toggle": "Переключить панель справа",
+ "empty_button": "Скрыть панель",
+ "empty_message": "Нечего отобразить для текущей заметки"
}
}
diff --git a/apps/client/src/translations/tw/translation.json b/apps/client/src/translations/tw/translation.json
index 43aa33dfa..f09fce30c 100644
--- a/apps/client/src/translations/tw/translation.json
+++ b/apps/client/src/translations/tw/translation.json
@@ -691,7 +691,12 @@
"convert_into_attachment_prompt": "確定要將筆記 '{{title}}' 轉換為父級筆記的附件嗎?",
"print_pdf": "匯出為 PDF…",
"open_note_on_server": "在伺服器上開啟筆記",
- "view_revisions": "筆記歷史版本..."
+ "view_revisions": "筆記歷史版本...",
+ "advanced": "進階",
+ "export_as_image": "匯出為圖片",
+ "export_as_image_png": "PNG (點陣)",
+ "export_as_image_svg": "SVG (向量)",
+ "note_map": "筆記地圖"
},
"onclick_button": {
"no_click_handler": "按鈕元件'{{componentId}}'沒有定義點擊時的處理方式"
@@ -790,7 +795,7 @@
"file_type": "檔案類型",
"file_size": "檔案大小",
"download": "下載",
- "open": "打開",
+ "open": "以外部程式打開",
"upload_new_revision": "上傳新版本",
"upload_success": "已上傳新檔案版本。",
"upload_failed": "新檔案版本上傳失敗。",
@@ -821,7 +826,9 @@
"note_size_info": "筆記大小提供了該筆記儲存需求的粗略估計。它考慮了筆記及其歷史的內容。",
"calculate": "計算",
"subtree_size": "(子階層大小: {{size}}, 共計 {{count}} 個筆記)",
- "title": "筆記資訊"
+ "title": "筆記資訊",
+ "mime": "MIME 類型",
+ "show_similar_notes": "顯示相似筆記"
},
"note_map": {
"open_full": "展開顯示",
@@ -884,7 +891,8 @@
"search_parameters": "搜尋參數",
"unknown_search_option": "未知的搜尋選項 {{searchOptionName}}",
"search_note_saved": "搜尋筆記已儲存至 {{- notePathTitle}}",
- "actions_executed": "已執行操作。"
+ "actions_executed": "已執行操作。",
+ "view_options": "查看選項:"
},
"similar_notes": {
"title": "相似筆記",
@@ -1503,7 +1511,11 @@
},
"highlights_list_2": {
"title": "高亮列表",
- "options": "選項"
+ "options": "選項",
+ "title_with_count_one": "{{count}} 處高亮",
+ "modal_title": "設定高亮列表",
+ "menu_configure": "設定高亮列表…",
+ "no_highlights": "未找到高亮內容。"
},
"quick-search": {
"placeholder": "快速搜尋",
@@ -1539,8 +1551,13 @@
},
"note_title": {
"placeholder": "請輸入筆記標題...",
- "created_on": "建立於 {{date}}",
- "last_modified": "最後修改於 {{date}}"
+ "created_on": "建立於 最後修改時間為 。",
@@ -1943,8 +1961,9 @@
"unknown_widget": "未知元件:\"{{id}}\"。"
},
"note_language": {
- "not_set": "不設定",
- "configure-languages": "設定語言…"
+ "not_set": "未設定語言",
+ "configure-languages": "設定語言…",
+ "help-on-languages": "設定內容語言說明…"
},
"content_language": {
"title": "內文語言",
@@ -2011,7 +2030,7 @@
"book_properties_config": {
"hide-weekends": "隱藏週末",
"display-week-numbers": "顯示週數",
- "map-style": "地圖樣式:",
+ "map-style": "地圖樣式",
"max-nesting-depth": "最大嵌套深度:",
"raster": "柵格",
"vector_light": "向量(淺色)",
@@ -2068,14 +2087,19 @@
"next_theme_title": "試用新 Trilium 主題",
"next_theme_message": "您正在使用舊版主題,要試用新主題嗎?",
"next_theme_button": "試用新主題",
- "dismiss": "關閉"
+ "dismiss": "關閉",
+ "new_layout_title": "新版面配置",
+ "new_layout_button": "更多資訊"
},
"settings": {
"related_settings": "相關設定"
},
"settings_appearance": {
"related_code_blocks": "文字筆記中程式碼區塊的配色方案",
- "related_code_notes": "程式碼筆記的配色方案"
+ "related_code_notes": "程式碼筆記的配色方案",
+ "ui": "使用者介面",
+ "ui_old_layout": "舊版面配置",
+ "ui_new_layout": "新版面配置"
},
"units": {
"percentage": "%"
@@ -2135,6 +2159,40 @@
"read_only_explicit": "唯讀",
"read_only_auto": "自動唯讀",
"shared_publicly": "公開分享",
- "shared_locally": "本地分享"
+ "shared_locally": "本地分享",
+ "read_only_explicit_description": "此筆記已被手動設定為唯讀。\n點擊以臨時編輯。",
+ "read_only_temporarily_disabled": "臨時編輯",
+ "shared_copy_to_clipboard": "複製連結至剪貼簿",
+ "shared_open_in_browser": "在瀏覽器中打開連結",
+ "shared_unshare": "取消分享",
+ "clipped_note": "網頁擷取",
+ "execute_script": "運行腳本",
+ "execute_sql": "運行 SQL"
+ },
+ "breadcrumb": {
+ "hoisted_badge": "聚焦",
+ "hoisted_badge_title": "取消聚焦",
+ "workspace_badge": "工作空間",
+ "scroll_to_top_title": "跳轉至筆記開頭",
+ "create_new_note": "新增子筆記",
+ "empty_hide_archived_notes": "隱藏已歸檔的筆記"
+ },
+ "status_bar": {
+ "language_title": "更改內容語言",
+ "note_info_title": "查看筆記資訊(如日期、筆記大小)",
+ "backlinks_one": "{{count}} 個反連結",
+ "backlinks_title_one": "查看反連結",
+ "attachments_one": "{{count}} 個附件",
+ "attachments_title_one": "在新分頁中查看附件",
+ "attributes_one": "{{count}} 個屬性",
+ "attributes_title": "自有屬性及繼承屬性",
+ "note_paths_one": "{{count}} 條路徑",
+ "note_paths_title": "筆記路徑",
+ "code_note_switcher": "更改語言模式"
+ },
+ "right_pane": {
+ "empty_button": "隱藏面板",
+ "toggle": "切換右側面板",
+ "custom_widget_go_to_source": "跳轉至原始碼"
}
}
diff --git a/apps/client/src/widgets/layout/Breadcrumb.css b/apps/client/src/widgets/layout/Breadcrumb.css
index 947f8266e..572392757 100644
--- a/apps/client/src/widgets/layout/Breadcrumb.css
+++ b/apps/client/src/widgets/layout/Breadcrumb.css
@@ -16,6 +16,8 @@
}
a.tn-link {
+ --link-hover-background: var(--icon-button-hover-background);
+
color: var(--custom-color, inherit);
&:hover {
@@ -46,6 +48,19 @@
overflow: hidden;
display: block;
flex-shrink: 2;
+ font-weight: normal;
+ }
+ }
+
+ .icon-action {
+ font-size: .9rem !important;
+
+ .bxs-chevron-right {
+ transform: translateY(8%);
+
+ &::before {
+ opacity: .75;
+ }
}
}
@@ -72,6 +87,15 @@
color: var(--custom-color, inherit) !important;
}
+ .dropdown .breadcrumb-child-list {
+ /* Icon */
+ li > span:first-child {
+ opacity: .75;
+ padding-inline-end: 4px;
+ translate: none;
+ };
+ }
+
a.breadcrumb-last-item,
a.breadcrumb-last-item:visited {
text-decoration: none;
diff --git a/apps/client/src/widgets/layout/Breadcrumb.tsx b/apps/client/src/widgets/layout/Breadcrumb.tsx
index 350b52999..bc1494d3d 100644
--- a/apps/client/src/widgets/layout/Breadcrumb.tsx
+++ b/apps/client/src/widgets/layout/Breadcrumb.tsx
@@ -189,10 +189,11 @@ interface BreadcrumbSeparatorProps {
function BreadcrumbSeparator(props: BreadcrumbSeparatorProps) {
return (

+
+## ⏬ 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](./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://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](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://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](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://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](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:
+
+- [awesome-trilium](https://github.com/Nriver/awesome-trilium) for 3rd party
+ themes, scripts, plugins and more.
+- [TriliumRocks!](https://trilium.rocks/) for tutorials, guides, and much more.
+
+## ❓Why TriliumNext?
+
+The original Trilium developer ([Zadam](https://github.com/zadam)) has
+graciously given the Trilium repository to the community project which resides
+at https://github.com/TriliumNext
+
+### ⬆️Migrating from Zadam/Trilium?
+
+There are no special migration steps to migrate from a zadam/Trilium instance to
+a TriliumNext/Trilium instance. Simply [install
+TriliumNext/Trilium](#-installation) as usual and it will use your existing
+database.
+
+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.
+
+## 💬 Discuss with us
+
+Feel free to join our official conversations. We would love to hear what
+features, suggestions, or issues you may have!
+
+- [Matrix](https://matrix.to/#/#triliumnext:matrix.org) (For synchronous
+ discussions.)
+ - The `General` Matrix room is also bridged to
+ [XMPP](xmpp:discuss@trilium.thisgreat.party?join)
+- [Github Discussions](https://github.com/TriliumNext/Trilium/discussions) (For
+ asynchronous discussions.)
+- [Github Issues](https://github.com/TriliumNext/Trilium/issues) (For bug
+ reports and feature requests.)
+
+## 🏗 Installation
+
+### Windows / MacOS
+
+Download the binary release for your platform from the [latest release
+page](https://github.com/TriliumNext/Trilium/releases/latest), unzip the package
+and run the `trilium` executable.
+
+### Linux
+
+If your distribution is listed in the table below, use your distribution's
+package.
+
+[](https://repology.org/project/triliumnext/versions)
+
+You may also download the binary release for your platform from the [latest
+release page](https://github.com/TriliumNext/Trilium/releases/latest), unzip the
+package and run the `trilium` executable.
+
+TriliumNext is also provided as a Flatpak, but not yet published on FlatHub.
+
+### Browser (any OS)
+
+If you use a server installation (see below), you can directly access the web
+interface (which is almost identical to the desktop app).
+
+Currently only the latest versions of Chrome & Firefox are supported (and
+tested).
+
+### Mobile
+
+To use TriliumNext on a mobile device, you can use a mobile web browser to
+access the mobile interface of a server installation (see below).
+
+See issue https://github.com/TriliumNext/Trilium/issues/4962 for more
+information on mobile app support.
+
+If you prefer a native Android app, you can use
+[TriliumDroid](https://apt.izzysoft.de/fdroid/index/apk/eu.fliegendewurst.triliumdroid).
+Report bugs and missing features at [their
+repository](https://github.com/FliegendeWurst/TriliumDroid). Note: It is best to
+disable automatic updates on your server installation (see below) when using
+TriliumDroid since the sync version must match between Trilium and TriliumDroid.
+
+### 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://docs.triliumnotes.org/user-guide/setup/server).
+
+
+## 💻 Contribute
+
+### Translations
+
+If you are a native speaker, help us translate Trilium by heading over to our
+[Weblate page](https://hosted.weblate.org/engage/trilium/).
+
+Here's the language coverage we have so far:
+
+[](https://hosted.weblate.org/engage/trilium/)
+
+### Code
+
+Download the repository, install dependencies using `pnpm` and then run the
+server (available at http://localhost:8080):
+```shell
+git clone https://github.com/TriliumNext/Trilium.git
+cd Trilium
+pnpm install
+pnpm run server:start
+```
+
+### Documentation
+
+Download the repository, install dependencies using `pnpm` and then run the
+environment required to edit the documentation:
+```shell
+git clone https://github.com/TriliumNext/Trilium.git
+cd Trilium
+pnpm install
+pnpm edit-docs:edit-docs
+```
+
+### Building the Executable
+Download the repository, install dependencies using `pnpm` and then build the
+desktop app for Windows:
+```shell
+git clone https://github.com/TriliumNext/Trilium.git
+cd Trilium
+pnpm install
+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).
+
+### Developer Documentation
+
+Please view the [documentation
+guide](https://github.com/TriliumNext/Trilium/blob/main/docs/Developer%20Guide/Developer%20Guide/Environment%20Setup.md)
+for details. If you have more questions, feel free to reach out via the links
+described in the "Discuss with us" section above.
+
+## 👏 Shoutouts
+
+* [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
+
+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
+
+Copyright 2017-2025 zadam, Elian Doran, and other contributors
+
+This program is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, either version 3 of the License, or (at your option) any
+later version.
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 28f1f7127..e54bed168 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -330,8 +330,8 @@ importers:
specifier: 5.2.2
version: 5.2.2
'@types/tabulator-tables':
- specifier: 6.3.0
- version: 6.3.0
+ specifier: 6.3.1
+ version: 6.3.1
copy-webpack-plugin:
specifier: 13.0.1
version: 13.0.1(webpack@5.101.3(esbuild@0.27.2))
@@ -5656,8 +5656,8 @@ packages:
'@types/supertest@6.0.3':
resolution: {integrity: sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==}
- '@types/tabulator-tables@6.3.0':
- resolution: {integrity: sha512-/mQzrThCdSQXc2lz2SUZglIG+vWQ1sb1CEiVxw9SFGKPulaj1543zrL2qABeJIKjKPxcSgmWUyDA9e8CMaI2cQ==}
+ '@types/tabulator-tables@6.3.1':
+ resolution: {integrity: sha512-qL05wGXVy0yfWcF8LCE9+9uSeUIpeKdgpm8YmOAPTjLd3FaoZziPOhVxIiLzEhLTFfOvbuwnaWDm4v4i87diRQ==}
'@types/through2@2.0.41':
resolution: {integrity: sha512-ryQ0tidWkb1O1JuYvWKyMLYEtOWDqF5mHerJzKz/gQpoAaJq2l/dsMPBF0B5BNVT34rbARYJ5/tsZwLfUi2kwQ==}
@@ -15181,8 +15181,6 @@ snapshots:
'@ckeditor/ckeditor5-ui': 47.3.0
'@ckeditor/ckeditor5-utils': 47.3.0
ckeditor5: 47.3.0
- transitivePeerDependencies:
- - supports-color
'@ckeditor/ckeditor5-block-quote@47.3.0':
dependencies:
@@ -15474,6 +15472,8 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.3.0
ckeditor5: 47.3.0
es-toolkit: 1.39.5
+ transitivePeerDependencies:
+ - supports-color
'@ckeditor/ckeditor5-editor-multi-root@47.3.0':
dependencies:
@@ -15523,6 +15523,8 @@ snapshots:
'@ckeditor/ckeditor5-core': 47.3.0
'@ckeditor/ckeditor5-engine': 47.3.0
'@ckeditor/ckeditor5-utils': 47.3.0
+ transitivePeerDependencies:
+ - supports-color
'@ckeditor/ckeditor5-essentials@47.3.0':
dependencies:
@@ -15981,6 +15983,8 @@ snapshots:
'@ckeditor/ckeditor5-ui': 47.3.0
'@ckeditor/ckeditor5-utils': 47.3.0
ckeditor5: 47.3.0
+ transitivePeerDependencies:
+ - supports-color
'@ckeditor/ckeditor5-restricted-editing@47.3.0':
dependencies:
@@ -20390,7 +20394,7 @@ snapshots:
'@types/methods': 1.1.4
'@types/superagent': 8.1.9
- '@types/tabulator-tables@6.3.0': {}
+ '@types/tabulator-tables@6.3.1': {}
'@types/through2@2.0.41':
dependencies: