Compare commits

...

658 Commits

Author SHA1 Message Date
Elian Doran
78c8b17e33 chore(release): turn into beta 2025-03-30 20:51:08 +03:00
Elian Doran
60becbc38c fix(build): add dprint to optional dependencies to support ARMv7 (closes #1556) 2025-03-30 18:04:09 +03:00
Elian Doran
d69ff1e3cf Merge pull request #1569 from TriliumNext/feature/fix_release
fix(release): appdmg not found
2025-03-30 17:59:48 +03:00
Elian Doran
2d3a1e9023 fix(build): flaky copy of the artifact 2025-03-30 17:43:34 +03:00
Elian Doran
7b2bbdd52a fix(release): unable to find appdmg 2025-03-30 17:23:20 +03:00
Elian Doran
93dc16de45 chore(package): update lock 2025-03-30 17:06:59 +03:00
Elian Doran
85000a2b7f Revert "fix(release): appdmg not found"
This reverts commit 095fbb7015.
2025-03-30 17:04:29 +03:00
Elian Doran
a9c3c98fa5 chore(nighly): trigger on forge config change 2025-03-30 16:54:14 +03:00
Elian Doran
fb800eb96b fix(forge): slashes in ref name breaking copying 2025-03-30 16:44:46 +03:00
Elian Doran
095fbb7015 fix(release): appdmg not found 2025-03-30 16:24:39 +03:00
Elian Doran
11dc52f0ce chore(release): prepare for 0.92.5 2025-03-30 15:32:43 +03:00
Elian Doran
e01dc5751a Merge pull request #1566 from TriliumNext/tray
Fix program crash during initial setup and the tray not showing.
2025-03-30 14:50:11 +03:00
Elian Doran
283229d597 chore(client): add .mobile-only class 2025-03-30 14:30:18 +03:00
Elian Doran
30c14297d0 feat(backend-options): add a refresh floating button 2025-03-30 14:30:18 +03:00
Elian Doran
a0d562e01b feat(backend-options): reduce padding 2025-03-30 14:30:18 +03:00
SiriusXT
10bc7a8bd6 Merge branch 'develop' into tray 2025-03-30 18:48:54 +08:00
SiriusXT
4c063251e0 Fix program crash during initial setup and the tray not showing. 2025-03-30 17:39:28 +08:00
Elian Doran
9c291e3d41 Merge pull request #1561 from TriliumNext/renovate/rollup-4.x-lockfile
chore(deps): update dependency rollup to v4.38.0
2025-03-30 12:16:05 +03:00
Elian Doran
bc4918ed5b feat(backend_log): respect user's word wrapping (closes #1496) 2025-03-30 11:59:38 +03:00
Elian Doran
fcd7df52ee Merge branch 'develop' into renovate/rollup-4.x-lockfile 2025-03-30 11:40:36 +03:00
Elian Doran
fbb010edf4 Merge pull request #1560 from TriliumNext/renovate/mind-elixir-4.x
chore(deps): update dependency mind-elixir to v4.5.0
2025-03-30 11:38:14 +03:00
renovate[bot]
66f7ba0065 chore(deps): update dependency rollup to v4.38.0 2025-03-30 02:26:39 +00:00
renovate[bot]
b9ae39a3d1 chore(deps): update dependency mind-elixir to v4.5.0 2025-03-30 02:26:30 +00:00
Elian Doran
fd53e35f6f feat(autocomplete): don't search unless length is 3 2025-03-29 22:22:51 +02:00
Elian Doran
766b0723f7 feat(autocomplete): support default icons like on client 2025-03-29 22:18:42 +02:00
Elian Doran
a9193fdcd4 feat(autocomplete): display note icon 2025-03-29 22:04:34 +02:00
Elian Doran
eb097ec1ea fix(highlights): unable to navigate to italic links (closes #1555) 2025-03-29 14:12:17 +02:00
Elian Doran
a44bf7fb49 chore(highlights): prevent crash if unable to find target element 2025-03-29 14:10:12 +02:00
Elian Doran
04a7ad8d4e fix(highlights): new italic format not displayed 2025-03-29 14:08:57 +02:00
Elian Doran
9a3f765d42 fix(import/markdown): unable to import code blocks with XML/HTML content if safe mode on (closes #1530) 2025-03-29 13:47:02 +02:00
Elian Doran
fd76f8dac9 chore(vitest): switch to JSON for workspace config
Fixes random error due to the presence of the file in `build` directory.
2025-03-29 13:40:44 +02:00
Elian Doran
0982a0e503 feat(docs): improve documentation, add icons, reorganize 2025-03-29 13:07:28 +02:00
Elian Doran
5ae6b18762 fix(docs): remove accidentally added file 2025-03-29 13:07:28 +02:00
Elian Doran
49c41850ad feat(docs): add basic Bash script for ETAPI 2025-03-29 13:07:28 +02:00
Elian Doran
644d79b1ce feat(docs): improve documentation on note map/relation map 2025-03-29 13:07:28 +02:00
Elian Doran
80cfd73cae feat(docs): document some of the technologies used 2025-03-29 13:07:28 +02:00
Elian Doran
fbfeb7d2bf feat(docs): document note source (viewing & editing) 2025-03-29 13:07:28 +02:00
Elian Doran
7be71fc6fa Merge pull request #401 from TriliumNext/feature/MFA
Feature addition: Multi-Factor Authentication
2025-03-29 13:06:00 +02:00
Jin
ed58be1578 Merge branch 'develop' into feature/MFA 2025-03-29 11:23:38 +01:00
Jin
17b4bfca39 chore: 🤖 improve instruction 2025-03-29 11:23:00 +01:00
Elian Doran
96d3d661c2 chore(docs): sync import/export 2025-03-29 11:28:59 +02:00
Elian Doran
e62137f245 fix(docs): meta for HTML documentation changing due to root notePosition 2025-03-29 11:28:31 +02:00
Elian Doran
4dd300b702 fix(docs): meta for HTML documentation changing due to isExpanded 2025-03-29 11:25:28 +02:00
Elian Doran
ce9a2a258e Merge pull request #1550 from TriliumNext/renovate/sanitize-html-2.x
chore(deps): update dependency @types/sanitize-html to v2.15.0
2025-03-29 02:56:02 +02:00
Jin
a8e37b5b92 Merge branch 'develop' into feature/MFA 2025-03-29 01:45:18 +01:00
Jin
02c4a269be feat: 🎸 upgrade db version 2025-03-29 01:44:25 +01:00
Jin
77f62b94cc refactor: 💡 refact recovery code 2025-03-29 01:40:17 +01:00
renovate[bot]
c18e56d12f chore(deps): update dependency @types/sanitize-html to v2.15.0 2025-03-29 00:39:33 +00:00
Elian Doran
d84e8c347a Merge pull request #1546 from TriliumNext/webpack
Move library loader to webpack
2025-03-29 02:38:34 +02:00
Elian Doran
c7c8af28f7 fix(editor): header formatting remaining after cut to note (closes #687) 2025-03-29 02:07:29 +02:00
Jin
2eeb376d24 refactor: 💡 fix typo and imporve code quality 2025-03-29 01:00:08 +01:00
Elian Doran
d8b9448b91 fix(editor): not being able to copy from the included note (closes #588) 2025-03-29 01:55:20 +02:00
Jin
ce66397257 Merge branch 'develop' into webpack 2025-03-29 00:52:27 +01:00
Jin
608378193f fix: 🐛 fix mark.js load error 2025-03-29 00:51:36 +01:00
Elian Doran
bd092e0119 chore(i18n): typo 2025-03-29 00:45:16 +02:00
Elian Doran
f743cfc35c fix(options/mfa): double colons in warning 2025-03-29 00:44:51 +02:00
Elian Doran
4cde9253ed style(options/mfa): use admonitions 2025-03-29 00:42:20 +02:00
Elian Doran
9c835d0f7f chore(docs): always use LF on Windows 2025-03-29 00:22:49 +02:00
Elian Doran
68e1e68cfe chore(zen): change default keyboard shortcut to F9 (closes #1372) 2025-03-29 00:22:27 +02:00
Jin
534c146542 Merge branch 'develop' into webpack 2025-03-28 23:00:59 +01:00
Jin
47a363be0f refactor: 💡 improve image zoom 2025-03-28 22:28:09 +01:00
Jin
25aa08bb4c chore: 🤖 fix lock file 2025-03-28 22:07:43 +01:00
Jin
797ed2a494 Merge branch 'develop' into feature/MFA 2025-03-28 22:04:23 +01:00
Elian Doran
df6c6647c7 chore(deps): remove leaflet from dist 2025-03-28 22:40:19 +02:00
Elian Doran
83890ba130 Merge pull request #1537 from TriliumNext/build_webpack-excalidraw-font
build: use webpack for excalidraw
2025-03-28 22:31:32 +02:00
Elian Doran
041c801065 Merge pull request #1539 from TriliumNext/renovate/node-22.x
chore(deps): update dependency @types/node to v22.13.14
2025-03-28 22:24:33 +02:00
Elian Doran
9585c6a55f fix(client): "Note not found" tooltip for some URLs 2025-03-28 22:22:42 +02:00
Elian Doran
4ac52e17da Merge pull request #1541 from TriliumNext/renovate/mime-types-3.x
fix(deps): update dependency mime-types to v3
2025-03-28 22:08:43 +02:00
Elian Doran
bf1896f4fa Merge pull request #1540 from TriliumNext/renovate/electron-35.x
chore(deps): update dependency electron to v35.1.2
2025-03-28 22:08:12 +02:00
Elian Doran
597874250a fix(electron): spacing increases when entering Chinese and digits (fixes #1327) 2025-03-28 22:07:01 +02:00
Jin
4a2c075935 chore: 🤖 remove calendar css from library_loader 2025-03-28 17:08:34 +01:00
Jin
accf245179 chore: 🤖 remove leaflet css from library_loader 2025-03-28 16:58:06 +01:00
Jin
b30035834a chore: 🤖 remove mark.js from asset 2025-03-28 16:43:11 +01:00
Jin
3dc7636910 chore: 🤖 remove wheelzoom from asset 2025-03-28 16:40:48 +01:00
Jin
2476e0b504 chore: 🤖 move mark.js to webpack 2025-03-28 16:23:06 +01:00
Jin
94bc550c67 chore: 🤖 move wheel zoom to webpack 2025-03-28 16:16:33 +01:00
Jin
121f297fcb chore: 🤖 better oauth instruction 2025-03-28 12:08:32 +01:00
Jin
b51814abeb fix: 🐛 remove oauth default config 2025-03-28 12:03:27 +01:00
Jin
cb3627ed50 chore: 🤖 better totp instruction 2025-03-28 12:01:18 +01:00
Jin
f19ec9b3c4 fix: 🐛 fix open id check error 2025-03-28 11:59:32 +01:00
Jin
aaecb43f8a fix: 🐛 fix oauth logout error 2025-03-28 04:05:00 +01:00
Jin
bde58e5836 fix: 🐛 fix login error 2025-03-28 04:01:18 +01:00
Jin
5987dedff8 Merge branch 'develop' into feature/MFA 2025-03-28 03:47:26 +01:00
Jin
2bd408cf8a feat: 🎸 better instruction 2025-03-28 03:46:58 +01:00
Jin
44c8b7d9ea feat: 🎸 improve oauth option page 2025-03-28 03:44:40 +01:00
Jin
7929aaf91a feat: 🎸 returen missing vars for oauth 2025-03-28 03:43:44 +01:00
renovate[bot]
def9bbeac7 fix(deps): update dependency mime-types to v3 2025-03-28 02:43:35 +00:00
renovate[bot]
9fe40e2ce6 chore(deps): update dependency electron to v35.1.2 2025-03-28 02:43:19 +00:00
renovate[bot]
bc76ba4149 chore(deps): update dependency @types/node to v22.13.14 2025-03-28 02:43:08 +00:00
Jin
332de4e67f feat: 🎸 add subtree translation 2025-03-28 03:42:59 +01:00
Jin
c217ccd347 feat: 🎸 remove totp from config 2025-03-28 03:05:04 +01:00
Jin
243d7d0ee9 feat: 🎸 remove totp config 2025-03-28 03:02:55 +01:00
Jin
c921982ae7 feat: 🎸 set generate totp function 2025-03-28 03:02:03 +01:00
Jin
ea7fbb154f fix: 🐛 init error with totp 2025-03-28 02:38:51 +01:00
Jin
5742d3068e feat: 🎸 move totp services to encryption logic 2025-03-28 02:15:25 +01:00
Jin
687d506ca5 refactor: 💡 rename error class 2025-03-28 01:56:49 +01:00
Jin
18a417addd feat: 🎸 add totp encryption 2025-03-28 01:53:53 +01:00
Jin
04cbe9d3d1 style: 💄 restyle 2025-03-28 01:53:32 +01:00
Jin
d4cd0e8eff feat: 🎸 restyle option page 2025-03-28 01:22:30 +01:00
Jin
d92fa82ad0 feat: 🎸 set option status 2025-03-28 01:00:58 +01:00
Jin
d42b839c32 feat: 🎸 init move mfa option 2025-03-28 00:39:59 +01:00
Panagiotis Papadopoulos
73fa06a06a deps: move react/react-dom to devDeps
these are only used for excalidraw and are bundled by webpack now
2025-03-28 00:20:00 +01:00
Panagiotis Papadopoulos
c81fb5dd14 deps: move @excalidraw to devDeps
it is bundled by webpack now
2025-03-28 00:16:30 +01:00
Panagiotis Papadopoulos
98df7bcd83 chore(excalidraw): update comment about EXCALIDRAW_ASSET_PATH 2025-03-28 00:14:04 +01:00
Panagiotis Papadopoulos
db959aa997 chore(excalidraw): update EXCALIDRAW_ASSET_PATH
used for the fonts excalidraw requires
2025-03-28 00:06:50 +01:00
Panagiotis Papadopoulos
1c49cb0569 build(webpack): fix copy-to path name
this will now end up in "src/public/app-dist/excalidraw/fonts/"

excalidraw *needs* the fonts to be in a folder called "fonts" as it appends the "EXCALIDRAW_ASSET_PATH" variable with "fonts" automatically -> therefore switch names around to fix the issue
2025-03-27 23:53:08 +01:00
Panagiotis Papadopoulos
ee2ee2c291 build(webpack): copy required excalidraw fonts 2025-03-27 23:15:47 +01:00
Panagiotis Papadopoulos
7b6f04e30d deps: add copy-webpack-plugin
to be used for copying excalidraw fonts as assets
2025-03-27 23:12:24 +01:00
Elian Doran
1a312bf01c Merge pull request #1322 from TriliumNext/chore_dprint
chore: replace prettier with dprint
2025-03-27 22:57:58 +02:00
Panagiotis Papadopoulos
e95172e2db build(scripts): replace prettier with dprint
also renaming the script from "dev:prettier" to a more "generic" term "dev:format"
2025-03-27 21:29:18 +01:00
Panagiotis Papadopoulos
cdc6ce2118 chore: remove prettier
replaced by dprint due to its configurability
2025-03-27 21:26:39 +01:00
Panagiotis Papadopoulos
f965be9f8f deps: add dprint as devDep 2025-03-27 21:24:51 +01:00
Panagiotis Papadopoulos
1c04aa9963 chore: add dprint config
add initial dprint configuration, settings partially taken from the prettier config,

still might need some finetuning
2025-03-27 21:22:07 +01:00
Panagiotis Papadopoulos
6336699618 build(server): improve "node" folder cleanup
* remove useless symlinks to non-existing files (npm, npx -> the actual file gets deleted by "rm -r $BUILD_DIR/node/lib/node_modules/npm"
=> fixes #1499
(this time fully ;-))

* remove unused corepack

* remove useless CHANGELOG.md (LICENSE and README.md should of course still remain)
2025-03-27 21:06:35 +01:00
Elian Doran
91242b6cab fix(next): regression in mica dark 2025-03-27 19:55:06 +02:00
Elian Doran
1b6ab7e7f2 fix(dropdowns): overlap with quick search results 2025-03-27 19:36:58 +02:00
Elian Doran
10f044aced Merge pull request #1436 from TriliumNext/build_copy-dist-trilium-merge
build: port copy-trilium.sh cleanup functionality to cross-platform TS
2025-03-27 19:26:34 +02:00
--global
cbf3ee9f6e fix(ci): bring back ref name in artifact (fixes #1532) 2025-03-27 19:03:44 +02:00
Adorian Doran
04a41ca5f4 style(next): add some remarks 2025-03-27 18:50:26 +02:00
Adorian Doran
63efa8ffe4 style(next): improve the window dragging functionality for the vertical toolbar layout 2025-03-27 18:46:03 +02:00
Adorian Doran
b6565c3b13 style(next): improve the window dragging functionality also for the vertical toolbar layout 2025-03-27 18:40:49 +02:00
Adorian Doran
b9c4d83223 style(next): improve the window dragging functionality for the horizontal toolbar layout 2025-03-27 18:26:21 +02:00
Adorian Doran
66cebf4ebf style(next)/scrollbars: add a remark 2025-03-27 16:12:51 +02:00
Adorian Doran
25d83752e5 style(next): refactor 2025-03-27 16:08:34 +02:00
Adorian Doran
10ea58a368 style(next)/scrollbars: restore the support for custom background color 2025-03-27 16:06:53 +02:00
Adorian Doran
4ab70fcb8a style(next): rename CSS variable 2025-03-27 15:43:33 +02:00
Adorian Doran
01004ac425 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-03-27 15:41:27 +02:00
Adorian Doran
99bdf33236 style(next): fix scrollbar appearance in code blocks 2025-03-27 15:41:24 +02:00
Elian Doran
2ce1858d40 Merge pull request #1533 from FliegendeWurst/patch-1
README.md: TriliumDroid link, documentation update
2025-03-27 15:27:41 +02:00
Arne Keller
8c4e504cd4 README.md: link to old docs 2025-03-27 14:23:55 +01:00
Arne Keller
a7d6f1e4d1 README.md: TriliumDroid link, documentation update 2025-03-27 12:50:39 +01:00
Panagiotis Papadopoulos
5a2c5d8047 Merge branch 'develop' into build_copy-dist-trilium-merge 2025-03-27 09:37:03 +01:00
Panagiotis Papadopoulos
9fe37465c7 build(electron-forge): use double quotes for the buildPath in afterPrune
attempt to fix failing Windows build in CI, which uses cmd shell, which apparently treats single apostrophes differently
2025-03-27 09:35:48 +01:00
Panagiotis Papadopoulos
6218ae6cd7 chore(docker): move exception below TODO comment 2025-03-27 09:07:29 +01:00
Panagiotis Papadopoulos
fa0358662a build(docker): add missing cleanupNodeModules removal to Dockerfile
previously forgot to add this here as well -> had it only in the Dockerfile.alpine
2025-03-27 09:06:09 +01:00
Panagiotis Papadopoulos
d5bc9841e3 build(docker): use absolute path to stay consistent 2025-03-27 09:05:17 +01:00
Panagiotis Papadopoulos
e9fa37c4ee chore(docker): remove TODO 2025-03-27 09:04:10 +01:00
Panagiotis Papadopoulos
75431ca634 build: make running of npm ci in build scripts configurable
* moved the running of npm ci from copy-dist to cleanupNodeModules
* added flag to disable it (necessary for electron-forge)
2025-03-27 00:00:41 +01:00
Elian Doran
cd5bfcf136 Merge branch 'develop' into feature/MFA 2025-03-26 22:33:15 +02:00
Elian Doran
683bf64100 Merge pull request #1528 from TriliumNext/renovate/mermaid-11.x
fix(deps): update dependency mermaid to v11.6.0
2025-03-26 22:31:42 +02:00
Adorian Doran
cdcfab1011 style(next)/scrollbars: tweak size 2025-03-26 19:47:37 +02:00
Elian Doran
b95dca71db Merge branch 'develop' into renovate/mermaid-11.x 2025-03-26 19:34:55 +02:00
Adorian Doran
733293c09a Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-03-26 19:33:13 +02:00
Adorian Doran
dcd64554eb style(next): fix Firefox scrollbar styles overriding WebKit scrollbar styles 2025-03-26 19:33:11 +02:00
Elian Doran
84d75c3ee8 Merge pull request #1487 from TriliumNext/tray
Fix tray exception when multiple windows
2025-03-26 19:32:22 +02:00
Elian Doran
51913ecccf Merge pull request #1520 from TriliumNext/renovate/electron-forge-monorepo
chore(deps): update electron-forge monorepo to v7.8.0
2025-03-26 19:16:54 +02:00
Adorian Doran
40e990d39a Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-03-26 19:15:32 +02:00
Adorian Doran
be9b19d81c style(next): improve CSS formatting 2025-03-26 19:15:29 +02:00
--global
4b1551f5ec Merge branch 'develop' of github.com:TriliumNext/Notes into develop 2025-03-26 19:11:13 +02:00
--global
fd0018677c test(i18n): add refresh button click after language change 2025-03-26 19:11:07 +02:00
Adorian Doran
4b9ea651a1 style(next): restyle Firefox scrollbars 2025-03-26 19:06:22 +02:00
--global
e85b7f5e79 chore(vscode): add playwright to recommendations 2025-03-26 18:56:28 +02:00
Adorian Doran
c2d917b926 style(next): restyle WebKit scrollbars 2025-03-26 18:53:17 +02:00
--global
0cedd697cc fix(electron): not starting on an empty DB 2025-03-26 18:41:36 +02:00
Jin
647226858d feat: 🎸 Disable MFA on electron instance 2025-03-26 11:04:04 +01:00
Jin
0741c8546f feat: 🎸 fix electron login logic 2025-03-26 10:58:34 +01:00
Jin
347c644f23 Merge branch 'develop' into feature/MFA 2025-03-26 10:48:16 +01:00
Panagiotis Papadopoulos
0b428035ae build(cleanupNodeModules): move removal of elements to its own function
also added a logging function for debugging purposes
2025-03-26 09:48:06 +01:00
Panagiotis Papadopoulos
51f2e23c2f build(cleanupNodeModules): delete .bin folder
this is only needed for executing package scripts -> which we don't do in production

fixes #1499
2025-03-26 09:28:50 +01:00
Panagiotis Papadopoulos
1528703ed9 build(cleanupNodeModules): add some minimalistic logging 2025-03-26 09:26:22 +01:00
Panagiotis Papadopoulos
1150f78b15 build(cleanupNodeModules): use path.join and basePath for extraFoldersDelete 2025-03-26 09:18:16 +01:00
Panagiotis Papadopoulos
6fe23f9a13 chore(cleanupNodeModules): remove commented out paths
extra note on mermaid: that should be packed by webpack now, so we just need to move it to devDeps and and we should be good
2025-03-26 09:15:33 +01:00
Panagiotis Papadopoulos
b457fa2e87 chore(cleanupNodeModules): rename nodeDir to nodeModulesContent 2025-03-26 09:12:22 +01:00
Panagiotis Papadopoulos
83da24b38d build(dockerignore): add cleanupNodeModules as exception 2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
57ee61938d build(copy-trilium): delete now unused script
all of its functionality has been "absorbed" by the cross-platform copy-dist and cleanupNodeModules scripts, that can be used for all of our builds now
2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
f79b925e49 build(server): use cleanupNodeModules script 2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
3e3344b329 chore(scripts): remove now unneeded electron-forge:prepare 2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
1ceaafa1e8 build: move cleanupNodeModules to its own file
this is necessary, since for Docker and electron-forge, we need to run this as an extra step after copy-dist

for electron-forge: after it is done with its own "pruning", as we otherwise would need to also take care of certain electron related pruning

for Docker: as a last step in the build stage
2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
cd8401089d build(copy-trilium): update list of useless deps paths
* image-q/demo -> doesn't exist anymore (and even if it did - previous cleanup step, would've removed this anyways)
* @excalidraw/excalidraw/dist/* -> updated to point to the dev folder
* boxicons -> only fonts and css folders are used, so remove the other ones
* jimp -> updated paths and removed non-existent path

fixing here for historical reasons, next step is to move these over to copy-dist.ts
2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
6749d8084b build(copy-dist): add further cleanupNodeModules functionality
deleting of ts and map files from node_modules folder,
adapted from copy-trilium.sh.
2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
8275f3c867 build(copy-dist): execute filterableDirs cleanup in one chain 2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
a9643174cc build(copy-dist): add further folders to list of filterableDirs
same as before, but some of the modules use singular/plural, so just check for both
2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
6260ea1532 build(copy-dist): add initial cleanupNodeModules functionality
adapted from copy-trilium.sh
2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
bee7793d32 build(copy-trilium): remove now unnecessary package.json patching
this is not needed anymore since commit 6b9d8f0d67
2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
8feb201d3d build(electron-forge): set prune to false
since we our own more "sophisticated" pruning during copy-dist, we need to set this to false, as otherwise build will fail
2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
6fb270e4f8 build(copy-dist): copy over existing node_modules
helps avoiding downloading the packages a 2nd time during our prune stage
2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
8977492981 build(copy-dist): move "pruning" to copy-dist from copy-trilium.sh 2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
1640000291 build(build-server): move "build:prepare-dist" call to build-server from copy-trilium
in preparation to get rid of the file altogether - rest of the functionality will be merged into copy-dist.ts
2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
17d5fdb4b0 build(copy-dist): get rid of manual node_module copying
this is useless at the moment, as all build processes are running "npm ci --omit=dev" anyways, i.e. they will just install everything remaining again
2025-03-26 08:12:48 +01:00
Panagiotis Papadopoulos
1e713469e7 build(server): bump to latest node v22.14.0 -> fixes EBADENGINE warning
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: 'node-abi@4.2.0',
npm warn EBADENGINE   required: { node: '>=22.12.0' },
npm warn EBADENGINE   current: { node: 'v20.18.1', npm: '10.8.2' }
npm warn EBADENGINE }
2025-03-26 08:12:22 +01:00
Panagiotis Papadopoulos
b97c28bc13 ci: bump to node v22 -> fixes EBADENGINE warning
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: 'node-abi@4.2.0',
npm warn EBADENGINE   required: { node: '>=22.12.0' },
npm warn EBADENGINE   current: { node: 'v20.18.1', npm: '10.8.2' }
npm warn EBADENGINE }
2025-03-26 08:10:04 +01:00
Elian Doran
5ec3d58f6f fix(electron): option does not exist 2025-03-26 08:30:56 +02:00
Jin
d010e6cc73 Merge branch 'develop' into feature/MFA 2025-03-26 03:56:53 +01:00
Jin
7024166fc0 feat: 🎸 Add CN translation 2025-03-26 03:55:06 +01:00
Jin
ce053323a9 feat: 🎸 Format code 2025-03-26 03:53:00 +01:00
Jin
e2ea6f96ce feat: 🎸 Add CN translation 2025-03-26 03:51:09 +01:00
Jin
4959dbf126 feat: 🎸 Improve TOTP setting page 2025-03-26 03:22:57 +01:00
renovate[bot]
e0522fcd48 fix(deps): update dependency mermaid to v11.6.0 2025-03-26 02:11:39 +00:00
Jin
979000c5c8 feat: 🎸 Fix recovery key error 2025-03-26 02:55:42 +01:00
Jin
f2a29653b2 feat: 🎸 Fix SSO login 2025-03-26 02:39:29 +01:00
Jin
d4b657e4d8 feat: 🎸 Fix import naming 2025-03-26 02:04:24 +01:00
Jin
4762287d61 feat: 🎸 Remove redundant func 2025-03-26 01:58:54 +01:00
Jin
886e63f128 feat: 🎸 Add SSO login button 2025-03-26 01:48:42 +01:00
Jin
a30695b9fb feat: 🎸 Remove redundant check auth 2025-03-26 01:36:48 +01:00
Jin
e957a17f1c feat: 🎸 Seperate auth check 2025-03-26 00:50:37 +01:00
Jin
083ee5d23b feat: 🎸 Fix TOTP not load correctly 2025-03-26 00:42:19 +01:00
Jin
8f157e04d4 feat: 🎸 Show correct login error to user 2025-03-26 00:13:56 +01:00
Jin
c1ed471403 feat: 🎸 Ask user to login if any MFA configs are changed 2025-03-26 00:04:55 +01:00
Jin
c2a6d517f0 feat: 🎸 Better naming for vars 2025-03-25 23:53:49 +01:00
Jin
1afccb4129 feat: 🎸 Fix app start error with MFA configs 2025-03-25 23:14:25 +01:00
Jin
ae794a562f feat: 🎸 Use config.ini configure 2025-03-25 22:44:59 +01:00
Jin
3fa89b2eba feat: 🎸 Remove unuse gitignore file 2025-03-25 22:32:52 +01:00
Jin
924044ae52 feat: 🎸 Remove dotenv dep 2025-03-25 22:31:07 +01:00
Jin
94cd54f17e feat: 🎸 Use ini file to configure MFA 2025-03-25 22:30:14 +01:00
Jin
8d7339b50a feat: 🎸 Use i18n for text, remove unused vars 2025-03-25 21:00:32 +01:00
Elian Doran
5148ce64ae chore(i18n): translate missing Romanian messages 2025-03-25 21:51:40 +02:00
Elian Doran
03fd34eeb0 feat(settings/i18n): dedicated restart button 2025-03-25 21:48:02 +02:00
Elian Doran
e408cc5b10 feat(settings/i18n): hide formatting locale on non-electron 2025-03-25 21:40:35 +02:00
Elian Doran
f0b4acd15a style(settings): present i18n settings in a different fahsion 2025-03-25 21:23:32 +02:00
Elian Doran
90794fed88 fix(electron): wrong value for --lang 2025-03-25 20:26:21 +02:00
Elian Doran
ab58671625 feat(options): restart when setting locale 2025-03-25 20:15:39 +02:00
Elian Doran
a5a7a30cd5 feat(electron): respect formatting locale 2025-03-25 20:10:19 +02:00
Elian Doran
45208c8039 chore(i18n): define electron locales for all the supported languages 2025-03-25 19:59:05 +02:00
Elian Doran
b923a23d95 feat(settings): make the formatting locale value adjustable 2025-03-25 19:56:07 +02:00
Elian Doran
c4559749f1 feat(settings): display option to adjust formatting locale 2025-03-25 19:48:07 +02:00
Elian Doran
73fc7304c7 Merge branch 'develop' into renovate/electron-forge-monorepo 2025-03-25 19:08:50 +02:00
Elian Doran
90ab31329e Merge pull request #1507 from TriliumNext/feature/windows_signing_v3
Windows Signing
2025-03-25 17:51:12 +02:00
Elian Doran
ec7b645d36 Merge pull request #1516 from TriliumNext/renovate/node-22.x
chore(deps): update dependency @types/node to v22.13.13
2025-03-25 11:53:07 +02:00
Elian Doran
3dbce19301 Merge pull request #1519 from TriliumNext/renovate/typescript-eslint-monorepo
chore(deps): update dependency typescript-eslint to v8.28.0
2025-03-25 11:52:52 +02:00
renovate[bot]
4aa834b23a chore(deps): update dependency @types/node to v22.13.13 2025-03-25 08:51:39 +00:00
Elian Doran
efb0bf9e21 Merge branch 'develop' into renovate/typescript-eslint-monorepo 2025-03-25 10:50:24 +02:00
Elian Doran
19287f6474 Merge pull request #1517 from TriliumNext/renovate/react-monorepo
chore(deps): update dependency @types/react to v18.3.20
2025-03-25 10:49:45 +02:00
Elian Doran
9506d0774e Merge pull request #1518 from TriliumNext/renovate/supertest-6.x
chore(deps): update dependency @types/supertest to v6.0.3
2025-03-25 10:49:31 +02:00
Elian Doran
269cfc4689 feat(ci): trigger on renovate electron forge 2025-03-25 10:48:19 +02:00
Elian Doran
d0549ebdf9 Merge branch 'develop' into feature/windows_signing_v3 2025-03-25 10:40:48 +02:00
renovate[bot]
9b96cb61cc chore(deps): update electron-forge monorepo to v7.8.0 2025-03-25 02:59:03 +00:00
renovate[bot]
220bcbd12c chore(deps): update dependency typescript-eslint to v8.28.0 2025-03-25 02:58:48 +00:00
renovate[bot]
042172cd53 chore(deps): update dependency @types/supertest to v6.0.3 2025-03-25 02:58:33 +00:00
renovate[bot]
19389e4ea0 chore(deps): update dependency @types/react to v18.3.20 2025-03-25 02:58:22 +00:00
Elian Doran
bb1143e582 feat(note_icon): disable in note source (closes #1377) 2025-03-24 22:57:56 +02:00
Elian Doran
4ac57c6b46 fix(client): note icon not hiding after switching notes (closes #964) 2025-03-24 19:42:23 +02:00
Elian Doran
06e1b0f720 fix(client): tooltip overlapping with CKEditor pane (closes #844) 2025-03-24 19:36:42 +02:00
Elian Doran
0686c81a81 Merge pull request #1509 from TriliumNext/renovate/leaflet-1.x
chore(deps): update dependency @types/leaflet to v1.9.17
2025-03-24 19:25:30 +02:00
Elian Doran
76550b761e Merge pull request #1510 from TriliumNext/renovate/rollup-4.x-lockfile
chore(deps): update dependency rollup to v4.37.0
2025-03-24 19:25:08 +02:00
Elian Doran
9108ea9b8a fix(electron): disable the creation of desktop icon at runtime (closes #1488) 2025-03-24 19:21:04 +02:00
Elian Doran
b0e584924b fix(eslint): disable linting of TypeScript due to types (closes #1503) 2025-03-24 19:17:54 +02:00
Adorian Doran
2c694fe5d7 style(next): remove useless CSS code 2025-03-24 19:13:28 +02:00
Elian Doran
a7d6bf1bd8 feat(forge): match name for artifacts 2025-03-24 19:10:29 +02:00
Elian Doran
4108f7f353 chore(forge): ignore certain artifacts 2025-03-24 19:04:38 +02:00
Adorian Doran
2e15c926c5 style(next)/floating buttons/show table of contents: fix the rounded corners being placed on the wrong side 2025-03-24 18:42:08 +02:00
Adorian Doran
7a2eb81a81 style(next)/floating buttons: make sure the container will have a consistent height 2025-03-24 18:19:28 +02:00
Elian Doran
6f26f4d798 fix(forge): allow local building by ignoring the signing options 2025-03-24 17:53:04 +02:00
Elian Doran
9aef24eecc chore(ci): remove unnecessary extension input 2025-03-24 17:52:01 +02:00
Elian Doran
3e14ffe1e7 fix(test): flaky test due to concurrency 2025-03-24 17:42:38 +02:00
Adorian Doran
e0007f7578 style(next)/floating buttons/backlink counter: fix rounded corners on hover 2025-03-24 17:34:33 +02:00
Elian Doran
04a8bb94b6 fix(ci): wrong runner for signing 2025-03-24 17:32:14 +02:00
Elian Doran
c25d42cf5d chore(ci): solve issues after review 2025-03-24 17:30:37 +02:00
Adorian Doran
3159b19c46 style(next)/floating buttons/backlink counter: improve the appearance of the dropdown panel 2025-03-24 17:30:35 +02:00
Elian Doran
9f3fee2d06 chore(ci): remove now redundant input 2025-03-24 17:15:46 +02:00
Elian Doran
2045865df2 chore(ci): add back all platforms 2025-03-24 17:14:22 +02:00
Elian Doran
3acb5dad30 refactor(ci): remove redundant main workflow 2025-03-24 17:13:08 +02:00
Elian Doran
6a2818cea6 chore(ci): define forge_platform everywhere 2025-03-24 17:12:11 +02:00
Elian Doran
d942daea94 chore(ci): customize shell per platform 2025-03-24 17:10:19 +02:00
Adorian Doran
283b8e9bc8 style(next)/floating buttons/backlink counter: fix the dropdown not showing up 2025-03-24 17:05:09 +02:00
Elian Doran
9aaada3f6e refactor(forge): deduplicate windows signing configuration 2025-03-24 17:04:22 +02:00
Adorian Doran
8cc7d02f36 client: add a CSS class to facilitate identifying visible widgets 2025-03-24 17:00:52 +02:00
Elian Doran
34043a8a70 feat(signing): use environment variables for the executable path 2025-03-24 17:00:37 +02:00
Elian Doran
3413c5e401 fix(nightly): double .zip in name 2025-03-24 16:55:47 +02:00
Elian Doran
d4e8d9e942 fix(docker): missing sign windows script 2025-03-24 16:55:39 +02:00
Elian Doran
308632ea51 chore(ci): re-enable Windows signing logs 2025-03-24 13:30:37 +02:00
Elian Doran
18a5a55384 chore(ci): remove debug logs 2025-03-24 12:42:01 +02:00
Elian Doran
d5a8387c06 Revert "chore(ci): try to use basic sign tool config"
This reverts commit 53860c4885.
2025-03-24 12:41:38 +02:00
Elian Doran
53860c4885 chore(ci): try to use basic sign tool config 2025-03-24 12:15:15 +02:00
Elian Doran
6f54ac7446 chore(ci): change signing log 2025-03-24 12:05:46 +02:00
Elian Doran
10d8cd95a6 chore(ci): enable windows installer logs 2025-03-24 12:05:34 +02:00
Elian Doran
58e9c7e389 feat(ci): pass signing to squirrel 2025-03-24 11:21:31 +02:00
Elian Doran
bfdb3e2add fix(ci): double trigger for nightly 2025-03-24 09:25:19 +02:00
Elian Doran
ad8b5c7c9d fix(ci): path for hook module script 2025-03-24 08:59:46 +02:00
renovate[bot]
728d2ccfaf chore(deps): update dependency rollup to v4.37.0 2025-03-24 01:55:36 +00:00
renovate[bot]
cb7de2430d chore(deps): update dependency @types/leaflet to v1.9.17 2025-03-24 01:55:27 +00:00
Elian Doran
40f4fdab47 feat(ci): set up signing hook 2025-03-23 23:22:22 +02:00
Elian Doran
ad0f844681 chore(ci): use signing runner 2025-03-23 23:20:13 +02:00
Elian Doran
dd26762b1f feat(ci): upload test artifacts for nightly build 2025-03-23 23:17:54 +02:00
Elian Doran
5d2ea4337c fix(ci): use right directory for artifact gathering 2025-03-23 23:08:02 +02:00
Elian Doran
fae9a1f796 chore(ci): use electron-forge hook for gathering artifacts 2025-03-23 23:06:41 +02:00
Elian Doran
a709f68af9 chore(ci): set up node modules 2025-03-23 22:47:59 +02:00
Elian Doran
8e2a95b5c4 chore(ci): use different way of specifying app dir pt. 2 2025-03-23 22:41:26 +02:00
Elian Doran
b4dc493a5f chore(ci): use different way of specifying app dir 2025-03-23 22:12:31 +02:00
Elian Doran
ab927ad885 chore(ci): set up npm ci again 2025-03-23 21:55:48 +02:00
Elian Doran
d128e9df25 chore(ci): run with debug 2025-03-23 21:48:40 +02:00
Elian Doran
9358f90b48 chore(ci): revert change 2025-03-23 21:41:27 +02:00
Elian Doran
a13c9790bd chore(ci): try running npm i at build step 2025-03-23 21:35:11 +02:00
Elian Doran
c477e728ea chore(ci): define forge platform at workflow level 2025-03-23 21:14:51 +02:00
Elian Doran
98013bc725 chore(ci): use cmd 2025-03-23 21:10:55 +02:00
Elian Doran
c50a67f36b chore(ci): remove server build temporarily 2025-03-23 21:02:37 +02:00
Elian Doran
d77b3a07e2 chore(ci): remove unnecessary shell 2025-03-23 21:02:16 +02:00
Elian Doran
89efc55d52 chore(ci): trigger windows only for now 2025-03-23 21:00:37 +02:00
Elian Doran
6aee38337e fix(mobile): width on tablet view 2025-03-23 20:03:24 +02:00
Elian Doran
6312bd8817 Merge pull request #1384 from TriliumNext/chore_lint-share
chore: fix lint issues in `src/share`
2025-03-23 13:20:50 +02:00
Elian Doran
8f25d4c810 Merge pull request #1500 from TriliumNext/revert-1495-renovate/apple-actions-import-codesign-certs-4.x
Revert "chore(deps): update apple-actions/import-codesign-certs action to v4"
2025-03-23 12:39:40 +02:00
Elian Doran
3173062f48 Revert "chore(deps): update apple-actions/import-codesign-certs action to v4" 2025-03-23 12:29:34 +02:00
Elian Doran
f341bb3547 feat(ci): trigger nightly without publish on build-electron change 2025-03-23 12:29:13 +02:00
Elian Doran
d52ca626e9 Merge branch 'develop' into chore_lint-share 2025-03-23 12:13:22 +02:00
Elian Doran
27875c4622 fix(e2e): broken after change in Mermaid 2025-03-23 12:10:11 +02:00
Elian Doran
613a7d72ad Merge pull request #1480 from jshprentz/develop
Add {isoMonth} month pattern to day notes
2025-03-23 09:53:40 +02:00
Elian Doran
f815420d1f Merge pull request #1493 from TriliumNext/renovate/eslint-monorepo
chore(deps): update eslint monorepo to v9.23.0
2025-03-23 09:31:10 +02:00
Elian Doran
0994e33933 Merge pull request #1494 from TriliumNext/renovate/eslint-linter-browserify-9.x
fix(deps): update dependency eslint-linter-browserify to v9.23.0
2025-03-23 09:29:07 +02:00
Elian Doran
be2b8d2080 Merge pull request #1495 from TriliumNext/renovate/apple-actions-import-codesign-certs-4.x
chore(deps): update apple-actions/import-codesign-certs action to v4
2025-03-23 09:28:28 +02:00
SiriusXT
87c70cb46e Fixed focusing on old windows when opening new windows from tray 2025-03-23 10:44:01 +08:00
Elian Doran
4af586e237 Merge branch 'develop' into renovate/eslint-monorepo 2025-03-23 00:28:03 +02:00
Elian Doran
d2406a7574 Merge branch 'develop' into renovate/eslint-linter-browserify-9.x 2025-03-23 00:27:51 +02:00
Elian Doran
25c66e7c57 Merge branch 'develop' into renovate/apple-actions-import-codesign-certs-4.x 2025-03-23 00:27:37 +02:00
Elian Doran
0313b4b9c9 Merge pull request #1492 from TriliumNext/renovate/node-22.x
chore(deps): update dependency @types/node to v22.13.11
2025-03-23 00:27:15 +02:00
Elian Doran
f5a4acc097 Merge branch 'develop' into tray 2025-03-22 19:00:06 +02:00
Elian Doran
bc41deea14 Merge branch 'develop' into renovate/node-22.x 2025-03-22 18:59:48 +02:00
Elian Doran
c97f6da615 Merge pull request #1498 from hasecilu/i18n/Spanish
chore(i18n): update Spanish translation
2025-03-22 18:43:32 +02:00
hasecilu
81e250f5c5 chore(i18n): update Spanish translation 2025-03-22 09:56:22 -06:00
Jin
f42ecb2e83 Merge branch 'develop' into feature/MFA 2025-03-22 15:56:16 +01:00
Jin
e3fb871e4f feat: 🎸 Reformat MFA option page 2025-03-22 15:55:14 +01:00
Elian Doran
ccb98d69fa fix(mindmap): pane resizer not always working 2025-03-22 16:47:01 +02:00
Elian Doran
ab4e9db864 feat(mindmap): add PNG export 2025-03-22 16:35:07 +02:00
Elian Doran
67bfeda3d9 chore(svg_export): change icon 2025-03-22 16:33:00 +02:00
Elian Doran
7cc8dd082d feat(mermaid): enable export as PNG (closes #536) 2025-03-22 16:30:19 +02:00
Jin
717ad3b97d feat: 🎸 Port MFA to ts 2025-03-22 14:56:17 +01:00
Elian Doran
047c4dc4ca fix(mermaid): not scrolling up properly (closes #282) 2025-03-22 15:55:55 +02:00
Elian Doran
9e75c32ded fix(mermaid): enforce vertical layout on mobile 2025-03-22 15:51:21 +02:00
Elian Doran
5282f9f0bf feat(mermaid): set right mime type 2025-03-22 15:48:03 +02:00
Elian Doran
858ad91708 feat(import/single): mermaid with .mmd extension 2025-03-22 15:45:36 +02:00
Jin
54a5f8164a feat: 🎸 Fix option defintions 2025-03-22 14:43:32 +01:00
Elian Doran
3dae771e90 feat(import/single): mermaid with .mermaid extension 2025-03-22 15:41:56 +02:00
Jin
c3d3ab4330 Merge branch 'develop' into feature/MFA 2025-03-22 14:38:22 +01:00
Jin
9d49546bc9 feat: 🎸 Fix ts compile error 2025-03-22 14:35:37 +01:00
Elian Doran
16cbd2f793 feat(export/single): mermaid with right extension and MIME 2025-03-22 15:22:55 +02:00
Elian Doran
6ab820f172 refactor(export/single): make note type mapping testable 2025-03-22 15:20:58 +02:00
Elian Doran
60d3bafc8e fix(types): build errors due to CodeMirror opts 2025-03-22 15:04:31 +02:00
Elian Doran
7c9a7c9ff6 refactor(mermaid): move mermaid config to service 2025-03-22 15:02:04 +02:00
Elian Doran
1463411ad1 refactor(mermaid): stop using deprecated APIs 2025-03-22 14:57:11 +02:00
Elian Doran
26fa1ec420 fix(text/mermaid): not rendering due to webpack change 2025-03-22 14:51:13 +02:00
Elian Doran
985b1b7fce chore(mermaid): remove redundant message 2025-03-22 14:42:07 +02:00
Elian Doran
87209285df feat(mermaid): use admonition style for error messages 2025-03-22 14:39:43 +02:00
Elian Doran
5bea0680fb style(mermaid): preserve whitespace in error messages 2025-03-22 14:36:05 +02:00
Elian Doran
5a72d66321 feat(mermaid): recenter even when under error 2025-03-22 14:34:42 +02:00
Elian Doran
82cb31da53 style(mermaid): vertical layout for errors 2025-03-22 14:15:05 +02:00
Elian Doran
72c024fc26 fix(mermaid): toggle read-only for protected note 2025-03-22 14:12:24 +02:00
Elian Doran
b777e916c4 feat(mermaid): hide layout switcher if in readonly mode 2025-03-22 14:10:38 +02:00
Elian Doran
3bbb2c3e80 feat(mermaid): save SVG attachment only when needed 2025-03-22 13:56:29 +02:00
Jin
c8164c81be feat: 🎸 fix recovery_codes error 2025-03-22 12:47:49 +01:00
Jin
b320553d18 feat: 🎸 fix open_id error 2025-03-22 12:46:59 +01:00
Jin
0871d16fbc feat: 🎸 remove conflict code 2025-03-22 12:41:22 +01:00
Elian Doran
fd46cd7529 feat(mermaid): custom zoom buttons 2025-03-22 13:36:11 +02:00
Jin
fdc10d0120 feat: 🎸 fix ts error 2025-03-22 12:35:37 +01:00
Jin
8df1e3263b Merge branch 'develop' into feature/MFA 2025-03-22 12:35:00 +01:00
Elian Doran
77fbeb4351 refactor(note_map): extract floating button style 2025-03-22 13:06:00 +02:00
Elian Doran
68b3c06c95 feat(mermaid): reintroduce editability basic widget 2025-03-22 12:58:36 +02:00
Elian Doran
2bbd9a4362 fix(mermaid): read-only button shown in view source 2025-03-22 12:57:32 +02:00
Elian Doran
831cd19d0b refactor(client): implement read-only toggle floating button 2025-03-22 12:55:30 +02:00
Elian Doran
cd6ef4d3ab refactor(client): move edit button to floating buttons dir 2025-03-22 12:32:06 +02:00
Elian Doran
8996a56680 feat(mermaid): support readonly mode 2025-03-22 12:23:50 +02:00
Elian Doran
ef9bec9dd4 feat(mermaid): custom title for switch layout button 2025-03-22 10:48:12 +02:00
Elian Doran
b54603b7d7 feat(mermaid): change icon based on new layout 2025-03-22 10:43:24 +02:00
Elian Doran
afa865765b fix(mermaid): split on vertical layout 2025-03-22 10:36:54 +02:00
Elian Doran
4860594758 feat(mermaid): react to layout change immediately 2025-03-22 10:34:22 +02:00
Elian Doran
cf874b5ee8 feat(mermaid): add basic support for vertical layout 2025-03-22 10:27:42 +02:00
renovate[bot]
007817bbdb chore(deps): update apple-actions/import-codesign-certs action to v4 2025-03-22 01:59:15 +00:00
renovate[bot]
88e0aec3d6 fix(deps): update dependency eslint-linter-browserify to v9.23.0 2025-03-22 01:59:08 +00:00
renovate[bot]
cc9b0987b2 chore(deps): update eslint monorepo to v9.23.0 2025-03-22 01:58:58 +00:00
renovate[bot]
e8242e87fb chore(deps): update dependency @types/node to v22.13.11 2025-03-22 01:58:47 +00:00
Elian Doran
91dca2df35 feat(mermaid): disable line wrapping by default 2025-03-22 02:36:47 +02:00
Elian Doran
acf6d9dc4f refactor(split_editor): allow different attachment name 2025-03-22 02:21:24 +02:00
Elian Doran
98e4d563ad chore(mermaid): remove old widget 2025-03-22 02:15:09 +02:00
Elian Doran
373c0799fe chore(mermaid): disable linter for now 2025-03-22 02:15:09 +02:00
Elian Doran
9985e9b623 feat(mermaid): add visual indicator for preview on error 2025-03-22 02:15:09 +02:00
Elian Doran
f42a89a548 feat(mermaid): add an error display continer 2025-03-22 02:15:09 +02:00
Elian Doran
d4cd550b7a feat(linter/mermaid): improve parsing of messages 2025-03-22 02:15:09 +02:00
Elian Doran
8b08e67fdc feat(linter/mermaid): better handling of zero position 2025-03-22 02:15:09 +02:00
Elian Doran
5d8ac3b9f7 feat(test): add test for mermaid linter 2025-03-22 02:15:09 +02:00
Elian Doran
44db1545a1 feat(mermaid): start implementing a basic linter 2025-03-22 02:15:09 +02:00
Elian Doran
c416fca88a fix(mermaid): bring back export as SVG 2025-03-22 02:15:09 +02:00
Elian Doran
1fb2b5341d fix(mermaid): saving of attachment 2025-03-22 02:15:09 +02:00
Elian Doran
b8a560354f refactor(mermaid): recenter on new note 2025-03-22 02:15:09 +02:00
Elian Doran
28c51cb38a refactor(client): use webpack for mermaid 2025-03-22 02:15:09 +02:00
Elian Doran
f4d5b9fc29 feat(mermaid): swap preview and content 2025-03-22 02:15:09 +02:00
Elian Doran
8cab2aec0f fix(mermaid): bring back ELK rendering 2025-03-22 02:15:09 +02:00
Elian Doran
2b19675d1a feat(mermaid): smoother split drag 2025-03-22 02:15:09 +02:00
Elian Doran
ae18b4b634 fix(mermaid): bring back auto resize on drag 2025-03-22 02:15:09 +02:00
Elian Doran
cbc6efdad2 fix(mermaid): bring back pan/zoom 2025-03-22 02:15:09 +02:00
Elian Doran
e0a8b64b4d fix(mermaid): refresh when editing 2025-03-22 02:15:09 +02:00
Elian Doran
67ab91267d fix(mermaid): bring back rendering 2025-03-22 02:15:09 +02:00
Elian Doran
8952ff512f feat(split_editor): make the two panes resizable 2025-03-22 02:15:09 +02:00
Elian Doran
395d76a156 feat(mermaid): basic horizontal layout 2025-03-22 02:15:09 +02:00
Elian Doran
56da5f7761 refactor(client/ts): start implementing experimental split type view for mermaid 2025-03-22 02:15:09 +02:00
Elian Doran
7a16774cdc feat(mermaid): make diagram full width for pan/zoom purposes 2025-03-22 02:15:09 +02:00
Adorian Doran
592a7fe771 style(next)/floating buttons: update the highlight animation 2025-03-22 01:28:53 +02:00
Adorian Doran
4292d67b95 style(next)/floating buttons: tweak 2025-03-22 01:08:57 +02:00
Adorian Doran
44419b7cb5 style/floating buttons: change some icons 2025-03-22 01:08:30 +02:00
Adorian Doran
eab644248b style(next): use the new floating buttons style for the geo map notes as well 2025-03-22 00:04:02 +02:00
Adorian Doran
1299e0c855 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-03-21 20:21:46 +02:00
Adorian Doran
058983e98d style(next)/floating buttons: tweak 2025-03-21 20:21:44 +02:00
Elian Doran
772d07a60f Merge pull request #1466 from TriliumNext/feature/port_ts
client: port ts
2025-03-21 18:49:52 +02:00
Elian Doran
eab10acc98 Merge branch 'develop' into feature/port_ts 2025-03-21 18:39:33 +02:00
Elian Doran
7008acf511 chore(client/ts): remove check_ts_progress script 2025-03-21 18:16:37 +02:00
Elian Doran
c2a7b92660 chore(client/ts): port desktop_layout 2025-03-21 18:14:37 +02:00
Elian Doran
8e3a75ad57 chore(client/ts): reduce log level for syntax highlight widget 2025-03-21 17:48:54 +02:00
Elian Doran
b876f98d69 fix(client/ts): fix rest of build errors 2025-03-21 17:39:18 +02:00
Elian Doran
1ab87be0e6 chore(client/ts): fix errors in editable_text 2025-03-21 17:34:39 +02:00
Elian Doran
ebbf29b1a5 chore(client/ts): port syntax_highlight 2025-03-21 15:50:58 +02:00
Elian Doran
08df7e6484 Merge pull request #1481 from TriliumNext/renovate/electron-35.x
chore(deps): update dependency electron to v35.0.3
2025-03-21 13:43:30 +02:00
Elian Doran
7277c10f38 Merge pull request #1482 from TriliumNext/renovate/typedoc-0.x
chore(deps): update dependency typedoc to v0.28.1
2025-03-21 13:43:06 +02:00
Elian Doran
6569a72bc4 Merge pull request #1483 from TriliumNext/renovate/codemirror-5.x
fix(deps): update dependency codemirror to v5.65.19
2025-03-21 13:42:49 +02:00
Elian Doran
cb630337ca Merge pull request #1484 from TriliumNext/renovate/force-graph-1.x
fix(deps): update dependency force-graph to v1.49.5
2025-03-21 13:42:24 +02:00
Elian Doran
60d5497a6c Merge pull request #1485 from TriliumNext/renovate/multer-1.x
fix(deps): update dependency multer to v1.4.5-lts.2
2025-03-21 13:41:48 +02:00
Elian Doran
98d3b54c5e Merge pull request #1486 from TriliumNext/renovate/supertest-7.x
chore(deps): update dependency supertest to v7.1.0
2025-03-21 13:41:11 +02:00
SiriusXT
da59dd2ece Add Chinese translation 2025-03-21 13:56:21 +08:00
SiriusXT
21b17889ac Merge branch 'develop' into tray 2025-03-21 11:12:03 +08:00
SiriusXT
be2064fbf0 Fix tray exception when multiple windows 2025-03-21 11:08:33 +08:00
renovate[bot]
90cdb5d641 chore(deps): update dependency supertest to v7.1.0 2025-03-21 02:40:58 +00:00
renovate[bot]
0e8cd3b4ba fix(deps): update dependency multer to v1.4.5-lts.2 2025-03-21 02:40:48 +00:00
renovate[bot]
1b5d665fbc fix(deps): update dependency force-graph to v1.49.5 2025-03-21 02:40:38 +00:00
renovate[bot]
8755c84dea fix(deps): update dependency codemirror to v5.65.19 2025-03-21 02:40:27 +00:00
renovate[bot]
f9878962b8 chore(deps): update dependency typedoc to v0.28.1 2025-03-21 02:40:17 +00:00
renovate[bot]
cf70dd0b4f chore(deps): update dependency electron to v35.0.3 2025-03-21 02:40:05 +00:00
Adorian Doran
6d82905ad4 style(next)/floating buttons: tweak 2025-03-21 04:12:12 +02:00
Adorian Doran
99bd803d81 style(next)/floating buttons: tweak the separator color 2025-03-21 03:40:07 +02:00
Adorian Doran
6b71efbfd3 style(next): restyle the floating buttons 2025-03-21 03:17:43 +02:00
Joel Shprentz
c1e8542f74 Correct placeholder name in documentation 2025-03-21 00:59:45 +00:00
Joel Shprentz
5f26a503af In month note title patterns, replace {isoMonth} with e.g. "2025-03" for March 2025. 2025-03-20 22:59:20 +00:00
Elian Doran
5b82b750dc chore(client/ts): port editable_text 2025-03-20 23:42:32 +02:00
Elian Doran
1f69259a93 chore(client/ts): port abstract_text_type_widget 2025-03-20 23:09:06 +02:00
Adorian Doran
7202afab8e style(next)/options: add a gap between consecutive buttons 2025-03-20 22:22:39 +02:00
Elian Doran
b44bb4053c refactor(deps): use webpack for jsplumb & panzoom 2025-03-20 21:51:03 +02:00
Elian Doran
3047957239 chore(client/ts): port type_widgets/relation_map 2025-03-20 21:07:10 +02:00
Adorian Doran
4cb866c0e6 client/options/sync: reorder the input fields 2025-03-20 19:59:13 +02:00
Adorian Doran
480292dc01 style(next)/options/appearance/fonts: refactor input groups 2025-03-20 19:02:46 +02:00
Adorian Doran
b705e24a97 style(next): tweak number input groups 2025-03-20 18:58:19 +02:00
Elian Doran
e682f01c47 chore(client/ts): port promoted_attributes 2025-03-20 18:39:04 +02:00
Elian Doran
c27d5afdf2 chore(client/ts): port inherited_attribute_list 2025-03-20 18:28:37 +02:00
Elian Doran
bd06d1d7b2 chore(client/ts): port image_properties 2025-03-20 18:25:17 +02:00
Adorian Doran
861f1efa5b Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-03-20 18:22:44 +02:00
Elian Doran
a2b6bb7ecf chore(client/ts): port file_properties 2025-03-20 18:22:42 +02:00
Adorian Doran
0086d645ef client/options/other/snapshot limit: specify the measurement unit inside of the input field 2025-03-20 18:22:35 +02:00
Elian Doran
af0db5d508 style(next): fix regression in horizontal mica 2025-03-20 18:17:15 +02:00
Adorian Doran
113b42f32d Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-03-20 18:04:39 +02:00
Adorian Doran
e8a745c11a client/options/sync/timeout: specify the measurement unit inside of the input field 2025-03-20 18:04:36 +02:00
Elian Doran
947dea5e3a Merge pull request #1343 from TriliumNext/renovate/electron-35.x
chore(deps): update dependency electron to v35
2025-03-20 18:03:11 +02:00
Elian Doran
48e9e30efe Merge branch 'feature/port_ts' of ssh://github.com/TriliumNext/Notes into feature/port_ts 2025-03-20 17:57:16 +02:00
Adorian Doran
5e6fc5b183 client/options/images/JPEG quality: specify the measurement unit inside of the input field 2025-03-20 17:55:22 +02:00
Adorian Doran
772b69eebe client/options/images/max dimensions: specify the measurement unit inside of the input field 2025-03-20 17:53:07 +02:00
Adorian Doran
4f3bc20bac client/options/code notes/automatic read-only size: specify the measurement unit inside of the input field 2025-03-20 17:48:40 +02:00
Adorian Doran
65ee564518 client/options/text notes/automatic read-only size: specify the measurement unit inside of the input field 2025-03-20 17:45:22 +02:00
Adorian Doran
de7b7e3d8f client/options/text notes/table of contents: specify the measurement unit inside of the input field 2025-03-20 17:41:30 +02:00
Adorian Doran
bec15fb9c3 client/options/appearance/max content width: specify the measurement unit inside of the input field 2025-03-20 17:34:58 +02:00
Adorian Doran
7288757777 style(next)/options/appearance: tweak font size inputs 2025-03-20 17:23:29 +02:00
Adorian Doran
d189f2b66b Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-03-20 14:40:44 +02:00
Adorian Doran
57b5e47b5a style(next): reorganize CSS 2025-03-20 14:40:42 +02:00
JYC333
d70cf14947 Merge branch 'develop' into renovate/electron-35.x 2025-03-20 10:56:49 +01:00
Elian Doran
8f6fcee67d chore(client/ts): port import dialog 2025-03-20 10:41:19 +02:00
Elian Doran
3527ab2c5d chore(client/ts): port include dialog 2025-03-20 10:41:19 +02:00
Elian Doran
8d14092a91 chore(client/ts): port more dialogs 2025-03-20 10:41:19 +02:00
Elian Doran
ffa463f1fc chore(client/ts): fix build errors 2025-03-20 10:41:19 +02:00
Elian Doran
7c805eb427 chore(client/ts): port find_in_html/text 2025-03-20 10:41:19 +02:00
Elian Doran
ef59b636b1 client: port ts 2025-03-20 10:41:19 +02:00
Elian Doran
7ea6c97c6f feat(in-app-help): improve code block style 2025-03-20 10:28:24 +02:00
Elian Doran
911e112964 Merge pull request #1470 from TriliumNext/renovate/react-monorepo
chore(deps): update dependency @types/react to v18.3.19
2025-03-20 10:21:57 +02:00
Adorian Doran
5f12ddaa14 style(next): reorganize CSS 2025-03-20 10:20:25 +02:00
Adorian Doran
2191b1b9fd style(next): reorganize CSS 2025-03-20 10:04:05 +02:00
Adorian Doran
431ffa7820 style(next): reorganize CSS 2025-03-20 09:32:22 +02:00
Adorian Doran
ea467c392d Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-03-20 09:18:43 +02:00
Adorian Doran
f6e0e93629 style(next): reorganize CSS 2025-03-20 09:18:39 +02:00
Elian Doran
7fe594d4ad chore(deps): update mind-elixir to latest (closes #1464) 2025-03-20 09:03:30 +02:00
Elian Doran
6d9c41f524 Merge pull request #1467 from TriliumNext/deps_move-mind-elixir_webpack
deps: bundle mind-elixir with webpack
2025-03-20 08:59:30 +02:00
Elian Doran
3e7d41c738 Merge pull request #1469 from TriliumNext/renovate/express-5.x
chore(deps): update dependency @types/express to v5.0.1
2025-03-20 08:56:36 +02:00
Elian Doran
7fda0dd572 Merge pull request #1474 from TriliumNext/renovate/typescript-eslint-monorepo
chore(deps): update dependency typescript-eslint to v8.27.0
2025-03-20 08:56:02 +02:00
Elian Doran
60a33d8279 Merge pull request #1475 from TriliumNext/renovate/sanitize-html-2.x
fix(deps): update dependency sanitize-html to v2.15.0
2025-03-20 08:55:29 +02:00
Elian Doran
50b9120bdc Merge pull request #1473 from TriliumNext/renovate/axios-1.x
fix(deps): update dependency axios to v1.8.4
2025-03-20 08:55:09 +02:00
Elian Doran
bce4cfe731 chore(turndown-plugin-gfm): fix build warnings 2025-03-20 08:53:01 +02:00
Elian Doran
419d5ffd1b chore(deps): update turndown-plugin-gfm to latest deps 2025-03-20 08:53:01 +02:00
renovate[bot]
b26555604c fix(deps): update dependency sanitize-html to v2.15.0 2025-03-20 02:13:24 +00:00
renovate[bot]
1e5f7ef6dd chore(deps): update dependency typescript-eslint to v8.27.0 2025-03-20 02:13:14 +00:00
renovate[bot]
3b9fcede0d fix(deps): update dependency axios to v1.8.4 2025-03-20 02:12:59 +00:00
renovate[bot]
0ae705b925 chore(deps): update dependency @types/react to v18.3.19 2025-03-20 02:11:14 +00:00
renovate[bot]
49a77790f2 chore(deps): update dependency @types/express to v5.0.1 2025-03-20 02:11:03 +00:00
Adorian Doran
2031882c0d style(next)/jump to note: tweak the modal's padding 2025-03-19 23:38:03 +02:00
Elian Doran
9eec7237de chore(client/ts): port include dialog 2025-03-19 23:27:52 +02:00
Elian Doran
d0e33f8aaa chore(client/ts): port more dialogs 2025-03-19 23:06:16 +02:00
Elian Doran
fac575bd4a Merge remote-tracking branch 'origin/develop' into feature/port_ts 2025-03-19 22:41:08 +02:00
Elian Doran
119bb38062 chore(client/ts): fix build errors 2025-03-19 22:39:49 +02:00
Elian Doran
89d51a9c4f chore(client/ts): port find_in_html/text 2025-03-19 22:00:41 +02:00
Panagiotis Papadopoulos
90d0c859fc chore(mind_map): import node-menu's style.css to allow webpack to bundle it
previously this was loaded from the node_modules folder and was exposed via a static asset path
-> since we got rid of this with the last commit, we need to instead let webpack bundle it "importing" the css here
2025-03-19 21:00:37 +01:00
Panagiotis Papadopoulos
feb9fa03c3 chore(deps): move mind-elixir related packages to devDependencies
webpack takes care of bundling these, so we don't need the modules at runtime anymore
2025-03-19 20:03:24 +01:00
Elian Doran
7f87318f8f Merge pull request #1462 from TriliumNext/port_dialogs
Port dialogs to ts
2025-03-19 20:23:33 +02:00
JYC333
83d6e329ba Merge branch 'develop' into port_dialogs 2025-03-19 19:20:46 +01:00
Elian Doran
d6d08cbb89 chore(deps): update package lock 2025-03-19 20:19:24 +02:00
Elian Doran
68f212a679 refactor(types): unnecessary any 2025-03-19 20:19:24 +02:00
Elian Doran
d0948727df Merge pull request #1457 from TriliumNext/e2e_fix
refactor: 💡 Improve e2e test stability
2025-03-19 20:18:20 +02:00
Elian Doran
716f8ecc17 Merge pull request #1340 from TriliumNext/fix_tab
Fix bug after porting tab manager
2025-03-19 20:17:21 +02:00
Elian Doran
83afecdced Merge branch 'develop' into fix_tab 2025-03-19 20:10:38 +02:00
Elian Doran
80066fd2f5 chore(docs): update meta and sync import/export 2025-03-19 20:06:02 +02:00
Elian Doran
957642caaa fix(build): dependency issue when run under docker 2025-03-19 20:00:22 +02:00
Panagiotis Papadopoulos
33922c52f8 fix(mind_map): fix node-menu visibility
=> rename css class name to match upstream

the class name got changed from ".mind-elixir → .map-container" by upstream via 294c2d5bb0

partially addresses #1464 → this allows us to see the node-menu sidebar again
2025-03-19 18:37:42 +01:00
Elian Doran
0408b3d260 chore(deps): remove @joplin/turndown-plugin-gfm 2025-03-19 19:24:06 +02:00
Elian Doran
a4ae0ba628 chore(build): add turndown-plugin-gfm to copy-dist 2025-03-19 19:23:43 +02:00
Elian Doran
7315d38cb6 Merge remote-tracking branch 'origin/develop' into develop 2025-03-19 18:56:44 +02:00
Elian Doran
18a50c6339 feat(export/markdown): remove joplin table wrapper 2025-03-19 18:54:39 +02:00
Elian Doran
909b7f5d39 chore(docs): remove incorrect # or ~ prefix in calendar view 2025-03-19 18:50:39 +02:00
Elian Doran
f23b45318d fix(export/markdown): fix code in tables 2025-03-19 18:42:40 +02:00
Elian Doran
884c5986ec chore(markdown/export): use in-tree plugin 2025-03-19 18:31:45 +02:00
Adorian Doran
f14c101d6d style(next)/launcher bar: fix the focus outline for the global menu on the vertical layout 2025-03-19 18:26:13 +02:00
Elian Doran
2021c8f751 chore(turndown-plugin-gfm): align with upstream
219d5bcae3
2025-03-19 18:22:20 +02:00
Elian Doran
d3423127d8 Add 'packages/turndown-plugin-gfm/' from commit '0f43299c17108e9508e7e6237369e86f504ea60a'
git-subtree-dir: packages/turndown-plugin-gfm
git-subtree-mainline: ebebdd0b07
git-subtree-split: 0f43299c17
2025-03-19 18:16:20 +02:00
Adorian Doran
c93ac0445e style(next)/launcher bar: use a custom focus rectangle for the global menu button 2025-03-19 18:10:54 +02:00
Adorian Doran
eb13b34429 style(next)/launcher bar: use a custom focus rectangle for buttons 2025-03-19 18:02:58 +02:00
Elian Doran
ebebdd0b07 docs(calendar): mention different views 2025-03-19 18:01:52 +02:00
Elian Doran
be5e2f529f fix(in-app-help): in-app help buttons not pointing to the right page 2025-03-19 17:53:40 +02:00
Adorian Doran
28cb621bea style(next)/launcher bar: tweak the appearance in the horizontal layout 2025-03-19 17:39:38 +02:00
Adorian Doran
f2f5af1c4b style(next)/launcher bar: use distinct theme variables for the vertical / horizontal layouts 2025-03-19 17:30:30 +02:00
Jin
a0c025014c fix: 🐛 Fix right click behavior
Fix the bug that when right click on unactive note and do move and clone
command, it still gonna move and clone the active note
2025-03-19 15:14:17 +01:00
Panagiotis Papadopoulos
20bbb80805 chore(deps): move @fullcalendar related to devDependencies
webpack takes care of bundling these, so we don't need the modules at runtime anymore
2025-03-19 14:47:51 +01:00
Jin
43ef9415d2 refactor: 💡 Port clone_to to ts 2025-03-19 14:27:33 +01:00
Jin
1aa6c17b56 refactor: 💡 Port bulk actions to ts 2025-03-19 14:22:40 +01:00
Jin
91a963fafd refactor: 💡 Port branch prefix to ts 2025-03-19 13:59:36 +01:00
SiriusXT
606e6bcca2 Click the icon to show the window 2025-03-19 15:35:12 +08:00
Jin
49d7fa1735 fix: 🐛 Fix playwright test 2025-03-18 22:01:08 +01:00
Jin
ae1a4b7a80 fix: 🐛 Fix tab empty path behavior 2025-03-18 21:02:20 +01:00
Jin
b18cfb5d20 refactor: 💡 Fix ts error 2025-03-18 21:02:20 +01:00
Jin
e12be14dc9 refactor: 💡 remove redundant code 2025-03-18 21:02:20 +01:00
Jin
0858f531e4 fix: 🐛 can't move a tab to new window 2025-03-18 21:02:20 +01:00
Jin
c9c18146f4 refactor: 💡 refactor serval event names
refactore serval event names to follow the current usage in repo
2025-03-18 21:02:20 +01:00
Jin
a9d8d7d3c5 fix: 🐛 fix wrong triggerEvent usage 2025-03-18 21:02:20 +01:00
Jin
469c2c3ce9 Revert "Revert "port tab manager to ts""
This reverts commit 3855f0e75f.
2025-03-18 21:02:20 +01:00
Elian Doran
96e2cc29e0 fix(mermaid): diagram still displayed on error 2025-03-18 20:43:11 +02:00
Elian Doran
475374a04b feat(mermaid): reduce flicker when editing chart 2025-03-18 20:37:06 +02:00
Elian Doran
b66677720d feat(mermaid): restore pan & zoom when changing chart 2025-03-18 20:35:47 +02:00
Elian Doran
eeb88ea559 refactor(mermaid): deduplicate gutter size constant 2025-03-18 19:57:41 +02:00
Elian Doran
b524f7876a feat(mermaid): add split between diagram and code 2025-03-18 19:35:23 +02:00
Elian Doran
3fe8fede9a fix(mermaid): event leak 2025-03-18 19:03:25 +02:00
Elian Doran
4e81e1e5a8 style(mermaid): redundant margins 2025-03-18 18:36:20 +02:00
Elian Doran
6f15169b18 feat(mermaid): better zoom mechanism (closes #474) 2025-03-18 18:31:22 +02:00
Jin
464084ebf4 refactor: 💡 Improve e2e test stability 2025-03-18 14:17:35 +01:00
Elian Doran
16cc543d59 Merge pull request #1454 from TriliumNext/renovate/helmet-8.x
fix(deps): update dependency helmet to v8.1.0
2025-03-18 09:17:01 +02:00
Elian Doran
165b5ad251 Merge branch 'develop' into renovate/helmet-8.x 2025-03-18 09:06:13 +02:00
Elian Doran
2f42fee9b3 Merge pull request #1452 from TriliumNext/renovate/better-sqlite3-11.x-lockfile
fix(deps): update dependency better-sqlite3 to v11.9.1
2025-03-18 09:05:43 +02:00
Elian Doran
71188ab98d Merge pull request #1440 from TriliumNext/renovate/better-sqlite3-11.x
fix(deps): update dependency better-sqlite3 to v11.9.1
2025-03-18 09:04:13 +02:00
Elian Doran
ab38005817 Merge pull request #1450 from TriliumNext/renovate/playwright-monorepo
chore(deps): update dependency @playwright/test to v1.51.1
2025-03-18 09:03:45 +02:00
Elian Doran
a07b734a91 Merge pull request #1451 from TriliumNext/renovate/vitest-monorepo
chore(deps): update vitest monorepo to v3.0.9
2025-03-18 09:03:20 +02:00
Elian Doran
1e3d7ce5df Merge pull request #1453 from TriliumNext/renovate/sass-1.x
chore(deps): update dependency sass to v1.86.0
2025-03-18 09:02:57 +02:00
Elian Doran
48d987d25d chore(package): get rid of tsyncserver (closes #1455) 2025-03-18 09:01:14 +02:00
renovate[bot]
0cfeeac4e3 fix(deps): update dependency helmet to v8.1.0 2025-03-18 02:55:36 +00:00
renovate[bot]
5ed25cbce7 fix(deps): update dependency better-sqlite3 to v11.9.1 2025-03-18 02:55:29 +00:00
renovate[bot]
ce97d36500 chore(deps): update dependency sass to v1.86.0 2025-03-18 02:55:20 +00:00
renovate[bot]
7ae1f6e02b fix(deps): update dependency better-sqlite3 to v11.9.1 2025-03-18 02:55:10 +00:00
renovate[bot]
611d93cf20 chore(deps): update vitest monorepo to v3.0.9 2025-03-18 02:54:58 +00:00
renovate[bot]
a5fe3788a4 chore(deps): update dependency @playwright/test to v1.51.1 2025-03-18 02:54:43 +00:00
Elian Doran
f68347f92c client: port ts 2025-03-17 22:46:00 +02:00
Elian Doran
4f7f7c460a fix(admonitions): unnecessary right margin 2025-03-17 18:28:32 +02:00
Elian Doran
74064c8d49 fix(calendar): regression in multi-day selection 2025-03-16 21:56:19 +02:00
Elian Doran
e34817d89f feat(docs): update calendar view 2025-03-16 21:31:58 +02:00
Elian Doran
2544294811 feat(calendar): save and restore selected view 2025-03-16 21:20:28 +02:00
Elian Doran
e4bb8cb233 feat(calendar): add year view 2025-03-16 20:57:57 +02:00
Elian Doran
d67dd27568 feat(calendar): add list view & improve styling 2025-03-16 20:53:54 +02:00
Elian Doran
ceddc1b497 feat(calendar): add switch between day/month view 2025-03-16 20:46:59 +02:00
Elian Doran
4d55374784 feat(calendar): add now indicator 2025-03-16 20:40:14 +02:00
Elian Doran
2b24673019 chore(calendar): remove redundant log 2025-03-16 20:38:25 +02:00
Elian Doran
d7e31f94fd feat(calendar): allow dragging timed events 2025-03-16 20:34:05 +02:00
Elian Doran
ccd9bfc1e7 fix(calendar): end date when inserting with time 2025-03-16 20:26:03 +02:00
Elian Doran
55ccbfe1cc fix(calendar): handling of start time/end time 2025-03-16 20:16:52 +02:00
Elian Doran
680729de63 feat(calendar): allow dragging to set the time 2025-03-16 20:09:21 +02:00
Elian Doran
9412cfc19f feat(calendar): support missing end time 2025-03-16 20:00:43 +02:00
Elian Doran
9083c18392 feat(calendar): support start & end date 2025-03-16 19:54:27 +02:00
Elian Doran
7570205059 feat(calendar): set up time grid 2025-03-16 19:46:39 +02:00
Elian Doran
4e7572cf04 chore(client/ts): port more files 2025-03-16 18:31:31 +02:00
Elian Doran
7f4f8bcc75 chore(client/ts): port some more files 2025-03-16 17:31:28 +02:00
Elian Doran
2b1bbd4ad3 fix(build): node ABI 2025-03-15 18:37:29 +02:00
Elian Doran
3734f81752 Merge pull request #1433 from TriliumNext/renovate/better-sqlite3-11.x
fix(deps): update dependency better-sqlite3 to v11.9.0
2025-03-15 18:25:56 +02:00
Elian Doran
103894f733 Merge pull request #1432 from TriliumNext/renovate/better-sqlite3-11.x-lockfile
fix(deps): update dependency better-sqlite3 to v11.9.0
2025-03-15 18:24:27 +02:00
Elian Doran
bd9fce0a50 Merge branch 'develop' into renovate/electron-35.x 2025-03-15 18:24:10 +02:00
Panagiotis Papadopoulos
73305a5327 chore(share): remove unused args
addresses https://github.com/TriliumNext/Notes/pull/1384#discussion_r1989045491
2025-03-15 12:31:33 +01:00
Panagiotis Papadopoulos
ae1ef55522 chore(share): remove unused "_next"
addresses https://github.com/TriliumNext/Notes/pull/1384#discussion_r1989044764
2025-03-15 12:27:02 +01:00
Panagiotis Papadopoulos
a5a66a12e2 chore(share): fix tsc nagging about svg not existing on unknown
JSON and TS without using a validation library like zod, is really a bit of a pain in the backside...
2025-03-15 12:19:27 +01:00
Panagiotis Papadopoulos
2a5ac80c05 chore(utils/safeExtractMessageAndStackFromError): add explicit return type to have it as a named tuple 2025-03-15 12:19:27 +01:00
Panagiotis Papadopoulos
c2aae45456 chore(share): fix no-unused-vars and prefer-const lint issues 2025-03-15 12:19:27 +01:00
Panagiotis Papadopoulos
cd9d90323c chore(share): fix @typescript-eslint/no-unused-vars for unused note variable
there's no need to assign a variable, if we never use the value outside of the if check
2025-03-15 12:19:26 +01:00
Panagiotis Papadopoulos
c2b75a6421 chore(share): fix @typescript-eslint/no-unused-vars for "next"
alternative solution, since they are unused and it is the last argument → remove it.
We can still go that route later on though, if we agree upon it.
2025-03-15 12:19:26 +01:00
Panagiotis Papadopoulos
bdc829198c chore(share): use safeExtractMessageAndStackFromError to get rid of "any" in try/catch blocks 2025-03-15 12:19:26 +01:00
renovate[bot]
9136f07968 fix(deps): update dependency better-sqlite3 to v11.9.0 2025-03-15 02:52:57 +00:00
renovate[bot]
bd39f38d1a fix(deps): update dependency better-sqlite3 to v11.9.0 2025-03-15 02:52:41 +00:00
renovate[bot]
2e436cdd46 chore(deps): update dependency electron to v35 2025-03-14 09:14:49 +00:00
Elian Doran
0916d87e3d feat(client/mfa): improve headings 2024-12-24 14:02:52 +02:00
Elian Doran
e20e53f606 feat(client/mfa): improve layout by separating into multiple sections 2024-12-24 14:02:00 +02:00
Elian Doran
2eb4d4fb66 Merge remote-tracking branch 'origin/develop' into feature/MFA 2024-12-24 13:30:37 +02:00
chesspro13
120f1677e8 Removed unused import 2024-09-14 10:12:14 -07:00
chesspro13
d92820280d Fixed problem with using existing databases. 2024-09-14 10:04:39 -07:00
chesspro13
2e21a45fc1 Merge branch 'develop' into feature/MFA 2024-09-09 16:30:18 -07:00
Chesspro13
fa5c5ce183 Added OpenID and TOTP to readme 2024-09-09 12:29:32 -07:00
Chesspro13
953f539dcc Changed wording from "Regerate TOTP Secret" to "Generate TOTP Secret" 2024-09-09 12:07:48 -07:00
Chesspro13
d8c8fe0a6d Added check for running both OpenID and TOTP at the same time. 2024-09-09 12:01:41 -07:00
chesspro13
55b0f0e3f4 Simplified .env 2024-09-07 15:00:12 -07:00
chesspro13
06da11ff41 Disabled TOTP checkbox 2024-09-07 14:38:08 -07:00
chesspro13
ede7bbd8ed Fixed recovery code refresh bug. 2024-09-07 14:37:09 -07:00
chesspro13
9dd185e37e Removed unused files/code/imports/comments. 2024-09-07 14:25:48 -07:00
chesspro13
13937a2568 Removed outdated comments 2024-09-07 14:19:16 -07:00
chesspro13
d76396056a Removed unused script 2024-09-07 14:17:34 -07:00
chesspro13
df3cbf85e1 Removed references to disconnecting OpenID Accounts. For now. 2024-09-07 14:12:27 -07:00
chesspro13
c74da18e23 OAuth working 2024-09-07 13:18:47 -07:00
chesspro13
1a8625b558 Added package-lock.json 2024-09-07 11:53:26 -07:00
chesspro13
494721f38f Changed Verification order. 2024-09-07 11:51:29 -07:00
chesspro13
37b4bf6b58 Fixed login errors 2024-09-07 11:47:29 -07:00
chesspro13
e232c6634e TOTP working 2024-09-07 11:41:54 -07:00
chesspro13
9c748f326a Ported from branch OIDC 2024-09-07 10:21:41 -07:00
Laurent
0f43299c17 Update README.md 2021-06-27 11:45:17 +01:00
Laurent Cozic
d160d5c8d5 1.0.12 2020-01-08 16:52:08 +00:00
Laurent Cozic
0b2f3dc10a Fixed issue with tables that contain only one cell 2020-01-08 16:51:43 +00:00
Laurent Cozic
9a12000eb0 1.0.11 2019-10-12 19:33:40 +02:00
Laurent Cozic
4368e08c32 1.0.10 2019-10-12 19:33:01 +02:00
Laurent Cozic
4304c3ad92 1.0.9 2019-10-12 19:32:48 +02:00
Laurent Cozic
c00d538f88 Fixes #1: Some tables were imported with an extra header 2019-10-12 19:32:33 +02:00
Laurent Cozic
6fb98621ce Publis script 2019-09-07 10:28:14 +01:00
Laurent Cozic
a120d4ec9c Fix importing tables that contain pipes 2019-09-07 10:27:34 +01:00
Laurent Cozic
3358d85996 Fix importing tables that contain pipes 2019-09-07 10:27:01 +01:00
Laurent Cozic
b33431774b Fix security issues 2019-09-07 10:18:23 +01:00
Laurent Cozic
7051ce787c 1.0.8 2019-05-11 00:26:38 +01:00
Laurent Cozic
1452200c79 Fixed handling of tables with empty headers 2019-05-11 00:26:27 +01:00
Laurent Cozic
54f84c12fd 1.0.7 2018-06-09 19:41:25 +01:00
Laurent Cozic
118a856ee7 Merge branch 'master' of github.com:laurent22/joplin-turndown-plugin-gfm 2018-06-09 19:41:11 +01:00
Laurent Cozic
11225771b6 Don't render table outline if it contains only one cell, or no cell at all 2018-06-09 19:40:57 +01:00
Laurent Cozic
18e93d7c0b Update package.json 2018-05-24 12:34:39 +01:00
Laurent Cozic
ec895d31fb 1.0.6 2018-05-24 12:31:46 +01:00
Laurent Cozic
59153ece46 Handle colspan in TD tags 2018-05-24 12:31:40 +01:00
Laurent Cozic
44aa7353f0 1.0.5 2018-05-22 00:15:34 +01:00
Laurent Cozic
ecb6142c5a Fixed: Ensure there are no blank lines inside tables 2018-05-22 00:15:21 +01:00
Laurent Cozic
a2d99a266b 1.0.4 2018-05-21 23:56:00 +01:00
Laurent Cozic
36179a8394 Make table cells at least 3 char long 2018-05-21 23:55:53 +01:00
Laurent Cozic
90cff86ac0 1.0.3 2018-05-21 23:42:28 +01:00
Laurent Cozic
a1fa10e997 Merge branch 'master' of github.com:laurent22/joplin-turndown-plugin-gfm 2018-05-21 23:42:14 +01:00
Laurent Cozic
7af39b57f0 Replace newlines inside table cells so that resulting markdown is valid 2018-05-21 23:42:02 +01:00
Laurent Cozic
d1563a336a Update README.md 2018-05-21 23:23:19 +01:00
Laurent Cozic
0f64fe53cb Merge branch 'master' of github.com:laurent22/joplin-turndown-plugin-gfm 2018-05-21 23:22:44 +01:00
Laurent Cozic
36263e6295 Moved package to different namespace so that it can be published to npm 2018-05-21 23:22:32 +01:00
Laurent Cozic
616cc129e2 Don't render the border of tables that contain other tables 2018-05-21 23:21:37 +01:00
Laurent Cozic
9bcb5ec3a9 Update README.md 2018-05-21 23:20:53 +01:00
Laurent Cozic
813b9a61b0 Fix trailing space issue 2018-05-17 01:29:33 +01:00
Laurent Cozic
e77328fb23 Handle tables with no headers by creating an empty Markdown header 2018-05-17 01:01:36 +01:00
Dom Christie
61a981b8c6 1.0.2 2018-05-11 12:05:19 +01:00
Dom Christie
22f423429c Merge pull request #9 from domchristie/tables_with_no_heading_row
Keep tables with no definitive heading row
2018-05-11 12:03:16 +01:00
Dom Christie
93d5aed1fe Keep tables with no definitive heading row 2018-05-11 11:55:21 +01:00
Dom Christie
7eeb773b6b Update security vulnerabilities according to npm audit 2018-05-11 11:20:17 +01:00
Dom Christie
cbe8dc5e5c 1.0.1 2017-12-19 10:01:33 +00:00
Dom Christie
aa1b4789ca Merge pull request #2 from domchristie/update_turndown_4.0.1
Update turndown dev dependency to latest version
2017-12-19 10:01:00 +00:00
Dom Christie
b80a6dcb27 Update turndown dev dependency to latest version 2017-12-19 09:55:46 +00:00
Dom Christie
27e789a749 Merge pull request #1 from Galadirith/fix-unpkg-url
Use correct unpkg url for plugin
2017-12-18 18:30:04 +00:00
Edward Fauchon-Jones
1830087ab8 Use correct unpkg url for plugin 2017-12-18 14:03:52 +00:00
Dom Christie
874b9c7ecb 1.0.0 2017-12-17 12:26:55 +00:00
Dom Christie
77c6234c2f Add repository field 2017-12-17 12:26:45 +00:00
Dom Christie
81077a68dd Clarify module files 2017-12-17 12:25:01 +00:00
Dom Christie
20bde1cef6 Update turndown version 2017-12-17 12:24:03 +00:00
Dom Christie
4730ad37bc Fix turndown require path 2017-12-15 08:45:56 +00:00
Dom Christie
a999761fa0 Add travis config 2017-12-15 08:36:34 +00:00
Dom Christie
ac25f96d4c Update package-lock 2017-12-15 08:32:40 +00:00
Dom Christie
37fadbdcf1 0.0.3 2017-12-13 20:53:12 +00:00
Dom Christie
7354350a22 Use widely-supported method to get align attribute 2017-12-12 22:55:54 +00:00
Dom Christie
abd6a18b50 0.0.2 2017-11-24 11:26:12 +00:00
Dom Christie
5603573b6d Build test in build script 2017-11-24 11:26:00 +00:00
Dom Christie
5663b4e006 Do not track test browser build 2017-11-24 11:20:42 +00:00
Dom Christie
b2f021ee9e Remove gfm test browser build 2017-11-24 11:20:22 +00:00
Dom Christie
611f0f037c Add highlighted code block rules 2017-11-24 11:19:37 +00:00
Dom Christie
a4ef6870b7 Improve table heading row conversion 2017-11-24 11:18:27 +00:00
Dom Christie
42e4a09b57 Add gfm plugins 2017-11-10 14:21:46 +00:00
Dom Christie
216791b9da Use minimal gitignore 2017-11-10 14:14:35 +00:00
Dom Christie
202027774a Initial commit 2017-11-10 14:09:07 +00:00
502 changed files with 27289 additions and 14335 deletions

View File

@@ -34,9 +34,11 @@ npm-debug.log
# exceptions
!/bin/copy-dist.ts
!/bin/cleanupNodeModules.ts
# temporary exception to make copy-dist inside Docker build not fail
# TriliumNextTODO: make copy-dist *not* requiring to copy this file for builds other than electron-forge
# TriliumNextTODO: make copy-dist *not* requiring to copy these file for builds other than electron-forge
!forge.config.cjs
!/bin/tpl
!/bin/electron-forge/desktop.ejs
!/bin/electron-forge/desktop.ejs
!/bin/electron-forge/sign-windows.cjs

44
.dprint.json Normal file
View File

@@ -0,0 +1,44 @@
{
"typescript": {
"indentWidth": 4,
"quoteStyle": "preferDouble",
"semiColons": "prefer",
"quoteProps": "asNeeded",
"newLineKind": "lf",
"lineWidth": 200,
"trailingCommas": "never",
"arrayPattern.spaceAround": true,
"arrayExpression.spaceAround": true
},
"json": {
},
"markdown": {
},
"dockerfile": {
},
"malva": {
},
"markup": {
},
"yaml": {
},
"excludes": [
"**/node_modules",
"**/*-lock.json",
"*.html",
"*.md",
"*.yml",
"libraries/*",
"docs/*",
"src/public/app/doc_notes"
],
"plugins": [
"https://plugins.dprint.dev/typescript-0.94.0.wasm",
"https://plugins.dprint.dev/json-0.20.0.wasm",
"https://plugins.dprint.dev/markdown-0.18.0.wasm",
"https://plugins.dprint.dev/dockerfile-0.3.2.wasm",
"https://plugins.dprint.dev/g-plane/malva-v0.11.1.wasm",
"https://plugins.dprint.dev/g-plane/markup_fmt-v0.19.0.wasm",
"https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.0.wasm"
]
}

1
.gitattributes vendored
View File

@@ -1,4 +1,5 @@
package-lock.json linguist-generated=true
**/package-lock.json linguist-generated=true
src/public/app/doc_notes/en/User[[:space:]]Guide/** linguist-generated=true
src/public/app/doc_notes/en/User[[:space:]]Guide/**/*.md eol=lf
libraries/** linguist-vendored

View File

@@ -8,8 +8,11 @@ inputs:
arch:
description: "The architecture to build for: x64, arm64"
required: true
extension:
description: "Platform specific extensions to copy in the output: dmg, deb, rpm, exe, zip"
shell:
description: "Which shell to use"
required: true
forge_platform:
description: "The --platform to pass to Electron Forge"
required: true
runs:
@@ -38,21 +41,21 @@ runs:
- name: Verify certificates
if: inputs.os == 'macos'
shell: bash
shell: ${{ inputs.shell }}
run: |
echo "Available signing identities:"
security find-identity -v -p codesigning build.keychain
- name: Set up Python and other macOS dependencies
if: ${{ inputs.os == 'macos' }}
shell: bash
shell: ${{ inputs.shell }}
run: |
brew install python-setuptools
brew install create-dmg
- name: Install dependencies for RPM and Flatpak package building
if: ${{ inputs.os == 'linux' }}
shell: bash
shell: ${{ inputs.shell }}
run: |
sudo apt-get update && sudo apt-get install rpm flatpak-builder elfutils
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
@@ -62,39 +65,32 @@ runs:
# Build setup
- name: Install dependencies
shell: bash
shell: ${{ inputs.shell }}
run: npm ci
- name: Update build info
shell: bash
shell: ${{ inputs.shell }}
run: npm run chore:update-build-info
# Critical debugging configuration
- name: Run electron-forge build with enhanced logging
shell: bash
shell: ${{ inputs.shell }}
env:
# Pass through required environment variables for signing and notarization
APPLE_TEAM_ID: ${{ env.APPLE_TEAM_ID }}
APPLE_ID: ${{ env.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ env.APPLE_ID_PASSWORD }}
WINDOWS_SIGN_EXECUTABLE: ${{ env.WINDOWS_SIGN_EXECUTABLE }}
TRILIUM_ARTIFACT_NAME_HINT: TriliumNextNotes-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }}
run: |
# Map OS names to Electron Forge platform names
if [ "${{ inputs.os }}" = "macos" ]; then
PLATFORM="darwin"
elif [ "${{ inputs.os }}" = "windows" ]; then
PLATFORM="win32"
else
PLATFORM="${{ inputs.os }}"
fi
npm run electron-forge:make -- \
--arch=${{ inputs.arch }} \
--platform=$PLATFORM
--platform=${{ inputs.forge_platform }}
# Add DMG signing step
- name: Sign DMG
if: inputs.os == 'macos'
shell: bash
shell: ${{ inputs.shell }}
run: |
echo "Signing DMG file..."
dmg_file=$(find ./dist -name "*.dmg" -print -quit)
@@ -119,7 +115,7 @@ runs:
- name: Verify code signing
if: inputs.os == 'macos'
shell: bash
shell: ${{ inputs.shell }}
run: |
echo "Verifying code signing for all artifacts..."
@@ -165,49 +161,3 @@ runs:
echo "Found ZIP: $zip_file"
echo "Note: ZIP files are not code signed, but their contents should be"
fi
- name: Prepare artifacts
shell: bash
run: |
mkdir -p upload
if [ "${{ inputs.os }}" = "macos" ]; then
# For macOS, we need to look in specific directories based on the maker
echo "Collecting macOS artifacts..."
# Look for DMG files recursively
echo "Looking for DMG files..."
dmg_file=$(find ./dist -name "*.dmg" -print -quit)
if [ -n "$dmg_file" ]; then
echo "Found DMG: $dmg_file"
cp "$dmg_file" "upload/TriliumNextNotes-${{ github.ref_name }}-macos-${{ inputs.arch }}.dmg"
else
echo "Warning: No DMG file found"
fi
# Look for ZIP files recursively
echo "Looking for ZIP files..."
zip_file=$(find ./dist -name "*.zip" -print -quit)
if [ -n "$zip_file" ]; then
echo "Found ZIP: $zip_file"
cp "$zip_file" "upload/TriliumNextNotes-${{ github.ref_name }}-macos-${{ inputs.arch }}.zip"
else
echo "Warning: No ZIP file found"
fi
else
# For other platforms, use the existing logic but with better error handling
echo "Collecting artifacts for ${{ inputs.os }}..."
for ext in ${{ inputs.extension }}; do
echo "Looking for .$ext files..."
file=$(find ./dist -name "*.$ext" -print -quit)
if [ -n "$file" ]; then
echo "Found $file for extension $ext"
cp "$file" "upload/TriliumNextNotes-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }}.$ext"
else
echo "Warning: No file found with extension .$ext"
fi
done
fi
echo "Final contents of upload directory:"
ls -la upload/

View File

@@ -11,7 +11,7 @@ runs:
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "npm"
- name: Install dependencies
shell: bash

View File

@@ -26,7 +26,7 @@ jobs:
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "npm"
- run: npm ci

View File

@@ -45,7 +45,7 @@ jobs:
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "npm"
- name: Install npm dependencies

View File

@@ -1,93 +0,0 @@
name: Main
on:
push:
branches:
- "feature/update**"
- "feature/server_esm**"
paths-ignore:
- "docs/**"
- ".github/workflows/main-docker.yml"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
make-electron:
name: Make Electron
strategy:
fail-fast: false
matrix:
arch: [x64, arm64]
os:
- name: macos
image: macos-latest
extension: [dmg, zip]
- name: linux
image: ubuntu-latest
extension: [deb, rpm, zip, flatpak]
- name: windows
image: windows-latest
extension: [exe, zip]
runs-on: ${{ matrix.os.image }}
steps:
- uses: actions/checkout@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
- name: Run the build
uses: ./.github/actions/build-electron
with:
os: ${{ matrix.os.name }}
arch: ${{ matrix.arch }}
extension: ${{ matrix.os.extension }}
env:
APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }}
APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }}
APPLE_INSTALLER_CERTIFICATE_BASE64: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_BASE64 }}
APPLE_INSTALLER_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
# Clean up keychain after build
- name: Clean up keychain
if: matrix.os.name == 'macos' && always()
run: |
security delete-keychain build.keychain
- name: Publish artifacts
uses: actions/upload-artifact@v4
with:
name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}.zip
path: upload/*.zip
- name: Publish installer artifacts
uses: actions/upload-artifact@v4
with:
name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}.${{matrix.os.extension}}
path: upload/*.${{ matrix.os.extension }}
build_linux_server:
name: Build Linux Server
strategy:
fail-fast: false
matrix:
arch: [x64, arm64]
include:
- arch: x64
runs-on: ubuntu-latest
- arch: arm64
runs-on: ubuntu-24.04-arm
runs-on: ${{ matrix.runs-on }}
steps:
- uses: actions/checkout@v4
- name: Run the build
uses: ./.github/actions/build-server
with:
arch: ${{ matrix.arch }}
- uses: actions/upload-artifact@v4
with:
name: TriliumNextNotes linux server ${{ matrix.arch }}
path: upload/TriliumNextNotes-linux-${{ matrix.arch }}-${{ github.ref_name }}.tar.xz

View File

@@ -5,6 +5,13 @@ on:
- cron: "0 2 * * *" # run at 2 AM UTC
# This can be used to allow manually triggering nightlies from the web interface
workflow_dispatch:
push:
branches:
- renovate/electron-forge*
pull_request:
paths:
- .github/actions/build-electron/*
- forge.config.cjs
env:
GITHUB_UPLOAD_URL: https://uploads.github.com/repos/TriliumNext/Notes/releases/179589950/assets{?name,label}
GITHUB_RELEASE_ID: 179589950
@@ -20,22 +27,24 @@ jobs:
os:
- name: macos
image: macos-latest
extension: [dmg, zip]
shell: bash
forge_platform: darwin
- name: linux
image: ubuntu-latest
extension: [deb, rpm, zip, flatpak]
shell: bash
forge_platform: linux
- name: windows
image: windows-latest
extension: [exe, zip]
image: win-signing
shell: cmd
forge_platform: win32
runs-on: ${{ matrix.os.image }}
steps:
- uses: actions/checkout@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
- name: Install dependencies
shell: bash
run: npm ci
- name: Update nightly version
run: npm run chore:ci-update-nightly-version
@@ -44,7 +53,8 @@ jobs:
with:
os: ${{ matrix.os.name }}
arch: ${{ matrix.arch }}
extension: ${{ join(matrix.os.extension, ' ') }}
shell: ${{ matrix.os.shell }}
forge_platform: ${{ matrix.os.forge_platform }}
env:
APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }}
APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }}
@@ -53,9 +63,11 @@ jobs:
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
WINDOWS_SIGN_EXECUTABLE: ${{ vars.WINDOWS_SIGN_EXECUTABLE }}
- name: Publish release
uses: softprops/action-gh-release@v2
if: ${{ github.event_name != 'pull_request' }}
with:
make_latest: false
prerelease: true
@@ -65,34 +77,9 @@ jobs:
tag_name: nightly
name: Nightly Build
nightly-server:
name: Deploy server nightly
strategy:
fail-fast: false
matrix:
arch: [x64, arm64]
include:
- arch: x64
runs-on: ubuntu-latest
- arch: arm64
runs-on: ubuntu-24.04-arm
runs-on: ${{ matrix.runs-on }}
steps:
- uses: actions/checkout@v4
- name: Run the build
uses: ./.github/actions/build-server
- name: Publish artifacts
uses: actions/upload-artifact@v4
if: ${{ github.event_name == 'pull_request' }}
with:
os: linux
arch: ${{ matrix.arch }}
- name: Publish release
uses: softprops/action-gh-release@v2
with:
make_latest: false
prerelease: true
draft: false
fail_on_unmatched_files: true
files: upload/*.*
tag_name: nightly
name: Nightly Build
name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}
path: upload

View File

@@ -20,26 +20,30 @@ jobs:
os:
- name: macos
image: macos-latest
extension: [dmg, zip]
shell: bash
forge_platform: darwin
- name: linux
image: ubuntu-latest
extension: [deb, rpm, zip, flatpak]
shell: bash
forge_platform: linux
- name: windows
image: windows-latest
extension: [exe, zip]
image: win-signing
shell: cmd
forge_platform: win32
runs-on: ${{ matrix.os.image }}
steps:
- uses: actions/checkout@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
- name: Run the build
uses: ./.github/actions/build-electron
with:
os: ${{ matrix.os.name }}
arch: ${{ matrix.arch }}
extension: ${{ join(matrix.os.extension, ' ') }}
shell: ${{ matrix.os.shell }}
forge_platform: ${{ matrix.os.forge_platform }}
env:
APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }}
APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }}
@@ -48,6 +52,7 @@ jobs:
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
WINDOWS_SIGN_EXECUTABLE: ${{ vars.WINDOWS_SIGN_EXECUTABLE }}
- name: Publish release
uses: softprops/action-gh-release@v2

2
.gitignore vendored
View File

@@ -42,4 +42,4 @@ data-docs/backup
data-docs/log
data-docs/session
data-docs/session_secret.txt
data-docs/document.*
data-docs/document.*

View File

@@ -1,6 +0,0 @@
*.html
*.md
*.yml
libraries/*
docs/*
src/public/app/doc_notes/**/*

View File

@@ -1,22 +0,0 @@
{
"printWidth": 200,
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": false,
"quoteProps": "as-needed",
"trailingComma": "none",
"bracketSpacing": true,
"arrowParens": "always",
"proseWrap": "preserve",
"htmlWhitespaceSensitivity": "css",
"endOfLine": "lf",
"overrides": [
{
"files": ["*.json"],
"options": {
"tabWidth": 2
}
}
]
}

View File

@@ -2,6 +2,7 @@
"recommendations": [
"lokalise.i18n-ally",
"editorconfig.editorconfig",
"vitest.explorer"
"vitest.explorer",
"ms-playwright.playwright"
]
}

View File

@@ -39,8 +39,11 @@ COPY --from=builder /usr/src/app ./
RUN sed -i "/electron/d" package.json && \
npm ci --omit=dev && \
node --experimental-strip-types ./bin/cleanupNodeModules.ts . --skip-prune-dev-deps && \
npm cache clean --force && \
rm -rf /tmp/node-compile-cache
rm -rf \
/tmp/node-compile-cache \
/usr/src/app/bin/cleanupNodeModules.ts
# Configure container
EXPOSE 8080

View File

@@ -34,8 +34,11 @@ COPY --from=builder /usr/src/app ./
RUN sed -i "/electron/d" package.json && \
npm ci --omit=dev && \
node --experimental-strip-types ./bin/cleanupNodeModules.ts . --skip-prune-dev-deps && \
npm cache clean --force && \
rm -rf /tmp/node-compile-cache
rm -rf \
/tmp/node-compile-cache \
/usr/src/app/bin/cleanupNodeModules.ts
# Add application user
RUN adduser -s /bin/false node; exit 0

View File

@@ -37,6 +37,7 @@ Feel free to join our official conversations. We would love to hear what feature
* 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)
* Direct OpenID and TOTP integration 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
@@ -79,10 +80,11 @@ xattr -c "/path/to/Trilium Next.app"
### Mobile
To use TriliumNext on a mobile device:
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).
* Use a mobile web browser to access the mobile interface of a server installation (see below)
* Use of a mobile app is not yet supported ([see here](https://github.com/TriliumNext/Notes/issues/72)) to track mobile improvements.
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).
See issue https://github.com/TriliumNext/Notes/issues/72 for more information on mobile app support.
### Server
@@ -107,7 +109,8 @@ npm run server:start
### Documentation
Head on over to our [Docs repo](https://github.com/TriliumNext/Docs)
We are currently transitioning to a new documentation mechanism.
Meanwhile you can still view the [archived Docs repository](https://github.com/TriliumNext/Docs).
## 👏 Shoutouts

View File

@@ -1,13 +0,0 @@
#!/usr/bin/env bash
cd src/public
echo Summary
cloc HEAD \
--git --md \
--include-lang=javascript,typescript
echo By file
cloc HEAD \
--git --md \
--include-lang=javascript,typescript \
--by-file | grep \.js\|

View File

@@ -21,12 +21,20 @@ fi
echo "Selected Arch: $ARCH"
# Set Node.js version and architecture-specific filename
NODE_VERSION=20.15.1
NODE_VERSION=22.14.0
BUILD_DIR="./build"
DIST_DIR="./dist"
CLEANUP_SCRIPT="./bin/cleanupNodeModules.ts"
./bin/copy-trilium.sh
# Trigger the build
echo "Build start"
npm run build:prepare-dist
echo "Build finished"
# pruning of unnecessary files and devDeps in node_modules
node --experimental-strip-types $CLEANUP_SCRIPT $BUILD_DIR
NODE_FILENAME=node-v${NODE_VERSION}-linux-${ARCH}
@@ -37,7 +45,9 @@ mv $NODE_FILENAME node
cd ..
rm -r $BUILD_DIR/node/lib/node_modules/npm \
rm -r $BUILD_DIR/node/lib/node_modules/{npm,corepack} \
$BUILD_DIR/node/bin/{npm,npx,corepack} \
$BUILD_DIR/node/CHANGELOG.md \
$BUILD_DIR/node/include/node \
$BUILD_DIR/node_modules/electron* \
$BUILD_DIR/electron*.{js,map}

109
bin/cleanupNodeModules.ts Normal file
View File

@@ -0,0 +1,109 @@
import fs from "fs-extra";
import path from "path";
import type { Dirent } from "fs-extra";
import { execSync } from "node:child_process";
/**
* Example usage with node >= v22:
* node --experimental-strip-types bin/cleanupNodeModules.ts /path/to/build/folder [--skip-prune-dev-deps]
* Example usage with tsx:
* tsx bin/cleanupNodeModules.ts /path/to/build/folder [--skip-prune-dev-deps]
*/
function main() {
if (process.argv.length > 4 || process.argv.length < 3) {
console.error("Usage: cleanupNodeModules.ts [path-to-build-folder] [--skip-prune-dev-deps]");
process.exit(1);
}
const basePath = process.argv[2];
const pruneDevDeps = process.argv[3] !== "--skip-prune-dev-deps";
if (!fs.existsSync(basePath)) {
console.error(`Supplied path '${basePath}' does not exist. Aborting.`);
process.exit(1);
}
console.log(`Starting pruning of node_modules ${!pruneDevDeps ? '(skipping npm pruning)' : ''} in '${basePath}'...`);
cleanupNodeModules(basePath, pruneDevDeps);
console.log("Successfully pruned node_modules.");
}
function cleanupNodeModules(basePath: string, pruneDevDeps: boolean = true) {
// This needs to run for the server and Docker build,
// but needs to be skipped for electron-forge: its
// built-in pruning takes care of it already
if (pruneDevDeps) {
execSync(`npm ci --omit=dev --prefix ${basePath}`);
}
const nodeModulesDirPath = path.join(basePath, "node_modules");
const nodeModulesContent = fs.readdirSync(nodeModulesDirPath, { recursive: true, withFileTypes: true });
//const libDir = fs.readdirSync(path.join(basePath, "./libraries"), { recursive: true, withFileTypes: true });
/**
* Delete unnecessary folders
*/
const filterableDirs = new Set([
"demo",
"demos",
"doc",
"docs",
"example",
"examples",
"test",
"tests"
]);
nodeModulesContent
.filter(el => el.isDirectory() && filterableDirs.has(el.name))
.forEach(dir => removeDirent(dir));
/**
* Delete unnecessary files based on file extension
* TODO filter out useless (README).md files
*/
const filterableFileExt = new Set([
"ts",
"map"
]);
nodeModulesContent
// TriliumNextTODO: check if we can improve this naive file ext matching, without introducing any additional dependency
.filter(el => el.isFile() && filterableFileExt.has(el.name.split(".").at(-1) || ""))
.forEach(dir => removeDirent(dir));
/**
* Delete specific unnecessary folders
* TODO: check if we want removeSync to throw an error, if path does not exist anymore -> currently it will silently fail
*/
const extraFoldersDelete = new Set([
path.join(nodeModulesDirPath, ".bin"),
path.join(nodeModulesDirPath, "@excalidraw", "excalidraw", "dist", "dev"),
path.join(nodeModulesDirPath, "boxicons", "svg"),
path.join(nodeModulesDirPath, "boxicons", "node_modules"),
path.join(nodeModulesDirPath, "boxicons", "src"),
path.join(nodeModulesDirPath, "boxicons", "iconjar"),
path.join(nodeModulesDirPath, "@jimp", "plugin-print", "fonts"),
path.join(nodeModulesDirPath, "jimp", "dist", "browser") // missing "@" in front of jimp is not a typo here
]);
nodeModulesContent
.filter(el => el.isDirectory() && extraFoldersDelete.has(path.join(el.parentPath, el.name)))
.forEach(dir => removeDirent(dir))
}
function removeDirent(el: Dirent) {
const elementToDelete = path.join(el.parentPath, el.name);
fs.removeSync(elementToDelete);
if (process.env.VERBOSE) {
console.log(`Deleted ${elementToDelete}`);
}
}
main()

View File

@@ -11,16 +11,11 @@ function log(...args: any[]) {
}
}
function copyNodeModuleFileOrFolder(source: string) {
const destination = path.join(DEST_DIR, source);
log(`Copying ${source} to ${destination}`);
fs.ensureDirSync(path.dirname(destination));
fs.copySync(source, destination);
}
try {
const assetsToCopy = new Set([
// copy node_module, to avoid downloading packages a 2nd time during pruning
"./node_modules",
"./images",
"./libraries",
"./translations",
@@ -32,7 +27,9 @@ try {
"./README.md",
"./forge.config.cjs",
"./bin/tpl/",
"./bin/cleanupNodeModules.ts",
"./bin/electron-forge/desktop.ejs",
"./bin/electron-forge/sign-windows.cjs",
"./src/views/",
"./src/etapi/etapi.openapi.yaml",
"./src/routes/api/openapi.json",
@@ -41,7 +38,8 @@ try {
"./src/public/robots.txt",
"./src/public/fonts",
"./src/public/stylesheets",
"./src/public/translations"
"./src/public/translations",
"./packages/turndown-plugin-gfm/src"
]);
for (const asset of assetsToCopy) {
@@ -58,55 +56,10 @@ try {
fs.copySync(dir, path.join(PUBLIC_DIR, path.basename(dir)));
}
const nodeModulesFile = new Set([
"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",
"node_modules/@highlightjs/cdn-assets/highlight.min.js",
"node_modules/@mind-elixir/node-menu/dist/node-menu.umd.cjs"
]);
const nodeModulesFolder = new Set([
"node_modules/@excalidraw/excalidraw/dist/prod/fonts/",
"node_modules/katex/dist/",
"node_modules/dayjs/",
"node_modules/boxicons/css/",
"node_modules/boxicons/fonts/",
"node_modules/mermaid/dist/",
"node_modules/jquery/dist/",
"node_modules/jquery-hotkeys/",
"node_modules/split.js/dist/",
"node_modules/panzoom/dist/",
"node_modules/i18next/",
"node_modules/i18next-http-backend/",
"node_modules/jsplumb/dist/",
"node_modules/vanilla-js-wheel-zoom/dist/",
"node_modules/mark.js/dist/",
"node_modules/normalize.css/",
"node_modules/jquery.fancytree/dist/",
"node_modules/autocomplete.js/dist/",
"node_modules/codemirror/lib/",
"node_modules/codemirror/addon/",
"node_modules/codemirror/mode/",
"node_modules/codemirror/keymap/",
"node_modules/mind-elixir/dist/",
"node_modules/@highlightjs/cdn-assets/languages",
"node_modules/@highlightjs/cdn-assets/styles",
"node_modules/leaflet/dist"
]);
for (const nodeModuleItem of [...nodeModulesFile, ...nodeModulesFolder]) {
copyNodeModuleFileOrFolder(nodeModuleItem);
}
console.log("Copying complete!")
} catch(err) {
console.error("Error during copy:", err)
process.exit(1)
}

View File

@@ -1,44 +0,0 @@
#!/usr/bin/env bash
set -e # Fail on any command error
shopt -s globstar
BUILD_DIR="./build"
if ! [[ $(which npm) ]]; then
echo "Missing npm"
exit 1
fi
# Trigger the build
echo Build start
npm run build:prepare-dist
echo Build finished
# Patch package.json main
sed -i 's|./dist/electron-main.js|electron-main.js|g' "$BUILD_DIR/package.json"
# run in subshell (so we return to original dir)
(cd $BUILD_DIR && npm ci --omit=dev)
if [[ -d "$BUILD_DIR"/node_modules ]]; then
# cleanup of useless files in dependencies
for d in 'image-q/demo' \
'@excalidraw/excalidraw/dist/excalidraw-assets-dev' '@excalidraw/excalidraw/dist/excalidraw.development.js' '@excalidraw/excalidraw/dist/excalidraw-with-preact.development.js' \
'mermaid/dist/mermaid.js' \
'boxicons/svg' 'boxicons/node_modules/react'/* \
'@jimp/plugin-print/fonts' 'jimp/browser' 'jimp/fonts'; do
[[ -e "$BUILD_DIR"/node_modules/"$d" ]] && rm -r "$BUILD_DIR"/node_modules/"$d"
done
# delete all tests (there are often large images as test file for jimp etc.)
for d in 'test' 'docs' 'demo' 'example'; do
find "$BUILD_DIR"/node_modules -name "$d" -exec rm -rf {} +
done
fi
find $BUILD_DIR/libraries -name "*.map" -type f -delete
find $BUILD_DIR/node_modules -name "*.map" -type f -delete
find $BUILD_DIR -name "*.ts" -type f -delete
unset f d BUILD_DIR

View File

@@ -0,0 +1,14 @@
const child_process = require("child_process");
module.exports = function (filePath) {
const { WINDOWS_SIGN_EXECUTABLE } = process.env;
if (!WINDOWS_SIGN_EXECUTABLE) {
console.warn("[Sign] Skip signing due to missing environment variable.");
return;
}
const command = `${WINDOWS_SIGN_EXECUTABLE} --executable "${filePath}"`;
console.log(`[Sign] ${command}`);
child_process.execSync(command);
}

View File

@@ -8,9 +8,6 @@ noAuthentication=false
# set to true to disable backups (e.g. because of limited space on server)
noBackup=false
# Disable automatically generating desktop icon
# noDesktopIcon=true
[Network]
# host setting is relevant only for web deployments - set the host on which the server will listen
# host=0.0.0.0
@@ -46,4 +43,17 @@ cookieMaxAge=1814400
[Sync]
#syncServerHost=
#syncServerTimeout=
#syncServerProxy=
#syncServerProxy=
[MultiFactorAuthentication]
# Set the base URL for OAuth/OpenID authentication
# This is the URL of the service that will be used to verify the user's identity
oauthBaseUrl=
# Set the client ID for OAuth/OpenID authentication
# This is the ID of the client that will be used to verify the user's identity
oauthClientId=
# Set the client secret for OAuth/OpenID authentication
# This is the secret of the client that will be used to verify the user's identity
oauthClientSecret=

View File

@@ -0,0 +1,14 @@
-- Add the oauth user data table
CREATE TABLE IF NOT EXISTS "user_data"
(
tmpID INT,
username TEXT,
email TEXT,
userIDEncryptedDataKey TEXT,
userIDVerificationHash TEXT,
salt TEXT,
derivedKey TEXT,
isSetup TEXT DEFAULT "false",
UNIQUE (tmpID),
PRIMARY KEY (tmpID)
);

View File

@@ -126,6 +126,19 @@ CREATE TABLE IF NOT EXISTS "attachments"
utcDateScheduledForErasureSince TEXT DEFAULT NULL,
isDeleted INT not null,
deleteId TEXT DEFAULT NULL);
CREATE TABLE IF NOT EXISTS "user_data"
(
tmpID INT,
username TEXT,
email TEXT,
userIDEncryptedDataKey TEXT,
userIDVerificationHash TEXT,
salt TEXT,
derivedKey TEXT,
isSetup TEXT DEFAULT "false",
UNIQUE (tmpID),
PRIMARY KEY (tmpID)
);
CREATE INDEX IDX_attachments_ownerId_role
on attachments (ownerId, role);

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

@@ -1,7 +1,7 @@
# Advanced Showcases
Trilium offers advanced functionality through [Scripts](../Note%20Types/Code/Scripts.md) and [Promoted Attributes](Attributes/Promoted%20Attributes.md). To illustrate these features, we've prepared several showcases available in the [demo notes](Database.md):
* [Relation Map](Relation%20Map.md)
* [Relation Map](../Note%20Types/Relation%20Map.md)
* [Day Notes](Advanced%20Showcases/Day%20Notes.md)
* [Weight Tracker](Advanced%20Showcases/Weight%20Tracker.md)
* [Task Manager](Advanced%20Showcases/Task%20Manager.md)

View File

@@ -7,7 +7,7 @@ Select an existing day note, and the menubar contains a calendar widget. Select
![](1_Day%20Notes_image.png)
This pattern works well also because of [Cloning Notes](../../Basic%20Concepts/Note/Cloning%20Notes.md) functionality - note can appear in multiple places in the note tree, so besides appearing under day note, it can also be categorized into other notes.
This pattern works well also because of [Cloning Notes](../../Basic%20Concepts%20and%20Features/Notes/Cloning%20Notes.md) functionality - note can appear in multiple places in the note tree, so besides appearing under day note, it can also be categorized into other notes.
## Demo
@@ -43,6 +43,7 @@ It's possible to customize the title of generated date notes by defining a `#dat
It is also possible to customize the title of generated month notes through the `#monthPattern` attribute, much like `#datePattern`. The options are:
* `{isoMonth}` results in an ISO 8061 formatted month (e.g. "2025-03" for March 2025)
* `{monthNumberPadded}` results in a number like `09` for September, and `11` for November
* `{month}` results in the full month name (e.g. `September` or `October`)
* `{shortMonth3}` is replaced with the first 3 letters of the month, e.g. Jan, Feb, etc.

View File

@@ -7,7 +7,7 @@ Task Manager is a [promoted attributes](../Attributes/Promoted%20Attributes.md)
Task Manager manages outstanding (TODO) tasks and finished tasks (non-empty doneDate attribute). Outstanding tasks are further categorized by location and arbitrary tags - whenever you change tag attribute in the task note, this task is then automatically moved to appropriate location.
Task Manager also integrates with [day notes](Day%20Notes.md) - notes are [cloned](../../Basic%20Concepts/Note/Cloning%20Notes.md) into day note to both todoDate note and doneDate note (with [prefix](../../Basic%20Concepts/Navigation/Tree%20Concepts.md) of either "TODO" or "DONE").
Task Manager also integrates with [day notes](Day%20Notes.md) - notes are [cloned](../../Basic%20Concepts%20and%20Features/Notes/Cloning%20Notes.md) into day note to both todoDate note and doneDate note (with [prefix](../../Basic%20Concepts%20and%20Features/Navigation/Tree%20Concepts.md) of either "TODO" or "DONE").
## Implementation

View File

@@ -36,15 +36,15 @@ Labels are also searchable, enhancing note retrieval.
* `**appCss**`: Marks CSS notes used to modify Triliums appearance
* `**appTheme**`: Marks full CSS themes available in Trilium's options
* `**cssClass**`: Adds a CSS class to the note's representation in the tree
* `**iconClass**`: Adds a CSS class to the note's icon, useful for distinguishing notes visually. See [note icons](../Basic%20Concepts/Note/Note%20Icons.md)
* `**iconClass**`: Adds a CSS class to the note's icon, useful for distinguishing notes visually. See [note icons](../Basic%20Concepts%20and%20Features/Notes/Note%20Icons.md)
* `**pageSize**`: Specifies the number of items per page in note listings
* `**customRequestHandler**` **and** `**customResourceProvider**`: Refer to [Custom request handler](Custom%20Request%20Handler.md)
* `**widget**`: Marks a note as a custom widget, added to Trilium's component tree
* `**workspace**` **and related attributes**: See [Workspace](../Basic%20Concepts/Navigation/Workspace.md) for more details
* `**workspace**` **and related attributes**: See [Workspace](../Basic%20Concepts%20and%20Features/Navigation/Workspace.md) for more details
* `**searchHome**`: Specifies the parent for new search notes
* `**inbox**`: Designates a default location for new notes created via the sidebar
* `**sqlConsoleHome**`: Default location for SQL console notes
* `**bookmarked**` **and** `**bookmarkFolder**`: See [Bookmarks](../Basic%20Concepts/Navigation/Bookmarks.md)
* `**bookmarked**` **and** `**bookmarkFolder**`: See [Bookmarks](../Basic%20Concepts%20and%20Features/Navigation/Bookmarks.md)
* `**shareXXX**`: See [Sharing](Sharing.md)
* `**keyboardShortcut**`: Assigns a keyboard shortcut to open the note
* `**displayRelations**` **and** `**hideRelations**`: Manages the display of note relations

View File

@@ -23,7 +23,7 @@ To create an instance note through the UI:
![show child note templates](../../Attachments/template-create-instance-n.png)
For the template to appear in the menu, the template note must have the `#template` label. Do not confuse this with the `~template` relation, which links the instance note to the template note. If you use [workspaces](../../Basic%20Concepts/Navigation/Workspace.md), you can also mark templates with `#workspaceTemplate` to display them only in the workspace.
For the template to appear in the menu, the template note must have the `#template` label. Do not confuse this with the `~template` relation, which links the instance note to the template note. If you use [workspaces](../../Basic%20Concepts%20and%20Features/Navigation/Workspace.md), you can also mark templates with `#workspaceTemplate` to display them only in the workspace.
Templates can also be added or changed after note creation by creating a `~template` relation pointing to the desired template note.
@@ -31,6 +31,6 @@ Templates can also be added or changed after note creation by creating a `~templ
From a visual perspective, templates can define `#iconClass` and `#cssClass` attributes, allowing all instance notes (e.g., books) to display a specific icon and CSS style.
Explore the concept further in the [demo notes](../Database.md), including examples like the [Relation Map](../Relation%20Map.md), [Task Manager](../Advanced%20Showcases/Task%20Manager.md), and [Day Notes](../Advanced%20Showcases/Day%20Notes.md).
Explore the concept further in the [demo notes](../Database.md), including examples like the [Relation Map](../../Note%20Types/Relation%20Map.md), [Task Manager](../Advanced%20Showcases/Task%20Manager.md), and [Day Notes](../Advanced%20Showcases/Day%20Notes.md).
Additionally, see [default note title](../Default%20Note%20Title.md) for creating title templates. Note templates and title templates can be combined by creating a `#titleTemplate` for a template note.

View File

@@ -5,11 +5,11 @@ Your Trilium data is stored in a [SQLite](https://www.sqlite.org) database which
When you run Trilium for the first time, it will generate a new database containing demo notes. These notes showcase its many features, such as:
* [Relation Map](Relation%20Map.md)
* [Relation Map](../Note%20Types/Relation%20Map.md)
* [Day Notes](Advanced%20Showcases/Day%20Notes.md)
* [Weight Tracker](Advanced%20Showcases/Weight%20Tracker.md)
* [Task Manager](Advanced%20Showcases/Task%20Manager.md)
* [Custom CSS Themes](../Basic%20Concepts/Themes.md)
* [Custom CSS Themes](../Basic%20Concepts%20and%20Features/Themes.md)
### Restoring Demo Notes

View File

@@ -1,7 +1,7 @@
# SQL Console
The SQL Console is Trilium's built-in database editor.
It can be accessed by going to the [global menu](../../../Basic%20Concepts/UI%20Elements) → Advanced → Open SQL Console.
It can be accessed by going to the [global menu](../../../Basic%20Concepts%20and%20Features/UI%20Elements) → Advanced → Open SQL Console.
![](SQL%20Console_image.png)

View File

@@ -3,7 +3,11 @@ ETAPI is Trilium's public/external REST API. It is available since Trilium v0.50
The documentation is in OpenAPI format, available [here](https://github.com/TriliumNext/Notes/blob/master/src/etapi/etapi.openapi.yaml).
[trilium-py](https://github.com/Nriver/trilium-py) is a third-party Python implementation for ETAPI client, you can use Python to communicate with Trilium.
## API clients
As an alternative to calling the API directly, there are client libraries to simplify this
* [trilium-py](https://github.com/Nriver/trilium-py), you can use Python to communicate with Trilium.
## Authentication
@@ -25,4 +29,26 @@ Authorization: Basic BATOKEN
* Where `username` is "etapi"
* And `password` is the generated ETAPI token described above.
Basic Auth is meant to be used with tools which support only basic auth.
Basic Auth is meant to be used with tools which support only basic auth.
## Interaction using Bash scripts
It is possible to write simple Bash scripts to interact with Trilium. As an example, here's how to obtain the HTML content of a note:
```sh
#!/usr/bin/env bash
# Configuration
TOKEN=z1vA4fkGxjOR_ZXLrZeqHEFOv65yV3882iFCRtNIK9k9iWrHliITNSLQ=
SERVER=http://localhost:8080
# Download a note by ID
NOTE_ID="i6ra4ZshJhgN"
curl "$SERVER/etapi/notes/$NOTE_ID/content" -H "Authorization: $TOKEN"
```
Make sure to replace the values of:
* `TOKEN` with your ETAPI token.
* `SERVER` with the correct protocol, host name and port to your Trilium instance.
* `NOTE_ID` with an existing note ID to download.

View File

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

View File

@@ -0,0 +1,32 @@
# Note Map (Link map, Tree map)
Note map is a visualisation of connections between notes.
This provides an insight into a structure ("web") of notes.
There are two types of note map:
* Link Map, which shows relations between notes.
* Note Map, which shows the hierarchical tree structure.
## Link Map
Shows [relations](Attributes.md) between notes:
![](1_Note%20Map%20\(Link%20map,%20Tree%20m.png)
## Tree Map
Shows hierarchical map of notes:
![](Note%20Map%20\(Link%20map,%20Tree%20m.png)
## Dedicated note type
Apart from the note map feature which can be accessed from any note, it is also possible to create a dedicated note which will display the relations in full screen. See [Note Map](../Note%20Types/Note%20Map.md) for more information.
## See also
[Relation map](../Note%20Types/Relation%20Map.md) is a similar concept, with some differences:
* note map is automatically generated while relation map must be created manually
* relation map is a type of note while a link map is just virtual visualization

View File

@@ -1,25 +0,0 @@
# Note Map
Note map is a visualisation of connections between notes.
This provides an insight into a structure ("web") of notes.
There are two types of note map:
## Link Map
Shows [relations](Attributes.md) between notes:
![](1_Note%20Map_image.png)
## Tree Map
Shows hierarchical map of notes:
![](Note%20Map_image.png)
## See also
[Relation map](Relation%20Map.md) is a similar concept, with some differences:
* note map is automatically generated while relation map must be created manually
* relation map is a type of note while a link map is just virtual visualization

View File

@@ -0,0 +1,55 @@
# Note source
## Understanding the source code of the different notes
Internally, the structure of the content of each note is different based on the [Note Types](../Note%20Types).
For example:
* [Text Notes](#root/_hidden/_options/_optionsTextNotes) are represented internally as HTML, using the [CKEditor](Technologies%20used/CKEditor.md) representation. Note that due to the custom plugins, some HTML elements are specific to Trilium only, for example the admonitions.
* [Code Notes](#root/_hidden/_options/_optionsCodeNotes) are plain text and are represented internally as-is.
* [Geo map](../Note%20Types/Geo%20map.md) notes contain only minimal information (viewport, zoom) as a JSON.
* [Canvas](../Note%20Types/Canvas.md) notes are represented as JSON, with Trilium's own information alongside with [Excalidraw](Technologies%20used/Excalidraw.md)'s internal JSON representation format.
* [Mind Map](../Note%20Types/Mind%20Map.md) notes are represented as JSON, with the internal format of [MindElixir](Technologies%20used/MindElixir.md).
Note that some information is also stored as [Attachments](../Attachments). For example [Canvas](../Note%20Types/Canvas.md) notes use the attachments feature to store the custom libraries, and alongside with [Mind Map](../Note%20Types/Mind%20Map.md) and other similar note types it stores an SVG representation of the content for use in other features such as including in other notes, shared notes, etc.
Here's part of the HTML representation of this note, as it's stored in the database (but prettified).
```html
<h2>
Understanding the source code of the different notes
</h2>
<p>
Internally, the structure of the content of each note is different based on the&nbsp;
<a class="reference-link" href="../Note%20Types">
Note Types
</a>
.
</p>
```
## Viewing the source code
It is possible to view the source code of a note by pressing the contextual menu in [Note buttons](../Basic%20Concepts%20and%20Features/UI%20Elements/Note%20buttons.md) and selecting _Note source_.
![](Note%20source_image.png)
The source code will be displayed in a new tab.
For some note types, such as text notes, the source code is also formatted in order to be more easily readable.
## Modifying the source code
It is possible to modify the source code of a note directly, however not via the _Note source_ functionality. 
To do so:
1. Change the note type from the real note type (e.g. Canvas, Geo Type) to Code (plain text) or the corresponding format such as JSON or HTML.
2. Confirm the warning about changing the note type.
3. The source code will appear, make the necessary modifications.
4. Change the note type back to the real note type.
> [!WARNING]
> Depending on the changes made, there is a risk that the note will not render properly. It's best to save a revision before making any big changes.
>
> If the note does not render properly, modify the source code again or revert to a prior revision. Since the error handling for unexpected changes might not always be perfect, it be required to refresh the application.

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -1,49 +0,0 @@
# Relation Map
Relation map is a type of [note](../Basic%20Concepts/Navigation/Tree%20Concepts.md) which visualizes notes and their [relations](Attributes.md). See an example:
## Development process demo
This is a basic example how you can create simple diagram using relation maps:
![](../Attachments/relation-map-dev-process.png)
And this is how you can create it:
![](Relation%20Map_relation-map-.gif)
We start completely from scratch by first creating new note called "Development process" and changing its type to "Relation map". After that we create new notes one by one and place them by clicking into the map. We also drag [relations](Attributes.md)between notes and name them. That's all!
Items on the map - "Specification", "Development", "Testing" and "Demo" are actually notes which have been created under "Development process" note - you can click on them and write some content. Connections between notes are called "[relations](Attributes.md)".
## Family demo
This is more complicated demo using some advanced concepts. Resulting diagram is here:
![](../Attachments/relation-map-family.png)
This is how you get to it:
![](../Attachments/relation-map-family-demo.gif)
There are several steps here:
* we start with empty relation map and two existing notes representing Prince Philip and Queen Elizabeth II. These two notes already have "isPartnerOf" [relations](Attributes.md)defined.
* There are actually two "inverse" relations (one from Philip to Elizabeth and one from Elizabeth to Philip)
* we drag both notes to relation map and place to suitable position. Notice how the existing "isPartnerOf" relations are displayed.
* now we create new note - we name it "Prince Charles" and place it on the relation map by clicking on the desired position. The note is by default created under the relation map note (visible in the note tree on the left).
* we create two new relations "isChildOf" targeting both Philip and Elizabeth
* now there's something unexpected - we can also see the relation to display another "hasChild" relation. This is because there's a [relation definition](Attributes/Promoted%20Attributes.md) which puts "isChildOf" as an "[inverse](Attributes/Promoted%20Attributes.md)" relation of "hasChildOf" (and vice versa) and thus it is created automatically.
* we create another note for Princess Diana and create "isPartnerOf" relation from Charles. Again notice how the relation has arrows both ways - this is because "isPartnerOf" definition specifies its inverse relation as again "isPartnerOf" so the opposite relation is created automatically.
* as the last step we pan & zoom the map to fit better to window dimensions.
Relation definitions mentioned above come from "Person template" note which is assigned to any child of "My Family Tree" relation note. You can play with the whole thing in the [demo notes](Database.md).
## Details
You can specify which relations should be displayed with comma delimited names of relations in `displayRelations` label.
Alternatively, you can specify comma delimited list of relation names in `hideRelations` which will display all relations, except for the ones defined in the label.
## See also
* [Note map](Note%20Map.md) is a similar concept

View File

@@ -41,7 +41,7 @@ To protect shared notes with a username and password, you can use the `#shareCre
The default shared page is basic in design, but you can customize it using your own CSS:
* **Custom CSS**: Link a CSS [code note](../Note%20Types/Code.md) to the shared page by adding a `~shareCss` relation to the note. If you want this style to apply to the entire subtree, make the label inheritable. You can hide the CSS code note from the tree navigation by adding the `#shareHiddenFromTree` label.
* **Omitting Default CSS**: For extensive styling changes, use the `#shareOmitDefaultCss` label to avoid conflicts with Trilium's [default stylesheet](../Basic%20Concepts/Themes.md).
* **Omitting Default CSS**: For extensive styling changes, use the `#shareOmitDefaultCss` label to avoid conflicts with Trilium's [default stylesheet](../Basic%20Concepts%20and%20Features/Themes.md).
### Adding JavaScript

View File

@@ -0,0 +1,4 @@
# Technologies used
One core aspect of Trilium that allows it to have support for multiple [Note Types](../Note%20Types) is the fact that it makes use of various off-the-shelf or reusable libraries.
The sub-pages showcase some of the technologies used, for a better understanding of how Trilium works but also to credit the developers of that particular technology.

View File

@@ -0,0 +1,34 @@
# CKEditor
## Editor core
The CKEditor is the WYSIWYG (standing for What You See Is What You Get) editor behind [Text](../../Note%20Types/Text.md) notes.
Their website is [ckeditor.com](https://ckeditor.com/).
CKEditor by itself is a commercial product, but the core is open-source. As described in [its documentation](https://ckeditor.com/docs/ckeditor5/latest/features/index.html), the editor supports quite a large number of features. Do note that not all the features are enabled in Trilium.
## Premium features
Some features are marked as premium in the CKEditor feature set. This means that they cannot be used without a license.
Trilium cannot benefit from any of these premium features as they require a commercial license, however we are in discussions with the CKEditor team to allow us to use a subset of these premium features such as [Slash commands](https://ckeditor.com/docs/ckeditor5/latest/features/slash-commands.html).
## Plugins
The CKEditor ecosystem is quite extensible, in the sense that custom plugins can be written to extend the functionality of the editor beyond its original scope.
Trilium makes use of such features:
* The math feature is added by a version of [isaul32/ckeditor5-math: Math feature for CKEditor 5.](https://github.com/isaul32/ckeditor5-math) modified by us to fit our needs.
* We also make use of modified upstream plugins such as [ckeditor/ckeditor5-mermaid](https://github.com/ckeditor/ckeditor5-mermaid) to allow inline Mermaid code.
* [mlewand/ckeditor5-keyboard-marker: Plugin adds support for the keyboard input element (<kbd>) to CKEditor 5.](https://github.com/mlewand/ckeditor5-keyboard-marker)
* A modified version of [ThomasAitken/ckeditor5-footnotes: Footnotes plugin for CKEditor5](https://github.com/ThomasAitken/ckeditor5-footnotes) to allow footnotes.
Apart from that, Trilium also has its own set of specific plugins such as:
* Cut to note
* Include note
* Mentions, for linking pages.
* Markdown import.
* Reference links.
* etc.

View File

@@ -0,0 +1,4 @@
# Excalidraw
[Excalidraw](https://excalidraw.com/) is the technology behind the [Canvas](../../Note%20Types/Canvas.md) notes. The source code of the library is available on [GitHub](https://github.com/excalidraw/excalidraw).
We are using an unmodified version of it, so it shares the same [issues](https://github.com/excalidraw/excalidraw/issues) as the original.

View File

@@ -0,0 +1,10 @@
# Leaflet
Leaflet is the library behind [Geo map](../../Note%20Types/Geo%20map.md) notes.
## Plugins
Leaflet is also highly customizable via external plugins.
Currently we use:
* [mpetazzoni/leaflet-gpx: A GPX track plugin for Leaflet.js](https://github.com/mpetazzoni/leaflet-gpx)

View File

@@ -0,0 +1,12 @@
# MindElixir
MindElixir is the library we are using for the [Mind Map](../../Note%20Types/Mind%20Map.md) note types.
The main library is available on [GitHub as mind-elixir-core](https://github.com/SSShooter/mind-elixir-core/issues).
The library is embedded as-is without additional modifications.
Issues with its functionality should generally be reported [upstream](https://github.com/ssshooter/mind-elixir-core).
## Plugins
MindElixir supports plugins, and one such plugin we are making use of is [SSShooter/node-menu: A node menu plugin of mind-elixir](https://github.com/SSShooter/node-menu), which allows editing the fonts, colors, links of nodes.

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

@@ -1,4 +1,4 @@
# Evernote
# Evernote
Trilium can import ENEX files which are used by Evernote for backup/export. One ENEX file represents content (notes and resources) of one notebook.
## Export ENEX from Evernote

View File

@@ -1,4 +1,4 @@
# Markdown
# Markdown
Trilium Notes supports importing Markdown restricted to the [CommonMark specification](https://spec.commonmark.org/current/) (where [tables are not supported](https://github.com/TriliumNext/Notes/issues/2026))
## Import

View File

@@ -1,4 +1,4 @@
# OneNote
# OneNote
**This page describes a method to migrate via EverNote Legacy, but this app is no longer available/working.**
## Prep Onenote notes for best compatibility

View File

@@ -1,4 +1,4 @@
# Keyboard Shortcuts
# Keyboard Shortcuts
This is supposed to be a complete list of keyboard shortcuts. Note that some of these may work only in certain contexts (e.g. in tree pane or note editor).
It is also possible to configure most keyboard shortcuts in Options -> Keyboard shortcuts. Using `global:` prefix, you can assign a shortcut which will work even without Trilium being in focus (requires app restart to take effect).
@@ -42,7 +42,7 @@ Only in desktop (electron build):
* <kbd>Shift</kbd>+<kbd><span></span></kbd>, <kbd>Shift</kbd>`+`<kbd><span></span></kbd> - multi-select note above/below
* <kbd>Ctrl</kbd>+<kbd>A</kbd> - select all notes in the current level
* <kbd>Shift</kbd>+<kbd>🖱 Left click</kbd> - multi select note which you clicked on
* <kbd>Ctrl</kbd>+<kbd>C</kbd> - copies current note (or current selection) into clipboard (used for [cloning](Note/Cloning%20Notes.md)
* <kbd>Ctrl</kbd>+<kbd>C</kbd> - copies current note (or current selection) into clipboard (used for [cloning](Notes/Cloning%20Notes.md)
* <kbd>Ctrl</kbd>+<kbd>X</kbd> - cuts current (or current selection) note into clipboard (used for moving notes)
* <kbd>Ctrl</kbd>+<kbd>V</kbd> - pastes note(s) as sub-note into current note (which is either move or clone depending on whether it was copied or cut into clipboard)
* <kbd>Del</kbd> - delete note / sub-tree

View File

@@ -1,4 +1,4 @@
# Bookmarks
# Bookmarks
To easily access selected notes, you can bookmark them. See demo:
![](../../Attachments/bookmarks.gif)

View File

@@ -1,4 +1,4 @@
# Note Hoisting
# Note Hoisting
Hoisting is a standard outliner feature which allows you to focus on (or "zoom into") a specific note and its subtree by hiding all parent and sibling notes. Demo:
![](../../Attachments/note-hoisting.gif)

View File

@@ -1,4 +1,4 @@
# Note Navigation
# Note Navigation
One of the Trilium's goals is to provide fast and comfortable navigation between notes.
## Backwards and forward

View File

@@ -1,4 +1,4 @@
# Search
# Search
## Local Search
Local search allows you to search within the currently displayed note. To initiate a local search, press <kbd>Ctrl</kbd> + <kbd>F</kbd>. If using a web browser, this will be handled by the browser's native search functionality. In the desktop (electron) version, a separate dialog will apear.

View File

@@ -1,15 +1,15 @@
# Tree Concepts
# Tree Concepts
This page explains the basic concepts related to the tree structure of notes in TriliumNext.
## Note
A note is the central entity in TriliumNext. For more details, see [Note](../Note.md).
A note is the central entity in TriliumNext. For more details, see [Note](../Notes.md).
## Branch
A branch describes the placement of a note within the note tree. Essentially, it is a tuple of `parentNoteId` and `noteId`, indicating that the given note is placed as a child under the specified parent note.
Each note can have multiple branches, meaning any note can be placed in multiple locations within the tree. This concept is referred to as " [cloning](../Note/Cloning%20Notes.md)."
Each note can have multiple branches, meaning any note can be placed in multiple locations within the tree. This concept is referred to as " [cloning](../Notes/Cloning%20Notes.md)."
## Prefix

View File

@@ -1,4 +1,4 @@
# Workspace
# Workspace
Workspace is a concept built up on top of [note hoisting](Note%20Hoisting.md). It is based on the idea that a user has several distinct spheres of interest. An example might be "Personal" and "Work", these two spheres are quite distinct and don't interact together. When I focus on Work, I don't really care about personal notes.
So far workspace consists of these features:

View File

@@ -1,4 +1,4 @@
# Note
# Notes
Note is a central entity in Trilium. Main attributes of note are title and content.
### Note types
@@ -9,7 +9,7 @@ Note is a central entity in Trilium. Main attributes of note are title and conte
* file note - represents uploaded file (e.g. docx MS Word document).
* render HTML note - this works as an output screen of attached [scripts](../Note%20Types/Code/Scripts.md)
* [saved search](../Note%20Types/Saved%20Search.md) note - contains saved search query and dynamically displays result of the search as its sub-notes
* [relation map](../Advanced%20Usage/Relation%20Map.md) note - visualizes notes and their relations
* [relation map](../Note%20Types/Relation%20Map.md) note - visualizes notes and their relations
* [book note](../Note%20Types/Book.md) - displays its children notes, useful for reading many short notes
* mermaid - create diagrams and flowcharts using [mermaid.js ↗](https://github.com/mermaid-js/mermaid)
* [canvas note](#root/fKYGY3OOo5d1) - allows hand drawn notes and basic diagraming on an infinite canvas using [excalidraw ↗](https://github.com/excalidraw/excalidraw)
@@ -22,7 +22,7 @@ There's one special note called "root note" which is root of the note tree. All
### Tree structure
Importantly, note itself doesn't carry information on its placement in note tree. See [cloning](Note/Cloning%20Notes.md) for details.
Importantly, note itself doesn't carry information on its placement in note tree. See [cloning](Notes/Cloning%20Notes.md) for details.
Tree structure of notes can resemble file system - but compared to that notes in Trilium can act as both file and directory - meaning that note can both have its own content and have children. "Leaf note" is a note which doesn't have any children.
@@ -40,4 +40,4 @@ After the 7 days (configurable) the notes will be "erased" - their title, conten
## See also
* [Read-only note](Note/Read-Only%20Notes.md)
* [Read-only note](Notes/Read-Only%20Notes.md)

View File

@@ -1,4 +1,4 @@
# Archived Notes
# Archived Notes
Archived notes are notes which have `archived` [attribute](../../Advanced%20Usage/Attributes.md) - either directly or [inherited](../../Advanced%20Usage/Attributes/Attribute%20Inheritance.md).
Such notes are then by default not shown in the autocomplete and in the full text [search](../Navigation/Search.md).

View File

@@ -1,5 +1,5 @@
# Attachments
A [note](../Note.md) in Trilium can _own_ one or more attachments, which can be either images or files. These attachments can be displayed or linked within the note that owns them.
# Attachments
A [note](../Notes.md) in Trilium can _own_ one or more attachments, which can be either images or files. These attachments can be displayed or linked within the note that owns them.
This can be especially useful to include dependencies for your [scripts](../../Note%20Types/Code/Scripts.md). The [Weight Tracker](../../Advanced%20Usage/Advanced%20Showcases/Weight%20Tracker.md) shows how to use [chartjs](https://chartjs.org/) which is attached to the [script note](#root/HcUYTojFohtb).

View File

@@ -1,4 +1,4 @@
# Cloning Notes
# Cloning Notes
## Motivation
Trilium's core feature is the ability to structure your notes into hierarchical tree-like structure.

View File

@@ -1,4 +1,4 @@
# Export as PDF
# Export as PDF
![](Export%20as%20PDF_image.png)
Screenshot of the note contextual menu indicating the “Export as PDF” option.

View File

@@ -0,0 +1,6 @@
# Note Icons
Icons are useful for distinguishing notes. At the technical level, they are set by the `iconClass` attribute which adds a CSS class to the note. For example `#iconClass="bx bx-calendar"` will show a calendar instead of the default page or folder icon. Looking up and remembering the css class names is not necessary. While editing a note, click on the icon next to the title to bring up a chooser gallery:
![change note icon](../../Attachments/note-icon-change.png)
![note icon gallery](../../Attachments/note-icon-gallery.png)

View File

@@ -1,4 +1,4 @@
# Note Revisions
# Note Revisions
Trilium supports seamless versioning of notes by storing snapshots ("revisions") of notes at regular intervals.
## Note Revisions Snapshot Interval

View File

@@ -1,4 +1,4 @@
# Protected Notes
# Protected Notes
Trilium is designed to store a wide variety of data, including sensitive information such as personal journals, credentials, or confidential documents. To safeguard this type of content, Trilium offers the option to protect notes, which involves the following measures:
* **Encryption:** Protected notes are encrypted using a key derived from your password. This ensures that without the correct password, protected notes remain indecipherable. Even if someone gains access to your Trilium [database](../../Advanced%20Usage/Database.md), they won't be able to read your encrypted notes.

View File

@@ -1,4 +1,4 @@
# Read-Only Notes
# Read-Only Notes
Both [text](../../Note%20Types/Text.md) and [code](../../Note%20Types/Code.md) notes in Trilium can be set to read-only. When a note is in read-only mode, it is presented to the user in a non-editable view, with the option to switch to editing mode if needed.
## Setting Read-Only Mode with a Label

View File

@@ -1,4 +1,4 @@
# Sorting Notes
# Sorting Notes
## Sorting Notes
You can sort notes by right-clicking the parent note in the note tree and selecting Advanced -> Sort notes by ... This will sort existing notes, but will not automatically sort future notes added to this parent note

View File

@@ -1,4 +1,4 @@
# Themes
# Themes
## Default Themes
Trilium comes with a couple pre-installed color themes, with the default being a light theme. To switch to a dark theme or any other available theme, navigate to the Options menu (accessible via the app icon in the top-left corner), select the Appearance tab, and choose your preferred theme.

View File

@@ -1,4 +1,4 @@
# Theme Gallery
# Theme Gallery
These are user-created themes which were made publicly available:
## Legacy Themes

View File

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View File

@@ -1,4 +1,4 @@
# Global menu
# Global menu
The global menu configures the current window (zoom, keeping the window on top) and offers access to some more advanced options.
![](Global%20menu_image.png)

View File

@@ -1,4 +1,4 @@
# Launch Bar
# Launch Bar
## Position of the Launch bar
Depending on the layout selected, the launcher bar will either be on the left side of the screen with buttons displayed vertically or at the top of the screen. See [Vertical and horizontal layout](Vertical%20and%20horizontal%20layout.md) for more information.
@@ -32,7 +32,7 @@ Drag-and-drop the items in the tree in order to change their order. See [Note
## Customizing the launcher
* The icon of a launcher can be changed just like a normal note. See [Note Icons](../Note/Note%20Icons.md) for more information.
* The icon of a launcher can be changed just like a normal note. See [Note Icons](../Notes/Note%20Icons.md) for more information.
* The title of the launcher can also be changed.
### Resetting

View File

@@ -1,4 +1,4 @@
# Note Tree
# Note Tree
This page explains how to manipulate the note tree in TriliumNext, focusing on moving notes.
![](1_Note%20Tree_image.png)
@@ -20,7 +20,7 @@ You can easily rearrange the note tree by dragging and dropping notes, as demons
## Context Menu
You can also move notes using the familiar cut and paste functions available in the context menu, or with the associated keyboard [shortcuts](../Keyboard%20Shortcuts.md): `CTRL-C` ( [copy](../Note/Cloning%20Notes.md)), <kbd>Ctrl</kbd> + <kbd>X</kbd> (cut) and <kbd>Ctrl</kbd> + <kbd>V</kbd> (paste).
You can also move notes using the familiar cut and paste functions available in the context menu, or with the associated keyboard [shortcuts](../Keyboard%20Shortcuts.md): `CTRL-C` ( [copy](../Notes/Cloning%20Notes.md)), <kbd>Ctrl</kbd> + <kbd>X</kbd> (cut) and <kbd>Ctrl</kbd> + <kbd>V</kbd> (paste).
## Multiple selection

View File

@@ -0,0 +1,5 @@
# Note buttons
To the right of the [Ribbon](Ribbon.md) there are a few more buttons: ![](Note%20buttons_image.png)
* The Note Revisions button displays the [Note Revisions](../Notes/Note%20Revisions.md) for that particular note.
* The contextual menu offers commands for the note or its subtree, such as import, export, viewing the [Note source code](../../Advanced%20Usage/Note%20source.md) or [Attachments](../Notes/Attachments.md).

Binary file not shown.

After

Width:  |  Height:  |  Size: 941 B

View File

@@ -1,4 +1,4 @@
# Ribbon
# Ribbon
![](Ribbon_image.png)
The ribbon allows changing options, attributes and viewing information about the current note.

View File

@@ -1,4 +1,4 @@
# Vertical and horizontal layout
# Vertical and horizontal layout
## Layouts
Trilium supports two different layouts, based on your preference.

View File

@@ -1,4 +1,4 @@
# Zen mode
# Zen mode
![](3_Zen%20mode_image.png)
Screenshot of Zen Mode activated on a Windows 11 system with native title bar off and background effects on.
@@ -13,9 +13,9 @@ Screenshot of the Zen Mode option in the global menu.
The Zen Mode can be activated by accessing the global menu and selecting the “Zen Mode” option:
Aside from the global menu, it's also possible to activate this mode by using a keyboard shortcut which is <kbd>Alt</kbd>+<kbd>Z</kbd> by default. Look for `toggleZenMode` in the shortcut configuration.
Aside from the global menu, it's also possible to activate this mode by using a keyboard shortcut (which is <kbd>F9</kbd> since TriliumNext 0.92.5 and <kbd>Alt</kbd>+<kbd>Z</kbd> for older versions). Look for `toggleZenMode` in the shortcut configuration.
Once Zen Mode is activated, all the UI elements of the application will be hidden away, including the global menu. In that case, the Zen Mode can be deactivated either by pressing the ![](Zen%20mode_image.png)icon in the top-right corner of the window or by pressing the keyboard combination again.
Once Zen Mode is activated, all the UI elements of the application will be hidden away, including the global menu. In that case, the Zen Mode can be deactivated either by pressing the ![](Zen%20mode_image.png) icon in the top-right corner of the window or by pressing the keyboard combination again.
Do note that, by design, activating or deactivating the Zen Mode applies only to the current window. Restarting the application will also disable the Zen Mode.

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