Compare commits

...

2882 Commits

Author SHA1 Message Date
Elian Doran 8390807212 release 0.92.2-beta
/ Check Docker build (Dockerfile) (push) Failing after 30s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 40s
/ Build Docker images (Dockerfile, ubuntu-24.04-arm, linux/arm/v7) (push) Has been skipped
/ Build Docker images (Dockerfile, ubuntu-24.04-arm, linux/arm64) (push) Has been skipped
/ Build Docker images (Dockerfile.alpine, ubuntu-latest, 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 34s
Release / Make Electron (x64, map[extension:[deb rpm zip flatpak] image:ubuntu-latest name:linux]) (push) Failing after 28s
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 zip] 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 zip] image:windows-latest name:windows]) (push) Has been cancelled
Release / Build Linux Server (arm64, ubuntu-24.04-arm) (push) Has been cancelled
2025-02-22 13:59:41 +02:00
Elian Doran 60da367570 Merge pull request #1253 from TriliumNext/ci_fix-missing-windows-zip
fix(ci): add missing windows zip build target
2025-02-22 13:56:01 +02:00
Panagiotis Papadopoulos 36b0970835 fix(ci): add missing windows zip build target 2025-02-22 12:41:24 +01:00
Elian Doran 3bea6af20e chore(release): 0.92.1-beta
/ Check Docker build (Dockerfile) (push) Failing after 39s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 42s
/ Build Docker images (Dockerfile, ubuntu-24.04-arm, linux/arm/v7) (push) Has been skipped
/ Build Docker images (Dockerfile, ubuntu-24.04-arm, linux/arm64) (push) Has been skipped
/ Build Docker images (Dockerfile.alpine, ubuntu-latest, 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 32s
Release / Make Electron (x64, map[extension:[deb rpm zip flatpak] image:ubuntu-latest name:linux]) (push) Failing after 40s
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-22 12:58:30 +02:00
Elian Doran 3c83112240 Merge pull request #1250 from TriliumNext/feat_typescript-codenote
feat(options_init): add typescript as default set codeNotesMimeTypes value
2025-02-22 12:55:40 +02:00
Elian Doran 4e876ed24d fix(build): build errors after changing meta data type 2025-02-22 12:52:25 +02:00
Elian Doran 94ce01bbc2 chore(docs): update documentation 2025-02-22 12:49:09 +02:00
Elian Doran 411e3dfa0e server(export): export Markdown using ATX heading syntax (closes #1251) 2025-02-22 12:45:21 +02:00
Elian Doran a1bfc6aae7 feat(hidden_subtree): update help note icons 2025-02-22 12:31:39 +02:00
Elian Doran 97bc103e76 feat(in_app_help): support folder icons 2025-02-22 12:30:47 +02:00
Panagiotis Papadopoulos 9da1f55409 feat(options_init): add typescript as default set codeNotesMimeTypes value
since it is a very widespread/popular language, it makes sense to have it on by default.

closes #1219
2025-02-22 11:19:32 +01:00
Elian Doran 017fba518d feat(in_app_help): remove help notes that are no longer present in structure 2025-02-22 12:09:11 +02:00
Elian Doran 63584c153c feat(views/calendar): filter notes by ancestor 2025-02-22 11:31:36 +02:00
Adorian Doran a4a2e55415 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-22 11:13:24 +02:00
Adorian Doran 4a1691ac31 style(next): promoted attributes widget: update narrow view breakpoint 2025-02-22 11:13:20 +02:00
Elian Doran 5a8d5c59f5 feat(views/calendar): support workspaceCalendarRoot 2025-02-22 10:59:03 +02:00
Elian Doran a9cebe312f refactor(views/calendar): use specific API for date notes for performance 2025-02-22 10:59:03 +02:00
Elian Doran 43f79ca813 feat(views/calendar): click to go to day note 2025-02-22 10:59:03 +02:00
Elian Doran 5c1db3cab2 feat(views/calendar): disable interaction in calendar root mode 2025-02-22 10:59:03 +02:00
Elian Doran bc4d820cb0 feat(views/calendar): display child notes of days 2025-02-22 10:59:03 +02:00
Elian Doran f4e6edd19e feat(views/calendar): basic recursion for calendar root 2025-02-22 10:59:03 +02:00
Elian Doran 530340f753 fix(client): sporadious crash with classic toolbar not being available 2025-02-22 10:59:03 +02:00
Adorian Doran fcc1068b06 style(next): promoted attributes widget: improve appearance 2025-02-22 10:55:01 +02:00
Adorian Doran 6d19e315f4 style(next): promoted attributes widget: improve appearance on narrow width 2025-02-22 10:19:26 +02:00
Adorian Doran 7269c1b0aa style(next): promoted attributes widget: improve appearance 2025-02-22 10:10:58 +02:00
Adorian Doran 8e69cf79a6 client: promoted attributes widget: add placeholder for blank input fields 2025-02-22 10:05:14 +02:00
Elian Doran 46f543ad54 Merge pull request #1207 from maphew/bare2share2
Bare2share - Redirect bare domain to defined #shareRoot
2025-02-22 09:25:30 +02:00
Elian Doran 38dbf6efcd Merge pull request #1220 from TriliumNext/feat_friendly-numbers-note-revision
feat: friendly numbers note revision
2025-02-22 09:24:37 +02:00
Elian Doran 8e68ddafd5 Merge pull request #1239 from TriliumNext/i18n_use-empty-string-instead-of-english
i18n: use empty string instead of English string
2025-02-22 09:24:14 +02:00
Elian Doran 0c43b387ce Merge pull request #1228 from TriliumNext/feat_friendly-numbers-protected_session_timeout
feat: friendly numbers protected session timeout
2025-02-22 09:23:23 +02:00
Elian Doran 8aa560eb82 Merge pull request #1243 from TriliumNext/renovate/typedoc-0.x
chore(deps): update dependency typedoc to v0.27.8
2025-02-22 09:22:23 +02:00
Elian Doran 3a2b8e9791 Merge pull request #1242 from TriliumNext/renovate/node-22.x
chore(deps): update dependency @types/node to v22.13.5
2025-02-22 09:22:09 +02:00
Elian Doran 468b3b6027 Merge pull request #1244 from TriliumNext/renovate/swagger-ui-express-4.x
fix(deps): update dependency @types/swagger-ui-express to v4.1.8
2025-02-22 09:21:48 +02:00
Elian Doran f872073f65 Merge pull request #1245 from TriliumNext/renovate/ws-8.x
fix(deps): update dependency ws to v8.18.1
2025-02-22 09:21:23 +02:00
Elian Doran ef4fc0a180 feat(html_sanitizer): enforce strict style rules (closes #931) 2025-02-22 09:18:47 +02:00
Adorian Doran 1d47df5f28 style(next): forms/input groups: improve CSS 2025-02-22 02:37:13 +02:00
Adorian Doran 77264b5385 style(next): forms/input groups: fix icons being skewed in certain conditions 2025-02-22 02:35:24 +02:00
Adorian Doran 41e925dc94 style(next): forms: add support for date and time input fields 2025-02-22 02:31:20 +02:00
Adorian Doran 789178061b style(next): promoted attributes widget: improve CSS, add right margin 2025-02-22 02:21:19 +02:00
renovate[bot] 8011969b9d fix(deps): update dependency ws to v8.18.1 2025-02-22 00:06:30 +00:00
renovate[bot] 9ab2fe85bd fix(deps): update dependency @types/swagger-ui-express to v4.1.8 2025-02-22 00:06:21 +00:00
renovate[bot] 6c818427fc chore(deps): update dependency typedoc to v0.27.8 2025-02-22 00:06:14 +00:00
renovate[bot] 7dab171a0c chore(deps): update dependency @types/node to v22.13.5 2025-02-22 00:06:04 +00:00
Adorian Doran c680c3476b Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-02-22 02:05:22 +02:00
Adorian Doran bf0b6ce554 style(next): promoted attributes widget: improve appearance 2025-02-22 02:05:19 +02:00
Elian Doran bedc61c3d0 feat(import/zip): support UTF-16 LE with BOM (closes #1241) 2025-02-22 01:37:22 +02:00
Elian Doran c925ae5f15 feat(import/single): support UTF-16 LE with BOM for markdown notes 2025-02-22 01:37:22 +02:00
Elian Doran 77ee7f96c1 feat(import/single): support UTF-16 LE with BOM for text notes 2025-02-22 01:37:22 +02:00
Elian Doran cadd78524c feat(import/single): support UTF-16 LE with BOM for code notes 2025-02-22 01:37:22 +02:00
Elian Doran fd4f35e879 feat(import/single): support UTF-16 LE with BOM for HTML 2025-02-22 01:37:22 +02:00
Adorian Doran 39f00bd568 style(next): promoted attributes widget: tweak input groups 2025-02-22 01:35:10 +02:00
Adorian Doran ee2d4c6830 style(next): promoted attributes widget: tweak checkboxes 2025-02-22 01:30:55 +02:00
Adorian Doran e93d47f664 style(next): promoted attributes widget: tweak buttons 2025-02-22 00:53:24 +02:00
Adorian Doran 0c88c4c3ee style(next): partially restyle the promoted attributes widget 2025-02-21 21:31:26 +02:00
Elian Doran 81bdd57398 feat(views/calendar): display event icon 2025-02-21 18:40:54 +02:00
Elian Doran fe5182ebc6 feat(views/calendar): add option to show week numbers 2025-02-21 17:56:34 +02:00
Elian Doran 42d46bdb72 feat(views/calendar): add option to hide weekends 2025-02-21 17:56:34 +02:00
Elian Doran 710cf68c06 feat(views/calendar): make calendar full height 2025-02-21 17:56:34 +02:00
Elian Doran 300bb561bb Merge pull request #1240 from rom1dep/calendar_enh_color
feat(view/calendar): support coloring
2025-02-21 17:56:24 +02:00
Panagiotis Papadopoulos 96961898ca i18n: use empty string instead of English string
it will fallback to the English string by default
2025-02-21 08:04:43 +01:00
Panagiotis Papadopoulos 1520913686 i18n: use empty string instead of English string
it will fallback to the English string by default
2025-02-21 07:57:07 +01:00
Panagiotis Papadopoulos 6fae7a98f5 i18n: use empty string instead of English string
it will fallback to the English string by default
2025-02-21 07:41:50 +01:00
Elian Doran 57dc168c26 Merge pull request #1223 from TriliumNext/feat_timeSelector-min-input
feat: time selector add support for handling min required input
2025-02-20 22:49:14 +02:00
Elian Doran 946d9aee40 feat(settings/share): add subtitles 2025-02-20 22:34:51 +02:00
Elian Doran 16b16927ef feat(settings/share): add title to section 2025-02-20 22:08:04 +02:00
Elian Doran c2e4def523 Merge branch 'develop' into feat_friendly-numbers-note-revision 2025-02-20 21:45:49 +02:00
Elian Doran 1e11625f14 Merge branch 'develop' into feat_friendly-numbers-protected_session_timeout 2025-02-20 21:45:30 +02:00
Elian Doran 5495677fc2 Merge branch 'develop' into feat_timeSelector-min-input 2025-02-20 21:45:24 +02:00
Elian Doran 2cefdf8b9f Merge pull request #1229 from McSido/feature/colorful-marker-icons
Enhance geomap marker icons with color
2025-02-20 21:43:42 +02:00
Elian Doran 57b3035559 feat(geomap): refresh map if color attribute is changed 2025-02-20 21:39:35 +02:00
Elian Doran 4f84ad8b81 Merge pull request #1230 from TriliumNext/renovate/tsx-4.x
chore(deps): update dependency tsx to v4.19.3
2025-02-20 21:31:28 +02:00
Elian Doran 1626767f30 Merge pull request #1231 from TriliumNext/renovate/vitest-monorepo
chore(deps): update vitest monorepo to v3.0.6
2025-02-20 21:30:57 +02:00
Elian Doran 91003af092 Merge pull request #1232 from TriliumNext/renovate/electron-forge-monorepo
chore(deps): update electron-forge monorepo to v7.7.0
2025-02-20 21:30:11 +02:00
Elian Doran 860de346a7 feat(import/single): treat mdx as markdown 2025-02-20 20:38:58 +02:00
Elian Doran 324a3d0d8b feat(import): trim .mdx extension from import 2025-02-20 20:29:00 +02:00
Elian Doran f9e4ae7210 feat(import/zip): treat mdx as markdown (closes #1236) 2025-02-20 20:25:42 +02:00
matt wilkie bdd6395a76 works! verify shareRoot is set and note is shared 2025-02-20 09:08:24 -07:00
Elian Doran 1c118f2aa9 feat(startup): display migration errors using system modal 2025-02-20 18:06:19 +02:00
Elian Doran 4010cb2789 Merge branch 'develop' into renovate/electron-forge-monorepo 2025-02-20 17:35:40 +02:00
Elian Doran f83beafd76 Merge branch 'develop' into renovate/vitest-monorepo 2025-02-20 17:35:38 +02:00
Elian Doran 366264f3a9 Merge branch 'develop' into renovate/tsx-4.x 2025-02-20 17:35:35 +02:00
Elian Doran ba91ed1855 Merge branch 'develop' into feature/colorful-marker-icons 2025-02-20 17:34:54 +02:00
matt wilkie 2734e230ab WIP: 1st step at verifying shareRoot is set 2025-02-20 08:12:51 -07:00
Elian Doran ca1d5207d8 fix(build): try using ARM runner for building docker 2025-02-20 17:10:16 +02:00
Elian Doran f6b6b2e740 feat(test): ensure backend translations are valid JSON 2025-02-20 12:42:42 +02:00
Elian Doran c255af67c9 fix(i18n): Chinese translations missing due to invalid JSON 2025-02-20 12:40:11 +02:00
Elian Doran 34b4e6d069 feat(test): ensure frontend translations are valid JSON 2025-02-20 12:39:56 +02:00
Elian Doran 4e01534d76 refactor(i18n): move list of locales out of options 2025-02-20 12:27:33 +02:00
renovate[bot] fa05f15753 chore(deps): update electron-forge monorepo to v7.7.0 2025-02-20 02:57:15 +00:00
renovate[bot] 68c7df797d chore(deps): update vitest monorepo to v3.0.6 2025-02-20 02:57:00 +00:00
renovate[bot] 587a051430 chore(deps): update dependency tsx to v4.19.3 2025-02-20 02:56:46 +00:00
McSido 04a6175630 feat(geomap): enhance icon building to include color class 2025-02-19 22:52:38 +01:00
Panagiotis Papadopoulos bf6c5dfb20 i18n: adjust protected_session_timeout_label
we are not limited to seconds now anymore (at least in the UI :-))
2025-02-19 22:45:07 +01:00
Panagiotis Papadopoulos 19816493d6 chore: rename ProtectedSessionTimeoutOption to plural
matches the remaining Options widgets
2025-02-19 22:37:08 +01:00
Panagiotis Papadopoulos cecde349b7 feat: add ProtectedSessionTimeoutOption to content_widget 2025-02-19 22:35:02 +01:00
Panagiotis Papadopoulos 1a80a379dc refactor(password): move password.ts to password subfolder 2025-02-19 22:32:48 +01:00
Panagiotis Papadopoulos 739eaf9fc0 refactor(password): remove protected_session_timeout TPL element
-> now part of protected_session_timeout widget
2025-02-19 22:27:35 +01:00
Panagiotis Papadopoulos 7f173b287a feat(protected_session_timeout): add minimumSeconds 2025-02-19 22:21:49 +01:00
Matt Wilkie 5a6c3ae426 use the standard classes
per @pano9000 advice, https://github.com/TriliumNext/Notes/pull/1207#issuecomment-2667896424
2025-02-19 08:33:03 -07:00
Elian Doran 6b5d905ebe fix(client/file): flicker when too big alert is not needed 2025-02-19 13:43:50 +02:00
Elian Doran 61f2e35717 feat(client/file): trim big files in order to improve performance 2025-02-19 13:41:05 +02:00
Elian Doran 4a34d5b2df Merge pull request #1227 from greg1904/feat/german_translation
feat/german translation - adding missing translations from base english and adding adjustments of inconsistent german translations
2025-02-19 09:39:37 +02:00
greg1904 549917c1f1 small consistency adjustment 2025-02-18 23:56:15 +01:00
greg1904 4ed3a28e29 german adjustments 2025-02-18 23:49:27 +01:00
greg1904 c261bf7f7a Kind --> Unternotiz and some other additions 2025-02-18 23:30:14 +01:00
greg1904 62c9e865f5 added some fields in translation.json + switched "Hinweis" to "Notiz" 2025-02-18 23:12:57 +01:00
Panagiotis Papadopoulos bd75a26803 feat: use TimeSelector for protected_session_timeout
to be used in the Password options
2025-02-18 22:37:20 +01:00
Panagiotis Papadopoulos 9a1d26e129 feat: add protectedSessionTimeoutScale option
to be used in the protected_session_timeout widget, when it is ported to use TimeSelector
2025-02-18 22:37:20 +01:00
Panagiotis Papadopoulos bf41c54bd0 feat: set TimeSelector minimumSeconds for revision_snapshot_interval and remove TODO 2025-02-18 22:32:43 +01:00
Panagiotis Papadopoulos 28148b32d2 i18n: adjust labels for update revision_snapshot_interval options
we don't do seconds only anymore, so strings needed adjusting
2025-02-18 22:29:56 +01:00
Panagiotis Papadopoulos eb08a976dd feat: use TimeSelector for revision_snapshot_interval
added one TODO that needs to be handled in TimeSelector: minimum allowed value (!in seconds!)
2025-02-18 22:29:56 +01:00
Panagiotis Papadopoulos eeb99cf37c feat: add revisionSnapshotTimeIntervalTimeScale option
to be used in the revision_snapshot_interval widget, when it is ported to use TimeSelector
2025-02-18 22:29:56 +01:00
Panagiotis Papadopoulos a0c2715980 i18n(time_selector): add i18n for minimum_input 2025-02-18 22:26:32 +01:00
greg1904 e35ff07b9b Launchbar --> Startleiste 2025-02-18 22:25:05 +01:00
Panagiotis Papadopoulos ce1f418aa7 feat(time_selector): make use of optionsService 2025-02-18 22:18:58 +01:00
greg1904 fbc4206908 adding new fields for launchbar to german translation 2025-02-18 22:18:55 +01:00
Panagiotis Papadopoulos bb4c3ae6ff feat(time_selector): add minimumSeconds handling 2025-02-18 22:18:11 +01:00
Panagiotis Papadopoulos 0332ade13c refactor(time_selector): simplify setting of includedTimeScales 2025-02-18 22:16:13 +01:00
Panagiotis Papadopoulos 2d968b8e9c refactor(time_selector): mark methods as private 2025-02-18 22:15:36 +01:00
Panagiotis Papadopoulos fd2c65dcc0 feat(time_selector): add minimumSeconds class property 2025-02-18 22:14:56 +01:00
Matt Wilkie aab35955bf remove duplicated sync_2 2025-02-17 16:45:47 -07:00
Romain DEP. bcb40b531f feat(view/calendar): support coloring 2025-02-17 22:20:20 +01:00
Matt Wilkie 32bb43f9c1 fix indent 2025-02-17 13:55:55 -07:00
Matt Wilkie 86ab2d4008 Merge remote-tracking branch 'origin/develop' into bare2share2
# Conflicts:
#	src/public/translations/en/translation.json
2025-02-17 13:54:40 -07:00
Matt Wilkie 657638ee54 responding to code review (thanks pano!) 2025-02-17 13:46:03 -07:00
Elian Doran 50d37bbcb1 chore(client/ts): port note_type 2025-02-17 22:28:54 +02:00
Elian Doran 6706332be3 Merge pull request #1204 from TriliumNext/feat_timeScaleSelectWidget
feat: add time selector option widget
2025-02-17 22:23:29 +02:00
Matt Wilkie 2ec2d784ec results of npx prettier 2025-02-17 13:19:55 -07:00
Elian Doran 16caae191e fix(geomap): stuck viewport and zoom when switching between two geomaps 2025-02-17 21:59:02 +02:00
Elian Doran c7d75b759c feat(webview): remove disclaimer 2025-02-17 21:50:59 +02:00
Elian Doran b837c57d06 chore(lock): update 2025-02-17 21:49:34 +02:00
Elian Doran ef3a75d58e feat(webview): set up some sandboxing for <iframe> 2025-02-17 21:49:24 +02:00
Elian Doran 59b474df35 feat(webview): render in browser using iframe 2025-02-17 21:26:00 +02:00
Elian Doran fd47412d51 chore(client/ts): port web_view 2025-02-17 21:22:58 +02:00
Elian Doran 237f2ead73 fix(ci): server platform name missing due to invalid input 2025-02-17 21:16:53 +02:00
Elian Doran 558bee72e9 fix(ci): add missing zip for Windows on nightly 2025-02-17 21:15:12 +02:00
Elian Doran ed082f34d5 fix(ci): add missing zip for Windows 2025-02-17 21:01:06 +02:00
Elian Doran fabafeac86 fix(ci): missing os name in server release artifact 2025-02-17 19:53:25 +02:00
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
Panagiotis Papadopoulos d26d668741 feat(time_selector): avoid "template concatenation" 2025-02-17 09:00:44 +01:00
Panagiotis Papadopoulos fc8f805b28 i18n(time_selector): adjust attachment erasure message
as we now are allowing entering the time in other formats (minutes, hours, days) – it doesn't make sense for the label to say "after X seconds".
2025-02-17 06:52:29 +01:00
matt wilkie ed8b8e50a4 feature complete; tested and working on local linux machine 2025-02-16 22:47:50 -07:00
matt wilkie bc66e98533 okay, we can start npm server now, but new db redirects to share 2025-02-16 22:17:59 -07:00
matt wilkie 7af4e52766 brought over changes from 879035d
The last known good state before I got sidetracked into docker changes
2025-02-16 21:29:38 -07: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
Panagiotis Papadopoulos ccbed7bbc3 feat(time_selector): use showError since this is an error 2025-02-16 18:30:56 +01:00
Panagiotis Papadopoulos 10ba467202 chore(prettier): run prettier on time_selector related files 2025-02-16 18:30:56 +01:00
Panagiotis Papadopoulos 793b0c9fe8 feat(time_selector): add possibility to omit time scales 2025-02-16 18:30:56 +01:00
Panagiotis Papadopoulos 35a3d326f7 i18n(time_selector): translate invalid_input message 2025-02-16 18:30:56 +01:00
Panagiotis Papadopoulos f672054441 feat(time_selector): use time_selector in attachment_erasure_timeout 2025-02-16 18:30:56 +01:00
Panagiotis Papadopoulos e0e530b219 feat(time_selector): use time_selector in note_erasure_timeout 2025-02-16 18:30:56 +01:00
Panagiotis Papadopoulos c0714a92d5 feat(time_selector): add time_selector options widget 2025-02-16 18:30:56 +01: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 5ca876ca62 fix(mobile): force grouping in editing toolbar 2025-01-16 16:41:52 +02:00
Elian Doran 187ef60350 feat(mobile): disable overscroll for toolbar 2025-01-16 16:32:47 +02:00
Elian Doran 706b011b23 feat(mobile): enforce classic editor 2025-01-16 16:29:51 +02:00
Elian Doran 6f2538a070 feat(mobile): hide editing toolbar on non-text note 2025-01-16 16:14:37 +02:00
Elian Doran 6caddc8004 fix(mobile): position of editing toolbar on tablet mode 2025-01-16 16:09:11 +02:00
Elian Doran 0cab891d2e chore(client/ts): port classic_editor_toolbar 2025-01-16 15:51:58 +02:00
Elian Doran 1d6e3af9aa fix(mobile): position of editing toolbar 2025-01-16 15:48:56 +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
Elian Doran 7dfeb20678 Merge pull request #936 from pano9000/fix_views-deprecated-meta-tag
fix(views): replace deprecated meta tag
2025-01-14 23:51:46 +02:00
Elian Doran 155900929f Merge pull request #945 from hasecilu/i18n/Spanish
Update Spanish translation
2025-01-14 23:19:46 +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
hasecilu 3486e566ae chore(code): be more explicit on config for json files
To avoid changing end line character of translation files
2025-01-14 13:26:40 -06:00
hasecilu 7f9e42abbd chore(i18n): update Spanish translation 2025-01-14 13:26:39 -06:00
Elian Doran c1211647ab Merge pull request #940 from pano9000/chore_npm-script-start-test-server
chore(scripts): update `start-test-server` script
2025-01-14 21:26:09 +02:00
Elian Doran 8a7a607fcb Merge pull request #926 from pano9000:refactor_backend_log
refactor(backend_log): improve `getBackendLog`
2025-01-14 20:41:29 +02:00
Elian Doran 3f612a1b70 Merge pull request #864 from pano9000/refactor_replace-csurf
refactor: replace csurf with csrf-csrf
2025-01-14 20:33:29 +02:00
Elian Doran c8c501d717 Merge branch 'develop' into refactor_replace-csurf 2025-01-14 20:32:52 +02:00
Elian Doran 7dabe33eb2 chore(git): mark root package-lock as auto-generated 2025-01-14 20:32:30 +02:00
Elian Doran eb1af98830 Merge pull request #880 from pano9000/refactor_data_dir
refactor(data_dir): simplify logic and make code robust and testable
2025-01-14 20:20:32 +02:00
Elian Doran 3c0e4b842a Merge pull request #941 from process/ck-logging
Add server logging for CKEditor state changes
2025-01-14 20:18:06 +02:00
Elian Doran 73053a8728 Merge pull request #928 from TriliumNext/renovate/mind-elixir-4.x
fix(deps): update dependency mind-elixir to v4.3.6
2025-01-14 20:15:24 +02:00
Elian Doran f478985761 chore(ci): define relations between dev jobs 2025-01-14 20:09:16 +02:00
Elian Doran 0221039ebe fix(client/ts): fix build errors & define command to event bridge 2025-01-14 20:08:57 +02:00
Elian Doran ef28445de6 Merge pull request #935 from pano9000/fix_deps-update-deprecated-electron
fix(deps): update deprecated electron packages
2025-01-14 19:23:44 +02:00
Elian Doran acf34addf4 Merge pull request #937 from TriliumNext/renovate/node-22.x
chore(deps): update dependency @types/node to v22.10.6
2025-01-14 19:22:57 +02:00
Elian Doran cf2535cb92 Merge branch 'develop' into renovate/mind-elixir-4.x 2025-01-14 19:22:34 +02:00
Elian Doran 73719407ba Merge pull request #929 from TriliumNext/renovate/ts-loader-9.x
fix(deps): update dependency ts-loader to v9.5.2
2025-01-14 19:22:18 +02:00
Elian Doran 331b2252f2 chore(e2e): rename incorrect test suite 2025-01-14 19:19:46 +02:00
Elian Doran 580bebb4a3 chore(client/ts): port mind_map 2025-01-14 19:18:44 +02:00
Elian Doran e16f4a1a71 chore(client/ts): port type_widget 2025-01-14 19:12:29 +02:00
Elian Doran 353156e625 fix(mindmap): not working due to dependency change 2025-01-14 18:47:42 +02:00
Elian Doran 62fbf3ffd0 Merge branch 'develop' into renovate/mind-elixir-4.x 2025-01-14 12:38:34 +02:00
Elian Doran 2dfac783ce fix(ci): conflict in name of playwright report artifact 2025-01-14 11:55:04 +02:00
Justin Chines b173429dc5 Add more logging of CKEditor crashes 2025-01-14 15:39:04 +07:00
Justin Chines 7768511fe6 Add server logging for CKEditor state changes 2025-01-14 15:38:13 +07:00
Panagiotis Papadopoulos 0572f22121 chore(scripts): replace ts-node with nodemon in start-test-server
keep the same structure as the other scripts, which all use nodemon.
`ts-node` wasn't even working before, it was throwing an "unknown file extension […] for main.ts" error
2025-01-14 08:31:07 +01:00
Panagiotis Papadopoulos cd69199bb1 chore(scripts): chain commands with && in start-test-server 2025-01-14 08:23:16 +01:00
Panagiotis Papadopoulos 26bd26b207 fix(deps): remove explicit @electron/rebuild from devDep
it is not directly used by us anymore, however since
`@electron-forge` depends on it, it still gets installed :-)
2025-01-14 08:14:16 +01:00
Panagiotis Papadopoulos ec65f3a9e4 fix(deps): electron-rebuild => @electron/rebuild 2025-01-14 08:14:16 +01:00
Panagiotis Papadopoulos 45fd6cba49 fix(deps): electron-packager => @electron/packager
major version update, because v17 was not released under
@electron/packager.
breaking changes mentioned below, but we are not affected
as far as I can tell.

https://github.com/electron/packager/releases/tag/v18.0.0
2025-01-14 08:14:16 +01:00
renovate[bot] 42ce80813d chore(deps): update dependency @types/node to v22.10.6 2025-01-14 01:26:14 +00: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
Elian Doran 1807b2b031 chore(types): missing import type for JS imports 2025-01-13 23:18:10 +02:00
Panagiotis Papadopoulos 8b91c528aa fix(views): replace deprecated meta tag
`apple-mobile-web-app-capable` =>
`mobile-web-app-capable`

as warned by Chrome and also already implemented by
e.g. Flutter or vercel/Next.js:

https://github.com/vercel/next.js/pull/70363
https://github.com/flutter/flutter/issues/154596
2025-01-13 20:49:53 +01:00
Elian Doran 2fa5955bd5 fix(e2e): port for docker 2025-01-13 21:48:30 +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
Elian Doran 6c886fe3b9 chore(e2e): order around docker test 2025-01-13 21:21:18 +02:00
Adorian Doran 56fb70ab5e style(next): refactor CSS 2025-01-13 21:12:27 +02:00
Elian Doran 093f9d60f0 fix(e2e): flaky test due to timeout 2025-01-13 17:46:57 +02:00
Elian Doran b69cad2298 fix(e2e): leaks if language fails 2025-01-13 17:42:21 +02:00
Elian Doran 89d700d5ed chore(e2e): use different mechanism for closing all tabs 2025-01-13 17:21:50 +02:00
Adorian Doran 93e740cf36 style(next): restyle text boxes 2025-01-13 14:51:23 +02:00
Elian Doran d24227d718 Merge pull request #933 from pano9000/chore_npx-playwright-script
chore(scripts): add `test-playwright` script to package.json
2025-01-13 11:10:48 +02:00
Panagiotis Papadopoulos bcbf4f4090 chore: fix formatting 2025-01-13 09:21:24 +01:00
Panagiotis Papadopoulos 903988fec5 i18n(backend_log): translate messages 2025-01-13 09:21:24 +01:00
Panagiotis Papadopoulos dcfdb67539 refactor(backend_log): improve handle 'file not found'
handle errors more "user friendly" and actually
let the user know, that either the file is not
existing (yet), or that reading the log failed.
2025-01-13 09:21:24 +01:00
Panagiotis Papadopoulos 67d858441a refactor(backend_log): include filename in log 2025-01-13 09:21:24 +01:00
Panagiotis Papadopoulos c4ad84ab06 refactor(backend_log): print error to the log 2025-01-13 09:21:24 +01:00
Panagiotis Papadopoulos eb4b5a44df refactor(backend_log): use path.join for log file path 2025-01-13 09:21:24 +01:00
Panagiotis Papadopoulos 06ebcc210e refactor(backend_log): use async readFile
using synchronous functions on the backend
is not recommended, as it is "blocking the event loop", i.e. no other tasks get executed/processed,
while the file is being read
2025-01-13 09:21:24 +01:00
Panagiotis Papadopoulos b2e83caf4a chore(scripts): add test-playwright script to package.json 2025-01-13 09:11:14 +01:00
Elian Doran b30164ef66 chore(e2e): add missing await to expect 2025-01-13 10:00:13 +02:00
Panagiotis Papadopoulos 5373ef509b chore(prettier): fix code style 2025-01-13 08:28:12 +01:00
Panagiotis Papadopoulos 6818b2d54c style: move "important" funcs to top of file 2025-01-13 08:26:07 +01:00
Panagiotis Papadopoulos c47522eb50 refactor(data_dir): pass DIR_NAME as argument to getTriliumDir
makes it a bit cleaner and easier to test in the future,
as it is one thing less that'd need mocking :-)
2025-01-13 08:26:07 +01:00
Panagiotis Papadopoulos e021c0cd0e test(data_dir): add tests for getDataDirs 2025-01-13 08:26:07 +01:00
Panagiotis Papadopoulos 63079c0939 test(data_dir): add tests for getPlatformAppDataDir 2025-01-13 08:26:07 +01:00
Panagiotis Papadopoulos 94b8bcf8c9 refactor(data_dir): export functions to allow for testing 2025-01-13 08:26:07 +01:00
Panagiotis Papadopoulos 8b1071c459 refactor(data_dir): export dirs as frozen readonly object
previously exported object allowed the values to be changed
accidentally at runtime and buildtime
2025-01-13 08:26:07 +01:00
Panagiotis Papadopoulos 759d24855b style(data_dir): fix indentation 2025-01-13 08:26:07 +01:00
Panagiotis Papadopoulos 7a1e8714af refactor(data_dir): logically order/split cases in getTriliumDataDir
- the blocks now clearly follow the intended logic described in the comments
- I renamed the `getAppDataDir` to more specific `getPlatformAppDataDir`
2025-01-13 08:25:53 +01:00
Panagiotis Papadopoulos 3481c8ba84 refactor(data_dir): use path.join for safer joins
https://nodejs.org/api/path.html#pathjoinpaths
2025-01-13 08:24:04 +01:00
Panagiotis Papadopoulos 8826021c63 refactor(data_dir): add createDirIfNotExisting function
removes some code duplication
2025-01-13 08:24:04 +01:00
Panagiotis Papadopoulos 61a19d5628 refactor(data_dir): add FOLDER_PERMISSION const
gets rid of previously "magic number"
2025-01-13 08:24:01 +01:00
Elian Doran fbfee818b2 fix(ci): directory for e2e tests 2025-01-13 09:11:11 +02:00
renovate[bot] 9b765b458c fix(deps): update dependency katex to v0.16.20 2025-01-13 00:42:04 +00:00
Elian Doran ffacc1f5f7 chore(e2e): disable reuse of server on CI 2025-01-13 00:08:56 +02:00
Elian Doran e556137a25 feat(ci): run playwright for docker builds 2025-01-13 00:08:43 +02: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
Elian Doran 9fd8e4d030 fix(e2e): language change breaking other tests 2025-01-12 23:41:27 +02:00
Elian Doran 9b85a101a6 feat(e2e): test note settings 2025-01-12 19:43:29 +02:00
Elian Doran 8dbb5497f1 feat(e2e): test mind map display 2025-01-12 19:34:35 +02:00
Elian Doran 54c5ce9257 chore(e2e): port old test for checking mobile language 2025-01-12 18:05:44 +02:00
Elian Doran c641ce26d1 chore(e2e): port old test for checking desktop language 2025-01-12 17:43:16 +02:00
Elian Doran dc83ba51db chore(e2e): port old test for changing language 2025-01-12 17:36:10 +02:00
Elian Doran 0db3bfd8ae feat(e2e): add test for settings translations 2025-01-12 17:28:41 +02:00
Elian Doran 1abc8abee6 fix(e2e): missing method 2025-01-12 17:17:07 +02:00
Panagiotis Papadopoulos ea621ef8e1 chore(prettier): fix code style 2025-01-12 13:30:02 +01:00
Panagiotis Papadopoulos 4cd18441e4 deps: Update package-lock 2025-01-12 13:16:26 +01:00
Panagiotis Papadopoulos d1bd2d2812 refactor(routes/login): remove unused rendering of HTML 2025-01-12 13:13:59 +01:00
Panagiotis Papadopoulos 59ecc614c2 refactor: call logout route via JS
required for csrf-csrf to correctly protect against
CSRF, as it required the _csrf cookie AND the
x-csrf-token HTTP header, the latter cannot be set
via simple Form POST action

using "../login" here, because "server" method is automatically prepending all paths with "/api",
which we don't want here, as we want "/login"
2025-01-12 11:43:41 +01:00
Panagiotis Papadopoulos c36085e580 chore: fix TS warning by type narrowing
`req.csrfToken` might be undefined according to `csrf-csrf`
provided types, so use type narrowing to make sure it exists,
before calling it
2025-01-12 10:22:05 +01:00
Panagiotis Papadopoulos d20a3bab2a fix(csrfMiddleware): use sessionSecret instead
since `cookie-parser` is not configured with a secret,
req.secret is not set and hence is `undefined`,
which then is used as literal 'undefined' in the hashing function – making it less secure.

Instead we can use the existing sessionSecret:
the `csrf-csrf` developer confirmed in their Discord chat,
that it would be ok to use the same secret here.
2025-01-12 10:22:05 +01:00
Panagiotis Papadopoulos b787610717 refactor: replace csurf with csrf-csrf
I've kept the identical same settings as before –
however they are not *ideal* from what I read.
More secure settings will need to be tested a bit more thoroughly first and will be a separate PR.
2025-01-12 10:22:05 +01:00
Panagiotis Papadopoulos 5268aaee4f deps: replace csurf with csrf-csrf 2025-01-12 10:22:05 +01:00
renovate[bot] e3b8de8843 fix(deps): update dependency ts-loader to v9.5.2 2025-01-12 02:27:20 +00:00
renovate[bot] 0cf13ca559 fix(deps): update dependency mind-elixir to v4.3.6 2025-01-12 02:27:09 +00:00
Elian Doran cdf4a7385d Merge pull request #927 from pano9000/chore_package-lock
deps: update package-lock.json
2025-01-11 22:17:09 +02:00
Elian Doran c2dedc24af fix(build): webpack config for electron-forge 2025-01-11 18:58:51 +02:00
Elian Doran d8f775608c feat(editor): enable list styles 2025-01-11 18:26:28 +02:00
Elian Doran d25812cc3b fix(docker): not running due to missing file on Alpine 2025-01-11 18:14:23 +02:00
Elian Doran b2ca87d7e8 fix(docker): not running due to missing file 2025-01-11 17:59:41 +02:00
Elian Doran 25e0dc3355 fix(electron): copy dist not working due to missing lib 2025-01-11 17:04:07 +02:00
Elian Doran a8051b06fd chore(e2e): disable webkit for now 2025-01-11 16:36:24 +02:00
Elian Doran e442906265 chore(e2e): fix flaky tests 2025-01-11 16:22:09 +02:00
Panagiotis Papadopoulos 6885cc1399 deps: update package-lock.json 2025-01-11 14:57:37 +01:00
Elian Doran 9db9d412d9 feat(import/markdown): preserve language tags when possible 2025-01-11 15:22:36 +02:00
Elian Doran 0e67078256 feat(export/md): rewrite JavaScript code block languages 2025-01-11 14:11:18 +02:00
Elian Doran 09f36cac00 chore(e2e): add basic test for highlights list 2025-01-11 13:52:30 +02:00
Elian Doran 1530a09dc8 chore(e2e): check katex is rendered in ToC 2025-01-11 13:41:25 +02:00
Elian Doran b44f4e0f74 chore(e2e): add basic test for table of contents 2025-01-11 13:36:56 +02:00
Elian Doran 74b2643c28 chore(e2e): test eslint errors 2025-01-11 12:54:43 +02:00
Elian Doran db66998107 chore(e2e): test eslint warnings 2025-01-11 12:50:36 +02:00
Elian Doran dcc0e76e57 chore(e2e): add backend scripts with lint errors/warnings 2025-01-11 12:22:50 +02:00
Elian Doran 3f6b604b4e chore(e2e): set TriliumNext as default theme 2025-01-11 12:20:16 +02:00
Elian Doran 703a70056b feat(code_notes): reintroduce ESLint for server notes 2025-01-11 12:18:16 +02:00
Elian Doran 05529b84ab chore(client/ts): port options 2025-01-11 11:45:06 +02:00
Elian Doran 7e61af1cc3 chore(client/ts): port options/text_notes 2025-01-11 11:21:14 +02:00
Elian Doran 677760282c chore(client/ts): port options/other 2025-01-11 11:18:50 +02:00
Elian Doran 03241a8967 chore(client/ts): port options/images 2025-01-11 11:13:11 +02:00
Elian Doran 6665a8d97f chore(client/ts): port options/codeNotes 2025-01-11 11:11:57 +02:00
Elian Doran 552cc2753f chore(client/ts): port options/appearance 2025-01-11 11:02:22 +02:00
Elian Doran 5bfcf88acd chore(client/ts): port options/advanced 2025-01-11 10:51:35 +02:00
Elian Doran fcb7d9754f Merge pull request #908 from pano9000/fix_printthis_#901
fix(styles): fix ck-editor checkboxes not showing checkmark while printing
2025-01-11 01:51:51 +02:00
Elian Doran c94346c6b9 chore(client/ts): port widgets/buttons/launcher 2025-01-11 01:46:04 +02:00
Elian Doran 7e00b889a0 chore(client/ts): port api_log 2025-01-11 01:46:04 +02:00
Elian Doran 25cd18f6c8 Merge pull request #913 from TriliumNext/renovate/node-22.x
chore(deps): update node.js to v22.13.0
2025-01-11 01:39:33 +02:00
Elian Doran 4829d7eb14 Merge pull request #915 from TriliumNext/renovate/draggabilly-3.x
fix(deps): update dependency draggabilly to v3
2025-01-11 01:19:01 +02:00
Elian Doran 0494d4f046 Merge pull request #912 from TriliumNext/renovate/electron-33.x
chore(deps): update dependency electron to v33.3.1
2025-01-11 01:13:57 +02:00
Elian Doran 138d9a07a5 Merge branch 'develop' into renovate/draggabilly-3.x 2025-01-11 01:13:30 +02:00
Elian Doran 6ad7792ef3 fix(ci): fix authentication error in playwright 2025-01-11 01:04:20 +02:00
Elian Doran 963247f013 chore(playwright): set up server 2025-01-11 00:55:48 +02:00
Elian Doran 67bfd1dde6 Merge branch 'develop' into renovate/draggabilly-3.x 2025-01-11 00:50:58 +02:00
Elian Doran ab2a4d741d chore(ci): change playwright triggering conditions 2025-01-11 00:50:18 +02:00
renovate[bot] c7bc24ad02 fix(deps): update dependency draggabilly to v3 2025-01-10 22:46:40 +00:00
Elian Doran 497b6e0e2d Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2025-01-11 00:45:52 +02:00
Elian Doran 2bad89533f Merge pull request #914 from TriliumNext/renovate/draggabilly-2.x
fix(deps): update dependency draggabilly to v2.4.1
2025-01-11 00:45:43 +02:00
Elian Doran ec4cc0fc33 chore(e2e): add test for dragging to new window 2025-01-11 00:45:02 +02:00
Elian Doran 13d3429424 chore(e2e): add test for dragging tabs 2025-01-11 00:14:02 +02:00
Elian Doran ef8708ab2b Merge pull request #911 from TriliumNext/renovate/marked-15.x
fix(deps): update dependency marked to v15.0.6
2025-01-10 22:05:18 +02:00
Elian Doran e2628c58c5 chore(test): move spec to source dir 2025-01-10 22:04:04 +02:00
Elian Doran 36387deb0d chore(test): add test for markdown import 2025-01-10 22:03:08 +02:00
Elian Doran b1bb49c8e2 Merge remote-tracking branch 'origin/develop' into renovate/marked-15.x 2025-01-10 21:56:35 +02:00
Elian Doran 21b79119f7 Merge pull request #910 from TriliumNext/renovate/i18next-24.x
fix(deps): update dependency i18next to v24.2.1
2025-01-10 21:55:53 +02:00
Elian Doran 49675c758a Merge remote-tracking branch 'origin/develop' into renovate/i18next-24.x 2025-01-10 21:54:32 +02:00
Elian Doran 69fd215471 Merge pull request #916 from TriliumNext/renovate/jsdom-26.x
fix(deps): update dependency jsdom to v26
2025-01-10 21:51:51 +02:00
Elian Doran a05e174640 chore(test): add test for content_renderer#renderCode 2025-01-10 21:49:33 +02:00
Elian Doran f12057f799 Merge remote-tracking branch 'origin/develop' into renovate/jsdom-26.x 2025-01-10 21:30:27 +02:00
Elian Doran f026706e25 chore(test): fix typing errors in parser 2025-01-10 21:21:32 +02:00
Elian Doran 180af2ce30 fix(search): limit from UI not applied (closes #920) 2025-01-10 20:10:41 +02:00
Elian Doran 7ea324bc5b chore(test): fix circular reference in backend tests 2025-01-10 20:09:49 +02:00
Elian Doran 902c6f87a8 style(next): fix MIca on horizontal layout 2025-01-10 18:44:13 +02:00
Panagiotis Papadopoulos 01515bd580 fix(styles): fix ck-editor checkboxes not showing checkmark while printing
Due to CSS specificity using plain "input[checked]::before" does not
work.

fixes #901
2025-01-10 08:22:36 +01:00
renovate[bot] 2596b474ec fix(deps): update dependency jsdom to v26 2025-01-10 01:54:33 +00:00
renovate[bot] 10dd4b0c72 fix(deps): update dependency draggabilly to v2.4.1 2025-01-10 01:54:13 +00:00
renovate[bot] b1edafb092 chore(deps): update node.js to v22.13.0 2025-01-10 01:54:01 +00:00
renovate[bot] 4d169582e4 chore(deps): update dependency electron to v33.3.1 2025-01-10 01:53:56 +00:00
renovate[bot] 3039a09e64 fix(deps): update dependency marked to v15.0.6 2025-01-10 01:53:45 +00:00
renovate[bot] 1e548adb28 fix(deps): update dependency i18next to v24.2.1 2025-01-10 01:53:35 +00:00
Elian Doran 3568ea650f fix(deps): npm audit 2025-01-09 22:50:54 +02:00
Elian Doran eebecc1fa2 fix(deps): typescript to 5.7.3 2025-01-09 22:06:07 +02:00
Elian Doran 652648b563 fix(deps): npm audit 2025-01-09 22:05:20 +02:00
Elian Doran 5111f1760d chore(client/ts): port tab_row 2025-01-09 20:20:06 +02:00
Elian Doran 2080ce5123 refactor(libs): use webpack instead of hard-coded dependency 2025-01-09 19:23:47 +02:00
Elian Doran 324696bc54 refactor(ts): enable verbatim module syntax 2025-01-09 18:36:24 +02:00
Elian Doran 4cbb529fd4 chore(prettier): fix all files 2025-01-09 18:07:02 +02:00
Elian Doran 19ee861699 chore(prettier): disable single quote & enable bracket spacing 2025-01-09 18:06:58 +02:00
Elian Doran 71f763f39c Merge pull request #906 from pano9000/chore_prettier-json-tabWidth-override
chore(prettier): add override for *.json tab width to match .editorconfig
2025-01-09 17:56:15 +02:00
Panagiotis Papadopoulos 13feeb0626 chore(prettier): add override for json tabwitdth
use the same value as in the existing .editorconfig
2025-01-09 09:24:10 +01:00
Adorian Doran 0115ea8088 style(next): create a CSS file for form-related styles 2025-01-09 01:23:17 +02:00
Elian Doran 6cedd0381d Merge pull request #903 from TriliumNext/style/next/restyle-help-dialog-
Style Next: Restyle the help dialog
2025-01-09 00:38:16 +02:00
Elian Doran cefc6685e1 Merge pull request #902 from pano9000/deps_prettier
chore(prettier): add prettier as devDep and scripts
2025-01-09 00:33:20 +02:00
Adorian Doran e8fe290d89 style(next): tweak color 2025-01-09 00:15:59 +02:00
Adorian Doran ffd626d18e style(next): define the dark mode colors 2025-01-09 00:12:31 +02:00
Elian Doran 9f71e573aa chore(i18n): reach 100% translation for Romanian 2025-01-09 00:04:59 +02:00
Elian Doran eb7164528a feat(i18n): translate note map buttons 2025-01-09 00:04:09 +02:00
Adorian Doran 4ce2fb701f style(next): refactor 2025-01-09 00:01:02 +02:00
Elian Doran 947a7d1ad4 feat(i18n): translate note tree buttons 2025-01-08 23:54:22 +02:00
Adorian Doran 55048e36e7 style(next): add some translucency to the help dialog 2025-01-08 23:44:57 +02:00
Elian Doran 8fa0269070 feat(mention): allow cancelling mention, fixes #4692 2025-01-08 23:36:39 +02:00
Elian Doran c7fdaee8bc fix(mentions): regression in attribute autocomplete 2025-01-08 23:21:27 +02:00
Panagiotis Papadopoulos 2dab8b5145 chore: add initial .prettierignore 2025-01-08 22:19:51 +01:00
Panagiotis Papadopoulos d73356e7ec scripts: add prettier scripts 2025-01-08 22:15:04 +01:00
Adorian Doran ad77ff11ad style(next): add a cheat sheet-vibe to the help dialog 2025-01-08 22:32:12 +02:00
Adorian Doran e79c24872b client: add some margins to the help dialog 2025-01-08 22:30:10 +02:00
Adorian Doran c00c01dafb style(next): use distinct formatting for the "Markdown-like autoformatting" card 2025-01-08 22:04:55 +02:00
Adorian Doran c23890594f translations: replace the <kbd> tag with <code> for Markdown examples 2025-01-08 22:02:14 +02:00
Adorian Doran b86cd01169 style(next): turn "Only in desktop" into a subheading 2025-01-08 21:42:21 +02:00
Adorian Doran caf9b92db5 style(next): restyle the help cards 2025-01-08 21:35:43 +02:00
Elian Doran a8026c9ce3 refactor(editor): use submodule for ckeditor5-footnotes 2025-01-08 21:26:11 +02:00
Panagiotis Papadopoulos 2e0822f066 deps: add prettier as devDependency 2025-01-08 19:07:00 +01:00
Elian Doran bacba7d00b Merge pull request #900 from pano9000/refactor_views-windowGlobal-ejs-partial
refactor(views): use ejs partial for injecting window.glob
2025-01-08 19:11:32 +02:00
Elian Doran 706424e526 Merge pull request #899 from pano9000/fix_views-set_password
fix(views/set_password): various smaller fixes
2025-01-08 19:08:03 +02:00
Elian Doran 88c7a928cc Merge branch 'develop' of ssh://github.com/TriliumNext/Notes into develop 2025-01-08 12:28:28 +02:00
Panagiotis Papadopoulos 14358d1ec0 refactor(views): use ejs partial for injecting window.glob 2025-01-08 09:15:16 +01:00
Panagiotis Papadopoulos 5e91e39841 style(views/set_password): use bootstrap class for padding 2025-01-08 08:07:46 +01:00
Panagiotis Papadopoulos 5bfba405a1 fix(views/set_password): fix page title
I've added set_password.title – currently this
looks like a duplicate string to set_password.heading,
but there will be a separate change to this soon
2025-01-07 23:08:36 +01:00
Panagiotis Papadopoulos ee5a232d20 fix(views/set_password): fix "flash of unstyled content" 2025-01-07 22:50:19 +01:00
Panagiotis Papadopoulos 11415f5b2c fix(views/set_password): fix duplicate input id 2025-01-07 22:38:20 +01:00
Elian Doran 564f1b92d2 Merge pull request #897 from pano9000/style_views-login
style(views/login): add Trilium icon and improve style
2025-01-07 22:27:27 +02:00
Elian Doran d41fee8ade Merge pull request #896 from pano9000/refactor_view-login_JS
refactor(view/login): simplify JS
2025-01-07 22:20:20 +02:00
Elian Doran 6e38e91267 Merge pull request #893 from pano9000/fix_style_flash_login-view
fix(views/login): fix "flash of unstyled content"
2025-01-07 22:18:49 +02:00
Elian Doran c80299ec47 Merge pull request #892 from TriliumNext/perfectra1n-patch-2
Add timezone and localtime mounts to docker-compose
2025-01-07 22:16:47 +02:00
Panagiotis Papadopoulos 95165b6460 style(views/login): capitalize Trilium Login heading 2025-01-07 19:27:02 +01:00
Panagiotis Papadopoulos 9c03446a50 style(views/login): center heading to be in line w/ the logo 2025-01-07 19:20:05 +01:00
Panagiotis Papadopoulos fb68460435 style(views/login): add Trilium logo above heading 2025-01-07 19:18:03 +01:00
Panagiotis Papadopoulos 1bbfa08238 style(views/login): use bootstrap class for padding 2025-01-07 19:16:43 +01:00
Elian Doran 2e1b472500 style(next): improve code block style 2025-01-07 19:10:33 +02:00
Elian Doran b81c15c84c feat(ck-mermaid): support read-only mode 2025-01-07 18:53:35 +02:00
Elian Doran 19c90445fa feat(ck-mermaid): use default mermaid config 2025-01-07 18:24:14 +02:00
Elian Doran 4b35f8174c style(ck-mermaid): monospace font 2025-01-07 17:36:30 +02:00
Elian Doran 5d5a490312 fix(ck-mermaid): lazy loading if mermaid is not loaded 2025-01-07 17:27:34 +02:00
Elian Doran 1de6c7d5b2 feat(editor): inline mermaid diagrams 2025-01-07 17:07:08 +02:00
Elian Doran c1ea1fd608 fix(build): build errors 2025-01-07 14:58:19 +02:00
Elian Doran dafebc4aae style(share): improve footnote design 2025-01-07 14:48:26 +02:00
Elian Doran 5ffd8bc790 fix(share): footnotes not working 2025-01-07 14:43:12 +02:00
Elian Doran d6dedb1611 style(share): footnotes 2025-01-07 14:33:34 +02:00
Elian Doran 9a07ddac7d style(footnotes): improve for readonly notes 2025-01-07 14:32:16 +02:00
Elian Doran 1e80f264d9 style(next): improve footnote style 2025-01-07 14:05:08 +02:00
Elian Doran ba0b48d6dc feat(footnotes): clicking a reference navigates to footnote 2025-01-07 13:43:07 +02:00
Elian Doran eee22eaa1f feat(footnotes): clicking a footnote from the bottom list navigates to ref 2025-01-07 13:40:12 +02:00
Elian Doran 3f65fb83cb feat(note_tooltip): display tooltip of footnote reference 2025-01-07 13:27:19 +02:00
Elian Doran ab9769c93b chore(i18n): translate "Note has been deleted" 2025-01-07 12:44:30 +02:00
Elian Doran 1dcc839bab feat(highlights): ignore footnotes 2025-01-07 12:38:50 +02:00
Elian Doran 85c225fe05 chore(client/ts): port highlights_list 2025-01-07 12:34:10 +02:00
Elian Doran 0713b4aec8 chore(client/ts): port note_context_aware_widget 2025-01-07 11:55:20 +02:00
Elian Doran f3a18a9942 chore(client/ts): port abstract_button, command_button, onclick_button 2025-01-07 11:26:49 +02:00
Elian Doran 6905e1536e chore(client/ts): port abstract_button 2025-01-07 11:11:43 +02:00
Panagiotis Papadopoulos 15faf161b5 refactor(views/login): simplify userAgent matching
- there is no need to have the Regexp check done
in 2 separate tests – just do it once
- I also have ordered the userAgents by order of
"popularity", so (in theory) it should match faster
for most people this way
(although realistically you will not notice this at all)
2025-01-07 08:38:12 +01:00
Panagiotis Papadopoulos b44397a6bf refactor(views/login): add getDeviceType function 2025-01-07 08:29:56 +01:00
Panagiotis Papadopoulos 7ca4ed4369 fix(views/login): fix "flash of unstyled content"
move stylesheets to head of HTML to get rid of
"FOUC" aka "Flash of unstyled content"
2025-01-06 23:19:15 +01:00
Elian Doran 5a3a31ff1c style(next): fix background for launcher pane 2025-01-06 23:07:04 +02:00
Elian Doran e09eae5a4c fix(editor): footnote toolbar icon on dark theme 2025-01-06 21:48:21 +02:00
Elian Doran 8bebd0a798 feat(editor): add footnotes 2025-01-06 20:30:11 +02:00
Jon Fuller c64c72b773 Add timezone and localtime mounts to docker-compose 2025-01-06 10:02:11 -08:00
Elian Doran 37ce55506b feat(editor): update to CKEditor 43.2.0 2025-01-06 16:04:07 +02:00
Elian Doran 4d219723ae style(next): select Inter font for now 2025-01-05 18:24:23 +02:00
Elian Doran 2559d8f732 feat(editor): support geo-URIs 2025-01-05 17:28:28 +02:00
Elian Doran fd7b653534 Merge pull request #891 from 0Raptor/develop
Added support for RFC 5870 geo-URIs
2025-01-05 17:08:15 +02:00
Raptor 93af02942a Added support for RFC 5870 geo-URIs 2025-01-05 13:54:19 +01:00
Elian Doran 898ed49630 Merge pull request #882 from pano9000/chore_remove_tree-kill
chore(deps): remove unused tree-kill dependency
2025-01-05 13:18:01 +02:00
Elian Doran 6d41af98fd chore(types): allow containers to constrain children 2025-01-05 12:21:01 +02:00
Elian Doran 4cfb0d6161 fix(mobile): position of editing toolbar when keyboard is hidden 2025-01-05 10:52:26 +02:00
Elian Doran 4ee88c1e96 Merge pull request #887 from TriliumNext/renovate/better-sqlite3-11.x-lockfile
fix(deps): update dependency better-sqlite3 to v11.7.2
2025-01-05 10:46:39 +02:00
Elian Doran 820d72906d Merge pull request #888 from TriliumNext/renovate/better-sqlite3-11.x
fix(deps): update dependency better-sqlite3 to v11.7.2
2025-01-05 10:46:19 +02:00
Elian Doran a2afc5959f Merge pull request #889 from TriliumNext/renovate/mind-elixir-4.x
fix(deps): update dependency mind-elixir to v4.3.5
2025-01-05 10:45:26 +02:00
Elian Doran c6e4d4882a fix(mobile): dropdowns for editing toolbar 2025-01-05 03:06:52 +02:00
renovate[bot] 94813c2f49 fix(deps): update dependency mind-elixir to v4.3.5 2025-01-05 01:06:34 +00:00
renovate[bot] 7a8678e26f fix(deps): update dependency better-sqlite3 to v11.7.2 2025-01-05 01:06:23 +00:00
renovate[bot] deb7abac06 fix(deps): update dependency better-sqlite3 to v11.7.2 2025-01-05 01:06:08 +00:00
Elian Doran 955542a991 fix(mobile): positioning of the classic toolbar 2025-01-05 02:35:41 +02:00
Elian Doran c1280be74a fix(mobile): classic toolbar disappearing when pressing dropdowns 2025-01-05 01:49:29 +02:00
Elian Doran ef9e21147f fix(mobile): classic toolbar disappearing when pressing formatting buttons 2025-01-05 01:09:27 +02:00
Elian Doran 0c544666d8 fix(mobile): fix offset of the formatting bar 2025-01-05 00:57:52 +02:00
Elian Doran 90ec7919ba feat(mobile): improve positioning of jump to note 2025-01-05 00:24:25 +02:00
Elian Doran 57ed133c7f feat(mobile): bring jump to note to mobile 2025-01-04 23:43:15 +02:00
Elian Doran 336e298462 style(mobile): background for whole bottom area + fix alignment 2025-01-04 23:05:24 +02:00
Elian Doran 6e2444d74f style(mobile): add safe region for bottom 2025-01-04 22:56:23 +02:00
Elian Doran 5250a6d8da style(mobile): center launcher buttons 2025-01-04 22:49:11 +02:00
Elian Doran de7248b7ce feat(mobile): add back/forward buttons to launch bar 2025-01-04 22:43:51 +02:00
Elian Doran 65a14c62ac feat(mobile): render mobile visible launchers 2025-01-04 22:11:23 +02:00
Elian Doran e45052cead chore(client/ts): port launcher & launcher_container 2025-01-04 22:08:07 +02:00
Elian Doran 6966f92339 feat(mobile): use custom icon for configure launchbar 2025-01-04 22:00:39 +02:00
Elian Doran fa6d229ecf chore(client/ts): port spacer 2025-01-04 21:59:35 +02:00
Elian Doran c2315a9341 refactor(client): use common method for checking if launch bar config 2025-01-04 21:52:41 +02:00
Elian Doran cfeb4eb51f feat(client): add support for mobile launchers in hidden subtree 2025-01-04 21:46:52 +02:00
Elian Doran 100a80c17d feat(server): add subtree for mobile launchers 2025-01-04 21:46:22 +02:00
Elian Doran 027b52e785 feat(mobile): add very basic support for tabs 2025-01-04 21:03:03 +02:00
Elian Doran 42e4c7800a chore(client): remove logs 2025-01-04 20:21:57 +02:00
Panagiotis Papadopoulos c5a8b5b6d8 chore(deps): remove unused tree-kill dependency
code got removed with commit e393914,
but seems that the dependency remained as leftover
2025-01-04 19:07:03 +01:00
Elian Doran 11631687ff feat(client): add transparent background for status bar on tablets with desktop view 2025-01-04 20:04:02 +02:00
Elian Doran 657fa9402c feat(mobile): improve layout for settings 2025-01-04 19:26:22 +02:00
Elian Doran 33ce41bdd8 style(mobile): fix unequal right margin 2025-01-04 19:17:16 +02:00
Elian Doran a83931a421 fix(mobile): error when closing modals 2025-01-04 19:15:24 +02:00
Elian Doran 540c1b2207 refactor(client): remove unused property 2025-01-04 19:12:14 +02:00
Elian Doran 4175a69e37 chore(client/ts): port mobile_layout 2025-01-04 18:58:50 +02:00
Elian Doran b5d657071e feat(mobile): improve about dialog layout 2025-01-04 18:53:34 +02:00
Elian Doran 05a667f256 chore(client/ts): port help 2025-01-04 18:43:25 +02:00
Elian Doran 20b439b2cb feat(mobile): display help modal (closes #666) 2025-01-04 18:41:51 +02:00
Elian Doran d3096940f6 fix(mobile): text cropped in about dialog 2025-01-04 18:35:56 +02:00
Elian Doran dd8e73d8ca feat(mobile): display modals at the bottom of the screen 2025-01-04 18:30:27 +02:00
Elian Doran f7d3737cba feat(mobile): introduce about dialog 2025-01-04 18:24:05 +02:00
Elian Doran 874809254d chore(client/ts): port global_menu 2025-01-04 18:19:46 +02:00
Elian Doran 356cb2f12f fix(mobile): context menu and dropdowns for sidebar 2025-01-04 18:14:30 +02:00
Elian Doran fa30961c9e style: improve code block style for attachments 2025-01-04 17:29:54 +02:00
Elian Doran 3ad67a93c1 feat(attachments): render JSON content 2025-01-04 17:18:56 +02:00
Elian Doran 0bb573022a fix(server): improved handling for missing files on Firefox 2025-01-04 17:13:47 +02:00
Elian Doran 5ee6ba8cb0 fix(electron): pasting non-existing file crashes the editor (closes #881) 2025-01-04 16:56:26 +02:00
Elian Doran a025645972 fix(mobile): clicking sidebar backdrop to hide it 2025-01-04 14:38:48 +02:00
Elian Doran fb5391a243 fix(mobile): tree view not working on mobile 2025-01-04 14:34:53 +02:00
Elian Doran f909f84268 fix(mobile): launcher bar dropdown position on tablet view 2025-01-04 14:33:10 +02:00
Elian Doran c678d63d02 style(legacy): status bar color on mobile tablet 2025-01-04 14:29:02 +02:00
Elian Doran c130d77a74 style(mobile): improve content background 2025-01-04 14:27:23 +02:00
Elian Doran a3ac2629e9 style(next): improve status bar on tablet mode 2025-01-04 14:23:17 +02:00
Elian Doran a1acb69976 style(next): top border for launcher pane on mobile 2025-01-04 14:19:31 +02:00
Elian Doran 422395671d fix(mobile): launcher bar on top for tablet mode 2025-01-04 14:18:07 +02:00
Elian Doran 2e85e2adb5 style(next): tree for tablet mode 2025-01-04 14:17:17 +02:00
Elian Doran f63f308659 fix(mobile): layout on tablet mode 2025-01-04 14:14:45 +02:00
Elian Doran 7fc60bfc8f fix(mobile): swiping with very short gesture 2025-01-04 13:30:36 +02:00
Elian Doran cdfd2827e8 fix(mobile): scrolling within tree 2025-01-04 13:21:10 +02:00
Elian Doran 4dece78591 feat(mobile): improve closing the sidebar 2025-01-04 13:04:44 +02:00
Elian Doran ce56842353 chore(client/ts): port sidebar_container 2025-01-04 12:44:40 +02:00
Elian Doran 999977e32f fix(mobile): toggling sidebar sometimes doesn't work 2025-01-04 12:18:23 +02:00
Elian Doran ff2999db17 fix(mobile): sidebar randomly showing on taps 2025-01-04 12:09:18 +02:00
Elian Doran bf4decb4fb fix(server): compile errors after refactoring 2025-01-04 11:52:40 +02:00
Elian Doran d8358407ce chore(client/ts): port root_command_executor 2025-01-04 11:51:16 +02:00
Elian Doran 634be6bbb4 style(next): rounded corner for sidebar 2025-01-04 01:57:34 +02:00
Elian Doran 066db13c53 fix(mobile): sidebar toggle button 2025-01-04 01:54:01 +02:00
Elian Doran 16e9d74169 style(mobile): increase width of sidebar 2025-01-04 01:43:03 +02:00
Elian Doran ae34741f47 fix(mobile): fluent close of the sidebar 2025-01-04 01:21:53 +02:00
Elian Doran 87b7d8379b refactor(mobile): use constant for threshold 2025-01-04 01:06:18 +02:00
Elian Doran 60adc84248 fix(mobile): backdrop opacity jumping at start 2025-01-04 00:52:24 +02:00
Elian Doran 5b1540e12b feat(mobile): add back drop to sidebar 2025-01-04 00:50:11 +02:00
Elian Doran 17b60b21a9 fix(mobile): closing the sidebar 2025-01-04 00:25:59 +02:00
Elian Doran eb97c1e9e2 fix(mobile): prevent back on iOS 2025-01-04 00:22:16 +02:00
Elian Doran 73828a195b fix(mobile): sidebar shown on taps 2025-01-04 00:20:22 +02:00
Elian Doran aad5b6cdbd fix(mobile): spurious error when drag ends 2025-01-04 00:01:44 +02:00
Elian Doran c5004491f7 fix(mobile): transition when swiping open 2025-01-03 23:59:01 +02:00
Elian Doran 2c9ca397e4 feat(mobile): basic swipe mechanism for sidebar 2025-01-03 23:44:20 +02:00
Elian Doran 2b7d591822 fix(mobile): safe bottom margin for context menu 2025-01-03 22:31:29 +02:00
Elian Doran 33067e61e3 feat(client): add more monospace system fonts 2025-01-03 21:08:30 +02:00
Elian Doran 84a0e789f1 feat(client): add more system fonts 2025-01-03 20:59:13 +02:00
Elian Doran d34e575488 feat(client): add support for system font 2025-01-03 20:54:14 +02:00
Elian Doran dfc9cdb25a refactor(client): simplify font definition 2025-01-03 20:36:59 +02:00
Elian Doran 8667c0a686 refactor(server): split font route in two functions 2025-01-03 20:31:13 +02:00
Elian Doran 80af0899b8 chore(types): font families 2025-01-03 20:08:58 +02:00
Elian Doran 8a494b220b fix(client/fonts): grouping not working properly on iOS 2025-01-03 20:02:43 +02:00
Elian Doran a22afc4283 chore(i18n): translate generic fonts 2025-01-03 19:59:54 +02:00
Elian Doran c6b3cc7882 chore(i18n): translate font selection headings 2025-01-03 19:58:45 +02:00
Elian Doran 0304f1e5e9 feat(client/fonts): add more groups for fonts 2025-01-03 19:49:25 +02:00
Elian Doran 710a80aa26 feat(client/fonts): add groups for fonts 2025-01-03 18:55:45 +02:00
Elian Doran 639d118f41 chore(client/ts): port fonts 2025-01-03 18:44:19 +02:00
Elian Doran 428ffa7826 chore(client/ts): port options_widget 2025-01-03 18:40:52 +02:00
Elian Doran b6e97c1ae9 refactor(server): typed options 2025-01-03 18:32:09 +02:00
Elian Doran 2590a4cb05 Merge branch 'develop' of ssh://github.com/TriliumNext/Notes into develop 2025-01-03 17:52:30 +02:00
Elian Doran 2c469283f0 Merge pull request #879 from pano9000/refactor_utils_formatDownloadTitle
refactor(utils/formatDownloadTitle): simplify function
2025-01-03 17:23:32 +02:00
Elian Doran 52bbfbef05 Merge pull request #878 from TriliumNext/renovate/marked-15.x
fix(deps): update dependency marked to v15.0.5
2025-01-03 17:18:55 +02:00
Elian Doran 0ad1f3f446 Merge pull request #877 from TriliumNext/renovate/node-22.x
chore(deps): update dependency @types/node to v22.10.5
2025-01-03 17:02:10 +02:00
Panagiotis Papadopoulos 6da656cd67 refactor(formatDownloadTitle): simplify function
I've kept the "extension determination process" in a nested function,
that reuses the formatDownloadTitle arguments,
however it could also be refactored into an own util function later,
if it is ever required.

The for loop got replaced by the built functions in `mimeType`
2025-01-03 14:17:30 +01:00
Panagiotis Papadopoulos d173daa14e test(formatDownloadTitle): add basic test
for some reason this will not run well with `tsx -r esm` though
I've used the built-in node TS runner for now, which works:
`node  --experimental-transform-types`
2025-01-03 12:51:34 +01:00
renovate[bot] ca40c0eb32 chore(deps): update dependency @types/node to v22.10.5 2025-01-03 07:08:20 +00:00
renovate[bot] dd95de0424 fix(deps): update dependency marked to v15.0.5 2025-01-03 01:47:20 +00:00
Elian Doran 16aa27b1c6 Merge remote-tracking branch 'origin/develop' into develop 2025-01-03 01:16:57 +02:00
Elian Doran c03ca4eea7 chore(i18n): fix wrong translation of predefined font 2025-01-03 00:59:57 +02:00
Elian Doran a9ea3c8b63 refactor(server): typed keyboard action names 2025-01-03 00:59:38 +02:00
Elian Doran 7ad43ff38b Merge pull request #876 from pano9000/chore_remove_unused_request_dep
chore(deps): remove unused 'request'
2025-01-03 00:23:27 +02:00
Panagiotis Papadopoulos 9d48f80551 chore(deps): remove unused 'request' 2025-01-02 20:48:44 +01:00
Elian Doran 6825fe2e03 Merge pull request #875 from pano9000/refactor_isMac_isWin
refactor(utils): add isMac and isWindows util functions
2025-01-02 20:05:07 +02:00
Elian Doran 6a9c8ff8dd Merge pull request #874 from pano9000/refactor_sanitizeAttributeName
refactor(sanitizeAttributeName): simplify function and export
2025-01-02 20:01:50 +02:00
Panagiotis Papadopoulos ac77d20aaf refactor: use isMac and isWindows util funcs 2025-01-02 18:47:41 +01:00
Panagiotis Papadopoulos 13235a25b1 refactor(utils): add isMac and isWindows as util func 2025-01-02 18:45:41 +01:00
Panagiotis Papadopoulos d798388026 test(sanitizeAttributeNames): add basic test 2025-01-02 18:25:09 +01:00
Panagiotis Papadopoulos 1053da3e40 refactor(sanitizeAttributeNames): use a ternary operator 2025-01-02 18:25:09 +01:00
Panagiotis Papadopoulos afb91f82e1 refactor(sanitizeAttributeNames): directly export function
no need to wrap the exported function in an object first
2025-01-02 18:25:09 +01:00
Elian Doran 2556d51870 Merge pull request #873 from pano9000/refactor_use_Set
refactor(services): use Set instead of Arrays for faster lookups
2025-01-02 17:50:35 +02:00
Elian Doran d07aa0990b Merge pull request #872 from pano9000/refactor_utils-export
refactor(utils): use named exports for the utils functions
2025-01-02 17:48:43 +02:00
Panagiotis Papadopoulos baea3bdcdd refactor(services): use Set instead of Arrays for faster lookups 2025-01-02 14:59:26 +01:00
Panagiotis Papadopoulos 728037075f refactor(services): use named imports from utils
had rename the imports due to name clashes
2025-01-02 13:48:18 +01:00
Panagiotis Papadopoulos 7fe23c7ac2 refactor(services): use named imports from utils 2025-01-02 13:47:44 +01:00
Panagiotis Papadopoulos 3814621e1c reafctor(services/utils): export functions individually 2025-01-02 13:26:25 +01:00
Elian Doran 6fe4027a75 Merge pull request #871 from TriliumNext/feature/i18n-part8
Feature/i18n part8
2025-01-02 11:54:57 +02:00
Nriver 1ba66f0414 update Chinese translation and synchronize with English 2025-01-02 17:20:57 +08:00
Elian Doran 2d43d3a813 feat(mobile): prevent accidental zoom 2025-01-02 01:36:58 +02:00
Elian Doran 3913088451 feat(mobile): display editor toolbar only when focused 2025-01-02 01:21:30 +02:00
Elian Doran 795f715852 fix(mobile): full-height sidebar 2025-01-02 00:46:03 +02:00
Elian Doran f315457047 fix(mobile): bottom bar not always shown 2025-01-02 00:38:52 +02:00
Elian Doran f4607123f2 style(next): transparent note title on mobile 2025-01-02 00:07:09 +02:00
Elian Doran b11f2a6992 fix(mobile): position of classic toolbar on tablet view 2025-01-01 21:40:47 +02:00
Elian Doran a8f052071e Merge pull request #866 from pano9000/refactor_session_secret
refactor(session_secret): use existing randomSecureToken function
2025-01-01 21:27:14 +02:00
Elian Doran c482cef369 fix(mobile): sidebar not working in tablet view 2025-01-01 21:24:26 +02:00
Elian Doran 44ed840e78 Merge pull request #870 from TriliumNext/renovate/node-22.x
chore(deps): update dependency @types/node to v22.10.3
2025-01-01 12:08:19 +02:00
renovate[bot] 0b188ba22a chore(deps): update dependency @types/node to v22.10.3 2025-01-01 01:38:52 +00:00
Panagiotis Papadopoulos 79887d1ce0 refactor(session_secret): use existing randomSecureToken function
this also improves secret security,
as it uses a larger charset size
than the UPPERCASED HEX secret before
2024-12-31 11:22:18 +01:00
Elian Doran 8959b96f28 Merge pull request #862 from TriliumNext/renovate/katex-0.x
fix(deps): update dependency katex to v0.16.19
2024-12-30 20:52:20 +02:00
renovate[bot] d98a920154 fix(deps): update dependency katex to v0.16.19 2024-12-30 00:15:18 +00:00
Elian Doran 794750c91a Merge pull request #861 from pano9000/chore_fix-typo_protected-session-password
chore: fix typo in protected_session_password dialog
2024-12-29 12:57:12 +02:00
Elian Doran 2daa14b39b Merge pull request #860 from pano9000/i18n_fix-backed_up_to
i18n: improve translatability of database_backed_up_to string
2024-12-29 12:56:24 +02:00
Elian Doran 3c37d5d630 Merge pull request #859 from pano9000/i18n_translatable_duplicate_note_#825
i18n: make duplicate notes suffix translatable
2024-12-29 12:55:18 +02:00
Elian Doran 42c6c44924 Merge pull request #857 from pano9000/feat_i18n-kdb-tags-#820
i18n: make <kbd> tags translatable
2024-12-29 12:53:01 +02:00
Elian Doran e722b65620 Merge pull request #853 from TriliumNext/renovate/jquery.fancytree-2.x
fix(deps): update dependency jquery.fancytree to v2.38.4
2024-12-29 12:43:18 +02:00
Elian Doran 112cfffb67 Merge pull request #852 from hasecilu/i18n/Spanish
Update Spanish translation
2024-12-29 12:28:20 +02:00
Panagiotis Papadopoulos c695fcf10e chore: fix typo in protected_session_password dialog 2024-12-29 09:09:09 +01:00
Panagiotis Papadopoulos 4d63ae4c43 i18n: improve translatability of database_backed_up_to 2024-12-28 23:14:02 +01:00
Panagiotis Papadopoulos 256853a6f8 i18n: make duplicate notes suffix translatable 2024-12-28 22:41:40 +01:00
Panagiotis Papadopoulos 28bbbae529 i18n: move kbd tag to translation string (help.headings) 2024-12-28 20:17:12 +01:00
Panagiotis Papadopoulos 05b65da5b4 i18n: move kbd tag to translation string (help.collapseExpand) 2024-12-28 20:17:12 +01:00
Panagiotis Papadopoulos 1362ce6c32 i18n: move kbd tag to translation string (help.jumpToParentNote) 2024-12-28 20:17:12 +01:00
Panagiotis Papadopoulos 9bbb121792 i18n: move kbd tag to translation string (help.newTabNoteLink) 2024-12-28 20:17:12 +01:00
Panagiotis Papadopoulos 6e8e472400 i18n: move kbd tag to translation string (help.createEditLink) 2024-12-28 20:17:12 +01:00
Panagiotis Papadopoulos 9533554af7 i18n: move kbd tag to translation string (help.selectNote) 2024-12-28 20:17:12 +01:00
Panagiotis Papadopoulos 4849aefc71 i18n: move kbd tag to translation string (help.goUpDown) 2024-12-28 20:17:12 +01:00
Panagiotis Papadopoulos 32de793cc7 i18n: move kbd tag to translation string (add_link.button_add_link)
had to create a separate entry here, as the "add_link" property got reused in the dialog title and the button
2024-12-28 20:17:12 +01:00
Panagiotis Papadopoulos 69aad95e4a i18n: move kbd tag to translation string (launcher_context_menu) 2024-12-28 20:17:10 +01:00
Panagiotis Papadopoulos d8224be621 i18n: move kbd tag to translation string (search_definition.search_button)
here I've merged the two existing translations,
as it otherwise splits them up in an
awkward way for translations -
which also caused some mistranslations
already.
that way it also would've made it impossible to translate for RTL languages.
2024-12-28 20:09:00 +01:00
Panagiotis Papadopoulos 817b335d2f i18n: move kbd tag to translation string (protected_session.start_session_button) 2024-12-28 20:09:00 +01:00
Panagiotis Papadopoulos e24a80a3d1 i18n: move kbd tag to translation string (sort_child_notes.sort) 2024-12-28 20:09:00 +01:00
Panagiotis Papadopoulos 915b355abf i18n: move kbd tag to translation string (include_note.button_include) 2024-12-28 20:09:00 +01:00
Panagiotis Papadopoulos b41952a1e4 i18n: move kbd tag to translation string (tree-context-menu.open-in-a-new-tab) 2024-12-28 20:08:54 +01:00
Elian Doran 62696a4e0a feat(mobile): display classic toolbar above keyboard 2024-12-28 14:58:33 +02:00
Elian Doran b168d68f93 style(mobile): improve sidebar margins on iOS 2024-12-28 14:29:26 +02:00
Elian Doran cd0df29307 style(mobile): improve sidebar animation 2024-12-28 14:22:38 +02:00
Elian Doran 8568e4b898 fix(mobile): floating buttons appearing above sidebar 2024-12-28 14:14:09 +02:00
Elian Doran 24a9487c6f fix(mobile): toggling sidebar closes active note 2024-12-28 14:12:53 +02:00
Elian Doran 857f33db08 feat(mobile): add button to toggle sidebar 2024-12-28 14:11:58 +02:00
Elian Doran b00ca234f5 feat(mobile): implement dismiss region of sidebar 2024-12-28 13:56:20 +02:00
Elian Doran 61ccee27f2 feat(mobile): implement simple slide effect for tree 2024-12-28 13:46:08 +02:00
Elian Doran 748eedbbd2 refactor(client): remove unused variable 2024-12-28 13:32:03 +02:00
Elian Doran b2aa05cb9a style(next): reduce tree font size 2024-12-28 13:29:55 +02:00
Elian Doran 6112a65fe5 style(next): fix regression on desktop 2024-12-28 13:16:35 +02:00
Elian Doran 3ea26a46c5 fix(mobile): bottom margin on iOS 2024-12-28 12:24:57 +02:00
Elian Doran ba84cd0390 feat(mobile): improve layout on iOS 2024-12-28 11:57:13 +02:00
Elian Doran 192afff139 style(next): fix alignment of items with submenus 2024-12-28 11:46:57 +02:00
Elian Doran 59ba3bf2a6 feat(mobile): move launch bar at the bottom 2024-12-28 11:36:25 +02:00
Elian Doran ccc46dc410 style(next): fix hover background color on mobile 2024-12-28 11:36:10 +02:00
Elian Doran 9b842a721d style(next): fix submenu background on mobile 2024-12-28 11:33:37 +02:00
Elian Doran 7112441818 style(legacy): apply launcher context fixes on mobile 2024-12-28 11:21:19 +02:00
Elian Doran 68805ddd49 style(legacy): apply context menu fixes on mobile 2024-12-28 11:20:23 +02:00
Elian Doran 55fc2a3ebb fix(mobile): clicking notes on iOS 2024-12-28 11:12:14 +02:00
Elian Doran 04a3ed5642 fix(mobile): selecting random elements while context menu is shown 2024-12-28 11:07:44 +02:00
Elian Doran bd10babd1b fix(mobile): display of context menu on iOS 2024-12-28 11:01:05 +02:00
Elian Doran 12eff0fef5 style(next): toggle arrow on mobile 2024-12-28 10:39:45 +02:00
Elian Doran a28dff7525 fix(client): drop down no longer hiding when it should 2024-12-28 10:35:10 +02:00
Elian Doran 85f7d90c90 style(next): fix submenu background on mobile 2024-12-28 10:30:04 +02:00
Elian Doran e6afdc919d style(next): max height & scrollable dropdown menu 2024-12-28 10:24:05 +02:00
Elian Doran a2c652f108 fix(mobile): relayout would sometimes hide the context menu 2024-12-28 10:22:01 +02:00
Elian Doran 08ad954e9c fix(mobile): menu hiding when collapsing submenu 2024-12-28 10:04:53 +02:00
Elian Doran 01322c50ec feat(mobile): improve submenu triggering 2024-12-28 09:59:44 +02:00
Elian Doran 1eecf9a5c8 feat(mobile): context menu triggering 2024-12-28 09:50:19 +02:00
renovate[bot] 178d25db0e fix(deps): update dependency jquery.fancytree to v2.38.4 2024-12-28 00:45:45 +00:00
Elian Doran 0eca95cecb feat(next): improve position of submenus on mobile 2024-12-28 01:15:45 +02:00
Elian Doran b06959900f fix(next): improve context menu position on mobile 2024-12-28 01:12:30 +02:00
Elian Doran 23a8023f0b feat(mobile): force horizontal layout on mobile 2024-12-28 01:06:02 +02:00
Elian Doran fe9d98d248 feat(next): improve global menu layout on mobile 2024-12-28 01:02:46 +02:00
Elian Doran ed5add5954 style(next): improve global menu on mobile 2024-12-28 00:56:48 +02:00
Elian Doran e17697f41e fix(mobile): calendar not shown properly on horizontal layout (closes #783) 2024-12-28 00:46:21 +02:00
hasecilu c5878c6674 chore(code): add config for json files 2024-12-27 16:30:22 -06:00
hasecilu 0aa986d6ce chore(i18n): reach 100% for Spanish 2024-12-27 16:23:26 -06:00
Elian Doran b682192c7b chore(i18n): translate one more message 2024-12-28 00:15:58 +02:00
Elian Doran 35a054fac7 Merge pull request #845 from TriliumNext/renovate/typedoc-0.x
chore(deps): update dependency typedoc to v0.27.6
2024-12-27 11:55:22 +02:00
Elian Doran 661d25d9a1 Merge pull request #840 from TriliumNext/renovate/highlightjs-cdn-assets-11.x
fix(deps): update dependency @highlightjs/cdn-assets to v11.11.1
2024-12-27 11:54:21 +02:00
renovate[bot] 3490a33b5b chore(deps): update dependency typedoc to v0.27.6 2024-12-27 01:38:59 +00:00
renovate[bot] 5a856044c3 fix(deps): update dependency @highlightjs/cdn-assets to v11.11.1 2024-12-26 00:08:25 +00:00
Elian Doran 079265f5ca fix(client/ts): type error regarding note rows 2024-12-25 08:54:33 +02:00
Elian Doran 2e70aed490 Merge pull request #835 from TriliumNext/renovate/force-graph-1.x
fix(deps): update dependency force-graph to v1.47.2
2024-12-25 08:48:45 +02:00
renovate[bot] 02c2771fb3 fix(deps): update dependency force-graph to v1.47.2 2024-12-25 01:27:42 +00:00
Elian Doran 728695e016 feat(client/code-note): add support for HCL files (closes #771) 2024-12-23 22:51:41 +02:00
Elian Doran 064d270ff3 feat(client/text-note): add highlighting for batch files (closes #830) 2024-12-23 22:44:56 +02:00
Elian Doran 5153fb8aff feat(client/code-note): add support for batch files 2024-12-23 22:44:04 +02:00
Elian Doran 018be8c926 chore(client/ts): port components/shortcut_component 2024-12-23 21:47:36 +02:00
Elian Doran 8a47b2f5a8 chore(client/ts): port components/note_context 2024-12-23 15:16:41 +02:00
Elian Doran c06dc23ecf chore(client/ts): port components/mobile_screen_switcher 2024-12-23 14:21:43 +02:00
Elian Doran 68d4f9f507 chore(client/ts): port components/main_tree_executors 2024-12-23 14:14:38 +02:00
Elian Doran ec685db093 chore(client/ts): port components/app_context 2024-12-23 14:10:57 +02:00
Elian Doran 838dc521b1 chore(client/ts): port services/note_list_renderer 2024-12-23 11:00:10 +02:00
Elian Doran 9bdee7afff fix(client): unescaped HTML in bookmarked notes & folders 2024-12-22 22:23:26 +02:00
Elian Doran 0bad36b9f2 chore(client/ts): port utils/formatters 2024-12-22 22:16:00 +02:00
Elian Doran a349223e54 chore(client/ts): port widgets/attribute_editor 2024-12-22 21:59:08 +02:00
Elian Doran b01725101d refactor(client/ts): use filtered generics for context menu commands 2024-12-22 19:34:19 +02:00
Elian Doran 19652fbbce refactor(client/ts): use command names enum in context menu 2024-12-22 18:33:57 +02:00
Elian Doran f4e2973a0c chore(client/ts): port menus/tree_context_menu 2024-12-22 18:08:23 +02:00
Elian Doran dd4885e15c chore(client/ts): port menus/link_context_menu 2024-12-22 18:03:03 +02:00
Elian Doran 6140bb5d99 chore(client/ts): port menus/launcher_context_menu 2024-12-22 17:56:53 +02:00
Elian Doran a14d112a5c chore(client/ts): port menus/image_context_menu 2024-12-22 17:46:30 +02:00
Elian Doran eb9a55bf4f chore(client/ts): port menus/electron_context_menu 2024-12-22 17:44:50 +02:00
Elian Doran 6480ce9aaf chore(client/ts): remove redundant file 2024-12-22 17:33:33 +02:00
Elian Doran 10f8da8015 refactor(client/ts): use context_menu in note_type_chooser 2024-12-22 17:33:00 +02:00
Elian Doran 5f0ace2886 chore(client/ts): port menus/context_menu 2024-12-22 17:29:09 +02:00
Elian Doran 38752f0006 chore(client/ts): add snippet 2024-12-22 16:54:08 +02:00
Elian Doran c5fa865d9d chore(client/ts): port widgets/attribute_widgets/attribute_detail 2024-12-22 16:22:10 +02:00
Elian Doran 7a2b5e731e chore(code): fix more js & ts files 2024-12-22 15:45:54 +02:00
Elian Doran b321d99076 chore(code): fix editorconfig for src/public 2024-12-22 15:42:15 +02:00
Elian Doran ae90ff2df4 chore(env): add editorconfig to recommendations 2024-12-22 15:33:17 +02:00
Elian Doran 8b189dd10e chore(code): set up editorconfig 2024-12-22 15:32:52 +02:00
Elian Doran 2ec903893c Merge pull request #821 from TriliumNext/feature/client_typescript_port2
Port frontend to TypeScript (36.7% -> 48.5%)
2024-12-22 15:23:01 +02:00
Elian Doran b920fb24ba Merge pull request #273 from TriliumNext/feature/client_typescript_port1
Port frontend to TypeScript (0% -> 36.7%)
2024-12-22 15:17:00 +02:00
Elian Doran 854ac81637 Bump to 0.91.2-beta
/ Check Docker build (Dockerfile) (push) Failing after 43s
/ 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 42s
Release / Make Electron (x64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 32s
Release / Build Linux Server x86_64 (push) Failing after 40s
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
2024-12-22 14:45:20 +02:00
Elian Doran 4563366732 fix(client): delete modal crashing 2024-12-22 00:34:25 +02:00
Elian Doran 4e75ba78b4 fix(electron): not starting in dev mode 2024-12-22 00:28:17 +02:00
Elian Doran e88cbd5991 fix(client/ts): dropdowns not working after conversion 2024-12-22 00:10:02 +02:00
Elian Doran be0c80249e refactor(client/ts): use compact mappings for commands 2024-12-21 23:57:55 +02:00
Elian Doran 3bfb163a39 refactor(client/ts): use discriminated unions for triggering events 2024-12-21 23:54:47 +02:00
Elian Doran 4e3417482e refactor(client/ts): use discriminated unions for triggering commands 2024-12-21 23:47:18 +02:00
Elian Doran 9d4841306f refactor(client/ts): use separate interfaces for trigger data 2024-12-21 23:29:17 +02:00
Elian Doran be93380d03 fix(client/ts): build error 2024-12-21 23:17:59 +02:00
Elian Doran cde74faca9 chore(client/ts): port services/note_create 2024-12-21 23:17:57 +02:00
Elian Doran 88d5aa973c chore(client/ts): port widgets/note_type_chooser 2024-12-21 23:17:53 +02:00
Elian Doran 7565fdfd5c chore(client/ts): port services/mime_types 2024-12-21 23:17:51 +02:00
Elian Doran c93fcc6988 chore(client/ts): port services/mermaid 2024-12-21 23:17:48 +02:00
Elian Doran f4c73d45c7 chore(client/ts): port services/mac_init 2024-12-21 23:17:46 +02:00
Elian Doran a759c1fbd2 chore(client/ts): port services/link 2024-12-21 23:17:43 +02:00
Elian Doran 3df585c72a Merge remote-tracking branch 'origin/feature/client_typescript_port1' into feature/client_typescript_port2 2024-12-21 21:59:18 +02:00
Elian Doran e121e4298a chore(deps): revert changes to integrity in package lock 2024-12-21 21:36:39 +02:00
Elian Doran 1bfd1553e5 chore(deps): fix types in non-dev-dependencies 2024-12-21 21:32:48 +02:00
Elian Doran 791f9b16b0 Merge remote-tracking branch 'origin/develop' into feature/client_typescript_port1
; Conflicts:
;	package-lock.json
2024-12-21 21:30:32 +02:00
Elian Doran e7e763435e feat(client): use shared config which also fixes production builds 2024-12-21 21:22:27 +02:00
Elian Doran 0611a7aa15 Merge branch 'develop' of ssh://github.com/TriliumNext/Notes into develop 2024-12-21 21:14:17 +02:00
Elian Doran 5601c8a9ee Merge pull request #822 from TriliumNext/renovate/braintree-sanitize-url-7.x
fix(deps): update dependency @braintree/sanitize-url to v7.1.1
2024-12-21 21:14:13 +02:00
Elian Doran 09435b6711 chore(i18n): reach 100% for Romanian 2024-12-21 21:13:55 +02:00
Elian Doran 84bd854740 Merge pull request #823 from TriliumNext/renovate/i18next-24.x
fix(deps): update dependency i18next to v24.2.0
2024-12-21 21:10:09 +02:00
Elian Doran 301e4b6ea9 feat(i18n): translate new note title 2024-12-21 21:08:34 +02:00
Elian Doran dbe9e43ff1 Merge remote-tracking branch 'origin/develop' into feature/client_typescript_port1
; Conflicts:
;	package-lock.json
2024-12-21 20:47:07 +02:00
Elian Doran dd622f399a fix(client): remove redundant log 2024-12-21 20:46:20 +02:00
Elian Doran 09cc487e68 fix(client): error in trace when changing settings that requires refresh 2024-12-21 20:45:53 +02:00
Elian Doran c6d04b50fb chore(client/ts): fix build errors 2024-12-21 19:26:12 +02:00
Elian Doran 3d2d3b1106 chore(client/ts): port services/library_loader 2024-12-21 18:00:36 +02:00
Elian Doran 03b6ac450d chore(client/ts): port services/keyboard_actions 2024-12-21 17:55:22 +02:00
Elian Doran 476ce0545a chore(client/ts): port services/import 2024-12-21 17:50:18 +02:00
Elian Doran f15bebd330 chore(client/ts): port services/image 2024-12-21 17:48:27 +02:00
Elian Doran 14dd3a0021 chore(client/ts): port services/glob 2024-12-21 17:47:09 +02:00
Elian Doran 6e8fa6d757 chore(client/ts): port services/file_watcher 2024-12-21 17:42:48 +02:00
Elian Doran 45a652828e chore(client/ts): port widgets/dialogs/confirm 2024-12-21 17:39:14 +02:00
Elian Doran 1656acdb49 chore(client/ts): port widgets/dialogs/confirm 2024-12-21 17:32:50 +02:00
Elian Doran e54e8fdef8 chore(client/ts): port widgets/dialogs/prompt 2024-12-21 17:12:22 +02:00
Elian Doran 7fc4443206 chore(client/ts): port services/debounce 2024-12-21 17:00:36 +02:00
Elian Doran 911323c099 chore(client/ts): port services/clipboard 2024-12-21 16:48:14 +02:00
Elian Doran c0e9684f73 chore(client/ts): port services/bundle 2024-12-21 16:43:50 +02:00
Elian Doran c956d4358c chore(client/ts): port services/bulk_action 2024-12-21 16:36:16 +02:00
Elian Doran 05e49f77e6 chore(client/ts): remove unused type definition 2024-12-21 15:34:15 +02:00
Elian Doran efb17c9010 chore(client/ts): port services/branches 2024-12-21 15:34:07 +02:00
Elian Doran cc8f927718 chore(client/ts): port widgets/dialogs/delete_notes 2024-12-21 15:30:11 +02:00
Elian Doran 00870ba807 chore(client/ts): port widgets/basic_widget 2024-12-21 15:09:52 +02:00
Elian Doran 6f0d6a968d chore(client/ts): port bulk_actions/label 2024-12-21 15:05:41 +02:00
Elian Doran b14cb4e3ce chore(client/ts): port bulk_actions/note 2024-12-21 15:04:33 +02:00
Elian Doran 5bdb325e08 chore(client/ts): port bulk_actions/relations 2024-12-21 15:03:45 +02:00
Elian Doran ef4d2378f1 chore(client/ts): port services/content_renderer 2024-12-21 14:56:51 +02:00
Elian Doran 27ed750d48 chore(client/ts): port bulk_actions/add_relation 2024-12-21 14:39:42 +02:00
Elian Doran 6f32f21ac4 chore(client/ts): port services/note_tooltip 2024-12-21 14:38:25 +02:00
Elian Doran e889955e8b chore(client/ts): port services/note_autocomplete 2024-12-21 14:34:38 +02:00
Elian Doran 934a395f15 chore(client/ts): port bulk_actions/execute_script 2024-12-21 09:29:50 +02:00
Elian Doran ac75e72491 chore(client/ts): port bulk_actions/abstract_bulk_action 2024-12-21 09:26:37 +02:00
renovate[bot] 0d27937c95 fix(deps): update dependency i18next to v24.2.0 2024-12-21 01:13:20 +00:00
renovate[bot] 4a1c0cfda9 fix(deps): update dependency @braintree/sanitize-url to v7.1.1 2024-12-21 01:13:09 +00:00
Elian Doran 3db9076230 Merge pull request #818 from TriliumNext/renovate/webpack-cli-6.x
chore(deps): update dependency webpack-cli to v6
2024-12-21 00:13:57 +02:00
Elian Doran 1c22097ac0 Merge pull request #815 from TriliumNext/renovate/katex-0.x
fix(deps): update dependency katex to v0.16.18
2024-12-21 00:13:04 +02:00
Elian Doran 9ecffd3bfb Merge pull request #814 from TriliumNext/renovate/chokidar-4.x
fix(deps): update dependency chokidar to v4.0.3
2024-12-21 00:12:16 +02:00
Elian Doran 5bd28beee6 Merge pull request #816 from TriliumNext/renovate/sanitize-html-2.x
fix(deps): update dependency sanitize-html to v2.14.0
2024-12-21 00:11:18 +02:00
renovate[bot] ea42994292 chore(deps): update dependency webpack-cli to v6 2024-12-20 17:33:54 +00:00
Elian Doran 48dbb17ade fix(client): tabs not clickable due to z-index 2024-12-20 08:24:54 +02:00
Elian Doran 4505564f13 chore(client/ts): port services/note_types 2024-12-19 22:29:03 +02:00
Elian Doran f7dc9ea8e4 chore(client/ts): port services/protected_session 2024-12-19 22:25:48 +02:00
Elian Doran 214a71892d chore(client/ts): port services/render 2024-12-19 22:20:57 +02:00
Elian Doran f3a7de58d5 chore(client/ts): port services/resizer 2024-12-19 22:19:35 +02:00
Elian Doran 7c2002c589 chore(client/ts): port services/script_context 2024-12-19 22:16:06 +02:00
Elian Doran 650a116193 chore(client/ts): port services/frontend_script_api 2024-12-19 22:06:42 +02:00
Elian Doran 7b7980cefb chore(client/ts): port services/shortcuts 2024-12-19 21:03:38 +02:00
Elian Doran e8d1fe4e84 chore(client/ts): port services/sync 2024-12-19 20:58:50 +02:00
Elian Doran 52d7e613ec chore(client/ts): remove ported file 2024-12-19 20:57:54 +02:00
Elian Doran 36cb07b2f9 chore(client/ts): port services/search 2024-12-19 20:57:37 +02:00
Elian Doran 8454be0a6a chore(client/ts): display only js files in progress checker 2024-12-19 20:56:18 +02:00
Elian Doran 1548b2e3e4 chore(client/ts): fix errors in i18n 2024-12-19 20:52:43 +02:00
Elian Doran 924453cb6f chore(client/ts): fix errors in attributes 2024-12-19 20:51:47 +02:00
Elian Doran 8726cc62f3 chore(client/ts): fix errors in syntax_highlight 2024-12-19 20:47:55 +02:00
Elian Doran 9c90ffde9d chore(client/ts): fix errors in attribute_renderer 2024-12-19 20:47:02 +02:00
Elian Doran ffd609e0c5 chore(client/ts): fix errors related to autocomplete 2024-12-19 20:44:21 +02:00
Elian Doran e4053de735 chore(client/ts): enable server config to compile client as well 2024-12-19 20:44:07 +02:00
Elian Doran c8866d2669 chore(client/ts): port services/syntax_highlight 2024-12-19 20:27:27 +02:00
Elian Doran 8ec0efe5b3 chore(client/ts): fix another dependency to server 2024-12-19 20:14:48 +02:00
Elian Doran 9071a97730 chore(client/ts): fix one dependency to server 2024-12-19 20:03:38 +02:00
Elian Doran d9a1bd78b0 chore(client/ts): port services/attributes 2024-12-19 19:36:30 +02:00
Elian Doran 47aed18ff4 chore(client/ts): port services/i18n 2024-12-19 19:36:15 +02:00
Elian Doran 5d5a68170a chore(client/ts): port services/attribute_renderer 2024-12-19 19:23:07 +02:00
Elian Doran 5d4e7a16fd chore(client/ts): port services/attribute_parser 2024-12-19 19:21:02 +02:00
Elian Doran 39b82b4c98 chore(client/ts): port services/attribute_autocomplete 2024-12-19 19:15:28 +02:00
Elian Doran 21ae604307 chore(git): mark package-lock.json as auto-generated for GitHub 2024-12-19 19:14:19 +02:00
Elian Doran d34544acbf chore(deps): apply npm audit 2024-12-19 19:13:13 +02:00
Elian Doran ba6c6cb77f Merge remote-tracking branch 'origin/develop' into feature/client_typescript_port1
; Conflicts:
;	package-lock.json
2024-12-19 19:05:51 +02:00
Elian Doran 42a7556c55 fix(server): not running in prod due to webpack change 2024-12-19 18:16:46 +02:00
Elian Doran cb488eb333 style(next): improve global menu button on horizontal layout 2024-12-19 18:05:14 +02:00
Elian Doran ff465baaf2 style(next): keep calendar item pressed when popped up 2024-12-19 18:02:46 +02:00
Elian Doran 5b305af95d fix(client): icon disappearing when tab is focused 2024-12-19 09:04:53 +02:00
renovate[bot] 76cc29e2d6 fix(deps): update dependency sanitize-html to v2.14.0 2024-12-19 00:53:30 +00:00
renovate[bot] 464db49fae fix(deps): update dependency katex to v0.16.18 2024-12-19 00:53:20 +00:00
renovate[bot] 73156ad658 fix(deps): update dependency chokidar to v4.0.3 2024-12-19 00:53:10 +00:00
Elian Doran 818f961fe7 Merge pull request #813 from pano9000/feat_improve_labels_a11y_#790
feat(a11y): explicitly associate label and input elements
2024-12-19 01:12:00 +02:00
Elian Doran b3b7c4ebea fix(client): error when pressing template switch help (fixes #570) 2024-12-19 00:59:42 +02:00
Panagiotis Papadopoulos 6a044ee848 feat(a11y): explicitly associate label and input elements 2024-12-18 23:56:50 +01:00
Elian Doran 1a5e2519df feat(client): toggle left pane automatically when configuring launchbar 2024-12-18 23:19:07 +02:00
Elian Doran a9640fbee7 fix(client): tooltips not working in ribbon (closes #795) 2024-12-18 22:58:54 +02:00
Elian Doran 9dd296f83c fix(client): quick search down arrow not working on no results (closes #798) 2024-12-18 22:54:52 +02:00
Elian Doran a2c287e8b8 fix(client): clicking icons in tabs (closes #812) 2024-12-18 22:45:52 +02:00
Elian Doran dd67887b37 Merge pull request #809 from TriliumNext/renovate/i18next-24.x
fix(deps): update dependency i18next to v24.1.2
2024-12-18 15:01:16 +02:00
Elian Doran 2355abf8dc Merge pull request #810 from TriliumNext/renovate/katex-0.x
fix(deps): update dependency katex to v0.16.17
2024-12-18 14:53:52 +02:00
renovate[bot] f4a31071cd fix(deps): update dependency katex to v0.16.17 2024-12-18 00:56:37 +00:00
renovate[bot] ca384adc70 fix(deps): update dependency i18next to v24.1.2 2024-12-18 00:56:25 +00:00
Elian Doran e8071e5290 Merge pull request #808 from pano9000/chore_update-package-lock
chore(deps): update package-lock.json
2024-12-18 00:46:03 +02:00
Elian Doran 907a27ae9d refactor(export): simplify code 2024-12-17 23:45:37 +02:00
Elian Doran f02cca7385 chore(test): test for no language tag for codeblock export 2024-12-17 23:42:31 +02:00
Elian Doran 2fbdec4448 feat(export/md): remove trilium language tag for code blocks 2024-12-17 23:40:39 +02:00
Elian Doran eee21f3741 feat(export/md): rewrite language tag to a more common syntax 2024-12-17 23:35:08 +02:00
Elian Doran ba95caaf6d chore(test): add template literal for trimming indentation 2024-12-17 23:08:17 +02:00
Panagiotis Papadopoulos a24f039686 chore(deps): update package-lock.json 2024-12-17 20:28:20 +01:00
Elian Doran 7bae719309 Merge pull request #802 from TriliumNext/style/next/restyle-jump-to-note-
Style Next: Restyle the "Jump to Note" dialog
2024-12-17 19:25:17 +02:00
Elian Doran 179b14eb07 Merge pull request #801 from pano9000/fix_794_aria-label-i18n
i18n: localize hardcoded English aria-labels
2024-12-17 19:21:55 +02:00
Elian Doran 82676a4d97 Merge pull request #800 from TriliumNext/feat/themes/color-scheme-preference
Color scheme selection
2024-12-17 19:19:13 +02:00
Elian Doran e7711ce408 Merge pull request #787 from CobriMediaJulien/develop
Fixing Bugs and introduce better library support in canvas note
2024-12-17 19:09:40 +02:00
Elian Doran aa5f1c928b Merge pull request #803 from TriliumNext/renovate/chokidar-4.x
fix(deps): update dependency chokidar to v4.0.2
2024-12-17 18:55:32 +02:00
renovate[bot] ae7c78e382 fix(deps): update dependency chokidar to v4.0.2 2024-12-17 00:56:45 +00:00
Adorian Doran 1859a247ec style(next): jump to note: change the mouse cursor for list items 2024-12-17 02:18:21 +02:00
Adorian Doran af8e664b54 style(next): jump to note: tweak the search box buttons 2024-12-17 02:04:19 +02:00
Adorian Doran bc5fde54d5 style(next): jump to note: improve appearance 2024-12-17 01:38:55 +02:00
Adorian Doran 99e78aae8c style(next): jump to note: restyle the dialog and list items 2024-12-17 00:37:06 +02:00
Panagiotis Papadopoulos 42169d830f i18n: localize aria-label (note_type_chooser) 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos f655eb860c i18n: localize aria-label (move_to) 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos 30756f692d i18n: localize aria-label (markdown_import) 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos 4617eaa7fe i18n: localize aria-label (prompt) 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos fc3a0bf527 i18n: localize aria-label (recent_changes) 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos 6f5bd8afeb i18n: localize aria-label (revisions) 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos e0e96f17fd i18n: localize aria-label (sort_child_notes) 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos bbb111164f i18n: localize aria-label (jumpt_to_note) 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos 2b22b8ea99 i18n: localize aria-label (delete_notes) 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos 3d18f56c33 i18n: localize aria-label (password_not_set) 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos 97c5d2e80f i18n: localize aria-label (confirm) 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos 9861132373 i18n: localize aria-label (include_note) 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos ccb6508f3a i18n: localize aria-label 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos 98769fd5c3 i18n: localize aria-label 2024-12-16 23:30:59 +01:00
Panagiotis Papadopoulos ebb53d77c5 i18n: localize aria-label 2024-12-16 23:30:59 +01:00
Adorian Doran 9c9c3f90dc client: add Romanian translation 2024-12-16 23:47:01 +02:00
Adorian Doran 608ac5f561 style(next): remove useless CSS import 2024-12-16 23:06:23 +02:00
Adorian Doran 85cf7c0212 Merge pull request #799 from pano9000/chore_fix-typo-trillium
(chore): fix typo Trillium
2024-12-16 22:53:43 +02:00
Adorian Doran 8c17be8953 client: rename the "System" theme to "Auto" 2024-12-16 22:16:26 +02:00
Adorian Doran aba2813682 client: add the "System" theme 2024-12-16 22:09:26 +02:00
Adorian Doran 1c3643695c client: split the Next theme into three separate themes, each dedicated to a specific color scheme 2024-12-16 21:49:09 +02:00
Adorian Doran 3390a2a968 client: add color scheme-related variations of the Next theme 2024-12-16 21:13:29 +02:00
Panagiotis Papadopoulos a30db37ded chore(images): fix Trillium typo in title svg tag
using double 'L' instead of single 'L'
2024-12-16 20:02:33 +01:00
Panagiotis Papadopoulos 522bf92134 chore(i18n): fix Trillium typo
using double 'L' instead of single 'L'
2024-12-16 20:01:06 +01:00
Elian Doran cd9af1c4ec Merge pull request #792 from TriliumNext/renovate/express-rate-limit-7.x
fix(deps): update dependency express-rate-limit to v7.5.0
2024-12-16 18:24:45 +02:00
Elian Doran 1d7e47b40d Merge pull request #791 from TriliumNext/renovate/marked-15.x
fix(deps): update dependency marked to v15.0.4
2024-12-16 18:23:16 +02:00
Elian Doran 6783d9833b chore(client): remove redundant log in sync status 2024-12-16 09:05:44 +02:00
renovate[bot] 8f2272f476 fix(deps): update dependency express-rate-limit to v7.5.0 2024-12-16 00:11:57 +00:00
renovate[bot] 44d3633004 fix(deps): update dependency marked to v15.0.4 2024-12-16 00:11:47 +00:00
Elian Doran 7361614ccc Merge remote-tracking branch 'origin/develop' into feature/client_typescript_port1 2024-12-15 20:25:41 +02:00
Elian Doran 3f22981720 Merge pull request #789 from hasecilu/i18n/Spanish
Update Spanish translation
2024-12-15 20:08:51 +02:00
hasecilu adc92d84b3 chore(i18n): update Spanish translation 2024-12-15 12:01:07 -06:00
hasecilu d2d12ff12a fix(i18n): Capitalization 2024-12-15 12:01:07 -06:00
CobriMediaJulien c419818006 Update battachment.ts typo 2024-12-15 16:54:39 +01:00
CobriMediaJulien d9d3613caf Update battachment.ts to fix bug that prevents loading library items 2024-12-15 16:41:36 +01:00
CobriMediaJulien e64e51c078 Update utils.ts to fix backend bug that prevented library items from loading 2024-12-15 15:56:10 +01:00
CobriMediaJulien 3ed9f4e056 Update sattachment.ts -> Fix backend bug that prevented library items from loading 2024-12-15 15:54:26 +01:00
CobriMediaJulien ee4fe05cd1 Update canvas.js
Improvement of canva library feature. Now u can delete items and manage your library in the UI.
2024-12-15 15:51:11 +01:00
CobriMediaJulien 1893195f2f Merge branch 'TriliumNext:develop' into develop 2024-12-15 15:36:44 +01:00
Elian Doran d2ef7bfe48 Merge pull request #777 from TriliumNext/renovate/highlightjs-cdn-assets-11.x
fix(deps): update dependency @highlightjs/cdn-assets to v11.11.0
2024-12-15 11:06:37 +02:00
Elian Doran 48f94a3797 Merge pull request #776 from TriliumNext/renovate/typedoc-0.x
chore(deps): update dependency typedoc to v0.27.5
2024-12-15 10:45:59 +02:00
Elian Doran bf1e832d3b chore(docs): update frontend docs 2024-12-15 10:44:40 +02:00
renovate[bot] bb6011ca86 fix(deps): update dependency @highlightjs/cdn-assets to v11.11.0 2024-12-15 00:52:09 +00:00
renovate[bot] f46e0c0367 chore(deps): update dependency typedoc to v0.27.5 2024-12-15 00:51:56 +00:00
Elian Doran bc756b1450 Merge remote-tracking branch 'origin/develop' into feature/client_typescript_port1 2024-12-14 11:12:25 +02:00
Elian Doran f67e757405 chore(i18n): translate multibar toolbar string 2024-12-14 11:12:15 +02:00
Elian Doran 31a8d7dc9f fix(client): import to bootstrap modal 2024-12-14 10:40:28 +02:00
Elian Doran 80afac902a chore(build): fix path to tsconfig 2024-12-14 10:37:01 +02:00
Elian Doran 9fd288fe7e chore(build): integrate TypeScript into webpack 2024-12-14 10:25:25 +02:00
Elian Doran c5d77df387 Merge remote-tracking branch 'origin/develop' into feature/client_typescript_port1 2024-12-14 10:10:23 +02:00
Elian Doran 5ea5bfdb59 feat(build): run only in dev mode 2024-12-14 10:10:10 +02:00
Elian Doran b3b8ae4a0e feat(build): integrate webpack middleware 2024-12-14 10:05:38 +02:00
Elian Doran 9e661ed684 chore(build): separate tsconfig for public 2024-12-14 09:56:04 +02:00
Elian Doran 483b543272 fix(build): type errors due to new development 2024-12-14 09:43:16 +02:00
Elian Doran 66ccc5fe2f Merge remote-tracking branch 'origin/develop' into feature/client_typescript_port1 2024-12-14 09:27:51 +02:00
Elian Doran 3e710fbdf5 fix(build): linux server failing due to missing legacy deps
/ Check Docker build (Dockerfile) (push) Failing after 39s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 31s
/ 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 31s
Release / Make Electron (x64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 34s
Release / Build Linux Server x86_64 (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
2024-12-14 08:56:38 +02:00
Elian Doran adf676253d chore(build): bump to 0.91.1-beta 2024-12-14 08:53:12 +02:00
Elian Doran 2bfdc755f1 style(next): fix redundant dropdown arrow in calendar 2024-12-14 04:01:12 +02:00
Elian Doran 74f833f7b2 fix(calendar): don't trigger dropdown refresh 2024-12-14 03:58:11 +02:00
Elian Doran 95084c9a80 style(next): improve calendar month selector style 2024-12-14 03:54:33 +02:00
Elian Doran c8ae0891bc feat(calendar): use bootstrap dropdown instead of select 2024-12-14 03:50:42 +02:00
Elian Doran 639936dffe style(next): fix blur in nested submenus 2024-12-14 03:22:16 +02:00
Elian Doran b872ad0c25 feat(theme): add description for #appThemeBase 2024-12-14 02:35:49 +02:00
Elian Doran b2b41edd61 feat(theme): allow using next as base theme 2024-12-14 02:30:23 +02:00
Elian Doran 43567525e3 feat(jump-to-note): ignore ~internalLink (closes #713) 2024-12-14 02:07:00 +02:00
Elian Doran 9494362fb0 chore(i18n): reach 100% in Romanian 2024-12-14 01:54:50 +02:00
Elian Doran dd2ae28422 chore(i18n): translate note autocomplete in Romanian 2024-12-14 01:51:29 +02:00
Elian Doran c95e478595 feat(i18n): add translation for note_autocomplete 2024-12-14 01:48:56 +02:00
Elian Doran 0f1a98795f fix(client): "Go to note" button in note_autocomplete not working (closes #732) 2024-12-14 01:40:20 +02:00
Elian Doran ec16052e7b chore(deps): update mermaid-elk to 0.1.7 2024-12-14 01:28:06 +02:00
Elian Doran f30c35f0f2 feat(classic-toolbar): allow user to toggle multiline toolbar 2024-12-14 01:24:29 +02:00
Elian Doran 65deec5861 feat(text-note): add Terraform HCL support for code blocks 2024-12-14 01:07:53 +02:00
Elian Doran b82634b39b chore(deps): add terraform for highlight.js 2024-12-14 01:06:35 +02:00
Elian Doran 27aa50d8af chore(deps): update @types/archiver to 6.0.3 2024-12-14 00:24:09 +02:00
Elian Doran ef361aec41 chore(deps): update eslint to 9.17.0 2024-12-14 00:23:38 +02:00
Elian Doran 3d18c0a059 chore(deps): mark csurf as deprecated 2024-12-14 00:23:15 +02:00
Elian Doran ad221a064d chore(deps): update nodemon to 3.1.9 2024-12-14 00:21:43 +02:00
Elian Doran 6e91c01837 chore(deps): update force-graph to 1.47.1 2024-12-14 00:20:56 +02:00
Elian Doran 1e2aa3c52d style(next): improve settings layout slightly 2024-12-13 23:52:35 +02:00
Elian Doran 6703fa7a0c style(next): use lighter weight for titles 2024-12-13 23:46:54 +02:00
Elian Doran 74c10dff05 fix(native-buttons): fix background difference on modals 2024-12-13 23:30:31 +02:00
Elian Doran 2babc680a8 fix(client): alignment of sync tooltip on horizontal layout 2024-12-13 22:43:58 +02:00
Elian Doran f96a3ce32e fix(server): HTTP streaming notes with unicode names (closes #757) 2024-12-13 22:05:05 +02:00
CobriMediaJulien 24d5311b9f Update note_content_fulltext.ts
Mindmap search works now
2024-12-13 13:28:58 +01:00
Elian Doran 0ca2d5e0b0 style(next): fix launcher pane context menu 2024-12-13 11:03:01 +02:00
Elian Doran 1b29c81ceb Merge pull request #767 from pano9000/develop
chore(docker-compose): add remark about UFW issues
2024-12-13 08:44:04 +02:00
Elian Doran 68fda768e7 Merge pull request #769 from TriliumNext/style/next/recent-changes-section
Style Next: Improve the styling of the "Recent Changes" list
2024-12-13 08:43:27 +02:00
Adorian Doran a8a82e7425 style(next): recent changes list: optimize 2024-12-13 03:24:21 +02:00
Adorian Doran 008e3a4dd8 client: recent changes list: make possible to use a distinct style for note titles 2024-12-13 03:21:32 +02:00
Adorian Doran 7be83f78c2 style(next): recent changes list: remove the dash between time and note title 2024-12-13 03:19:27 +02:00
Adorian Doran 04e96eefe4 style(next): recent changes list: use a strikethrough text for deleted notes 2024-12-13 03:16:36 +02:00
Adorian Doran 0b266393b5 client: recent changes list: make possible to use a distinct style for the title of deleted notes 2024-12-13 03:11:23 +02:00
Adorian Doran b41dab090f style(next): recent changes list: disable the item hover effect on deleted notes 2024-12-13 03:03:50 +02:00
Adorian Doran 5d4dd8bc0a client: recent changes list: make possible to use a distinct style for items referencing deleted notes 2024-12-13 02:59:04 +02:00
Adorian Doran 5caf4c2461 client: recent changes list: properly handle clicks on items referencing deleted notes 2024-12-13 02:48:33 +02:00
Adorian Doran 0417a6e144 style(next): recent changes list: rename CSS variables 2024-12-13 02:41:52 +02:00
Adorian Doran 58c0306224 style(next): recent changes list: tweak items 2024-12-13 02:36:29 +02:00
Adorian Doran fff0c5cea0 style(next): recent changes list: make the "undelete" links look again like a link 2024-12-13 02:31:52 +02:00
Adorian Doran cd30d7dd0f style(next): recent changes list: remove the item border 2024-12-13 02:17:57 +02:00
Adorian Doran 6e1cfdbb89 client: recent changes list: make the whole item clickable, not just the note title 2024-12-13 02:11:51 +02:00
Adorian Doran aee8749bac client: recent changes list: remove the dash between the time and the note title from markup 2024-12-13 01:53:04 +02:00
Adorian Doran 556baf2782 style(next): recent changes list: tweak timeline connector on item hover 2024-12-13 01:45:31 +02:00
Adorian Doran 1410a6cf7a style(next): recent changes list: add a hover effect for items 2024-12-13 01:19:12 +02:00
Adorian Doran 6f75932015 style(next): recent changes list: improve the layout of the list items 2024-12-13 00:10:49 +02:00
Panagiotis Papadopoulos 3cda3987db chore(docker-compose): add remark about UFW issues
closes #766
2024-12-12 21:18:18 +01:00
Elian Doran 346ae7d815 Merge pull request #763 from TriliumNext/style/next/tree-settings-panel
Style Next: Restyle the tree settings popup
2024-12-12 08:45:12 +02:00
Elian Doran 62e797a3aa Merge pull request #760 from TriliumNext/style/next/restyle-tree-actions
Style Next: Restyle the tree action buttons
2024-12-12 08:43:42 +02:00
Elian Doran 8e87a9eb24 Merge pull request #762 from TriliumNext/renovate/i18next-24.x
fix(deps): update dependency i18next to v24.1.0
2024-12-12 08:42:29 +02:00
Elian Doran 6735569f7d Merge pull request #761 from TriliumNext/renovate/node-22.x
chore(deps): update dependency @types/node to v22.10.2
2024-12-12 08:32:03 +02:00
Adorian Doran 87dcdcacc3 style(next): tree actions toolbar: gracefully handle when the floating button overlaps with the tree item action buttons 2024-12-12 02:52:18 +02:00
Adorian Doran 0670c44c45 Merge branch 'develop' into style/next/restyle-tree-actions 2024-12-12 02:16:08 +02:00
Adorian Doran 350219361b style(next): correct section name 2024-12-12 02:09:48 +02:00
Adorian Doran 92f27e06de style(next): restyle the tree settings popup 2024-12-12 02:06:26 +02:00
renovate[bot] 41fa67f7a1 fix(deps): update dependency i18next to v24.1.0 2024-12-12 00:05:34 +00:00
renovate[bot] dcda2bc5d6 chore(deps): update dependency @types/node to v22.10.2 2024-12-12 00:05:25 +00:00
Adorian Doran eb30cb7303 client: add a heading to the tree settings panel 2024-12-12 01:46:43 +02:00
Adorian Doran e4b1f56a5e style(next): tree actions toolbar: fix icon alignment in certain conditions 2024-12-12 01:29:14 +02:00
Adorian Doran a7e000035d style(next): tree actions toolbar: fix the user being unable to activate the action button for the last item 2024-12-12 01:07:18 +02:00
Adorian Doran 9d7caaae96 style(next): tree actions toolbar: tweak transitions 2024-12-12 00:59:48 +02:00
Adorian Doran 336f978add style(next): tree actions toolbar: relocate variable declarations 2024-12-12 00:50:28 +02:00
Adorian Doran 8b9d4ed106 style(next): tree actions toolbar: improve styling 2024-12-12 00:49:05 +02:00
Adorian Doran 9ce97decf2 style(next): overhaul the tree actions toolbar 2024-12-12 00:31:19 +02:00
Elian Doran e41b4e18e1 Merge pull request #759 from TriliumNext/feat/client/format-note-paths
Format note paths
2024-12-11 23:54:30 +02:00
Adorian Doran 5126cd4a6c style(next): tweak the paths displayed in the search section 2024-12-11 22:30:04 +02:00
Adorian Doran 0a02c2538c style(next): use a better layout for the paths displayed in the "Recent Changes" section 2024-12-11 22:26:19 +02:00
Elian Doran 6f2b91f76e style(next): explore showing tree actions on hover only 2024-12-11 21:40:17 +02:00
Elian Doran 92b639d7dc style(next): add back tree options 2024-12-11 21:36:11 +02:00
Elian Doran 1833894004 chore(backend-docs): update after new library added 2024-12-11 19:34:34 +02:00
Elian Doran 84d1738085 Merge remote-tracking branch 'origin/develop' into kleutzinger-forks/develop 2024-12-11 19:29:34 +02:00
Elian Doran 6117b9b372 Merge pull request #749 from TriliumNext/renovate/compression-1.x
fix(deps): update dependency compression to v1.7.5
2024-12-11 19:24:10 +02:00
Elian Doran 6cfe0956ae Merge pull request #750 from TriliumNext/renovate/jsdom-25.x
fix(deps): update dependency jsdom to v25.0.1
2024-12-11 19:22:30 +02:00
Elian Doran d44f4acc45 Merge pull request #751 from TriliumNext/renovate/mime-types-2.x-lockfile
fix(deps): update dependency mime-types to v2.1.35
2024-12-11 19:20:43 +02:00
Elian Doran c2e87f08be Merge pull request #754 from TriliumNext/renovate/better-sqlite3-11.x-lockfile
fix(deps): update dependency better-sqlite3 to v11.7.0
2024-12-11 19:20:13 +02:00
Elian Doran 53b3ef163b Merge pull request #748 from TriliumNext/renovate/jsdoc-4.x
chore(deps): update dependency jsdoc to v4.0.4
2024-12-11 18:49:18 +02:00
Elian Doran 02ce82eaf5 chore(backend-docs): solve a few warnings 2024-12-11 18:47:19 +02:00
Elian Doran 3fe4608ff6 chore(backend-docs): process with typedoc 2024-12-11 18:44:45 +02:00
Elian Doran 6bbff3efd8 chore(frontend-docs): fix warnings & update 2024-12-11 18:31:29 +02:00
Elian Doran 1fa2758464 Merge remote-tracking branch 'origin/develop' into renovate/jsdoc-4.x 2024-12-11 18:25:12 +02:00
Elian Doran 791a7c7fcd Merge pull request #756 from TriliumNext/renovate/eslint-monorepo
fix(deps): update dependency eslint to v9.16.0
2024-12-11 18:23:40 +02:00
Elian Doran e85da342d1 Merge pull request #752 from TriliumNext/renovate/mind-elixir-4.x
fix(deps): update dependency mind-elixir to v4.3.3
2024-12-11 18:22:10 +02:00
renovate[bot] f84b923f8b fix(deps): update dependency better-sqlite3 to v11.7.0 2024-12-11 16:19:40 +00:00
Elian Doran 62c386ee9e Merge pull request #755 from TriliumNext/renovate/electron-debug-4.x
fix(deps): update dependency electron-debug to v4.1.0
2024-12-11 18:18:29 +02:00
Elian Doran c0895d5b35 Merge pull request #747 from TriliumNext/renovate/ws-8.x
chore(deps): update dependency @types/ws to v8.5.13
2024-12-11 17:42:52 +02:00
Elian Doran 9c04128145 Merge pull request #753 from TriliumNext/renovate/playwright-monorepo
chore(deps): update dependency @playwright/test to v1.49.1
2024-12-11 17:41:47 +02:00
renovate[bot] 7dc9befc7a chore(deps): update dependency @types/ws to v8.5.13 2024-12-11 15:41:29 +00:00
Elian Doran 48406bd806 Merge pull request #746 from TriliumNext/renovate/cls-hooked-4.x
chore(deps): update dependency @types/cls-hooked to v4.3.9
2024-12-11 17:39:57 +02:00
renovate[bot] e23fe010b5 chore(deps): update dependency @types/cls-hooked to v4.3.9 2024-12-11 11:48:28 +00:00
Elian Doran 2d1ac0f535 Merge pull request #745 from TriliumNext/renovate/better-sqlite3-7.x
chore(deps): update dependency @types/better-sqlite3 to v7.6.12
2024-12-11 13:47:38 +02:00
Elian Doran 758768e4d5 Merge remote-tracking branch 'origin/develop' into renovate/better-sqlite3-7.x 2024-12-11 13:46:44 +02:00
Elian Doran e3c29d43b5 Merge pull request #744 from TriliumNext/renovate/better-sqlite3-7.x-lockfile
chore(deps): update dependency @types/better-sqlite3 to v7.6.12
2024-12-11 13:45:21 +02:00
Elian Doran 55e3eae322 chore(build): switch nix to electron 33 2024-12-11 08:16:48 +02:00
Elian Doran 181ee3ef6d fix(server): not building due to API change 2024-12-11 08:16:37 +02:00
Kevin Leutzinger e83c07a7b0 add @types/cheerio 2024-12-11 00:17:28 -05:00
Kevin Leutzinger e2e2c9dbaf Expose cheerio in backend script api 2024-12-11 00:03:02 -05:00
renovate[bot] b99b51fce9 fix(deps): update dependency eslint to v9.16.0 2024-12-11 00:29:53 +00:00
renovate[bot] c97a4f1bc5 fix(deps): update dependency electron-debug to v4.1.0 2024-12-11 00:29:42 +00:00
renovate[bot] 2c6bc4b47b chore(deps): update dependency @playwright/test to v1.49.1 2024-12-11 00:29:25 +00:00
renovate[bot] 9becc021ae fix(deps): update dependency mind-elixir to v4.3.3 2024-12-11 00:29:13 +00:00
renovate[bot] 58aaa4daf4 fix(deps): update dependency mime-types to v2.1.35 2024-12-11 00:29:03 +00:00
renovate[bot] a2c61ef033 fix(deps): update dependency jsdom to v25.0.1 2024-12-11 00:28:56 +00:00
renovate[bot] aed6866a15 fix(deps): update dependency compression to v1.7.5 2024-12-11 00:28:48 +00:00
renovate[bot] f108775a6a chore(deps): update dependency jsdoc to v4.0.4 2024-12-11 00:28:40 +00:00
renovate[bot] 156dded1cc chore(deps): update dependency @types/better-sqlite3 to v7.6.12 2024-12-11 00:28:15 +00:00
renovate[bot] d26ef26971 chore(deps): update dependency @types/better-sqlite3 to v7.6.12 2024-12-11 00:28:01 +00:00
Elian Doran 289e33f479 Merge pull request #645 from TriliumNext/renovate/image-type-5.x
fix(deps): update dependency image-type to v5
2024-12-10 23:21:57 +02:00
Elian Doran e0e98e229e chore(deps): migrate to image-type 5.2.0 2024-12-10 23:21:32 +02:00
renovate[bot] d6b2fc8828 fix(deps): update dependency image-type to v5 2024-12-10 21:18:14 +00:00
Elian Doran abd5238acc Merge pull request #646 from TriliumNext/renovate/is-svg-5.x
fix(deps): update dependency is-svg to v5
2024-12-10 23:16:33 +02:00
Elian Doran c9874e6b2f chore(deps): adapt to is-svg v5 2024-12-10 23:16:10 +02:00
Adorian Doran 5523e30583 style(next): tweak the note paths from the "Recent Changes" section 2024-12-10 23:08:10 +02:00
renovate[bot] 99cb751cab fix(deps): update dependency is-svg to v5 2024-12-10 21:07:27 +00:00
Elian Doran d204aca228 Merge pull request #647 from TriliumNext/renovate/jimp-1.x
fix(deps): update dependency jimp to v1
2024-12-10 23:06:29 +02:00
Elian Doran f648f11153 chore(deps): adapt to jimp v1 2024-12-10 23:05:59 +02:00
Adorian Doran 431522f5b1 style(next): apply style to all note paths, change the delimiter symbol 2024-12-10 23:02:15 +02:00
Elian Doran ae48125dbb Merge pull request #641 from TriliumNext/renovate/chokidar-4.x
fix(deps): update dependency chokidar to v4
2024-12-10 22:49:40 +02:00
Elian Doran c6e8a2a459 Merge pull request #635 from TriliumNext/renovate/express-5.x
chore(deps): update dependency @types/express to v5
2024-12-10 22:43:47 +02:00
Elian Doran 5190b28d3c chore(types): adapt to new express type definitions 2024-12-10 22:35:23 +02:00
Adorian Doran 2b36bde9a9 client: format the note paths displayed in the note links 2024-12-10 22:24:53 +02:00
Adorian Doran 0588c91d1d client: refactor 2024-12-10 21:49:42 +02:00
Adorian Doran f2067d0b12 client: refactor 2024-12-10 21:43:23 +02:00
Elian Doran 4e0b9d431d Merge pull request #636 from TriliumNext/renovate/electron-33.x
chore(deps): update dependency electron to v33
2024-12-10 21:40:37 +02:00
Elian Doran 9e05206854 chore(deps): update better-sqlite to 11.7.0 2024-12-10 21:39:19 +02:00
Elian Doran 567664a2a3 Merge pull request #639 from TriliumNext/renovate/node-22.x
chore(deps): update node.js to v22
2024-12-10 21:33:34 +02:00
Elian Doran 4325c90f09 Merge pull request #740 from Nertonm/patch-1
Added Brazillian Portuguese translation on server.json
2024-12-10 21:24:37 +02:00
Elian Doran 432c5c06a2 Merge pull request #736 from TriliumNext/renovate/katex-0.x
fix(deps): update dependency katex to v0.16.15
2024-12-10 21:22:51 +02:00
Elian Doran 555d0e665f Merge pull request #743 from TriliumNext/style-next/reorganize-css
Style Next: Reorganize the CSS
2024-12-10 21:19:08 +02:00
Elian Doran 73c5b2a465 Merge pull request #741 from TriliumNext/feat/formatted-dates
Format dates and times
2024-12-10 21:14:42 +02:00
Adorian Doran cc1962d9c0 style(next): split the main theme CSS code into multiple files 2024-12-10 20:15:48 +02:00
Adorian Doran 74ace248d5 client: date formatter utility: improve 2024-12-10 18:48:48 +02:00
Adorian Doran 89334691b7 client: fix a typo 2024-12-10 18:43:51 +02:00
Adorian Doran d7004bc3b5 client: allow date & time to be passed as a string to the date & time formatter, refactor 2024-12-10 18:40:24 +02:00
Adorian Doran 895d50694b client: format dates and times in the "About" section 2024-12-10 18:24:41 +02:00
Adorian Doran 19e40bf46b client: format dates and times in the "Note Info" widget 2024-12-10 18:20:12 +02:00
Adorian Doran 83e1ce2bc4 client: format dates and times in the "Recent Changes" section 2024-12-10 18:11:55 +02:00
Adorian Doran 1268916ad7 client: date formatter utility: add the ability to format exclusively dates or times 2024-12-10 18:09:55 +02:00
Adorian Doran 88376e1158 client: format dates for the ETAPI tokens table 2024-12-10 17:16:20 +02:00
Adorian Doran 56b6dae447 client: refactor 2024-12-10 17:13:58 +02:00
Adorian Doran b097a8fc37 client: create a date formatter utility 2024-12-10 17:13:46 +02:00
Nerton b57e87c519 Create server.json 2024-12-10 11:51:15 -03:00
renovate[bot] 767b571faf fix(deps): update dependency katex to v0.16.15 2024-12-10 01:08:57 +00:00
Elian Doran 018557bb57 fix(electron): mind map not working due to missing deps 2024-12-09 23:32:39 +02:00
Elian Doran 35eee82da5 Merge pull request #727 from TriliumNext/renovate/katex-0.x
fix(deps): update dependency katex to v0.16.14
2024-12-09 23:19:36 +02:00
Elian Doran efae109e35 feat(settings): merge zoom factor with desktop app settings 2024-12-09 22:51:27 +02:00
Elian Doran f1241b2ebf chore(i18n): add translation for electron integration settings 2024-12-09 22:46:48 +02:00
Elian Doran 0b27a72c31 chore(settings): change description for desktop settings 2024-12-09 22:45:01 +02:00
Elian Doran 698ab86224 feat(settings): turn native title bar into a checkbox 2024-12-09 22:40:25 +02:00
Elian Doran 1e985f7858 feat(settings): add button to restart application 2024-12-09 22:36:46 +02:00
Elian Doran 3605a77b25 fix(mica): applying mica when disabled 2024-12-09 22:29:04 +02:00
Elian Doran 37b10e2144 style(settings): merge description into checkbox 2024-12-09 22:26:39 +02:00
Elian Doran a6f29bfbf3 feat(settings): refresh window when toggling background effects 2024-12-09 22:16:11 +02:00
Elian Doran 3bcd79c625 chore: fix indentation 2024-12-09 22:11:23 +02:00
Elian Doran 3a63f44c3a fix(settings): default option for checkbox 2024-12-09 22:08:31 +02:00
Elian Doran d4f3de3ad7 refactor(settings): rename native titlebar to electron integration 2024-12-09 22:07:51 +02:00
Elian Doran b81b93a590 feat(settings): add toggle for mica 2024-12-09 22:06:38 +02:00
Elian Doran c39e8be29a feat(server): set up option to toggle background effects 2024-12-09 21:57:54 +02:00
Elian Doran f4efefe480 feat(mica): add back toggleable 2024-12-09 21:54:11 +02:00
Elian Doran 648d81169c style(next): set ellipsis for tabs 2024-12-09 21:49:14 +02:00
Elian Doran 86ec0bb60b fix(native-buttons): margin-right on vertical layout 2024-12-09 21:48:08 +02:00
Elian Doran bae77b6b18 chore(build): remove hard-coded sync server for no-dir 2024-12-09 11:23:41 +02:00
Elian Doran 1929d34f88 fix(electron): native title buttons not working on Linux 2024-12-09 10:28:09 +02:00
Elian Doran d97737756c chore(build): disable safe mode by default 2024-12-09 10:09:41 +02:00
Elian Doran 4a284aa8ec chore(build): add no-dir for nix + prepare-dist 2024-12-09 10:08:44 +02:00
Elian Doran 8e65139c0f feat(safe): don't load themes if safe mode is active 2024-12-09 10:08:31 +02:00
renovate[bot] 43f6bbc8f9 chore(deps): update node.js to v22 2024-12-09 07:53:03 +00:00
renovate[bot] b6b76be9bf chore(deps): update dependency electron to v33 2024-12-09 07:52:55 +00:00
Elian Doran 1b963e8b09 chore(build): add script to run using Nix electron 2024-12-09 09:51:54 +02:00
Elian Doran 0ec50ca67b Revert "vscode: Add task to watch build errors"
This reverts commit 893a563afb.
2024-12-09 09:30:11 +02:00
MeIchthys d6d5e84a6f Fix relation/link map urls (#728) 2024-12-08 21:49:28 -05:00
renovate[bot] cc1a8da47e fix(deps): update dependency katex to v0.16.14 2024-12-09 01:20:08 +00:00
CobriMediaJulien cf8ec5a286 Update note_content_fulltext.ts 2024-12-08 22:56:26 +01:00
CobriMediaJulien e63d3489b0 Better Canvas search to prevent metadata beeing searched in fulltext 2024-12-08 22:52:51 +01:00
Elian Doran 275907f0fb Merge pull request #720 from CobriMediaJulien/develop
Bugfix, Canvas and Mindmap content didn´t show in search
2024-12-08 21:10:24 +02:00
Elian Doran 89d3ffa41e chore(deps): set legacy peer deps for mindmap 2024-12-08 17:43:30 +02:00
Elian Doran 7f813f7c66 style(mindmap): improve theme of node menu 2024-12-08 17:29:35 +02:00
Elian Doran d880771df6 style(mindmap): improve layout of node menu 2024-12-08 17:15:39 +02:00
Elian Doran 1648a40e57 feat(mindmap): integrate node map stylesheet into component 2024-12-08 17:12:57 +02:00
Elian Doran fdcc69591b feat(mindmap): enable node-menu (closes #723) 2024-12-08 17:07:39 +02:00
Elian Doran 12c97c10a1 Merge pull request #721 from TriliumNext/renovate/https-proxy-agent-7.x
fix(deps): update dependency https-proxy-agent to v7.0.6
2024-12-08 11:30:09 +02:00
renovate[bot] c6b1bc1213 fix(deps): update dependency https-proxy-agent to v7.0.6 2024-12-08 00:33:32 +00:00
CobriMediaJulien 336fff9099 Bugfix, Canvas and Mindmap content doesnt show in wuick search and fulltextsearch. 2024-12-07 20:11:52 +01:00
Elian Doran b72fa607f9 Merge pull request #719 from hasecilu/i18n/Spanish_again
Update Spanish translations
2024-12-07 19:44:41 +02:00
hasecilu d3b6c7b2ca chore(i18n): Update Spanish translations 2024-12-07 11:38:18 -06:00
hasecilu d71b4dc89a fix(i18n): Make source string to be on English 2024-12-07 11:38:17 -06:00
Elian Doran d3f55fa4b2 Merge pull request #648 from TriliumNext/renovate/marked-15.x
fix(deps): update dependency marked to v15
2024-12-07 12:48:39 +02:00
Elian Doran 3a90c7a45a Merge pull request #644 from TriliumNext/renovate/i18next-http-backend-3.x
fix(deps): update dependency i18next-http-backend to v3
2024-12-07 12:44:43 +02:00
Elian Doran 830b57c33a Merge pull request #643 from TriliumNext/renovate/helmet-8.x
fix(deps): update dependency helmet to v8
2024-12-07 12:43:01 +02:00
Elian Doran 90a52b957c Merge pull request #634 from TriliumNext/renovate/yauzl-3.x
fix(deps): update dependency yauzl to v3.2.0
2024-12-07 12:40:33 +02:00
Elian Doran c3fac4eb2c Merge pull request #633 from TriliumNext/renovate/yargs-17.x-lockfile
fix(deps): update dependency yargs to v17.7.2
2024-12-07 12:39:53 +02:00
Elian Doran a7539849ed chore(build): fix missing types for yargs 2024-12-07 12:39:32 +02:00
renovate[bot] 62d4286dec fix(deps): update dependency marked to v15 2024-12-07 10:39:26 +00:00
Elian Doran 0292c7da44 Merge pull request #676 from TriliumNext/renovate/axios-1.x
fix(deps): update dependency axios to v1.7.9
2024-12-07 12:37:33 +02:00
Elian Doran 5b2579e158 Merge pull request #689 from TriliumNext/renovate/mermaid-11.x
fix(deps): update dependency mermaid to v11.4.1
2024-12-07 12:36:57 +02:00
Elian Doran b9e877d7de Merge pull request #708 from TriliumNext/renovate/i18next-24.x
fix(deps): update dependency i18next to v24.0.5
2024-12-07 12:35:47 +02:00
Elian Doran 3cfe112353 Merge pull request #688 from TriliumNext/renovate/mermaid-js-layout-elk-0.x
fix(deps): update dependency @mermaid-js/layout-elk to v0.1.7
2024-12-07 12:33:42 +02:00
Elian Doran 7fa74cfa55 Merge pull request #714 from TriliumNext/renovate/express-4.x
fix(deps): update dependency express to v4.21.2
2024-12-07 12:28:33 +02:00
Elian Doran bb034eb8ba chore(deps): remove redundant dependency to node-abi 2024-12-07 12:26:12 +02:00
renovate[bot] 3c7ebfd7eb fix(deps): update dependency jimp to v1 2024-12-07 10:24:25 +00:00
Elian Doran 2025b91333 Merge pull request #631 from TriliumNext/renovate/is-svg-4.x
fix(deps): update dependency is-svg to v4.4.0
2024-12-07 12:22:51 +02:00
Elian Doran 370d363afc Merge pull request #628 from TriliumNext/renovate/webfreak001-deploy-nightly-3.x
chore(deps): update webfreak001/deploy-nightly action to v3.2.0
2024-12-07 12:14:02 +02:00
Elian Doran 170a81e75d Merge pull request #693 from TriliumNext/renovate/jasmine-5.x
chore(deps): update dependency jasmine to v5.5.0
2024-12-07 12:12:45 +02:00
renovate[bot] 6f371915bf chore(deps): update dependency @types/express to v5 2024-12-07 10:11:44 +00:00
Elian Doran f1812a4b98 Merge pull request #675 from TriliumNext/renovate/cookie-parser-1.x
chore(deps): update dependency @types/cookie-parser to v1.4.8
2024-12-07 12:11:14 +02:00
Elian Doran e2a33e9694 Merge pull request #680 from TriliumNext/renovate/express-session-1.x
chore(deps): update dependency @types/express-session to v1.18.1
2024-12-07 12:10:58 +02:00
Elian Doran 154bd92eaf Merge pull request #656 from TriliumNext/renovate/typescript-5.x
chore(deps): update dependency typescript to v5.7.2
2024-12-07 12:10:05 +02:00
Elian Doran 03dbf1a4f7 chore(client): solve TypeScript errors after upgrade 2024-12-07 12:09:51 +02:00
Elian Doran e90e6d2dad chore(ci): run development build 2024-12-07 12:04:57 +02:00
renovate[bot] ca2207ddd6 chore(deps): update dependency typescript to v5.7.2 2024-12-07 10:02:06 +00:00
Elian Doran 7322a88c12 Merge pull request #709 from TriliumNext/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.97.1
2024-12-07 12:01:22 +02:00
Elian Doran d037aea8a7 Merge pull request #640 from TriliumNext/renovate/stringbean-docker-healthcheck-action-3.x
chore(deps): update stringbean/docker-healthcheck-action action to v3
2024-12-07 12:00:24 +02:00
Elian Doran 5281d613d4 Merge pull request #638 from TriliumNext/renovate/docker-metadata-action-5.x
chore(deps): update docker/metadata-action action to v5
2024-12-07 11:59:53 +02:00
Elian Doran 15e499a98d Merge pull request #637 from TriliumNext/renovate/docker-login-action-3.x
chore(deps): update docker/login-action action to v3
2024-12-07 11:59:38 +02:00
Elian Doran 753fc22ae8 Merge pull request #627 from TriliumNext/renovate/node-20.x
chore(deps): update node.js to v20.18.1
2024-12-07 11:58:52 +02:00
Elian Doran f1e106483d Merge pull request #681 from TriliumNext/renovate/electron-forge-monorepo
chore(deps): update electron-forge monorepo to v7.6.0
2024-12-07 11:57:48 +02:00
Elian Doran aeb05191af Merge pull request #717 from TriliumNext/feature/mica
Mica (Windows transparency effects)
2024-12-07 10:42:44 +02:00
Elian Doran 8b96320e41 style(next): improve left pane hover on mica vertical 2024-12-07 10:13:22 +02:00
Elian Doran f5a21e47d5 style(next): remove new tab background on mica 2024-12-07 10:05:51 +02:00
Elian Doran 5a5a3ab508 feat(mica): define material at CSS level 2024-12-07 10:02:56 +02:00
Elian Doran 5d07c3049d fix(mica): mica flicker when loading classic theme 2024-12-07 09:58:41 +02:00
Elian Doran 43101620af style(next): improve mica for light theme horzontal layout 2024-12-07 09:54:00 +02:00
Elian Doran 4faf22b988 style(next): fix mica on light theme for horizontal layout 2024-12-07 09:40:11 +02:00
Elian Doran 043f47dbd2 style(next): fix mica leak in right sidebar gutter 2024-12-07 09:37:09 +02:00
Elian Doran cf128c1275 Merge remote-tracking branch 'origin/develop' into feature/mica 2024-12-07 03:35:40 +02:00
Elian Doran 7d907b4ee6 Merge pull request #711 from TriliumNext/renovate/force-graph-1.x
fix(deps): update dependency force-graph to v1.47.0
2024-12-07 03:22:15 +02:00
Elian Doran 57d2b0ebf5 fix(mica): apply correct mica when switching layouts 2024-12-07 03:15:39 +02:00
Elian Doran 407448476b refactor(mica): remove background effects system 2024-12-07 02:48:10 +02:00
Elian Doran 3f104ca663 style(next): fix native buttons background for mica 2024-12-07 02:34:28 +02:00
Elian Doran ae23a2e73e style(next): fix launcher pane mica for vertical layout 2024-12-07 02:31:47 +02:00
Adorian Doran c5c991f1b1 style(next): recent changes list: use sticky headers 2024-12-07 02:30:01 +02:00
Elian Doran 6365682ae1 style(next): tweak horizontal layout mica intensity 2024-12-07 02:19:33 +02:00
Elian Doran c02462bf81 style(next): apply mica to tabs on vertical layout 2024-12-07 02:16:44 +02:00
Elian Doran 47256e1718 style(next): apply mica to tree on vertical layout 2024-12-07 02:12:55 +02:00
Elian Doran ed98d0ce49 feat(mica): apply to vertical layout as well 2024-12-07 02:06:15 +02:00
Adorian Doran bf1c834454 style(next): adjust icon offset 2024-12-07 02:02:29 +02:00
Elian Doran 3fac2a1ef1 style(next): improve bottom border on mica 2024-12-07 02:01:35 +02:00
Elian Doran b243041966 style(next): fix tab bottom border on mica 2024-12-07 02:01:27 +02:00
Adorian Doran bb07b040e6 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2024-12-07 01:59:44 +02:00
Adorian Doran 501cac3ce1 style(next): restyle the quick search results 2024-12-07 01:59:36 +02:00
Adorian Doran 528645c025 client: tweak the quick search results 2024-12-07 01:58:50 +02:00
Elian Doran 3ceba62dbe style(next): fix gutter background color in mica 2024-12-07 01:17:17 +02:00
Elian Doran d35da72505 style(next): apply tint for mica 2024-12-07 01:13:39 +02:00
Elian Doran e21e0c6b38 style(mica): apply heavy transparency 2024-12-07 01:07:23 +02:00
Elian Doran cdae9f075c feat(mica): pass CSS class 2024-12-07 00:56:27 +02:00
Elian Doran 8cd2c69e3f feat(mica): enable by default 2024-12-07 00:56:19 +02:00
Elian Doran 774c26711f fix(style): horizontal layout border with native window buttons 2024-12-07 00:45:49 +02:00
Elian Doran e22e974786 Merge pull request #702 from TriliumNext/feature/native_window_buttons
Native title bar buttons
2024-12-07 00:43:06 +02:00
Elian Doran 2d0e88b503 fix(native-buttons): watching for changes on other platforms than win32 2024-12-07 00:41:26 +02:00
Adorian Doran 74e561ab9a style(next): turn green the shield icon when the protected session is active 2024-12-07 00:32:14 +02:00
Elian Doran 04cbb7ea07 style(native-buttons): smaller padding for macos 2024-12-07 00:31:17 +02:00
Elian Doran fc9d06f876 fix(native-buttons): regression on windows 2024-12-07 00:27:53 +02:00
Elian Doran 0f48ccd53c fix(native-buttons): regressions on server 2024-12-07 00:20:02 +02:00
Elian Doran 88a93e3a7b fix(native-buttons): regressions on mac 2024-12-07 00:14:05 +02:00
Elian Doran aad2f93844 feat(next): remove pin from custom title bar buttons 2024-12-06 22:30:55 +02:00
Elian Doran 50b69d26f6 style(next): improve custom title bar buttons 2024-12-06 22:24:02 +02:00
Elian Doran ef6410f25d fix(native-buttons): runtime errors due to missing functions 2024-12-06 22:18:32 +02:00
Elian Doran 91a8460eea fix(native-buttons): regression on vertical layout on non-macOS 2024-12-06 22:13:20 +02:00
Elian Doran 5d1e6d6f31 feat(native-buttons): fallback to original implementation for Linux 2024-12-06 22:12:27 +02:00
Elian Doran 8cf3addb7d Merge remote-tracking branch 'origin/develop' into feature/native_window_buttons
; Conflicts:
;	src/public/stylesheets/theme-next.css
2024-12-06 21:23:49 +02:00
renovate[bot] 91d2c11458 fix(deps): update dependency express to v4.21.2 2024-12-06 02:19:27 +00:00
Adorian Doran 164b3df922 style(next): tweak the "Recent Changes" list 2024-12-06 02:00:52 +02:00
Adorian Doran cf5e98bff5 style(next): create a timeline for the "Recent Changes" list 2024-12-06 01:33:23 +02:00
Elian Doran e8cb664ba7 style(next): adjust tab bar height 2024-12-05 20:48:00 +02:00
Elian Doran aefd139592 feat(next): improve left margin to allow moving 2024-12-05 20:34:55 +02:00
Elian Doran b9129f62b4 style(next): add a border on vertical layout on darwin 2024-12-05 19:09:28 +02:00
Elian Doran 5c09b2d6c4 style(next): adjust offset for native title bar buttons 2024-12-05 19:05:03 +02:00
Elian Doran 8f9c555bcb feat(editor): update allowedProtocols 2024-12-05 18:24:25 +02:00
Elian Doran b7b8ab56e9 Merge pull request #694 from TriliumNext/sirius_patch_1
Add supported link protocols
2024-12-05 18:24:13 +02:00
renovate[bot] 8dc1e52535 chore(deps): update dependency webpack to v5.97.1 2024-12-05 16:22:22 +00:00
Elian Doran 4077a01019 Merge pull request #700 from CobriMediaJulien/develop
New Features for note map
2024-12-05 18:21:06 +02:00
renovate[bot] 70b29bc16e fix(deps): update dependency force-graph to v1.47.0 2024-12-05 02:35:18 +00:00
Adorian Doran 4e2cd4ac35 client: add a leading whitespace to note paths 2024-12-05 02:56:44 +02:00
Adorian Doran 84cb13595a style(next): use a different border radius for note preview tooltips 2024-12-05 02:54:16 +02:00
Adorian Doran fdd7c3d64b style(next): restyle note paths 2024-12-05 02:38:26 +02:00
Adorian Doran 603ae47225 client: correct class names 2024-12-05 02:09:04 +02:00
Adorian Doran 79b1d01267 client: format note paths: each segment and delimiter as a separate span 2024-12-05 02:06:32 +02:00
Adorian Doran 4016c76cc7 style(next): tweak again the note preview tooltips 2024-12-05 01:19:48 +02:00
Adorian Doran 17ecf4961c style(next): tweak note preview tooltips 2024-12-05 01:06:44 +02:00
Adorian Doran 5c1a404ed0 style(next): restyle tooltips 2024-12-05 00:26:11 +02:00
Elian Doran 05c5109331 feat(native-buttons): adjustable offset 2024-12-05 00:02:57 +02:00
Elian Doran 00c6d97e4a feat(native-buttons): set arbitrary offset for traffic light 2024-12-04 23:44:26 +02:00
Elian Doran cd8c596bef fix(native-buttons): double left pane toggle widget 2024-12-04 23:22:51 +02:00
Elian Doran 9d98c4a661 feat(native-buttons): allow drag behind title area 2024-12-04 23:21:04 +02:00
Elian Doran 8d2a8ead04 feat(native-buttons): apply full width regardless 2024-12-04 23:16:03 +02:00
Elian Doran 14fb8b5dd9 refactor(native-buttons): reduce duplication 2024-12-04 22:58:32 +02:00
Elian Doran b32eef9aa9 fix(native-buttons): fix left margin on darwin 2024-12-04 22:58:13 +02:00
Elian Doran 7cb5ef2266 feat(style): pass whether electron to CSS 2024-12-04 22:57:03 +02:00
Elian Doran e9cf310657 feat(style): pass platform to CSS 2024-12-04 22:55:07 +02:00
Adorian Doran a87c4132ce style(next): tweak the zoom buttons from the global menu 2024-12-04 22:46:56 +02:00
Adorian Doran 74fcb83b6d style(next): tweak icon offset 2024-12-04 22:27:03 +02:00
Adorian Doran 7a9cb953bf style(next): add a warning animation for the sync status indicator when the sync fails 2024-12-04 22:22:01 +02:00
Elian Doran 07beeda79c feat(native-buttons): apply inset style for macOS 2024-12-04 22:05:46 +02:00
Adorian Doran 0cc1fb5bc8 style(next): fix the sync status indicator 2024-12-04 21:35:26 +02:00
Adorian Doran 4da8c6f873 style: fix the z-index for tooltips 2024-12-04 20:51:41 +02:00
Adorian Doran d1ef08c7cc style(next): fix the tooltip background color on the light color scheme 2024-12-04 20:20:35 +02:00
renovate[bot] 7096aa2f8d fix(deps): update dependency axios to v1.7.9 2024-12-04 08:24:18 +00:00
renovate[bot] c845b3c111 fix(deps): update dependency i18next to v24.0.5 2024-12-04 00:09:54 +00:00
renovate[bot] 0d1e0fe754 chore(deps): update dependency jasmine to v5.5.0 2024-12-03 02:17:43 +00:00
Adorian Doran d5ff354e2f style: fix missing quotes 2024-12-03 00:17:33 +02:00
Adorian Doran 994255451d style: update the calendar icons 2024-12-03 00:14:38 +02:00
Elian Doran dffc9b51ae style(next): fix tabs jumping around 2024-12-03 00:05:16 +02:00
Elian Doran 69902c04bd style(next): draw tab workspace accent instead of background 2024-12-03 00:04:12 +02:00
Elian Doran a2f39c4f99 feat(tab): trigger note icons via theme variable 2024-12-02 23:30:52 +02:00
Elian Doran 55e78f25ef Merge remote-tracking branch 'origin/develop' into feature/note_tab_icons 2024-12-02 23:20:20 +02:00
Elian Doran ca0f491685 style(tree): thinner space between share & link icons 2024-12-02 23:19:25 +02:00
Elian Doran 5df2e3e9cd style(next): improve tooltip design 2024-12-02 23:13:00 +02:00
Elian Doran a1a2fd717b style(next): improve inline code slightly 2024-12-02 23:06:41 +02:00
Elian Doran 415ba7c260 style(next): sharper tab border for dark style 2024-12-02 22:58:41 +02:00
Elian Doran 5ab099196f Merge branch 'develop' of ssh://github.com/TriliumNext/Notes into develop 2024-12-02 22:54:02 +02:00
Elian Doran 445ab7c171 style(next): improve code note padding in note list grid view 2024-12-02 22:53:58 +02:00
Elian Doran 0746838737 style(next): improve text note view in note list grid view 2024-12-02 22:53:08 +02:00
Adorian Doran a22d207d43 Merge branch 'develop' of https://github.com/TriliumNext/Notes into develop 2024-12-02 22:42:28 +02:00
Adorian Doran 95035acf38 style(next): restyle the calendar 2024-12-02 22:42:19 +02:00
Elian Doran 717fd92f64 style(next): change horizontal layout tab style 2024-12-02 22:26:17 +02:00
Elian Doran 9fcdc0e0c5 style(next): improve hr style 2024-12-02 22:16:26 +02:00
Elian Doran ce1ae84313 style(next): improve blockquote style 2024-12-02 22:04:56 +02:00
Elian Doran e91afe1a09 style(next): change hover mechanism for note list 2024-12-02 22:00:30 +02:00
Elian Doran 61a4a2230b style(next): regression in list-type note list layout 2024-12-02 21:52:44 +02:00
Elian Doran 9ba22c32b1 style(next): full width images in note list layout 2024-12-02 21:50:26 +02:00
Elian Doran 884092582f style(next): improve note list layout 2024-12-02 21:45:27 +02:00
Elian Doran 46be700c05 style(next): refactor note list handling 2024-12-02 21:39:08 +02:00
Elian Doran c63b1d0d5c style(next): smaller headings in note list 2024-12-02 21:31:45 +02:00
Elian Doran b68981a12e style(next): full width preview for code notes 2024-12-02 21:30:51 +02:00
Elian Doran d35e933206 fix(i18n): wrong text for export single HTML 2024-12-02 21:18:24 +02:00
Elian Doran 0368b7c252 fix(import): check boxes state not preserved on safe import 2024-12-02 21:08:38 +02:00
Elian Doran 6b973e835e fix(import): check boxes not preserved on safe import 2024-12-02 21:08:09 +02:00
Elian Doran 5a6151e225 fix(demo): to do lists not working 2024-12-02 21:01:30 +02:00
Elian Doran d472a00532 style(next): fix title bar background on classical themes 2024-12-01 21:15:04 +02:00
Elian Doran 29fb9f426f style(next): fix title bar background 2024-12-01 21:12:06 +02:00
Elian Doran 8135fa09c3 feat(native-buttons): differentiate background based on layout 2024-12-01 21:06:01 +02:00
Adorian Doran 22db58d410 style(next): apply the new style on the quick search box for the horizontal layout also 2024-12-01 18:48:01 +02:00
Adorian Doran ff06582eb6 style(next): remove the rounded corner of the center pane on horizontal layout 2024-12-01 18:35:23 +02:00
Elian Doran e933b8d5c8 chore(i18n): fix capitalization 2024-12-01 18:34:15 +02:00
Elian Doran 95664adb64 chore(i18n): remove period for menu item 2024-12-01 18:33:40 +02:00
Elian Doran c06ff4ec27 fix(native-buttons): right margin 2024-12-01 18:31:21 +02:00
Elian Doran 28b27f04cd fix(electron): fix regression when native title bar is on 2024-12-01 18:18:53 +02:00
Elian Doran 9e0546da27 theme(next): make subtle border color less subtle on dark mode 2024-12-01 18:03:13 +02:00
Elian Doran 5761320731 feat(native-buttons): watch for theme changes 2024-12-01 17:59:55 +02:00
Elian Doran 45faa666ba fix(native-buttons): enable buttons on other windows as well 2024-12-01 17:44:42 +02:00
Elian Doran a369ca01cd fix(promoted): ID overlap when clicking on labels 2024-12-01 17:38:13 +02:00
Elian Doran b730d60704 feat(client): always display mind map as full content width 2024-12-01 17:25:19 +02:00
Elian Doran 229825d99c Merge remote-tracking branch 'origin/develop' into feature/native_window_buttons 2024-12-01 17:20:01 +02:00
Elian Doran 061a5be362 chore(deps): update to better-sqlite3 (11.6.0) 2024-12-01 17:17:59 +02:00
Elian Doran e9aba033a1 Merge remote-tracking branch 'origin/develop' into feature/native_window_buttons 2024-12-01 17:14:02 +02:00
Elian Doran 1e41245ef7 fix(settings): unable to set mimetype 2024-12-01 17:08:28 +02:00
Elian Doran cd01e149e0 Revert "style(next): experimental tree lines"
This reverts commit 0dbe88092e.
2024-12-01 17:04:13 +02:00
Elian Doran 958f436cb4 style(next): add color for horizontal launcher bark on dark mode 2024-12-01 17:03:52 +02:00
Elian Doran b7487461fe fix(server): hidden subtree not initializing due to missing translations 2024-12-01 17:00:36 +02:00
Elian Doran 8931f1778e feat(tabs): experiment with note icons instead of workspace icons 2024-12-01 11:35:58 +02:00
Elian Doran 819a6d2364 Merge remote-tracking branch 'origin/develop' into feature/native_window_buttons 2024-12-01 10:49:30 +02:00
Elian Doran 0dbe88092e style(next): experimental tree lines 2024-12-01 10:46:15 +02:00
Elian Doran 9e5000bce0 style(next): smaller tree padding 2024-12-01 10:41:12 +02:00
Elian Doran 91aad26eae style(next): regressions for vertical layout 2024-12-01 10:38:24 +02:00
Elian Doran d05c1deb07 fix(client): build error due to non-existing import 2024-12-01 10:37:45 +02:00
Elian Doran 12f54a659c Merge remote-tracking branch 'origin/develop' into feature/native_window_buttons 2024-12-01 10:32:47 +02:00
Elian Doran 947cff5805 style(next): tweak add new tab background 2024-12-01 10:32:22 +02:00
Elian Doran 082cb71e83 style(next): tweak launcher bar height 2024-12-01 10:31:00 +02:00
Elian Doran 6c035c7756 style(next): improve tab hover color and alignment 2024-12-01 10:25:38 +02:00
Elian Doran a883744237 fix(launcher): tooltip position for bookmark buttons 2024-12-01 10:19:20 +02:00
Elian Doran f8f61c1c3e style(next): improve horizontal layout slightly 2024-12-01 10:13:30 +02:00
Elian Doran 6da5067003 style(next): add a border between tab bar and launcher on horizontal 2024-12-01 10:01:46 +02:00
Elian Doran ad62611e90 style(next): apply same color to tab and launch bar 2024-12-01 09:58:04 +02:00
Elian Doran c4085b0729 style(next): joined tabs to launch bar on horizontal layout 2024-12-01 09:53:15 +02:00
Elian Doran e7c4e037e0 feat(electron): add script to watch for src/public changes 2024-12-01 09:48:55 +02:00
Elian Doran 091f06253f feat(electron): support live reload in dist/src/public 2024-12-01 09:47:23 +02:00
Elian Doran bd890c49d5 feat(electron): relocate pin to global menu 2024-12-01 03:02:03 +02:00
Elian Doran 01512152ea feat(electron): load overlay information from CSS 2024-12-01 02:36:00 +02:00
Elian Doran 60192977c9 feat(electron): set overlay information at runtime 2024-12-01 02:18:35 +02:00
Elian Doran 0089346d04 feat(electron): enable native window buttons on frameless 2024-12-01 02:02:33 +02:00
juju 3a4da07b39 New Note_Map features 2024-11-30 19:57:06 +01:00
juju b3c247c7dc new features for note_map 2024-11-30 19:20:07 +01:00
Adorian Doran 221fd3c297 style(next): update colors 2024-11-30 19:10:44 +02:00
renovate[bot] 428e6b9e41 fix(deps): update dependency i18next-http-backend to v3 2024-11-30 13:06:36 +00:00
Elian Doran 3a0a6bc388 Merge pull request #657 from TriliumNext/renovate/i18next-24.x
fix(deps): update dependency i18next to v24
2024-11-30 15:04:49 +02:00
Elian Doran 4056e21051 fix(next): dragging the window in Electron 2024-11-30 14:55:15 +02:00
Elian Doran b351293ea8 fix(read-only-note): syntax highlight not working (closes #668) 2024-11-30 14:16:45 +02:00
Elian Doran cb9678c991 style(next): remove shadow for protected notes 2024-11-30 11:26:22 +02:00
Elian Doran 0731186015 style(next): improve protected indicator in tree 2024-11-30 11:20:12 +02:00
Elian Doran 4cd59932a3 style(next): improve note list design 2024-11-30 11:15:08 +02:00
Elian Doran 6d1f8c8947 style(next): remove white bar between ribbon and content 2024-11-30 10:42:01 +02:00
Elian Doran ae82041ad3 chore(i18n): finalize translation for Romanian 2024-11-30 10:40:26 +02:00
Elian Doran ae97432ae5 feat(i18n): translate hidden notes and settings 2024-11-30 10:37:15 +02:00
Elian Doran 690506ea26 feat(i18n): restore hidden subtree names on language change 2024-11-30 10:13:39 +02:00
Elian Doran 6a9865eb4f feat(i18n): add Traditional Chinese 2024-11-30 10:07:37 +02:00
Elian Doran 9337610ffa Merge pull request #698 from dwong33/patch-2
Update translation.json
2024-11-30 09:58:00 +02:00
Elian Doran 5b90a1c3f6 fix(settings): bring back pinning of plain text in MIME types 2024-11-30 03:00:24 +02:00
Elian Doran 0ef5cb843e feat(settings): fix orphans/widows in code MIME types 2024-11-30 02:56:43 +02:00
Elian Doran 978bb5eb0b style(next): carry over note list style from GNOME theme 2024-11-30 02:44:36 +02:00
Elian Doran c1d44f80d3 style(next): fix a margin 2024-11-30 02:32:45 +02:00
Elian Doran 005674e955 fix(settings): merge help text for HTML import tags 2024-11-30 02:32:37 +02:00
Elian Doran f5c8dac5f0 style(next): reduce heavy vertical spacing 2024-11-30 02:25:46 +02:00
Elian Doran 0dd36cca1c style(next): layout improvements 2024-11-30 02:20:57 +02:00
Elian Doran b2d731619f style(next): fix layout on database integrity 2024-11-30 02:11:34 +02:00
Elian Doran 84dc71ea3c style(next): fix top margin on "Other" section 2024-11-30 02:11:26 +02:00
Elian Doran 8552d95770 style(next): small improvements to margins 2024-11-30 02:01:15 +02:00
Elian Doran 8f12103106 refactor(settings): merge consistency checks with integrity checks 2024-11-30 01:56:55 +02:00
Elian Doran eba605fa49 chore(i18n): fix typo 2024-11-30 01:55:19 +02:00
Elian Doran 5df40d9e0a style(settings): display anonymize database in two columns 2024-11-30 01:49:40 +02:00
Elian Doran f22cdb85a8 style(next): improve h5 in settings 2024-11-30 01:43:14 +02:00
Elian Doran bb23aeb925 style(settings): improve highlights list separation 2024-11-30 01:38:45 +02:00
Elian Doran 6af51d393d fix(settings): separate section for layout 2024-11-30 01:36:32 +02:00
Elian Doran 131288bb4e style(next): card style for options 2024-11-30 01:35:33 +02:00
Elian Doran 4ecf49b175 feat(client): display different icon to toggle sidebar on horizontal layout 2024-11-30 01:23:54 +02:00
Elian Doran ca6687208b feat(client): move toggle sidebar to tab bar on horizontal layout 2024-11-30 01:20:47 +02:00
Elian Doran 29d6ef85ff Merge pull request #661 from TriliumNext/feature/trilium_next_theme
Introduce a theme for TriliumNext
2024-11-30 01:03:35 +02:00
Elian Doran 0ea4171b1b style(next): improve tab height on horizontal further 2024-11-30 00:58:59 +02:00
Elian Doran 921f216872 Merge remote-tracking branch 'origin/develop' into feature/trilium_next_theme 2024-11-30 00:55:37 +02:00
Elian Doran 8c62949d09 style(next): tab height on horizontal layout 2024-11-30 00:52:09 +02:00
Elian Doran fffd93d4f1 server(hidden): change default icons for next/prev launchers 2024-11-30 00:48:04 +02:00
Elian Doran 23f70367cc Merge pull request #695 from hasecilu/i18n/Spanish
i18n: Update Spanish translations
2024-11-30 00:11:50 +02:00
Adorian Doran 7a0649038b Fix an unwanted interference with certain combo boxes 2024-11-30 00:11:35 +02:00
Adorian Doran d7240b5bb4 Refactor 2024-11-30 00:07:19 +02:00
Adorian Doran 00f73059f7 Allow customizing the hover color of the right pane items 2024-11-30 00:04:32 +02:00
Adorian Doran 48253e0c60 Tweak the quick search button 2024-11-29 23:59:01 +02:00
Adorian Doran d2af4c362f Tweak the left pane's action buttons 2024-11-29 22:42:52 +02:00
hasecilu 7d2d39a2a4 i18n: Update Spanish translations 2024-11-29 14:41:14 -06:00
Adorian Doran 7496101505 Restyle the new tab button 2024-11-29 22:36:05 +02:00
Adorian Doran d5695757cb Change the colors of the new tab button 2024-11-29 22:19:57 +02:00
Adorian Doran 4028fa0c00 Allow the left pane action button color to be customized, tweak colors 2024-11-29 22:10:38 +02:00
Adorian Doran 8540201cd5 Tweak again the new tab button 2024-11-29 21:47:03 +02:00
Adorian Doran 38025e0912 Tweak the new tab button 2024-11-29 21:43:53 +02:00
Adorian Doran cdc530ad8b Fix a glitch of the new tab button 2024-11-29 21:37:03 +02:00
Adorian Doran 197f291c28 Tweak colors 2024-11-29 21:33:12 +02:00
Adorian Doran c6b7015c86 Update again the colors of the dark theme 2024-11-29 21:12:11 +02:00
Adorian Doran 5face4930a Update the colors of the dark theme 2024-11-29 19:10:12 +02:00
Adorian Doran 3583f536da Fix the hover background of the global menu button 2024-11-29 17:54:22 +02:00
Adorian Doran 513d7f35b2 Tweak the offset of menu item icons 2024-11-29 17:48:54 +02:00
Adorian Doran a53403f8d8 Tweak the icons for the menu items 2024-11-29 17:37:34 +02:00
Adorian Doran 3cfdbc5f21 Tweak menu item keyboard shortcut 2024-11-29 16:35:11 +02:00
Adorian Doran 1ddd5d800d Restyle menu item arrows 2024-11-29 16:29:38 +02:00
Adorian Doran 8ee30e1a22 Restyle menu item delimiters 2024-11-29 15:54:10 +02:00
Adorian Doran 6e870dbb81 Restyle menus 2024-11-29 15:28:35 +02:00
Adorian Doran 821a077130 Switch the color of the search button according to the current state 2024-11-29 12:56:30 +02:00
Adorian Doran 6a74765bc8 Don't highlight the quick search button if the search text box is not focused 2024-11-29 12:42:18 +02:00
Adorian Doran 04efba1f26 Add hover state for the quick search box 2024-11-29 12:34:32 +02:00
SiriusXT b2ff7fdf93 Add supported link protocols 2024-11-29 18:01:12 +08:00
Adorian Doran e6aa8a5299 Restyle the quick search box 2024-11-29 03:01:27 +02:00
Adorian Doran 6ad09280d0 Improve the overall appearance when the left pane is collapsed 2024-11-29 00:58:22 +02:00
Adorian Doran 65fb7cb4cb Adjust transition durations 2024-11-29 00:36:07 +02:00
Adorian Doran 2b55339ac6 Fix broken transition 2024-11-29 00:32:07 +02:00
Adorian Doran 7bba991336 Add an active state transition for the new tab button 2024-11-29 00:16:27 +02:00
Adorian Doran fefb79a7ae Fix background glitch 2024-11-28 23:59:42 +02:00
Adorian Doran 50cf7d47e7 Add transition to the new tab button 2024-11-28 23:57:31 +02:00
Adorian Doran 3d8a662903 Add transition for the close tab button 2024-11-28 23:51:57 +02:00
Adorian Doran 1d95fb3931 Add transitions for tabs 2024-11-28 23:40:53 +02:00
Elian Doran b632b7d91b chore(i18n): translate to Romanian 2024-11-28 23:36:42 +02:00
Elian Doran 38b4b3953d feat(i18n): translate import toast messages 2024-11-28 23:36:42 +02:00
Elian Doran b3b8e60192 Merge pull request #601 from maphew/feature/extend-kept-html-tags
Feature: user configurable list of allowed html tags in import
2024-11-28 22:26:31 +02:00
Elian Doran bc78455da1 feat(editor): support general HTML elements 2024-11-28 22:11:54 +02:00
Elian Doran 9997f5c17a fix(client): code not building due to attempt to access server code 2024-11-28 21:59:19 +02:00
Elian Doran aa99efc362 Merge remote-tracking branch 'origin/develop' into feature/extend-kept-html-tags
; Conflicts:
;	src/routes/api/options.ts
;	src/services/options_init.ts
2024-11-28 21:56:08 +02:00
renovate[bot] 7ed247f3ac fix(deps): update dependency i18next to v24 2024-11-28 19:49:43 +00:00
Elian Doran b28a377b5f Merge pull request #629 from TriliumNext/renovate/i18next-fs-backend-2.x
fix(deps): update dependency i18next-fs-backend to v2.6.0
2024-11-28 21:48:41 +02:00
Elian Doran 801254ce8e feat(client): add CSS root class for layout 2024-11-28 21:28:37 +02:00
Elian Doran 48a27710d6 Merge pull request #692 from TriliumNext/feature/page_breaks
Support page breaks for printing
2024-11-28 20:33:22 +02:00
Elian Doran 7a8b526795 fix(print): respect page breaks 2024-11-28 20:21:17 +02:00
Elian Doran 6fde3305a1 feat(editor): enable insertion of page breaks 2024-11-28 20:06:33 +02:00
Elian Doran 62db25ce10 feat(editor): group some items under Insert submenu 2024-11-28 20:00:55 +02:00
Elian Doran 21a5481691 Merge pull request #598 from maphew/feature/prefer-html-title
Importing single HTML file: prefer html title over filename
2024-11-28 19:46:15 +02:00
Elian Doran 98b4e36f78 chore(test): remove test for now 2024-11-28 19:43:06 +02:00
Elian Doran 83cd72fa86 fix(import/single): title appearing as text 2024-11-28 19:41:45 +02:00
Elian Doran cef464f88b fix(import/single): h1 not being removed due to downgrade to h2 2024-11-28 19:37:00 +02:00
Elian Doran 6056b55bde fix(import/single): title extraction not working due to h1 conversion 2024-11-28 19:30:47 +02:00
Elian Doran 29b062660d Merge pull request #659 from TriliumNext/quick_search_in_autocomplete
Add full text search in autocomplete
2024-11-28 19:17:03 +02:00
renovate[bot] 75479d56ae fix(deps): update dependency i18next-fs-backend to v2.6.0 2024-11-28 17:10:37 +00:00
Elian Doran 5be532f46f Merge pull request #630 from TriliumNext/renovate/i18next-http-backend-2.x
fix(deps): update dependency i18next-http-backend to v2.7.1
2024-11-28 19:08:13 +02:00
Dwong33 f384781f3a Update translation.json
Introduced Traditional Chinese translation
2024-11-28 02:24:49 -05:00
Adorian Doran a0e01fef67 Tweak tabs 2024-11-28 08:48:23 +02:00
renovate[bot] b553fc911d fix(deps): update dependency mermaid to v11.4.1 2024-11-28 02:09:05 +00:00
renovate[bot] 4bba0410c4 fix(deps): update dependency @mermaid-js/layout-elk to v0.1.7 2024-11-28 02:08:55 +00:00
Adorian Doran e040835d7b Add a distinctive style for tabs while being dragged 2024-11-28 00:31:45 +02:00
Adorian Doran 6d2e3a6f5e Tweak the colors of the inactive tab 2024-11-27 23:07:48 +02:00
Adorian Doran 180c592d5f Improve the close tab button 2024-11-27 22:57:09 +02:00
Adorian Doran 1b26128731 Improve the appearance of the new tab button, extract variables 2024-11-27 22:40:55 +02:00
Adorian Doran 3f36555973 Restyle the new tab button 2024-11-27 22:07:36 +02:00
Elian Doran 11c48988e1 Merge pull request #538 from TriliumNext/feature/improved_promoted_attributes
Change layout of promoted attributes
2024-11-27 21:33:32 +02:00
Elian Doran bb4164f10f Merge remote-tracking branch 'origin/develop' into feature/improved_promoted_attributes
; Conflicts:
;	src/public/app/layouts/desktop_layout.js
2024-11-27 21:29:15 +02:00
Adorian Doran 787466f2c6 Update CSS selector 2024-11-27 21:26:33 +02:00
Elian Doran 0b20e8a37d style(promoted): improve checkbox style 2024-11-27 21:26:07 +02:00
Adorian Doran 6c99a691dc Restyle the close tab buttons 2024-11-27 21:23:39 +02:00
Elian Doran f125ba55c1 style(promoted): fix heightfor rows 2024-11-27 21:22:50 +02:00
Elian Doran ceae1d5aa3 revert(client): add back fixed title bar 2024-11-27 21:12:44 +02:00
renovate[bot] a118c18649 fix(deps): update dependency i18next-http-backend to v2.7.1 2024-11-27 19:02:48 +00:00
Elian Doran 6ef55c73d4 Merge pull request #626 from TriliumNext/renovate/i18next-23.x
fix(deps): update dependency i18next to v23.16.8
2024-11-27 21:00:20 +02:00
Elian Doran 2550c00da0 Merge pull request #677 from TriliumNext/feature/i18n-part8
Feature/i18n part8
2024-11-27 20:49:25 +02:00
Elian Doran 47579e5799 feat(theme): inform user that the next theme is beta 2024-11-27 20:46:32 +02:00
Elian Doran a3ab9f0cd2 style(next): remove redundant font 2024-11-27 20:46:32 +02:00
Elian Doran b33e27baba style(next): add a few extra fonts 2024-11-27 20:46:31 +02:00
Elian Doran 30ece35f0c style(next): set up Lato font 2024-11-27 20:46:31 +02:00
Adorian Doran 51ee664609 Adjust padding 2024-11-27 20:43:07 +02:00
Adorian Doran c391ef868f Tweak the center pane 2024-11-27 20:20:12 +02:00
Adorian Doran b6dda4983c Merge branch 'feature/trilium_next_theme' of https://github.com/TriliumNext/Notes into feature/trilium_next_theme 2024-11-27 20:04:13 +02:00
Adorian Doran e4c7d8d015 Restyle tabs 2024-11-27 20:04:07 +02:00
Elian Doran ba310b2128 style(next): fix launcher pane style for horizontal 2024-11-27 19:58:27 +02:00
Elian Doran 58b823285e Revert "style(next): fix tab height on horizontal layout"
This reverts commit 6e90b5c6a0.
2024-11-27 19:56:27 +02:00
Elian Doran 0661e72f6e style(next): fix gutter color for dark mode 2024-11-27 19:55:17 +02:00
Elian Doran 6e90b5c6a0 style(next): fix tab height on horizontal layout 2024-11-27 19:52:03 +02:00
Elian Doran 8988d93ff0 Merge remote-tracking branch 'origin/develop' into feature/trilium_next_theme 2024-11-27 19:47:30 +02:00
Adorian Doran f24242d721 Add a way to customize the height of the tab bar / tabs and the first tab offset 2024-11-27 19:27:11 +02:00
Adorian Doran 7d737e7636 Introduce a root background color, make the tab bar and gutter background transparent 2024-11-27 18:59:54 +02:00
SiriusXT 13da46ff1b Add full text search in autocomplete results 2024-11-27 10:14:13 +08:00
SiriusXT f36594efb7 Add full text search in autocomplete results 2024-11-27 10:10:37 +08:00
SiriusXT ba1ed34e53 Add full text search in autocomplete results 2024-11-27 09:51:34 +08:00
renovate[bot] 3825b0642d chore(deps): update electron-forge monorepo to v7.6.0 2024-11-27 00:47:40 +00:00
renovate[bot] c68bb23fee chore(deps): update dependency @types/express-session to v1.18.1 2024-11-27 00:47:25 +00:00
Adorian Doran a1fc670839 Tweak the highlights list pane 2024-11-27 02:40:21 +02:00
Adorian Doran 9d289ec7bc Tweak the table of contents pane 2024-11-27 02:20:52 +02:00
Adorian Doran abfbe2cb39 Correct offsets to accommodate the new font metrics 2024-11-27 01:20:13 +02:00
Adorian Doran 12cae219db Switch the main font to "Lato" 2024-11-27 01:13:35 +02:00
Adorian Doran dd707d64e5 Restyle the gutter 2024-11-27 01:06:30 +02:00
Adorian Doran 4977092776 Add a fade in animation when the tree view is shown 2024-11-27 00:54:29 +02:00
Adorian Doran 3c8fbd91d0 Hide the tree actions 2024-11-27 00:39:02 +02:00
Adorian Doran 180d0e9ef6 Restyle the tree view item action buttons 2024-11-27 00:36:52 +02:00
Adorian Doran d788ce8ef1 Tweak tree view items 2024-11-27 00:04:25 +02:00
Adorian Doran 07a766d304 Tweak tree view items 2024-11-26 23:54:56 +02:00
Adorian Doran bb3f779d34 Add some horizontal padding for the tree view 2024-11-26 23:31:27 +02:00
Adorian Doran 8f38c36469 Fix the action buttons not showing up for the selected item 2024-11-26 23:26:20 +02:00
Adorian Doran f2cd34ab6a Add transition 2024-11-26 23:14:38 +02:00
Elian Doran 19e5f7364f Merge pull request #678 from TriliumNext/feature/update_search
Make exact matches rise higher up in search
2024-11-26 22:52:13 +02:00
Adorian Doran f2ebb3ccab Restyle the tree view items 2024-11-26 22:36:30 +02:00
Adorian Doran df94dabcd3 Tweak the left pane 2024-11-26 21:15:51 +02:00
perf3ct 84007a1103 tweak weights 2024-11-26 19:15:45 +00:00
Adorian Doran ae7764a366 Restyle the vertical launcher pane 2024-11-26 17:35:22 +02:00
Adorian Doran 208dbd46f5 Light theme: tweak launcher pane and left pane colors 2024-11-26 14:12:19 +02:00
SiriusXT e877ad68cf Add full text search in autocomplete 2024-11-26 16:20:38 +08:00
SiriusXT 0d9e13c1e0 Merge branch 'develop' into quick_search_in_autocomplete 2024-11-26 15:49:11 +08:00
SiriusXT 889c1e0346 Add full text search in autocomplete 2024-11-26 15:41:18 +08:00
perf3ct 7fdaedd468 also significantly increase noteId matches 2024-11-26 03:52:20 +00:00
perf3ct a97a0660ea add back comment 2024-11-26 03:41:01 +00:00
Nriver 1c2975a818 add translation for doc notes 2024-11-26 09:08:39 +08:00
renovate[bot] d6991467ed chore(deps): update dependency @types/cookie-parser to v1.4.8 2024-11-26 00:58:50 +00:00
perf3ct bca7d9c4d2 weigh exact title matches heavily 2024-11-25 23:04:20 +00:00
Elian Doran 1e996d6f82 docs(demo): add mermaid diagram with ELK 2024-11-25 23:31:43 +02:00
Elian Doran 33ec142ea3 chore(deps): use mermaid ELK at root level 2024-11-25 23:24:26 +02:00
Elian Doran 1dec64c712 fix(mermaid): load ELK in previews 2024-11-25 22:00:19 +02:00
Elian Doran 2ef956da87 feat(mermaid): load ELK library on demand 2024-11-25 21:58:56 +02:00
Elian Doran e3c8c0c1f2 feat(mermaid): support ELK diagrams in editor 2024-11-25 21:32:31 +02:00
Elian Doran 482cb46afa chore(mermaid): rebuild ELK to export something 2024-11-25 21:30:20 +02:00
Elian Doran 4d5f04de13 chore(mermaid): set up single-chunk ELK 2024-11-25 21:16:39 +02:00
Elian Doran d36b8ff4c4 chore(mermaid): set up project for building ELK 2024-11-25 21:10:27 +02:00
Elian Doran a7722e6bca feat(backend-log): set to full content width 2024-11-25 20:34:05 +02:00
Elian Doran c763c090be feat(backend-log): use CodeMirror as editor 2024-11-25 20:31:25 +02:00
Elian Doran 36ac3f5ee6 Merge pull request #670 from TriliumNext/meichthys
Remove resizer from backend log text area
2024-11-25 20:19:29 +02:00
Elian Doran ebb4b37873 Merge pull request #673 from TriliumNext/feature/i18n-part7
Feature/i18n part7
2024-11-25 20:16:26 +02:00
Nriver dedef69aec add translation for image_context_menu.js and link_context_menu.js 2024-11-25 17:41:00 +08:00
Nriver d9ceca8cc5 add missing translation 2024-11-25 17:40:15 +08:00
Nriver 0a38d132c2 update Chinese translation and synchronize with English 2024-11-25 16:53:04 +08:00
MeIchthys ae784eafd4 Remove resizer from backend log text area 2024-11-24 20:58:30 +00:00
Adorian Doran 116e362a5e Apply translucency to menus 2024-11-24 22:38:00 +02:00
Adorian Doran 2243db5b20 Correct the indentation 2024-11-24 22:31:22 +02:00
Adorian Doran 388b5a9464 Add comments 2024-11-24 22:28:50 +02:00
Adorian Doran 5563a2b4b0 Add the color definitions for the light theme 2024-11-24 22:19:02 +02:00
Adorian Doran 3d54b7b34f Define the drop shadow of code boxes via a CSS variable 2024-11-24 22:04:58 +02:00
Adorian Doran 954a51e6c7 Migrate the previously designed code blocks to the new theme 2024-11-24 21:58:45 +02:00
Elian Doran 8dd9510de8 fix(client): bookmark alignment on horizontal layout 2024-11-24 12:17:47 +02:00
Elian Doran a13c0a5743 Merge pull request #653 from mm21/develop
Add label definition type for standalone time
2024-11-24 11:43:44 +02:00
Elian Doran 793984e8f2 Merge remote-tracking branch 'origin/master' into develop 2024-11-24 11:35:31 +02:00
Elian Doran bb36b33694 Bump to 0.90.12
/ Check Docker build (Dockerfile) (push) Failing after 37s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 40s
/ 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 34s
Release / Build Linux Server x86_64 (push) Failing after 45s
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
2024-11-24 11:35:06 +02:00
Elian Doran e982696ef4 Merge pull request #663 from hasecilu/i18n/Spanish
I18n/spanish
2024-11-24 11:32:45 +02:00
Elian Doran 3120b34c70 Merge pull request #663 from hasecilu/i18n/Spanish
I18n/spanish
2024-11-24 11:29:24 +02:00
SiriusXT 836fa2deee change allowSearchNotes to allowJumpToSearchNotes 2024-11-24 13:11:57 +08:00
SiriusXT 1d1c7eb2ca Add full text search in autocomplete results 2024-11-24 13:10:33 +08:00
hasecilu 945d5412b0 i18n: Update Spanish translation 2024-11-23 17:45:57 -06:00
hasecilu f31a4865c3 bin(translation): Refactor script and add new locales to the list
- Check if JSON files exists before counting keys
- New locales:
  - German
  - Portuguese, Brazil
  - Chinese, Taiwan
2024-11-23 17:45:57 -06:00
Elian Doran e602445694 style(next): use sans-serif font with temporary Inter 2024-11-23 16:54:41 +02:00
Elian Doran 5b62ad101d Merge remote-tracking branch 'origin/develop' into feature/trilium_next_theme 2024-11-23 16:27:55 +02:00
SiriusXT 5370e1e27c Add full text search in autocomplete 2024-11-23 20:51:51 +08:00
Elian Doran 68fd954a67 Merge pull request #654 from TriliumNext/feature/adjustable_launcher_bar_position
Add support for horizontal launcher bar
2024-11-23 14:40:30 +02:00
Elian Doran c294469f12 Merge remote-tracking branch 'origin/develop' 2024-11-23 14:04:36 +02:00
Elian Doran e49f4c3e42 fix(client): title bar buttons on horizontal layout 2024-11-23 13:41:50 +02:00
Elian Doran a207fd523a fix(client): double separator in global menu 2024-11-23 10:06:04 +02:00
Elian Doran 2950132271 fix(mobile): advanced submenu misalignment 2024-11-23 10:03:34 +02:00
Elian Doran 8b8929dde0 chore(docs): document css and optCss 2024-11-23 10:01:49 +02:00
Elian Doran e0d9cda522 fix(mobile): padding for the title 2024-11-23 09:59:48 +02:00
Elian Doran ba5371d76b fix(mobile): vertical layout not sized properly 2024-11-23 09:56:48 +02:00
Elian Doran fbae0062af feat(mobile): change context menu icon on horizontal layout 2024-11-23 09:48:18 +02:00
Elian Doran ea399e590d feat(mobile): reorder context menu 2024-11-23 09:45:52 +02:00
Elian Doran 2dda8f60ed feat(mobile): move menu button to the right 2024-11-23 09:43:34 +02:00
Elian Doran 14fa687b9c fix(mobile): width of launcher bar items 2024-11-23 09:40:32 +02:00
Elian Doran 91d23bae8e refactor(client): use different hiding mechanism for quick search 2024-11-23 09:37:24 +02:00
Elian Doran d2d2620742 feat(mobile): hide quick search 2024-11-23 09:34:26 +02:00
Elian Doran 8a61b58970 fix(mobile): fix alignment for horizontal layout 2024-11-23 09:29:49 +02:00
Elian Doran 23ef2c593e chore(i18n): translate layout settings 2024-11-23 09:18:12 +02:00
Elian Doran 62d23b3643 feat(client): respect layout orientation selected by user 2024-11-23 09:09:09 +02:00
Elian Doran 4f305b52eb feat(client): allow user to change layout orientation 2024-11-23 09:06:30 +02:00
Elian Doran e32f54a5c9 feat(server): add support for layout orientation option 2024-11-23 09:06:16 +02:00
Elian Doran 2d8fb4eff5 chore(i18n): fix punctuation 2024-11-23 00:48:01 +02:00
Elian Doran eaa6d6c3cf fix(client): tooltip position for calendar in vertical layout 2024-11-23 00:32:36 +02:00
Elian Doran 0f7b96f096 fix(client): quick search in vertical layout 2024-11-23 00:29:28 +02:00
Elian Doran 13e33549c1 fix(client): global menu alignment on horizontal layout 2024-11-23 00:24:29 +02:00
Elian Doran 23873b72bf fix(client): dropdown width for horizontal layout 2024-11-23 00:15:50 +02:00
Elian Doran 5f9439a9e0 fix(client): dropdown tooltip placement for horizontal layout 2024-11-23 00:11:49 +02:00
Elian Doran 7e5fea8cd2 fix(client): tooltip position for hide left pane button 2024-11-23 00:07:40 +02:00
Elian Doran fd8f9506d4 fix(client): tooltip position for launcher on horizontal layout 2024-11-23 00:02:02 +02:00
Elian Doran 13a997beb0 fix(client): add new tab not working in horizontal layout 2024-11-22 23:02:43 +02:00
Elian Doran f62e860b61 feat(client): use hamburger menu for horizontal layout 2024-11-22 22:44:34 +02:00
Elian Doran 50bf94875c fix(client): global submenu not working in horizontal layout 2024-11-22 22:16:48 +02:00
Elian Doran 20b0215364 feat(client): set up quick search as launcher 2024-11-22 22:01:38 +02:00
Elian Doran 045c8699a9 refactor(client): use switch instead of chained-if 2024-11-22 21:56:34 +02:00
Elian Doran 15b9f38439 style(client): improve background for full-width tab bar 2024-11-22 21:41:23 +02:00
Elian Doran 91c4ea333e feat(client): move tab bar on horizontal layout 2024-11-22 21:37:54 +02:00
Elian Doran d1550db08d fix(client): experiment with full-width tab bar 2024-11-22 21:35:47 +02:00
Elian Doran c858630678 fix(client): fix size for horizontal launcher bar 2024-11-22 21:14:50 +02:00
Elian Doran c9f2a2bd6b feat(client): reorder buttons on horizontal bar 2024-11-22 21:10:49 +02:00
Elian Doran efc84722a9 feat(client): implement top launcher pane 2024-11-22 21:05:45 +02:00
Elian Doran 8300acd30b refactor(client): add support for optional children in layout 2024-11-22 20:36:08 +02:00
Elian Doran fd53781c71 feat(theme): use TriliumNext as login & set password theme 2024-11-22 20:22:48 +02:00
Elian Doran 76256c1b9c feat(theme): use TriliumNext as setup theme 2024-11-22 20:21:22 +02:00
Elian Doran 2e544a7337 feat(theme): use TriliumNext as default theme 2024-11-22 20:15:35 +02:00
Elian Doran 3e705ec4fd feat(theme): use prefers-color-scheme for automatic theme 2024-11-22 20:12:22 +02:00
Elian Doran 7cb9671fe3 feat(theme): start implementing a theme for TriliumNext 2024-11-22 20:12:09 +02:00
mm21 2f7d061ef1 Add label definition type for standalone time 2024-11-22 17:58:23 +00:00
Elian Doran 79b31bda76 chore(i18n): reach 100% for Romanian + small change 2024-11-22 19:48:57 +02:00
Elian Doran c30a4373d9 Merge pull request #652 from TriliumNext/remove-renovate-action
Remove the renovate action in favor of the GH app
2024-11-22 19:43:54 +02:00
perf3ct 12065902d2 Remove the renovate action in favor of the GH app 2024-11-22 17:39:34 +00:00
Elian Doran aa01161a40 Merge pull request #651 from TriliumNext/tab_enhance
Add reopen_last_tab and copy_tab_to_new_window to  tab management
2024-11-22 19:01:20 +02:00
SiriusXT 3cfc2ac768 Add reopen_last_tab and copy_tab_to_new_window to tab management 2024-11-22 17:24:06 +08:00
renovate[bot] 5faa6e1d67 fix(deps): update dependency helmet to v8 2024-11-21 21:54:26 +00:00
renovate[bot] 190c7f7274 fix(deps): update dependency chokidar to v4 2024-11-21 21:53:55 +00:00
renovate[bot] 0cb7d82d16 chore(deps): update stringbean/docker-healthcheck-action action to v3 2024-11-21 21:53:41 +00:00
renovate[bot] 1e478a7a52 chore(deps): update docker/metadata-action action to v5 2024-11-21 21:53:20 +00:00
renovate[bot] caf5b34d70 chore(deps): update docker/login-action action to v3 2024-11-21 21:53:17 +00:00
renovate[bot] 35bc2ade9c fix(deps): update dependency yauzl to v3.2.0 2024-11-21 21:52:45 +00:00
renovate[bot] ecca6952d1 fix(deps): update dependency yargs to v17.7.2 2024-11-21 21:52:31 +00:00
renovate[bot] c8f1108a3c fix(deps): update dependency is-svg to v4.4.0 2024-11-21 21:52:07 +00:00
renovate[bot] 87600dc65b chore(deps): update webfreak001/deploy-nightly action to v3.2.0 2024-11-21 21:51:25 +00:00
renovate[bot] 8453255ed3 chore(deps): update node.js to v20.18.1 2024-11-21 21:51:18 +00:00
renovate[bot] e4f9affc82 fix(deps): update dependency i18next to v23.16.8 2024-11-21 21:51:15 +00:00
Elian Doran 79a906e695 Merge pull request #649 from TriliumNext/perfectra1n-patch-2
Also run Docker healthcheck checks on PRs
2024-11-21 23:11:22 +02:00
Elian Doran 2ffd0de736 feat(client): translate Electron context menu 2024-11-21 20:58:54 +02:00
Elian Doran ea8e98b8ef refactor(client): define context menu shortcuts in separate field 2024-11-21 20:33:47 +02:00
Jon Fuller 84b555de3c Also run Docker healthcheck checks on PRs 2024-11-21 09:39:13 -08:00
Elian Doran a037f95ff1 Merge pull request #625 from TriliumNext/renovate/migrate-config
chore(config): migrate renovate config
2024-11-21 19:07:00 +02:00
renovate[bot] 50d9f382a1 chore(config): migrate config renovate.json 2024-11-21 16:53:03 +00:00
Elian Doran ed90e0f7a9 client: Change tree star icon to link (closes #565) 2024-11-21 18:37:37 +02:00
Elian Doran 8c7cba4f33 server: Add a new settings launcher (closes #619) 2024-11-21 18:11:08 +02:00
Adorian Doran 128c4d45df Add a separator to the editor's context menu running under Electron 2024-11-21 17:21:57 +02:00
Adorian Doran 8658f9e6d3 Prevent the global menu's zoom container to be highlighted when being hovered 2024-11-21 17:11:32 +02:00
Adorian Doran 312c3ed6ad Add an extra separator for the zoom controls in the global menu 2024-11-21 16:27:48 +02:00
Adorian Doran bd2bcb7c97 Fix useless separator in the global menu when running under Electron 2024-11-21 16:21:24 +02:00
Elian Doran ae85bffd08 Merge pull request #618 from TriliumNext/feat/tweak-menus
Tweak menus
2024-11-20 19:12:43 +02:00
Elian Doran 84f63d5cf7 client: Remove icon color for close button 2024-11-20 19:12:20 +02:00
Elian Doran 0f75319677 Merge remote-tracking branch 'origin/develop' into develop
; Conflicts:
;	src/public/translations/de/translation.json
2024-11-20 19:10:04 +02:00
Adorian Doran 050eb08b1a Close #613 2024-11-20 19:01:20 +02:00
Elian Doran cdf8490651 Merge pull request #585 from TriliumNext/sirius_patch_2
Triggers full text search when Ctrl + Enter is pressed in note_autocomplete.
2024-11-20 18:54:20 +02:00
Adorian Doran 8f05b24694 Move back the close tab-related actions at the top of the menu 2024-11-20 14:39:19 +02:00
j13055 95f80efaeb fixed some errors 2024-11-20 13:24:14 +01:00
Adorian Doran 281b81ee60 Remove the shadow and the opening delay for the "Main Menu -> Advanced" submenu in mobile view 2024-11-20 14:18:17 +02:00
Adorian Doran 85b507938b Allow the submenu opening delay be set via a CSS variable 2024-11-20 14:16:10 +02:00
j13055 0c02a3bae9 tranlate not translated lines 2024-11-20 11:40:48 +01:00
Adorian Doran ac9f344130 Retrigger the opening animation when repositioning menus that are already open 2024-11-20 11:30:45 +02:00
Adorian Doran 2b432dd4f7 Delay the opening of submenus 2024-11-20 10:57:34 +02:00
Adorian Doran 3d27a60897 Add a fade animation when a menu is opening 2024-11-20 10:48:42 +02:00
Adorian Doran 3792761ffc Add missing icons 2024-11-20 10:13:52 +02:00
Adorian Doran 322d261df7 Tweak the icons of the launcher context menu items 2024-11-20 09:48:20 +02:00
Adorian Doran 1fb58f3e87 Reorganize the launcher context menu 2024-11-20 09:38:20 +02:00
SiriusXT c51adbc449 Add full text search in autocomplete 2024-11-20 14:22:39 +08:00
Adorian Doran 4179f9c155 Improve the sub-menu arrows for the tree context menu 2024-11-20 02:56:18 +02:00
Adorian Doran 35faba2c2f Fix the note revision list displaying a shadow 2024-11-20 02:30:29 +02:00
Adorian Doran dc893a438e Refine the icons from the tree menu 2024-11-20 02:10:29 +02:00
Adorian Doran a83e68fbb6 Change the "open externally" icons to avoid confusion with "open in a new tab" 2024-11-20 02:03:40 +02:00
Adorian Doran a677f4381d Add icon for "Open note in a new tab" 2024-11-20 01:45:36 +02:00
Adorian Doran 98dfeee188 Update the icons of the tree context menu 2024-11-20 01:42:42 +02:00
Adorian Doran dc7bb6d7eb Reorganize the tree context menu 2024-11-20 00:47:04 +02:00
Adorian Doran 855f936dbf Reorganize the attachment menu 2024-11-20 00:11:54 +02:00
Adorian Doran 48e7bab81b Reorganize the tab menu 2024-11-19 23:57:12 +02:00
Adorian Doran 694f896623 Highlight the "Delete note" menu item as a destructive action 2024-11-19 23:46:49 +02:00
Adorian Doran 5df287db23 Use a distinct icon color for destructive menu items 2024-11-19 23:44:57 +02:00
Elian Doran 8868a4eae1 Merge pull request #616 from TriliumNext/perfectra1n-patch-2
Update renovate.json
2024-11-19 23:40:38 +02:00
Elian Doran 0da1bee02c i18n: Fix typo 2024-11-19 23:39:43 +02:00
Elian Doran 779218849a i18n: Translate bulk action categories 2024-11-19 23:38:49 +02:00
Adorian Doran 4999809e3a Reorganize the note menu 2024-11-19 23:32:10 +02:00
Adorian Doran fd5412b715 Merge branch 'develop' of https://github.com/TriliumNext/Notes into feat/tweak-menus 2024-11-19 23:16:13 +02:00
Adorian Doran 4bcca01ff3 Add a drop shadow for menus 2024-11-19 22:55:44 +02:00
Adorian Doran 9b5526c99f Tweak the color of the menu separator 2024-11-19 22:40:52 +02:00
Adorian Doran 80ce2f5dbd Reorder the global menu items 2024-11-19 22:31:29 +02:00
Jon Fuller f629d48028 Update renovate.json
Remove the package rules for now, use the default schemas. Also include this repository in the config since I forgot that part 🤣
2024-11-19 12:08:17 -08:00
Elian Doran da95e15b01 Merge pull request #615 from TriliumNext/feat/tweak-backup-list
Improve the "Existing backups" section
2024-11-19 20:40:30 +02:00
Adorian Doran 70be4cd1c2 Update the Romanian translation 2024-11-19 20:34:54 +02:00
Adorian Doran 349b1c1d78 Improve appeareance 2024-11-19 20:28:47 +02:00
Adorian Doran e94942d665 Handle the situation where no backups are available 2024-11-19 20:22:10 +02:00
Elian Doran 4418ad986e Merge pull request #612 from meichthys/develop
Improve note revision wording and consistency
2024-11-19 20:22:07 +02:00
Elian Doran c962a94e29 Merge pull request #607 from TriliumNext/add-renovate
Add renovate GitHub Action and JSON config
2024-11-19 20:21:05 +02:00
Elian Doran 7f3d5f1e70 Merge pull request #609 from TriliumNext/siriusxt_patch_1
Add box icons to note menu
2024-11-19 18:38:34 +02:00
Adorian Doran 32a4a9c072 Sort the backup files by date & time 2024-11-19 18:07:42 +02:00
Adorian Doran 22b768e5e8 Add translation 2024-11-19 18:00:23 +02:00
Adorian Doran 970c3bd7ad Format date and time 2024-11-19 17:54:34 +02:00
Adorian Doran 75941de449 Replace the "Existing backups" bulleted list with a table 2024-11-19 17:42:03 +02:00
MeIchthys 5d6a42b987 Improve note revision wording and consistency
Removed plurals where not needed, capitalized revisions dialog title, made note revision setting titles consistent with note revision dialog.
2024-11-19 14:22:52 +00:00
SiriusXT d8e50a2ab8 add icons to the Attachments menu 2024-11-19 22:21:33 +08:00
Adorian Doran 5b050410cb Fix the action button tooltips for the "Existing tokens" table 2024-11-19 09:48:44 +02:00
SiriusXT f7b1c3fee3 Add box icons to note menu 2024-11-19 14:03:30 +08:00
SiriusXT 0ba883ce2f Add box icons to note menu 2024-11-19 12:08:41 +08:00
SiriusXT 2b0d68368c Add box icons to note menu 2024-11-19 11:08:20 +08:00
maphew cc98a16246 refactor: one authoritave source for allowed html tags 2024-11-18 19:52:31 -07:00
perf3ct 180993ead9 make it clear that renovate opened this PR, for easier filtering 2024-11-18 20:22:38 +00:00
perf3ct f4ed98ebda add renovate GitHub Action and json config 2024-11-18 20:16:39 +00:00
Elian Doran a4c0ae06db client: Fix duplicate ribbon tabs (fixes #582) 2024-11-18 20:52:35 +02:00
Elian Doran 7a8d7f074c client: Fix share boxicon not working correctly (fixes #603) 2024-11-18 19:12:31 +02:00
maphew 8574d2b143 Fix save) triggers 'not allowed to be changed'
"500 PUT options. Option 'allowedHtmlTags' is not allowed to be changed"

Note: the "allowed to change" list is set on startup. When a new option
is added Trilium must be restarted.
2024-11-17 20:38:27 -07:00
maphew 8db1205d57 Fix whitespace, \n delimiters
Bugs remaining:
- [reset to default] and page exit (e.g. save) triggers:
  "500 PUT options. Option 'allowedHtmlTags' is not allowed to be changed"
2024-11-17 20:30:28 -07:00
maphew f3b398570e make options UI properly read from translations file
Bugs remaining:
- extra whitespace under heading
- existing list is filled with `\n` instead of delimiters
- [reset to default] triggers
  "500 PUT options. Option 'allowedHtmlTags' is not allowed to be changed"
2024-11-17 20:16:09 -07:00
maphew 91b48095e4 add UI widget for allowed html tags option
todo: test with live app
2024-11-17 16:39:03 -07:00
maphew d08f09ae3b read allowedTags from options, fall back to static 2024-11-17 16:08:44 -07:00
maphew 9ef899eec5 extend html tags which are kept on import
https://github.com/TriliumNext/Notes/issues/567

this is the easy method, just add the tags to core, not attempting to
read the list from a user configurable location.
The addition is clearly marked in code.
2024-11-17 15:58:48 -07:00
Elian Doran b4072ec8a5 Merge pull request #600 from dwong33/dwong33-patch-1
Created server.json, introduced Traditional Chinese translation
2024-11-17 18:47:58 +02:00
Dwong33 a50e3935b5 Rename zh/server.json to tw/server.json
Better suit the zh-tw vs zh-cn
2024-11-17 04:18:46 -05:00
Dwong33 3034ca217d Created server.json, introduced Traditional Chinese translation 2024-11-17 04:15:08 -05:00
matt wilkie 5999dabd0b test fix: sqlite no such table entity_changes
claude:
I've updated the test file to:

Add the entity_changes table with all required fields
Add missing fields to the notes table (isDeleted)
Add missing fields when inserting the parent note
2024-11-16 21:39:08 -07:00
matt wilkie 9cd398d1ce test fix: setup CLS context
claude sez: "I see the issue. The tests are failing because we need to set up the CLS (Continuation Local Storage) context that Trilium uses for transactions. Let me check how this is handled in other tests:

I've updated the test file to:

I've updated the test file to:

Use an in-memory database for testing
Set up necessary database tables in beforeEach
Wrap all database operations in cls.init() and sql.transactional()
Handle async operations properly
2024-11-16 21:36:07 -07:00
matt wilkie e397011437 test fix: describe not defined
"$ npx tsx spec/services/import/single.spec.ts
/home/mhw/dev/tnext/spec/services/import/single.spec.ts:6
describe('HTML Import', () => {
^
ReferenceError: describe is not defined
    at <anonymous> (/home/mhw/dev/tnext/spec/services/import/single.spec.ts:6:1)

Node.js v18.17.1"
2024-11-16 21:26:26 -07:00
matt wilkie a1ff4bb132 test fix: do not access content directly
"TSError: ⨯ Unable to compile TypeScript:
spec/services/import/single.spec.ts:137:25 - error TS2339: Property 'content' does not exist on type 'BNote'."
2024-11-16 21:21:24 -07:00
SiriusXT 002839176e Triggers full text search when Ctrl + Enter is pressed 2024-11-17 12:18:05 +08:00
matt wilkie 14d7e3e1ce test: attempt fix test import error by using importSinglefile instead of importHtml 2024-11-16 21:17:50 -07:00
SiriusXT e091ef64dd Triggers full text search when Ctrl + Enter is pressed 2024-11-17 12:17:11 +08:00
SiriusXT 46823d28e8 Merge branch 'develop' into sirius_patch_2 2024-11-17 12:15:29 +08:00
SiriusXT 616d7117db Merge branch 'sirius_patch_2' of https://github.com/TriliumNext/Notes into sirius_patch_2 2024-11-17 12:14:55 +08:00
SiriusXT 4e10071649 Triggers full text search when Ctrl + Enter is pressed in autocomplete 2024-11-17 12:14:44 +08:00
maphew 3a7564f733 a missed .ts file 2024-11-16 09:45:13 -07:00
maphew 47c05b2c6d feat: prefer HTML title tag over filename during import
When importing HTML files, extract and use the title from the <title> tag
if available, falling back to the filename only when no title tag is found.

This improves handling of titles with special characters that can't be
represented in filenames.
2024-11-16 09:06:58 -07:00
Elian Doran 3ff75b14e9 Merge pull request #595 from hasecilu/i18n/Spanish
i18n: Update Spanish translations for stable release
2024-11-16 00:25:08 +02:00
hasecilu 82e7814569 i18n: Update Spanish translations for stable release 2024-11-15 15:22:07 -06:00
Elian Doran 66e8cc40eb i18n: Translate Romanian strings 2024-11-15 22:34:09 +02:00
Elian Doran 2260dcefe5 client,server: Enforce min value of max content width (closes #593) 2024-11-15 22:29:59 +02:00
Elian Doran 40c9ef69e7 Merge pull request #587 from TriliumNext/feature/editor-type-radios
Replace the editor type combo box with radio buttons
2024-11-15 21:01:10 +02:00
Elian Doran a8b87a1507 Merge pull request #576 from TriliumNext/siriusxt_patch
Add a text replacement feature to the find_widget
2024-11-15 20:51:27 +02:00
Elian Doran 1df1637257 Merge pull request #589 from TriliumNext/sirius_patch_3
Add more link protocol support
2024-11-15 20:43:09 +02:00
Adorian Doran 616cb87d4e client: Change the icon of the "Formatting" tab 2024-11-14 20:55:30 +02:00
SiriusXT 7f0d675ab8 Add more link protocol support 2024-11-14 14:04:10 +08:00
SiriusXT c907b288bd Add more link protocol support 2024-11-14 11:18:03 +08:00
SiriusXT d9ab5d71aa Add more link protocol support 2024-11-14 11:15:38 +08:00
Adorian Doran 8731b8a65b Fix translation 2024-11-13 23:55:30 +02:00
Adorian Doran de4f06d9be Update translations 2024-11-13 23:35:10 +02:00
Adorian Doran 9485067749 client: Replace the editor type combo box with radio buttons 2024-11-13 23:34:43 +02:00
j13055 cd35706147 added missing translations 2024-11-13 13:59:36 +01:00
j13055 3b94aee7b7 finished server translations 2024-11-13 12:39:50 +01:00
j13055 06e30674fe corrected setup translations 2024-11-13 12:31:51 +01:00
j13055 f7b1e87bc4 corrected login translations 2024-11-13 12:26:30 +01:00
j13055 2c252a9984 finished keyboard_actions translations 2024-11-13 12:25:11 +01:00
SiriusXT db79f231a0 Triggers full text search when Ctrl + Enter is pressed in note_autocomplete 2024-11-13 17:13:07 +08:00
Elian Doran 8c5d5e384f Merge remote-tracking branch 'origin/develop' into feature/improved_promoted_attributes
; Conflicts:
;	src/public/app/layouts/desktop_layout.js
2024-11-12 20:03:54 +02:00
Elian Doran 693bcfb587 client: Add find & replace button to fixed toolbar 2024-11-12 19:47:50 +02:00
Elian Doran 38d32813d2 client: Fix syntax highlight for shell scripts (closes #583) 2024-11-12 19:32:38 +02:00
SiriusXT a0c6d695b0 Fix find_widget bugs 2024-11-12 10:56:54 +08:00
SiriusXT d63baa1503 Merge branch 'develop' into siriusxt_patch 2024-11-12 08:59:53 +08:00
Elian Doran 6734d765c9 Bump to 0.90.11-beta
/ Check Docker build (Dockerfile) (push) Failing after 30s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 33s
/ 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 40s
Release / Build Linux Server x86_64 (push) Failing after 44s
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
2024-11-11 19:48:50 +02:00
Elian Doran 470594b1c7 Merge pull request #573 from TriliumNext/perfectra1n-patch-2
Update README to mention MacOS command fix
2024-11-11 19:42:56 +02:00
Elian Doran 782d34566d Merge pull request #577 from hasecilu/i18n/Spanish_mini
i18n: Update Spanish translations, 100%
2024-11-11 19:41:32 +02:00
hasecilu 1b2a772612 i18n: Update Spanish translations, 100% 2024-11-11 10:35:54 -06:00
SiriusXT 497c24ee1e Fix the bug that code can't get the selected text 2024-11-11 23:13:26 +08:00
SiriusXT 8893e9d4d5 add replacement feature for code note 2024-11-11 22:57:24 +08:00
SiriusXT 2d9376a05c add a text replacement feature to the find_widget 2024-11-11 18:59:03 +08:00
SiriusXT ce40c74e83 Merge branch 'develop' into siriusxt_patch 2024-11-11 18:26:07 +08:00
SiriusXT 0aef04cea1 add a text replacement feature to the find_widget 2024-11-11 18:19:19 +08:00
SiriusXT 12b71961ae add a text replacement feature to the find_widget 2024-11-11 18:11:31 +08:00
Elian Doran 46218d6ab4 Merge pull request #574 from TriliumNext/fix-version-update-check
More reliably check for version updates
2024-11-11 00:47:51 +02:00
perf3ct 1d2366fa06 fix "click to download" button 2024-11-10 17:18:26 +00:00
perf3ct 0acba0eac4 add docstring for func 2024-11-09 22:23:02 +00:00
perf3ct 48d53e276e more reliably check for version numbers 2024-11-09 22:16:00 +00:00
Elian Doran 47baa02bca i18n: Translate 100% of Romanian 2024-11-09 23:34:18 +02:00
Elian Doran bc35c3c641 i18n: Remove some German-only messages 2024-11-09 23:31:45 +02:00
Jon Fuller 790b87f23f Update README to mention MacOS command fix 2024-11-09 13:28:45 -08:00
Elian Doran 48ba15ad88 i18n: Fix incorrect IDs for German 2024-11-09 23:25:34 +02:00
Elian Doran cda28cfd65 Merge pull request #561 from j13055/develop
added german translation
2024-11-09 23:17:23 +02:00
Elian Doran 7ffe145481 Merge pull request #569 from TriliumNext/perfectra1n-patch-2
Update README.md for incremented sync version
2024-11-09 23:14:53 +02:00
Elian Doran ac2bca790b Fix duplicate title for Trilium toolbar item (fixes #525) 2024-11-09 23:12:10 +02:00
Elian Doran 774966e640 client: Allow more link protocols (fixes #122) 2024-11-09 23:06:26 +02:00
Elian Doran 81310d33b0 Merge pull request #571 from TriliumNext/feature/classic_editor
Classic editor for text notes (with fixed toolbar)
2024-11-09 22:40:38 +02:00
Jon Fuller 34e6430977 Update README.md
Co-authored-by: Elian Doran <contact@eliandoran.me>
2024-11-09 12:30:52 -08:00
Elian Doran 15b4eacdca client: Change design of editor settings slightly 2024-11-09 21:35:37 +02:00
Elian Doran 7c342aed9e client: Use translations for editor settings 2024-11-09 21:34:09 +02:00
Elian Doran 8c69d47aed client,server: Implement shortcut for toggle classic editor toolbar 2024-11-09 18:36:38 +02:00
Elian Doran f88d3220b5 client: Repair attribute editor 2024-11-09 18:09:05 +02:00
Elian Doran 70a98a3d33 client: Use refactored version of CKEditor 2024-11-09 15:40:14 +02:00
Elian Doran 6e0a10cf2c client: Hide ribbon tab when classic editor is off 2024-11-09 14:54:04 +02:00
Elian Doran c421e75f55 client: Respect editor type choice 2024-11-09 14:49:05 +02:00
Elian Doran 89420eafa3 client: Set up ui for selecting editor UI 2024-11-09 14:33:20 +02:00
Elian Doran 7a70fc14b3 server: Set up editor type option 2024-11-09 14:33:14 +02:00
Elian Doran d2008e7e5f client: Use different method to highlight disabled buttons 2024-11-09 14:15:03 +02:00
Elian Doran 745c9846a6 client: Use better method to expose CK watchdog 2024-11-09 14:13:08 +02:00
Elian Doran 3972bb2ecf client: Use build of CKEditor containing both types 2024-11-09 14:11:15 +02:00
Elian Doran 06262adf91 client: Use translation for classic toolbar title 2024-11-09 13:40:13 +02:00
Elian Doran 5771060b57 client: Reorganize classic toolbar 2024-11-09 13:39:24 +02:00
Elian Doran 6a11f9c073 client: Add some JSDoc 2024-11-09 10:46:12 +02:00
Elian Doran 85ee7def84 client: Improve loading feel for classic toolbar 2024-11-09 10:37:14 +02:00
Elian Doran b88f0e0109 client: Hide ribbon for non text or read-only notes 2024-11-09 10:33:45 +02:00
Elian Doran 787aa6f5a6 client: Remove background for decoupled editor 2024-11-09 09:56:25 +02:00
Elian Doran 4f39188198 client: Use decoupled CKEditor 2024-11-09 09:43:37 +02:00
Elian Doran dd6e762dab client: Activate ribbon toolbar by default 2024-11-09 09:19:38 +02:00
Elian Doran 48bc9204ac client: Create empty toolbar ribbon 2024-11-09 09:18:59 +02:00
Elian Doran 918f425e1f client: Group options for classic editor 2024-11-09 09:12:46 +02:00
Elian Doran 821af8dc11 client: Integrate block toolbar into classic options 2024-11-09 08:29:58 +02:00
Elian Doran 44734435ea client: Remove block toolbar in classic mode 2024-11-09 00:32:26 +02:00
Elian Doran 01c53b6d9f client: Use same config as bubble editor for classic 2024-11-09 00:21:27 +02:00
Elian Doran 9a5de0d4c8 client: Basic integration of classic editor w/ no attribute editor 2024-11-09 00:15:19 +02:00
Elian Doran 5116bddc5f client: Group image align buttons in CKEditor 2024-11-08 23:44:52 +02:00
Elian Doran 92aa671ec7 client: Support inline images in CKEditor (fixes #531) 2024-11-08 23:29:56 +02:00
Elian Doran 1f4d09f6f0 client: Patch CKEditor to fix IME (fixes #568)
See https://github.com/ckeditor/ckeditor5/pull/16289
2024-11-08 22:49:07 +02:00
Elian Doran 29e83b97e6 client: Fix rendering notes if hljs is not loaded 2024-11-08 21:50:22 +02:00
Jon Fuller 18de0857b3 Update README.md for incremented sync version 2024-11-08 10:43:45 -08:00
Elian Doran 2048a30aa5 Merge pull request #547 from TriliumNext/smaller-container
Make the container smaller
2024-11-08 19:20:48 +02:00
Elian Doran 78017e4d36 client: Improve classic toolbar layout on mobile 2024-11-08 00:26:20 +02:00
Elian Doran 35fe5845a3 client: Fix classic editor on mobile 2024-11-08 00:20:51 +02:00
Elian Doran 1261bdbb29 client: Use correct background for code note preview 2024-11-07 23:58:10 +02:00
Elian Doran 91fa1a6cb1 client: Add syntax highlight for code note previews 2024-11-07 23:53:02 +02:00
Elian Doran 1816fcd3ac client: force-graph: 1.45.0 -> 1.46.0 2024-11-07 23:11:22 +02:00
Elian Doran d13044b972 client: mind-elixir: 4.3.0 -> 4.3.1 2024-11-07 23:09:59 +02:00
Elian Doran f5205fdd30 electron: Fix code block theme loading in dev mode 2024-11-07 23:09:53 +02:00
Elian Doran 930b8e0ce2 Merge pull request #555 from rom1dep/mouse_scroll_dir
fix: mouse scroll wheel direction for zoom level
2024-11-07 22:25:24 +02:00
Elian Doran b5988ba7c2 Merge pull request #559 from TriliumNext/siriusxt-test
Make attachments open in a new tab/browser
2024-11-07 22:22:42 +02:00
j13055 75e2ceed5d added german translation 2024-11-06 13:52:23 +01:00
SiriusXT d2ee3738a2 Make attachments open in a new tab/browser 2024-11-06 10:02:42 +08:00
perf3ct 8a548f6589 also update the Alpine Dockerfile 2024-11-05 16:41:00 +00:00
perf3ct 0859a955b1 Results in a much smaller container 2024-11-04 17:38:05 -08:00
Elian Doran a02146df17 server: Fix loading of code block theme on server builds 2024-11-05 02:58:21 +02:00
Elian Doran a6385557b5 Merge pull request #545 from TriliumNext/latest-is-stable-container
Explicitly manage the "latest" tag, and have it point to the same tag as "stable"
2024-11-05 02:41:03 +02:00
Elian Doran 00aebfcdf0 Merge pull request #530 from Potjoe-97/patch-1
Patch fr translation
2024-11-05 02:38:53 +02:00
Elian Doran c6b3ace807 client: mind-elixir: 4.2.4 -> 4.3.0 2024-11-05 02:33:12 +02:00
Elian Doran 6799544950 Update package-lock.json 2024-11-05 02:31:42 +02:00
Elian Doran da1cf4d6ed Bump to 0.90.10-beta
/ Check Docker build (Dockerfile) (push) Failing after 35s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 36s
/ 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 40s
Release / Make Electron (x64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 31s
Release / Build Linux Server x86_64 (push) Failing after 27s
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
2024-11-04 17:24:30 +02:00
Romain DEP. 21cfb64f83 fix: mouse scroll wheel direction 2024-11-03 23:01:01 +01:00
Adorian Doran dd7c2084fa client: apply grouping to the MIME type list 2024-11-03 15:43:33 +02:00
Adorian Doran 4f5d874028 client: Use a multiple column layout for the MIME type listing 2024-11-03 15:42:13 +02:00
Potjoe-97 80e6276d31 Merge branch 'develop' into patch-1 2024-11-03 10:48:00 +01:00
Potjoe-97 0192060ad2 Update fr server.json : all strings translated 2024-11-03 10:44:56 +01:00
Potjoe-97 e41ff54c0d Update translation.json : all strings translated 2024-11-03 10:43:15 +01:00
perf3ct bdece7216f have the latest tag be the same as stable tag
get rid of this annoying default "latest" tag useage

to squash

to squash, I love whitespace

don't need to verify
2024-11-02 21:51:06 +00:00
Elian Doran 611fb90a52 Merge pull request #544 from hasecilu/i18n/Spanish_update
i18n: Update Spanish translations
2024-11-02 21:45:41 +02:00
hasecilu 75e554d86b i18n: Update Spanish translations 2024-11-02 13:09:44 -06:00
Elian Doran 0db1a63cef client: Fix sync error toast 2024-11-02 19:02:26 +02:00
Elian Doran 4ffc6f716c client: Enable syntax highlighting in print 2024-11-02 16:40:33 +02:00
Elian Doran fa3200ba8f electron: Fix docnotes not rendering 2024-11-02 16:11:59 +02:00
Elian Doran bff9bedc44 i18n: Translate sync messages 2024-11-02 15:43:16 +02:00
Elian Doran f8777b0de1 server: Fix path on dev environment 2024-11-02 15:01:58 +02:00
Adorian Doran 48e6c1a33d client: Properly align of the "Override theme fonts" checkbox 2024-11-02 14:34:55 +02:00
Adorian Doran 4c43ac5bdd client: Use a shadowless box for printed code blocks 2024-11-02 14:29:20 +02:00
Elian Doran 45ccc7562e client: Fix error in toast due to missing import 2024-11-02 12:19:17 +02:00
Elian Doran e72eb5f27c electron: Fix asset path on forge build 2024-11-02 11:49:33 +02:00
Elian Doran d1404492a7 build: Use shorter special version moniker
Some builds fail in the CI because the extra part of the version is limited to 20 chars.
2024-11-02 11:04:16 +02:00
Elian Doran 238c9c6f0d build: Fix updating nightly version for desktop builds 2024-11-02 10:43:42 +02:00
Elian Doran 443f02a78e client,server: i18next: 23.16.2 -> 23.16.4 2024-11-02 10:24:53 +02:00
Elian Doran 5fbd052138 build: Update tooling dependencies 2024-11-02 10:23:46 +02:00
Elian Doran bc84a71929 client: mermaid: 11.3.0 -> 11.4.0 2024-11-02 10:22:22 +02:00
Elian Doran a514a51fff client: mind-elixir: 4.2.3 -> 4.2.4 2024-11-02 10:18:58 +02:00
Elian Doran 24022834e2 db: Update demo section on code blocks 2024-11-02 10:15:22 +02:00
Elian Doran 9fdc84d91f build: Update nightly version for server as well 2024-11-02 09:53:36 +02:00
Elian Doran 9c27672794 build: Update nightly version to avoid caching issues 2024-11-02 09:47:31 +02:00
Elian Doran f37fa3723b Merge pull request #526 from TriliumNext/feature/syntax_highlight
Basic syntax highlight support for code blocks
2024-11-02 01:46:02 +02:00
Elian Doran b14065d442 server: Address self-review 2024-11-02 01:42:25 +02:00
Elian Doran 1554e25283 server: Add documentation for code_block_theme 2024-11-02 01:39:35 +02:00
Elian Doran 4e945583a1 server: Add some documentation 2024-11-02 00:55:45 +02:00
Elian Doran 92c588dc98 server: Implement color theme migration based on existing theme 2024-11-02 00:39:22 +02:00
Elian Doran 5c66e3fd04 server: Initialize code block theme for old databases as well 2024-11-02 00:20:27 +02:00
Elian Doran e508313f21 electron: Fix deprecation warning 2024-11-01 23:42:32 +02:00
Elian Doran df3f51d1f3 electron: Fix loading of highlight.js 2024-11-01 23:42:23 +02:00
Elian Doran 0a6815e448 Merge remote-tracking branch 'origin/develop' into feature/syntax_highlight 2024-11-01 23:20:12 +02:00
Elian Doran 293db6962e Merge branch 'develop' of ssh://github.com/TriliumNext/Notes into develop 2024-11-01 23:14:41 +02:00
Elian Doran eb05c5b919 Merge pull request #534 from TriliumNext/AutomaticallyShowRecentNotes
Automatically trigger autocomplete on focus.
2024-11-01 20:37:39 +02:00
Elian Doran bbaed45f6b client: Fix scrolling in empty tab search list after constraining height 2024-11-01 20:23:46 +02:00
Elian Doran aa7d7b3afd client: Add borders to empty tab search list 2024-11-01 20:20:53 +02:00
Elian Doran fc4797d04f Merge pull request #541 from TriliumNext/export_file_name
Crop fileName  and prevent cutting into the extension.
2024-11-01 19:44:31 +02:00
Elian Doran c2baa4b752 server: Add comment to clarify use of regex 2024-11-01 19:43:39 +02:00
Elian Doran faeefc75ba Merge pull request #542 from TriliumNext/close_tabs
close right tabs
2024-11-01 19:07:55 +02:00
Elian Doran d0904c1051 client: Change translation for closing tabs to the right 2024-11-01 19:05:56 +02:00
Elian Doran 11a82e62f1 client: Change layout of tab context menu slightly 2024-11-01 19:03:06 +02:00
SiriusXT 7b24f7e332 close right tabs 2024-11-01 22:01:46 +08:00
SiriusXT 7f17f93767 Crop fileName and prevent cutting into the extension. 2024-11-01 21:43:09 +08:00
SiriusXT cdd5a17fce Make note-detail-empty always display autocompletion. 2024-11-01 15:30:31 +08:00
SiriusXT dbca50d9b0 Make note-detail-empty always display autocompletion. 2024-11-01 14:45:49 +08:00
Elian Doran 57a86c75d8 i18n: Fix single Romanian translation 2024-10-31 23:54:50 +02:00
Elian Doran 4032135505 Revert "client: Move ribbon at the bottom"
This reverts commit 9b4ae87ef875d83c8735743972663f82913c9ff3.
2024-10-31 23:44:32 +02:00
Elian Doran db0911cc28 client: Focus promoted cell when clicking label 2024-10-31 23:42:14 +02:00
Elian Doran ac61d0f3ea client: Move ribbon at the bottom 2024-10-31 23:42:14 +02:00
Elian Doran fcebb43410 client: Use single column layout for promoted attributes 2024-10-31 23:42:14 +02:00
Elian Doran 18b0907841 client: Move note title to scrolling container 2024-10-31 23:42:14 +02:00
Elian Doran 35da7908f8 client: Move promoted attributes to scrolling container 2024-10-31 23:42:14 +02:00
Elian Doran 9e3c1b46cd client: Don't load syntax highlighter when not needed 2024-10-31 22:47:34 +02:00
Elian Doran 00209ec77a client: Apply syntax highlight to included notes 2024-10-31 22:18:00 +02:00
Elian Doran dfa4f3cd84 client: Apply syntax highlight to note preview 2024-10-31 22:14:54 +02:00
Elian Doran 3af29a78dc client: Refactor syntax highlighting for read-only text into service 2024-10-31 22:11:59 +02:00
Elian Doran 4d783f1879 client: Fix color theme leak when deactivating highlighting 2024-10-31 21:45:06 +02:00
Elian Doran c3e10b2b76 client: Remove syntax highlight in preview when disabled 2024-10-31 21:33:00 +02:00
Elian Doran f57ab4b9f0 client: Fix word wrap preview being in reverse 2024-10-31 21:29:01 +02:00
Elian Doran a690155d7e client: Improve group for no theme 2024-10-31 21:17:40 +02:00
Elian Doran cc0b3db424 client: Translate dark/light color theme groups 2024-10-31 21:00:48 +02:00
Elian Doran ae60f8c842 client: Group color themes by dark/light 2024-10-31 20:54:33 +02:00
Elian Doran 90dffdc6ed client: Enable preview for word wrap 2024-10-31 20:18:02 +02:00
Elian Doran ac13291744 client,server: Allow disabling syntax highlight 2024-10-31 18:03:52 +02:00
Elian Doran bbc038f254 Merge remote-tracking branch 'origin/develop' into feature/syntax_highlight 2024-10-31 17:48:49 +02:00
Elian Doran f8df3a6933 client: Fix crash for some unhandled rejections 2024-10-31 17:48:33 +02:00
Elian Doran b10e2d9ec4 Update README to add a few shields 2024-10-31 14:00:14 +02:00
SiriusXT 2387bbd17f Automatically trigger autocomplete on focus. 2024-10-30 22:30:40 +08:00
Adorian Doran f13d88c3c0 Add a background color transition for the code sample 2024-10-29 18:46:55 +02:00
Adorian Doran 2459bbf341 Improve the layout of the "Word wrapping" checkbox 2024-10-29 18:39:14 +02:00
Adorian Doran 60426ea487 Fix word-wrapping 2024-10-29 12:57:15 +02:00
Adorian Doran b112cb609f Tweak the padding of the language badges 2024-10-29 01:55:29 +02:00
Adorian Doran b9ebc66122 Customize the scrollbar in code boxes for WebKit-based browsers 2024-10-29 01:30:08 +02:00
Adorian Doran 2f4ed92346 Prevent the language badge to be scrolled in code boxes 2024-10-29 01:07:24 +02:00
Adorian Doran d3d001d8ea Tweak (again) the shadow of code blocks 2024-10-28 23:52:45 +02:00
Adorian Doran 70cee7dbf6 Tweak the shadow of code blocks 2024-10-28 23:44:40 +02:00
Adorian Doran 36fde2b03d Tweak the language badge of code blocks 2024-10-28 23:29:53 +02:00
Potjoe-97 88d8f57697 Merge pull request #3 from Potjoe-97/patch-2
Update translation.json
2024-10-28 16:03:33 +01:00
Potjoe-97 b7e254975f Update translation.json 2024-10-28 16:02:17 +01:00
Potjoe-97 97b2ba2da1 Update server.json 2024-10-28 16:01:04 +01:00
Adorian Doran bda8173932 Improve the sample code 2024-10-28 16:08:46 +02:00
Adorian Doran 48f9f072b4 Format theme names 2024-10-28 16:07:52 +02:00
Elian Doran 9c55203ea0 client: Add credits 2024-10-28 00:05:43 +02:00
Elian Doran dbb5e0e971 server: Add friendlier names for color themes 2024-10-27 23:46:03 +02:00
Elian Doran b8eb09b46b server: Refactor code block theme search into own service 2024-10-27 23:12:55 +02:00
Elian Doran 5682b2d819 client: Translate word wrapping 2024-10-27 22:57:34 +02:00
Elian Doran 5109c07e9c client: Toggle word wrapping for code blocks 2024-10-27 22:51:24 +02:00
Elian Doran b8569ea243 client, server: Create option to control word wrapping for code blocks 2024-10-27 21:51:56 +02:00
Elian Doran 52bc28def7 client: Rename section to CodeBlockOptions 2024-10-27 21:42:40 +02:00
Elian Doran e65d4cdfbf client: Rename endpoint to codeblock-themes 2024-10-27 21:40:22 +02:00
Elian Doran 96b9042559 client: Rename option to codeBlockTheme 2024-10-27 21:39:50 +02:00
Elian Doran e68d070320 client: Set up localization for syntax highlighting section 2024-10-27 21:27:35 +02:00
Elian Doran ef5f2c680b client: Rephrase theme section 2024-10-27 21:19:27 +02:00
Elian Doran 6717b1b4ae client: Rephrase section 2024-10-27 21:15:51 +02:00
Elian Doran 41e3163595 client: Fix flicker of font selection 2024-10-27 21:03:13 +02:00
Elian Doran 514653fb50 client: Fix flicker of preview 2024-10-27 20:22:23 +02:00
Elian Doran e843f1adc1 client: Fix background of preview 2024-10-27 20:19:53 +02:00
Elian Doran 83f5b47c99 client: Set up simple preview for syntax highlight 2024-10-27 20:18:44 +02:00
Elian Doran 2fdff29067 client: Apply syntax highlight in real-time 2024-10-27 20:08:12 +02:00
Elian Doran 0d270cbeb6 client: Use 3px shadow for dark theme 2024-10-27 20:01:08 +02:00
Elian Doran f947a039b9 client: Apply background to read-only code blocks as well 2024-10-27 19:58:00 +02:00
Elian Doran d2235a185b client: Improve style for code blocks 2024-10-27 19:54:05 +02:00
Elian Doran 87bc142552 client: Fix foreground color 2024-10-27 19:43:48 +02:00
Elian Doran 1a25f60264 client: Fix background color 2024-10-27 19:41:28 +02:00
Elian Doran fe4dbae079 client: Apply highlighting theme on refresh 2024-10-27 17:41:37 +02:00
Elian Doran e1ae014b74 server: Remove dashes from syntax theme name 2024-10-27 17:25:05 +02:00
Elian Doran 7952a5a81e client: Fix order of options 2024-10-27 12:54:40 +02:00
Elian Doran 60b6f7df89 client: Allow switching theme 2024-10-27 12:54:06 +02:00
Elian Doran 7354fb5b4a client,server: List syntax highlighting themes 2024-10-27 12:41:53 +02:00
Elian Doran 1fb0b74f76 client: Use same mechanism for read-only notes 2024-10-27 12:15:32 +02:00
Elian Doran 9e3b915612 client: Use translation for auto-detect 2024-10-27 11:47:36 +02:00
Elian Doran 7505db220e client: Implement auto syntax highlighting 2024-10-27 11:46:19 +02:00
Elian Doran a3932376f3 client: Add Javadoc for newly introduced methods 2024-10-27 11:32:54 +02:00
Elian Doran 3a609d54ab client: Fix highlighting for JavaScript 2024-10-27 11:21:08 +02:00
Elian Doran c4bd4eb440 client: Respect user language selection for editor 2024-10-27 11:18:36 +02:00
Elian Doran e931df721d client: Fix duplication when requesting scripts 2024-10-27 10:48:50 +02:00
Elian Doran 1e9324c303 client: Support custom language types for highlight 2024-10-27 10:39:31 +02:00
Elian Doran 6c4513fb2e client: Enable syntax highlight for read-only notes 2024-10-27 08:52:34 +02:00
Elian Doran c7e1362105 Merge branch 'develop' into feature/syntax_highlight 2024-10-26 23:39:49 +03:00
Elian Doran acf37f9327 client: Fix error when duplicating note 2024-10-26 23:39:38 +03:00
Elian Doran f80cf0aa02 Add limit to blocks highlighting 2024-10-26 23:39:18 +03:00
Elian Doran 6078620bf1 Carry over code block highlighting 2024-10-26 23:27:23 +03:00
Elian Doran 579b3f4ca0 Carry over highlighter initialization 2024-10-26 23:21:51 +03:00
Elian Doran bf28005f46 Create dedicated file for syntax highlight 2024-10-26 23:16:24 +03:00
Elian Doran c81b847b61 Set up highlight.js 2024-10-26 22:57:07 +03:00
Elian Doran 05116b3b0d client-ts: Port widgets/icon_list 2024-10-26 10:41:02 +03:00
Elian Doran 8cc271a192 client: Fix a few TypeScript build errors 2024-10-26 10:31:51 +03:00
Elian Doran 86fc59d265 Merge remote-tracking branch 'origin/develop' into feature/client_typescript_port1
; Conflicts:
;	package-lock.json
;	package.json
;	src/public/app/components/app_context.ts
;	src/public/app/services/hoisted_note.ts
;	src/public/app/services/open.ts
;	src/public/app/services/toast.ts
2024-10-26 10:20:19 +03:00
Elian Doran 88cd2ac25c build: Fix duplication 2024-10-26 01:00:44 +03:00
Elian Doran e3e6f56a88 build: Add icon.png for Linux builds (fixes #507) 2024-10-26 00:58:02 +03:00
Elian Doran 0768a2a0a3 build: Add StartupWMClass to deb build 2024-10-26 00:42:44 +03:00
Elian Doran 84d216da54 i18n: Translate missing keys for Romanian 2024-10-25 21:06:03 +03:00
Elian Doran 391f518c01 i18n: Translate search note prefix 2024-10-25 21:04:13 +03:00
Elian Doran 2324c9a13b client: Fix HTML in some toasts 2024-10-25 20:51:50 +03:00
Elian Doran 6799c44e22 client: Fix redundant toast message 2024-10-25 20:50:13 +03:00
Elian Doran f0052d56b7 Merge pull request #520 from hasecilu/i18n/more_Spanish_translation
More Spanish translation
2024-10-25 20:49:48 +03:00
Elian Doran 53822fd47f client: Remove redundant global 2024-10-25 20:44:08 +03:00
hasecilu b02c4b54e5 i18n: Fix source strings 2024-10-25 11:32:43 -06:00
hasecilu 27f07ee604 i18n: Update Spanish translations 2024-10-25 11:32:42 -06:00
Elian Doran 03a23d15f9 client: Fix double errors if not returning a widget 2024-10-25 20:22:29 +03:00
Elian Doran 70d55097ee client: Fix crash if note tree fails to find a child note 2024-10-25 20:15:12 +03:00
Elian Doran 560467bdba client: Log uncaught promise errors 2024-10-25 19:57:40 +03:00
Elian Doran cb4fe4481f client: Strengthen widget rendering errors detection 2024-10-25 19:57:31 +03:00
Elian Doran eee088316d client: Improve logging for some bundle errors 2024-10-24 20:55:36 +03:00
Elian Doran 81ca0a3776 client: Improve logging for basic sync crash 2024-10-24 18:47:16 +03:00
Elian Doran 48b0af1bba client: Stop crash if right widget crashes during render 2024-10-24 18:14:17 +03:00
Elian Doran 43ef452d44 client: Fix error when running script due to translations 2024-10-23 20:33:55 +03:00
Elian Doran 70ebf1a08f client: Fix content size for code editor 2024-10-23 20:27:36 +03:00
Elian Doran 9f6f0f5d60 server: Update locale when switching language from settings 2024-10-23 19:56:06 +03:00
Elian Doran af67362ad6 server: Translate weekday and month names 2024-10-23 19:34:09 +03:00
Elian Doran 77550f3087 server: Fix regression due to express types
/ Check Docker build (Dockerfile) (push) Failing after 41s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 26s
/ 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 37s
Release / Make Electron (x64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 38s
Release / Build Linux Server x86_64 (push) Failing after 40s
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
2024-10-22 20:09:42 +03:00
Elian Doran 5813282248 Prepare for 0.90.9-beta 2024-10-22 20:05:43 +03:00
Elian Doran e77b223508 client: Update force-graph 1.43.5 -> 1.45.0 2024-10-22 20:03:05 +03:00
Elian Doran 7aafdce629 server: Update jasmine, debounce 2024-10-22 19:56:15 +03:00
Elian Doran a2f0cb394a server: Update marked, sanitize-html to latest 2024-10-22 19:53:22 +03:00
Elian Doran e8d1518965 build: Update TypeScript 2024-10-22 19:30:34 +03:00
Elian Doran 8b333b32af mind-elixir: 4.2.2 -> 4.2.3 2024-10-22 19:27:53 +03:00
Elian Doran cda369ed4d server: Update express, express-rate-limit, express-session to latest 2024-10-22 19:25:47 +03:00
Elian Doran b5bc93d794 i18next: 23.16.1 -> 23.16.2 2024-10-22 19:24:16 +03:00
Elian Doran b96047e962 vanilla-js-wheel-zoom: 9.0.2 -> 9.0.4 2024-10-22 19:22:14 +03:00
Elian Doran 31ccbb0d23 mind-elixir: 4.2.0 -> 4.2.2 2024-10-22 19:17:52 +03:00
Elian Doran cb9403535d i18next: 23.16.0 -> 23.16.1 2024-10-22 19:17:52 +03:00
Elian Doran b5ee90a1d2 i18n: Translate delete/restore branch 2024-10-22 19:17:52 +03:00
Elian Doran 9ed7eb977e i18n: Translate launcher context menu 2024-10-22 19:17:52 +03:00
Elian Doran 8cc487da7c i18n: Translate confirmation popups 2024-10-22 19:17:52 +03:00
Elian Doran ae593ea363 i18n: Translate protected session 2024-10-22 19:17:52 +03:00
Elian Doran 26e4decaec i18n: Translate toast errors 2024-10-22 19:17:52 +03:00
Elian Doran 28f6712a4f i18n: Translate toast messages 2024-10-22 19:17:52 +03:00
Elian Doran 93efce4023 server: Minimize not found logs (closes #505) 2024-10-22 19:17:52 +03:00
Elian Doran 689b3a3079 i18n: Fix capitalization of no anonymization 2024-10-22 19:17:51 +03:00
Elian Doran 4ad725842e server: Trim .htm when importing zip (closes #500) 2024-10-20 00:17:51 +03:00
Elian Doran d4956ad3a2 client: Refactor and add documentation 2024-10-19 23:19:11 +03:00
Elian Doran c7b7c68a05 client: Reduce code duplication for CodeMirror 2024-10-19 23:12:33 +03:00
Elian Doran cab1d7d353 client: Set up syntax highlight in read-only code (closes #504) 2024-10-19 22:56:45 +03:00
Elian Doran 7957c6d34e client: Fix promoted attribute style regressions (closes #503) 2024-10-19 22:40:27 +03:00
Elian Doran c18c972a57 i18n: Use variable interpolation for delete relation warning 2024-10-19 11:13:54 +03:00
Elian Doran 29a700f731 i18n: Fix duplication in delete relations count 2024-10-19 10:55:48 +03:00
Elian Doran 815eab26f6 i18n: Fix duplication in delete note count 2024-10-19 10:50:56 +03:00
Elian Doran 103da23b5a i18n: Fix strange title in Romanian 2024-10-19 10:46:28 +03:00
Elian Doran ba1d82bc0a i18n: Fix capitalization of checkbox 2024-10-19 10:45:45 +03:00
Elian Doran 21f8a29761 Bump to v0.90.8
/ Check Docker build (Dockerfile) (push) Failing after 33s
/ Check Docker build (Dockerfile.alpine) (push) Failing after 33s
/ 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 42s
Release / Make Electron (x64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 31s
Release / Build Linux Server x86_64 (push) Failing after 39s
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
2024-10-19 09:44:34 +03:00
Elian Doran f38870b27d i18next: 23.15.2 -> 23.16.0 2024-10-17 23:15:46 +03:00
Elian Doran 56a6d27240 client: mind-elixir: 4.1.5 -> 4.2.0 2024-10-17 23:12:43 +03:00
Elian Doran 38e5ef2c7d i18n: Translate some more Romanian messages 2024-10-17 22:50:20 +03:00
Elian Doran e29d600517 Merge pull request #489 from TriliumNext/add-stable-tag-to-containers
Introduce `stable` tag on containers
2024-10-17 22:43:04 +03:00
Elian Doran 42605fbbad Merge pull request #495 from Potjoe-97/develop
i18n : Add fr translation (2/2)
2024-10-17 22:42:01 +03:00
Elian Doran 11ca427a28 Merge pull request #496 from hasecilu/i18n/Spanish_more
Continue Spanish translation
2024-10-17 22:40:34 +03:00
hasecilu 28d8088763 i18n: Create script to create PO files for translation
Script for translators
2024-10-17 13:34:40 -06:00
hasecilu 664c4789c0 i18n: Update Spanish translation 2024-10-17 12:30:36 -06:00
Potjoe-97 7c5667b457 Minor fixes 2024-10-17 15:54:42 +02:00
Potjoe-97 0afd22e196 Edited French option to display native spelling 2024-10-17 15:12:51 +02:00
Potjoe-97 b3abee71b7 Major overhaul fr translation
Corrections & Consistency
2024-10-17 13:33:28 +02:00
Elian Doran 9bd5596b2a i18n: Set up French 2024-10-16 20:29:42 +03:00
Elian Doran e0e3c15e6e Merge pull request #493 from Potjoe-97/develop
Add french translation
2024-10-16 20:28:38 +03:00
Potjoe-97 31396264fa Corrections i18n : {} attribute detail 2024-10-16 14:52:05 +02:00
Potjoe-97 b1aada22b5 Corrections in /src/public/translations/fr 2024-10-16 11:32:34 +02:00
Elian Doran d7eaf72a6d Merge pull request #491 from TriliumNext/feature/i18n-part6
Feature/i18n part6
2024-10-16 12:13:28 +03:00
Potjoe-97 59df442676 Corrections /src/public/translations/fr
Consistency in translations/server.json
2024-10-15 20:29:34 +02:00
Potjoe-97 9770db7f3c Consistency : "étiquette" now translated into "label" 2024-10-15 18:52:34 +02:00
Potjoe-97 8c36cea71b src/public/translations/fr : First draft 2024-10-15 18:16:39 +02:00
Potjoe-97 b03f40f1f9 Edit french translation 2024-10-15 15:48:11 +02:00
Potjoe-97 00dba7bef4 Add french translation 2024-10-15 15:20:04 +02:00
Nriver 4186f3d136 add translation for app_context.js 2024-10-15 15:46:34 +08:00
Nriver 529502524d add missing context menu translation 2024-10-15 15:24:01 +08:00
Nriver 7c518e9512 add translation for watched_file_update_status.js 2024-10-15 15:19:09 +08:00
Nriver 5e2d1bc124 add translation for toc.js 2024-10-15 15:12:09 +08:00
Nriver 7dfe6f276e update Chinese translation and synchronize with English 2024-10-15 15:05:48 +08:00
Nriver 858db68d66 add translation for tab_row.js 2024-10-15 14:51:26 +08:00
Jon Fuller b72f46f108 Don't add stable if pushed tag has - 2024-10-14 14:06:55 -07:00
Elian Doran 83dbe0539e client: Highlight content links on hover 2024-10-14 22:47:16 +03:00
Jon Fuller 87e0cf55f1 Introduce stable tag on containers
Closes #488
2024-10-14 12:18:29 -07:00
Elian Doran 8315d5c778 Update package-lock 2024-10-14 22:13:04 +03:00
Elian Doran 61bd7dca18 client: Fix underlines for all links (closes #485) 2024-10-14 22:12:48 +03:00
Elian Doran 7f338044b0 Merge pull request #484 from meichthys/develop
Move Description section to top of bug report
2024-10-14 09:39:56 +03:00
meichthys ea3f47b8fa Move Description section to top of bug report 2024-10-14 01:12:43 -04:00
Elian Doran 4faf27364f Merge branch 'develop' of ssh://github.com/TriliumNext/Notes into develop
/ Check Docker build (Dockerfile) (push) Failing after 29s
/ 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 42s
Release / Make Electron (x64, map[extension:deb image:ubuntu-latest name:linux]) (push) Failing after 32s
Release / Build Linux Server x86_64 (push) Failing after 35s
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
2024-10-13 15:45:48 +03:00
Elian Doran 52a6d0b48a Bump version to 0.90.7-beta 2024-10-13 15:45:40 +03:00
Elian Doran cddc9a7b6a i18n: Mark mind map as beta 2024-10-13 14:43:50 +03:00
Elian Doran 75d019863f server: Disable debug mode for i18n 2024-10-13 14:40:07 +03:00
Elian Doran 849a6a3aef electron: Solve server translation loading on macOS 2024-10-13 14:24:46 +03:00
Elian Doran e7378306a2 Merge branch 'develop' of ssh://github.com/TriliumNext/Notes into develop 2024-10-13 13:52:39 +03:00
Elian Doran 1277dfc5d5 electron: Add back server translations 2024-10-13 12:31:37 +03:00
Elian Doran ae680847dc vscode: Pin nightly GitHub Action 2024-10-13 12:28:05 +03:00
Elian Doran a5fd57308a server: Fix translations in standalone build 2024-10-13 12:09:36 +03:00
Elian Doran fa769df7b0 client: Fix table background on dark mode 2024-10-13 11:20:26 +03:00
Elian Doran 8136a2972e Merge pull request #465 from quantum5/pwa-icon-fix
server: fix blurry PWA icon
2024-10-13 10:51:00 +03:00
Elian Doran 8c8c3974f3 Merge pull request #480 from hasecilu/i18n/Spanish_server
i18n: Add more Spanish translations
2024-10-13 10:07:39 +03:00
hasecilu e81bfa3693 i18n: Add more Spanish translations 2024-10-12 17:30:59 -06:00
Elian Doran a857f4816f codemirror: 5.65.15 -> 5.65.18 2024-10-12 20:48:39 +03:00
Elian Doran ade34f9745 client: Use CodeMirror from package.json 2024-10-12 20:41:50 +03:00
Elian Doran fd66cb930d electron: Update electron-forge to latest 2024-10-12 20:22:18 +03:00
Elian Doran 182d9afac1 tools: Update development tools 2024-10-12 20:18:44 +03:00
Elian Doran 4e6ef0be95 i18next: 23.15.1 -> 23.15.2 + http-backend 2024-10-12 20:16:23 +03:00
Elian Doran 88961ea93f mermaid: 11.2.0 -> 11.3.0 2024-10-12 20:14:46 +03:00
Elian Doran a3f2946a17 mind-elixir: 4.1.1 -> 4.1.5 2024-10-12 20:12:45 +03:00
Elian Doran 8ae5f9ea9b electron: Fix translations in packaged builds 2024-10-12 19:40:54 +03:00
Elian Doran 9ec2508f09 i18n: Add more Romanian translations 2024-10-12 18:53:24 +03:00
Elian Doran bae63b08a2 server, electron: Fix crash if locale is undefined 2024-10-12 18:24:10 +03:00
Elian Doran 729a188528 docker: Fix server translation initialization (closes #439) 2024-10-12 10:53:30 +03:00
Elian Doran 2c5a5acffa server: Improve type for keyboard shortcut scope 2024-10-12 10:31:12 +03:00
Elian Doran e45c5f429d server: Fix crash when starting server in Docker due to translations 2024-10-12 10:29:50 +03:00
Elian Doran 5c44ac5ad8 ci: Fix permissions for nightly 2024-10-11 22:15:50 +03:00
Elian Doran b44c2f5ebf ci: Configure nightly deployment 2024-10-11 22:07:22 +03:00
Elian Doran 0a69189b9b i18n: Reach 100% for Romanian 2024-10-09 22:04:00 +03:00
Quantum d46963e496 server: fix blurry PWA icon 2024-10-08 20:32:17 -04:00
Elian Doran 11c110f682 Update progress script to list files 2024-08-04 13:55:51 +03:00
Elian Doran c76c17fc6f Merge remote-tracking branch 'origin/develop' into feature/client_typescript_port1
; Conflicts:
;	package-lock.json
2024-08-04 13:42:54 +03:00
Elian Doran 28f633d903 client-ts: Add some small adjustments 2024-08-04 13:37:39 +03:00
Elian Doran f1896c3f5f client-ts: Port services/hoisted_note.js 2024-08-04 13:34:29 +03:00
Elian Doran e872e88376 client-ts: Port services/tree.js 2024-08-04 13:32:29 +03:00
Elian Doran cbdb8b8b18 client-ts: Port services/open.js 2024-08-04 13:27:23 +03:00
Elian Doran 90be9b28a8 client-ts: Fix type error in server.ts 2024-08-04 12:35:42 +03:00
Elian Doran b7754bcea0 client-ts: Port services/app/app_context 2024-07-25 21:03:15 +03:00
Elian Doran cd5ea28e14 client-ts: Port services/app/date_notes 2024-07-25 20:49:37 +03:00
Elian Doran ac7316ae93 client-ts: Port services/app/ws 2024-07-25 20:47:33 +03:00
Elian Doran c5113d9881 client-ts: Fix build errors in froca 2024-07-25 20:44:00 +03:00
Elian Doran efaa1f47f7 client-ts: Port services/app/froca_updater 2024-07-25 20:42:56 +03:00
Elian Doran 8fb6b64fa9 client-ts: Port services/app/entities 2024-07-25 20:36:15 +03:00
Elian Doran 047c3eea69 client-ts: Port services/app/components/zoom 2024-07-25 19:27:42 +03:00
Elian Doran 6c7a272edc client-ts: Port services/app/services/spaced_update 2024-07-25 19:22:44 +03:00
Elian Doran 411234dd9c client-ts: Port services/app/components/component 2024-07-25 19:21:40 +03:00
Elian Doran 65563cb29e client-ts: Port services/protected_session_holder 2024-07-25 00:27:55 +03:00
Elian Doran cf57819b22 client-ts: Port services/toast 2024-07-25 00:26:27 +03:00
Elian Doran 78f929ee69 client-ts: Port services/options 2024-07-25 00:25:11 +03:00
Elian Doran 5875aa3bef client-ts: Port services/server 2024-07-25 00:24:20 +03:00
Elian Doran ba7035a346 client-ts: Port services/utils 2024-07-25 00:18:57 +03:00
Elian Doran 0c8092b8f4 client-ts: Port services/entities/fblob 2024-07-25 00:13:53 +03:00
Elian Doran bece0aa784 client-ts: Port services/mutex 2024-07-25 00:12:24 +03:00
Elian Doran 679e9eba77 client-ts: Port services/load_results 2024-07-25 00:09:34 +03:00
Elian Doran 6c94cbf388 client-ts: Port services/css_class_manager 2024-07-25 00:01:39 +03:00
Elian Doran 81327a09d5 client-ts: Port services/promoted_attribute_definition_parser 2024-07-24 23:57:43 +03:00
Elian Doran 3fbedfb0a1 client-ts: Port services/validation_error 2024-07-24 23:30:10 +03:00
Elian Doran 380f4a1d54 client-ts: Adapt progress script 2024-07-24 23:23:36 +03:00
1151 changed files with 191554 additions and 113394 deletions
+23
View File
@@ -0,0 +1,23 @@
root = true
[*.{js,ts}]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[{server,translation}.json]
charset = utf-8
end_of_line = lf
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
+3
View File
@@ -0,0 +1,3 @@
package-lock.json linguist-generated=true
**/package-lock.json linguist-generated=true
libraries/** linguist-vendored
+7 -8
View File
@@ -1,8 +1,13 @@
name: Bug Report
description: Report a bug
title: "(Bug report) "
labels: "Type: Bug"
type: "Bug"
body:
- type: textarea
attributes:
label: Description
description: A clear and concise description of the bug and any additional information.
validations:
required: true
- type: input
attributes:
label: TriliumNext Version
@@ -38,12 +43,6 @@ body:
placeholder: "e.g. Windows 10 version 1909, macOS Catalina 10.15.7, or Ubuntu 20.04"
validations:
required: true
- type: textarea
attributes:
label: Description
description: A clear and concise description of the bug and any additional information.
validations:
required: true
- type: textarea
attributes:
label: Error logs
+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
+31
View File
@@ -0,0 +1,31 @@
inputs:
os:
description: "One of the supported platforms: windows"
required: true
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"
+90 -1
View File
@@ -9,10 +9,35 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
GHCR_REGISTRY: ghcr.io
DOCKERHUB_REGISTRY: docker.io
IMAGE_NAME: ${{ github.repository_owner }}/notes
TEST_TAG: ${{ github.repository_owner }}/notes:test
jobs:
test_dev:
name: Test development
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- run: npm ci
- name: Run the TypeScript build
run: npx tsc
build_docker:
name: Build Docker image
runs-on: ubuntu-latest
needs:
- test_dev
steps:
- uses: actions/checkout@v4
- name: Set up node & dependencies
@@ -30,4 +55,68 @@ jobs:
with:
context: .
cache-from: type=gha
cache-to: type=gha,mode=max
cache-to: type=gha,mode=max
test_docker:
name: Check Docker build
runs-on: ubuntu-latest
needs:
- build_docker
strategy:
matrix:
include:
- dockerfile: Dockerfile.alpine
- dockerfile: Dockerfile
steps:
- name: Checkout the repository
uses: actions/checkout@v4
- name: Set IMAGE_NAME to lowercase
run: echo "IMAGE_NAME=${IMAGE_NAME,,}" >> $GITHUB_ENV
- name: Set TEST_TAG to lowercase
run: echo "TEST_TAG=${TEST_TAG,,}" >> $GITHUB_ENV
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- run: npm ci
- name: Run the TypeScript build
run: npx tsc
- name: Create server-package.json
run: cat package.json | grep -v electron > server-package.json
- name: Build and export to Docker
uses: docker/build-push-action@v6
with:
context: .
file: ${{ matrix.dockerfile }}
load: true
tags: ${{ env.TEST_TAG }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Validate container run output
run: |
CONTAINER_ID=$(docker run -d --log-driver=journald --rm --name trilium_local ${{ env.TEST_TAG }})
echo "Container ID: $CONTAINER_ID"
- name: Wait for the healthchecks to pass
uses: stringbean/docker-healthcheck-action@v3
with:
container: trilium_local
wait-time: 50
require-status: running
require-healthy: true
# Print the entire log of the container thus far, regardless if the healthcheck failed or succeeded
- name: Print entire log
if: always()
run: |
journalctl -u docker CONTAINER_NAME=trilium_local --no-pager
+85 -39
View File
@@ -33,7 +33,7 @@ jobs:
steps:
- name: Checkout the repository
uses: actions/checkout@v4
- name: Set IMAGE_NAME to lowercase
run: echo "IMAGE_NAME=${IMAGE_NAME,,}" >> $GITHUB_ENV
- name: Set TEST_TAG to lowercase
@@ -47,12 +47,16 @@ jobs:
with:
node-version: 20
cache: "npm"
- run: npm ci
- name: Install npm dependencies
run: npm ci
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run the TypeScript build
run: npx tsc
- name: Create server-package.json
run: cat package.json | grep -v electron > server-package.json
@@ -65,20 +69,29 @@ jobs:
tags: ${{ env.TEST_TAG }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Validate container run output
run: |
CONTAINER_ID=$(docker run -d --log-driver=journald --rm --name trilium_local ${{ env.TEST_TAG }})
CONTAINER_ID=$(docker run -d --log-driver=journald --rm --network=host -e TRILIUM_PORT=8082 --volume ./integration-tests/db:/home/node/trilium-data --name trilium_local ${{ env.TEST_TAG }})
echo "Container ID: $CONTAINER_ID"
- name: Wait for the healthchecks to pass
uses: stringbean/docker-healthcheck-action@v1
uses: stringbean/docker-healthcheck-action@v3
with:
container: trilium_local
wait-time: 50
require-status: running
require-healthy: true
- name: Run Playwright tests
run: TRILIUM_DOCKER=1 npx playwright test
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: Playwright report (${{ matrix.dockerfile }})
path: playwright-report/
retention-days: 30
# Print the entire log of the container thus far, regardless if the healthcheck failed or succeeded
- name: Print entire log
if: always()
@@ -87,7 +100,20 @@ jobs:
build:
name: Build Docker images
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- dockerfile: Dockerfile.alpine
platform: linux/amd64
image: ubuntu-latest
- dockerfile: Dockerfile
platform: linux/arm64
image: ubuntu-24.04-arm
- dockerfile: Dockerfile
platform: linux/arm/v7
image: ubuntu-24.04-arm
runs-on: ${{ matrix.image }}
needs:
- test_docker
permissions:
@@ -95,16 +121,6 @@ jobs:
packages: write
attestations: write
id-token: write
strategy:
fail-fast: false
matrix:
include:
- dockerfile: Dockerfile.alpine
platform: linux/amd64
- dockerfile: Dockerfile
platform: linux/arm64
- dockerfile: Dockerfile
platform: linux/arm/v7
steps:
- name: Prepare
run: |
@@ -120,7 +136,7 @@ jobs:
uses: actions/checkout@v4
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: |
${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}
@@ -129,13 +145,15 @@ jobs:
type=ref,event=branch
type=ref,event=tag
type=sha
flavor: |
latest=false
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Set up node & dependencies
uses: actions/setup-node@v4
@@ -149,19 +167,19 @@ jobs:
run: cat package.json | grep -v electron > server-package.json
- name: Login to GHCR
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DockerHub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ${{ env.DOCKERHUB_REGISTRY }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
@@ -171,13 +189,13 @@ jobs:
platforms: ${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
outputs: type=image,name=${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true
- name: Export digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
with:
@@ -205,29 +223,31 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: |
${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}
${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
latest=false
- name: Login to GHCR
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DockerHub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ${{ env.DOCKERHUB_REGISTRY }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Create manifest list and push
working-directory: /tmp/digests
run: |
@@ -238,11 +258,37 @@ jobs:
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
-t ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}:${REF_NAME} \
$(printf '${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *)
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
-t ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${REF_NAME} \
$(printf '${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *)
# If the ref is a tag, also tag the image as stable as this is part of a 'release'
# and only go in the `if` if there is NOT a `-` in the tag's name, due to tagging of `-alpha`, `-beta`, etc...
if [[ "${GITHUB_REF}" == refs/tags/* && ! "${REF_NAME}" =~ - ]]; then
# First create stable tags
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
-t ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}:stable \
$(printf '${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *)
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
-t ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:stable \
$(printf '${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *)
# Small delay to ensure stable tag is fully propagated
sleep 5
# Now update latest tags
docker buildx imagetools create \
-t ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}:latest \
${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}:stable
docker buildx imagetools create \
-t ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:latest \
${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:stable
fi
- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}
+28 -50
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,13 +23,13 @@ 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
extension: [exe, zip]
runs-on: ${{ matrix.os.image }}
steps:
- uses: actions/checkout@v4
@@ -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
+51 -83
View File
@@ -5,7 +5,11 @@ on:
- cron: '0 2 * * *' # run at 2 AM UTC
# This can be used to allow manually triggering nightlies from the web interface
workflow_dispatch:
env:
GITHUB_UPLOAD_URL: https://uploads.github.com/repos/TriliumNext/Notes/releases/179589950/assets{?name,label}
GITHUB_RELEASE_ID: 179589950
permissions:
contents: write
jobs:
nightly-electron:
name: Deploy nightly
@@ -16,13 +20,13 @@ 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
extension: [exe, zip]
runs-on: ${{ matrix.os.image }}
steps:
- uses: actions/checkout@v4
@@ -30,93 +34,57 @@ 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
shell: bash
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 }}.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
- name: Update nightly version
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.1.0
- name: Publish release
uses: softprops/action-gh-release@v2
with:
# upload_url: # find out this value by opening https://api.github.com/repos/<owner>/<repo>/releases in your browser and copy the full "upload_url" value including the {?name,label} part
# release_id: # same as above (id can just be taken out the upload_url, it's used to find old releases)
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.1.0
with:
# upload_url: # find out this value by opening https://api.github.com/repos/<owner>/<repo>/releases in your browser and copy the full "upload_url" value including the {?name,label} part
# release_id: # same as above (id can just be taken out the upload_url, it's used to find old releases)
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
./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.1.0
- name: Run the build
uses: ./.github/actions/build-server
with:
# upload_url: # find out this value by opening https://api.github.com/repos/<owner>/<repo>/releases in your browser and copy the full "upload_url" value including the {?name,label} part
# release_id: # same as above (id can just be taken out the upload_url, it's used to find old releases)
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
os: linux
arch: ${{ matrix.arch }}
- name: Publish release
uses: softprops/action-gh-release@v2
with:
make_latest: false
prerelease: true
draft: false
fail_on_unmatched_files: true
files: upload/*.*
tag_name: nightly
name: Nightly Build
+3 -3
View File
@@ -1,9 +1,9 @@
name: Playwright Tests
on:
push:
branches: [ main, master ]
branches: [ develop ]
pull_request:
branches: [ main, master ]
branches: [ develop ]
jobs:
test:
timeout-minutes: 60
@@ -20,7 +20,7 @@ jobs:
- name: Run Playwright tests
run: npx playwright test
- uses: actions/upload-artifact@v4
if: always()
if: ${{ !cancelled() }}
with:
name: playwright-report
path: playwright-report/
+29 -48
View File
@@ -3,7 +3,7 @@ on:
push:
tags:
- "v*"
workflow_dispatch:
workflow_dispatch:
permissions:
contents: write
concurrency:
@@ -20,13 +20,13 @@ 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
extension: [exe, zip]
runs-on: ${{ matrix.os.image }}
steps:
- uses: actions/checkout@v4
@@ -34,62 +34,43 @@ 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"
os: linux
arch: ${{ matrix.arch }}
- name: Publish release
uses: softprops/action-gh-release@v2
with:
draft: true
fail_on_unmatched_files: true
files: upload/*.*
files: upload/*.*
+50 -50
View File
@@ -1,53 +1,53 @@
name: Publish Docker image
on:
push:
tags: [v*]
push:
tags: [v*]
jobs:
push_to_registries:
name: Push Docker image to multiple registries
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: |
zadam/trilium
ghcr.io/zadam/trilium
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}-latest
type=match,pattern=(\d+.\d+).\d+\-beta,enable=${{ endsWith(github.ref, 'beta') }},group=1,suffix=-latest
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
with:
install: true
- name: Log in to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log in to GitHub Docker Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create server-package.json
run: cat package.json | grep -v electron > server-package.json
- name: Build and Push
uses: docker/build-push-action@v2.7.0
with:
context: .
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6
push: true
cache-from: type=registry,ref=zadam/trilium:buildcache
cache-to: type=registry,ref=zadam/trilium:buildcache,mode=max
tags: ${{ steps.meta.outputs.tags }}
push_to_registries:
name: Push Docker image to multiple registries
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: |
zadam/trilium
ghcr.io/zadam/trilium
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}-latest
type=match,pattern=(\d+.\d+).\d+\-beta,enable=${{ endsWith(github.ref, 'beta') }},group=1,suffix=-latest
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
with:
install: true
- name: Log in to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log in to GitHub Docker Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create server-package.json
run: cat package.json | grep -v electron > server-package.json
- name: Build and Push
uses: docker/build-push-action@v2.7.0
with:
context: .
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6
push: true
cache-from: type=registry,ref=zadam/trilium:buildcache
cache-to: type=registry,ref=zadam/trilium:buildcache,mode=max
tags: ${{ steps.meta.outputs.tags }}
+5 -1
View File
@@ -1,19 +1,23 @@
.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
!integration-tests/db/config.ini
integration-tests/db/log
integration-tests/db/sessions
integration-tests/db/backup
integration-tests/db/session_secret.txt
config.ini
cert.key
cert.crt
server-package.json
+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 -1
View File
@@ -1 +1 @@
save-prefix = ''
save-prefix = ''
+5
View File
@@ -0,0 +1,5 @@
*.html
*.md
*.yml
libraries/*
docs/*
+11 -3
View File
@@ -3,12 +3,20 @@
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": true,
"singleQuote": false,
"quoteProps": "as-needed",
"trailingComma": "none",
"bracketSpacing": false,
"bracketSpacing": true,
"arrowParens": "always",
"proseWrap": "preserve",
"htmlWhitespaceSensitivity": "css",
"endOfLine": "lf"
"endOfLine": "lf",
"overrides": [
{
"files": ["*.json"],
"options": {
"tabWidth": 2
}
}
]
}
+2 -4
View File
@@ -1,5 +1,3 @@
{
"recommendations": [
"lokalise.i18n-ally"
]
}
"recommendations": ["lokalise.i18n-ally", "editorconfig.editorconfig"]
}
+13
View File
@@ -5,3 +5,16 @@ reviews:
description: >-
Describes the shortcut which triggers a search within the current
page/note only
add_label.to_value:
locales:
fr:
comments:
- user:
name: Potjoe-97
email: giann@LAPTOPT490-GF
id: QXec0JUoxfGmMlpch-B1S
comment: ''
suggestion: vers la valeur
type: request_change
time: '2024-10-15T16:57:06.188Z'
resolved: true
+21 -23
View File
@@ -1,24 +1,22 @@
{
"version": "0.2.0",
"configurations": [
// nodemon should be installed globally, use npm i -g nodemon
{
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"name": "nodemon start-server",
"program": "${workspaceFolder}/src/www",
"request": "launch",
"restart": true,
"runtimeExecutable": "nodemon",
"env": {
"TRILIUM_ENV": "dev",
"TRILIUM_DATA_DIR": "./data"
},
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"outputCapture": "std",
},
]
}
"version": "0.2.0",
"configurations": [
// nodemon should be installed globally, use npm i -g nodemon
{
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"name": "nodemon start-server",
"program": "${workspaceFolder}/src/www",
"request": "launch",
"restart": true,
"runtimeExecutable": "nodemon",
"env": {
"TRILIUM_ENV": "dev",
"TRILIUM_DATA_DIR": "./data"
},
"skipFiles": ["<node_internals>/**"],
"type": "node",
"outputCapture": "std"
}
]
}
+21 -19
View File
@@ -1,21 +1,23 @@
{
"editor.formatOnSave": false,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"files.eol": "\n",
"typescript.tsdk": "node_modules/typescript/lib",
"i18n-ally.sourceLanguage": "en",
"i18n-ally.keystyle": "nested",
"i18n-ally.localesPaths": [
"./src/public/translations",
"./translations"
],
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"editor.formatOnSave": false,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"files.eol": "\n",
"typescript.tsdk": "node_modules/typescript/lib",
"i18n-ally.sourceLanguage": "en",
"i18n-ally.keystyle": "nested",
"i18n-ally.localesPaths": ["./src/public/translations", "./translations"],
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"github-actions.workflows.pinned.workflows": [".github/workflows/nightly.yml"],
"[css]": {
"editor.defaultFormatter": "vscode.css-language-features"
},
"npm.exclude": ["**/build", "**/dist", "**/out/**"]
}
+24
View File
@@ -0,0 +1,24 @@
{
// Place your Notes workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
// Placeholders with the same ids are connected.
// Example:
// "Print to console": {
// "scope": "javascript,typescript",
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
"JQuery HTMLElement field": {
"scope": "typescript",
"prefix": "jqf",
"body": ["private $${1:name}!: JQuery<HTMLElement>;"]
}
}
-17
View File
@@ -1,17 +0,0 @@
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "errors",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"revealProblems": "never"
},
"runOptions": {
"runOn": "folderOpen"
}
}
]
}
+37 -33
View File
@@ -1,7 +1,7 @@
# !!! Don't try to build this Dockerfile directly, run it through bin/build-docker.sh script !!!
FROM node:20.15.1-bullseye-slim
# Build stage
FROM node:22.14.0-bullseye-slim AS builder
# Configure system dependencies
# Configure build dependencies in a single layer
RUN apt-get update && apt-get install -y --no-install-recommends \
autoconf \
automake \
@@ -12,49 +12,53 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
nasm \
libpng-dev \
python3 \
gosu \
&& rm -rf /var/lib/apt/lists/*
# Create app directory
WORKDIR /usr/src/app
# Bundle app source
# Copy only necessary files for build
COPY . .
COPY server-package.json package.json
# Copy TypeScript build artifacts into the original directory structure.
# Copy the healthcheck
# Build and cleanup in a single layer
RUN cp -R build/src/* src/. && \
cp build/docker_healthcheck.js . && \
rm -r build && \
rm docker_healthcheck.ts
# Install app dependencies
RUN apt-get purge -y --auto-remove \
autoconf \
automake \
g++ \
gcc \
libtool \
make \
nasm \
libpng-dev \
python3 \
&& rm -rf /var/lib/apt/lists/*
RUN npm install && \
npm run webpack && \
npm prune --omit=dev
RUN cp src/public/app/share.js src/public/app-dist/. && \
cp build/docker_healthcheck.js . && \
rm docker_healthcheck.ts && \
npm install && \
npm run build:webpack && \
npm prune --omit=dev && \
npm cache clean --force && \
cp -r src/public/app/doc_notes src/public/app-dist/. && \
rm -rf src/public/app && rm src/services/asset_path.ts
rm -rf src/public/app/* && \
mkdir -p src/public/app/services && \
cp -r build/src/public/app/services/mime_type_definitions.js src/public/app/services/mime_type_definitions.js && \
rm src/services/asset_path.ts && \
rm -r build
# Some setup tools need to be kept
# Runtime stage
FROM node:22.14.0-bullseye-slim
# Install only runtime dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
gosu \
&& rm -rf /var/lib/apt/lists/*
&& rm -rf /var/lib/apt/lists/* && \
rm -rf /var/cache/apt/*
# Start the application
WORKDIR /usr/src/app
# Copy only necessary files from builder
COPY --from=builder /usr/src/app/node_modules ./node_modules
COPY --from=builder /usr/src/app/src ./src
COPY --from=builder /usr/src/app/db ./db
COPY --from=builder /usr/src/app/docker_healthcheck.js .
COPY --from=builder /usr/src/app/start-docker.sh .
COPY --from=builder /usr/src/app/package.json .
COPY --from=builder /usr/src/app/config-sample.ini .
COPY --from=builder /usr/src/app/images ./images
COPY --from=builder /usr/src/app/translations ./translations
COPY --from=builder /usr/src/app/libraries ./libraries
# Configure container
EXPOSE 8080
CMD [ "./start-docker.sh" ]
HEALTHCHECK --start-period=10s CMD exec gosu node node docker_healthcheck.js
+33 -23
View File
@@ -1,7 +1,7 @@
# !!! Don't try to build this Dockerfile directly, run it through bin/build-docker.sh script !!!
FROM node:20.15.1-alpine
# Build stage
FROM node:22.14.0-alpine AS builder
# Configure system dependencies
# Configure build dependencies
RUN apk add --no-cache --virtual .build-dependencies \
autoconf \
automake \
@@ -11,43 +11,53 @@ RUN apk add --no-cache --virtual .build-dependencies \
make \
nasm \
libpng-dev \
python3
python3
# Create app directory
WORKDIR /usr/src/app
# Bundle app source
# Copy only necessary files for build
COPY . .
COPY server-package.json package.json
# Copy TypeScript build artifacts into the original directory structure.
# Copy the healthcheck
# Build and cleanup in a single layer
RUN cp -R build/src/* src/. && \
cp build/docker_healthcheck.js . && \
rm -r build && \
rm docker_healthcheck.ts
# Install app dependencies
RUN set -x && \
rm docker_healthcheck.ts && \
npm install && \
apk del .build-dependencies && \
npm run webpack && \
npm run build:webpack && \
npm prune --omit=dev && \
cp src/public/app/share.js src/public/app-dist/. && \
npm cache clean --force && \
cp -r src/public/app/doc_notes src/public/app-dist/. && \
rm -rf src/public/app && \
rm src/services/asset_path.ts
mkdir -p src/public/app/services && \
cp -r build/src/public/app/services/mime_type_definitions.js src/public/app/services/mime_type_definitions.js && \
rm src/services/asset_path.ts && \
rm -r build
# Runtime stage
FROM node:22.14.0-alpine
# Some setup tools need to be kept
# Install runtime dependencies
RUN apk add --no-cache su-exec shadow
# Add application user and setup proper volume permissions
WORKDIR /usr/src/app
# Copy only necessary files from builder
COPY --from=builder /usr/src/app/node_modules ./node_modules
COPY --from=builder /usr/src/app/src ./src
COPY --from=builder /usr/src/app/db ./db
COPY --from=builder /usr/src/app/docker_healthcheck.js .
COPY --from=builder /usr/src/app/start-docker.sh .
COPY --from=builder /usr/src/app/package.json .
COPY --from=builder /usr/src/app/config-sample.ini .
COPY --from=builder /usr/src/app/images ./images
COPY --from=builder /usr/src/app/translations ./translations
COPY --from=builder /usr/src/app/libraries ./libraries
# Add application user
RUN adduser -s /bin/false node; exit 0
# Start the application
# Configure container
EXPOSE 8080
CMD [ "./start-docker.sh" ]
HEALTHCHECK --start-period=10s CMD exec su-exec node node docker_healthcheck.js
HEALTHCHECK --start-period=10s CMD exec su-exec node node docker_healthcheck.js
+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
```
## 📢 シャウトアウト
+21 -5
View File
@@ -1,5 +1,7 @@
# TriliumNext Notes
![Docker Pulls](https://img.shields.io/docker/pulls/triliumnext/notes) ![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/triliumnext/notes/total)
[English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md)
TriliumNext Notes is an open-source, cross-platform hierarchical note taking application with focus on building large personal knowledge bases.
@@ -14,7 +16,9 @@ See [screenshots](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) for q
### Migrating from Trilium?
There are no special migration steps to migrate from a zadam/Trilium instance to a TriliumNext/Notes instance. Just upgrade your Trilium instance to the latest version and [install TriliumNext/Notes as usual](#-installation)
There are no special migration steps to migrate from a zadam/Trilium instance to a TriliumNext/Notes instance. Just upgrade your Trilium instance to the latest version and [install TriliumNext/Notes as usual](#-installation)
Versions up to and including [v0.90.4](https://github.com/TriliumNext/Notes/releases/tag/v0.90.4) are compatible with the latest zadam/trilium version of [v0.63.7](https://github.com/zadam/trilium/releases/tag/v0.63.7). Any later versions of TriliumNext have their sync versions incremented.
## 💬 Discuss with us
@@ -63,6 +67,16 @@ To use TriliumNext on your desktop machine (Linux, MacOS, and Windows) you have
* Currently only the latest versions of Chrome & Firefox are supported (and tested).
* (Coming Soon) TriliumNext will also be provided as a Flatpak
#### MacOS
Currently when running TriliumNext/Notes on MacOS, you may get the following error:
> Apple could not verify "TriliumNext Notes" is free of malware and may harm your Mac or compromise your privacy.
You will need to run the command on your shell to resolve the error (documented [here](https://github.com/TriliumNext/Notes/issues/329#issuecomment-2287164137)):
```bash
xattr -c "/path/to/Trilium Next.app"
```
### Mobile
To use TriliumNext on a mobile device:
@@ -88,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
@@ -100,12 +114,14 @@ Head on over to our [Docs repo](https://github.com/TriliumNext/Docs)
* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - best WYSIWYG editor on the market, very interactive and listening team
* [FancyTree](https://github.com/mar10/fancytree) - very feature rich tree library without real competition. TriliumNext Notes would not be the same without it.
* [CodeMirror](https://github.com/codemirror/CodeMirror) - code editor with support for huge amount of languages
* [jsPlumb](https://github.com/jsplumb/jsplumb) - visual connectivity library without competition. Used in [relation maps](https://triliumnext.github.io/Docs/Wiki/Relation-map) and [link maps](https://triliumnext.github.io/Docs/Wiki/Link-map)
* [jsPlumb](https://github.com/jsplumb/jsplumb) - visual connectivity library without competition. Used in [relation maps](https://triliumnext.github.io/Docs/Wiki/relation-map.html) and [link maps](https://triliumnext.github.io/Docs/Wiki/note-map.html#link-map)
## 🤝 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
```
## 👏 Благодарности
+8 -5
View File
@@ -1,10 +1,13 @@
#!/usr/bin/env bash
cd src/public
echo Summary
cloc HEAD \
--git --md \
--include-lang=javascript,typescript
echo By file
cloc HEAD \
--git --md \
--include-lang=javascript,typescript \
--found=filelist.txt \
--exclude-dir=public,libraries,views,docs
grep -R \.js$ filelist.txt
rm filelist.txt
--by-file | grep \.js\|
+45 -8
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
@@ -24,11 +60,12 @@ rm -r $PKG_DIR/node/include/node
rm -r $PKG_DIR/node_modules/electron*
rm -r $PKG_DIR/electron*.js
printf "#!/bin/sh\n./node/bin/node src/www" > $PKG_DIR/trilium.sh
printf "#!/bin/sh\n./node/bin/node src/main" > $PKG_DIR/trilium.sh
chmod 755 $PKG_DIR/trilium.sh
cp bin/tpl/anonymize-database.sql $PKG_DIR/
cp -r translations $PKG_DIR/
cp -r dump-db $PKG_DIR/
rm -rf $PKG_DIR/dump-db/node_modules
@@ -36,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
+91 -76
View File
@@ -7,96 +7,111 @@ const DEST_DIR_NODE_MODULES = path.join(DEST_DIR, "node_modules");
const VERBOSE = process.env.VERBOSE;
function log(...args) {
if (VERBOSE) {
console.log(args);
}
function log(...args: any[]) {
if (VERBOSE) {
console.log(...args);
}
}
async function copyNodeModuleFileOrFolder(source: string) {
const adjustedSource = source.substring(13);
const destination = path.join(DEST_DIR_NODE_MODULES, adjustedSource);
const adjustedSource = source.substring(13);
const destination = path.join(DEST_DIR_NODE_MODULES, adjustedSource);
log(`Copying ${source} to ${destination}`);
await fs.ensureDir(path.dirname(destination));
await fs.copy(source, destination);
log(`Copying ${source} to ${destination}`);
await fs.ensureDir(path.dirname(destination));
await fs.copy(source, destination);
}
const copy = async () => {
for (const srcFile of fs.readdirSync("build")) {
const destFile = path.join(DEST_DIR, path.basename(srcFile));
log(`Copying source ${srcFile} -> ${destFile}.`);
fs.copySync(path.join("build", srcFile), destFile, { recursive: true });
}
for (const srcFile of fs.readdirSync("build")) {
const destFile = path.join(DEST_DIR, path.basename(srcFile));
log(`Copying source ${srcFile} -> ${destFile}.`);
fs.copySync(path.join("build", srcFile), destFile, { recursive: true });
}
const filesToCopy = ["config-sample.ini"];
for (const file of filesToCopy) {
log(`Copying ${file}`);
await fs.copy(file, path.join(DEST_DIR, file));
}
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));
}
const dirsToCopy = ["images", "libraries", "db"];
for (const dir of dirsToCopy) {
log(`Copying ${dir}`);
await fs.copy(dir, path.join(DEST_DIR, dir));
}
const dirsToCopy = ["images", "libraries", "translations", "db"];
for (const dir of dirsToCopy) {
log(`Copying ${dir}`);
await fs.copy(dir, path.join(DEST_DIR, dir));
}
const srcDirsToCopy = ["./src/public", "./src/views", "./build"];
for (const dir of srcDirsToCopy) {
log(`Copying ${dir}`);
await fs.copy(dir, path.join(DEST_DIR_SRC, path.basename(dir)));
}
const srcDirsToCopy = ["./src/public", "./src/views", "./build"];
for (const dir of srcDirsToCopy) {
log(`Copying ${dir}`);
await fs.copy(dir, path.join(DEST_DIR_SRC, path.basename(dir)));
}
const nodeModulesFile = [
"node_modules/react/umd/react.production.min.js",
"node_modules/react/umd/react.development.js",
"node_modules/react-dom/umd/react-dom.production.min.js",
"node_modules/react-dom/umd/react-dom.development.js",
"node_modules/katex/dist/katex.min.js",
"node_modules/katex/dist/contrib/mhchem.min.js",
"node_modules/katex/dist/contrib/auto-render.min.js",
];
/**
* Directories to be copied relative to the project root into <resource_dir>/src/public/app-dist.
*/
const publicDirsToCopy = ["./src/public/app/doc_notes"];
const PUBLIC_DIR = path.join(DEST_DIR, "src", "public", "app-dist");
for (const dir of publicDirsToCopy) {
await fs.copy(dir, path.join(PUBLIC_DIR, path.basename(dir)));
}
for (const file of nodeModulesFile) {
await copyNodeModuleFileOrFolder(file);
}
const nodeModulesFile = [
"node_modules/react/umd/react.production.min.js",
"node_modules/react/umd/react.development.js",
"node_modules/react-dom/umd/react-dom.production.min.js",
"node_modules/react-dom/umd/react-dom.development.js",
"node_modules/katex/dist/katex.min.js",
"node_modules/katex/dist/contrib/mhchem.min.js",
"node_modules/katex/dist/contrib/auto-render.min.js",
"node_modules/@highlightjs/cdn-assets/highlight.min.js",
"node_modules/@mind-elixir/node-menu/dist/node-menu.umd.cjs"
];
const nodeModulesFolder = [
"node_modules/@excalidraw/excalidraw/dist/",
"node_modules/katex/dist/",
"node_modules/dayjs/",
"node_modules/force-graph/dist/",
"node_modules/boxicons/css/",
"node_modules/boxicons/fonts/",
"node_modules/mermaid/dist/",
"node_modules/jquery/dist/",
"node_modules/jquery-hotkeys/",
"node_modules/print-this/",
"node_modules/split.js/dist/",
"node_modules/panzoom/dist/",
"node_modules/i18next/",
"node_modules/i18next-http-backend/",
"node_modules/eslint/bin/",
"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/",
"node_modules/autocomplete.js/dist/",
"node_modules/codemirror/lib/",
"node_modules/codemirror/addon/",
"node_modules/codemirror/mode/",
"node_modules/codemirror/keymap/",
"node_modules/mind-elixir/dist/"
];
for (const file of nodeModulesFile) {
await copyNodeModuleFileOrFolder(file);
}
for (const folder of nodeModulesFolder) {
await copyNodeModuleFileOrFolder(folder);
}
const nodeModulesFolder = [
"node_modules/@excalidraw/excalidraw/dist/",
"node_modules/katex/dist/",
"node_modules/dayjs/",
"node_modules/boxicons/css/",
"node_modules/boxicons/fonts/",
"node_modules/mermaid/dist/",
"node_modules/jquery/dist/",
"node_modules/jquery-hotkeys/",
"node_modules/split.js/dist/",
"node_modules/panzoom/dist/",
"node_modules/i18next/",
"node_modules/i18next-http-backend/",
"node_modules/jsplumb/dist/",
"node_modules/vanilla-js-wheel-zoom/dist/",
"node_modules/mark.js/dist/",
"node_modules/normalize.css/",
"node_modules/jquery.fancytree/dist/",
"node_modules/bootstrap/dist/",
"node_modules/autocomplete.js/dist/",
"node_modules/codemirror/lib/",
"node_modules/codemirror/addon/",
"node_modules/codemirror/mode/",
"node_modules/codemirror/keymap/",
"node_modules/mind-elixir/dist/",
"node_modules/@highlightjs/cdn-assets/languages",
"node_modules/@highlightjs/cdn-assets/styles",
"node_modules/leaflet/dist"
];
for (const folder of nodeModulesFolder) {
await copyNodeModuleFileOrFolder(folder);
}
};
copy()
.then(() => console.log("Copying complete!"))
.catch((err) => console.error("Error during copy:", err));
.then(() => console.log("Copying complete!"))
.catch((err) => console.error("Error during copy:", err));
+2 -3
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"
@@ -44,7 +44,7 @@ cp -R "$script_dir/../build/src" "$DIR"
cp "$script_dir/../build/electron-main.js" "$DIR"
# run in subshell (so we return to original dir)
(cd $DIR && npm install --omit=dev)
(cd $DIR && npm install --omit=dev --legacy-peer-deps)
if [[ -d "$DIR"/node_modules ]]; then
# cleanup of useless files in dependencies
@@ -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
+4 -4
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env node
import anonymizationService from '../src/services/anonymization.js';
import fs from 'fs';
import path from 'path';
import anonymizationService from "../src/services/anonymization.js";
import fs from "fs";
import path from "path";
fs.writeFileSync(path.resolve(__dirname, 'tpl', 'anonymize-database.sql'), anonymizationService.getFullAnonymizationScript());
fs.writeFileSync(path.resolve(__dirname, "tpl", "anonymize-database.sql"), anonymizationService.getFullAnonymizationScript());
+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"
-15
View File
@@ -1,15 +0,0 @@
{
"src": "dist/trilium-linux-x64",
"dest": "dist/",
"compression": "xz",
"name": "trilium",
"productName": "Trilium Notes",
"genericName": "Note taker",
"description": "Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases.",
"sections": "misc",
"maintainer": "zadam.apps@gmail.com",
"homepage": "https://github.com/zadam/trilium",
"bin": "trilium",
"icon": "dist/trilium-linux-x64/icon.png",
"categories": [ "Office" ]
}
+11 -7
View File
@@ -13,11 +13,15 @@ async function fetchNote(noteId = null) {
return await resp.json();
}
document.addEventListener('DOMContentLoaded', () => {
const toggleMenuButton = document.getElementById('toggleMenuButton');
const layout = document.getElementById('layout');
document.addEventListener(
"DOMContentLoaded",
() => {
const toggleMenuButton = document.getElementById("toggleMenuButton");
const layout = document.getElementById("layout");
if (toggleMenuButton && layout) {
toggleMenuButton.addEventListener('click', () => layout.classList.toggle('showMenu'));
}
}, false);
if (toggleMenuButton && layout) {
toggleMenuButton.addEventListener("click", () => layout.classList.toggle("showMenu"));
}
},
false
);
@@ -1,6 +1,8 @@
/* !!!!!! TRILIUM CUSTOM CHANGES !!!!!! */
.printed-content .ck-widget__selection-handle, .printed-content .ck-widget__type-around { /* gets rid of triangles: https://github.com/zadam/trilium/issues/1129 */
.printed-content .ck-widget__selection-handle,
.printed-content .ck-widget__type-around {
/* gets rid of triangles: https://github.com/zadam/trilium/issues/1129 */
display: none;
}
@@ -59,7 +61,7 @@
.ck-content .table table td,
.ck-content .table table th {
min-width: 2em;
padding: .4em;
padding: 0.4em;
border: 1px solid hsl(0, 0%, 75%);
}
/* @ckeditor/ckeditor5-table/theme/table.css */
@@ -83,8 +85,8 @@
text-align: center;
color: var(--ck-color-selector-caption-text);
background-color: var(--ck-color-selector-caption-background);
padding: .6em;
font-size: .75em;
padding: 0.6em;
font-size: 0.75em;
outline-offset: -1px;
}
/* @ckeditor/ckeditor5-page-break/theme/pagebreak.css */
@@ -98,7 +100,7 @@
}
/* @ckeditor/ckeditor5-page-break/theme/pagebreak.css */
.ck-content .page-break::after {
content: '';
content: "";
position: absolute;
border-bottom: 2px dashed hsl(0, 0%, 77%);
width: 100%;
@@ -107,7 +109,7 @@
.ck-content .page-break__label {
position: relative;
z-index: 1;
padding: .3em .6em;
padding: 0.3em 0.6em;
display: block;
text-transform: uppercase;
border: 1px solid hsl(0, 0%, 77%);
@@ -158,7 +160,7 @@
margin-left: 0;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content[dir=rtl] .todo-list .todo-list__label > input {
.ck-content[dir="rtl"] .todo-list .todo-list__label > input {
left: 0;
margin-right: 0;
right: -25px;
@@ -169,7 +171,7 @@
display: block;
position: absolute;
box-sizing: border-box;
content: '';
content: "";
width: 100%;
height: 100%;
border: 1px solid hsl(0, 0%, 20%);
@@ -182,14 +184,14 @@
position: absolute;
box-sizing: content-box;
pointer-events: none;
content: '';
left: calc( var(--ck-todo-list-checkmark-size) / 3 );
top: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
width: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
height: calc( var(--ck-todo-list-checkmark-size) / 2.6 );
content: "";
left: calc(var(--ck-todo-list-checkmark-size) / 3);
top: calc(var(--ck-todo-list-checkmark-size) / 5.3);
width: calc(var(--ck-todo-list-checkmark-size) / 5.3);
height: calc(var(--ck-todo-list-checkmark-size) / 2.6);
border-style: solid;
border-color: transparent;
border-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;
border-width: 0 calc(var(--ck-todo-list-checkmark-size) / 8) calc(var(--ck-todo-list-checkmark-size) / 8) 0;
transform: rotate(45deg);
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
@@ -206,20 +208,21 @@
vertical-align: middle;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox] {
.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type="checkbox"] {
position: absolute;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > input,
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input {
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input {
cursor: pointer;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > input:hover::before, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input:hover::before {
.ck-editor__editable.ck-content .todo-list .todo-list__label > input:hover::before,
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input:hover::before {
box-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input {
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input {
-webkit-appearance: none;
display: inline-block;
position: relative;
@@ -233,18 +236,18 @@
margin-left: 0;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content[dir=rtl] .todo-list .todo-list__label > span[contenteditable=false] > input {
.ck-editor__editable.ck-content[dir="rtl"] .todo-list .todo-list__label > span[contenteditable="false"] > input {
left: 0;
margin-right: 0;
right: -25px;
margin-left: -15px;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::before {
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input::before {
display: block;
position: absolute;
box-sizing: border-box;
content: '';
content: "";
width: 100%;
height: 100%;
border: 1px solid hsl(0, 0%, 20%);
@@ -252,32 +255,32 @@
transition: 250ms ease-in-out box-shadow;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::after {
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input::after {
display: block;
position: absolute;
box-sizing: content-box;
pointer-events: none;
content: '';
left: calc( var(--ck-todo-list-checkmark-size) / 3 );
top: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
width: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
height: calc( var(--ck-todo-list-checkmark-size) / 2.6 );
content: "";
left: calc(var(--ck-todo-list-checkmark-size) / 3);
top: calc(var(--ck-todo-list-checkmark-size) / 5.3);
width: calc(var(--ck-todo-list-checkmark-size) / 5.3);
height: calc(var(--ck-todo-list-checkmark-size) / 2.6);
border-style: solid;
border-color: transparent;
border-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;
border-width: 0 calc(var(--ck-todo-list-checkmark-size) / 8) calc(var(--ck-todo-list-checkmark-size) / 8) 0;
transform: rotate(45deg);
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input[checked]::before {
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input[checked]::before {
background: hsl(126, 64%, 41%);
border-color: hsl(126, 64%, 41%);
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input[checked]::after {
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input[checked]::after {
border-color: hsl(0, 0%, 100%);
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox] {
.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type="checkbox"] {
position: absolute;
}
/* @ckeditor/ckeditor5-list/theme/list.css */
@@ -379,8 +382,8 @@
word-break: break-word;
color: var(--ck-color-image-caption-text);
background-color: var(--ck-color-image-caption-background);
padding: .6em;
font-size: .75em;
padding: 0.6em;
font-size: 0.75em;
outline-offset: -1px;
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
@@ -488,16 +491,16 @@
/* @ckeditor/ckeditor5-basic-styles/theme/code.css */
.ck-content code {
background-color: hsla(0, 0%, 78%, 0.3);
padding: .15em;
padding: 0.15em;
border-radius: 2px;
}
/* @ckeditor/ckeditor5-font/theme/fontsize.css */
.ck-content .text-tiny {
font-size: .7em;
font-size: 0.7em;
}
/* @ckeditor/ckeditor5-font/theme/fontsize.css */
.ck-content .text-small {
font-size: .85em;
font-size: 0.85em;
}
/* @ckeditor/ckeditor5-font/theme/fontsize.css */
.ck-content .text-big {
+148 -2
View File
@@ -1,2 +1,148 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}
/*# sourceMappingURL=normalize.min.css.map */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
html {
line-height: 1.15;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
main {
display: block;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
pre {
font-family: monospace, monospace;
font-size: 1em;
}
a {
background-color: transparent;
}
abbr[title] {
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted;
}
b,
strong {
font-weight: bolder;
}
code,
kbd,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
img {
border-style: none;
}
button,
input,
optgroup,
select,
textarea {
font-family: inherit;
font-size: 100%;
line-height: 1.15;
margin: 0;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
[type="button"],
[type="reset"],
[type="submit"],
button {
-webkit-appearance: button;
}
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner,
button::-moz-focus-inner {
border-style: none;
padding: 0;
}
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring,
button:-moz-focusring {
outline: 1px dotted ButtonText;
}
fieldset {
padding: 0.35em 0.75em 0.625em;
}
legend {
box-sizing: border-box;
color: inherit;
display: table;
max-width: 100%;
padding: 0;
white-space: normal;
}
progress {
vertical-align: baseline;
}
textarea {
overflow: auto;
}
[type="checkbox"],
[type="radio"] {
box-sizing: border-box;
padding: 0;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
details {
display: block;
}
summary {
display: list-item;
}
template {
display: none;
}
[hidden] {
display: none;
}
/*# sourceMappingURL=normalize.min.css.map */
@@ -1,5 +1,5 @@
body {
font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif;
font-family: "Lucida Grande", "Lucida Sans Unicode", arial, sans-serif;
line-height: 1.5;
}
+17
View File
@@ -0,0 +1,17 @@
[Desktop Entry]
<%=
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 loremIpsum from 'lorem-ipsum';
import '../becca/entity_constructor.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 "../src/becca/entity_constructor.js";
const noteCount = parseInt(process.argv[2]);
@@ -18,7 +18,7 @@ if (!noteCount) {
process.exit(1);
}
const notes = ['root'];
const notes = ["root"];
function getRandomNoteId() {
const index = Math.floor(Math.random() * notes.length);
@@ -30,7 +30,7 @@ async function start() {
for (let i = 0; i < noteCount; i++) {
const title = loremIpsum.loremIpsum({
count: 1,
units: 'sentences',
units: "sentences",
sentenceLowerBound: 1,
sentenceUpperBound: 10
});
@@ -38,19 +38,19 @@ async function start() {
const paragraphCount = Math.floor(Math.random() * Math.random() * 100);
const content = loremIpsum.loremIpsum({
count: paragraphCount,
units: 'paragraphs',
units: "paragraphs",
sentenceLowerBound: 1,
sentenceUpperBound: 15,
paragraphLowerBound: 3,
paragraphUpperBound: 10,
format: 'html'
format: "html"
});
const { note } = noteService.createNewNote({
parentNoteId: getRandomNoteId(),
title,
content,
type: 'text'
type: "text"
});
console.log(`Created note ${i}: ${title}`);
@@ -58,7 +58,7 @@ async function start() {
if (Math.random() < 0.04) {
const noteIdToClone = note.noteId;
const parentNoteId = getRandomNoteId();
const prefix = Math.random() > 0.8 ? "prefix" : '';
const prefix = Math.random() > 0.8 ? "prefix" : "";
const result = await cloningService.cloneNoteToBranch(noteIdToClone, parentNoteId, prefix);
@@ -68,16 +68,16 @@ async function start() {
// does not have to be for the current note
await attributeService.createAttribute({
noteId: getRandomNoteId(),
type: 'label',
name: 'label',
value: 'value',
type: "label",
name: "label",
value: "value",
isInheritable: Math.random() > 0.1 // 10% are inheritable
});
await attributeService.createAttribute({
noteId: getRandomNoteId(),
type: 'relation',
name: 'relation',
type: "relation",
name: "relation",
value: getRandomNoteId(),
isInheritable: Math.random() > 0.1 // 10% are inheritable
});
@@ -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
+110
View File
@@ -0,0 +1,110 @@
#!/usr/bin/env bash
# --------------------------------------------------------------------------------------------------
#
# Create PO files to make easier the labor of translation.
#
# Info:
# https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html
# https://docs.translatehouse.org/projects/translate-toolkit/en/latest/commands/json2po.html
#
# Dependencies:
# jq
# translate-toolkit
# python-wcwidth
#
# Created by @hasecilu
#
# --------------------------------------------------------------------------------------------------
number_of_keys() {
[ -f "$1" ] && jq 'path(..) | select(length == 2) | .[1]' "$1" | wc -l || echo "0"
}
stats() {
# Print the number of existing strings on the JSON files for each locale
s=$(number_of_keys "${paths[0]}/en/server.json")
c=$(number_of_keys "${paths[1]}/en/translation.json")
echo "| locale |server strings |client strings |"
echo "|--------|---------------|---------------|"
echo "| en | ${s} | ${c} |"
for locale in "${locales[@]}"; do
s=$(number_of_keys "${paths[0]}/${locale}/server.json")
c=$(number_of_keys "${paths[1]}/${locale}/translation.json")
n1=$(((8 - ${#locale}) / 2))
n2=$((n1 == 1 ? n1 + 1 : n1))
echo "|$(printf "%${n1}s")${locale}$(printf "%${n2}s")| ${s} | ${c} |"
done
}
update_1() {
# Update PO files from English and localized JSON files as source
# NOTE: if you want a new language you need to first create the JSON files
# on their corresponding place with `{}` as content to avoid error on `json2po`
local locales=("$@")
for path in "${paths[@]}"; do
for locale in "${locales[@]}"; do
json2po -t "${path}/en" "${path}/${locale}" "${path}/po-${locale}"
done
done
}
update_2() {
# Recover translation from PO files to localized JSON files
local locales=("$@")
for path in "${paths[@]}"; do
for locale in "${locales[@]}"; do
po2json -t "${path}/en" "${path}/po-${locale}" "${path}/${locale}"
done
done
}
help() {
echo -e "\nDescription:"
echo -e "\tCreate PO files to make easier the labor of translation"
echo -e "\nUsage:"
echo -e "\t./translation.sh [--stats] [--update1 <OPT_LOCALE>] [--update2 <OPT_LOCALE>]"
echo -e "\nFlags:"
echo -e " --clear\n\tClear all po-* directories"
echo -e " --stats\n\tPrint the number of existing strings on the JSON files for each locale"
echo -e " --update1 <LOCALE>\n\tUpdate PO files from English and localized JSON files as source"
echo -e " --update2 <LOCALE>\n\tRecover translation from PO files to localized JSON files"
}
# Main function ------------------------------------------------------------------------------------
# Get script directory to set file path relative to it
file_path="$(
cd -- "$(dirname "${0}")" >/dev/null 2>&1 || exit
pwd -P
)"
paths=("${file_path}/../translations/" "${file_path}/../src/public/translations/")
locales=(cn de es fr pt_br ro tw)
if [ $# -eq 1 ]; then
if [ "$1" == "--clear" ]; then
for path in "${paths[@]}"; do
for locale in "${locales[@]}"; do
[ -d "${path}/po-${locale}" ] && rm -r "${path}/po-${locale}"
done
done
elif [ "$1" == "--stats" ]; then
stats
elif [ "$1" == "--update1" ]; then
update_1 "${locales[@]}"
elif [ "$1" == "--update2" ]; then
update_2 "${locales[@]}"
else
help
fi
elif [ $# -eq 2 ]; then
if [ "$1" == "--update1" ]; then
update_1 "$2"
elif [ "$1" == "--update2" ]; then
update_2 "$2"
else
help
fi
else
help
fi
+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

+3 -7
View File
@@ -4,15 +4,11 @@ import fs from "fs";
function getBuildDate() {
const now = new Date();
now.setMilliseconds(0);
return now
.toISOString()
.replace(".000", "");
return now.toISOString().replace(".000", "");
}
function getGitRevision() {
return child_process.execSync('git log -1 --format="%H"')
.toString("utf-8")
.trimEnd();
return child_process.execSync('git log -1 --format="%H"').toString("utf-8").trimEnd();
}
const output = `\
@@ -22,4 +18,4 @@ export default {
};
`;
fs.writeFileSync("src/services/build.ts", output);
fs.writeFileSync("src/services/build.ts", output);
+46
View File
@@ -0,0 +1,46 @@
/**
* @module
*
* The nightly version works uses the version described in `package.json`, just like any release.
* The problem with this approach is that production builds have a very aggressive cache, and
* usually running the nightly with this cached version of the application will mean that the
* user might run into module not found errors or styling errors caused by an old cache.
*
* This script is supposed to be run in the CI, which will update locally the version field of
* `package.json` to contain the date. For example, `0.90.9-beta` will become `0.90.9-test-YYMMDD-HHMMSS`.
*
*/
import { fileURLToPath } from "url";
import { dirname, join } from "path";
import fs from "fs";
function processVersion(version) {
// Remove the beta suffix if any.
version = version.replace("-beta", "");
// Add the nightly suffix, plus the date.
const referenceDate = new Date().toISOString().substring(2, 19).replace(/[-:]*/g, "").replace("T", "-");
version = `${version}-test-${referenceDate}`;
return version;
}
function main() {
const scriptDir = dirname(fileURLToPath(import.meta.url));
const packageJsonPath = join(scriptDir, "..", "package.json");
// Read the version from package.json and process it.
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
const currentVersion = packageJson.version;
const adjustedVersion = processVersion(currentVersion);
console.log("Current version is", currentVersion);
console.log("Adjusted version is", adjustedVersion);
// Write the adjusted version back in.
packageJson.version = adjustedVersion;
const formattedJson = JSON.stringify(packageJson, null, 4);
fs.writeFileSync(packageJsonPath, formattedJson);
}
main();
+16
View File
@@ -0,0 +1,16 @@
import chokidar from "chokidar";
import fs from "fs";
import path from "path";
const emptyCallback = () => {};
function onFileChanged(sourceFile: string) {
const destFile = path.join("dist", sourceFile);
console.log(`${sourceFile} -> ${destFile}`);
fs.copyFile(sourceFile, destFile, emptyCallback);
}
const sourceDir = "src/public";
chokidar.watch(sourceDir).on("change", onFileChanged);
console.log(`Watching for changes to ${sourceDir}...`);
+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,6 +1,6 @@
module.exports = () => {
const sql = require('../../src/services/sql');
const utils = require('../../src/services/utils');
const sql = require("../../src/services/sql");
const utils = require("../../src/services/utils");
const existingBlobIds = new Set();
@@ -11,7 +11,7 @@ module.exports = () => {
if (!existingBlobIds.has(blobId)) {
existingBlobIds.add(blobId);
sql.insert('blobs', {
sql.insert("blobs", {
blobId,
content: row.content,
dateModified: row.dateModified,
@@ -24,7 +24,7 @@ module.exports = () => {
sql.execute("DELETE FROM entity_changes WHERE entityName = 'note_contents' AND entityId = ?", [row.noteId]);
}
sql.execute('UPDATE notes SET blobId = ? WHERE noteId = ?', [blobId, row.noteId]);
sql.execute("UPDATE notes SET blobId = ? WHERE noteId = ?", [blobId, row.noteId]);
}
for (const noteRevisionId of sql.getColumn(`SELECT noteRevisionId FROM note_revision_contents`)) {
@@ -34,7 +34,7 @@ module.exports = () => {
if (!existingBlobIds.has(blobId)) {
existingBlobIds.add(blobId);
sql.insert('blobs', {
sql.insert("blobs", {
blobId,
content: row.content,
dateModified: row.utcDateModified,
@@ -47,7 +47,7 @@ module.exports = () => {
sql.execute("DELETE FROM entity_changes WHERE entityName = 'note_revision_contents' AND entityId = ?", [row.noteId]);
}
sql.execute('UPDATE note_revisions SET blobId = ? WHERE noteRevisionId = ?', [blobId, row.noteRevisionId]);
sql.execute("UPDATE note_revisions SET blobId = ? WHERE noteRevisionId = ?", [blobId, row.noteRevisionId]);
}
const notesWithoutBlobIds = sql.getColumn("SELECT noteId FROM notes WHERE blobId IS NULL");
@@ -1,9 +1,9 @@
module.exports = () => {
const beccaLoader = require('../../src/becca/becca_loader');
const becca = require('../../src/becca/becca');
const cls = require('../../src/services/cls');
const log = require('../../src/services/log');
const sql = require('../../src/services/sql');
const beccaLoader = require("../../src/becca/becca_loader");
const becca = require("../../src/becca/becca");
const cls = require("../../src/services/cls");
const log = require("../../src/services/log");
const sql = require("../../src/services/sql");
cls.init(() => {
// emergency disabling of image compression since it appears to make problems in migration to 0.61
@@ -18,8 +18,7 @@ module.exports = () => {
if (attachment) {
log.info(`Auto-converted note '${note.noteId}' into attachment '${attachment.attachmentId}'.`);
}
}
catch (e) {
} catch (e) {
log.error(`Cannot convert note '${note.noteId}' to attachment: ${e.message} ${e.stack}`);
}
}
+5 -1
View File
@@ -13,9 +13,13 @@ services:
ports:
# By default, Trilium will be available at http://localhost:8080
# It will also be accessible at http://<host-ip>:8080
# You might want to limit this with something like Docker Networks, reverse proxies, or firewall rules, such as UFW
# You might want to limit this with something like Docker Networks, reverse proxies, or firewall rules,
# however be aware that using UFW is known to not work with default Docker installations, see:
# https://docs.docker.com/engine/network/packet-filtering-firewalls/#docker-and-ufw
- '8080:8080'
volumes:
# Unless TRILIUM_DATA_DIR is set, the data will be stored in the "trilium-data" directory in the home directory.
# This can also be changed with by replacing the line below with `- /path/of/your/choice:/home/node/trilium-data
- ${TRILIUM_DATA_DIR:-~/trilium-data}:/home/node/trilium-data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
+10 -11
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
@@ -10,12 +7,12 @@ if (config.Network.https) {
process.exit(0);
}
import port from './src/services/port.js';
import host from './src/services/host.js';
import port from "./src/services/port.js";
import host from "./src/services/host.js";
const options: http.RequestOptions = { timeout: 2000 };
const callback: (res: http.IncomingMessage) => void = res => {
const callback: (res: http.IncomingMessage) => void = (res) => {
console.log(`STATUS: ${res.statusCode}`);
if (res.statusCode === 200) {
process.exit(0);
@@ -26,16 +23,18 @@ const callback: (res: http.IncomingMessage) => void = res => {
let request;
if (port !== 0) { // TCP socket.
if (port !== 0) {
// TCP socket.
const url = `http://${host}:${port}/api/health-check`;
request = http.request(url, options, callback);
} else { // Unix socket.
} else {
// Unix socket.
options.socketPath = host;
options.path = '/api/health-check';
options.path = "/api/health-check";
request = http.request(options, callback);
}
request.on("error", err => {
request.on("error", (err) => {
console.log("ERROR");
process.exit(1);
});
+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
View File
@@ -0,0 +1 @@
TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
window.hierarchyData = "eJylk91uwyAMhd+Fa7cjdGl+XmWqIiCugkqgAmfSVOXd52y72GUibpA4Fuezjf0SKUbKov9QNxAJ7x4tuRhYeQm1HUHPKHox4l0vngSIhwuj6CvVgliS55D1OmfMbwat1QMGcuQwD9pkStrS8E//Ov/5nCeaPZv9vGUPyuNpMz79ChyYnB8TBs6skVB1ElTXwuXawPtVQn2R0HUKKlm3UFWqvq0gGlmUr9FE2k4zCzuzZCYnVgxNziyE+5nciDKm8dHsx3HPC3FJBzvtB/IHlwGR9NMNFB8Y9lN5pMqoIR75RJ7eMlx8bnt6YFJ5VcqICS1fhmN1bstZiv10+UCp6/oNzPWfkA=="
+50
View File
@@ -0,0 +1,50 @@
:root {
--light-hl-0: #795E26;
--dark-hl-0: #DCDCAA;
--light-hl-1: #000000;
--dark-hl-1: #D4D4D4;
--light-hl-2: #0000FF;
--dark-hl-2: #569CD6;
--light-hl-3: #A31515;
--dark-hl-3: #CE9178;
--light-code-background: #FFFFFF;
--dark-code-background: #1E1E1E;
}
@media (prefers-color-scheme: light) { :root {
--hl-0: var(--light-hl-0);
--hl-1: var(--light-hl-1);
--hl-2: var(--light-hl-2);
--hl-3: var(--light-hl-3);
--code-background: var(--light-code-background);
} }
@media (prefers-color-scheme: dark) { :root {
--hl-0: var(--dark-hl-0);
--hl-1: var(--dark-hl-1);
--hl-2: var(--dark-hl-2);
--hl-3: var(--dark-hl-3);
--code-background: var(--dark-code-background);
} }
:root[data-theme='light'] {
--hl-0: var(--light-hl-0);
--hl-1: var(--light-hl-1);
--hl-2: var(--light-hl-2);
--hl-3: var(--light-hl-3);
--code-background: var(--light-code-background);
}
:root[data-theme='dark'] {
--hl-0: var(--dark-hl-0);
--hl-1: var(--dark-hl-1);
--hl-2: var(--dark-hl-2);
--hl-3: var(--dark-hl-3);
--code-background: var(--dark-code-background);
}
.hl-0 { color: var(--hl-0); }
.hl-1 { color: var(--hl-1); }
.hl-2 { color: var(--hl-2); }
.hl-3 { color: var(--hl-3); }
pre, code { background: var(--code-background); }
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
window.navigationData = "eJytlltLwzAYhv9Lr8XDxNPuJu5OnOhARCSkaaTBrqnJt6mI/9006yHdIf0qYVej7/vkSZZ+7OUnAv4F0TiKOWP0iOcgQHAdHUQsFVmieB6NX5oQjTUoyoDYNLHpb5MtKKTm8UImy4zrI+epYZGdrcMUFpmpvos8icaj3esl/I0uM2hXYBnVGrtC1e6udDK6/H39PWj3TQEoSxem07sRJxtU3+WipZWIl8BRzutocOUKizOOMxn3y5apsJ6WiFRUNGcpQtLmAmuumThRDrQQBOS7WazX1gmHVXbBOO9cYi5smQpraok4RVmAkIhTXefCalZMnKjizDQJ7kidcFhlF4z1XgmNOuI6Gdq4oqJ0lfzUvaZlCCU5acb8g/xssSIHrt4o20PutDbWOTt3ZCf1SB5Ib0o++LWZo0O4Vd6LtDNvELRu+LDTci7Ny7E0BN1p+fB3ctgBV3kfcmZf/CHQpuHDPtiXc6hvp+XHr9+kYfCmg7rJ8+/CGW9gvvXc4rKwQT6+ujg5G238glhwne1jTm5vZ0/TG3I3m0/J/Pl++tjSV1QJGu8bHNvN7lqnIzOR3JmkuVoJtvc/ekyZucQJ0UyJAoi51dsDrEaQ7fD/pm27RR9658i1+3N295F5fM3TYIIla7+R+fwBbqmgig=="
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -1,360 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: becca/entities/abstract_becca_entity.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: becca/entities/abstract_becca_entity.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>"use strict";
const utils = require('../../services/utils');
const sql = require('../../services/sql');
const entityChangesService = require('../../services/entity_changes');
const eventService = require("../../services/events");
const dateUtils = require("../../services/date_utils");
const cls = require("../../services/cls");
const log = require("../../services/log");
const protectedSessionService = require("../../services/protected_session");
const blobService = require("../../services/blob");
let becca = null;
/**
* Base class for all backend entities.
*/
class AbstractBeccaEntity {
/** @protected */
beforeSaving() {
if (!this[this.constructor.primaryKeyName]) {
this[this.constructor.primaryKeyName] = utils.newEntityId();
}
}
/** @protected */
getUtcDateChanged() {
return this.utcDateModified || this.utcDateCreated;
}
/**
* @protected
* @returns {Becca}
*/
get becca() {
if (!becca) {
becca = require('../becca');
}
return becca;
}
/** @protected */
putEntityChange(isDeleted) {
entityChangesService.putEntityChange({
entityName: this.constructor.entityName,
entityId: this[this.constructor.primaryKeyName],
hash: this.generateHash(isDeleted),
isErased: false,
utcDateChanged: this.getUtcDateChanged(),
isSynced: this.constructor.entityName !== 'options' || !!this.isSynced
});
}
/**
* @protected
* @returns {string}
*/
generateHash(isDeleted) {
let contentToHash = "";
for (const propertyName of this.constructor.hashedProperties) {
contentToHash += `|${this[propertyName]}`;
}
if (isDeleted) {
contentToHash += "|deleted";
}
return utils.hash(contentToHash).substr(0, 10);
}
/** @protected */
getPojoToSave() {
return this.getPojo();
}
/**
* @protected
* @abstract
*/
getPojo() {
throw new Error(`Unimplemented getPojo() for entity '${this.constructor.name}'`)
}
/**
* Saves entity - executes SQL, but doesn't commit the transaction on its own
*
* @returns {this}
*/
save(opts = {}) {
const entityName = this.constructor.entityName;
const primaryKeyName = this.constructor.primaryKeyName;
const isNewEntity = !this[primaryKeyName];
this.beforeSaving(opts);
const pojo = this.getPojoToSave();
sql.transactional(() => {
sql.upsert(entityName, primaryKeyName, pojo);
if (entityName === 'recent_notes') {
return;
}
this.putEntityChange(!!this.isDeleted);
if (!cls.isEntityEventsDisabled()) {
const eventPayload = {
entityName,
entity: this
};
if (isNewEntity) {
eventService.emit(eventService.ENTITY_CREATED, eventPayload);
}
eventService.emit(eventService.ENTITY_CHANGED, eventPayload);
}
});
return this;
}
/** @protected */
_setContent(content, opts = {}) {
// client code asks to save entity even if blobId didn't change (something else was changed)
opts.forceSave = !!opts.forceSave;
opts.forceFrontendReload = !!opts.forceFrontendReload;
if (content === null || content === undefined) {
throw new Error(`Cannot set null content to ${this.constructor.primaryKeyName} '${this[this.constructor.primaryKeyName]}'`);
}
if (this.hasStringContent()) {
content = content.toString();
} else {
content = Buffer.isBuffer(content) ? content : Buffer.from(content);
}
const unencryptedContentForHashCalculation = this.#getUnencryptedContentForHashCalculation(content);
if (this.isProtected) {
if (protectedSessionService.isProtectedSessionAvailable()) {
content = protectedSessionService.encrypt(content);
} else {
throw new Error(`Cannot update content of blob since protected session is not available.`);
}
}
sql.transactional(() => {
const newBlobId = this.#saveBlob(content, unencryptedContentForHashCalculation, opts);
const oldBlobId = this.blobId;
if (newBlobId !== oldBlobId || opts.forceSave) {
this.blobId = newBlobId;
this.save();
if (newBlobId !== oldBlobId) {
this.#deleteBlobIfNotUsed(oldBlobId);
}
}
});
}
#deleteBlobIfNotUsed(oldBlobId) {
if (sql.getValue("SELECT 1 FROM notes WHERE blobId = ? LIMIT 1", [oldBlobId])) {
return;
}
if (sql.getValue("SELECT 1 FROM attachments WHERE blobId = ? LIMIT 1", [oldBlobId])) {
return;
}
if (sql.getValue("SELECT 1 FROM revisions WHERE blobId = ? LIMIT 1", [oldBlobId])) {
return;
}
sql.execute("DELETE FROM blobs WHERE blobId = ?", [oldBlobId]);
// blobs are not marked as erased in entity_changes, they are just purged completely
// this is because technically every keystroke can create a new blob, and there would be just too many
sql.execute("DELETE FROM entity_changes WHERE entityName = 'blobs' AND entityId = ?", [oldBlobId]);
}
#getUnencryptedContentForHashCalculation(unencryptedContent) {
if (this.isProtected) {
// a "random" prefix makes sure that the calculated hash/blobId is different for a decrypted/encrypted content
const encryptedPrefixSuffix = "t$[nvQg7q)&amp;_ENCRYPTED_?M:Bf&amp;j3jr_";
return Buffer.isBuffer(unencryptedContent)
? Buffer.concat([Buffer.from(encryptedPrefixSuffix), unencryptedContent])
: `${encryptedPrefixSuffix}${unencryptedContent}`;
} else {
return unencryptedContent;
}
}
#saveBlob(content, unencryptedContentForHashCalculation, opts = {}) {
/*
* We're using the unencrypted blob for the hash calculation, because otherwise the random IV would
* cause every content blob to be unique which would balloon the database size (esp. with revisioning).
* This has minor security implications (it's easy to infer that given content is shared between different
* notes/attachments), but the trade-off comes out clearly positive.
*/
const newBlobId = utils.hashedBlobId(unencryptedContentForHashCalculation);
const blobNeedsInsert = !sql.getValue('SELECT 1 FROM blobs WHERE blobId = ?', [newBlobId]);
if (!blobNeedsInsert) {
return newBlobId;
}
const pojo = {
blobId: newBlobId,
content: content,
dateModified: dateUtils.localNowDateTime(),
utcDateModified: dateUtils.utcNowDateTime()
};
sql.upsert("blobs", "blobId", pojo);
// we can't reuse blobId as an entity_changes hash, because this one has to be calculatable without having
// access to the decrypted content
const hash = blobService.calculateContentHash(pojo);
entityChangesService.putEntityChange({
entityName: 'blobs',
entityId: newBlobId,
hash: hash,
isErased: false,
utcDateChanged: pojo.utcDateModified,
isSynced: true,
// overriding componentId will cause the frontend to think the change is coming from a different component
// and thus reload
componentId: opts.forceFrontendReload ? utils.randomString(10) : null
});
eventService.emit(eventService.ENTITY_CHANGED, {
entityName: 'blobs',
entity: this
});
return newBlobId;
}
/**
* @protected
* @returns {string|Buffer}
*/
_getContent() {
const row = sql.getRow(`SELECT content FROM blobs WHERE blobId = ?`, [this.blobId]);
if (!row) {
throw new Error(`Cannot find content for ${this.constructor.primaryKeyName} '${this[this.constructor.primaryKeyName]}', blobId '${this.blobId}'`);
}
return blobService.processContent(row.content, this.isProtected, this.hasStringContent());
}
/**
* Mark the entity as (soft) deleted. It will be completely erased later.
*
* This is a low-level method, for notes and branches use `note.deleteNote()` and 'branch.deleteBranch()` instead.
*
* @param [deleteId=null]
*/
markAsDeleted(deleteId = null) {
const entityId = this[this.constructor.primaryKeyName];
const entityName = this.constructor.entityName;
this.utcDateModified = dateUtils.utcNowDateTime();
sql.execute(`UPDATE ${entityName} SET isDeleted = 1, deleteId = ?, utcDateModified = ?
WHERE ${this.constructor.primaryKeyName} = ?`,
[deleteId, this.utcDateModified, entityId]);
if (this.dateModified) {
this.dateModified = dateUtils.localNowDateTime();
sql.execute(`UPDATE ${entityName} SET dateModified = ? WHERE ${this.constructor.primaryKeyName} = ?`,
[this.dateModified, entityId]);
}
log.info(`Marking ${entityName} ${entityId} as deleted`);
this.putEntityChange(true);
eventService.emit(eventService.ENTITY_DELETED, { entityName, entityId, entity: this });
}
markAsDeletedSimple() {
const entityId = this[this.constructor.primaryKeyName];
const entityName = this.constructor.entityName;
this.utcDateModified = dateUtils.utcNowDateTime();
sql.execute(`UPDATE ${entityName} SET isDeleted = 1, utcDateModified = ?
WHERE ${this.constructor.primaryKeyName} = ?`,
[this.utcDateModified, entityId]);
log.info(`Marking ${entityName} ${entityId} as deleted`);
this.putEntityChange(true);
eventService.emit(eventService.ENTITY_DELETED, { entityName, entityId, entity: this });
}
}
module.exports = AbstractBeccaEntity;
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractBeccaEntity.html">AbstractBeccaEntity</a></li><li><a href="BAttachment.html">BAttachment</a></li><li><a href="BAttribute.html">BAttribute</a></li><li><a href="BBranch.html">BBranch</a></li><li><a href="BEtapiToken.html">BEtapiToken</a></li><li><a href="BNote.html">BNote</a></li><li><a href="BOption.html">BOption</a></li><li><a href="BRecentNote.html">BRecentNote</a></li><li><a href="BRevision.html">BRevision</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li></ul><h3>Global</h3><ul><li><a href="global.html#api">api</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a>
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
@@ -1,294 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: becca/entities/battachment.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: becca/entities/battachment.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>"use strict";
const utils = require('../../services/utils');
const dateUtils = require('../../services/date_utils');
const AbstractBeccaEntity = require("./abstract_becca_entity");
const sql = require("../../services/sql");
const protectedSessionService = require("../../services/protected_session");
const log = require("../../services/log");
const attachmentRoleToNoteTypeMapping = {
'image': 'image'
};
/**
* Attachment represent data related/attached to the note. Conceptually similar to attributes, but intended for
* larger amounts of data and generally not accessible to the user.
*
* @extends AbstractBeccaEntity
*/
class BAttachment extends AbstractBeccaEntity {
static get entityName() { return "attachments"; }
static get primaryKeyName() { return "attachmentId"; }
static get hashedProperties() { return ["attachmentId", "ownerId", "role", "mime", "title", "blobId", "utcDateScheduledForErasureSince"]; }
constructor(row) {
super();
if (!row.ownerId?.trim()) {
throw new Error("'ownerId' must be given to initialize a Attachment entity");
} else if (!row.role?.trim()) {
throw new Error("'role' must be given to initialize a Attachment entity");
} else if (!row.mime?.trim()) {
throw new Error("'mime' must be given to initialize a Attachment entity");
} else if (!row.title?.trim()) {
throw new Error("'title' must be given to initialize a Attachment entity");
}
/** @type {string} */
this.attachmentId = row.attachmentId;
/**
* either noteId or revisionId to which this attachment belongs
* @type {string}
*/
this.ownerId = row.ownerId;
/** @type {string} */
this.role = row.role;
/** @type {string} */
this.mime = row.mime;
/** @type {string} */
this.title = row.title;
/** @type {int} */
this.position = row.position;
/** @type {string} */
this.blobId = row.blobId;
/** @type {boolean} */
this.isProtected = !!row.isProtected;
/** @type {string} */
this.dateModified = row.dateModified;
/** @type {string} */
this.utcDateModified = row.utcDateModified;
/** @type {string} */
this.utcDateScheduledForErasureSince = row.utcDateScheduledForErasureSince;
/**
* optionally added to the entity
* @type {int}
*/
this.contentLength = row.contentLength;
this.decrypt();
}
/** @returns {BAttachment} */
copy() {
return new BAttachment({
ownerId: this.ownerId,
role: this.role,
mime: this.mime,
title: this.title,
blobId: this.blobId,
isProtected: this.isProtected
});
}
/** @returns {BNote} */
getNote() {
return this.becca.notes[this.ownerId];
}
/** @returns {boolean} true if the note has string content (not binary) */
hasStringContent() {
return utils.isStringNote(this.type, this.mime);
}
isContentAvailable() {
return !this.attachmentId // new attachment which was not encrypted yet
|| !this.isProtected
|| protectedSessionService.isProtectedSessionAvailable()
}
getTitleOrProtected() {
return this.isContentAvailable() ? this.title : '[protected]';
}
decrypt() {
if (!this.isProtected || !this.attachmentId) {
this.isDecrypted = true;
return;
}
if (!this.isDecrypted &amp;&amp; protectedSessionService.isProtectedSessionAvailable()) {
try {
this.title = protectedSessionService.decryptString(this.title);
this.isDecrypted = true;
}
catch (e) {
log.error(`Could not decrypt attachment ${this.attachmentId}: ${e.message} ${e.stack}`);
}
}
}
/** @returns {string|Buffer} */
getContent() {
return this._getContent();
}
/**
* @param content
* @param {object} [opts]
* @param {object} [opts.forceSave=false] - will also save this BAttachment entity
* @param {object} [opts.forceFrontendReload=false] - override frontend heuristics on when to reload, instruct to reload
*/
setContent(content, opts) {
this._setContent(content, opts);
}
/** @returns {{note: BNote, branch: BBranch}} */
convertToNote() {
if (this.type === 'search') {
throw new Error(`Note of type search cannot have child notes`);
}
if (!this.getNote()) {
throw new Error("Cannot find note of this attachment. It is possible that this is note revision's attachment. " +
"Converting note revision's attachments to note is not (yet) supported.");
}
if (!(this.role in attachmentRoleToNoteTypeMapping)) {
throw new Error(`Mapping from attachment role '${this.role}' to note's type is not defined`);
}
if (!this.isContentAvailable()) { // isProtected is the same for attachment
throw new Error(`Cannot convert protected attachment outside of protected session`);
}
const noteService = require('../../services/notes');
const { note, branch } = noteService.createNewNote({
parentNoteId: this.ownerId,
title: this.title,
type: attachmentRoleToNoteTypeMapping[this.role],
mime: this.mime,
content: this.getContent(),
isProtected: this.isProtected
});
this.markAsDeleted();
const parentNote = this.getNote();
if (this.role === 'image' &amp;&amp; parentNote.type === 'text') {
const origContent = parentNote.getContent();
const oldAttachmentUrl = `api/attachments/${this.attachmentId}/image/`;
const newNoteUrl = `api/images/${note.noteId}/`;
const fixedContent = utils.replaceAll(origContent, oldAttachmentUrl, newNoteUrl);
if (fixedContent !== origContent) {
parentNote.setContent(fixedContent);
}
noteService.asyncPostProcessContent(note, fixedContent);
}
return { note, branch };
}
getFileName() {
const type = this.role === 'image' ? 'image' : 'file';
return utils.formatDownloadTitle(this.title, type, this.mime);
}
beforeSaving() {
super.beforeSaving();
if (this.position === undefined || this.position === null) {
this.position = 10 + sql.getValue(`SELECT COALESCE(MAX(position), 0)
FROM attachments
WHERE ownerId = ?`, [this.noteId]);
}
this.dateModified = dateUtils.localNowDateTime();
this.utcDateModified = dateUtils.utcNowDateTime();
}
getPojo() {
return {
attachmentId: this.attachmentId,
ownerId: this.ownerId,
role: this.role,
mime: this.mime,
title: this.title,
position: this.position,
blobId: this.blobId,
isProtected: !!this.isProtected,
isDeleted: false,
dateModified: this.dateModified,
utcDateModified: this.utcDateModified,
utcDateScheduledForErasureSince: this.utcDateScheduledForErasureSince,
contentLength: this.contentLength
};
}
getPojoToSave() {
const pojo = this.getPojo();
delete pojo.contentLength;
if (pojo.isProtected) {
if (this.isDecrypted) {
pojo.title = protectedSessionService.encrypt(pojo.title);
}
else {
// updating protected note outside of protected session means we will keep original ciphertexts
delete pojo.title;
}
}
return pojo;
}
}
module.exports = BAttachment;
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractBeccaEntity.html">AbstractBeccaEntity</a></li><li><a href="BAttachment.html">BAttachment</a></li><li><a href="BAttribute.html">BAttribute</a></li><li><a href="BBranch.html">BBranch</a></li><li><a href="BEtapiToken.html">BEtapiToken</a></li><li><a href="BNote.html">BNote</a></li><li><a href="BOption.html">BOption</a></li><li><a href="BRecentNote.html">BRecentNote</a></li><li><a href="BRevision.html">BRevision</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li></ul><h3>Global</h3><ul><li><a href="global.html#api">api</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a>
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
@@ -1,293 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: becca/entities/battribute.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: becca/entities/battribute.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>"use strict";
const BNote = require('./bnote');
const AbstractBeccaEntity = require("./abstract_becca_entity");
const sql = require("../../services/sql");
const dateUtils = require("../../services/date_utils");
const promotedAttributeDefinitionParser = require("../../services/promoted_attribute_definition_parser");
const {sanitizeAttributeName} = require("../../services/sanitize_attribute_name");
/**
* There are currently only two types of attributes, labels or relations.
* @typedef {"label" | "relation"} AttributeType
*/
/**
* Attribute is an abstract concept which has two real uses - label (key - value pair)
* and relation (representing named relationship between source and target note)
*
* @extends AbstractBeccaEntity
*/
class BAttribute extends AbstractBeccaEntity {
static get entityName() { return "attributes"; }
static get primaryKeyName() { return "attributeId"; }
static get hashedProperties() { return ["attributeId", "noteId", "type", "name", "value", "isInheritable"]; }
constructor(row) {
super();
if (!row) {
return;
}
this.updateFromRow(row);
this.init();
}
updateFromRow(row) {
this.update([
row.attributeId,
row.noteId,
row.type,
row.name,
row.value,
row.isInheritable,
row.position,
row.utcDateModified
]);
}
update([attributeId, noteId, type, name, value, isInheritable, position, utcDateModified]) {
/** @type {string} */
this.attributeId = attributeId;
/** @type {string} */
this.noteId = noteId;
/** @type {AttributeType} */
this.type = type;
/** @type {string} */
this.name = name;
/** @type {int} */
this.position = position;
/** @type {string} */
this.value = value || "";
/** @type {boolean} */
this.isInheritable = !!isInheritable;
/** @type {string} */
this.utcDateModified = utcDateModified;
return this;
}
init() {
if (this.attributeId) {
this.becca.attributes[this.attributeId] = this;
}
if (!(this.noteId in this.becca.notes)) {
// entities can come out of order in sync, create skeleton which will be filled later
this.becca.addNote(this.noteId, new BNote({noteId: this.noteId}));
}
this.becca.notes[this.noteId].ownedAttributes.push(this);
const key = `${this.type}-${this.name.toLowerCase()}`;
this.becca.attributeIndex[key] = this.becca.attributeIndex[key] || [];
this.becca.attributeIndex[key].push(this);
const targetNote = this.targetNote;
if (targetNote) {
targetNote.targetRelations.push(this);
}
}
validate() {
if (!["label", "relation"].includes(this.type)) {
throw new Error(`Invalid attribute type '${this.type}' in attribute '${this.attributeId}' of note '${this.noteId}'`);
}
if (!this.name?.trim()) {
throw new Error(`Invalid empty name in attribute '${this.attributeId}' of note '${this.noteId}'`);
}
if (this.type === 'relation' &amp;&amp; !(this.value in this.becca.notes)) {
throw new Error(`Cannot save relation '${this.name}' of note '${this.noteId}' since it targets not existing note '${this.value}'.`);
}
}
get isAffectingSubtree() {
return this.isInheritable
|| (this.type === 'relation' &amp;&amp; ['template', 'inherit'].includes(this.name));
}
get targetNoteId() { // alias
return this.type === 'relation' ? this.value : undefined;
}
isAutoLink() {
return this.type === 'relation' &amp;&amp; ['internalLink', 'imageLink', 'relationMapLink', 'includeNoteLink'].includes(this.name);
}
get note() {
return this.becca.notes[this.noteId];
}
get targetNote() {
if (this.type === 'relation') {
return this.becca.notes[this.value];
}
}
/**
* @returns {BNote|null}
*/
getNote() {
const note = this.becca.getNote(this.noteId);
if (!note) {
throw new Error(`Note '${this.noteId}' of attribute '${this.attributeId}', type '${this.type}', name '${this.name}' does not exist.`);
}
return note;
}
/**
* @returns {BNote|null}
*/
getTargetNote() {
if (this.type !== 'relation') {
throw new Error(`Attribute '${this.attributeId}' is not a relation.`);
}
if (!this.value) {
return null;
}
return this.becca.getNote(this.value);
}
/**
* @returns {boolean}
*/
isDefinition() {
return this.type === 'label' &amp;&amp; (this.name.startsWith('label:') || this.name.startsWith('relation:'));
}
getDefinition() {
return promotedAttributeDefinitionParser.parse(this.value);
}
getDefinedName() {
if (this.type === 'label' &amp;&amp; this.name.startsWith('label:')) {
return this.name.substr(6);
} else if (this.type === 'label' &amp;&amp; this.name.startsWith('relation:')) {
return this.name.substr(9);
} else {
return this.name;
}
}
get isDeleted() {
return !(this.attributeId in this.becca.attributes);
}
beforeSaving(opts = {}) {
if (!opts.skipValidation) {
this.validate();
}
this.name = sanitizeAttributeName(this.name);
if (!this.value) {
// null value isn't allowed
this.value = "";
}
if (this.position === undefined || this.position === null) {
const maxExistingPosition = this.getNote().getAttributes()
.reduce((maxPosition, attr) => Math.max(maxPosition, attr.position || 0), 0);
this.position = maxExistingPosition + 10;
}
if (!this.isInheritable) {
this.isInheritable = false;
}
this.utcDateModified = dateUtils.utcNowDateTime();
super.beforeSaving();
this.becca.attributes[this.attributeId] = this;
}
getPojo() {
return {
attributeId: this.attributeId,
noteId: this.noteId,
type: this.type,
name: this.name,
position: this.position,
value: this.value,
isInheritable: this.isInheritable,
utcDateModified: this.utcDateModified,
isDeleted: false
};
}
createClone(type, name, value, isInheritable) {
return new BAttribute({
noteId: this.noteId,
type: type,
name: name,
value: value,
position: this.position,
isInheritable: isInheritable,
utcDateModified: this.utcDateModified
});
}
}
module.exports = BAttribute;
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractBeccaEntity.html">AbstractBeccaEntity</a></li><li><a href="BAttachment.html">BAttachment</a></li><li><a href="BAttribute.html">BAttribute</a></li><li><a href="BBranch.html">BBranch</a></li><li><a href="BEtapiToken.html">BEtapiToken</a></li><li><a href="BNote.html">BNote</a></li><li><a href="BOption.html">BOption</a></li><li><a href="BRecentNote.html">BRecentNote</a></li><li><a href="BRevision.html">BRevision</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li></ul><h3>Global</h3><ul><li><a href="global.html#api">api</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a>
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
@@ -1,81 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: becca/entities/bblob.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: becca/entities/bblob.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>class BBlob {
static get entityName() { return "blobs"; }
static get primaryKeyName() { return "blobId"; }
static get hashedProperties() { return ["blobId", "content"]; }
constructor(row) {
/** @type {string} */
this.blobId = row.blobId;
/** @type {string|Buffer} */
this.content = row.content;
/** @type {int} */
this.contentLength = row.contentLength;
/** @type {string} */
this.dateModified = row.dateModified;
/** @type {string} */
this.utcDateModified = row.utcDateModified;
}
getPojo() {
return {
blobId: this.blobId,
content: this.content,
contentLength: this.contentLength,
dateModified: this.dateModified,
utcDateModified: this.utcDateModified
};
}
}
module.exports = BBlob;
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractBeccaEntity.html">AbstractBeccaEntity</a></li><li><a href="BAttachment.html">BAttachment</a></li><li><a href="BAttribute.html">BAttribute</a></li><li><a href="BBranch.html">BBranch</a></li><li><a href="BEtapiToken.html">BEtapiToken</a></li><li><a href="BNote.html">BNote</a></li><li><a href="BOption.html">BOption</a></li><li><a href="BRecentNote.html">BRecentNote</a></li><li><a href="BRevision.html">BRevision</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li></ul><h3>Global</h3><ul><li><a href="global.html#api">api</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a>
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
@@ -1,333 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: becca/entities/bbranch.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: becca/entities/bbranch.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>"use strict";
const BNote = require('./bnote');
const AbstractBeccaEntity = require("./abstract_becca_entity");
const dateUtils = require("../../services/date_utils");
const utils = require("../../services/utils");
const TaskContext = require("../../services/task_context");
const cls = require("../../services/cls");
const log = require("../../services/log");
/**
* Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple
* parents.
*
* Note that you should not rely on the branch's identity, since it can change easily with a note's move.
* Always check noteId instead.
*
* @extends AbstractBeccaEntity
*/
class BBranch extends AbstractBeccaEntity {
static get entityName() { return "branches"; }
static get primaryKeyName() { return "branchId"; }
// notePosition is not part of hash because it would produce a lot of updates in case of reordering
static get hashedProperties() { return ["branchId", "noteId", "parentNoteId", "prefix"]; }
constructor(row) {
super();
if (!row) {
return;
}
this.updateFromRow(row);
this.init();
}
updateFromRow(row) {
this.update([
row.branchId,
row.noteId,
row.parentNoteId,
row.prefix,
row.notePosition,
row.isExpanded,
row.utcDateModified
]);
}
update([branchId, noteId, parentNoteId, prefix, notePosition, isExpanded, utcDateModified]) {
/** @type {string} */
this.branchId = branchId;
/** @type {string} */
this.noteId = noteId;
/** @type {string} */
this.parentNoteId = parentNoteId;
/** @type {string|null} */
this.prefix = prefix;
/** @type {int} */
this.notePosition = notePosition;
/** @type {boolean} */
this.isExpanded = !!isExpanded;
/** @type {string} */
this.utcDateModified = utcDateModified;
return this;
}
init() {
if (this.branchId) {
this.becca.branches[this.branchId] = this;
}
this.becca.childParentToBranch[`${this.noteId}-${this.parentNoteId}`] = this;
const childNote = this.childNote;
if (!childNote.parentBranches.includes(this)) {
childNote.parentBranches.push(this);
}
if (this.noteId === 'root') {
return;
}
const parentNote = this.parentNote;
if (!childNote.parents.includes(parentNote)) {
childNote.parents.push(parentNote);
}
if (!parentNote.children.includes(childNote)) {
parentNote.children.push(childNote);
}
}
/** @returns {BNote} */
get childNote() {
if (!(this.noteId in this.becca.notes)) {
// entities can come out of order in sync/import, create skeleton which will be filled later
this.becca.addNote(this.noteId, new BNote({noteId: this.noteId}));
}
return this.becca.notes[this.noteId];
}
/** @returns {BNote} */
getNote() {
return this.childNote;
}
/** @returns {BNote|undefined} - root branch will have undefined parent, all other branches have to have a parent note */
get parentNote() {
if (!(this.parentNoteId in this.becca.notes) &amp;&amp; this.parentNoteId !== 'none') {
// entities can come out of order in sync/import, create skeleton which will be filled later
this.becca.addNote(this.parentNoteId, new BNote({noteId: this.parentNoteId}));
}
return this.becca.notes[this.parentNoteId];
}
get isDeleted() {
return !(this.branchId in this.becca.branches);
}
/**
* Branch is weak when its existence should not hinder deletion of its note.
* As a result, note with only weak branches should be immediately deleted.
* An example is shared or bookmarked clones - they are created automatically and exist for technical reasons,
* not as user-intended actions. From user perspective, they don't count as real clones and for the purpose
* of deletion should not act as a clone.
*
* @returns {boolean}
*/
get isWeak() {
return ['_share', '_lbBookmarks'].includes(this.parentNoteId);
}
/**
* Delete a branch. If this is a last note's branch, delete the note as well.
*
* @param {string} [deleteId] - optional delete identified
* @param {TaskContext} [taskContext]
*
* @returns {boolean} - true if note has been deleted, false otherwise
*/
deleteBranch(deleteId, taskContext) {
if (!deleteId) {
deleteId = utils.randomString(10);
}
if (!taskContext) {
taskContext = new TaskContext('no-progress-reporting');
}
taskContext.increaseProgressCount();
const note = this.getNote();
if (!taskContext.noteDeletionHandlerTriggered) {
const parentBranches = note.getParentBranches();
if (parentBranches.length === 1 &amp;&amp; parentBranches[0] === this) {
// needs to be run before branches and attributes are deleted and thus attached relations disappear
const handlers = require("../../services/handlers");
handlers.runAttachedRelations(note, 'runOnNoteDeletion', note);
}
}
if (this.noteId === 'root'
|| this.noteId === cls.getHoistedNoteId()) {
throw new Error("Can't delete root or hoisted branch/note");
}
this.markAsDeleted(deleteId);
const notDeletedBranches = note.getStrongParentBranches();
if (notDeletedBranches.length === 0) {
for (const weakBranch of note.getParentBranches()) {
weakBranch.markAsDeleted(deleteId);
}
for (const childBranch of note.getChildBranches()) {
childBranch.deleteBranch(deleteId, taskContext);
}
// first delete children and then parent - this will show up better in recent changes
log.info(`Deleting note '${note.noteId}'`);
this.becca.notes[note.noteId].isBeingDeleted = true;
for (const attribute of note.getOwnedAttributes().slice()) {
attribute.markAsDeleted(deleteId);
}
for (const relation of note.getTargetRelations()) {
relation.markAsDeleted(deleteId);
}
for (const attachment of note.getAttachments()) {
attachment.markAsDeleted(deleteId);
}
note.markAsDeleted(deleteId);
return true;
}
else {
return false;
}
}
beforeSaving() {
if (!this.noteId || !this.parentNoteId) {
throw new Error(`noteId and parentNoteId are mandatory properties for Branch`);
}
this.branchId = `${this.parentNoteId}_${this.noteId}`;
if (this.notePosition === undefined || this.notePosition === null) {
let maxNotePos = 0;
for (const childBranch of this.parentNote.getChildBranches()) {
if (maxNotePos &lt; childBranch.notePosition
&amp;&amp; childBranch.noteId !== '_hidden' // hidden has a very large notePosition to always stay last
) {
maxNotePos = childBranch.notePosition;
}
}
this.notePosition = maxNotePos + 10;
}
if (!this.isExpanded) {
this.isExpanded = false;
}
if (!this.prefix?.trim()) {
this.prefix = null;
}
this.utcDateModified = dateUtils.utcNowDateTime();
super.beforeSaving();
this.becca.branches[this.branchId] = this;
}
getPojo() {
return {
branchId: this.branchId,
noteId: this.noteId,
parentNoteId: this.parentNoteId,
prefix: this.prefix,
notePosition: this.notePosition,
isExpanded: this.isExpanded,
isDeleted: false,
utcDateModified: this.utcDateModified
};
}
createClone(parentNoteId, notePosition) {
const existingBranch = this.becca.getBranchFromChildAndParent(this.noteId, parentNoteId);
if (existingBranch) {
existingBranch.notePosition = notePosition;
return existingBranch;
} else {
return new BBranch({
noteId: this.noteId,
parentNoteId: parentNoteId,
notePosition: notePosition,
prefix: this.prefix,
isExpanded: this.isExpanded
});
}
}
}
module.exports = BBranch;
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractBeccaEntity.html">AbstractBeccaEntity</a></li><li><a href="BAttachment.html">BAttachment</a></li><li><a href="BAttribute.html">BAttribute</a></li><li><a href="BBranch.html">BBranch</a></li><li><a href="BEtapiToken.html">BEtapiToken</a></li><li><a href="BNote.html">BNote</a></li><li><a href="BOption.html">BOption</a></li><li><a href="BRecentNote.html">BRecentNote</a></li><li><a href="BRevision.html">BRevision</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li></ul><h3>Global</h3><ul><li><a href="global.html#api">api</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a>
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
@@ -1,129 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: becca/entities/betapi_token.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: becca/entities/betapi_token.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>"use strict";
const dateUtils = require('../../services/date_utils');
const AbstractBeccaEntity = require("./abstract_becca_entity");
/**
* EtapiToken is an entity representing token used to authenticate against Trilium REST API from client applications.
* Used by:
* - Trilium Sender
* - ETAPI clients
*
* The format user is presented with is "&lt;etapiTokenId>_&lt;tokenHash>". This is also called "authToken" to distinguish it
* from tokenHash and token.
*
* @extends AbstractBeccaEntity
*/
class BEtapiToken extends AbstractBeccaEntity {
static get entityName() { return "etapi_tokens"; }
static get primaryKeyName() { return "etapiTokenId"; }
static get hashedProperties() { return ["etapiTokenId", "name", "tokenHash", "utcDateCreated", "utcDateModified", "isDeleted"]; }
constructor(row) {
super();
if (!row) {
return;
}
this.updateFromRow(row);
this.init();
}
updateFromRow(row) {
/** @type {string} */
this.etapiTokenId = row.etapiTokenId;
/** @type {string} */
this.name = row.name;
/** @type {string} */
this.tokenHash = row.tokenHash;
/** @type {string} */
this.utcDateCreated = row.utcDateCreated || dateUtils.utcNowDateTime();
/** @type {string} */
this.utcDateModified = row.utcDateModified || this.utcDateCreated;
/** @type {boolean} */
this.isDeleted = !!row.isDeleted;
if (this.etapiTokenId) {
this.becca.etapiTokens[this.etapiTokenId] = this;
}
}
init() {
if (this.etapiTokenId) {
this.becca.etapiTokens[this.etapiTokenId] = this;
}
}
getPojo() {
return {
etapiTokenId: this.etapiTokenId,
name: this.name,
tokenHash: this.tokenHash,
utcDateCreated: this.utcDateCreated,
utcDateModified: this.utcDateModified,
isDeleted: this.isDeleted
}
}
beforeSaving() {
this.utcDateModified = dateUtils.utcNowDateTime();
super.beforeSaving();
this.becca.etapiTokens[this.etapiTokenId] = this;
}
}
module.exports = BEtapiToken;
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractBeccaEntity.html">AbstractBeccaEntity</a></li><li><a href="BAttachment.html">BAttachment</a></li><li><a href="BAttribute.html">BAttribute</a></li><li><a href="BBranch.html">BBranch</a></li><li><a href="BEtapiToken.html">BEtapiToken</a></li><li><a href="BNote.html">BNote</a></li><li><a href="BOption.html">BOption</a></li><li><a href="BRecentNote.html">BRecentNote</a></li><li><a href="BRevision.html">BRevision</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li></ul><h3>Global</h3><ul><li><a href="global.html#api">api</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a>
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
File diff suppressed because it is too large Load Diff
@@ -1,101 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: becca/entities/boption.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: becca/entities/boption.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>"use strict";
const dateUtils = require('../../services/date_utils');
const AbstractBeccaEntity = require("./abstract_becca_entity");
/**
* Option represents a name-value pair, either directly configurable by the user or some system property.
*
* @extends AbstractBeccaEntity
*/
class BOption extends AbstractBeccaEntity {
static get entityName() { return "options"; }
static get primaryKeyName() { return "name"; }
static get hashedProperties() { return ["name", "value"]; }
constructor(row) {
super();
this.updateFromRow(row);
this.becca.options[this.name] = this;
}
updateFromRow(row) {
/** @type {string} */
this.name = row.name;
/** @type {string} */
this.value = row.value;
/** @type {boolean} */
this.isSynced = !!row.isSynced;
/** @type {string} */
this.utcDateModified = row.utcDateModified;
}
beforeSaving() {
super.beforeSaving();
this.utcDateModified = dateUtils.utcNowDateTime();
}
getPojo() {
return {
name: this.name,
value: this.value,
isSynced: this.isSynced,
utcDateModified: this.utcDateModified
}
}
}
module.exports = BOption;
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractBeccaEntity.html">AbstractBeccaEntity</a></li><li><a href="BAttachment.html">BAttachment</a></li><li><a href="BAttribute.html">BAttribute</a></li><li><a href="BBranch.html">BBranch</a></li><li><a href="BEtapiToken.html">BEtapiToken</a></li><li><a href="BNote.html">BNote</a></li><li><a href="BOption.html">BOption</a></li><li><a href="BRecentNote.html">BRecentNote</a></li><li><a href="BRevision.html">BRevision</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li></ul><h3>Global</h3><ul><li><a href="global.html#api">api</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a>
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
@@ -1,86 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: becca/entities/brecent_note.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: becca/entities/brecent_note.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>"use strict";
const dateUtils = require('../../services/date_utils');
const AbstractBeccaEntity = require("./abstract_becca_entity");
/**
* RecentNote represents recently visited note.
*
* @extends AbstractBeccaEntity
*/
class BRecentNote extends AbstractBeccaEntity {
static get entityName() { return "recent_notes"; }
static get primaryKeyName() { return "noteId"; }
constructor(row) {
super();
/** @type {string} */
this.noteId = row.noteId;
/** @type {string} */
this.notePath = row.notePath;
/** @type {string} */
this.utcDateCreated = row.utcDateCreated || dateUtils.utcNowDateTime();
}
getPojo() {
return {
noteId: this.noteId,
notePath: this.notePath,
utcDateCreated: this.utcDateCreated
}
}
}
module.exports = BRecentNote;
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractBeccaEntity.html">AbstractBeccaEntity</a></li><li><a href="BAttachment.html">BAttachment</a></li><li><a href="BAttribute.html">BAttribute</a></li><li><a href="BBranch.html">BBranch</a></li><li><a href="BEtapiToken.html">BEtapiToken</a></li><li><a href="BNote.html">BNote</a></li><li><a href="BOption.html">BOption</a></li><li><a href="BRecentNote.html">BRecentNote</a></li><li><a href="BRevision.html">BRevision</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li></ul><h3>Global</h3><ul><li><a href="global.html#api">api</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a>
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
@@ -1,259 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: becca/entities/brevision.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: becca/entities/brevision.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>"use strict";
const protectedSessionService = require('../../services/protected_session');
const utils = require('../../services/utils');
const dateUtils = require('../../services/date_utils');
const becca = require('../becca');
const AbstractBeccaEntity = require("./abstract_becca_entity");
const sql = require("../../services/sql");
const BAttachment = require("./battachment");
/**
* Revision represents a snapshot of note's title and content at some point in the past.
* It's used for seamless note versioning.
*
* @extends AbstractBeccaEntity
*/
class BRevision extends AbstractBeccaEntity {
static get entityName() { return "revisions"; }
static get primaryKeyName() { return "revisionId"; }
static get hashedProperties() { return ["revisionId", "noteId", "title", "isProtected", "dateLastEdited", "dateCreated",
"utcDateLastEdited", "utcDateCreated", "utcDateModified", "blobId"]; }
constructor(row, titleDecrypted = false) {
super();
/** @type {string} */
this.revisionId = row.revisionId;
/** @type {string} */
this.noteId = row.noteId;
/** @type {string} */
this.type = row.type;
/** @type {string} */
this.mime = row.mime;
/** @type {boolean} */
this.isProtected = !!row.isProtected;
/** @type {string} */
this.title = row.title;
/** @type {string} */
this.blobId = row.blobId;
/** @type {string} */
this.dateLastEdited = row.dateLastEdited;
/** @type {string} */
this.dateCreated = row.dateCreated;
/** @type {string} */
this.utcDateLastEdited = row.utcDateLastEdited;
/** @type {string} */
this.utcDateCreated = row.utcDateCreated;
/** @type {string} */
this.utcDateModified = row.utcDateModified;
/** @type {int} */
this.contentLength = row.contentLength;
if (this.isProtected &amp;&amp; !titleDecrypted) {
this.title = protectedSessionService.isProtectedSessionAvailable()
? protectedSessionService.decryptString(this.title)
: "[protected]";
}
}
getNote() {
return becca.notes[this.noteId];
}
/** @returns {boolean} true if the note has string content (not binary) */
hasStringContent() {
return utils.isStringNote(this.type, this.mime);
}
isContentAvailable() {
return !this.revisionId // new note which was not encrypted yet
|| !this.isProtected
|| protectedSessionService.isProtectedSessionAvailable()
}
/*
* Note revision content has quite special handling - it's not a separate entity, but a lazily loaded
* part of Revision entity with its own sync. The reason behind this hybrid design is that
* content can be quite large, and it's not necessary to load it / fill memory for any note access even
* if we don't need a content, especially for bulk operations like search.
*
* This is the same approach as is used for Note's content.
*/
/** @returns {string|Buffer} */
getContent() {
return this._getContent();
}
/**
* @returns {*}
* @throws Error in case of invalid JSON */
getJsonContent() {
const content = this.getContent();
if (!content || !content.trim()) {
return null;
}
return JSON.parse(content);
}
/** @returns {*|null} valid object or null if the content cannot be parsed as JSON */
getJsonContentSafely() {
try {
return this.getJsonContent();
}
catch (e) {
return null;
}
}
/**
* @param content
* @param {object} [opts]
* @param {object} [opts.forceSave=false] - will also save this BRevision entity
*/
setContent(content, opts) {
this._setContent(content, opts);
}
/** @returns {BAttachment[]} */
getAttachments() {
return sql.getRows(`
SELECT attachments.*
FROM attachments
WHERE ownerId = ?
AND isDeleted = 0`, [this.revisionId])
.map(row => new BAttachment(row));
}
/** @returns {BAttachment|null} */
getAttachmentById(attachmentId, opts = {}) {
opts.includeContentLength = !!opts.includeContentLength;
const query = opts.includeContentLength
? `SELECT attachments.*, LENGTH(blobs.content) AS contentLength
FROM attachments
JOIN blobs USING (blobId)
WHERE ownerId = ? AND attachmentId = ? AND isDeleted = 0`
: `SELECT * FROM attachments WHERE ownerId = ? AND attachmentId = ? AND isDeleted = 0`;
return sql.getRows(query, [this.revisionId, attachmentId])
.map(row => new BAttachment(row))[0];
}
/** @returns {BAttachment[]} */
getAttachmentsByRole(role) {
return sql.getRows(`
SELECT attachments.*
FROM attachments
WHERE ownerId = ?
AND role = ?
AND isDeleted = 0
ORDER BY position`, [this.revisionId, role])
.map(row => new BAttachment(row));
}
/** @returns {BAttachment} */
getAttachmentByTitle(title) {
// cannot use SQL to filter by title since it can be encrypted
return this.getAttachments().filter(attachment => attachment.title === title)[0];
}
beforeSaving() {
super.beforeSaving();
this.utcDateModified = dateUtils.utcNowDateTime();
}
getPojo() {
return {
revisionId: this.revisionId,
noteId: this.noteId,
type: this.type,
mime: this.mime,
isProtected: this.isProtected,
title: this.title,
blobId: this.blobId,
dateLastEdited: this.dateLastEdited,
dateCreated: this.dateCreated,
utcDateLastEdited: this.utcDateLastEdited,
utcDateCreated: this.utcDateCreated,
utcDateModified: this.utcDateModified,
content: this.content, // used when retrieving full note revision to frontend
contentLength: this.contentLength
};
}
getPojoToSave() {
const pojo = this.getPojo();
delete pojo.content; // not getting persisted
delete pojo.contentLength; // not getting persisted
if (pojo.isProtected) {
if (protectedSessionService.isProtectedSessionAvailable()) {
pojo.title = protectedSessionService.encrypt(this.title);
}
else {
// updating protected note outside of protected session means we will keep original ciphertexts
delete pojo.title;
}
}
return pojo;
}
}
module.exports = BRevision;
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractBeccaEntity.html">AbstractBeccaEntity</a></li><li><a href="BAttachment.html">BAttachment</a></li><li><a href="BAttribute.html">BAttribute</a></li><li><a href="BBranch.html">BBranch</a></li><li><a href="BEtapiToken.html">BEtapiToken</a></li><li><a href="BNote.html">BNote</a></li><li><a href="BOption.html">BOption</a></li><li><a href="BRecentNote.html">BRecentNote</a></li><li><a href="BRevision.html">BRevision</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li></ul><h3>Global</h3><ul><li><a href="global.html#api">api</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a>
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

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