Compare commits

..

985 Commits

Author SHA1 Message Date
Elian Doran 4dd531e036 chore(release): 0.92.0-beta
/ Check Docker build (Dockerfile) (push) Failing after 30s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 35s
/ Build Docker images (Dockerfile, linux/arm/v7) (push) Has been skipped
/ Build Docker images (Dockerfile, linux/arm64) (push) Has been skipped
/ Build Docker images (Dockerfile.alpine, linux/amd64) (push) Has been skipped
/ Merge manifest lists (push) Has been skipped
Release / Make Electron (arm64, map[extension:[deb rpm zip flatpak] image:ubuntu-latest name:linux]) (push) Failing after 30s
Release / Make Electron (x64, map[extension:[deb rpm zip flatpak] image:ubuntu-latest name:linux]) (push) Failing after 25s
Release / Build Linux Server (x64, ubuntu-latest) (push) Failing after 37s
Release / Make Electron (arm64, map[extension:[dmg zip] image:macos-latest name:macos]) (push) Has been cancelled
Release / Make Electron (arm64, map[extension:exe image:windows-latest name:windows]) (push) Has been cancelled
Release / Make Electron (x64, map[extension:[dmg zip] image:macos-latest name:macos]) (push) Has been cancelled
Release / Make Electron (x64, map[extension:exe image:windows-latest name:windows]) (push) Has been cancelled
Release / Build Linux Server (arm64, ubuntu-24.04-arm) (push) Has been cancelled
2025-02-17 19:29:59 +02:00
Elian Doran 7bcfb1df96 chore(docs): minor updates 2025-02-17 19:28:54 +02:00
Elian Doran e39bee23aa fix(electron): background effects on fixed light/dark mode (closes #1209) 2025-02-17 18:07:36 +02:00
Elian Doran 5550885206 fix(build): run prepare-dist for electron-forge:make 2025-02-17 17:42:15 +02:00
Elian Doran 152f3193d1 Merge pull request #1183 from TriliumNext/feature/calendar_view
Calendar view
2025-02-16 20:16:02 +02:00
Elian Doran 725a9fc333 feat(view/calendar): add help 2025-02-16 19:57:44 +02:00
Elian Doran 114a70b442 feat(view/calendar): remove redundant margin when in zen mode 2025-02-16 19:20:59 +02:00
Elian Doran 169b2269b1 feat(view/calendar): improve display when creating empty note 2025-02-16 19:17:15 +02:00
Elian Doran e73ea36161 feat(in_app_help): contextual help for book types 2025-02-16 18:09:01 +02:00
Elian Doran c17d10114f feat(mobile): enable prompt dialog for inserting notes 2025-02-16 17:52:04 +02:00
Elian Doran 5677be2dd5 Merge remote-tracking branch 'origin/develop' into feature/calendar_view 2025-02-16 17:43:04 +02:00
Adorian Doran fbacb5bb71 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-16 15:48:42 +02:00
Adorian Doran 630eb5ac8d style(next): restyle the alert bar 2025-02-16 15:47:44 +02:00
Elian Doran a532ae6426 Merge pull request #1196 from TriliumNext/feature/zen_mode
Zen Mode
2025-02-16 15:39:54 +02:00
Elian Doran dc0ac4daa2 fix(zen): buttons on darwin 2025-02-16 15:38:31 +02:00
Elian Doran 753da46935 Merge remote-tracking branch 'origin/develop' into feature/zen_mode 2025-02-16 15:24:28 +02:00
Elian Doran 569ed0868d Merge pull request #1195 from dousha/bugfix-unsharing-hoisted
Allow removing weak branches even if it's hoisted
2025-02-16 15:05:17 +02:00
Elian Doran 324233be50 Merge pull request #1201 from TriliumNext/chore_fix-copy-dist-log
chore(copy-dist): "unpack" log messages before printing
2025-02-16 15:00:41 +02:00
Elian Doran 135f3d913a Merge pull request #1191 from TriliumNext/chore_npm-scripts-namescape
chore: npm scripts namespacing
2025-02-16 14:58:29 +02:00
Elian Doran ee5cc18ef2 fix(view/calendar): end date offset on display 2025-02-16 13:34:39 +02:00
Elian Doran 6d3325766d feat(view/calendar): refresh calendar when entities change 2025-02-16 13:22:44 +02:00
Elian Doran eff93d8e27 Merge remote-tracking branch 'origin/develop' into feature/calendar_view 2025-02-16 11:47:54 +02:00
Elian Doran 952ec516ee feat(test): add test for code block mpapings 2025-02-16 11:43:20 +02:00
Elian Doran a8f9403990 feat(code_block): map a few more themes 2025-02-16 11:43:12 +02:00
Elian Doran aa5c69d97a feat(view/calendar): add flow to create a note 2025-02-15 23:48:06 +02:00
Elian Doran b524abb883 feat(view/calendar): use locale translation for buttons 2025-02-15 21:47:44 +02:00
Elian Doran f8c3587717 feat(view/calendar): add locale support 2025-02-15 21:45:53 +02:00
Elian Doran 9d9b45cafb feat(calendar_view): set first day of the week based on option 2025-02-15 20:18:27 +02:00
Elian Doran 0bcabacd3a feat(calendar_view): translate buttons 2025-02-15 20:15:54 +02:00
Elian Doran 03282e12b7 style(calendar_view): improve layout slightly 2025-02-15 14:15:43 +02:00
Panagiotis Papadopoulos dd4f8a8c27 chore(copy-dist): "unpack" log messages before printing
previously it was printin all messages as part of an array, i.e.
["message"]
After spreading the array, we get the desired out
"message"
2025-02-15 13:08:13 +01:00
Elian Doran 660a393ca6 fix(calendar_view): double scrollbar 2025-02-15 14:07:39 +02:00
Elian Doran 22c8cf3bee feat(calendar_view): allow resizing & fix date offset 2025-02-15 12:47:46 +02:00
Elian Doran e71f0cb091 feat(calendar_view): draggable events 2025-02-15 12:05:35 +02:00
Elian Doran 23cbc82708 feat(calendar_view): clickable events 2025-02-15 11:46:17 +02:00
Elian Doran 1b4281cf77 feat(calendar_view): allow rendering multiple events from multiple relation 2025-02-15 11:42:06 +02:00
Elian Doran a8509d8b1d feat(calendar_view): allow rendering by custom relation 2025-02-15 11:41:08 +02:00
Elian Doran 10b2d19710 feat(calendar_view): allow rendering by custom attribute 2025-02-15 11:13:44 +02:00
Elian Doran 8111352300 feat(calendar_view): render notes by their end date 2025-02-15 10:58:12 +02:00
Elian Doran 64b446315d feat(calendar_view): render notes by their start date 2025-02-15 10:43:46 +02:00
Elian Doran 4dc2803cc6 style(calendar_view): apply a padding 2025-02-15 10:35:14 +02:00
Elian Doran 557e4cdfea style(calendar_view): disable link color 2025-02-15 10:24:40 +02:00
Elian Doran fd22d05d9b feat(calendar_view): disable user selection 2025-02-15 10:23:57 +02:00
Elian Doran 462a2713a2 feat(calendar_view): integrate fullcalendar 2025-02-15 10:23:33 +02:00
Elian Doran 68ccd23540 refactor(views): pass argument to constructor 2025-02-15 10:13:47 +02:00
Panagiotis Papadopoulos 11a9dfd693 Merge branch 'develop' into chore_npm-scripts-namescape 2025-02-15 09:02:23 +01:00
Elian Doran fc77f56516 chore(in_app_help): update docs 2025-02-15 01:05:37 +02:00
Elian Doran ecb2c53c6f feat(in_app_help): support webviews 2025-02-15 01:02:24 +02:00
Elian Doran 9299f90b85 feat(docs): internal API docs 2025-02-15 00:33:12 +02:00
Elian Doran 81d5d16e1a chore(bin): convert generate-openapi to typescript 2025-02-15 00:02:00 +02:00
Elian Doran 2fe6881d73 Merge pull request #1192 from FliegendeWurst/openapi-docs-2
More OpenAPI docs
2025-02-14 23:57:39 +02:00
Elian Doran 552f87e2b3 Merge pull request #1194 from TriliumNext/test-unskip-tests
test: fix and enable ex-flaky tests in `services/search.spec.ts`
2025-02-14 23:43:01 +02:00
Elian Doran 689af591d1 Merge pull request #1190 from TriliumNext/deps_jasmine-types
deps: remove leftover @types/jasmine
2025-02-14 23:41:45 +02:00
Elian Doran ab2a7a6c4a Merge pull request #1187 from TriliumNext/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.98.0
2025-02-14 23:41:16 +02:00
Elian Doran a716d97e83 Merge pull request #1188 from TriliumNext/renovate/node-22.x
chore(deps): update node.js to v22.14.0
2025-02-14 23:40:32 +02:00
Elian Doran 9f18eb55cb Merge pull request #1185 from TriliumNext/renovate/prettier-3.x
chore(deps): update dependency prettier to v3.5.1
2025-02-14 23:39:59 +02:00
Elian Doran 2cb27d4b03 Merge pull request #1186 from TriliumNext/renovate/electron-34.x
chore(deps): update dependency electron to v34.2.0
2025-02-14 23:38:17 +02:00
dousha 9d7f1a2d71 Allow removing weak branches even if it's hoisted 2025-02-15 01:52:07 +08:00
Elian Doran be39668488 feat(zen): add keyboard shortcut 2025-02-14 19:45:57 +02:00
Elian Doran 137aa93451 fix(zen): not working properly when native titlebar is on 2025-02-14 19:07:13 +02:00
Elian Doran ab7457cf90 fix(next): transparency issue when background effects are off 2025-02-14 19:07:02 +02:00
Elian Doran 9221932abb style(zen): improve position slightly 2025-02-14 18:56:36 +02:00
Elian Doran 1ad8c6b1cb style(next): apply mica to entire zen screen 2025-02-14 18:51:04 +02:00
Panagiotis Papadopoulos 84429e6e90 test: use integration-tests/db as data dir for tests
we have an initialized DB there, so that "integration like" tests that depend on the DB are not failing
2025-02-14 17:47:24 +01:00
Elian Doran e829abbad3 feat(zen): set up draggable regions 2025-02-14 18:47:15 +02:00
Elian Doran 2c80607bfd feat(zen): use dedicated floating button to stop zen mode 2025-02-14 18:18:28 +02:00
Elian Doran e8f0af8954 feat(zen): hide some more buttons 2025-02-14 17:39:03 +02:00
Elian Doran 5b5fd77ca8 feat(global_menu): indicate state of zen mode 2025-02-14 14:14:13 +02:00
Elian Doran f93eef28f3 feat(zen): hide most UI elements 2025-02-14 14:11:22 +02:00
Elian Doran 5c81627112 feat(zen): toggle body class for zen 2025-02-14 13:55:04 +02:00
Elian Doran 568a84f5d2 feat(global-menu): add option to toggle zen mode 2025-02-14 13:45:40 +02:00
Elian Doran 70d6d375f9 chore(i18n/ro): fix translation for landscape 2025-02-14 11:04:28 +02:00
FliegendeWurst a115214070 Document some note, branch, tree routes 2025-02-14 09:40:38 +01:00
Panagiotis Papadopoulos 0e18c405d8 test: "unskip" skipped tests 2025-02-14 09:17:57 +01:00
Panagiotis Papadopoulos e89d1b2413 chore(scripts): fix electron:switch in docs 2025-02-14 09:11:35 +01:00
Panagiotis Papadopoulos 21d18b1bdf chore(scripts): add generate-* to namespace "chore:*" 2025-02-14 09:00:42 +01:00
Panagiotis Papadopoulos 0cace7f3f9 chore(scripts): add integration test servers to namespace "test:*" 2025-02-14 08:57:03 +01:00
Panagiotis Papadopoulos 218a889725 chore(scripts): namespace "dev:*" 2025-02-14 08:54:05 +01:00
Panagiotis Papadopoulos ae41555b51 chore(scripts): namespace "test:*" 2025-02-14 08:50:43 +01:00
Panagiotis Papadopoulos 5f5d7b5432 chore(scripts): namespace "electron-forge:*" 2025-02-14 08:48:14 +01:00
Panagiotis Papadopoulos d23734dd3f chore(scripts): add some line breaks for better separation 2025-02-14 08:44:25 +01:00
Panagiotis Papadopoulos 4f6085a1a4 chore(scripts): namespace "build:prepare-dist" 2025-02-14 08:43:41 +01:00
Panagiotis Papadopoulos 9cddb1deac chore(scripts): namespace "build:webpack" 2025-02-14 08:41:34 +01:00
Panagiotis Papadopoulos 47002aa95a chore(scripts): namespace "chore:update-build-info" 2025-02-14 08:38:18 +01:00
Panagiotis Papadopoulos d2e8f946a0 chore(scripts): namespace "chore:ci-update-nightly-version" 2025-02-14 08:35:46 +01:00
Panagiotis Papadopoulos 688eb4d93f chore(scripts): namespace "docs:" 2025-02-14 08:31:07 +01:00
Panagiotis Papadopoulos 58eaf5eb5b test(etapi): mark as TODO for now
fixes typescript build for now
(not even sure, why we are building the tests as well)
2025-02-14 08:01:30 +01:00
Panagiotis Papadopoulos a30d361b1d deps: remove leftover @types/jasmine 2025-02-14 07:52:34 +01:00
Panagiotis Papadopoulos 0145636fc5 chore(scripts): namespace "electron:"
reorder entries
2025-02-14 07:39:01 +01:00
Panagiotis Papadopoulos 06890585d2 chore(scripts): namespace "electron:" 2025-02-14 07:36:49 +01:00
renovate[bot] 3d320308c9 chore(deps): update node.js to v22.14.0 2025-02-14 02:12:50 +00:00
renovate[bot] 325431f050 chore(deps): update dependency webpack to v5.98.0 2025-02-14 02:12:39 +00:00
renovate[bot] 35f9af15e5 chore(deps): update dependency electron to v34.2.0 2025-02-14 02:12:30 +00:00
renovate[bot] 4dfce746e9 chore(deps): update dependency prettier to v3.5.1 2025-02-14 02:12:18 +00:00
FliegendeWurst 0f0ebed78a Document sync push/pull 2025-02-13 23:51:42 +01:00
Panagiotis Papadopoulos 469519f5df chore(scripts): namespace electron:start 2025-02-13 23:25:38 +01:00
Panagiotis Papadopoulos 7b062badf0 chore(scripts): namespace server
server:switch
2025-02-13 23:18:57 +01:00
Panagiotis Papadopoulos f3dda940ec chore(scripts): namespace server
server:start-safe
server:start-no-dir
server:start-test
server:qstart
2025-02-13 23:00:53 +01:00
Panagiotis Papadopoulos 786f3e8d40 chore(scripts): namespace server:start 2025-02-13 22:53:40 +01:00
Elian Doran 4592d6750b feat(view/calendar): render a text in calendar view 2025-02-13 23:46:20 +02:00
Elian Doran e2bbee8e16 refactor(client): move implementation out of note_list_renderer 2025-02-13 23:23:18 +02:00
Elian Doran 27168b0dc5 feat(view/calendar): add calendar entry to views 2025-02-13 22:57:30 +02:00
Elian Doran e347cdda36 chore(client/ts): port book_properties 2025-02-13 22:45:48 +02:00
Elian Doran 283482caa5 Merge pull request #1163 from TriliumNext/feat_erasure-timeout-ui
feat: friendly number handling for note erasure timeouts
2025-02-13 22:22:27 +02:00
Elian Doran 27b825e511 Merge remote-tracking branch 'origin/develop' into feat_erasure-timeout-ui
; Conflicts:
;	src/public/translations/ro/translation.json
2025-02-13 22:21:38 +02:00
Elian Doran 4b9667b756 feat(settings): make duration selector slightly smaller 2025-02-13 22:21:09 +02:00
Elian Doran e79c742d56 feat(i18n): translate duration units 2025-02-13 22:19:02 +02:00
Elian Doran 7ffece36f0 Merge branch 'develop' of ssh://github.com/TriliumNext/Notes into develop 2025-02-13 22:09:12 +02:00
Elian Doran eecbfd0206 fix(client): note autocomplete not working properly on enter (closes #1100) 2025-02-13 22:09:08 +02:00
Elian Doran bfd894b5eb Merge pull request #1156 from TriliumNext/feat_custom_cookie-session-expiration
feat: allow setting custom session cookie expiration
2025-02-13 21:50:09 +02:00
Elian Doran 508908ded8 Merge pull request #1173 from TriliumNext/fix_etapi-openapi-integration
build: fix missing copying of etapi.openapi.yaml in build process
2025-02-13 21:49:04 +02:00
Elian Doran 4d280f37ea Merge pull request #1179 from FliegendeWurst/openapi-docs
Automated OpenAPI spec generation
2025-02-13 21:48:45 +02:00
Elian Doran cc74164b94 chore(i18n): achieve 100% completion for Romanian 2025-02-13 21:46:11 +02:00
Elian Doran 3f4458ea2f Merge pull request #1178 from hasecilu/i18n/Spanish
chore(i18n): update Spanish translation
2025-02-13 21:32:35 +02:00
Elian Doran 030e3cb805 fix(i18n): accidentally translated values 2025-02-13 21:31:54 +02:00
Elian Doran 6e17346768 feat(share): allow serving raw file via query parameter (closes #1182) 2025-02-13 21:28:01 +02:00
Elian Doran 4b597c5d2c fix(client/revisions): improper rendering of nested lists (closes #1177) 2025-02-13 20:57:34 +02:00
Elian Doran e2cd875c03 refactor(client): fix global event handling for modal 2025-02-13 20:39:00 +02:00
Elian Doran 8f6376e537 chore(client/ts): port revisions 2025-02-13 20:25:13 +02:00
FliegendeWurst be4b74e791 Automated OpenAPI spec generation 2025-02-13 17:02:03 +01:00
hasecilu 4ed71f30f2 chore(i18n): update Spanish translation 2025-02-13 09:39:04 -06:00
Panagiotis Papadopoulos b692c00b8d feat(config): improve typesafety by definitely returning a number
previously it was either a number like string (in case env or config.ini was used) or a number (the fallback value)

we now parseInt the value -> if any value is NaN (e.g. because it was incorrectly set) it will try with the next, before it uses the fallback value

the strange looking `parseInt(String(process.env.TRILIUM_SESSION_COOKIEMAXAGE))` is required to make TypeScript happy, other variants of trying to get the value into a string were not good enough for typescript :-)

The `String(process.env.TRILIUM_SESSION_COOKIEMAXAGE)` will now either return a number like value or 'undefined' (as string), which parseInt parses into NaN, which is falsy.
2025-02-13 09:46:49 +01:00
Panagiotis Papadopoulos cab0a5e41f feat(config): improve Session descriptions 2025-02-13 09:25:24 +01:00
Panagiotis Papadopoulos 201663d9ec chore(prettier): fix prettier issues 2025-02-13 09:07:25 +01:00
Panagiotis Papadopoulos 38215c46ae feat(login): make use of default maxAge by sessionParser
cookie will use the default value set in sessionParser middleware, which is controlled by
config.Session.cookieMaxAge

if rememberMe is not set -> the value is unset and the cookie becomes a non-persistent cookie,
which the browser delete after the current session (e.g. when you close the browser)
2025-02-13 09:04:34 +01:00
Panagiotis Papadopoulos 2a740781cb feat(session_parser): use seconds for setting maxAge and update default value to 21 days
21 days was used in the login route previously, when "remember me" was set
2025-02-13 08:52:05 +01:00
Panagiotis Papadopoulos 04827c0ce1 fix(session_parser): FileStore ttl should be ideally the same as session cookies maxAge
this avoids having "unused" dead session on the filesystem
2025-02-13 08:21:29 +01:00
Panagiotis Papadopoulos 4e23b5193d feat(session_parser): use Session.cookieMaxAge from config 2025-02-13 08:21:29 +01:00
Panagiotis Papadopoulos 53576f5578 feat(config): add Session.cookieMaxAge
allows users to control how long their session will be live, before it expires and they are forced to login again

defaults to 1 day  ("24 * 60 * 60 * 1000") as previously set in sessionParser
2025-02-13 08:21:29 +01:00
Panagiotis Papadopoulos 010783102a build: fix missing copying of etapi.openapi.yaml into dist folder
fixes build via electron-forge
2025-02-12 23:09:20 +01:00
Elian Doran e7f5d1d280 fix(client/ts): load only needed CodeMirror plugins 2025-02-12 22:49:47 +02:00
Elian Doran 69a6739d1f fix(client): markdown code block not working (closes #1164) 2025-02-12 22:49:09 +02:00
Elian Doran 75afdbe093 chore(client/ts): port editable_code 2025-02-12 21:56:58 +02:00
Adorian Doran cb7b25f054 repo: exclude irrelevant NPM tasks in VS Code 2025-02-12 12:06:55 +02:00
Adorian Doran 9c4aa4f220 style(next): tweak the "Change note icon" button 2025-02-12 01:55:56 +02:00
Adorian Doran fc1e5ce23b style(next): fix comment 2025-02-12 01:46:17 +02:00
Adorian Doran faabec5360 style(next): tweak the note icon popup 2025-02-12 01:45:26 +02:00
Adorian Doran 202bb9e126 style(next): combo boxes: fix the dropdown arrow disappearing in certain situations while in the focused state 2025-02-12 01:29:50 +02:00
Adorian Doran 2f00839f52 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-12 01:17:02 +02:00
Adorian Doran d8962393af style(next): combo boxes: prevent the text overlapping the dropdown arrow 2025-02-12 01:16:57 +02:00
Elian Doran d9e39fa792 Merge branch 'develop' of ssh://github.com/TriliumNext/Notes into develop 2025-02-11 22:20:38 +02:00
Elian Doran 0ca9809457 feat(client,server): support mid: links 2025-02-11 22:18:29 +02:00
Elian Doran 4d0969da0a refactor(client,server): support for URL schemes 2025-02-11 22:14:44 +02:00
Elian Doran f517e4a37a refactor(editor): move all options into this repo 2025-02-11 20:34:49 +02:00
Elian Doran 0d26446262 refactor(editor): move all options into this repo 2025-02-11 20:23:48 +02:00
Elian Doran aad38fdd21 refactor(editor): move floating toolbar config into this repo 2025-02-11 20:17:02 +02:00
Elian Doran 2ac5e860b1 refactor(editor): move classic toolbar config into this repo 2025-02-11 19:48:26 +02:00
Elian Doran bd5232ed14 feat(mobile): add recent changes dialog 2025-02-11 19:38:06 +02:00
Elian Doran aafd905c72 Merge pull request #1158 from TriliumNext/renovate/compression-1.x
fix(deps): update dependency compression to v1.8.0
2025-02-11 19:32:28 +02:00
Elian Doran 11e2dcfc64 refactor(client/ts): port a few small files 2025-02-11 19:29:53 +02:00
Elian Doran 44811f4f4b refactor(client/ts): port two containers 2025-02-11 19:09:04 +02:00
Elian Doran 13f7129717 refactor(client/ts): port a few more widgets 2025-02-11 19:04:27 +02:00
Elian Doran b69641c0e9 refactor(client): remove abstract doRefresh 2025-02-11 18:59:35 +02:00
Elian Doran 8b9b843c2d Merge pull request #1140 from dousha/bugfix-protection-box
Fix the password box not removed after entering protected mode
2025-02-11 18:57:41 +02:00
Panagiotis Papadopoulos a5cb78c5ec i18n: adjust note_erasure_timeout.erase_notes_after
since we now don't erase after "x" seconds, we need to change the message
2025-02-11 09:07:46 +01:00
Panagiotis Papadopoulos 8b066b1fc8 chore: add i18n TODO
(it does not make sense yet, to expose these as i18n, as I will be refactoring this whole thing into a standalone widget)
2025-02-11 09:07:46 +01:00
Panagiotis Papadopoulos 2bb79c4209 feat: "friendly number handling" for note erasure timeouts 2025-02-11 09:06:29 +01:00
Elian Doran b1bf6931f2 Merge pull request #1162 from TriliumNext/refactor_routes-login
refactor(routes/login): simplify login function and get rid of deprecated usage of expires
2025-02-11 10:03:09 +02:00
Panagiotis Papadopoulos e3b7ae018f refactor(routes/login): refactor login fn
I also got rid of the deprecated use of "expires" - setting maxAge to undefined is the preferred way
2025-02-11 07:55:18 +01:00
renovate[bot] d7399f6bb5 fix(deps): update dependency compression to v1.8.0 2025-02-11 00:34:18 +00:00
Elian Doran d0399c173e Merge pull request #1144 from TriliumNext/feature/swagger-ui-in-server
Add Swagger UI endpoint
2025-02-10 23:46:18 +02:00
Elian Doran 905983e794 Merge pull request #1155 from TriliumNext/feat_custom-cookie-path
feat: allow setting custom cookiePath
2025-02-10 23:42:08 +02:00
Elian Doran 5390b97730 Merge pull request #1157 from TriliumNext/fix_disable-dropdown-select-text
fix(ui): disallow text selection in dropdown-menus
2025-02-10 23:33:28 +02:00
Panagiotis Papadopoulos c8f5f8dfcc fix(ui): disallow text selection in dropdown-menus 2025-02-10 20:18:35 +01:00
Panagiotis Papadopoulos 62f8f8f1a7 refactor(config): rename Cookies to Session
as requested in PR #1155
2025-02-10 19:44:19 +01:00
Panagiotis Papadopoulos b6d73df92e feat(csrf_protection): use cookiePath from config 2025-02-10 19:03:10 +01:00
perf3ct 9c86a03acc Do this thing to make Pano happy :) 2025-02-10 16:03:01 +00:00
Panagiotis Papadopoulos a600568ab8 feat(session_parser): use cookiePath from config 2025-02-10 08:35:01 +01:00
Panagiotis Papadopoulos 3c8723a404 feat(config): add Cookies.cookiePath option to config
defaults to "/" as previously set by default options
2025-02-10 08:33:31 +01:00
Elian Doran 1e95135720 Merge pull request #1147 from TriliumNext/renovate/typedoc-0.x
chore(deps): update dependency typedoc to v0.27.7
2025-02-10 09:19:43 +02:00
Elian Doran 022f2b6e62 Merge pull request #1148 from TriliumNext/renovate/marked-15.x
fix(deps): update dependency marked to v15.0.7
2025-02-10 09:19:23 +02:00
Elian Doran 4160ff2a8b Merge pull request #1149 from TriliumNext/renovate/mind-elixir-4.x
fix(deps): update dependency mind-elixir to v4.3.7
2025-02-10 09:18:42 +02:00
Elian Doran d7e134d18e Merge pull request #1151 from TriliumNext/renovate/prettier-3.x
chore(deps): update dependency prettier to v3.5.0
2025-02-10 09:18:14 +02:00
Elian Doran b9aa976068 Merge pull request #1152 from TriliumNext/chore_remove-jasmine
chore(deps): remove unused jasmine
2025-02-10 09:17:27 +02:00
Elian Doran df47198616 Merge pull request #1153 from TriliumNext/feat_autofocus-protected-note
feat/fix(protected_session): input improvements
2025-02-10 09:16:53 +02:00
Panagiotis Papadopoulos 6c4c9785ff fix(protected_session): fix input->label association 2025-02-10 07:16:36 +01:00
Panagiotis Papadopoulos f657b9dec1 feat(protected_session): set autofocus to password field 2025-02-10 07:15:14 +01:00
Panagiotis Papadopoulos c004adfdff chore(deps): remove unused jasmine 2025-02-10 07:04:09 +01:00
perf3ct 57a34e5c02 use fs/promises instead of fs 2025-02-10 00:50:43 +00:00
renovate[bot] 7083b57ce4 chore(deps): update dependency prettier to v3.5.0 2025-02-10 00:37:05 +00:00
renovate[bot] 316e239a3c fix(deps): update dependency mind-elixir to v4.3.7 2025-02-10 00:36:49 +00:00
renovate[bot] 5632932873 fix(deps): update dependency marked to v15.0.7 2025-02-10 00:36:40 +00:00
renovate[bot] 3ce7fef64b chore(deps): update dependency typedoc to v0.27.7 2025-02-10 00:36:31 +00:00
perf3ct d859f50c98 Change Swagger endpoint and site title 2025-02-09 22:17:31 +00:00
perf3ct 18f5f1b759 add Swagger UI endpoint and add to router 2025-02-09 21:15:12 +00:00
perf3ct 72fe367988 Add @types/js-yaml, @types/swagger-ui-express, js-yaml, and swagger-ui-express to support Swagger UI 2025-02-09 21:15:01 +00:00
Elian Doran 48d4093274 Merge pull request #1143 from TriliumNext/fix_ts-file-mime-import
fix(import/mime): fix ts file mime import handling
2025-02-09 23:07:49 +02:00
Panagiotis Papadopoulos 2d1381b4f8 fix(import/mime): fix TypeScript handling
.ts file are now treated as code type with text/x-typescript as MIME type

fixes #1142
2025-02-09 17:45:15 +01:00
Panagiotis Papadopoulos 5d019137fa test: add test for .ts file 2025-02-09 17:43:25 +01:00
Elian Doran c79651add8 fix(print): scrollbar shown in some circumstances 2025-02-09 13:05:42 +02:00
Elian Doran b6a9df981a feat(login): autofocus the password field 2025-02-09 11:59:09 +02:00
Elian Doran 27397be7f4 feat(export/md): update to latest turndown version (fixes #337) 2025-02-08 22:59:28 +02:00
Elian Doran 9d517988ce style(client): remove 10px padding if full width file 2025-02-08 22:05:02 +02:00
Elian Doran 90ca4e923e chore(client/ts): port file 2025-02-08 22:01:21 +02:00
Elian Doran 659e551cdd feat(client): display PDFs as full width 2025-02-08 21:49:30 +02:00
Elian Doran 2a90f4c6e9 chore(client/ts): port note_wrapper 2025-02-08 21:42:12 +02:00
Elian Doran 4c44ce0ebe fix(mobile): fix closing tab not always working on iOS 2025-02-08 20:31:10 +02:00
Elian Doran 25cf16c101 feat(mobile): reduced tab right margin 2025-02-08 13:24:55 +02:00
Elian Doran 3d531c9bca fix(mobile): switching tabs not working 2025-02-08 13:00:14 +02:00
Elian Doran ab5a6c59b8 fix(mobile): improve alignment of the title bar 2025-02-08 12:14:58 +02:00
Elian Doran 1bf2f10c98 feat(geo_map): enable retina detection 2025-02-08 12:09:07 +02:00
Elian Doran f5b0c3b68b fix(doc): tables that break out of bounds 2025-02-08 12:01:27 +02:00
Elian Doran bf342f7bcf fix(doc): width on mobile with images 2025-02-08 11:58:21 +02:00
Elian Doran c98df4d6c2 style(next): improve fit of calendar on mobile 2025-02-08 11:54:17 +02:00
Elian Doran 1bc70e9fed fix(mobile): dropdowns on tablet view 2025-02-08 11:46:47 +02:00
Elian Doran 6fcd14c23e feat(mobile): add calendar button (fixes #1128) 2025-02-08 11:42:25 +02:00
Elian Doran 7b8c4d2179 fix(client): freeze if empty doc 2025-02-08 11:16:04 +02:00
Elian Doran f50f767e79 fix(client): console error if latest version could not be retrieved 2025-02-08 10:50:55 +02:00
Elian Doran a2995ef267 feat(mobile): add open today's journal note (closes #1129). 2025-02-08 10:46:06 +02:00
Elian Doran f8f1e537db feat(mobile): add new note launcher bar (fixes #1105) 2025-02-08 10:43:18 +02:00
Elian Doran 96dc063b50 refactor(hidden-subtree): deduplicate launchers 2025-02-08 10:37:17 +02:00
Elian Doran 303cf65020 feat(mobile): improve fixed tree layout 2025-02-08 10:34:08 +02:00
Elian Doran 89db97e97d feat(mobile): make the title smaller 2025-02-08 10:27:22 +02:00
Elian Doran 57c9e0477e feat(mobile): launch bar config now has a fixed tree 2025-02-08 10:24:55 +02:00
Elian Doran 7b36040b26 refactor(hidden_subtree): launch bar config in dedicated file 2025-02-08 10:05:31 +02:00
Elian Doran 914a731094 feat(mobile): collapsible advanced section in global menu 2025-02-08 09:55:38 +02:00
Elian Doran ab7fc8871a fix(geo_map): zoom buttons overlapping with global menu 2025-02-08 09:55:22 +02:00
Elian Doran a4021e94ad style(next): improve menu separator width on mobile 2025-02-08 09:35:29 +02:00
Elian Doran 777e504a72 style(mobile): minimal formatting bar scrolll 2025-02-08 09:32:44 +02:00
dousha e063eb9ac1 Fix the password box not being removed after entering protected mode (#1078) 2025-02-08 15:25:09 +08:00
Adorian Doran 2db3765bd4 style(next): restyle menu item group headings 2025-02-08 02:37:57 +02:00
Adorian Doran 61a2b2cc3a Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-08 01:47:42 +02:00
Adorian Doran 592e58099d client: search/actions/execute script: fix misaligned close button 2025-02-08 01:47:39 +02:00
Elian Doran 45ab9d4395 fix(electron): auto-reload for static assets 2025-02-08 01:41:48 +02:00
Adorian Doran 9ff8b53ae6 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-08 01:33:37 +02:00
Adorian Doran 8f45fb3c40 style(next): tweak the bookmark folder popup 2025-02-08 01:33:26 +02:00
Elian Doran a1c97142a8 feat(build): set up faster electron build by skipping dist 2025-02-08 00:41:39 +02:00
Elian Doran 7f314d2d75 feat(build): set up webpack cache 2025-02-08 00:41:39 +02:00
Elian Doran 61b7d887cc chore(deps): update electron to 34.1.1 2025-02-08 00:41:39 +02:00
Adorian Doran 172eb8a529 client: quick search results: fix dropdown compatibility with the Next theme 2025-02-08 00:38:18 +02:00
Adorian Doran 02c08e79ae style(next): remove a not longer needed style 2025-02-08 00:34:01 +02:00
Adorian Doran 94d1dcd99b client: quick search results: remove a redundant button 2025-02-08 00:33:23 +02:00
Adorian Doran 1bfce1c8ed style(next): extend the input field style to cover date/time pickers also 2025-02-08 00:05:36 +02:00
Adorian Doran 9f7a218772 style(next): add some margins to the promoted attributes section 2025-02-08 00:02:04 +02:00
Elian Doran f7397dc2f1 Merge pull request #1124 from TriliumNext/feature/in_app_help
In-app help
2025-02-07 22:56:06 +02:00
Elian Doran f12aed9ac0 feat(in-app-help): hide #docName from note preview 2025-02-07 22:55:50 +02:00
Elian Doran 50dcc92307 fix(in-app-help): note list when rendering in sidebar 2025-02-07 22:45:41 +02:00
Elian Doran 5552db034b fix(client): regression in new tab 2025-02-07 22:37:43 +02:00
Elian Doran cecd7eccad Merge remote-tracking branch 'origin/develop' into feature/in_app_help 2025-02-07 22:28:01 +02:00
Elian Doran 0138776a72 feat(tab-bar): prevent user selection 2025-02-07 22:03:22 +02:00
Elian Doran 35207b8df0 feat(geo_map): middle click to open note in new tab 2025-02-07 22:03:00 +02:00
Elian Doran 0dbd136b48 feat(note_tooltip): clickable note title (closes #1063) 2025-02-07 21:44:17 +02:00
Elian Doran 02d16d0125 feat(note_tooltip): improve layout for empty notes 2025-02-07 21:36:22 +02:00
Elian Doran f77a29d7fe fix(note_tooltip): redundant padding on empty note with no children 2025-02-07 21:19:58 +02:00
Elian Doran 9d097a0ee7 feat(note_tooltip): hide #geolocation 2025-02-07 21:14:40 +02:00
Elian Doran c3c5ab18ef fix(e2e): broken test after shortcut change 2025-02-07 21:02:30 +02:00
Elian Doran 4463f215d8 fix(demo): broken attributes due to safe import 2025-02-07 20:34:31 +02:00
Elian Doran d3b55932a6 fix(build): errors after refactoring 2025-02-07 20:27:22 +02:00
Elian Doran 2c5fb7edee fix(in-app-help): navigating to new page breakign scope 2025-02-07 19:33:26 +02:00
Elian Doran c087d3c331 fix(toc): doc type not rendering the first time 2025-02-07 19:23:12 +02:00
Elian Doran a98ed6cd29 fix(toc): not hiding if too few headings 2025-02-07 18:27:13 +02:00
Elian Doran c68cc70f76 chore(build): change flatpak ID 2025-02-07 18:17:06 +02:00
Elian Doran 97b7033959 Merge pull request #1130 from TriliumNext/build_add-flatpak-electron
build: add flatpak build via electron-forge
2025-02-07 18:13:34 +02:00
Elian Doran 56d36c6c11 Merge pull request #1134 from pano9000/fix_ci-linux-server-name
chore(ci): improve server build release file names
2025-02-07 18:12:38 +02:00
Elian Doran 816b0da8ba Merge pull request #1132 from TriliumNext/chore_linux-desktop-category
build(electron): Add "Office" as category for Desktop file
2025-02-07 18:11:32 +02:00
MeIchthys f7bf2fe614 Update README to include support options. 2025-02-07 09:58:27 -05:00
Panagiotis Papadopoulos db48e3a987 chore(ci): improve server build release file names 2025-02-07 10:36:28 +01:00
Panagiotis Papadopoulos 8cf6a4bec7 build(electron): Add "Office" as category for Desktop file
as per https://specifications.freedesktop.org/menu-spec/latest/category-registry.html

checked with other NoteTaking apps and they all (e.g. Obsidian, Joplin) use "Office" as main category as well, which makes sense here
2025-02-07 08:57:20 +01:00
Panagiotis Papadopoulos 47e2100920 build(electron): use baseLinuxMakerConfigOptions for flatpak as well 2025-02-07 08:52:55 +01:00
Panagiotis Papadopoulos f38f9e640b chore: add .flatpak-builder to .gitignore 2025-02-07 08:18:23 +01:00
Panagiotis Papadopoulos 7c721c4aaa fix(ci): add temp arm64 workaround
currently required, because Flatpak arm64 build currently fails – and if it fails, the remaining builds (deb, rpm, zip) fail as well, as they are created in the same run.
once the fix is released in the next electron-forge, we can get rid of this again.
2025-02-07 08:08:38 +01:00
Panagiotis Papadopoulos 1ec2b8b145 feat(ci): add flatpak build via electron-forge
arm64 currently is broken due to a bug in electron-forge's maker-flatpak, but PR with a fix was submitted already
2025-02-06 23:34:36 +01:00
Panagiotis Papadopoulos 1a89a0989d build(electron): update flatpak config to latest base
previously it was defaulting to an EOL version of the Platform/SDK

Explicitly setting it to 24.08 however makes the build fail, because it defaults to using an outdated "zypak" module, so we need to explicitly mention the latest version here too
2025-02-06 23:34:36 +01:00
Panagiotis Papadopoulos 4bf8cdfc39 deps: add @electron-forge/maker-flatpak to package-lock as well 2025-02-06 23:34:36 +01:00
Panagiotis Papadopoulos 7753905df9 build(electron): add flatpak config 2025-02-06 23:34:36 +01:00
Panagiotis Papadopoulos 399fd481ba deps: add @electron-forge/maker-flatpak 2025-02-06 23:34:36 +01:00
Adorian Doran e288272b22 style(next): attribute detail dialog: add a gap before note paths 2025-02-06 23:01:31 +02:00
Adorian Doran ead3229c1e style(next): settings/advanced: fix bullet list margin 2025-02-06 22:56:24 +02:00
Adorian Doran f2021f8ca1 style(next): note revisions dialog: fix the list appeareance 2025-02-06 22:18:01 +02:00
Adorian Doran e1850281e5 style(next): tweak (again) the note type dropdown 2025-02-06 21:49:19 +02:00
Adorian Doran 919a977643 client: reorder note types 2025-02-06 21:45:17 +02:00
Adorian Doran 48af3e9cf5 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-06 21:24:36 +02:00
Adorian Doran 9ac7369df4 style(next): tweak the note type dropdown 2025-02-06 21:24:32 +02:00
Elian Doran acb858bc29 chore(test): simplify import of becca_mocking 2025-02-06 20:55:46 +02:00
Elian Doran a767ee3d2c fix(server): sorting notes by custom attribute with missing value not idempotent 2025-02-06 20:41:35 +02:00
Adorian Doran 5e62f4999d client: use a "Beta" badge for beta note types 2025-02-06 20:24:13 +02:00
Adorian Doran 5d845a81f8 style(next): tweak (again) the editability dropdown 2025-02-06 19:50:19 +02:00
Adorian Doran 97cd79e083 style(next): tweak the editability dropdown 2025-02-06 19:49:23 +02:00
Adorian Doran 2ddac39b65 client: tweak the editability dropdown 2025-02-06 19:32:58 +02:00
Adorian Doran 93ee8ea3af Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-06 19:20:14 +02:00
Adorian Doran 746e8ac5ea style(next): tweak the attribute detail dialog 2025-02-06 19:20:10 +02:00
Elian Doran e007840d9d Merge pull request #1125 from TriliumNext/renovate/electron-34.x
chore(deps): update dependency electron to v34.1.0
2025-02-06 18:57:04 +02:00
Elian Doran c964f61155 fix(ci): stop nightly release from being draft 2025-02-06 18:50:49 +02:00
Adorian Doran 8ca00c2138 client: use the icon action style for the help buttons of the attachment pages 2025-02-06 17:29:41 +02:00
Adorian Doran ef0431fc58 client: fix the style of a checkbox 2025-02-06 16:36:45 +02:00
Adorian Doran b4929d772a style(next): fix disabled menu items not being grayed out 2025-02-06 16:31:38 +02:00
Adorian Doran cba504fb24 style(next): file input: change the foreground color depending on the state 2025-02-06 07:28:12 +02:00
Adorian Doran e4d49cc45d style(next): calendar: remove useless property 2025-02-06 07:19:34 +02:00
Adorian Doran cd35215819 client: use the new file input fields 2025-02-06 07:17:58 +02:00
Adorian Doran 7d2ace92eb style(next): create a style for file (upload) input fields 2025-02-06 07:13:15 +02:00
Adorian Doran 0dcd2718c8 client: fix some broken checkboxes on the legacy theme 2025-02-06 06:22:30 +02:00
Adorian Doran 09ae998437 style(next): calendar: adapt to the changes from the base theme 2025-02-06 06:07:42 +02:00
Adorian Doran f628114923 client: fix the calendar appearance on the legacy theme 2025-02-06 06:05:44 +02:00
Adorian Doran 5ab455adf2 style(next): calendar: various tweaks 2025-02-06 05:36:51 +02:00
Adorian Doran 4c1aeaca93 style(next): calendar: tweak the next/previous buttons 2025-02-06 05:25:18 +02:00
Adorian Doran 57bf142c4c style(next): calendar: tweak the month input field 2025-02-06 05:20:22 +02:00
Adorian Doran abf93dc11d style(next): calendar: tweak the year input field 2025-02-06 05:07:37 +02:00
renovate[bot] e356a34f0d chore(deps): update dependency electron to v34.1.0 2025-02-06 00:34:24 +00:00
Elian Doran 91073e5e70 feat(electron): larger windows installer 2025-02-05 22:34:17 +02:00
Elian Doran 2e1b2004dc feat(in-app-help): add a custom style for contextual help headings 2025-02-05 21:25:34 +02:00
Elian Doran b84b7e1cdf chore(client/ts): port content_widget 2025-02-05 21:13:17 +02:00
Elian Doran 5173e37d8f chore(client/ts): port type_widget 2025-02-05 21:06:21 +02:00
Elian Doran 7fa0ad336e Merge remote-tracking branch 'origin/develop' into feature/in_app_help 2025-02-05 19:56:03 +02:00
Elian Doran 780c7377de Merge remote-tracking branch 'origin/master' into develop 2025-02-05 19:25:00 +02:00
Elian Doran fe85e1e16c refactor(ci): try to deploy nightly with same release action 2025-02-05 19:10:08 +02:00
Elian Doran 7590c1da24 fix(ci): remove debug action 2025-02-05 18:53:40 +02:00
Elian Doran 803f59260d fix(ci): error in building electron due to extensions 2025-02-05 18:47:14 +02:00
Elian Doran 856a8a754e Merge pull request #1122 from TriliumNext/refactor_electron-forge-config
refactor: electron forge config
2025-02-05 18:16:13 +02:00
Elian Doran e050efd1bd fix(ci): nightly artifact building 2025-02-05 13:36:53 +02:00
Panagiotis Papadopoulos 62099abb29 refactor(forge.config): simplify getExtraResourcesForPlatform 2025-02-05 09:56:08 +01:00
Panagiotis Papadopoulos 2b83470de6 refactor(forge.config): call getExtraResourcesForPlatform once only 2025-02-05 09:33:33 +01:00
Panagiotis Papadopoulos e0862ce8f3 refactor(forge.config): avoid duplication for linux makers
adds a baseLinuxMakersConfigOptions
2025-02-05 09:30:55 +01:00
Panagiotis Papadopoulos 0c1185df33 refactor(forge.config): make afterComplete more concise 2025-02-05 08:53:06 +01:00
Elian Doran ddc6ac4590 fix(server): improve tolerance for node version 2025-02-05 08:55:40 +02:00
Adorian Doran 0d62493b77 style(next): ribbon: minor tweaks 2025-02-05 03:43:13 +02:00
Adorian Doran a8050c9bf8 style(next): input group: fix the color of disabled action buttons 2025-02-05 02:51:08 +02:00
Adorian Doran d080c763f4 style(next): tweak note's menu icon alignment 2025-02-05 02:43:52 +02:00
Adorian Doran 36b138655c style(next): text notes: fix the table caption colors on dark theme 2025-02-05 02:38:15 +02:00
Adorian Doran d9f37dfc19 style(next): delete note preview dialog: add some gap between note's name and its path 2025-02-05 02:31:35 +02:00
Adorian Doran c6787a9cf2 style(next): dropdown menus: fix the scrollbar background for Chromium-based browsers 2025-02-05 02:23:36 +02:00
Elian Doran b851287100 chore(ci): add debug log 2025-02-04 23:50:03 +02:00
Elian Doran 8ad8041689 Merge pull request #1108 from TriliumNext/build_add-rpm-electron
build: add RPM build via electron-forge
2025-02-04 23:26:14 +02:00
Elian Doran 5d3d9162cb Merge remote-tracking branch 'origin/develop' into build_add-rpm-electron 2025-02-04 23:08:10 +02:00
Elian Doran a9d667e5a9 fix(ci): nightly build for server ARM 2025-02-04 23:00:38 +02:00
Elian Doran d847eab697 fix(ci): nightly artifact build 2025-02-04 22:48:17 +02:00
Elian Doran 51cbe12866 fix(ci): nightly not working due to missing deps 2025-02-04 22:30:08 +02:00
Adorian Doran 13239500f9 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-04 22:25:00 +02:00
Adorian Doran bc82cdbd01 style(next): fix broken backdrop blur when scrolling dropdowns 2025-02-04 22:24:56 +02:00
Elian Doran ca10d94acb fix(ci): nightly not working due to missing deps 2025-02-04 22:05:10 +02:00
Elian Doran 880c1537d4 Merge remote-tracking branch 'origin/develop' into build_add-rpm-electron 2025-02-04 22:00:00 +02:00
Elian Doran b818320e43 Merge pull request #1119 from TriliumNext/refactor/deduplicate_ci_workflows
Deduplicate CI workflows
2025-02-04 21:55:59 +02:00
Elian Doran 3fb60b64c0 fix(ci): add missing shell config 2025-02-04 21:55:26 +02:00
Elian Doran 0dfd01858b fix(ci): remove unnecessary artifact upload 2025-02-04 21:50:42 +02:00
Elian Doran 6ae143cc38 refactor(ci): deduplicate server build 2025-02-04 21:49:10 +02:00
Elian Doran 711ab84557 chore(editorconfig): add config for yaml files 2025-02-04 21:41:09 +02:00
Elian Doran cfdb561bf6 fix(ci): required shell 2025-02-04 21:40:59 +02:00
Elian Doran ddb42bfe88 fix(ci): add missing file 2025-02-04 21:40:52 +02:00
Elian Doran 836bbba7fe refactor(ci): deduplicate preparing artifacts 2025-02-04 21:37:00 +02:00
Elian Doran bfdb69292c refactor(ci): deduplicate electron-forge 2025-02-04 21:37:00 +02:00
Elian Doran f9082fa812 refactor(ci): deduplicate installing dependencies & updating build 2025-02-04 21:37:00 +02:00
Elian Doran 688b5317c1 refactor(ci): deduplicate dmg init 2025-02-04 21:37:00 +02:00
Adorian Doran 7514e2348c Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-04 21:31:19 +02:00
Adorian Doran f3a0965312 client: mark some checkboxes to use the new style 2025-02-04 21:31:16 +02:00
Elian Doran dfc6eb8523 Merge pull request #1075 from TriliumNext/test_server-utils
server/utils: add tests and smaller refactors / fixes
2025-02-04 21:29:30 +02:00
Elian Doran 892734bce3 Merge develop into test_server-utils 2025-02-04 21:28:44 +02:00
Elian Doran 0c35714801 Merge pull request #1099 from TriliumNext/refactor_simplify-electron-desktop-ejs
refactor(bin/electron-forge): make desktop.ejs easier to read
2025-02-04 21:24:25 +02:00
Elian Doran 67b46018a2 Merge pull request #1104 from TriliumNext/renovate/node-22.x
chore(deps): update dependency @types/node to v22.13.1
2025-02-04 21:23:11 +02:00
Elian Doran a3d3f9f231 Merge pull request #1103 from TriliumNext/renovate/playwright-monorepo
chore(deps): update dependency @playwright/test to v1.50.1
2025-02-04 21:22:50 +02:00
Elian Doran e1ac3e8451 Merge pull request #1118 from TriliumNext/renovate/npm-vitest-vulnerability
chore(deps): update dependency vitest to v3.0.5 [security]
2025-02-04 21:22:14 +02:00
Elian Doran a0f6534cc9 Merge pull request #1113 from TriliumNext/renovate/vitest-monorepo
chore(deps): update dependency @vitest/coverage-v8 to v3.0.5
2025-02-04 21:22:03 +02:00
Elian Doran 902ee74b27 Merge pull request #1114 from TriliumNext/renovate/semver-7.x
fix(deps): remove dependency semver
2025-02-04 21:16:26 +02:00
Elian Doran ce45309818 feat(deps): remove dependency on semver 2025-02-04 21:15:47 +02:00
renovate[bot] 0af08c2a7b chore(deps): update dependency vitest to v3.0.5 [security] 2025-02-04 18:56:44 +00:00
renovate[bot] e126d7be34 chore(deps): update dependency @types/node to v22.13.1 2025-02-04 01:45:31 +00:00
renovate[bot] d908c9044b fix(deps): update dependency semver to v7.7.1 2025-02-04 01:45:21 +00:00
renovate[bot] 6facc3d05c chore(deps): update vitest monorepo to v3.0.5 2025-02-04 01:45:13 +00:00
Adorian Doran 805405484e client: mark the add and save buttons from the "Owned Attributes" tab to use the icon button style 2025-02-04 00:10:38 +02:00
Adorian Doran 90732a5324 style(next): add an alias CSS class (tn-tool-button) for icon buttons 2025-02-04 00:08:43 +02:00
Adorian Doran 5376abac0b style(next): find & replace: tweak appearance 2025-02-03 23:48:37 +02:00
Adorian Doran caf613a4ef client: find & replace: move the current index and total results counters inside the "Find in text" input field 2025-02-03 23:47:42 +02:00
Adorian Doran 404c53ddcd Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-03 23:11:40 +02:00
Adorian Doran 4631298ad0 style(next): improve the layout of the find and replace panel 2025-02-03 23:11:37 +02:00
Elian Doran 6953928f7a feat(in_app_help): reuse contextual help if possible 2025-02-03 22:50:00 +02:00
Elian Doran c649f473b4 style(geo_map): improve floating buttons 2025-02-03 22:40:41 +02:00
Elian Doran 2b5f37e19d style(next): improve global menu update badge on horizontal layout 2025-02-03 22:27:41 +02:00
Adorian Doran 4efc86b9a3 style(next): fix the up / down buttons of the "Find in text" input box 2025-02-03 22:15:53 +02:00
Adorian Doran 59fdc7d048 client: fix broken selector 2025-02-03 20:52:48 +02:00
Adorian Doran 16cc4fadd7 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-03 20:26:09 +02:00
Adorian Doran 631d46028c client: tweak the label definition / relation definition dialog 2025-02-03 20:25:43 +02:00
Elian Doran 79e830b6ea fix(search): empty mindmap note breaking search (closes #1107)
/ Check Docker build (Dockerfile) (push) Failing after 30s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 30s
/ Build Docker images (Dockerfile, linux/arm/v7) (push) Has been skipped
/ Build Docker images (Dockerfile, linux/arm64) (push) Has been skipped
/ Build Docker images (Dockerfile.alpine, linux/amd64) (push) Has been skipped
/ Merge manifest lists (push) Has been skipped
Release / Make Electron (arm64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 36s
Release / Make Electron (x64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 43s
Release / Build Linux Server (x64, ubuntu-latest) (push) Failing after 33s
Release / Make Electron (arm64, map[extension:dmg image:macos-latest name:macos]) (push) Has been cancelled
Release / Make Electron (arm64, map[extension:exe image:windows-latest name:windows]) (push) Has been cancelled
Release / Make Electron (x64, map[extension:dmg image:macos-latest name:macos]) (push) Has been cancelled
Release / Make Electron (x64, map[extension:exe image:windows-latest name:windows]) (push) Has been cancelled
Release / Build Linux Server (arm64, ubuntu-24.04-arm) (push) Has been cancelled
2025-02-03 19:06:51 +02:00
Elian Doran 766473c291 fix(search): empty mindmap note breaking search (closes #1107) 2025-02-03 18:59:56 +02:00
Adorian Doran c9bfd07722 style(next): tweak the new tab page 2025-02-03 17:49:07 +02:00
Adorian Doran 664b1e32a6 style(next): create a CSS file for the empty note (shown when opening a blank tab) 2025-02-03 17:29:10 +02:00
Adorian Doran 6f1f728c1b client: "Setup" dialog: use a consistent format for radio buttons 2025-02-03 17:17:39 +02:00
Adorian Doran 3ec24231f2 client: "Include note" dialog: use a consistent format for radio buttons 2025-02-03 17:06:04 +02:00
Adorian Doran 4dafb47a36 client: add some gap between protected session password prompt form elements 2025-02-03 17:00:01 +02:00
Adorian Doran 8a51f05bf4 client: mark some links to use the new style 2025-02-03 16:52:15 +02:00
Adorian Doran 9a84dec222 client: "Label detail" dialog: use a consistent checkbox format 2025-02-03 16:44:22 +02:00
Adorian Doran c832eed0d7 style(next): fix the combo box style being overridden in some particular cases 2025-02-03 16:37:27 +02:00
Panagiotis Papadopoulos 0ce3ae9476 build(release): fix Unix artefact preparation 2025-02-03 09:40:33 +01:00
Panagiotis Papadopoulos e3c7a72eee build(release): add rpm build for Linux 2025-02-03 09:40:33 +01:00
Panagiotis Papadopoulos 1cd49130dd build(electron): add rpm config 2025-02-03 09:40:33 +01:00
Panagiotis Papadopoulos aa446f7bd6 deps: add @electron-forge/maker-rpm 2025-02-03 09:40:33 +01:00
Elian Doran 438f28b5b0 chore(release): prepare for 0.91.6 2025-02-03 09:48:06 +02:00
Elian Doran fd7f3ef2ff Merge pull request #1101 from TriliumNext/bugfix/mac-paste
Remove `mac_init` as it was breaking MacOS
2025-02-03 09:35:58 +02:00
renovate[bot] 528fe1904c chore(deps): update dependency @playwright/test to v1.50.1 2025-02-03 01:09:17 +00:00
Adorian Doran 7d81c65e8e Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-03 01:09:04 +02:00
Adorian Doran ccbd47e03d desktop app: use a custom user agent string 2025-02-03 01:09:01 +02:00
Elian Doran c32778eb65 Merge pull request #1101 from TriliumNext/bugfix/mac-paste
Remove `mac_init` as it was breaking MacOS
2025-02-03 00:49:45 +02:00
Panagiotis Papadopoulos 61e56023d4 refactor(electron-forge/deb): make desktop.ejs easier to read
in theory we could use variables in ejs, but unfortunately electron uses lodash template to create the file, which itself DOES NOT like any let/const/var assignments – wasted a bit of time finding this out, before coming up with this solution
2025-02-02 22:25:56 +01:00
Elian Doran e2c0c6ef92 feat(in-app-help): don't open table of contents when in help view 2025-02-02 21:37:41 +02:00
Elian Doran b2bbf9cc5b fix(in-app-help): set proper hoist for split help 2025-02-02 20:49:28 +02:00
Elian Doran 868ca2d982 feat(in-app-help): contextual help button for geo notes 2025-02-02 20:44:36 +02:00
perfectra1n 363360f0d5 we can just remove mac_init now since we're not using it 2025-02-02 10:21:59 -08:00
Elian Doran 64654290be fix(client/ts): regression in table of contents 2025-02-02 20:21:35 +02:00
perfectra1n 512440684e remove mac_init functionality as it was overriding paste (and other) functionality, and is no longer needed 2025-02-02 10:19:21 -08:00
Elian Doran d0317f4bb6 chore(client/ts): port toc 2025-02-02 19:44:18 +02:00
Elian Doran d901a0f787 fix(in-app-help): style error when loading a note 2025-02-02 19:21:36 +02:00
Elian Doran 3796818a78 fix(in-app-help): headings not always updated properly 2025-02-02 19:08:44 +02:00
Elian Doran ff0514a7dc fix(in-app-help): jumping to headings in table of contents 2025-02-02 18:35:41 +02:00
Elian Doran e41a02893f feat(in-app-help): enable table of contents 2025-02-02 18:33:58 +02:00
Elian Doran aca0588b26 feat(in-app-help): disable adding child notes 2025-02-02 18:13:47 +02:00
Elian Doran 989918efe6 feat(in-app-help): show syntax highlighting 2025-02-02 18:01:42 +02:00
Elian Doran b298f4acea fix(in-app-help): duplicate icon 2025-02-02 17:56:51 +02:00
Elian Doran 45ddafba6d fix(in-app-help): proper note hoisting 2025-02-02 17:54:14 +02:00
Elian Doran e24013adf5 feat(in-app-help): integrate into existing help command 2025-02-02 17:49:26 +02:00
Elian Doran 122c1ad1ec feat(in-app-help): render folders as book 2025-02-02 17:34:52 +02:00
Elian Doran 02708d593f feat(in-app-help): add default icon for notes 2025-02-02 17:03:27 +02:00
Elian Doran 6215a21bae feat(in-app-help): add dedicated icon for folders 2025-02-02 17:02:10 +02:00
Elian Doran 62dc11f9b8 feat(in-app-help): add icons for text notes 2025-02-02 16:54:09 +02:00
Elian Doran bac529f1f1 feat(in-app-help): remove duplicate <h1> 2025-02-02 16:18:07 +02:00
Elian Doran ebaba4ff4a feat(in-app-help): render images 2025-02-02 16:14:29 +02:00
Elian Doran 7c34a6178a feat(in-app-help): render documentation 2025-02-02 15:34:44 +02:00
Elian Doran 61ee15cc01 feat(in-app-help): update docName attribute if it got changed 2025-02-02 15:32:28 +02:00
Elian Doran 94d53727d1 feat(in-app-help): support child nesting 2025-02-02 14:31:07 +02:00
Elian Doran f1d641ac32 feat(in-app-help): create notes at root level 2025-02-02 14:20:02 +02:00
Elian Doran 58e82fb0f8 chore(in-app-help): add first draft of the user guide 2025-02-02 14:17:25 +02:00
Elian Doran acbd936654 chore(types): add type for note meta file 2025-02-02 13:55:15 +02:00
Elian Doran 5afddb4ecc feat(inapp-help): add hidden item for user guide 2025-02-02 13:30:22 +02:00
Elian Doran 00bb7af5bd chore(client/ts): port doc 2025-02-02 12:59:00 +02:00
Elian Doran 2fdac9b438 style(next): small margin to promoted attribute cells 2025-02-02 12:52:50 +02:00
Elian Doran 71cd35c25d style(next): fix italic text for buttons 2025-02-02 12:50:57 +02:00
Elian Doran ec95f62cd2 fix(server): doc notes not being served in dev mode 2025-02-02 12:47:41 +02:00
Elian Doran 3911c0c22b refactor(geo_map): extract build icon into method 2025-02-02 11:07:28 +02:00
Adorian Doran 6cd2a16155 style(print): skip highlighting Trilium internal links 2025-02-02 02:51:46 +02:00
Adorian Doran 9b775a142d style(print): improve footnotes 2025-02-02 02:37:39 +02:00
Adorian Doran 120b8466ac style(print): improve the TODO list check boxes 2025-02-02 02:04:25 +02:00
Elian Doran 65e593f3ff fix(geo-map): duplicate tracks after refresh 2025-02-01 23:35:34 +02:00
Adorian Doran c84737b90e Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-01 22:52:48 +02:00
Adorian Doran 72a9004643 style(print): restyle the TODO list check boxes 2025-02-01 22:52:45 +02:00
Elian Doran 7a0199595d feat(geo_map): react to changes in hierarchy 2025-02-01 22:22:19 +02:00
Elian Doran 15881dfb6b feat(geo_map): add basic support for gpx files 2025-02-01 22:13:47 +02:00
Elian Doran 211b557920 refactor(geo_map): move marker processing to dedicated method 2025-02-01 21:46:11 +02:00
Elian Doran bd638b689f feat(print): improve todo list rendering 2025-02-01 19:45:10 +02:00
Adorian Doran 3eccdd5cff style(print): justify the note's text 2025-02-01 19:41:33 +02:00
Adorian Doran 7702726012 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-01 19:16:49 +02:00
Adorian Doran ca496e1d12 desktop app/export pdf: enable background colors 2025-02-01 19:16:47 +02:00
Elian Doran 6ac868555f feat(print): fix widowed headings 2025-02-01 19:16:28 +02:00
Elian Doran 2bb006d80e feat(print): better widows & orphans support 2025-02-01 19:16:28 +02:00
Adorian Doran e3816c30c0 style(print): tweak figure captions 2025-02-01 19:07:51 +02:00
Adorian Doran 170bba1a89 style(print): tweak blockquotes 2025-02-01 19:02:53 +02:00
Adorian Doran b5ee642c2d style(print): tweak footnotes 2025-02-01 18:58:50 +02:00
Adorian Doran 16f62bdde9 style(print): tweak links 2025-02-01 18:41:43 +02:00
Elian Doran fa655ea45e feat(pdf): describe the attributes & fix conflict in name 2025-02-01 17:34:42 +02:00
Adorian Doran 2659bd33e8 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-01 17:17:57 +02:00
Adorian Doran 3cd02f6ceb client(print): use a larger page margins 2025-02-01 17:17:49 +02:00
Elian Doran f41138800f feat(pdf): allow changing page size via attribute 2025-02-01 17:10:49 +02:00
Elian Doran 9a3a6f90ea Add option to export 2025-02-01 16:59:23 +02:00
Elian Doran eedad4170e Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-01 16:59:17 +02:00
Adorian Doran f2cc98eeec client(print): fix the content having a left margin when the note is read-only 2025-02-01 16:58:52 +02:00
Adorian Doran 8b8f0c289e client(print): use a different base font size 2025-02-01 16:51:04 +02:00
Adorian Doran 9c4535bade desktop app(export pdf): enable document outline and PDF tags generation 2025-02-01 16:31:25 +02:00
Elian Doran dd12d7f314 chore(client/ts): port export 2025-02-01 16:23:55 +02:00
Adorian Doran 02d4d011c3 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-01 16:15:25 +02:00
Adorian Doran 6d6272e5b6 desktop app(export pdf): refactor 2025-02-01 16:14:49 +02:00
Panagiotis Papadopoulos e710409134 test(server/utils): remove completed TODO 2025-02-01 15:10:31 +01:00
Panagiotis Papadopoulos 08c32da0d2 test(server/utils): fix warnings and explicitly await timeLimit tests 2025-02-01 15:06:07 +01:00
Panagiotis Papadopoulos 13e72c5e0a test(server/utils): add basic test for toObject 2025-02-01 15:00:47 +01:00
Panagiotis Papadopoulos 5c904f100a test(server/utils): add prettier ignore statement to avoid newlines getting mangled 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 4917296d96 test(server/utils): add basic test for deferred
this needs to be expanded, but I don't fully understand
what the exact purpose is of this deferred fn
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos e1795a0ad1 test(server/utils): add tests for toMap 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos ab0c84a57e refactor(server/utils): use a "real" Map for toMap 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos f0ba056bb7 test(server/utils): add tests for escapeHtml & unescapeHtml 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos d71e127828 refactor(server/utils): re-export escape/unescape instead of wrapping them in function
-> since the functions did not do *anything* other than calling the escape/unescape module -> let's just re-export them directly
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 72f0de6b78 test(server/utils): add todo remarks 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 9f2dd21865 test(server/utils): add tests for randomSecureToken
(bit ugly I have to say, as we are essentially partially testing "crypto" module here,
probably should be instead replaced by a version that mocks crypto module and checks, if the called functions match the expectations)
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos a4ce2ddd5e refactor(server/utils): simplify getResourceDir
get rid of unnecessary else branch here
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 6e5e6989ed fix(server/utils): fix potentially "empty looking" title from getNoteTitle
when the noteMeta title consists of just spaces, it will fall back to "normal" handling again → instead of showing " " as title, which would be perceived as "empty"
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 46f28f4f09 test(server/utils): add edge case test for getNoteTitle
when the noteMeta title consists of just spaces, it should fall back to "normal" handling again → currently this fails
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 65be2cf048 refactor(server/utils): simplify getNoteTitle 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos c3587ad536 test(server/utils): add tests for getNoteTitle 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos c15e46bf25 chore(server/utils): improve types for getNoteTitle 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos b812e67794 test(server/utils): adapt tests for getContentDisposition
since we merged these functions, adapt the previous tests of sanitizeFilenameForHeader and use them for the newly merged function getContentDisposition
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos fedaec6c79 refactor(server/utils): merge sanitizeFilenameForHeader into getContentDisposition
sanitizeFilenameForHeader is not used anywhere else and is tiny, so let's merge it
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 29b1befd60 fix(server/utils): missing export for sanitizeFilenameForHeader 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 6ab9a3979d refactor(server/utils): simplify sanitizeFilenameForHeader
since "" is falsy, we can just use "||" here
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos acb7098bb8 test(server/utils): add tests for sanitizeFilenameForHeader 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos df1d479720 chore(server/utils): sort exports alphabetically 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos ef66d330ec chore(server/utils): timeLimit - add TODO comment 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 9a8a27c02c refactor(server/utils): avoid same variable name for error in timeLimit
rename the error created in timeLimit to `errorTimeLimit` to differentiate it from the error that is caught inside the promise

makes it a bit easier to quickly distinguish these
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 9eeedc827c test(server/utils): add tests for timeLimit 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 440dbfd4d4 refactor(server/utils): use Set for isStringNote 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 3094b1779e test(server/utils): add tests for isStringNote 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 5c20a6d5ee test(server/utils): add tests for isDev 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 283b19c716 fix(server/utils): add missed export of isDev in default export object 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos de5ffb591d test(server/utils): add tests for isMac/isWindows/isElectron 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 81db681732 refactor(server/utils): remove unused union
function is not used at all anywhere
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 45cf0334f1 test(server/utils): add tests for stripTags 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 738436061c test(server/utils): add tests for removeDiacritic and normalize 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 92123e1761 refactor(server/utils): get rid of isString
let's use typeof x === "string" → works exactly the same and at the same speed as this custom isString fn
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 41c96fb202 test(server/utils): add tests for envToBoolean 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 9689222fd4 test(server/utils): add tests for removeTextFileExtension 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 05a0acbdb5 test(server/utils): add tests for newEntityId
and randomString
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 33346e0cee test(server/utils): add tests for sanitizeSqlIdentifier 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 03c1128a72 fix(isEmptyOrWhitespace): avoid exception throwing when passed value is undefined
the req.body value from "routes/api/branches" actually seems to never get parsed into a JS object, but arrives as text string, so req.body.prefix could be undefined, which of course would cause an error to be thrown, when trying to call "match" on undefined.
2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 8546fe2333 test(server/utils): add tests for isEmptyOrWhitespace 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos e6f5321444 test(server/utils): move formatDownloadTitle tests to spec file 2025-02-01 14:37:12 +01:00
Panagiotis Papadopoulos 668cc7e1a4 test(import/utils): prepare spec file 2025-02-01 14:37:12 +01:00
Elian Doran a2f1d71754 chore(client/ts): port mobile_widgets 2025-02-01 14:45:12 +02:00
Elian Doran 2baf75d0c1 feat(electron): custom icon for the windows installer 2025-02-01 14:39:36 +02:00
Adorian Doran dcf164e2ff Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-01 14:37:36 +02:00
Adorian Doran a1dfeb14e1 desktop app(export pdf): add page numbering 2025-02-01 14:37:21 +02:00
Elian Doran 72991a5649 fix(tray): improve fit for recent notes 2025-02-01 14:00:56 +02:00
Elian Doran 50514e2418 feat(tray): display recent note date as detail 2025-02-01 13:23:14 +02:00
Elian Doran 495fce7594 feat(tray): use template for menu icons 2025-02-01 12:57:51 +02:00
Elian Doran ddb277e8e5 feat(tray): use template for main icon 2025-02-01 12:53:11 +02:00
Elian Doran 6db51d648b feat(tray): black icon for macOS 2025-02-01 12:49:01 +02:00
Elian Doran c80bf48d13 fix(tray): bring back dev icon 2025-02-01 12:45:32 +02:00
Elian Doran 0f2e50d265 feat(tray): higher DPI icon 2025-02-01 12:41:43 +02:00
Elian Doran e10256e5bd fix(tray): error if today's note was missing 2025-02-01 12:25:12 +02:00
Elian Doran 43ba49833d feat(tray): try add 1.25x and 1.5x for Windows high-DPI 2025-02-01 12:22:13 +02:00
Elian Doran 755774042e feat(tray): support hi-DPI 2025-02-01 11:59:42 +02:00
Elian Doran 0acd3c621e Merge pull request #1086 from TriliumNext/fix_search_of_autocomplete
Fix a bug in the full text search in AutoComplete
2025-02-01 11:41:06 +02:00
Elian Doran 0bf3f890a2 feat(tray): support custom icon for dev mode 2025-02-01 11:34:35 +02:00
Elian Doran 80ddc8b4ef feat(tray): react to language changes 2025-02-01 11:20:29 +02:00
Elian Doran 54f9cf831d feat(i18n): translate tray icon 2025-02-01 11:16:46 +02:00
Elian Doran 60d8bc8238 feat(tray): reload recent notes on change 2025-02-01 11:07:47 +02:00
Elian Doran ebc523a0fd feat(tray): reload bookmarks on change 2025-02-01 11:04:49 +02:00
Elian Doran 09bf48e5a4 feat(tray): support bookmark folders 2025-02-01 10:54:00 +02:00
Elian Doran ae4f012390 feat(tray): ensure window is visible 2025-02-01 10:46:27 +02:00
Elian Doran c1f8c8a0b9 feat(tray): react to dark mode change 2025-02-01 10:41:08 +02:00
Elian Doran 4701edff4c feat(tray): support dark theme for icons 2025-02-01 10:32:57 +02:00
Elian Doran 736f329857 feat(tray): use icons for tray items 2025-02-01 10:21:25 +02:00
Elian Doran 4bd9d32c74 feat(tray): use checkbox for show windows and move to top 2025-02-01 02:46:33 +02:00
Elian Doran 839e8a4143 feat(tray): display recent notes 2025-02-01 02:40:04 +02:00
Elian Doran cd0c79e3d2 feat(tray): show a list of bookmarks 2025-02-01 02:29:34 +02:00
Elian Doran 84edf0348f feat(tray): open today's journal note 2025-02-01 02:18:10 +02:00
Elian Doran 4b1cbca76d feat(tray): add option to create new note 2025-02-01 02:08:19 +02:00
Elian Doran 9e0d002704 refactor(tray): use named functions instead of arrow fn 2025-02-01 01:54:51 +02:00
Elian Doran c09ef76f87 Merge pull request #1091 from TriliumNext/feature/different_printing_mechanism
Export as PDF
2025-02-01 01:35:43 +02:00
Elian Doran b59f98d63b Merge pull request #1092 from lly-c232733/develop
Band-Aid fix for the bootleg eslint
2025-02-01 01:32:03 +02:00
Elian Doran bd363dac93 chore(review): use async 2025-02-01 01:21:38 +02:00
Elian Doran 81755d804b feat(print): improve code notes 2025-02-01 01:16:35 +02:00
Elian Doran 6ad19198c6 feat(print): improve on mobile 2025-02-01 01:12:53 +02:00
Elian Doran 8e88645fd3 feat(print): hide placeholder if note is empty 2025-02-01 00:55:00 +02:00
Elian Doran 2cc7113c2c refactor(deps): get rid of print-this 2025-02-01 00:52:46 +02:00
Elian Doran ac5f911d4f fix(print): include note not always full-height 2025-02-01 00:43:51 +02:00
Elian Doran e20180014b chore(i18n): translate new messages to Romanian 2025-02-01 00:37:32 +02:00
Elian Doran 719046e2ca feat(pdf): add keyboard shortcut 2025-02-01 00:36:06 +02:00
Elian Doran f3a3906db7 feat(pdf): support landscape mode at note level 2025-02-01 00:28:48 +02:00
Elian Doran 658ce103fc feat(pdf): maintain table heading background 2025-02-01 00:08:38 +02:00
Elian Doran bfadd36f3d style(next): don't print box shadow for code 2025-02-01 00:01:13 +02:00
Elian Doran d1a5d317ed feat(print): improve rendering of tables 2025-01-31 23:57:50 +02:00
Elian Doran 3927548afb fix(print): width is not always 100% 2025-01-31 23:50:46 +02:00
Elian Doran ae5a9df5cc fix(print): sidebar reduces width 2025-01-31 23:49:51 +02:00
Elian Doran 3720ca6fc4 fix(print): hide promoted attributes, note list 2025-01-31 23:45:25 +02:00
Elian Doran cd031336ab fix(print): disable rounded corners on some containers 2025-01-31 23:44:21 +02:00
Elian Doran 30b1da0f41 fix(print): tabs sometimes visible 2025-01-31 23:43:00 +02:00
Elian Doran 143217be88 fix(print): background color 2025-01-31 23:41:23 +02:00
Elian Doran 84532d42ec feat(pdf): error handling 2025-01-31 23:29:53 +02:00
Elian Doran d4965e8d41 feat(pdf): improve save filter on Windows 2025-01-31 22:51:58 +02:00
lly-c232733 08133dcf3d Update eslint.js
not sure why 'latest' is not working, but this fixes the annoying errors related to es5 being default
2025-01-31 15:41:41 -05:00
Elian Doran 7813c896c3 feat(pdf): hide the option if not electron 2025-01-31 22:22:45 +02:00
Elian Doran 508ce4c962 feat(pdf): open the exported file 2025-01-31 22:19:19 +02:00
Elian Doran 8ac1beaee7 chore(i18n): translate one message 2025-01-31 22:13:48 +02:00
Elian Doran edaf030b87 chore(pdf: change icon 2025-01-31 22:01:44 +02:00
Elian Doran e029a3991a fix(pdf): not disabled for unprintable note types 2025-01-31 22:00:26 +02:00
Elian Doran 615218513a feat(pdf): suggest proper file name 2025-01-31 21:58:52 +02:00
Adorian Doran 46573714a4 style(next): tweak the text segments of input groups 2025-01-31 21:52:53 +02:00
Elian Doran 414a4d7b17 feat(print): add filter for PDF 2025-01-31 21:51:15 +02:00
Adorian Doran 09c14f8663 style(next): settings/appearance: fix the length of font size input boxes 2025-01-31 21:50:07 +02:00
Elian Doran 0f7826d6d0 feat(print): implement basic export as PDF support 2025-01-31 21:44:59 +02:00
Adorian Doran c5edfbc127 style(next): restyle the text segments of input groups 2025-01-31 21:35:08 +02:00
Adorian Doran b56b42bea0 style(next): improve the color contrast for switches 2025-01-31 21:26:19 +02:00
Elian Doran dbf004d673 feat(print): add option to print as PDF (not yet implemented) 2025-01-31 21:18:24 +02:00
Elian Doran e3dbe21c5a chore(client/ts): port note_actions 2025-01-31 21:08:09 +02:00
Adorian Doran 48b4f37f91 style(next): adjust the vertical offset of the menu item icons to align with the new font metrics 2025-01-31 21:02:11 +02:00
Elian Doran 298634ceaa refactor(print): use dedicated print CSS 2025-01-31 20:47:18 +02:00
Elian Doran 561c50706e feat(print): carry over original print stylesheet 2025-01-31 20:45:18 +02:00
Elian Doran 4a5bf28f06 fix(print): remove title & reduce paddings 2025-01-31 20:43:35 +02:00
Elian Doran d201fe7a06 fix(print): left padding of text notes 2025-01-31 20:40:11 +02:00
Elian Doran 7dfba9f513 feat(print): respect page breaks 2025-01-31 20:32:12 +02:00
Elian Doran c06642ba1e fix(print): remove extra spacing 2025-01-31 20:27:32 +02:00
Elian Doran d5d7c1565e feat(print): implement stylesheet for global note printing 2025-01-31 20:24:19 +02:00
SiriusXT b44df12148 Fix a bug in the full text search in AutoComplete 2025-01-31 19:10:45 +08:00
Adorian Doran c878a6d2fd Merge pull request #1074 from TriliumNext/style/next/forms
Style Next: Restyle form elements
2025-01-31 11:19:25 +02:00
Elian Doran 77bbdc3857 chore(client/ts): port new version of switch 2025-01-31 09:57:25 +02:00
Elian Doran 0dd91ad737 revert: accidental changes after merge 2025-01-31 09:41:53 +02:00
Adorian Doran c6bbc284aa style(next): remove a not longer needed style 2025-01-31 03:32:06 +02:00
Adorian Doran e742bdf401 client: fix the style of the icon category combo box 2025-01-31 02:54:24 +02:00
Adorian Doran e270b0b587 style(next): tweak the colors of the dark theme 2025-01-31 00:26:49 +02:00
Adorian Doran 076c9f4d96 style(next): tweak the colors of the dark theme 2025-01-31 00:09:46 +02:00
Adorian Doran e425f64616 style(next): icon buttons: properly align the buttons in the right panes' header 2025-01-31 00:01:41 +02:00
Adorian Doran f59515fe36 style(next): use the new icon button style for the help buttons associated to switches 2025-01-30 23:56:41 +02:00
Adorian Doran 67904e16a8 client: rollback some buttons as secondary buttons 2025-01-30 23:49:53 +02:00
Adorian Doran 9c847686a6 style(next): use the new icon button style for the ETAPI token table buttons 2025-01-30 23:49:25 +02:00
Adorian Doran c8a556723c style(next): icon buttons: use a distinctive style for the "x" buttons 2025-01-30 23:23:12 +02:00
Adorian Doran ac89c2cb65 style(next): icon buttons: tweak the alignment of the "Create new split" button relative to the note's menu button 2025-01-30 23:08:09 +02:00
Adorian Doran 9cfd01200a style(next): icon buttons: add a style for the visible focus state 2025-01-30 22:50:35 +02:00
Adorian Doran f2f0bf3e10 style(next): icon buttons: keep the button highlighted while the dropdown is open 2025-01-30 22:47:24 +02:00
Adorian Doran 3311f4f01c style(next): restyle icon buttons 2025-01-30 22:44:11 +02:00
Adorian Doran b170c234ce style(next): refactor 2025-01-30 21:00:46 +02:00
Adorian Doran 349ae84c8e style(next): tweak combo box-like dropdown buttons 2025-01-30 20:57:36 +02:00
Adorian Doran c3656e27c8 client: mark a button to by styled as a combo box-like dropdown 2025-01-30 20:46:42 +02:00
Adorian Doran b27537a9c3 style(next): buttons: fix combo box-like dropdown buttons regression 2025-01-30 20:44:27 +02:00
Adorian Doran c26dd283fa client: rollback some buttons as secondary buttons 2025-01-30 20:30:51 +02:00
Elian Doran 3f6e66b5f1 chore(release): bump to v0.91.5
/ Check Docker build (Dockerfile) (push) Failing after 36s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 42s
/ Build Docker images (Dockerfile, linux/arm/v7) (push) Has been skipped
/ Build Docker images (Dockerfile, linux/arm64) (push) Has been skipped
/ Build Docker images (Dockerfile.alpine, linux/amd64) (push) Has been skipped
/ Merge manifest lists (push) Has been skipped
Release / Make Electron (arm64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 34s
Release / Make Electron (x64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 35s
Release / Build Linux Server (x64, ubuntu-latest) (push) Failing after 32s
Release / Make Electron (arm64, map[extension:dmg image:macos-latest name:macos]) (push) Has been cancelled
Release / Make Electron (arm64, map[extension:exe image:windows-latest name:windows]) (push) Has been cancelled
Release / Make Electron (x64, map[extension:dmg image:macos-latest name:macos]) (push) Has been cancelled
Release / Make Electron (x64, map[extension:exe image:windows-latest name:windows]) (push) Has been cancelled
Release / Build Linux Server (arm64, ubuntu-24.04-arm) (push) Has been cancelled
2025-01-30 20:14:22 +02:00
Elian Doran 730a43c922 fix(mobile): formatting bar overlapping with bottom bar (fixes #970) 2025-01-30 19:44:17 +02:00
Elian Doran 047b226426 Merge commit 'ef5f5b35db25bd532c1f22424a7f17576cc219a4' into develop 2025-01-30 18:04:49 +02:00
Elian Doran 795dec77cf Merge pull request #1076 from TriliumNext/renovate/electron-34.x
chore(deps): update dependency electron to v34.0.2
2025-01-30 09:01:49 +02:00
Elian Doran 4f69fd664c Merge pull request #1077 from TriliumNext/renovate/semver-7.x
fix(deps): update dependency semver to v7.7.0
2025-01-30 09:01:26 +02:00
renovate[bot] d27e33c9f0 fix(deps): update dependency semver to v7.7.0 2025-01-30 01:56:57 +00:00
renovate[bot] 3318c9fec6 chore(deps): update dependency electron to v34.0.2 2025-01-30 01:56:48 +00:00
Adorian Doran ad06eaca5e Merge branch 'develop' of https://github.com/TriliumNext/Notes into style/next/forms 2025-01-30 00:17:24 +02:00
Adorian Doran a889170844 style(next): buttons: remove useless property 2025-01-30 00:17:03 +02:00
Adorian Doran 774249d6ad style(next): buttons: improve layout 2025-01-29 23:41:57 +02:00
Adorian Doran 700598ed63 style(next): buttons: remove the previously defined gap between buttons 2025-01-29 23:23:47 +02:00
Adorian Doran 4988468103 style(next): buttons: refactor, document 2025-01-29 23:21:44 +02:00
Adorian Doran 0fed7842cf Merge branch 'style/next/forms' of https://github.com/TriliumNext/Notes into style/next/forms 2025-01-29 23:14:38 +02:00
Adorian Doran bd37055965 style(next): buttons: style icons 2025-01-29 23:14:27 +02:00
Elian Doran 748162b997 fix(e2e): broken test after style changes 2025-01-29 22:40:43 +02:00
Panagiotis Papadopoulos 092c288df2 chore(issue_templates): add simple Task template 2025-01-29 22:40:43 +02:00
Panagiotis Papadopoulos 818cc30650 refactor(server/utils): isDev move to utils and replace fn with boolean
this value cannot change during runtime,
=> there is no need to have these checks
as dynamic function, instead just
export the boolean value directly
2025-01-29 22:40:43 +02:00
Panagiotis Papadopoulos 13a1b42e12 refactor(server/utils): isElectron - replace fn with boolean
this values cannot change during runtime,
=> there is no need to have these checks
as dynamic function, instead just
export the boolean value directly
2025-01-29 22:40:42 +02:00
Panagiotis Papadopoulos 5630a7b2e3 refactor(server/utils): isMac/isWin - replace fn with boolean
those values cannot change during runtime,
=> there is no need to have these checks
as dynamic function, instead just
export the boolean value directly
2025-01-29 22:40:42 +02:00
Panagiotis Papadopoulos 013b42bdd1 fix(setup): make keyboard navigation work
fixes #94
2025-01-29 22:40:42 +02:00
Panagiotis Papadopoulos a110161b2e fix(setup): use safer text method instead of html to prevent possible XSS
see also https://api.jquery.com/html/
under "Additional Notes":
"Do not use these methods to insert strings obtained from untrusted sources such as URL query parameters, cookies, or form inputs. Doing so can introduce cross-site-scripting (XSS) vulnerabilities. Remove or escape any user input before adding content to the document. "

fixes #1072
2025-01-29 22:40:42 +02:00
Panagiotis Papadopoulos 328c53b725 chore(assets): remove manual provision of knockout
this is only used in setup.ts and there it is already packed by webpack – so no need to manually provide it as static asset anymore
2025-01-29 22:40:42 +02:00
Panagiotis Papadopoulos 06d9b998de chore(prettier): fix code style for setup.ts 2025-01-29 22:40:42 +02:00
Panagiotis Papadopoulos e6103bf11a chore(views/setup): remove knockout src tag
-> this is now handled inside setup.ts and is handled by webpack
2025-01-29 22:40:42 +02:00
Panagiotis Papadopoulos 726683078e chore(views/setup): move syncInProgress to meta tag
makes it easier to hanlde in the setup.ts file
2025-01-29 22:40:42 +02:00
Panagiotis Papadopoulos 52814030d8 chore(client/ts): port setup.js entrypoint to TS 2025-01-29 22:40:42 +02:00
Adorian Doran e96b9f3251 style(next): buttons: style keyboard shortcut 2025-01-29 22:20:52 +02:00
Elian Doran 67a23f0bae Merge pull request #1070 from TriliumNext/chore_github-issue_task
chore(issue_templates): add simple Task template
2025-01-29 22:17:45 +02:00
Elian Doran 6fab899898 Merge pull request #1073 from TriliumNext/refactor_utils-isPlatform
refactor(server/utils): turn isMac/isWin/isElectron/isDev into boolean
2025-01-29 22:16:20 +02:00
Elian Doran fd53d49937 Merge pull request #1071 from TriliumNext/fix_setup-keyboard-navigation_#94
fix(setup): make keyboard navigation work
2025-01-29 22:10:29 +02:00
Adorian Doran e29389296d style(next): buttons: handle visible focus 2025-01-29 22:02:25 +02:00
Adorian Doran 8718dafe88 style(next): buttons: style disabled buttons 2025-01-29 21:59:18 +02:00
Elian Doran e255fb5a20 Merge pull request #1065 from TriliumNext/chore_port_setup-entrypoint
chore(client/ts): port setup entrypoint
2025-01-29 21:55:39 +02:00
Adorian Doran 2bfb253a2a style(next): buttons: handle "success" button types 2025-01-29 21:53:22 +02:00
Adorian Doran 7d88e43555 client: mark some buttons with their type (primary or secondary) 2025-01-29 21:50:35 +02:00
Adorian Doran 82074ea7eb style(next): buttons: restore a legacy CSS variable 2025-01-29 21:20:31 +02:00
Adorian Doran 16ea6186dd style(next): buttons: rename the CSS variables to avoid clashing with another button styles 2025-01-29 21:17:20 +02:00
Adorian Doran 96b25b8e5e style(next): buttons: use a more accurate CSS selectors 2025-01-29 18:51:00 +02:00
Elian Doran ef5f5b35db feat(i18n): translate template switch off button 2025-01-29 18:40:56 +02:00
Elian Doran 3c60f181ff chore(client/ts): port template_switch 2025-01-29 18:39:59 +02:00
Elian Doran 6aba099a29 chore(client/ts): port switch 2025-01-29 18:38:27 +02:00
Elian Doran f86d9b11b1 feat(i18n): translate unable to render note type 2025-01-29 18:37:02 +02:00
Adorian Doran 90afd01d1f style(next): restyle buttons 2025-01-29 18:24:05 +02:00
Adorian Doran dee221e18a Merge branch 'develop' of https://github.com/TriliumNext/Notes into style/next/forms 2025-01-29 17:26:24 +02:00
Panagiotis Papadopoulos 31c46753de refactor(server/utils): isDev move to utils and replace fn with boolean
this value cannot change during runtime,
=> there is no need to have these checks
as dynamic function, instead just
export the boolean value directly
2025-01-29 10:58:00 +01:00
Panagiotis Papadopoulos ca2bb94200 refactor(server/utils): isElectron - replace fn with boolean
this values cannot change during runtime,
=> there is no need to have these checks
as dynamic function, instead just
export the boolean value directly
2025-01-29 10:55:53 +01:00
Panagiotis Papadopoulos 94411cf418 refactor(server/utils): isMac/isWin - replace fn with boolean
those values cannot change during runtime,
=> there is no need to have these checks
as dynamic function, instead just
export the boolean value directly
2025-01-29 10:55:53 +01:00
Elian Doran dadda026fb Merge pull request #1068 from TriliumNext/chore_github-issue-type
chore(issue_templates): Use new type field
2025-01-29 11:19:03 +02:00
Panagiotis Papadopoulos c9c8ee5556 fix(setup): use safer text method instead of html to prevent possible XSS
see also https://api.jquery.com/html/
under "Additional Notes":
"Do not use these methods to insert strings obtained from untrusted sources such as URL query parameters, cookies, or form inputs. Doing so can introduce cross-site-scripting (XSS) vulnerabilities. Remove or escape any user input before adding content to the document. "

fixes #1072
2025-01-29 10:07:40 +01:00
Panagiotis Papadopoulos 66c42f0524 fix(setup): make keyboard navigation work
fixes #94
2025-01-29 09:53:03 +01:00
Panagiotis Papadopoulos 1b35ba762f chore(issue_templates): add simple Task template 2025-01-29 09:16:13 +01:00
Panagiotis Papadopoulos 8344dcee85 chore(issue_templates): Use new type field
https://github.com/orgs/community/discussions/148715#discussioncomment-11845050
also removed title field, as duplicating the issue "type" info in there is not
necessary anymore
2025-01-29 09:08:32 +01:00
Panagiotis Papadopoulos ed33b72f57 chore(assets): remove manual provision of knockout
this is only used in setup.ts and there it is already packed by webpack – so no need to manually provide it as static asset anymore
2025-01-29 08:48:03 +01:00
Elian Doran 7c28b93477 Merge pull request #1066 from TriliumNext/renovate/node-22.x
chore(deps): update dependency @types/node to v22.12.0
2025-01-29 09:20:33 +02:00
renovate[bot] b49ea378cb chore(deps): update dependency @types/node to v22.12.0 2025-01-29 00:29:12 +00:00
Panagiotis Papadopoulos 4adaa4bd58 chore(prettier): fix code style for setup.ts 2025-01-28 23:18:17 +01:00
Panagiotis Papadopoulos 0559ebb48a chore(views/setup): remove knockout src tag
-> this is now handled inside setup.ts and is handled by webpack
2025-01-28 23:16:16 +01:00
Panagiotis Papadopoulos 98c4baeb6b chore(views/setup): move syncInProgress to meta tag
makes it easier to hanlde in the setup.ts file
2025-01-28 23:15:16 +01:00
Panagiotis Papadopoulos c7b368fa46 chore(client/ts): port setup.js entrypoint to TS 2025-01-28 23:13:06 +01:00
Elian Doran 05b67fc486 fix(mobile): backend log not shown (fixes #1058) 2025-01-28 22:02:52 +02:00
Elian Doran 44928093bb chore(build): rebuild electron for start-electron-nix 2025-01-28 21:23:20 +02:00
Elian Doran 4da67443c4 feat(print): preserve highlighted text (closes #905) 2025-01-28 21:23:04 +02:00
Elian Doran feb7ceacd8 style(next): fix strikethrough undelete button 2025-01-28 21:11:18 +02:00
Elian Doran 5c31a0afeb fix(client): quote breaking tooltips (fixes #1003) 2025-01-28 21:03:39 +02:00
Elian Doran a2b6504d9d feat(ci): build server for Linux ARM
/ Check Docker build (Dockerfile) (push) Failing after 39s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 37s
/ Build Docker images (Dockerfile, linux/arm/v7) (push) Has been skipped
/ Build Docker images (Dockerfile, linux/arm64) (push) Has been skipped
/ Build Docker images (Dockerfile.alpine, linux/amd64) (push) Has been skipped
/ Merge manifest lists (push) Has been skipped
Release / Make Electron (arm64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 35s
Release / Make Electron (x64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 34s
Release / Build Linux Server (x64, ubuntu-latest) (push) Failing after 37s
Release / Make Electron (arm64, map[extension:dmg image:macos-latest name:macos]) (push) Has been cancelled
Release / Make Electron (arm64, map[extension:exe image:windows-latest name:windows]) (push) Has been cancelled
Release / Make Electron (x64, map[extension:dmg image:macos-latest name:macos]) (push) Has been cancelled
Release / Make Electron (x64, map[extension:exe image:windows-latest name:windows]) (push) Has been cancelled
Release / Build Linux Server (arm64, ubuntu-24.04-arm) (push) Has been cancelled
2025-01-28 19:06:14 +02:00
Elian Doran ab9b5a6926 feat(geo_map): move markers when panning across the world
/ Check Docker build (Dockerfile) (push) Failing after 39s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 41s
/ Build Docker images (Dockerfile, linux/arm/v7) (push) Has been skipped
/ Build Docker images (Dockerfile, linux/arm64) (push) Has been skipped
/ Build Docker images (Dockerfile.alpine, linux/amd64) (push) Has been skipped
/ Merge manifest lists (push) Has been skipped
Release / Make Electron (arm64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 43s
Release / Make Electron (x64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 39s
Release / Build Linux Server x86_64 (push) Failing after 36s
Release / Make Electron (arm64, map[extension:dmg image:macos-latest name:macos]) (push) Has been cancelled
Release / Make Electron (arm64, map[extension:exe image:windows-latest name:windows]) (push) Has been cancelled
Release / Make Electron (x64, map[extension:dmg image:macos-latest name:macos]) (push) Has been cancelled
Release / Make Electron (x64, map[extension:exe image:windows-latest name:windows]) (push) Has been cancelled
2025-01-28 17:13:15 +02:00
Elian Doran 687be6d722 fix(client): note type chooser does not have geo map entry 2025-01-28 17:05:51 +02:00
Elian Doran eaf548f056 style(next): fix top position of code badge 2025-01-28 17:05:51 +02:00
Elian Doran f1cb95d95e fix(types): allow falsy values 2025-01-28 16:44:56 +02:00
Elian Doran 189a2296c4 chore(i18n): promote mind map to stable note type 2025-01-28 16:34:10 +02:00
Elian Doran 3f6dc717b6 feat(client/ts): port editability_select 2025-01-28 16:21:26 +02:00
Elian Doran aecba70efc fix(client): broken layouts in editability and note type dropdowns 2025-01-28 16:18:36 +02:00
Elian Doran 546274a79d feat(client/ts): port note_list 2025-01-28 14:13:21 +02:00
Elian Doran 15c63f52dc feat(client/ts): port note_title 2025-01-28 14:07:56 +02:00
Elian Doran 55ce673f1b Merge pull request #1056 from TriliumNext/chore_port-desktop-mobile-entrypoints
chore: port desktop and mobile entrypoints
2025-01-28 13:10:46 +02:00
Elian Doran 10536adecf Merge pull request #1057 from TriliumNext/fix_npm-audit
fix(deps): run npm audit fix
2025-01-28 09:05:30 +02:00
Elian Doran 7eed037ace chore(deps): update package.lock 2025-01-28 08:56:05 +02:00
Elian Doran 7bac28bff4 chore(build): fix running electron on nixos 2025-01-28 08:55:54 +02:00
Panagiotis Papadopoulos 939c2b7ef6 fix(deps): run npm audit fix 2025-01-28 07:40:51 +01:00
Panagiotis Papadopoulos e614e775fa chore(client/ts): port mobile.js entrypoint to TS 2025-01-28 07:25:26 +01:00
Panagiotis Papadopoulos 4c30853258 chore(client/ts): port desktop.js entrypoint to TS 2025-01-28 07:25:26 +01:00
Panagiotis Papadopoulos 144a7ff3a1 chore(types.d.ts): add missing platform prop to CustomGlobals
as used e.g. in dekstop.js – supplied via ejs (and then rendered via `./src/views/partials/windowGlobal`

I left it as optional however, because e.g. it does not seem to exist on *all* pages
2025-01-28 07:25:26 +01:00
Elian Doran 24026ff013 chore(release): prepare for 0.91.4-beta 2025-01-28 00:09:49 +02:00
Elian Doran 7d8e96d6df fix(context-menu): keyboard shortcut not filling width 2025-01-28 00:03:04 +02:00
Elian Doran 9125aeca29 Merge pull request #1048 from TriliumNext/chore_webpack-share
chore: make share.js work with webpack
2025-01-27 22:42:13 +02:00
Elian Doran 4264e37256 Merge pull request #1053 from TriliumNext/renovate/mind-elixir-node-menu-1.x
fix(deps): update dependency @mind-elixir/node-menu to v1.0.4
2025-01-27 22:19:59 +02:00
Panagiotis Papadopoulos 21539857c3 build(npm): remove override again, as @mind-elixir/node-menu got updated :-) 2025-01-27 19:46:36 +01:00
renovate[bot] 1d9f15b9a2 fix(deps): update dependency @mind-elixir/node-menu to v1.0.4 2025-01-27 16:35:43 +00:00
Elian Doran be115e82b6 Merge pull request #1049 from TriliumNext/build_npm-override
build(npm): use specific overrides instead of `legacy-peer-deps`
2025-01-27 14:49:35 +02:00
Elian Doran 3dd5623f73 Merge pull request #1051 from TriliumNext/chore_delete-outdated-issue-template
chore: delete outdated issue_template.md
2025-01-27 14:43:42 +02:00
Panagiotis Papadopoulos 1d9c43f77e chore: delete outdated issue_template.md
chore: delete outdated issue_template.md, the current ones are already existing under `.github`
2025-01-27 10:40:33 +01:00
Panagiotis Papadopoulos a234234373 build(npm): use specific overrides instead of legacy-peer-deps
allows us to handle these peer dependency
issues on a case by case basis, instead of
generally allowing it for all packages,
which could lead to unnoticed issues.

in this case the @mind-elixir/node-menu package
is still showing mind-elixir 2.x.x as peerDep,
which cannot be resolved, since we use v4
2025-01-27 07:54:48 +01:00
Panagiotis Papadopoulos ad02b86719 chore: remove now unnecessary manual copying of share.js
this is now correctly handled by the webpack build
2025-01-26 21:39:34 +01:00
Panagiotis Papadopoulos 74f6ad46ae chore(app/share): add workaround for dead code eliminination by webpack
since fetchNote function is not used anywhere, webpack will treat it as "dead code" and remove it from the final output

I did not have any success with using webpack config flags like "sideEffects", so I've reverted to this workaround for now
2025-01-26 21:23:08 +01:00
Panagiotis Papadopoulos 3ed9528495 chore(app/share): port to TypeScript 2025-01-26 20:54:30 +01:00
Elian Doran c6730c5467 chore(client/ts): port ribbon_container 2025-01-26 21:24:42 +02:00
Elian Doran 47fb4d7b27 chore(client/ts): port note_info_widget 2025-01-26 21:23:08 +02:00
Elian Doran 20584f622d chore(client/ts): port zpetne_odkazy 2025-01-26 21:23:08 +02:00
Elian Doran 32fc5def77 chore(client/ts): port note_map 2025-01-26 21:23:08 +02:00
Elian Doran befdade7ba chore(client/ts): port similar_notes 2025-01-26 21:23:08 +02:00
Elian Doran 4492c60aa9 chore(client/ts): port note_paths 2025-01-26 21:23:08 +02:00
Elian Doran 3f7bda6289 chore(client/ts): port left_pane_toggle 2025-01-26 21:23:08 +02:00
Elian Doran 8e62c942ea Merge pull request #1037 from TriliumNext/renovate/ws-8.x
chore(deps): update dependency @types/ws to v8.5.14
2025-01-26 20:48:57 +02:00
Elian Doran 61d4d3fd2c fix(types): broken types after ws upgrade 2025-01-26 20:39:19 +02:00
Elian Doran e4b186ce8a Merge pull request #1036 from TriliumNext/feat_env-config
feat(services/config): Add ability to set Trilium configuration variables via ENV variables
2025-01-26 14:32:13 +02:00
Elian Doran 7ae7831a27 Merge pull request #1022 from TriliumNext/fix_import-utils-#1016
fix(import/utils.handleH1): fix stripping of all <h1> tags that match title tag
2025-01-26 14:28:52 +02:00
Elian Doran 189dfdb5cd Merge pull request #1046 from TriliumNext/renovate/i18next-24.x
fix(deps): update dependency i18next to v24.2.2
2025-01-26 14:25:17 +02:00
renovate[bot] af204d0d74 fix(deps): update dependency i18next to v24.2.2 2025-01-26 00:39:49 +00:00
Elian Doran faf14e1b14 Merge pull request #1043 from TriliumNext/fix_webpack-share-entry
fix(webpack): add missing share.js entry point
2025-01-25 23:42:41 +02:00
Elian Doran e1a095d111 Merge pull request #1045 from TriliumNext/chore_webpack-config-types
chore(webpack): add Configuration type
2025-01-25 23:41:16 +02:00
Elian Doran 0d82b64ed1 Merge pull request #1033 from TriliumNext/renovate/node-22.x
chore(deps): update node.js to v22.13.1
2025-01-25 23:40:13 +02:00
Elian Doran 395aee5657 Merge pull request #1038 from TriliumNext/renovate/electron-forge-monorepo
chore(deps): update electron-forge monorepo to v7.6.1
2025-01-25 23:39:28 +02:00
Elian Doran 20f2fa3135 Merge pull request #1039 from TriliumNext/renovate/vitest-monorepo
chore(deps): update vitest monorepo to v3.0.4
2025-01-25 23:38:15 +02:00
Elian Doran 24d4375552 Merge pull request #1040 from TriliumNext/renovate/i18next-http-backend-3.x
fix(deps): update dependency i18next-http-backend to v3.0.2
2025-01-25 23:37:40 +02:00
Elian Doran bc901a1cf6 Merge pull request #1041 from TriliumNext/renovate/playwright-monorepo
chore(deps): update dependency @playwright/test to v1.50.0
2025-01-25 23:37:10 +02:00
Elian Doran f3219da749 Merge pull request #1032 from TriliumNext/renovate/electron-34.x
chore(deps): update dependency electron to v34.0.1
2025-01-25 23:35:38 +02:00
Panagiotis Papadopoulos 2031029076 chore(webpack): add Configuration type
-> allows for intellisense in e.g. VSCode
2025-01-25 11:31:46 +01:00
Adorian Doran 2f5ac6d114 client: mark the check boxes and radio buttons that should use the new style 2025-01-24 22:55:12 +02:00
Elian Doran 577c61b0d1 Merge pull request #1042 from j9t/refactor/images
refactor: compress images
2025-01-24 22:52:28 +02:00
Adorian Doran fa867cd75d Merge branch 'develop' of https://github.com/TriliumNext/Notes into style/next/forms 2025-01-24 22:48:21 +02:00
Adorian Doran 97295e959b style(next): fall back to the user agent's default check boxes and radio buttons if the ":has" selector is not supported 2025-01-24 22:45:58 +02:00
Adorian Doran 41ef47576d client: mark the check boxes and radio buttons that should use the new style 2025-01-24 22:35:45 +02:00
Adorian Doran ed201ff9a4 style(next): use the new check box and radio button style only for the elements using the "tn-checkbox" and "tn-radio" CSS classes 2025-01-24 22:35:08 +02:00
Panagiotis Papadopoulos b7f8f00a14 fix(webpack): add missing share.js entry point 2025-01-24 19:30:07 +01:00
Jens Oliver Meiert 2d86d9a7c0 refactor: compress images (losslessly, with Imagemin Guard)
Signed-off-by: Jens Oliver Meiert <jens@meiert.com>
2025-01-24 15:16:05 +01:00
Adorian Doran b43c85157b client: mark the links that should use the new style 2025-01-24 10:49:14 +02:00
Adorian Doran 03e7f4b991 style(next): links: add light / dark theme support 2025-01-24 10:21:50 +02:00
Adorian Doran d6cb2a3751 style(next): links: fix hover state artifacts on Chromium-based browsers 2025-01-24 10:14:18 +02:00
Panagiotis Papadopoulos 8472e44fe6 chore(docker_healthcheck): remove now unused imports 2025-01-24 07:46:39 +01:00
Panagiotis Papadopoulos 2c2a404056 feat(services/config): rename syncProxy to syncServerProxy for naming consistency
backwards compatibility ensured, by still checking the iniConfig for the old value first
2025-01-24 07:45:47 +01:00
renovate[bot] 37cdb2fe5e chore(deps): update dependency @playwright/test to v1.50.0 2025-01-24 01:20:16 +00:00
renovate[bot] ec6b5cda80 fix(deps): update dependency i18next-http-backend to v3.0.2 2025-01-24 01:20:05 +00:00
renovate[bot] 3cfdc6dac7 chore(deps): update vitest monorepo to v3.0.4 2025-01-24 01:19:57 +00:00
renovate[bot] d35bdfa402 chore(deps): update electron-forge monorepo to v7.6.1 2025-01-24 01:19:45 +00:00
renovate[bot] c56eb9a8a1 chore(deps): update dependency @types/ws to v8.5.14 2025-01-24 01:19:25 +00:00
Panagiotis Papadopoulos 9cca9fe074 feat(config-sample): add Sync config block to config-sample
commented out
2025-01-24 00:12:50 +01:00
perf3ct 5c7c995504 feat: have docker_healthcheck use correct config 2025-01-24 00:06:50 +01:00
Panagiotis Papadopoulos 3fc9a10ab6 refactor(services/sync_options): get rid of process.env query
this is now handled in config.ts already
2025-01-24 00:03:50 +01:00
Panagiotis Papadopoulos 8778ca5f6c fix(services): fix type errors 2025-01-24 00:02:45 +01:00
Panagiotis Papadopoulos 85c6764864 feat(services/config): add Sync config block and fallback values
original idea of using config-sample.ini for default values
is not backwards compatible unfortunately

fallback values taken from config-sample.ini and directly from other code in this codebase, where these values were set
2025-01-23 23:58:46 +01:00
Panagiotis Papadopoulos c7bd5e2c67 feat(services/config): add TriliumConfig Type 2025-01-23 23:50:16 +01:00
renovate[bot] a313b96ff8 chore(deps): update node.js to v22.13.1 2025-01-23 20:17:47 +00:00
Panagiotis Papadopoulos edeaca6d1f feat(services/config): add missing config values
these are used in the codebase, but are not defined in the sample.ini
2025-01-23 20:32:45 +01:00
Panagiotis Papadopoulos 279aa156cf feat(services/config): add possibility to read config from ENV
envToBoolean used to turn "string booleans" into JS booleans
2025-01-23 20:23:31 +01:00
Panagiotis Papadopoulos c0327bf8e2 feat(server/utils): add envToBoolean helper function
turns "true" / "false" strings from a process.env property into actual boolean values or undefined
2025-01-23 20:18:05 +01:00
Elian Doran f672747cfc chore(build): bump sync version 2025-01-23 16:52:22 +02:00
renovate[bot] 8150e394a4 chore(deps): update dependency electron to v34.0.1 2025-01-23 01:33:28 +00:00
Adorian Doran 0f2fcebe40 client: mark the links that should use the new style 2025-01-23 01:28:35 +02:00
Adorian Doran f4d2c5a2d2 client: mark the links that should use the new style 2025-01-23 01:12:05 +02:00
Adorian Doran 027649213a style(next): create a new style for links 2025-01-23 00:47:14 +02:00
Adorian Doran b0014de365 Merge branch 'develop' of https://github.com/TriliumNext/Notes into style/next/forms 2025-01-22 23:48:29 +02:00
Elian Doran 25dcc35b3b Merge pull request #1030 from TriliumNext/renovate/vitest-monorepo
chore(deps): update vitest monorepo to v3.0.3
2025-01-22 23:43:20 +02:00
Elian Doran 0b0fcc0685 Merge pull request #1021 from TriliumNext/chore_move-generate-documents
chore: move generate_documents  to bin folder
2025-01-22 23:42:45 +02:00
Elian Doran 4203a1160e Merge pull request #1018 from TriliumNext/fix_server-build
fix: fix server build not running due to missing file
2025-01-22 23:39:09 +02:00
Elian Doran 16b5eef650 Merge pull request #1017 from TriliumNext/feature/map_note_type
Map note type
2025-01-22 23:34:44 +02:00
Elian Doran 9e2c592383 feat(geomap): set default position 2025-01-22 23:18:22 +02:00
Elian Doran a8e2c2901b fix(geomap): error in creating empty map 2025-01-22 23:09:56 +02:00
Elian Doran 7a3a5141af fix(geomap): not working on electron 2025-01-22 23:08:25 +02:00
Elian Doran 474ae481b6 Merge branch 'develop' into feature/map_note_type 2025-01-22 22:50:38 +02:00
Elian Doran 0288ebcad9 feat(context_menu): dismiss note tooltip when a context menu is shown 2025-01-22 22:24:42 +02:00
Elian Doran d814a4d49f chore(i18n): translate geo map messages 2025-01-22 22:12:25 +02:00
Elian Doran 5a40d3f020 fix(build): build errors 2025-01-22 21:55:42 +02:00
Elian Doran e06db0038f fix(geomap): display again note tooltip 2025-01-22 21:49:23 +02:00
Elian Doran 9b1279ce14 feat(geo_map): add option to open location 2025-01-22 21:07:40 +02:00
Elian Doran 47b02da021 feat(geo_map): add back open context menu 2025-01-22 20:02:20 +02:00
Elian Doran 2e1ad24584 feat(geo_map): add option to remove from map 2025-01-22 19:33:53 +02:00
Adorian Doran 84c03c214e Merge branch 'develop' of https://github.com/TriliumNext/Notes into style/next/forms 2025-01-22 19:28:26 +02:00
Elian Doran dbd38ecedf fix(geo_map): markers no longer rendering after clicking on a link 2025-01-22 18:57:09 +02:00
renovate[bot] cd22102dab chore(deps): update vitest monorepo to v3.0.3 2025-01-22 00:25:19 +00:00
Adorian Doran 455bb38865 client: switch widget: refactor 2025-01-22 01:30:10 +02:00
Adorian Doran d4ef84e0b7 client: switch widget: handle the disabled state 2025-01-22 01:24:09 +02:00
Adorian Doran 356c0570f3 client: switch widget: improve appearance 2025-01-22 00:48:25 +02:00
Adorian Doran 7f78504223 style(next): improve the matching of check boxes and radio buttons that have to be restyled 2025-01-21 23:46:27 +02:00
Elian Doran ac262228f0 feat(geomap): note preview on tooltip 2025-01-21 22:10:20 +02:00
Adorian Doran ec0d7c0835 client: switch widget: redo the switch style 2025-01-21 21:59:08 +02:00
Elian Doran 65553250b5 fix(geomap): dismissing add with any key 2025-01-21 21:50:32 +02:00
Elian Doran 31491b957b feat(geomap): use persistent notification 2025-01-21 21:29:02 +02:00
Elian Doran b813b107a8 chore(geomap): change attribute to geolocation 2025-01-21 21:18:41 +02:00
Elian Doran dc7dd51913 refactor(geomap): simplify changing state 2025-01-21 21:06:36 +02:00
Elian Doran be4ee4c173 feat(geomap): dismiss adding with escape 2025-01-21 21:03:27 +02:00
Elian Doran c2cb07ed08 feat(geomap): dismiss creation if dialog is dismissed 2025-01-21 20:40:19 +02:00
Elian Doran d1aa0e5f50 feat(geomap): invert note creation workflow 2025-01-21 20:38:31 +02:00
Elian Doran 259dcdb568 feat(geomap): set custom icon for notes created from within the map 2025-01-21 19:53:23 +02:00
Elian Doran 6b906a91d7 feat(geomap): add labels to markers 2025-01-21 19:33:12 +02:00
Elian Doran 08722d5935 feat(geomap): add shadow to marker 2025-01-21 19:10:35 +02:00
Elian Doran 1be3492f67 style(geomap): improve alignment for marker icon 2025-01-21 19:02:36 +02:00
Elian Doran 016a9e4a99 fix(geomap): pixel perfect marker positioning 2025-01-21 19:01:22 +02:00
Elian Doran 087d4790f4 feat(geomap): setup marker based on note icon 2025-01-21 18:53:36 +02:00
Elian Doran b2a5f06646 feat(geomap): enable autopan for dragging markers 2025-01-21 15:39:20 +02:00
Elian Doran 04367de112 fix(geomap): duplicate markers 2025-01-21 14:23:59 +02:00
Elian Doran 3281bb8e9f feat(geomap): allow dragging 2025-01-21 14:17:04 +02:00
Elian Doran fed0598b47 feat(geomap): adjust cursor when adding new note 2025-01-21 13:46:18 +02:00
Adorian Doran 8bdc5c9fea client: switch widget: prevent the check box to become out of sync with the switch toggle status 2025-01-21 05:11:34 +02:00
Adorian Doran 039112f106 client: switch widget: refactor 2025-01-21 04:49:07 +02:00
Adorian Doran 76b99a00f4 client: switch widget: use a simpler HTML structure and refactor its internals 2025-01-21 04:21:01 +02:00
Panagiotis Papadopoulos 05b433d44e test(import/utils): remove leftover unused type 2025-01-21 00:33:45 +01:00
Panagiotis Papadopoulos 2296d1a6ba refactor(import/utils.handleH1): simplify handleH1 2025-01-21 00:25:46 +01:00
Panagiotis Papadopoulos 1de9bc7c6f fix(import/utils.handleH1): fix stripping of all <h1> tags that match title
now it will only strip the very first tag that if it matches the title,
otherwise it gets turned into a h2 tag

fixes #1016
2025-01-21 00:04:05 +01:00
Panagiotis Papadopoulos e1c949aa10 test(import/utils): add test for #handleH1/rework previous tests 2025-01-20 23:57:51 +01:00
Panagiotis Papadopoulos ba91082115 test(import/utils): add test for extractHtmlTitle 2025-01-20 23:04:16 +01:00
Elian Doran ef5b2d60f3 fix(geomap): multiple clicks creating multiple markers 2025-01-20 23:54:22 +02:00
Panagiotis Papadopoulos 1d03818337 chore(generate_documents): add note about script being broken currently 2025-01-20 22:54:12 +01:00
Elian Doran 986a1c25be feat(geomap): reload markers after adding a new note 2025-01-20 23:53:52 +02:00
Elian Doran f76b454d5a feat(geomap): load markers at startup 2025-01-20 23:27:32 +02:00
Elian Doran a3f257f3c5 feat(geomap): set location after creating a note 2025-01-20 23:14:31 +02:00
Elian Doran 2582924046 feat(geomap): add prompt for creating child note 2025-01-20 22:50:36 +02:00
Panagiotis Papadopoulos 3206a7fe73 chore: move generate_documents to bin folder
this file is never called in production code and wouldn't even run, even if it was:
the `lorem-ipsum` dependency is in devDependencies, so never gets installed in
any dist builds

move the file to a place where it makes more sense and avoid it getting packaged
without any reason.
2025-01-20 21:46:25 +01:00
Elian Doran f803b9f822 feat(geomap): add floating button section 2025-01-20 22:39:48 +02:00
Elian Doran 4d5e04fc5a feat(geomap): save & restore zoom 2025-01-20 22:21:59 +02:00
Elian Doran f66f437c8e feat(geomap): restore view coordinates 2025-01-20 22:19:07 +02:00
Elian Doran 5cefd4f50a feat(mindmap): save view center coordinates 2025-01-20 21:28:04 +02:00
Panagiotis Papadopoulos 8f09b6a192 fix: fix server build not running due to missing file
as discussed in #1010 – quick & dirty fix by copying over the file into the server side of things
Comment added to both files, about deduplication in the future

fixes #1010
2025-01-20 20:15:39 +01:00
Elian Doran 278870e06a Merge pull request #1014 from TriliumNext/refactor_import-mime
refactor: refactor and add tests for `services/import/mime`
2025-01-20 20:53:39 +02:00
Elian Doran d2c2d945aa Merge pull request #1015 from TriliumNext/test_fix-flaky-getPlatformAppDataDir
test(data_dir): fix flaky getPlatformAppDataDir test on Windows
2025-01-20 20:50:26 +02:00
Elian Doran 2b8ee31be3 refactor(geomap): skip module loader for JS 2025-01-20 20:36:58 +02:00
Panagiotis Papadopoulos ca8146413a test(data_dir): fix flaky getPlatformAppDataDir test on Windows
Delete the provided process.env.APPDATA on Windows, so that we can use our own values (one of which is "undefined", which was causing the getPlatformAppDataDir to fallback to the "real" process.env.APPDATA
-> causing failing test, when run on Windows
2025-01-20 18:57:43 +01:00
Elian Doran eca3955dc2 feat(geomap): add basic layer 2025-01-20 19:20:59 +02:00
Elian Doran 94a0403981 feat(geomap): load leaflet 2025-01-20 19:18:29 +02:00
Elian Doran e1952fe6b8 feat(geomap): create geomap note type 2025-01-20 18:45:56 +02:00
Adorian Doran 8f612f4683 style(next): properly handle disabled check boxes and radio buttons 2025-01-20 17:09:01 +02:00
Panagiotis Papadopoulos 4be675c4e1 test(import/mime): add additional test case for getMime 2025-01-20 08:36:11 +01:00
Panagiotis Papadopoulos 4e59f58ce6 refactor(import/mime): simplify getMime 2025-01-20 08:36:11 +01:00
Panagiotis Papadopoulos 6a0edb68de refactor(import/mime): simplify getType 2025-01-20 08:36:11 +01:00
Panagiotis Papadopoulos 91ae4b629e refactor(import/mime): simplify normalizeMimeType 2025-01-20 08:36:11 +01:00
Panagiotis Papadopoulos 815929c376 refactor(import/mime): split CODE_MIME_TYPES Record into two separate objects
CODE_MIME_TYPES -> as a Set -> as we only care about the existance of those types
CODE_MIME_TYPES_OVERRIDE -> as a Map with those keys and the "overwrite" values as associated value

-> this way  we don't have to unnecessarily store additional boolean values for everything *but* those hand ful of mime types

-> also I've sorted the items alphabetically, while I was at it
2025-01-20 08:36:11 +01:00
Panagiotis Papadopoulos 1405e22f89 test(import/mime): add tests 2025-01-20 08:36:11 +01:00
Elian Doran 7f15f8a7de fix(mindmap): save direction as soon as it is changed (closes #986) 2025-01-19 23:48:30 +02:00
Elian Doran b47dc13ff1 fix(mindmap): regression on new mindmap 2025-01-19 23:38:20 +02:00
Elian Doran 9820e8aa12 fix(mindmap): use dynamic import instead of static one 2025-01-19 23:34:57 +02:00
Elian Doran fb0dda982f fix(mindmap): restore direction 2025-01-19 23:30:07 +02:00
Elian Doran 0292489001 Merge pull request #1004 from TriliumNext/test_simplify-data-dir
test(services/data_dir): simplify getPlatformAppDataDir
2025-01-19 23:14:19 +02:00
Elian Doran 55ce7aac10 Merge remote-tracking branch 'origin/develop' into test_simplify-data-dir 2025-01-19 23:13:56 +02:00
Elian Doran f36ec9b018 Merge pull request #1008 from TriliumNext/renovate/better-sqlite3-11.x-lockfile
fix(deps): update dependency better-sqlite3 to v11.8.1
2025-01-19 23:13:28 +02:00
Elian Doran 632cfb3b7f Merge pull request #954 from TriliumNext/renovate/better-sqlite3-11.x
fix(deps): update dependency better-sqlite3 to v11.8.1
2025-01-19 23:13:11 +02:00
Elian Doran 24475255d9 Merge pull request #1009 from TriliumNext/renovate/react-monorepo
fix(deps): update react monorepo
2025-01-19 23:11:34 +02:00
Elian Doran b913e4e090 Merge pull request #1012 from TriliumNext/fix_webpack-warning
fix(utils/dynamicRequire): get rid of Webpack Critical dependency warning
2025-01-19 15:59:15 +02:00
Panagiotis Papadopoulos d56752e5a9 fix(utils/dynamicRequire): pass moduleName explicitly as string
fixes the Webpack warning:
"WARNING in ./src/public/app/services/utils.ts 249:15-34
Critical dependency: the request of a dependency is an expression"

as we now explicitly pass the moduleName as string and not "expression"
source:
https://stackoverflow.com/questions/42908116/
2025-01-19 12:57:27 +01:00
renovate[bot] 5ddd88ee55 fix(deps): update dependency better-sqlite3 to v11.8.1 2025-01-19 04:47:01 +00:00
renovate[bot] 66ad3779df fix(deps): update react monorepo 2025-01-19 00:47:03 +00:00
renovate[bot] 6443b2ea66 fix(deps): update dependency better-sqlite3 to v11.8.1 2025-01-19 00:46:36 +00:00
Elian Doran 9025516806 Merge pull request #1006 from TriliumNext/chore_move-test-files
chore: clean up and move test files next to actual files
2025-01-18 23:49:02 +02:00
Panagiotis Papadopoulos c9619e1a1b chore(tests): fix type error in data_dir.spec 2025-01-18 20:45:01 +01:00
Panagiotis Papadopoulos 121e7b33ec chore(tests): comment out "todo" code in attribute_parser.spec
we now have more stricter TS rules being applied to the spec files, so `tsc` fails with these now.
and since this is set to TODO, because of outdated code,
let's comment out, instead of using //@ts-expect-error
2025-01-18 20:32:40 +01:00
Panagiotis Papadopoulos 67ee3c30fb chore(tests): remove useless test stub 2025-01-18 20:24:43 +01:00
Panagiotis Papadopoulos 09e0805d16 chore(tests): remove playwright demo spec
as discussed here:
https://github.com/orgs/TriliumNext/discussions/925#discussioncomment-11870786
2025-01-18 20:22:33 +01:00
Panagiotis Papadopoulos 627b2faf0b chore(tests): move remaining valid tests next to actual files 2025-01-18 20:20:30 +01:00
Panagiotis Papadopoulos f803bd6140 chore(tests): move becca_mocking to spec/support 2025-01-18 20:16:02 +01:00
Panagiotis Papadopoulos 49246ee456 chore(tests): move tests next to actual file 2025-01-18 20:15:29 +01:00
Adorian Doran 5ad4092cb2 Merge branch 'develop' of https://github.com/TriliumNext/Notes into style/next/forms 2025-01-18 20:23:16 +02:00
Panagiotis Papadopoulos 0ccf91721d test(services/data_dir): simplify getPlatformAppDataDir
use the new available mocks to make tests a tiny bit more simpler :-)
2025-01-18 19:17:00 +01:00
Elian Doran 658317799d feat(options_init): enable fixed editing toolbar by default for new users 2025-01-18 19:38:41 +02:00
Elian Doran 5899ba9a57 Revert "feat(options_init): enable horizontal layout by default for new users"
This reverts commit 637d1df0f5.
2025-01-18 19:37:09 +02:00
Elian Doran ef1ab56f51 chore(i18n): translate two more messages in Romanian 2025-01-18 19:20:49 +02:00
Elian Doran 637d1df0f5 feat(options_init): enable horizontal layout by default for new users 2025-01-18 19:16:26 +02:00
Elian Doran 4e9aafc919 fix(demo): broken TODOs (closes #984) 2025-01-18 19:02:02 +02:00
Elian Doran 0a0707434e feat(mobile): allow resetting launch bar config 2025-01-18 18:49:36 +02:00
Elian Doran 1369cd8b16 feat(client): implement move to available/visible launchers on mobile as well 2025-01-18 18:45:13 +02:00
Elian Doran b367862fe8 fix(client): launch bar move commands not working (fixes #989) 2025-01-18 18:02:26 +02:00
Elian Doran 3090233078 Merge pull request #998 from TriliumNext/test_data-dir-getTriliumDataDir
test(data_dir): add missing getTriliumDataDir tests
2025-01-18 17:04:28 +02:00
Elian Doran 981e105de8 Merge pull request #999 from TriliumNext/test_fix-search-spec-msg
test(spec/search): fix expect error message printing
2025-01-18 17:03:25 +02:00
Panagiotis Papadopoulos c5d4df11a5 test(spec/search): fix expect error message printing
adjusted message to be printed correctly and adjusted wording ->
previously it was printing "[object object]",
since we are dealing with an  array of objects
2025-01-18 13:55:27 +01:00
Panagiotis Papadopoulos cbc10e1f15 chore(prettier): fix data_dir.spec.ts 2025-01-18 13:21:45 +01:00
Panagiotis Papadopoulos dba0ef4945 test(services/data_dir): make test descriptions a bit more readable 2025-01-18 13:21:45 +01:00
Panagiotis Papadopoulos 31fb8eb3d3 test(services/data_dir): add getTriliumDataDir tests
since we *need* mocks to tests getTriliumDataDir, I had to change a bit the setup structure of the tests as well -> functions needs to be
imported dynamically *after* the mocks are registered
2025-01-18 13:21:45 +01:00
Elian Doran c7e688b6e6 chore(client/ts): port left_pane_container 2025-01-18 12:56:00 +02:00
Elian Doran 8e3faffd35 fix(left-pane): preferred width is not restored (closes #990) 2025-01-18 12:54:59 +02:00
Elian Doran 148e166f5e fix(electron): mime type not always checkable in settings 2025-01-18 12:44:51 +02:00
Elian Doran 0ae5453717 feat(settings): disable unchecking of plain text mime 2025-01-18 12:36:23 +02:00
Elian Doran 0a611ac4bb fix(settings): list of mime types disappearing one by one (fixes #988) 2025-01-18 12:33:18 +02:00
Elian Doran 54654322e2 chore(github): treat libraries as vendored 2025-01-18 11:22:17 +02:00
Elian Doran eaacdb57d1 fix(build): add back copying canvas dist files 2025-01-18 11:19:35 +02:00
Elian Doran f2382e2ef5 refactor(canvas): solve API deprecation 2025-01-18 11:15:54 +02:00
Elian Doran 7d3f506efb refactor(deps): use webpack import for canvas 2025-01-18 11:09:57 +02:00
Elian Doran ab65913e52 Merge pull request #980 from TriliumNext/renovate/npm-katex-vulnerability
fix(deps): update dependency katex to v0.16.21 [security]
2025-01-18 09:44:05 +02:00
Elian Doran 134c056667 chore(e2e): disable firefox tests for now 2025-01-18 09:42:13 +02:00
renovate[bot] 02250a842f fix(deps): update dependency katex to v0.16.21 [security] 2025-01-18 00:36:50 +00:00
Elian Doran ac30e00c02 refactor(client): remove redundant variable 2025-01-18 01:24:21 +02:00
Elian Doran 0776f17ebb chore(types): remove redundant interface 2025-01-18 01:24:04 +02:00
Elian Doran 3db93cdf24 chore(client/ts): port note_icon 2025-01-18 01:14:47 +02:00
Elian Doran 043d92a1ab feat(revisions): add spacing between help and delete (closes #974) 2025-01-18 01:02:03 +02:00
Elian Doran 5985519570 fix(mobile): tab bar context menu (closes #969) 2025-01-18 00:51:59 +02:00
Elian Doran 7c7fd044c6 chore(client/ts): port canvas 2025-01-18 00:42:19 +02:00
Elian Doran 2167948509 fix(canvas): significant lag when dragging (fixes #967) 2025-01-18 00:14:31 +02:00
Elian Doran 7cf1fbf088 fix(mobile): position of note detail menu (closes #971) 2025-01-18 00:04:06 +02:00
Elian Doran e3bcd75a5a chore(client/ts): port mobile_detail_menu 2025-01-17 23:55:46 +02:00
Elian Doran 229f473f8b style(next): alignment of dropdown keyboard shortcuts 2025-01-17 23:47:29 +02:00
Elian Doran 11009a5af8 fix(client): positioning of keyboard shortcuts on legacy theme (closes #685) 2025-01-17 23:46:19 +02:00
Elian Doran fdbc33aa23 fix(client): alignment of "Advanced" option in global menu 2025-01-17 23:43:06 +02:00
Elian Doran d9335bec37 fix(client): shortcuts wrapped on two lines on global menu (closes #976) 2025-01-17 23:37:34 +02:00
Elian Doran 47335062a4 feat(e2e): test going back to share root 2025-01-17 23:21:12 +02:00
Elian Doran fd2779383d Merge branch 'share-fix' into develop 2025-01-17 23:20:09 +02:00
Elian Doran 59d8def2c5 Merge remote-tracking branch 'origin/develop' into share-fix 2025-01-17 23:19:53 +02:00
Elian Doran 6ea8a31a22 feat(e2e): test going to share root 2025-01-17 23:13:55 +02:00
Elian Doran f96ab6da57 Merge pull request #932 from TriliumNext/renovate/katex-0.x
fix(deps): update dependency katex to v0.16.20
2025-01-17 23:01:05 +02:00
Elian Doran b376f090d8 fix(e2e): bring back help link tests 2025-01-17 22:58:00 +02:00
Elian Doran b4ff765c5e chore(e2e): use ControlOrMeta instead of Control 2025-01-17 22:58:00 +02:00
Elian Doran 423bea923c Merge pull request #979 from perfectra1n/develop
Update build-server.sh and GitHub Actions to build ARM server
2025-01-17 22:54:01 +02:00
Jon Fuller 7e30ab2e06 Update build-server.sh and GitHub Actions to build ARM server 2025-01-17 20:45:00 +00:00
Elian Doran 6452fa123c Merge branch 'develop' into renovate/katex-0.x 2025-01-17 22:29:58 +02:00
Elian Doran d19e9b4681 fix(test): wrong jasmine-based context 2025-01-17 22:29:44 +02:00
Elian Doran 3f92966976 Merge pull request #938 from TriliumNext/renovate/force-graph-1.x
fix(deps): update dependency force-graph to v1.49.0
2025-01-17 22:23:13 +02:00
Elian Doran fec0ae62b7 Merge branch 'develop' into renovate/katex-0.x 2025-01-17 22:22:53 +02:00
Elian Doran 7fc5f9ab83 Merge pull request #977 from pano9000/test_vitest
test: add vitest as test framework and port current tests
2025-01-17 22:22:00 +02:00
Elian Doran 33baf6c917 fix(e2e): bring back katex test 2025-01-17 22:16:08 +02:00
Panagiotis Papadopoulos 6401f35783 chore(deps): update vitest to v3 2025-01-17 20:33:34 +01:00
Elian Doran 4dfe2b4935 Merge branch 'develop' into renovate/force-graph-1.x 2025-01-17 21:25:56 +02:00
Elian Doran dd3397bcbb chore(client/ts): port note_map 2025-01-17 21:25:36 +02:00
Panagiotis Papadopoulos 8b34c149cc chore: remove unused jasmine.json file 2025-01-17 20:24:20 +01:00
Panagiotis Papadopoulos fb47ecd747 test(data_dir): fix failing test due to vitest being "stricter" than jasmine 2025-01-17 20:24:20 +01:00
Panagiotis Papadopoulos 9f148750d4 chore(vitest): add additional folders to exclude 2025-01-17 20:24:20 +01:00
Panagiotis Papadopoulos 853a7abc4f test: port data_dir.spec.ts to vitest 2025-01-17 20:24:20 +01:00
Panagiotis Papadopoulos 8faff118b1 chore: update npm test scripts with vitest 2025-01-17 20:24:20 +01:00
Panagiotis Papadopoulos 33274ada65 test: port spec tests to vitest 2025-01-17 20:24:20 +01:00
Panagiotis Papadopoulos 6be7109ce3 test: add initial, basic vitest.config.ts 2025-01-17 20:24:20 +01:00
Panagiotis Papadopoulos 0ed06e76c3 test: delete now unused mini_test.ts 2025-01-17 20:24:20 +01:00
Panagiotis Papadopoulos 186f17ec3e chore: add "coverage" folder to gitignore 2025-01-17 20:24:20 +01:00
Panagiotis Papadopoulos 871ee7989e test: set attribute_parser test to "TODO"
the tests are not correctly calling the `parse` method currently
2025-01-17 20:24:20 +01:00
Panagiotis Papadopoulos 3f584af171 test: port spec-es6 tests to vitest 2025-01-17 20:24:20 +01:00
Panagiotis Papadopoulos 325a3b6c83 deps: add vitest and @vitest/coverage-v8 2025-01-17 20:24:16 +01:00
Elian Doran e7eb385b8f refactor(deps): integrate force-graph into webpack 2025-01-17 20:21:52 +02:00
Elian Doran 8d026c8134 feat(e2e): basic test for note map rendering 2025-01-17 20:15:48 +02:00
Elian Doran 7e40200436 chore(deps): remove unnecessary iconsur 2025-01-17 19:53:10 +02:00
Elian Doran 0cee8f9f20 refactor(mermaid): use webpack import for mermaid-elk 2025-01-17 19:53:09 +02:00
renovate[bot] 32c4d7350c fix(deps): update dependency force-graph to v1.49.0 2025-01-17 17:52:23 +00:00
Elian Doran af1d6540bc Merge pull request #955 from TriliumNext/renovate/fs-extra-11.x
fix(deps): update dependency fs-extra to v11.3.0
2025-01-17 19:51:42 +02:00
Elian Doran 54bf2ad9ff feat(e2e): test standard flowchart rendering 2025-01-17 19:19:24 +02:00
Elian Doran 751adf474f feat(e2e): check ELK flowchart 2025-01-17 19:09:19 +02:00
Elian Doran a1b660cfcd fix(e2e): mindmap test not being run 2025-01-17 18:49:22 +02:00
Elian Doran 66c367fe21 Merge pull request #947 from TriliumNext/bugfix/dump-db-ivlength
Fix default ivLength in dump-db tool
2025-01-17 18:39:30 +02:00
Elian Doran 3abe5a348f Merge pull request #965 from pano9000/chore_replace-ts-node
chore: get rid of ts-node
2025-01-17 18:38:35 +02:00
Elian Doran 467852191d Merge pull request #966 from pano9000/fix_csrf-electron-httpOnly
fix(csrf): add exception for electron for httpOnly cookie
2025-01-17 18:36:02 +02:00
Panagiotis Papadopoulos 9382c278b3 fix(csrf): add exception for electron for httpOnly cookie
it does not seem to like having httpOnly set in electron
2025-01-17 17:26:52 +01:00
Panagiotis Papadopoulos 0e33395c47 chore(deps): remove now unused ts-node 2025-01-17 08:09:42 +01:00
Panagiotis Papadopoulos 00bdcfa803 chore(mermaid-elk): replace loader-register with tsx
unnecessary "cross-env" also removed, as it wasn't even
used to set any env variables
2025-01-17 08:05:42 +01:00
Panagiotis Papadopoulos 331dae4eb0 chore: delete unused loader-register file 2025-01-17 08:02:26 +01:00
Adorian Doran faa4a5fcd8 client: update the markup for the "Available MIME types" check boxes 2025-01-17 01:36:54 +02:00
Adorian Doran e8f6f68987 style(next): disable text selection for check boxes and radio buttons 2025-01-17 01:24:34 +02:00
Adorian Doran 07dd8995b6 style(next): overhaul the check / uncheck animation for radio buttons 2025-01-17 01:22:09 +02:00
Adorian Doran 4c84bc724d style(next): refactor 2025-01-17 01:06:25 +02:00
Adorian Doran 2773d560b9 style(next): enforce left padding for radios and check boxes 2025-01-17 01:00:19 +02:00
Adorian Doran a2a9bee7eb style(next): rename some variables 2025-01-17 00:58:11 +02:00
Panagiotis Papadopoulos 748e30b63c chore(scripts): use tsx for webpack 2025-01-16 23:52:51 +01:00
Adorian Doran 398591fb1f style(next): restyle check boxes 2025-01-17 00:51:26 +02:00
Panagiotis Papadopoulos 76a0bffcc3 chore(scripts): remove unnecessary cross-env 2025-01-16 23:08:57 +01:00
Adorian Doran fe539b1647 style(next): tweak the colors of the radio buttons 2025-01-16 23:39:18 +02:00
Caleb Norton b8f15d2fe3 Fix parent share link 2025-01-16 15:28:30 -06:00
Elian Doran b2e1a3e97a Merge pull request #961 from pano9000/fix-csrf-settings
fix(csrf): set more secure csrf related settings
2025-01-16 23:03:43 +02:00
Panagiotis Papadopoulos 5f605b3a91 fix(csrf): set more secure cookieOptions settings
- `sameSite` - previous setting inherited from csurf was to simply not set it at all, which makes all browser nag in their dev console output.
They will default to "Lax" for these type of cookies in the future.
We can even use "strict" here though for our use case:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value

- `httpOnly`: should be enabled for the csrf cookie as well
for the session cookie it already is enabled.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#httponly
2025-01-16 21:40:12 +01:00
Panagiotis Papadopoulos ec19ccd7a7 fix(csrf): stop leaking the CSRF token in the server logs
As per OWASP:
"A CSRF token must not be leaked in the server logs or in the URL.", see:
https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html#transmissing-csrf-tokens-in-synchronized-patterns
2025-01-16 21:16:33 +01:00
Elian Doran 283a12b0d5 Merge pull request #960 from pano9000/fix_csrf-csrf_existing_cookie
fix(csrf): fix handling of existing _csrf cookies
2025-01-16 21:53:09 +02:00
Panagiotis Papadopoulos 139bf3dcdf fix(csrf): use generateCsrfToken with more "user friendly" settings
fixes the case, where existing TriliumNext users, will get
a "Invalid CSRF Token" Message, when they have an older
_csrf token in their cookies from a previous installation/visit.
the settings now will handle these cases in the background automatically.

also fixes #950
2025-01-16 20:14:23 +01:00
Panagiotis Papadopoulos 6dd8ab31d5 refactor(csrf): export generateToken utility 2025-01-16 20:14:23 +01:00
Panagiotis Papadopoulos e3d89ce2a5 refactor(csrf): move csrf to own file 2025-01-16 20:14:23 +01:00
Adorian Doran 15dbaf441d style(next): restyle radio buttons 2025-01-16 18:51:35 +02:00
Elian Doran edc6b983ac Merge remote-tracking branch 'origin/master' into develop 2025-01-16 18:36:35 +02:00
Elian Doran d684440c1f fix(client): undefined entity in some cases 2025-01-16 18:36:29 +02:00
Elian Doran 1e182f5820 chore(client/ts): port mermaid 2025-01-16 18:20:23 +02:00
Elian Doran c8b745bc6a Merge pull request #952 from TriliumNext/renovate/node-22.x
chore(deps): update dependency @types/node to v22.10.7
2025-01-16 10:49:07 +02:00
Elian Doran d1be673763 Merge pull request #953 from TriliumNext/renovate/better-sqlite3-11.x-lockfile
fix(deps): update dependency better-sqlite3 to v11.8.0
2025-01-16 10:45:59 +02:00
Elian Doran 2fbfc9d668 Merge pull request #946 from TriliumNext/renovate/electron-34.x
chore(deps): update dependency electron to v34
2025-01-16 10:43:33 +02:00
Nriver 5ea3e67dc3 remove unused param 2025-01-16 14:18:01 +08:00
Nriver 4b7445be8e fix compatibility for old encrypted data 2025-01-16 14:01:59 +08:00
renovate[bot] a9570965f1 fix(deps): update dependency fs-extra to v11.3.0 2025-01-16 00:57:03 +00:00
renovate[bot] b77f8aeb43 fix(deps): update dependency better-sqlite3 to v11.8.0 2025-01-16 00:56:43 +00:00
renovate[bot] 01b88c52ef chore(deps): update dependency @types/node to v22.10.7 2025-01-16 00:56:32 +00:00
Elian Doran 4c451753bc chore(build): remove redundant npx 2025-01-15 19:11:26 +02:00
Elian Doran 7076c4cbd6 chore(deps): update better-sqlite3 to 11.8.0 2025-01-15 19:11:05 +02:00
Nriver 9d32cd36ee Fix default ivLength in dump-db tool 2025-01-15 10:16:04 +08:00
renovate[bot] 0eab68e8d1 chore(deps): update dependency electron to v34 2025-01-15 02:07:18 +00:00
Adorian Doran edd39ad0db style(next): fix the quick search box 2025-01-15 02:59:55 +02:00
Adorian Doran c2dbf0a463 style(next): fix the note title text box 2025-01-15 02:44:28 +02:00
Adorian Doran 896d7a383b style(next): tweak combo boxes 2025-01-15 02:31:49 +02:00
Adorian Doran a184d5bb26 client: use combo box-like dropdown buttons in the "Basic Properties" widget 2025-01-15 02:14:56 +02:00
Adorian Doran 0339d83434 style(next): create a style for dropdown buttons to mimic combo boxes 2025-01-15 02:11:17 +02:00
Adorian Doran f7efc033e1 style(next): fix broken states on textareas 2025-01-15 01:28:18 +02:00
Adorian Doran cb65591004 style(next): tweak the group header for combo box items 2025-01-14 22:39:30 +02:00
Adorian Doran 40b95325dd style(next): tweak the combo box arrow 2025-01-14 22:10:06 +02:00
Adorian Doran 99a6e65d15 style(next): update the colors of combo boxes 2025-01-14 21:40:05 +02:00
Adorian Doran 9724b19cd2 style(next): add visual cues for the input action buttons when focused via keyboard 2025-01-14 02:12:26 +02:00
Adorian Doran 707d406ee9 style(next): fix the background of disabled input action buttons 2025-01-14 01:51:18 +02:00
Adorian Doran 26e3c13575 style(next): add states for input action buttons, tweak card background color on dark theme 2025-01-14 01:46:28 +02:00
Adorian Doran f462e7f93b style(next): add the initial style for input groups 2025-01-14 01:30:31 +02:00
Adorian Doran 5dd7b2c049 style(next): tweak the inputs wrapped inside input groups 2025-01-13 21:45:56 +02:00
Adorian Doran 9ea7b35e6a style(next): use the text box appearance for text areas as well 2025-01-13 21:23:12 +02:00
Adorian Doran 56fb70ab5e style(next): refactor CSS 2025-01-13 21:12:27 +02:00
Adorian Doran 93e740cf36 style(next): restyle text boxes 2025-01-13 14:51:23 +02:00
renovate[bot] 9b765b458c fix(deps): update dependency katex to v0.16.20 2025-01-13 00:42:04 +00:00
Adorian Doran c9bf752b1f Merge branch 'develop' of https://github.com/TriliumNext/Notes into style/next/forms 2025-01-12 23:45:03 +02:00
Adorian Doran 0115ea8088 style(next): create a CSS file for form-related styles 2025-01-09 01:23:17 +02:00
529 changed files with 16325 additions and 6039 deletions
+6
View File
@@ -15,3 +15,9 @@ indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.yml]
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
+2 -1
View File
@@ -1,2 +1,3 @@
package-lock.json linguist-generated=true
**/package-lock.json linguist-generated=true
**/package-lock.json linguist-generated=true
libraries/** linguist-vendored
+1 -2
View File
@@ -1,7 +1,6 @@
name: Bug Report
description: Report a bug
title: "(Bug report) "
labels: "Type: Bug"
type: "Bug"
body:
- type: textarea
attributes:
+2 -3
View File
@@ -1,12 +1,11 @@
name: Feature Request
description: Ask for a new feature to be added
title: "(Feature request) "
labels: "Type: Enhancement"
type: "Feature"
body:
- type: textarea
attributes:
label: Describe feature
description: A clear and concise description of what you want to be added..
description: A clear and concise description of what you want to be added.
validations:
required: true
- type: textarea
+10
View File
@@ -0,0 +1,10 @@
name: Task
description: Create a new Task
type: "Task"
body:
- type: textarea
attributes:
label: Describe Task
description: A clear and concise description of what the task is about.
validations:
required: true
+48
View File
@@ -0,0 +1,48 @@
inputs:
os:
description: "One of the supported platforms: macos, linux, windows"
required: true
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"
required: true
runs:
using: composite
steps:
- name: Set up Python for appdmg to be installed
if: ${{ inputs.os == 'macos' }}
shell: bash
run: brew install python-setuptools
- name: Install dependencies for RPM and Flatpak package building
if: ${{ inputs.os == 'linux' }}
shell: bash
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
FLATPAK_ARCH=$(if [[ ${{ inputs.arch }} = 'arm64' ]]; then echo 'aarch64'; else echo 'x86_64'; fi)
FLATPAK_VERSION='24.08'
flatpak install --user --no-deps --arch $FLATPAK_ARCH --assumeyes runtime/org.freedesktop.Platform/$FLATPAK_ARCH/$FLATPAK_VERSION runtime/org.freedesktop.Sdk/$FLATPAK_ARCH/$FLATPAK_VERSION org.electronjs.Electron2.BaseApp/$FLATPAK_ARCH/$FLATPAK_VERSION
- name: Install dependencies
shell: bash
run: npm ci
- name: Temporary Flatpak arm64 workaround till https://github.com/electron/forge/pull/3839 is merged
if: ${{ inputs.os == 'linux' && inputs.arch == 'arm64' }}
shell: bash
run: sed -e "s/case 'armv7l'/case 'arm64'/g" -e "s/return 'arm'/return 'aarch64'/g" -i node_modules/@electron-forge/maker-flatpak/dist/MakerFlatpak.js
- name: Update build info
shell: bash
run: npm run chore:update-build-info
- name: Run electron-forge
shell: bash
run: npm run electron-forge:make -- --arch=${{ inputs.arch }}
- name: Prepare artifacts
shell: bash
run: |
mkdir -p upload;
for ext in ${{ inputs.extension }};
do
file=$(find out/make -name "*.$ext" -print -quit);
cp "$file" "upload/TriliumNextNotes-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }}.$ext";
done
+28
View File
@@ -0,0 +1,28 @@
inputs:
arch:
description: "The architecture to build for: x64, arm64"
required: true
runs:
using: composite
steps:
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- name: Install dependencies
shell: bash
run: npm ci
- name: Run Linux server build
env:
MATRIX_ARCH: ${{ inputs.arch }}
shell: bash
run: |
npm run chore:update-build-info
./bin/build-server.sh
- name: Prepare artifacts
shell: bash
run: |
mkdir -p upload
file=$(find dist -name '*.tar.xz' -print -quit)
cp "$file" "upload/TriliumNextNotes-Server-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }}.tar.xz"
+27 -49
View File
@@ -7,7 +7,7 @@ on:
paths-ignore:
- "docs/**"
- ".github/workflows/main-docker.yml"
workflow_dispatch:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@@ -23,10 +23,10 @@ jobs:
os:
- name: macos
image: macos-latest
extension: dmg
extension: [dmg, zip]
- name: linux
image: ubuntu-latest
extension: deb
extension: [deb, rpm, zip, flatpak]
- name: windows
image: windows-latest
extension: exe
@@ -37,31 +37,12 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: 20
- name: Set up Python for appdmg to be installed
if: ${{ matrix.os.name == 'macos' }}
run: brew install python-setuptools
- name: Install dependencies
run: npm ci
- name: Update build info
run: npm run update-build-info
- name: Run electron-forge
run: npm run make-electron -- --arch=${{ matrix.arch }}
- name: Prepare artifacts (Unix)
if: runner.os != 'windows'
run: |
mkdir -p upload
file=$(find out/make -name '*.zip' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}-${{ github.ref_name }}.zip"
file=$(find out/make -name '*.${{ matrix.os.extension }}' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}-${{ github.ref_name }}.${{ matrix.os.extension }}"
- name: Prepare artifacts (Windows)
if: runner.os == 'windows'
run: |
mkdir upload
$file = Get-ChildItem -Path out/make -Filter '*.zip' -Recurse | Select-Object -First 1
Copy-Item -Path $file.FullName -Destination "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}-${{ github.ref_name }}.zip"
$file = Get-ChildItem -Path out/make -Filter '*.${{ matrix.os.extension }}' -Recurse | Select-Object -First 1
Copy-Item -Path $file.FullName -Destination "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}-${{ github.ref_name }}.${{ matrix.os.extension }}"
- name: Run the build
uses: ./.github/actions/build-electron
with:
os: ${{ matrix.os.name }}
arch: ${{ matrix.arch }}
extension: ${{ matrix.os.extension }}
- name: Publish artifacts
uses: actions/upload-artifact@v4
with:
@@ -72,29 +53,26 @@ jobs:
with:
name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}.${{matrix.os.extension}}
path: upload/*.${{ matrix.os.extension }}
build_linux_server-x64:
name: Build Linux Server x86_64
runs-on: ubuntu-latest
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: Set up node & dependencies
uses: actions/setup-node@v4
- name: Run the build
uses: ./.github/actions/build-server
with:
node-version: 20
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run Linux server build (x86_64)
run: |
npm run update-build-info
./bin/build-server.sh
- name: Prepare artifacts
if: runner.os != 'windows'
run: |
mkdir -p upload
file=$(find dist -name '*.tar.xz' -print -quit)
cp "$file" "upload/TriliumNextNotes-linux-x64-${{ github.ref_name }}.tar.xz"
arch: ${{ matrix.arch }}
- uses: actions/upload-artifact@v4
with:
name: TriliumNextNotes linux server x64
path: upload/TriliumNextNotes-linux-x64-${{ github.ref_name }}.tar.xz
name: TriliumNextNotes linux server ${{ matrix.arch }}
path: upload/TriliumNextNotes-linux-${{ matrix.arch }}-${{ github.ref_name }}.tar.xz
+45 -85
View File
@@ -12,7 +12,7 @@ permissions:
contents: write
jobs:
nightly-electron:
name: Deploy nightly
name: Deploy nightly
strategy:
fail-fast: false
matrix:
@@ -20,110 +20,70 @@ jobs:
os:
- name: macos
image: macos-latest
extension: dmg
extension: [dmg, zip]
- name: linux
image: ubuntu-latest
extension: deb
extension: [deb, rpm, zip, flatpak]
- name: windows
image: windows-latest
extension: exe
runs-on: ${{ matrix.os.image }}
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: Set up Python for appdmg to be installed
if: ${{ matrix.os.name == 'macos' }}
run: brew install python-setuptools
- name: Install dependencies
shell: bash
run: npm ci
- name: Update build info
run: npm run update-build-info
- name: Update nightly version
run: npm run ci-update-nightly-version
- name: Run electron-forge
run: npm run make-electron -- --arch=${{ matrix.arch }}
- name: Prepare artifacts (Unix)
if: runner.os != 'windows'
run: |
mkdir -p upload
file=$(find out/make -name '*.zip' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}.zip"
file=$(find out/make -name '*.${{ matrix.os.extension }}' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}.${{ matrix.os.extension }}"
- name: Prepare artifacts (Windows)
if: runner.os == 'windows'
run: |
mkdir upload
$file = Get-ChildItem -Path out/make -Filter '*.zip' -Recurse | Select-Object -First 1
Copy-Item -Path $file.FullName -Destination "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}.zip"
$file = Get-ChildItem -Path out/make -Filter '*.${{ matrix.os.extension }}' -Recurse | Select-Object -First 1
Copy-Item -Path $file.FullName -Destination "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}.${{ matrix.os.extension }}"
- name: Publish artifacts
uses: actions/upload-artifact@v4
run: npm run chore:ci-update-nightly-version
- name: Run the build
uses: ./.github/actions/build-electron
with:
name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}
path: upload/*.zip
overwrite: true
- name: Publish installer artifacts
uses: actions/upload-artifact@v4
with:
name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}
path: upload/*.${{ matrix.os.extension }}
overwrite: true
os: ${{ matrix.os.name }}
arch: ${{ matrix.arch }}
extension: ${{ join(matrix.os.extension, ' ') }}
- name: Deploy release
uses: WebFreak001/deploy-nightly@v3.2.0
- name: Publish release
uses: softprops/action-gh-release@v2
with:
upload_url: ${{ env.GITHUB_UPLOAD_URL }}
release_id: ${{ env.GITHUB_RELEASE_ID }}
asset_path: upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}.zip # path to archive to upload
asset_name: TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}-nightly.zip # name to upload the release as, use $$ to insert date (YYYYMMDD) and 6 letter commit hash
asset_content_type: application/zip # required by GitHub API
- name: Deploy installer release
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: ${{ env.GITHUB_UPLOAD_URL }}
release_id: ${{ env.GITHUB_RELEASE_ID }}
asset_path: upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}.${{ matrix.os.extension }} # path to archive to upload
asset_name: TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}-nightly.${{ matrix.os.extension }} # name to upload the release as, use $$ to insert date (YYYYMMDD) and 6 letter commit hash
asset_content_type: application/zip # required by GitHub API
make_latest: false
prerelease: true
draft: false
fail_on_unmatched_files: true
files: upload/*.*
tag_name: nightly
name: Nightly Build
nightly-server:
name: Deploy server nightly
runs-on: ubuntu-latest
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: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run Linux server build (x86_64)
run: |
npm run update-build-info
npm run ci-update-nightly-version
./bin/build-server.sh
- name: Prepare artifacts
if: runner.os != 'windows'
run: |
mkdir -p upload
file=$(find dist -name '*.tar.xz' -print -quit)
cp "$file" "upload/TriliumNextNotes-linux-x64-${{ github.ref_name }}.tar.xz"
- uses: actions/upload-artifact@v4
with:
name: TriliumNextNotes linux server x64
path: upload/TriliumNextNotes-linux-x64-${{ github.ref_name }}.tar.xz
overwrite: true
- name: Deploy release
uses: WebFreak001/deploy-nightly@v3.2.0
- name: Run the build
uses: ./.github/actions/build-server
with:
upload_url: ${{ env.GITHUB_UPLOAD_URL }}
release_id: ${{ env.GITHUB_RELEASE_ID }}
asset_path: upload/TriliumNextNotes-linux-x64-${{ github.ref_name }}.tar.xz # path to archive to upload
asset_name: TriliumNextNotes-linux-x64-nightly.zip # name to upload the release as, use $$ to insert date (YYYYMMDD) and 6 letter commit hash
asset_content_type: application/zip # required by GitHub API
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
+27 -47
View File
@@ -3,7 +3,7 @@ on:
push:
tags:
- "v*"
workflow_dispatch:
workflow_dispatch:
permissions:
contents: write
concurrency:
@@ -20,10 +20,10 @@ jobs:
os:
- name: macos
image: macos-latest
extension: dmg
extension: [dmg, zip]
- name: linux
image: ubuntu-latest
extension: deb
extension: [deb, rpm, zip, flatpak]
- name: windows
image: windows-latest
extension: exe
@@ -34,62 +34,42 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: 20
- name: Set up Python for appdmg to be installed
if: ${{ matrix.os.name == 'macos' }}
run: brew install python-setuptools
- name: Install dependencies
run: npm ci
- name: Update build info
run: npm run update-build-info
- name: Run electron-forge
run: npm run make-electron -- --arch=${{ matrix.arch }}
- name: Prepare artifacts (Unix)
if: runner.os != 'windows'
run: |
mkdir -p upload
file=$(find out/make -name '*.zip' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ github.ref_name }}-${{ matrix.os.name }}-${{ matrix.arch }}.zip"
file=$(find out/make -name '*.${{ matrix.os.extension }}' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ github.ref_name }}-${{ matrix.os.name }}-${{ matrix.arch }}.${{ matrix.os.extension }}"
- name: Prepare artifacts (Windows)
if: runner.os == 'windows'
run: |
mkdir upload
$file = Get-ChildItem -Path out/make -Filter '*.zip' -Recurse | Select-Object -First 1
Copy-Item -Path $file.FullName -Destination "upload/TriliumNextNotes-${{ github.ref_name }}-${{ matrix.os.name }}-${{ matrix.arch }}.zip"
$file = Get-ChildItem -Path out/make -Filter '*.${{ matrix.os.extension }}' -Recurse | Select-Object -First 1
Copy-Item -Path $file.FullName -Destination "upload/TriliumNextNotes-${{ github.ref_name }}-${{ matrix.os.name }}-${{ matrix.arch }}.${{ matrix.os.extension }}"
- name: Run the build
uses: ./.github/actions/build-electron
with:
os: ${{ matrix.os.name }}
arch: ${{ matrix.arch }}
extension: ${{ join(matrix.os.extension, ' ') }}
- name: Publish release
uses: softprops/action-gh-release@v2
with:
draft: true
fail_on_unmatched_files: true
files: upload/*.*
build_linux_server-x64:
name: Build Linux Server x86_64
runs-on: ubuntu-latest
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: Set up node & dependencies
uses: actions/setup-node@v4
- name: Run the build
uses: ./.github/actions/build-server
with:
node-version: 20
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run Linux server build (x86_64)
run: |
npm run update-build-info
./bin/build-server.sh
- name: Prepare artifacts
if: runner.os != 'windows'
run: |
mkdir -p upload
file=$(find dist -name '*.tar.xz' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ github.ref_name }}-server-linux-x64.tar.xz"
arch: ${{ matrix.arch }}
- name: Publish release
uses: softprops/action-gh-release@v2
with:
draft: true
fail_on_unmatched_files: true
files: upload/*.*
files: upload/*.*
+3
View File
@@ -1,11 +1,14 @@
.cache
.DS_Store
node_modules/
dist/
build/
coverage/
src/public/app-dist/
npm-debug.log
yarn-error.log
po-*/
.flatpak-builder/
*.db
!integration-tests/db/document.db
+1 -1
View File
@@ -4,7 +4,7 @@ image:
tasks:
- before: nvm install 20.15.1 && nvm use 20.15.1
init: npm install
command: npm run start-server
command: npm run server:start
ports:
- port: 8080
-1
View File
@@ -1,2 +1 @@
save-prefix = ''
legacy-peer-deps = true
+2 -1
View File
@@ -18,5 +18,6 @@
"github-actions.workflows.pinned.workflows": [".github/workflows/nightly.yml"],
"[css]": {
"editor.defaultFormatter": "vscode.css-language-features"
}
},
"npm.exclude": ["**/build", "**/dist", "**/out/**"]
}
+3 -4
View File
@@ -1,5 +1,5 @@
# Build stage
FROM node:22.13.0-bullseye-slim AS builder
FROM node:22.14.0-bullseye-slim AS builder
# Configure build dependencies in a single layer
RUN apt-get update && apt-get install -y --no-install-recommends \
@@ -25,10 +25,9 @@ RUN cp -R build/src/* src/. && \
cp build/docker_healthcheck.js . && \
rm docker_healthcheck.ts && \
npm install && \
npm run webpack && \
npm run build:webpack && \
npm prune --omit=dev && \
npm cache clean --force && \
cp src/public/app/share.js src/public/app-dist/. && \
cp -r src/public/app/doc_notes src/public/app-dist/. && \
rm -rf src/public/app/* && \
mkdir -p src/public/app/services && \
@@ -37,7 +36,7 @@ RUN cp -R build/src/* src/. && \
rm -r build
# Runtime stage
FROM node:22.13.0-bullseye-slim
FROM node:22.14.0-bullseye-slim
# Install only runtime dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+3 -4
View File
@@ -1,5 +1,5 @@
# Build stage
FROM node:22.13.0-alpine AS builder
FROM node:22.14.0-alpine AS builder
# Configure build dependencies
RUN apk add --no-cache --virtual .build-dependencies \
@@ -24,10 +24,9 @@ RUN cp -R build/src/* src/. && \
cp build/docker_healthcheck.js . && \
rm docker_healthcheck.ts && \
npm install && \
npm run webpack && \
npm run build:webpack && \
npm prune --omit=dev && \
npm cache clean --force && \
cp src/public/app/share.js src/public/app-dist/. && \
cp -r src/public/app/doc_notes src/public/app-dist/. && \
rm -rf src/public/app && \
mkdir -p src/public/app/services && \
@@ -36,7 +35,7 @@ RUN cp -R build/src/* src/. && \
rm -r build
# Runtime stage
FROM node:22.13.0-alpine
FROM node:22.14.0-alpine
# Install runtime dependencies
RUN apk add --no-cache su-exec shadow
+1 -1
View File
@@ -78,7 +78,7 @@ Trilium 也提供 Flatpak
```shell
npm install
npm run start-server
npm run server:start
```
## 👏 致谢
+1 -1
View File
@@ -86,7 +86,7 @@ Clone localmente y ejecute
```shell
npm install
npm run start-server
npm run server:start
```
## 👏 Reconocimientos
+1 -1
View File
@@ -73,7 +73,7 @@ Clona localmente ed esegui
```shell
npm install
npm run start-server
npm run server:start
```
## 👏 Riconoscimenti
+1 -1
View File
@@ -54,7 +54,7 @@ Trilium は Flatpak としても提供されます:
```shell
npm install
npm run start-server
npm run server:start
```
## 📢 シャウトアウト
+5 -3
View File
@@ -102,7 +102,7 @@ You can also read [Patterns of personal knowledge base](https://triliumnext.gith
git clone https://github.com/TriliumNext/Notes.git
cd Notes
npm install
npm run start-server
npm run server:start
```
### Documentation
@@ -118,8 +118,10 @@ Head on over to our [Docs repo](https://github.com/TriliumNext/Docs)
## 🤝 Support
You can support the original Trilium developer using GitHub Sponsors, [PayPal](https://paypal.me/za4am) or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).
Support for the TriliumNext organization will be possible in the near future.
Support for the TriliumNext organization will be possible in the near future. For now, you can:
- Support continued development on TriliumNext by supporting our developers: [eliandoran](https://github.com/sponsors/eliandoran) (See the [repository insights]([developers]([url](https://github.com/TriliumNext/Notes/graphs/contributors))) for a full list)
- Show a token of gratitude to the original Trilium developer ([zadam](https://github.com/sponsors/zadam)) via [PayPal](https://paypal.me/za4am) or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).
## 🔑 License
+1 -1
View File
@@ -44,7 +44,7 @@ Trilium предоставляется в виде десктопного при
```shell
npm install
npm run start-server
npm run server:start
```
## 👏 Благодарности
+43 -7
View File
@@ -2,21 +2,57 @@
set -e # Fail on any command error
PKG_DIR=dist/trilium-linux-x64-server
# Debug output
echo "Matrix Arch: $MATRIX_ARCH"
# Detect architecture from matrix input, fallback to system architecture
if [ -n "$MATRIX_ARCH" ]; then
ARCH=$MATRIX_ARCH
else
ARCH=$(uname -m)
# Convert system architecture to our naming convention
case $ARCH in
x86_64) ARCH="x64" ;;
aarch64) ARCH="arm64" ;;
esac
fi
# Debug output
echo "Selected Arch: $ARCH"
# Set Node.js version and architecture-specific filename
NODE_VERSION=20.15.1
NODE_ARCH=$ARCH
# Debug output
echo "Node arch: $NODE_ARCH"
# Special case for x64 in Node.js downloads
if [ "$NODE_ARCH" = "x64" ]; then
NODE_FILENAME="x64"
elif [ "$NODE_ARCH" = "arm64" ]; then
NODE_FILENAME="arm64"
fi
# Debug output
echo "Node filename: $NODE_FILENAME"
PKG_DIR=dist/trilium-linux-${ARCH}-server
echo "Package directory: $PKG_DIR"
if [ "$1" != "DONTCOPY" ]
then
./bin/copy-trilium.sh $PKG_DIR
# Need to modify copy-trilium.sh to accept the target directory
./bin/copy-trilium.sh "$PKG_DIR"
fi
cd dist
wget https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz
tar xfJ node-v${NODE_VERSION}-linux-x64.tar.xz
rm node-v${NODE_VERSION}-linux-x64.tar.xz
wget https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_FILENAME}.tar.xz
tar xfJ node-v${NODE_VERSION}-linux-${NODE_FILENAME}.tar.xz
rm node-v${NODE_VERSION}-linux-${NODE_FILENAME}.tar.xz
cd ..
mv dist/node-v${NODE_VERSION}-linux-x64 $PKG_DIR/node
mv dist/node-v${NODE_VERSION}-linux-${NODE_FILENAME} $PKG_DIR/node
rm -r $PKG_DIR/node/lib/node_modules/npm
rm -r $PKG_DIR/node/include/node
@@ -37,4 +73,4 @@ VERSION=`jq -r ".version" package.json`
cd dist
tar cJf trilium-linux-x64-server-${VERSION}.tar.xz trilium-linux-x64-server
tar cJf trilium-linux-${ARCH}-server-${VERSION}.tar.xz trilium-linux-${ARCH}-server
+10 -7
View File
@@ -7,9 +7,9 @@ const DEST_DIR_NODE_MODULES = path.join(DEST_DIR, "node_modules");
const VERBOSE = process.env.VERBOSE;
function log(...args) {
function log(...args: any[]) {
if (VERBOSE) {
console.log(args);
console.log(...args);
}
}
@@ -29,7 +29,12 @@ const copy = async () => {
fs.copySync(path.join("build", srcFile), destFile, { recursive: true });
}
const filesToCopy = ["config-sample.ini", "tsconfig.webpack.json"];
const filesToCopy = [
"config-sample.ini",
"tsconfig.webpack.json",
"./src/etapi/etapi.openapi.yaml",
"./src/routes/api/openapi.json"
];
for (const file of filesToCopy) {
log(`Copying ${file}`);
await fs.copy(file, path.join(DEST_DIR, file));
@@ -76,13 +81,11 @@ const copy = async () => {
"node_modules/@excalidraw/excalidraw/dist/",
"node_modules/katex/dist/",
"node_modules/dayjs/",
"node_modules/force-graph/dist/",
"node_modules/boxicons/css/",
"node_modules/boxicons/fonts/",
"node_modules/mermaid/dist/",
"node_modules/jquery/dist/",
"node_modules/jquery-hotkeys/",
"node_modules/print-this/",
"node_modules/split.js/dist/",
"node_modules/panzoom/dist/",
"node_modules/i18next/",
@@ -90,7 +93,6 @@ const copy = async () => {
"node_modules/jsplumb/dist/",
"node_modules/vanilla-js-wheel-zoom/dist/",
"node_modules/mark.js/dist/",
"node_modules/knockout/build/output/",
"node_modules/normalize.css/",
"node_modules/jquery.fancytree/dist/",
"node_modules/bootstrap/dist/",
@@ -101,7 +103,8 @@ const copy = async () => {
"node_modules/codemirror/keymap/",
"node_modules/mind-elixir/dist/",
"node_modules/@highlightjs/cdn-assets/languages",
"node_modules/@highlightjs/cdn-assets/styles"
"node_modules/@highlightjs/cdn-assets/styles",
"node_modules/leaflet/dist"
];
for (const folder of nodeModulesFolder) {
+1 -2
View File
@@ -23,7 +23,7 @@ rm -rf "$DIR"
mkdir -pv "$DIR"
echo Webpack start
npm run webpack
npm run build:webpack
echo Webpack finish
echo "Copying Trilium to build directory $DIR"
@@ -68,7 +68,6 @@ find $DIR -name "*.ts" -type f -delete
d="$DIR"/src/public
[[ -d "$d"/app-dist ]] || mkdir -pv "$d"/app-dist
cp "$d"/app/share.js "$d"/app-dist/
cp -r "$d"/app/doc_notes "$d"/app-dist/
rm -rf "$d"/app
+7
View File
@@ -22,6 +22,10 @@ inkscape -w 180 -h 180 "../icon-color.svg" -o "./ios/apple-touch-icon.png"
# Build PNGs
inkscape -w 128 -h 128 "../icon-color.svg" -o "./png/128x128.png"
inkscape -w 256 -h 256 "../icon-color.svg" -o "./png/256x256.png"
# Build dev icons (including tray)
inkscape -w 16 -h 16 "../icon-purple.svg" -o "./png/16x16-dev.png"
inkscape -w 32 -h 32 "../icon-purple.svg" -o "./png/32x32-dev.png"
inkscape -w 256 -h 256 "../icon-purple.svg" -o "./png/256x256-dev.png"
# Build Mac .icns
@@ -41,5 +45,8 @@ icnsutil compose -f "mac/icon.icns" ./mac/*.png
# Build Windows icon
magick -background none "../icon-color.svg" -define icon:auto-resize=16,32,48,64,128,256 "./icon.ico"
# Build Windows setup icon
magick -background none "../icon-installer.svg" -define icon:auto-resize=16,32,48,64,128,256 "./win/setup.ico"
# Build Squirrel splash image
magick "./png/256x256.png" -background "#ffffff" -gravity center -extent 640x480 "./win/setup-banner.gif"
+16 -11
View File
@@ -1,12 +1,17 @@
[Desktop Entry]
<% if (productName) { %>Name=<%= productName %>
<% } %><% if (description) { %>Comment=<%= description %>
<% } %><% if (genericName) { %>GenericName=<%= genericName %>
<% } %><% if (name) { %>Exec=<%= name %> %U
Icon=<%= name %>
<% } %>Type=Application
StartupNotify=true
<% if (productName) { %>StartupWMClass=<%= productName %>
<% } if (categories && categories.length) { %>Categories=<%= categories.join(';') %>;
<% } %><% if (mimeType && mimeType.length) { %>MimeType=<%= mimeType.join(';') %>;
<% } %>
<%=
Object.entries({
"Name": productName,
"Comment": description,
"GenericName": genericName,
"Exec": name ? `${name} %U` : undefined,
"Icon": name,
"Type": "Application",
"StartupNotify": "true",
"StartupWMClass": productName,
"Categories": categories?.length ? `${categories.join(";")};` : undefined,
"MimeType": mimeType?.length ? `${mimeType.join(";")};` : undefined
})
.map(line => line[1] ? line.join("=") : undefined)
.filter(line => !!line)
.join("\n")%>
+189
View File
@@ -0,0 +1,189 @@
import { fileURLToPath } from "url";
import { dirname, join } from "path";
import swaggerJsdoc from 'swagger-jsdoc';
import fs from "fs";
/*
* Usage: npm run generate-openapi | tail -n1 > x.json
*
* Inspect generated file by opening it in https://editor-next.swagger.io/
*
*/
const options = {
definition: {
openapi: '3.1.1',
info: {
title: 'Trilium Notes - Sync server API',
version: '0.96.6',
description: "This is the internal sync server API used by Trilium Notes / TriliumNext Notes.\n\n_If you're looking for the officially supported External Trilium API, see [here](https://triliumnext.github.io/Docs/Wiki/etapi.html)._\n\nThis page does not yet list all routes. For a full list, see the [route controller](https://github.com/TriliumNext/Notes/blob/v0.91.6/src/routes/routes.ts).",
contact: {
name: "TriliumNext issue tracker",
url: "https://github.com/TriliumNext/Notes/issues",
},
license: {
name: "GNU Free Documentation License 1.3 (or later)",
url: "https://www.gnu.org/licenses/fdl-1.3",
},
},
},
apis: [
// Put individual files here to have them ordered first.
'./src/routes/api/setup.ts',
// all other files
'./src/routes/api/*.ts', './bin/generate-openapi.js'
],
};
const openapiSpecification = swaggerJsdoc(options);
const scriptDir = dirname(fileURLToPath(import.meta.url));
const outputPath = join(scriptDir, "..", "src", "routes", "api", "openapi.json");
fs.writeFileSync(outputPath, JSON.stringify(openapiSpecification));
console.log("Saved to ", outputPath);
/**
* @swagger
* tags:
* - name: auth
* description: Authentication
* - name: sync
* description: Synchronization
* - name: data
*/
/**
* @swagger
* components:
* schemas:
* Attribute:
* type: object
* properties:
* attributeId:
* type: string
* example: "4G1DPrI58PAb"
* noteId:
* $ref: "#/components/schemas/NoteId"
* type:
* type: string
* enum: ["attribute", "relation"]
* name:
* type: string
* example: "internalLink"
* value:
* type: string
* example: "hA8aHSpTRdZ6"
* description: "If type = \"relation\", a note ID. Otherwise, the attribute content."
* position:
* type: integer
* example: 20
* isInheritable:
* type: boolean
* Blob:
* type: object
* properties:
* blobId:
* type: string
* example: "8iqMIB8eiY1tPYmElfjm"
* content:
* type:
* - string
* - 'null'
* description: "`null` if not text."
* contentLength:
* type: integer
* dateModified:
* $ref: "#/components/schemas/DateTime"
* utcDateModified:
* $ref: "#/components/schemas/UtcDateTime"
* Branch:
* type: object
* properties:
* branchId:
* $ref: "#/components/schemas/BranchId"
* noteId:
* $ref: "#/components/schemas/NoteId"
* parentNoteId:
* $ref: "#/components/schemas/NoteId"
* notePosition:
* type: integer
* example: 20
* prefix:
* type:
* - string
* - 'null'
* isExpanded:
* type: boolean
* BranchId:
* type: string
* example: "WUjhaGp4EKah_ur11rSfHkzeV"
* description: Equal to `{parentNoteId}_{noteId}`
* DateTime:
* type: string
* example: "2025-02-14 08:19:59.203+0100"
* EntityChange:
* type: object
* properties:
* entityChange:
* type: object
* properties:
* entityName:
* type: string
* example: "notes"
* description: Database table for this entity.
* changeId:
* type: string
* example: "changeId9630"
* description: ID, referenced in `entity_changes` table.
* entity:
* type: object
* description: Encoded entity data. Object has one property for each database column.
* Note:
* type: object
* properties:
* noteId:
* $ref: "#/components/schemas/NoteId"
* title:
* type: string
* isProtected:
* type: boolean
* type:
* type: string
* example: "text"
* enum: ["text", "code", "render", "file", "image", "search", "relationMap", "book", "noteMap", "mermaid", "canvas", "webView", "launcher", "doc", "contentWidget", "mindMap", "geoMap"]
* description: "[Reference list](https://github.com/TriliumNext/Notes/blob/v0.91.6/src/services/note_types.ts)"
* mime:
* type: string
* example: "text/html"
* blobId:
* type: string
* example: "z4PhNX7vuL3xVChQ1m2A"
* NoteId:
* type: string
* example: "ur11rSfHkzeV"
* description: "12-character note ID. Special values: \"none\"`, `\"root\"."
* Timestamps:
* type: object
* properties:
* dateCreated:
* $ref: "#/components/schemas/DateTime"
* dateModified:
* $ref: "#/components/schemas/DateTime"
* utcDateCreated:
* $ref: "#/components/schemas/UtcDateTime"
* utcDateModified:
* $ref: "#/components/schemas/UtcDateTime"
* UtcDateTime:
* type: string
* example: "2025-02-13T07:42:47.698Z"
* description: "Result of `new Date().toISOString().replace('T', ' ')`"
* securitySchemes:
* user-password:
* type: apiKey
* name: trilium-cred
* in: header
* description: "Username and password, formatted as `user:password`"
* session:
* type: apiKey
* in: cookie
* name: trilium.sid
*/
@@ -1,15 +1,15 @@
/**
* Usage: node src/tools/generate_document.js 1000
* Usage: tsx ./generate_document.ts 1000
* will create 1000 new notes and some clones into the current document.db
*/
import sqlInit from "../services/sql_init.js";
import noteService from "../services/notes.js";
import attributeService from "../services/attributes.js";
import cls from "../services/cls.js";
import cloningService from "../services/cloning.js";
import sqlInit from "../src/services/sql_init.js";
import noteService from "../src/services/notes.js";
import attributeService from "../src/services/attributes.js";
import cls from "../src/services/cls.js";
import cloningService from "../src/services/cloning.js";
import loremIpsum from "lorem-ipsum";
import "../becca/entity_constructor.js";
import "../src/becca/entity_constructor.js";
const noteCount = parseInt(process.argv[2]);
@@ -90,4 +90,6 @@ async function start() {
process.exit(0);
}
sqlInit.dbReady.then(cls.wrap(start));
// @TriliumNextTODO sqlInit.dbReady never seems to resolve so program hangs
// see https://github.com/TriliumNext/Notes/issues/1020
sqlInit.dbReady.then(cls.wrap(start)).catch((err) => console.error(err));
+1 -1
View File
@@ -32,7 +32,7 @@ mv package.json.tmp package.json
git add package.json
npm run update-build-info
npm run chore:update-build-info
git add src/services/build.ts
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-bookmark"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M18 7v14l-6 -4l-6 4v-14a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4z" /></svg>

After

Width:  |  Height:  |  Size: 383 B

+39
View File
@@ -0,0 +1,39 @@
#!/usr/bin/env bash
if ! command -v magick &> /dev/null; then
echo "This tool requires ImageMagick to be installed in order to create the icons."
exit 1
fi
if ! command -v inkscape &> /dev/null; then
echo "This tool requires Inkscape to be render sharper SVGs than ImageMagick."
exit 1
fi
script_dir=$(realpath $(dirname $0))
images_dir="$script_dir/../../images"
output_dir="$images_dir/app-icons/tray"
function generateDpiScaledIcons {
file=$1
suffix=$2
name="$(basename $file .svg)$suffix"
inkscape -w 16 -h 16 "$file" -o "$output_dir/$name.png"
inkscape -w 20 -h 20 "$file" -o "$output_dir/$name@1.25x.png"
inkscape -w 24 -h 24 "$file" -o "$output_dir/$name@1.5x.png"
inkscape -w 32 -h 32 "$file" -o "$output_dir/$name@2x.png"
}
generateDpiScaledIcons "$images_dir/icon-black.svg" "Template"
generateDpiScaledIcons "$images_dir/icon-color.svg"
generateDpiScaledIcons "$images_dir/icon-purple.svg"
for file in *.svg; do
name="$(basename $file .svg)Template"
generateDpiScaledIcons "$file" "Template"
magick "$output_dir/$name.png" -channel RGB -negate "$output_dir/$name-inverted.png"
magick "$output_dir/$name@1.25x.png" -channel RGB -negate "$output_dir/$name-inverted@1.25x.png"
magick "$output_dir/$name@1.5x.png" -channel RGB -negate "$output_dir/$name-inverted@1.5x.png"
magick "$output_dir/$name@2x.png" -channel RGB -negate "$output_dir/$name-inverted@2x.png"
done
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-x"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M18 6l-12 12" /><path d="M6 6l12 12" /></svg>

After

Width:  |  Height:  |  Size: 356 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-plus"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 5l0 14" /><path d="M5 12l14 0" /></svg>

After

Width:  |  Height:  |  Size: 357 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-history"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 8l0 4l2 2" /><path d="M3.05 11a9 9 0 1 1 .5 4m-.5 5v-5h5" /></svg>

After

Width:  |  Height:  |  Size: 387 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-calendar-star"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M11 21h-5a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v3.5" /><path d="M16 3v4" /><path d="M8 3v4" /><path d="M4 11h11" /><path d="M17.8 20.817l-2.172 1.138a.392 .392 0 0 1 -.568 -.41l.415 -2.411l-1.757 -1.707a.389 .389 0 0 1 .217 -.665l2.428 -.352l1.086 -2.193a.392 .392 0 0 1 .702 0l1.086 2.193l2.428 .352a.39 .39 0 0 1 .217 .665l-1.757 1.707l.414 2.41a.39 .39 0 0 1 -.567 .411l-2.172 -1.138z" /></svg>

After

Width:  |  Height:  |  Size: 734 B

+20
View File
@@ -27,3 +27,23 @@ keyPath=
# once set, expressjs will use the X-Forwarded-For header set by the rev. proxy to determinate the real IPs of clients.
# expressjs shortcuts are supported: loopback(127.0.0.1/8, ::1/128), linklocal(169.254.0.0/16, fe80::/10), uniquelocal(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00::/7)
trustedReverseProxy=false
[Session]
# Use this setting to set a custom value for the "Path" Attribute value of the session cookie.
# This can be useful, when you have several instances running on the same domain, under different paths (e.g. by using a reverse proxy).
# It prevents your instances from overwriting each others' cookies, allowing you to stay logged in multiple instances simultanteously.
# E.g. if you have instances running under https://your-domain.com/triliumNext/instanceA and https://your-domain.com/triliumNext/instanceB
# you would want to set the cookiePath value to "/triliumNext/instanceA" for your first and "/triliumNext/instanceB" for your second instance
cookiePath=/
# Use this setting to set a custom value for the "Max-Age" Attribute of the session cookie.
# This controls how long your session will be valid, before it expires and you need to log in again, when you use the "Remember Me" option.
# Value needs to be entered in Seconds.
# Default value is 1814400 Seconds, which is 21 Days.
cookieMaxAge=1814400
[Sync]
#syncServerHost=
#syncServerTimeout=
#syncServerProxy=
BIN
View File
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

+1 -4
View File
@@ -1,8 +1,5 @@
import http from "http";
import ini from "ini";
import fs from "fs";
import dataDir from "./src/services/data_dir.js";
const config = ini.parse(fs.readFileSync(dataDir.CONFIG_INI_PATH, "utf-8"));
import config from "./src/services/config.js";
if (config.Network.https) {
// built-in TLS (terminated by trilium) is not supported yet, PRs are welcome
+2 -2
View File
@@ -38,12 +38,12 @@
<div id="content" class="type-text ck-content">
<h3>The native node bindings</h3><p><code>better-sqlite3</code> has native Node bindings. With updates of <code>better-sqlite3</code>, but also of Electron and Node.js versions, these bindings need to be updated.</p><p>Note that Electron and Node.js versions need different versions of these bindings, since Electron usually packs a different version of Node.js.</p><p>During development, <code>npm install</code> tries to build or reuse prebuilt natives for the current Node.js version. This makes <code>npm run start-server</code> work out of the box. Trying to run <code>npm run start-electron</code> with these versions generally causes an error such as this:</p><pre><code class="language-text-plain">Uncaught Exception:
<h3>The native node bindings</h3><p><code>better-sqlite3</code> has native Node bindings. With updates of <code>better-sqlite3</code>, but also of Electron and Node.js versions, these bindings need to be updated.</p><p>Note that Electron and Node.js versions need different versions of these bindings, since Electron usually packs a different version of Node.js.</p><p>During development, <code>npm install</code> tries to build or reuse prebuilt natives for the current Node.js version. This makes <code>npm run server:start</code> work out of the box. Trying to run <code>npm run electron:start</code> with these versions generally causes an error such as this:</p><pre><code class="language-text-plain">Uncaught Exception:
Error: The module '/Users/elian/Projects/Notes/node_modules/better-sqlite3/build/Release/better_sqlite3.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 108. This version of Node.js requires
NODE_MODULE_VERSION 116. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).</code></pre><h3>How the natives are handled</h3><p>Locally, this can be fixed by rebuilding the binaries, which is what <code>npm run switch-electron</code> does, which uses <code>electron-rebuild</code> under the hood.</p><p>When the deliveries are built (see&nbsp;<a class="reference-link type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>), it is not feasible to rebuild the dependencies since we are building for multiple platforms. Luckily, <code>better-sqlite3</code> provides these prebuilt binaries from us, available as artifacts on <a href="https://github.com/WiseLibs/better-sqlite3/releases/">their GitHub releases page</a>.&nbsp;</p><p>The build script manages the natives for <code>better-sqlite3</code> by keeping a copy of the <code>.node</code> file for every platform in <code>bin/better-sqlite3</code>.</p><p>Whenever the version of <code>better-sqlite3</code> changes, the <code>.node</code> files must also be renewed based on their releases page. To simplify this process, a script was created in <code>bin/better-sqlite3/update.sh</code>.</p><h2>How to update the natives</h2><p>The update script needs to know the version of Electron or Node.js for which to download the prebuilt binaries.</p><p>If you get errors during download, check on the <a href="https://github.com/WiseLibs/better-sqlite3/releases/">releases page</a> to ensure that this particular combination of Electron/Node actually exists for the given release.</p><p>To determine the <code>NODE_MODULE_VERSION</code> that is required, look for <code>This version of Node.js requires</code><br><code>NODE_MODULE_VERSION</code> in the error when starting Trilium via:</p><ul><li><code>npm run start-electron</code> (or run any Electron <a href="UTB518X6X9Uh.html" class="type-text">delivery</a>), case in which the <span style="color:#c0bfbc;"><code>ELECTRON_VERSION</code> variable needs to be changed.</span></li><li><span style="color:#c0bfbc;"><code>npm run start-server</code></span> (or run the Linux server delivery), case in which the <code>NODE_VERSION</code> variable needs to be changed.</li></ul><p>Check which files got changed after running the update script and for each platform that got changed, test it locally via&nbsp;<a class="reference-link type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>&nbsp;or via the CI.</p>
the module (for instance, using `npm rebuild` or `npm install`).</code></pre><h3>How the natives are handled</h3><p>Locally, this can be fixed by rebuilding the binaries, which is what <code>npm run electron:switch</code> does, which uses <code>electron-rebuild</code> under the hood.</p><p>When the deliveries are built (see&nbsp;<a class="reference-link type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>), it is not feasible to rebuild the dependencies since we are building for multiple platforms. Luckily, <code>better-sqlite3</code> provides these prebuilt binaries from us, available as artifacts on <a href="https://github.com/WiseLibs/better-sqlite3/releases/">their GitHub releases page</a>.&nbsp;</p><p>The build script manages the natives for <code>better-sqlite3</code> by keeping a copy of the <code>.node</code> file for every platform in <code>bin/better-sqlite3</code>.</p><p>Whenever the version of <code>better-sqlite3</code> changes, the <code>.node</code> files must also be renewed based on their releases page. To simplify this process, a script was created in <code>bin/better-sqlite3/update.sh</code>.</p><h2>How to update the natives</h2><p>The update script needs to know the version of Electron or Node.js for which to download the prebuilt binaries.</p><p>If you get errors during download, check on the <a href="https://github.com/WiseLibs/better-sqlite3/releases/">releases page</a> to ensure that this particular combination of Electron/Node actually exists for the given release.</p><p>To determine the <code>NODE_MODULE_VERSION</code> that is required, look for <code>This version of Node.js requires</code><br><code>NODE_MODULE_VERSION</code> in the error when starting Trilium via:</p><ul><li><code>npm run electron:start</code> (or run any Electron <a href="UTB518X6X9Uh.html" class="type-text">delivery</a>), case in which the <span style="color:#c0bfbc;"><code>ELECTRON_VERSION</code> variable needs to be changed.</span></li><li><span style="color:#c0bfbc;"><code>npm run server:start</code></span> (or run the Linux server delivery), case in which the <code>NODE_VERSION</code> variable needs to be changed.</li></ul><p>Check which files got changed after running the update script and for each platform that got changed, test it locally via&nbsp;<a class="reference-link type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>&nbsp;or via the CI.</p>
</div>
+1 -1
View File
@@ -38,7 +38,7 @@
<div id="content" class="type-text ck-content">
<h2>Server live reload</h2><p>If running the server using <code>npm run start-server</code>, the server will watch for changes in <code>src/public</code> and trigger a frontend reload if that occurs.</p><h2>Electron live reload</h2><p>Similarly, <code>npm run start-electron</code> supports live refresh &nbsp;as well.</p><p>However, a core difference is that Electron watches <code>dist/src/public</code> instead of <code>src/public</code> since Electron runs on its own copy of the files.</p><p>To ameliorate that, a separate watch script has been implemented which automatically copies files from <code>src/public</code> to <code>dist/src/public</code> whenever a change is detected. To run it:</p><pre><code class="language-text-plain">npm run </code></pre><h2>Technical details</h2><ul><li>This mechanism is managed at server level by watching for changes in<code>services/ws.ts</code>.</li></ul>
<h2>Server live reload</h2><p>If running the server using <code>npm run server:start</code>, the server will watch for changes in <code>src/public</code> and trigger a frontend reload if that occurs.</p><h2>Electron live reload</h2><p>Similarly, <code>npm run electron:start</code> supports live refresh &nbsp;as well.</p><p>However, a core difference is that Electron watches <code>dist/src/public</code> instead of <code>src/public</code> since Electron runs on its own copy of the files.</p><p>To ameliorate that, a separate watch script has been implemented which automatically copies files from <code>src/public</code> to <code>dist/src/public</code> whenever a change is detected. To run it:</p><pre><code class="language-text-plain">npm run </code></pre><h2>Technical details</h2><ul><li>This mechanism is managed at server level by watching for changes in<code>services/ws.ts</code>.</li></ul>
</div>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

+1 -1
View File
@@ -71,7 +71,7 @@
<a id="server" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Server<a href="#server" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>To install TriliumNext on your own server (including via Docker from <a href="https://hub.docker.com/r/triliumnext/notes" target="_blank" class="external">Dockerhub</a>) follow <a href="https://triliumnext.github.io/Docs/Wiki/server-installation" target="_blank" class="external">the server installation docs</a>.</p>
<a id="📝-documentation" class="tsd-anchor"></a><h2 class="tsd-anchor-link">📝 Documentation<a href="#📝-documentation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p><a href="https://triliumnext.github.io/Docs" target="_blank" class="external">See wiki for complete list of documentation pages.</a></p>
<p>You can also read <a href="https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge" target="_blank" class="external">Patterns of personal knowledge base</a> to get some inspiration on how you might use TriliumNext.</p>
<a id="💻-contribute" class="tsd-anchor"></a><h2 class="tsd-anchor-link">💻 Contribute<a href="#💻-contribute" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="code" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Code<a href="#code" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="shell"><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-3">clone</span><span class="hl-1"> </span><span class="hl-3">https://github.com/TriliumNext/Notes.git</span><br/><span class="hl-0">cd</span><span class="hl-1"> </span><span class="hl-3">Notes</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-3">install</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-3">run</span><span class="hl-1"> </span><span class="hl-3">start-server</span>
<a id="💻-contribute" class="tsd-anchor"></a><h2 class="tsd-anchor-link">💻 Contribute<a href="#💻-contribute" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="code" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Code<a href="#code" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="shell"><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-3">clone</span><span class="hl-1"> </span><span class="hl-3">https://github.com/TriliumNext/Notes.git</span><br/><span class="hl-0">cd</span><span class="hl-1"> </span><span class="hl-3">Notes</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-3">install</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-3">run</span><span class="hl-1"> </span><span class="hl-3">server:start</span>
</code><button type="button">Copy</button></pre>
<a id="documentation" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Documentation<a href="#documentation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Head on over to our <a href="https://github.com/TriliumNext/Docs" target="_blank" class="external">Docs repo</a></p>
+1 -1
View File
@@ -78,7 +78,7 @@ Trilium 也提供 Flatpak
```shell
npm install
npm run start-server
npm run server:start
```
## 👏 致谢
+1 -1
View File
@@ -86,7 +86,7 @@ Clone localmente y ejecute
```shell
npm install
npm run start-server
npm run server:start
```
## 👏 Reconocimientos
+1 -1
View File
@@ -73,7 +73,7 @@ Clona localmente ed esegui
```shell
npm install
npm run start-server
npm run server:start
```
## 👏 Riconoscimenti
+1 -1
View File
@@ -54,7 +54,7 @@ Trilium は Flatpak としても提供されます:
```shell
npm install
npm run start-server
npm run server:start
```
## 📢 シャウトアウト
+1 -1
View File
@@ -102,7 +102,7 @@ You can also read [Patterns of personal knowledge base](https://triliumnext.gith
git clone https://github.com/TriliumNext/Notes.git
cd Notes
npm install
npm run start-server
npm run server:start
```
### Documentation
+1 -1
View File
@@ -44,7 +44,7 @@ Trilium предоставляется в виде десктопного при
```shell
npm install
npm run start-server
npm run server:start
```
## 👏 Благодарности
+1 -1
View File
@@ -38,7 +38,7 @@
<div id="content" class="type-text ck-content">
<h3>Run server</h3><p>Run with default settings:</p><pre><code class="language-text-plain">npm run start-server</code></pre><p>Run with custom port:</p><pre><code class="language-text-plain">TRILIUM_PORT=8082 npm run start-server</code></pre><h3>Run Electron</h3><p>Rebuild <code>better-sqlite3</code> dependency:</p><pre><code class="language-text-plain">npm run switch-electron</code></pre><p>Then run Electron:</p><pre><code class="language-text-plain">npm run start-electron</code></pre><p>To run Electron using the same data directory as the production version:</p><pre><code class="language-text-plain">npm run start-electron-no-dir</code></pre><p>When done, switch back the <code>better-sqlite3</code> dependency:</p><pre><code class="language-text-plain">npm run switch-server</code></pre>
<h3>Run server</h3><p>Run with default settings:</p><pre><code class="language-text-plain">npm run server:start</code></pre><p>Run with custom port:</p><pre><code class="language-text-plain">TRILIUM_PORT=8082 npm run server:start</code></pre><h3>Run Electron</h3><p>Rebuild <code>better-sqlite3</code> dependency:</p><pre><code class="language-text-plain">npm run electron:switch</code></pre><p>Then run Electron:</p><pre><code class="language-text-plain">npm run electron:start</code></pre><p>To run Electron using the same data directory as the production version:</p><pre><code class="language-text-plain">npm run electron:start-no-dir</code></pre><p>When done, switch back the <code>better-sqlite3</code> dependency:</p><pre><code class="language-text-plain">npm run server:switch</code></pre>
</div>
+1 -1
View File
@@ -38,7 +38,7 @@
<div id="content" class="type-text ck-content">
<ul><li>Provides context about when the build was made and the corresponding Git revision.</li><li>The information is displayed to the client when going in the about dialog.</li><li>The build information is hard-coded in <code>src/services/build.ts</code>. This file is generated automatically via <code>npm run update-build-info</code> which itself is run automatically whenever making a build in the CI, or a <a href="UTB518X6X9Uh.html" class="type-text">local delivery</a>.</li></ul>
<ul><li>Provides context about when the build was made and the corresponding Git revision.</li><li>The information is displayed to the client when going in the about dialog.</li><li>The build information is hard-coded in <code>src/services/build.ts</code>. This file is generated automatically via <code>npm run chore:update-build-info</code> which itself is run automatically whenever making a build in the CI, or a <a href="UTB518X6X9Uh.html" class="type-text">local delivery</a>.</li></ul>
</div>
+1 -1
View File
@@ -12,7 +12,7 @@ function getDataKey(password: any) {
const encryptedDataKey = getOption("encryptedDataKey");
const decryptedDataKey = decryptService.decrypt(passwordDerivedKey, encryptedDataKey, 16);
const decryptedDataKey = decryptService.decrypt(passwordDerivedKey, encryptedDataKey);
return decryptedDataKey;
} catch (e: any) {
+3 -1
View File
@@ -16,7 +16,7 @@ function decryptString(dataKey: any, cipherText: any) {
return str;
}
function decrypt(key: any, cipherText: any, ivLength = 13) {
function decrypt(key: any, cipherText: any) {
if (cipherText === null) {
return null;
}
@@ -27,6 +27,8 @@ function decrypt(key: any, cipherText: any, ivLength = 13) {
try {
const cipherTextBufferWithIv = Buffer.from(cipherText.toString(), "base64");
// old encrypted data can have IV of length 13, see some details here: https://github.com/zadam/trilium/issues/3017
const ivLength = cipherTextBufferWithIv.length % 16 === 0 ? 16 : 13;
const iv = cipherTextBufferWithIv.slice(0, ivLength);
const cipherTextBuffer = cipherTextBufferWithIv.slice(ivLength);
+6 -6
View File
@@ -464,9 +464,9 @@
"license": "MIT"
},
"node_modules/better-sqlite3": {
"version": "11.7.2",
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.7.2.tgz",
"integrity": "sha512-10a57cHVDmfNQS4jrZ9AH2t+2ekzYh5Rhbcnb4ytpmYweoLdogDmyTt5D+hLiY9b44Mx9foowb/4iXBTO2yP3Q==",
"version": "11.8.1",
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.8.1.tgz",
"integrity": "sha512-9BxNaBkblMjhJW8sMRZxnxVTRgbRmssZW0Oxc1MPBTfiR+WW21e2Mk4qu8CzrcZb1LwPCnFsfDEzq+SNcBU8eg==",
"hasInstallScript": true,
"dependencies": {
"bindings": "^1.5.0",
@@ -1516,9 +1516,9 @@
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"better-sqlite3": {
"version": "11.7.2",
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.7.2.tgz",
"integrity": "sha512-10a57cHVDmfNQS4jrZ9AH2t+2ekzYh5Rhbcnb4ytpmYweoLdogDmyTt5D+hLiY9b44Mx9foowb/4iXBTO2yP3Q==",
"version": "11.8.1",
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.8.1.tgz",
"integrity": "sha512-9BxNaBkblMjhJW8sMRZxnxVTRgbRmssZW0Oxc1MPBTfiR+WW21e2Mk4qu8CzrcZb1LwPCnFsfDEzq+SNcBU8eg==",
"requires": {
"bindings": "^1.5.0",
"prebuild-install": "^7.1.1"
+27
View File
@@ -0,0 +1,27 @@
import { test, expect, Page } from "@playwright/test";
import App from "./support/app";
test("Help popup", async ({ page, context }) => {
page.setDefaultTimeout(15_000);
const app = new App(page, context);
await app.goto();
const popupPromise = page.waitForEvent("popup");
await app.currentNoteSplit.press("Shift+F1");
await page.getByRole("link", { name: "online" }).click();
const popup = await popupPromise;
expect(popup.url()).toBe("https://triliumnext.github.io/Docs/");
});
test("Complete help in search", async ({ page, context }) => {
const app = new App(page, context);
await app.goto();
await app.launcherBar.locator(".bx-search").first().click();
await app.currentNoteSplit.locator(".search-settings .bx-help-circle").click();
const popupPromise = page.waitForEvent("popup");
await page.getByRole("link", { name: "complete help on search syntax" }).click();
const popup = await popupPromise;
expect(popup.url()).toBe("https://triliumnext.github.io/Docs/Wiki/search.html");
});
+67
View File
@@ -0,0 +1,67 @@
import { test, expect, Page, BrowserContext } from "@playwright/test";
import App from "../support/app";
test("renders ELK flowchart", async ({ page, context }) => {
await testAriaSnapshot({
page, context,
noteTitle: "Flowchart ELK on",
snapshot: `
- document:
- paragraph: A
- paragraph: B
- paragraph: C
- paragraph: Guarantee
- paragraph: User attributes
- paragraph: Master data
- paragraph: Exchange Rate
- paragraph: Profit Centers
- paragraph: Vendor Partners
- paragraph: Work Situation
- paragraph: Customer
- paragraph: Profit Centers
- paragraph: Guarantee
- text: Interfaces for B
`
})
});
test("renders standard flowchart", async ({ page, context }) => {
await testAriaSnapshot({
page, context,
noteTitle: "Flowchart ELK off",
snapshot: `
- document:
- paragraph: Guarantee
- paragraph: User attributes
- paragraph: Master data
- paragraph: Exchange Rate
- paragraph: Profit Centers
- paragraph: Vendor Partners
- paragraph: Work Situation
- paragraph: Customer
- paragraph: Profit Centers
- paragraph: Guarantee
- paragraph: A
- paragraph: B
- paragraph: C
- text: Interfaces for B
`
})
});
interface AriaTestOpts {
page: Page;
context: BrowserContext;
noteTitle: string;
snapshot: string;
}
async function testAriaSnapshot({ page, context, noteTitle, snapshot }: AriaTestOpts) {
const app = new App(page, context);
await app.goto();
await app.goToNoteInNewTab(noteTitle);
const svgData = app.currentNoteSplit.locator(".mermaid-render svg");
await expect(svgData).toBeVisible();
await expect(svgData).toMatchAriaSnapshot(snapshot);
}
@@ -1,4 +1,4 @@
import { test, expect, Page } from "@playwright/test";
import { test, expect } from "@playwright/test";
import App from "../support/app";
test("displays simple map", async ({ page, context }) => {
+9
View File
@@ -0,0 +1,9 @@
import { test, expect } from "@playwright/test";
import App from "../support/app";
test("renders global map", async ({ page, context }) => {
const app = new App(page, context);
await app.goto();
await app.launcherBar.locator(".launcher-button.bx-map-alt").click();
await expect(app.currentNoteSplit.locator(".force-graph-container canvas")).toBeVisible();
});
+17
View File
@@ -49,3 +49,20 @@ test("Highlights list is displayed", async ({ page, context }) => {
await expect(rootList.locator("li").nth(index++)).toContainText(highlightedEl);
}
});
test("Displays math popup", async ({ page, context }) => {
const app = new App(page, context);
await app.goto();
await app.goToNoteInNewTab("Empty text");
const noteContent = app.currentNoteSplit.locator(".note-detail-editable-text-editor")
await noteContent.fill("Hello world");
await noteContent.press("ControlOrMeta+M");
const mathForm = page.locator(".ck-math-form");
await expect(mathForm).toBeVisible();
await mathForm.locator(".ck-input").first().fill("e=mc^2");
const preview = page.locator('[id^="math-preview"]');
await expect(preview).toMatchAriaSnapshot("- math: e = m c 2");
});
+18
View File
@@ -0,0 +1,18 @@
import { test, expect, Page } from "@playwright/test";
import App from "./support/app";
test("Goes to share root", async ({ page, context }) => {
const app = new App(page, context);
await app.goto({ url: "/share" });
const noteTitle = "Shared notes";
await expect(page).toHaveTitle(noteTitle);
await expect(page.locator("h1")).toHaveText(noteTitle);
});
test("Goes to parent share root page", async ({ page, context }) => {
const app = new App(page, context);
await app.goto({ url: "/share/bKMn5EFv9KS2" });
await expect(page.locator("h1")).toHaveText("Child note");
await page.locator("#parentLink a").click();
await page.waitForURL("/share/");
});
+15 -6
View File
@@ -2,6 +2,7 @@ import { expect, Locator, Page } from "@playwright/test";
import type { BrowserContext } from "@playwright/test";
interface GotoOpts {
url?: string;
isMobile?: boolean;
}
@@ -13,6 +14,7 @@ export default class App {
readonly tabBar: Locator;
readonly noteTree: Locator;
readonly launcherBar: Locator;
readonly currentNoteSplit: Locator;
readonly sidebar: Locator;
@@ -22,25 +24,32 @@ export default class App {
this.tabBar = page.locator(".tab-row-widget-container");
this.noteTree = page.locator(".tree-wrapper");
this.launcherBar = page.locator("#launcher-container");
this.currentNoteSplit = page.locator(".note-split:not(.hidden-ext)")
this.sidebar = page.locator("#right-pane");
}
async goto(opts: GotoOpts = {}) {
async goto({ url, isMobile }: GotoOpts = {}) {
await this.context.addCookies([
{
url: BASE_URL,
name: "trilium-device",
value: opts.isMobile ? "mobile" : "desktop"
value: isMobile ? "mobile" : "desktop"
}
]);
await this.page.goto("/", { waitUntil: "networkidle" });
if (!url) {
url = "/";
}
await this.page.goto(url, { waitUntil: "networkidle" });
// Wait for the page to load.
await expect(this.page.locator(".tree"))
.toContainText("Trilium Integration Test");
await this.closeAllTabs();
if (url === "/") {
await expect(this.page.locator(".tree"))
.toContainText("Trilium Integration Test");
await this.closeAllTabs();
}
}
async goToNoteInNewTab(noteTitle: string) {
+2
View File
@@ -26,6 +26,8 @@ electronDl({ saveAs: true });
// needed for excalidraw export https://github.com/zadam/trilium/issues/4271
electron.app.commandLine.appendSwitch("enable-experimental-web-platform-features");
electron.app.userAgentFallback = `${electron.app.getName()} ${electron.app.getVersion()}`;
// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
+61 -29
View File
@@ -3,6 +3,13 @@ const fs = require("fs-extra");
const APP_NAME = "TriliumNext Notes";
const extraResourcesForPlatform = getExtraResourcesForPlatform();
const baseLinuxMakerConfigOptions = {
icon: "./images/app-icons/png/128x128.png",
desktopTemplate: path.resolve("./bin/electron-forge/desktop.ejs"),
categories: ["Office", "Utility"]
};
module.exports = {
packagerConfig: {
executableName: "trilium",
@@ -12,7 +19,7 @@ module.exports = {
icon: "./images/app-icons/icon",
extraResource: [
// Moved to root
...getExtraResourcesForPlatform(),
...extraResourcesForPlatform,
// Moved to resources (TriliumNext Notes.app/Contents/Resources on macOS)
"translations/",
@@ -20,22 +27,18 @@ module.exports = {
],
afterComplete: [
(buildPath, _electronVersion, platform, _arch, callback) => {
const extraResources = getExtraResourcesForPlatform();
for (const resource of extraResources) {
for (const resource of extraResourcesForPlatform) {
const baseName = path.basename(resource);
let sourcePath;
if (platform === "darwin") {
sourcePath = path.join(buildPath, `${APP_NAME}.app`, "Contents", "Resources", baseName);
} else {
sourcePath = path.join(buildPath, "resources", baseName);
}
let destPath;
if (baseName !== "256x256.png") {
destPath = path.join(buildPath, baseName);
} else {
destPath = path.join(buildPath, "icon.png");
}
// prettier-ignore
const sourcePath = (platform === "darwin")
? path.join(buildPath, `${APP_NAME}.app`, "Contents", "Resources", baseName)
: path.join(buildPath, "resources", baseName);
// prettier-ignore
const destPath = (baseName !== "256x256.png")
? path.join(buildPath, baseName)
: path.join(buildPath, "icon.png");
// Copy files from resources folder to root
fs.move(sourcePath, destPath)
@@ -53,8 +56,38 @@ module.exports = {
name: "@electron-forge/maker-deb",
config: {
options: {
icon: "./images/app-icons/png/128x128.png",
desktopTemplate: path.resolve("./bin/electron-forge/desktop.ejs")
...baseLinuxMakerConfigOptions
}
}
},
{
name: "@electron-forge/maker-flatpak",
config: {
options: {
...baseLinuxMakerConfigOptions,
id: "com.triliumnext.notes",
runtimeVersion: "24.08",
base: "org.electronjs.Electron2.BaseApp",
baseVersion: "24.08",
baseFlatpakref: "https://flathub.org/repo/flathub.flatpakrepo",
modules: [
{
name: "zypak",
sources: {
type: "git",
url: "https://github.com/refi64/zypak",
tag: "v2024.01.17"
}
}
]
},
}
},
{
name: "@electron-forge/maker-rpm",
config: {
options: {
...baseLinuxMakerConfigOptions
}
}
},
@@ -62,7 +95,7 @@ module.exports = {
name: "@electron-forge/maker-squirrel",
config: {
iconUrl: "https://raw.githubusercontent.com/TriliumNext/Notes/develop/images/app-icons/icon.ico",
setupIcon: "./images/app-icons/icon.ico",
setupIcon: "./images/app-icons/win/setup.ico",
loadingGif: "./images/app-icons/win/setup-banner.gif"
}
},
@@ -91,21 +124,20 @@ module.exports = {
};
function getExtraResourcesForPlatform() {
let resources = ["dump-db/", "./bin/tpl/anonymize-database.sql"];
const scripts = ["trilium-portable", "trilium-safe-mode", "trilium-no-cert-check"];
const resources = ["dump-db/", "./bin/tpl/anonymize-database.sql"];
const getScriptRessources = () => {
const scripts = ["trilium-portable", "trilium-safe-mode", "trilium-no-cert-check"];
const scriptExt = (process.platform === "win32") ? "bat" : "sh";
return scripts.map(script => `./bin/tpl/${script}.${scriptExt}`);
}
switch (process.platform) {
case "win32":
for (const script of scripts) {
resources.push(`./bin/tpl/${script}.bat`);
}
break;
case "darwin":
resources.push(...getScriptRessources())
break;
case "linux":
resources.push("images/app-icons/png/256x256.png");
for (const script of scripts) {
resources.push(`./bin/tpl/${script}.sh`);
}
resources.push(...getScriptRessources(), "images/app-icons/png/256x256.png");
break;
default:
break;
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 728 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 975 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

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