diff --git a/README-ZH_CN.md b/README-ZH_CN.md
index 47d93a3da..8b2b21253 100644
--- a/README-ZH_CN.md
+++ b/README-ZH_CN.md
@@ -1,6 +1,6 @@
# Trilium Notes
-[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md)
+[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md) | [Italian](https://github.com/zadam/trilium/blob/master/README.it.md)
[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Trilium Notes 是一个层次化的笔记应用程序,专注于建立大型个人知识库。请参阅[屏幕截图](https://github.com/zadam/trilium/wiki/Screenshot-tour)以快速了解:
diff --git a/README.it.md b/README.it.md
new file mode 100644
index 000000000..8f845ca46
--- /dev/null
+++ b/README.it.md
@@ -0,0 +1,93 @@
+# Trilium Notes
+
+## Trilium è in manutenzione - vedi i dettagli in https://github.com/zadam/trilium/issues/4620
+
+Le discussioni preliminari sull'organizzazione si stanno svolgendo in [Trilium Next discussions](https://github.com/orgs/TriliumNext/discussions).
+
+[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md) | [Italian](https://github.com/zadam/trilium/blob/master/README.it.md)
+
+
+Trilium Notes è un'applicazione per appunti ad organizzazione gerarchica, studiata per la costruzione di archivi di conoscenza personali di grandi dimensioni.
+
+Vedi [fotografie](https://github.com/zadam/trilium/wiki/Screenshot-tour) per una panoramica veloce:
+
+
+
+L'Ucraina si sta difendendo dall'aggressione russa, considera [donare all'esercito ucraino o a organizzazioni umanitarie](https://standforukraine.com/).
+
+
+
+
+
+
+## 🎁 Funzionalità
+
+
+* Gli appunti possono essere organizzati in un albero di profondità arbitraria. Un singolo appunto può essere collocato in più posti nell'albero (vedi [clonazione](https://github.com/zadam/trilium/wiki/Cloning-notes))
+* Ricco editor visuale (WYSIWYG), con supporto -tra l'altro- per tabelle, immagini ed [espressioni matematiche](https://github.com/zadam/trilium/wiki/Text-notes#math-support) e con [formattazione automatica](https://github.com/zadam/trilium/wiki/Text-notes#autoformat) per markdown
+* Supporto per la modifica di [appunti con codice sorgente](https://github.com/zadam/trilium/wiki/Code-notes), con evidenziazione della sintassi
+* [Navigazione veloce](https://github.com/zadam/trilium/wiki/Note-navigation) tra gli appunti, ricerca testuale completa e [fissaggio degli appunti](https://github.com/zadam/trilium/wiki/Note-hoisting)
+* Supporto integrato ed automatico per le [revisioni degli appunti](https://github.com/zadam/trilium/wiki/Note-revisions)
+* Gli [attributi](https://github.com/zadam/trilium/wiki/Attributes) degli appunti possono essere utilizzati per l'organizzazione, per l'interrogazione e per lo scripting avanzato (prorgrammazione).
+* [Sincronizzazione](https://github.com/zadam/trilium/wiki/Synchronization) con un server di sincronizzazione auto-ospitato
+ * c'è un [servizio di terze parti per ospitare server di sincronizzazione](https://trilium.cc/paid-hosting)
+* [Condivisione](https://github.com/zadam/trilium/wiki/Sharing) (pubblicazione) di appunti sull'internet pubblico
+* Robusta [crittografia](https://github.com/zadam/trilium/wiki/Protected-notes) configurabile singolarmente per ogni appunto
+* Disegno di diagrammi con Excalidraw (tipo di appunto "canvas")
+* [Mappe relazionali](https://github.com/zadam/trilium/wiki/Relation-map) e [mappe di collegamenti](https://github.com/zadam/trilium/wiki/Link-map) per visualizzare gli appunti e le loro relazioni
+* [Scripting](https://github.com/zadam/trilium/wiki/Scripts) - vedi [Esempi avanzati](https://github.com/zadam/trilium/wiki/Advanced-showcases)
+* [API REST](https://github.com/zadam/trilium/wiki/ETAPI) per l'automazione
+* Si adatta bene sia in termini di usabilità che di prestazioni fino ad oltre 100 000 appunti
+* Interfaccia utente ottimizzata per il [mobile](https://github.com/zadam/trilium/wiki/Mobile-frontend) (smartphone e tablet)
+* [Tema Notturno](https://github.com/zadam/trilium/wiki/Themes)
+* Supporto per importazione ed esportazione da e per [Evernote](https://github.com/zadam/trilium/wiki/Evernote-import) e [Markdown import](https://github.com/zadam/trilium/wiki/Markdown)
+* [Web Clipper](https://github.com/zadam/trilium/wiki/Web-clipper) per il salvataggio facile di contenuti web
+
+
+Dai un'occhiata a [awesome-trilium](https://github.com/Nriver/awesome-trilium) per temi, script, plugin e altro di terze parti.
+
+## 🏗 Rilasci
+
+
+Trilium è fornito come applicazione desktop (Linux e Windows) o come applicazione web ospitata sul tuo server (Linux). La versione desktop per Mac OS è disponibile, ma [non è supportata](https://github.com/zadam/trilium/wiki/FAQ#mac-os-support).
+
+* Se vuoi usare Trilium sul tuo desktop, scarica il rilascio binario per la tua piattaforma dall'[ultimo rilascio](https://github.com/zadam/trilium/releases/latest), decomprimi l'archivio e avvia l'eseguibile ```trilium```.
+* Se vuoi installare Trilium su un server, segui [questa pagina](https://github.com/zadam/trilium/wiki/Server-installation).
+ * Per ora solo Chrome e Firefox sono i browser supportati (testati).
+
+Trilium è anche disponibile su Flatpak:
+
+[
](https://flathub.org/apps/details/com.github.zadam.trilium)
+
+## 📝 Documentazione
+
+[Vedi la wiki per una lista completa delle pagine di documentazione.](https://github.com/zadam/trilium/wiki/)
+
+Puoi anche leggere ["Patterns of personal knowledge base"](https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base) per avere un'ispirazione su come potresti utilizzare Trilium.
+
+## 💻 Contribuire
+
+Usa un ambiente di sviluppo basato su browser
+
+[](https://gitpod.io/#https://github.com/zadam/trilium)
+
+O clona localmente ed esegui
+```
+npm install
+npm run start-server
+```
+
+## 📢 Riconoscimenti
+
+* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - miglior editor visuale (WYSIWYG) sul mercato, squadra di sviluppo attenta e reattiva
+* [FancyTree](https://github.com/mar10/fancytree) - libreria per alberi molto ricca di funzionalità, senza pari. Trilium Notes non sarebbe lo stesso senza di essa.
+* [CodeMirror](https://github.com/codemirror/CodeMirror) - editor di codice con supporto per un'enorme quantità di linguaggi.
+* [jsPlumb](https://github.com/jsplumb/jsplumb) - libreria per la connettività visuale senza pari. Utilizzata per [mappe relazionali](https://github.com/zadam/trilium/wiki/Relation-map) e [mappe di collegamenti](https://github.com/zadam/trilium/wiki/Link-map).
+
+## 🤝 Supporto
+
+È possibile supportare Trilium attraverso Github Sponsors, [PayPal](https://paypal.me/za4am) o Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).
+
+## 🔑 Licenza
+
+Questo programma è software libero: è possibile redistribuirlo e/o modificarlo nei termini della GNU Affero General Public License come pubblicata dalla Free Software Foundation, sia la versione 3 della Licenza, o (a propria scelta) qualsiasi versione successiva.
diff --git a/README.ja.md b/README.ja.md
index 621e3e0ff..f1c2e9c66 100644
--- a/README.ja.md
+++ b/README.ja.md
@@ -1,6 +1,6 @@
# Trilium Notes
-[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md)
+[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md) | [Italian](https://github.com/zadam/trilium/blob/master/README.it.md)
Trilium Notes は、大規模な個人知識ベースの構築に焦点を当てた、階層型ノートアプリケーションです。概要は[スクリーンショット](https://github.com/zadam/trilium/wiki/Screenshot-tour)をご覧ください:
diff --git a/README.md b/README.md
index e1cb2808b..9868d1896 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,8 @@
Preliminary disccusions on the successor organization are taking place in [Trilium Next discussions](https://github.com/orgs/TriliumNext/discussions).
-[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md)
+[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md) | [Italian](https://github.com/zadam/trilium/blob/master/README.it.md)
+
Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases.
diff --git a/README.ru.md b/README.ru.md
index f79341e79..4bf087deb 100644
--- a/README.ru.md
+++ b/README.ru.md
@@ -1,6 +1,6 @@
# Trilium Notes
-[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md)
+[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md) | [Italian](https://github.com/zadam/trilium/blob/master/README.it.md)
[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Trilium Notes – это приложение для заметок с иерархической структурой, ориентированное на создание больших персональных баз знаний. Для быстрого ознакомления посмотрите [скриншот-тур](https://github.com/zadam/trilium/wiki/Screenshot-tour):
diff --git a/bin/copy-dist.ts b/bin/copy-dist.ts
new file mode 100644
index 000000000..075fe19fa
--- /dev/null
+++ b/bin/copy-dist.ts
@@ -0,0 +1,72 @@
+const fs = require("fs-extra");
+const path = require("path");
+
+const DEST_DIR = "./dist";
+const DEST_DIR_SRC = path.join(DEST_DIR, "src");
+const DEST_DIR_NODE_MODULES = path.join(DEST_DIR, "node_modules");
+
+async function copyNodeModuleFileOrFolder(source: string) {
+ const adjustedSource = source.substring(13);
+ const destination = path.join(DEST_DIR_NODE_MODULES, adjustedSource);
+
+ console.log(`Copying ${source} to ${destination}`);
+ await fs.ensureDir(path.dirname(destination));
+ await fs.copy(source, destination);
+}
+
+const copy = async () => {
+ const filesToCopy = ["config-sample.ini"];
+ for (const file of filesToCopy) {
+ console.log(`Copying ${file}`);
+ await fs.copy(file, path.join(DEST_DIR, file));
+ }
+
+ const dirsToCopy = ["images", "libraries", "db"];
+ for (const dir of dirsToCopy) {
+ console.log(`Copying ${dir}`);
+ await fs.copy(dir, path.join(DEST_DIR, dir));
+ }
+
+ const srcDirsToCopy = ["./src/public", "./src/views"];
+ for (const dir of srcDirsToCopy) {
+ console.log(`Copying ${dir}`);
+ await fs.copy(dir, path.join(DEST_DIR_SRC, path.basename(dir)));
+ }
+
+ const nodeModulesFile = [
+ "node_modules/react/umd/react.production.min.js",
+ "node_modules/react/umd/react.development.js",
+ "node_modules/react-dom/umd/react-dom.production.min.js",
+ "node_modules/react-dom/umd/react-dom.development.js",
+ "node_modules/katex/dist/katex.min.js",
+ "node_modules/katex/dist/contrib/mhchem.min.js",
+ "node_modules/katex/dist/contrib/auto-render.min.js",
+ ];
+
+ for (const file of nodeModulesFile) {
+ await copyNodeModuleFileOrFolder(file);
+ }
+
+ const nodeModulesFolder = [
+ "node_modules/@excalidraw/excalidraw/dist/",
+ "node_modules/katex/dist/",
+ "node_modules/dayjs/",
+ "node_modules/force-graph/dist/",
+ "node_modules/boxicons/css/",
+ "node_modules/boxicons/fonts/",
+ "node_modules/mermaid/dist/",
+ "node_modules/jquery/dist/",
+ "node_modules/jquery-hotkeys/",
+ "node_modules/print-this/",
+ "node_modules/split.js/dist/",
+ "node_modules/panzoom/dist/",
+ ];
+
+ for (const folder of nodeModulesFolder) {
+ await copyNodeModuleFileOrFolder(folder);
+ }
+};
+
+copy()
+ .then(() => console.log("Copying complete!"))
+ .catch((err) => console.error("Error during copy:", err));
diff --git a/electron.js b/electron.js
deleted file mode 100644
index 69f403dd8..000000000
--- a/electron.js
+++ /dev/null
@@ -1,62 +0,0 @@
-'use strict';
-
-const {app, globalShortcut, BrowserWindow} = require('electron');
-const sqlInit = require('./src/services/sql_init');
-const appIconService = require('./src/services/app_icon.js');
-const windowService = require('./src/services/window');
-const tray = require('./src/services/tray');
-
-// Adds debug features like hotkeys for triggering dev tools and reload
-require('electron-debug')();
-
-appIconService.installLocalAppIcon();
-
-require('electron-dl')({ saveAs: true });
-
-// needed for excalidraw export https://github.com/zadam/trilium/issues/4271
-app.commandLine.appendSwitch("enable-experimental-web-platform-features");
-
-// Quit when all windows are closed, except on macOS. There, it's common
-// for applications and their menu bar to stay active until the user quits
-// explicitly with Cmd + Q.
-app.on('window-all-closed', () => {
- if (process.platform !== 'darwin') {
- app.quit()
- }
-});
-
-app.on('ready', async () => {
-// app.setAppUserModelId('com.github.zadam.trilium');
-
- // if db is not initialized -> setup process
- // if db is initialized, then we need to wait until the migration process is finished
- if (sqlInit.isDbInitialized()) {
- await sqlInit.dbReady;
-
- await windowService.createMainWindow(app);
-
- if (process.platform === 'darwin') {
- app.on('activate', async () => {
- if (BrowserWindow.getAllWindows().length === 0) {
- await windowService.createMainWindow(app);
- }
- });
- }
-
- tray.createTray();
- }
- else {
- await windowService.createSetupWindow();
- }
-
- await windowService.registerGlobalShortcuts();
-});
-
-app.on('will-quit', () => {
- globalShortcut.unregisterAll();
-});
-
-// this is to disable electron warning spam in the dev console (local development only)
-process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true';
-
-require('./src/www.js');
diff --git a/electron.ts b/electron.ts
new file mode 100644
index 000000000..88ff6f56e
--- /dev/null
+++ b/electron.ts
@@ -0,0 +1,63 @@
+"use strict";
+
+import electron = require("electron");
+import sqlInit = require("./src/services/sql_init");
+import appIconService = require("./src/services/app_icon");
+import windowService = require("./src/services/window");
+import tray = require("./src/services/tray");
+
+// Adds debug features like hotkeys for triggering dev tools and reload
+require("electron-debug")();
+
+appIconService.installLocalAppIcon();
+
+require("electron-dl")({ saveAs: true });
+
+// needed for excalidraw export https://github.com/zadam/trilium/issues/4271
+electron.app.commandLine.appendSwitch(
+ "enable-experimental-web-platform-features"
+);
+
+// Quit when all windows are closed, except on macOS. There, it's common
+// for applications and their menu bar to stay active until the user quits
+// explicitly with Cmd + Q.
+electron.app.on("window-all-closed", () => {
+ if (process.platform !== "darwin") {
+ electron.app.quit();
+ }
+});
+
+electron.app.on("ready", async () => {
+ // electron.app.setAppUserModelId('com.github.zadam.trilium');
+
+ // if db is not initialized -> setup process
+ // if db is initialized, then we need to wait until the migration process is finished
+ if (sqlInit.isDbInitialized()) {
+ await sqlInit.dbReady;
+
+ await windowService.createMainWindow(electron.app);
+
+ if (process.platform === "darwin") {
+ electron.app.on("activate", async () => {
+ if (electron.BrowserWindow.getAllWindows().length === 0) {
+ await windowService.createMainWindow(electron.app);
+ }
+ });
+ }
+
+ tray.createTray();
+ } else {
+ await windowService.createSetupWindow();
+ }
+
+ await windowService.registerGlobalShortcuts();
+});
+
+electron.app.on("will-quit", () => {
+ electron.globalShortcut.unregisterAll();
+});
+
+// this is to disable electron warning spam in the dev console (local development only)
+process.env["ELECTRON_DISABLE_SECURITY_WARNINGS"] = "true";
+
+require("./src/www.js");
diff --git a/package.json b/package.json
index 3d3d94a8e..f6a5e9290 100644
--- a/package.json
+++ b/package.json
@@ -16,13 +16,13 @@
"start-server": "cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 nodemon src/www.ts",
"start-server-no-dir": "cross-env TRILIUM_SAFE_MODE=1 TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 nodemon src/www.ts",
"qstart-server": "npm run qswitch-server && TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 nodemon src/www.ts",
- "start-electron": "cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 TRILIUM_ENV=dev electron --inspect=5858 .",
+ "start-electron": "rimraf ./dist && tsc && ts-node ./bin/copy-dist.ts && cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 TRILIUM_ENV=dev electron ./dist/electron.js --inspect=5858 .",
"start-electron-no-dir": "cross-env TRILIUM_SAFE_MODE=1 TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 electron --inspect=5858 .",
"qstart-electron": "npm run qswitch-electron && TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 TRILIUM_ENV=dev electron --inspect=5858 .",
"start-test-server": "npm run qswitch-server; rm -rf ./data-test; cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data-test TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 TRILIUM_ENV=dev TRILIUM_PORT=9999 ts-node src/www.ts",
- "rebuild": "electron-rebuild",
"switch-server": "rm -rf ./node_modules/better-sqlite3 && npm install",
"switch-electron": "./node_modules/.bin/electron-rebuild",
+ "rebuild": "electron-rebuild",
"qswitch-server": "rm -rf ./node_modules/better-sqlite3/bin ; mkdir -p ./node_modules/better-sqlite3/build ; cp ./bin/better-sqlite3/linux-server-better_sqlite3.node ./node_modules/better-sqlite3/build/better_sqlite3.node",
"qswitch-electron": "rm -rf ./node_modules/better-sqlite3/bin ; mkdir -p ./node_modules/better-sqlite3/build ; cp ./bin/better-sqlite3/linux-desktop-better_sqlite3.node ./node_modules/better-sqlite3/build/better_sqlite3.node",
"build-backend-docs": "rm -rf ./docs/backend_api && ./node_modules/.bin/jsdoc -c jsdoc-conf.json -d ./docs/backend_api src/becca/entities/*.js src/services/backend_script_api.js src/services/sql.js",
diff --git a/src/etapi/etapi_utils.ts b/src/etapi/etapi_utils.ts
index bcb589325..3498a8257 100644
--- a/src/etapi/etapi_utils.ts
+++ b/src/etapi/etapi_utils.ts
@@ -17,11 +17,13 @@ class EtapiError extends Error {
code: string;
constructor(statusCode: number, code: string, message: string) {
- super();
+ super(message);
+
+ // Set the prototype explicitly.
+ Object.setPrototypeOf(this, EtapiError.prototype);
this.statusCode = statusCode;
this.code = code;
- this.message = message;
}
}
diff --git a/src/services/app_icon.ts b/src/services/app_icon.ts
index 91f85d3e9..95438b652 100644
--- a/src/services/app_icon.ts
+++ b/src/services/app_icon.ts
@@ -68,6 +68,6 @@ function getExePath() {
return path.resolve(resourceDir.ELECTRON_APP_ROOT_DIR, 'trilium');
}
-module.exports = {
+export = {
installLocalAppIcon
};
diff --git a/tsconfig.json b/tsconfig.json
index e7a4e67c4..832ac1e75 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -8,9 +8,10 @@
"noImplicitAny": true,
"resolveJsonModule": true,
"lib": ["ES2022"],
- "downlevelIteration": true
+ "downlevelIteration": true,
+ "skipLibCheck": true
},
- "include": ["./src/**/*.js", "./src/**/*.ts", "./spec/**/*.ts"],
+ "include": ["./src/**/*.js", "./src/**/*.ts", "./*.ts"],
"exclude": ["./node_modules/**/*"],
"ts-node": {
"files": true