1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-12-26 23:38:08 +02:00

Compare commits

..

322 Commits

Author SHA1 Message Date
Laurent Cozic
028767bcc3 test 2022-12-21 16:44:22 +00:00
Laurent Cozic
31795f6c78 Tools: Setup CLA Assistant Lite 2022-12-21 16:41:49 +00:00
Joplin Bot
5ac9178f79 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-12-21 12:20:02 +00:00
Laurent Cozic
faf0a4ec8d All: Switch license to AGPL-3.0 2022-12-21 10:00:31 +00:00
Manuel Tassi
be70cdf75b All: Translation: Update it_IT.po (#7492) 2022-12-21 01:47:43 -05:00
renovate[bot]
5284989a08 Update dependency aws-sdk to v2.1279.0 (#7495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-21 06:10:40 +00:00
renovate[bot]
739449bde4 Update dependency jquery to v3.6.3 (#7504)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-21 03:20:22 +00:00
renovate[bot]
1e9cbc9606 Update aws-sdk-js-v3 monorepo to v3.235.0 (#7502)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-21 00:49:37 +00:00
renovate[bot]
0527dbbdc2 Update Yarn to v3.3.1 (#7501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-20 21:20:04 +00:00
renovate[bot]
80f061a2ca Update dependency react-native-modal-datetime-picker to v14.0.1 (#7500)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-20 17:56:28 +00:00
Laurent Cozic
d687abd7ef Doc: Update Chinese page 2022-12-20 12:58:03 +00:00
renovate[bot]
c16a92081d Update typescript-eslint monorepo to v5.47.0 (#7490)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-20 10:19:43 +00:00
renovate[bot]
1289be1d90 Update dependency sass to v1.57.1 (#7498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-20 07:30:56 +00:00
renovate[bot]
fdfabe8f92 Update dependency node-gyp to v9.3.1 (#7497)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-20 04:40:22 +00:00
renovate[bot]
db4e45ba61 Update aws-sdk-js-v3 monorepo to v3.234.0 (#7494)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-20 01:37:30 +00:00
Caleb John
28621f7e89 Linux: Use XDG_DATA_HOME for the .desktop file on linux (#7456) 2022-12-19 20:32:28 +00:00
Joplin Bot
ad2b6ef2fa Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-12-18 18:15:06 +00:00
Laurent Cozic
f6ca396e6e Chore: Server: Improve types to better detect dependency changes 2022-12-18 17:07:04 +00:00
Laurent Cozic
2f46a175ab Fixed tests 2022-12-18 16:39:02 +00:00
Laurent Cozic
79c84150a0 Server v2.10.4 2022-12-18 16:02:28 +00:00
Laurent Cozic
318a61e7c5 Merge branch 'dev' into release-2.10 2022-12-18 16:01:40 +00:00
Laurent Cozic
31c66ae3cd Server: Fixes #7463: Fixed regression introduced by form-parse lib update 2022-12-18 16:00:34 +00:00
Laurent Cozic
c50fdde5da lock file 2022-12-18 15:29:09 +00:00
renovate[bot]
a7f5a2089d Update dependency @react-native-community/slider to v4.4.0 (#7475) 2022-12-18 12:48:35 +00:00
Wartijn
10252228ae Desktop: Fixes #7434: Profile paths that contain special characters can break note rendering (#7449) 2022-12-18 12:41:36 +00:00
renovate[bot]
573222762a Update dependency @types/node to v18.11.17 (#7476)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-18 02:07:16 +00:00
klxiang
a2be4fc535 All: Translation: Update zh_CN.po (#7461)
translate
2022-12-17 17:42:09 -05:00
Jonatan
e555eafb33 All: Translation: Update sv.po (#7474) 2022-12-17 17:41:27 -05:00
renovate[bot]
fa7eb0ff9d Update dependency sass to v1.57.0 (#7468) 2022-12-17 10:16:24 +00:00
renovate[bot]
733b38250b Update dependency @types/nodemailer to v6.4.7 (#7473)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-17 06:59:08 +00:00
renovate[bot]
50177bd997 Update dependency eslint to v8.30.0 (#7467)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-17 04:26:27 +00:00
renovate[bot]
37ad911659 Update dependency @types/node to v18.11.16 (#7466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-17 01:53:43 +00:00
renovate[bot]
538d6f3d47 Update dependency aws-sdk to v2.1277.0 (#7465)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-16 22:16:32 +00:00
Laurent Cozic
1c7ad612a7 Renamed file 2022-12-16 12:29:14 +00:00
Laurent Cozic
789b2005b8 Desktop release v2.10.2 2022-12-16 12:28:43 +00:00
Laurent Cozic
83038de321 Desktop release v2.10.1 2022-12-16 12:28:42 +00:00
Joplin Bot
871190b7ee Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-12-16 12:19:05 +00:00
Laurent Cozic
0a65d538c5 Desktop release v2.10.2 2022-12-16 12:15:47 +00:00
Laurent Cozic
5edf10c398 Merge branch 'dev' into release-2.10 2022-12-16 12:15:16 +00:00
Laurent Cozic
60db566c2d Desktop release v2.10.1 2022-12-16 12:14:53 +00:00
Laurent Cozic
36381a098f Tools: Fixing CI 2022-12-16 12:14:02 +00:00
Laurent Cozic
e6b54efe1b Desktop release v2.10.1 2022-12-16 11:08:03 +00:00
Laurent Cozic
ecde67c25f Doc: Version 2.9 release post 2022-12-16 11:06:33 +00:00
renovate[bot]
46d0100bb7 Update dependency aws-sdk to v2.1276.0 (#7459)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-16 04:59:30 +00:00
Joplin Bot
957b311872 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-12-16 00:42:14 +00:00
Laurent Cozic
7051459c47 Server v2.10.3 2022-12-15 23:32:34 +00:00
Laurent Cozic
69038e2d84 Tools: Fixing logic 2022-12-15 23:31:47 +00:00
Laurent Cozic
652a72aba7 Server v2.10.2 2022-12-15 23:26:45 +00:00
Laurent Cozic
9a1adff5fe Tools: Trying to fix server release 2022-12-15 23:25:23 +00:00
Laurent Cozic
c8f7772f1b Server v2.10.1 2022-12-15 22:42:17 +00:00
Laurent Cozic
7829c1e272 Create new release 2.10 2022-12-15 22:14:34 +00:00
Laurent Cozic
66f1bd9c11 Tools: Fixed setupNewRelease script when version number is over x.10 2022-12-15 22:06:22 +00:00
renovate[bot]
e2e9a7fef2 Update aws-sdk-js-v3 monorepo to v3.231.0 (#7455)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-15 01:15:36 +00:00
renovate[bot]
46a499b211 Update dependency aws-sdk to v2.1275.0 (#7454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-14 22:29:57 +00:00
renovate[bot]
680ebca853 Update dependency css-loader to v6.7.3 (#7453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-14 19:38:31 +00:00
renovate[bot]
39ef8433bb Update dependency @types/node to v18.11.15 (#7451)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-14 04:32:06 +00:00
renovate[bot]
76889aba4b Update dependency aws-sdk to v2.1274.0 (#7452)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-14 01:48:13 +00:00
renovate[bot]
e2627ab26f Update dependency jquery to v3.6.2 (#7450)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-13 19:29:52 +00:00
renovate[bot]
0f51b97494 Update dependency @types/node to v18.11.14 (#7447)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-13 10:32:39 +00:00
renovate[bot]
5a5e5b3bfc Update dependency aws-sdk to v2.1273.0 (#7444)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-13 02:36:17 +00:00
renovate[bot]
e530f5246e Update aws-sdk-js-v3 monorepo to v3.229.0 (#7443)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-12 23:15:12 +00:00
renovate[bot]
274da67131 Update typescript-eslint monorepo to v5.46.1 (#7440)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-12 22:14:29 +00:00
renovate[bot]
aeae45fb93 Update dependency sqlite3 to v5.1.4 (#7439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-12 18:50:56 +00:00
renovate[bot]
6b3868f23b Update dependency @types/node to v18.11.13 (#7437)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-10 23:38:03 +00:00
renovate[bot]
423a75e7d8 Update dependency aws-sdk to v2.1272.0 (#7436)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-10 11:10:54 +00:00
Laurent Cozic
97bb76c027 Update renovate.json5 2022-12-10 08:45:56 +00:00
renovate[bot]
0697406c55 Update typescript-eslint monorepo to v5.46.0 (#7428) 2022-12-10 00:37:38 +00:00
renovate[bot]
8356adb00a Update dependency react-native-webview to v11.26.0 (#7432) 2022-12-10 00:37:12 +00:00
Joplin Bot
f712e1bdbb Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-12-09 18:16:49 +00:00
Laurent Cozic
1b78486fba Doc: Add job news 2022-12-09 12:41:35 +00:00
Laurent Cozic
16e88bca30 Tools: Add "automerge" label on Renovate PR that can be automerged 2022-12-09 12:22:13 +00:00
renovate[bot]
2d01792604 Update dependency eslint-interactive to v10.3.0 (#7419)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-09 11:58:30 +00:00
renovate[bot]
d64e263572 Update dependency aws-sdk to v2.1271.0 (#7425)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-09 08:49:53 +00:00
renovate[bot]
84a3e77e63 Update dependency sass to v1.56.2 (#7431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-09 05:05:07 +00:00
renovate[bot]
af48240f71 Update dependency @types/node to v18.11.12 (#7430)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-09 02:04:31 +00:00
renovate[bot]
5cac8a9fcd Update aws-sdk-js-v3 monorepo to v3.226.0 (#7424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 22:10:39 +00:00
renovate[bot]
15ba608207 Update dependency react-native-share to v8.0.1 (#7427)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 18:38:04 +00:00
renovate[bot]
04dffb002f Update dependency typescript to v4.9.4 (#7423)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 17:42:26 +00:00
renovate[bot]
b0eb588de8 Update dependency tar to v6.1.13 (#7422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 14:11:53 +00:00
renovate[bot]
dd350fe126 Update dependency prettier to v2.8.1 (#7421)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 10:04:48 +00:00
renovate[bot]
c42e4ac7c5 Update dependency @types/yargs to v17.0.17 (#7420)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-08 06:05:32 +00:00
Henry Heino
943a0fdbbf Mobile: Fix CodeMirror syntax highlighting (#7386) 2022-12-07 23:19:55 +00:00
Henry Heino
4860253bff Chore: Mobile: CodeMirror: Tests: Ensure full document is parsed, don't rely on timeout (#7405) 2022-12-07 21:28:17 +00:00
Henry Heino
da01dc882b Chore: Mobile: Tests: Markdown math tests: Fix code formatting (#7387) 2022-12-07 20:10:02 +00:00
Laurent Cozic
33038e621b Update renovate.json5 2022-12-07 18:08:55 +00:00
renovate[bot]
4332644d8a Update dependency koa to v2.14.1 (#7414) 2022-12-07 14:53:42 +00:00
renovate[bot]
beb4f66767 Update dependency react-native-webview to v11.25.1 (#7417)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-07 03:31:45 +00:00
renovate[bot]
ca2602a979 Update dependency aws-sdk to v2.1269.0 (#7413)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-07 00:45:00 +00:00
renovate[bot]
64f35d035e Update dependency dayjs to v1.11.7 (#7415)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-06 18:54:15 +00:00
renovate[bot]
0f2c0e68e1 Update aws-sdk-js-v3 monorepo to v3.224.0 (#7411)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-06 15:20:41 +00:00
renovate[bot]
0eb956c73c Update typescript-eslint monorepo to v5.45.1 (#7410)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-06 13:00:46 +00:00
renovate[bot]
6b9307a8d8 Update dependency @types/yargs to v17.0.16 (#7412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-06 09:19:28 +00:00
renovate[bot]
1145443916 Update dependency @types/node to v18.11.11 (#7409)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-06 06:44:08 +00:00
renovate[bot]
e209663939 Update dependency @electron/remote to v2.0.9 (#7408)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-06 03:49:58 +00:00
Matt Demers
022531e879 Documentation: Adding instructions to unpublish a note (#7382)
* Added unpublishing instructions for Joplin Cloud notes

* Screenshot for how to unpublish a note

* Fixed image path for unpublishing instructions

* Update publish_note.md

* Update publish_note.md

* Delete joplin_unpublish_note.png

Removed screenshot that wasn't needed anymore.

* Update readme/publish_note.md

Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>

Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
2022-12-05 15:46:28 -05:00
renovate[bot]
56ee31a0c8 Update dependency @types/jest to v29.2.4 (#7406)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-05 16:56:08 +00:00
Laurent Cozic
4cc41ccd2e Tools: Ignore translations in changelog 2022-12-05 10:15:49 +00:00
Helmut K. C. Tessarek
67bd5a0f18 All: Translation: Update da_DK.po (thanks ERYpTION) 2022-12-04 18:02:54 -05:00
Laurent Cozic
3e538d9df5 Merge branch 'release-2.9' into dev 2022-12-04 18:51:08 +00:00
Laurent Cozic
d73657fa0d Chore: Fix iOS build 2022-12-04 18:50:51 +00:00
Laurent Cozic
8f9895eaf9 iOS 12.9.1 2022-12-04 18:03:36 +00:00
renovate[bot]
649b0e1547 Update dependency lint-staged to v13.1.0 (#7401) 2022-12-04 15:40:10 +00:00
renovate[bot]
2f44bef71b Update dependency formidable to v2.1.1 (#7391) 2022-12-04 15:39:59 +00:00
renovate[bot]
7f7bf44779 Update dependency react-select to v5.7.0 (#7388) 2022-12-04 15:39:48 +00:00
renovate[bot]
bcc767578f Update dependency eslint to v8.29.0 (#7399)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-03 06:13:51 +00:00
renovate[bot]
f0ba2b43c5 Update dependency aws-sdk to v2.1267.0 (#7398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-03 03:31:35 +00:00
renovate[bot]
ae3931b5de Update aws-sdk-js-v3 monorepo to v3.223.0 (#7397)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-03 00:55:21 +00:00
renovate[bot]
b22b5e9113 Update dependency query-string to v7.1.3 (#7396)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-02 21:29:33 +00:00
renovate[bot]
501a42b2fa Update dependency aws-sdk to v2.1266.0 (#7393)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-02 07:21:24 +00:00
renovate[bot]
39c669a36a Update aws-sdk-js-v3 monorepo to v3.222.0 (#7392)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-02 04:49:15 +00:00
renovate[bot]
d996637259 Update dependency react-native-image-picker to v4.10.2 (#7390)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-02 01:42:52 +00:00
renovate[bot]
cbd532d4f0 Update dependency query-string to v7.1.2 (#7389)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 22:17:32 +00:00
renovate[bot]
cf32366689 Update dependency aws-sdk to v2.1265.0 (#7384)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 10:30:32 +00:00
renovate[bot]
d31632f71b Update dependency ts-loader to v9.4.2 (#7385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 07:31:57 +00:00
renovate[bot]
df28bad7eb Update dependency @types/node to v18.11.10 (#7383)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-01 04:58:58 +00:00
Mr-Kanister
c29a2694a2 All: Translation: Update de_DE.po (#7381) 2022-11-30 18:41:35 -05:00
renovate[bot]
aec1860662 Update dependency react-redux to v7.2.9 (#7380)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-30 12:40:17 +00:00
renovate[bot]
efa6cb8d61 Update dependency @types/uuid to v9 (#7376) 2022-11-30 09:35:01 +00:00
renovate[bot]
973328b6d1 Update dependency fs-extra to v11.1.0 (#7379) 2022-11-30 09:34:27 +00:00
Tolulope Malomo
4775b60887 Chore: Fixes #7360: Fix react-redux build error on mobile (#7378) 2022-11-30 09:33:52 +00:00
Laurent Cozic
96ed2786df Update renovate.json5 2022-11-29 23:16:33 +00:00
renovate[bot]
ccdedfa92e Update dependency aws-sdk to v2.1264.0 (#7375)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-29 23:08:52 +00:00
renovate[bot]
eeef68482c Update typescript-eslint monorepo to v5.45.0 (#7371)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-29 10:31:02 +00:00
renovate[bot]
044f35d4b5 Update dependency aws-sdk to v2.1263.0 (#7373)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-29 07:39:34 +00:00
renovate[bot]
b9aae5b4cf Update dependency @types/yargs to v17.0.15 (#7370)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-29 05:01:25 +00:00
renovate[bot]
20e18a149c Update dependency @react-native-community/netinfo to v9.3.7 (#7369)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-29 02:48:09 +00:00
renovate[bot]
e765e9eb39 Update dependency fs-extra to v11 (#7372) 2022-11-28 23:44:37 +00:00
Laurent Cozic
181f88fd99 Doc: Fixed spacing 2022-11-28 22:59:08 +01:00
Laurent Cozic
4e0aad8abe Doc: Update image 2022-11-28 22:56:36 +01:00
Laurent Cozic
59303087dc Chore: Fixed TS error 2022-11-28 18:21:42 +01:00
Laurent Cozic
58da15432f Chore: Fix warning in PDF Viewer 2022-11-28 18:21:41 +01:00
Self Not Found
4fd4360c18 Fix translation in zh_CN.po (#7364) 2022-11-28 17:10:38 +00:00
JackGruber
09fbf6428c Mobile: Tag search case insensitive (#7368) 2022-11-28 17:09:47 +00:00
Laurent Cozic
6ece7f4c1b Desktop: Fixes #7354: Open callback URLs from within the application 2022-11-28 18:01:00 +01:00
Laurent Cozic
fab2271c9f Plugin Repo: Fix git compare url 2022-11-28 17:54:29 +01:00
Laurent Cozic
43618c774a Tools: Make main website translatable 2022-11-28 17:18:15 +01:00
Laurent Cozic
d6b3b4c404 Update renovate.json5 2022-11-28 15:45:57 +00:00
renovate[bot]
8371e2ece6 Update aws-sdk-js-v3 monorepo to v3.218.0 (#7363)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-28 09:40:52 +00:00
renovate[bot]
0c6a966c58 Update dependency aws-sdk to v2.1262.0 (#7362)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-28 06:46:05 +00:00
Laurent Cozic
fc813715d7 Tools: Auto-generate Linux icons 2022-11-27 21:02:24 +01:00
Roman Musin
cb563f7e60 Linux: Fix AppImage icon when installing using Joplin_install_and_update.sh (#7346) 2022-11-27 19:53:37 +00:00
Laurent Cozic
1e788305c3 Tools: Prevent image generation tool to regenerate already existing images 2022-11-27 20:50:17 +01:00
renovate[bot]
7d7f6b251c Update dependency @react-native-community/datetimepicker to v6.7.1 (#7358)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-27 00:19:22 +00:00
renovate[bot]
576fb1a828 Update dependency react-native-document-picker to v8.1.3 (#7356)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-26 21:29:07 +00:00
renovate[bot]
1c40f31f49 Update dependency react-native-webview to v11.25.0 (#7352) 2022-11-26 13:21:17 +01:00
renovate[bot]
5cb23813f5 Update dependency @lezer/highlight to v1.1.3 (#7349)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-25 19:39:57 +00:00
renovate[bot]
32017a80f2 Update dependency lint-staged to v13.0.4 (#7347)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-25 12:23:00 +00:00
ancheGT
750b6fc1c7 add Chinese translate (#7335) 2022-11-24 21:58:37 +00:00
Joplin Bot
e8b1e1410e Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-11-24 20:29:45 +00:00
renovate[bot]
6a30ca967d Update dependency highlight.js to v11.7.0 (#7340) 2022-11-24 20:21:56 +00:00
Laurent Cozic
466d79e5d0 Chore: Fixed tests 2022-11-24 21:08:25 +01:00
renovate[bot]
d886436d75 Update dependency aws-sdk to v2.1261.0 (#7339)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-24 07:33:48 +00:00
renovate[bot]
9438f58bac Update dependency @types/yargs to v17.0.14 (#7338)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-24 05:03:12 +00:00
renovate[bot]
d3fcf4cb76 Update dependency @types/mustache to v4.2.2 (#7337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-24 02:35:05 +00:00
Laurent Cozic
e2c6a865ec Update renovate.json5 2022-11-23 23:09:01 +00:00
Helmut K. C. Tessarek
0682ea28c8 All: Update Mermaid: 9.1.7 to 9.2.2 (#7330) 2022-11-23 23:08:27 +00:00
renovate[bot]
a9dee1ba12 Update dependency prettier to v2.8.0 (#7334) 2022-11-23 23:07:55 +00:00
renovate[bot]
8f5d3edaa5 Update dependency react-native-webview to v11.24.0 (#7333) 2022-11-23 23:07:16 +00:00
renovate[bot]
3654943258 Update dependency react-tooltip to v4.5.1 (#7336)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-23 22:43:51 +00:00
renovate[bot]
2762ce2bb8 Update aws-sdk-js-v3 monorepo to v3.216.0 (#7332)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-23 02:13:46 +00:00
renovate[bot]
0e8ee78d62 Update dependency aws-sdk to v2.1260.0 (#7331)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-22 23:19:54 +00:00
Joplin Bot
ef5ec3632c Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-11-22 18:19:43 +00:00
Laurent Cozic
c990e81def Doc: Allow translating website 2022-11-22 18:17:24 +00:00
renovate[bot]
07fc6aa647 Update aws-sdk-js-v3 monorepo to v3.215.0 (#7325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-22 17:08:04 +00:00
Joplin Bot
65e1460bca Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-11-22 12:23:04 +00:00
renovate[bot]
e957269416 Update typescript-eslint monorepo to v5.44.0 (#7324) 2022-11-22 10:29:34 +00:00
Laurent Cozic
5072a5b891 Update renovate.json5 2022-11-22 10:28:41 +00:00
renovate[bot]
6070a931c4 Update dependency aws-sdk to v2.1259.0 (#7326)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-22 01:06:52 +00:00
Laurent Cozic
5efa227e70 Tools: Fix iOS build 2022-11-21 14:46:07 +00:00
Laurent Cozic
276f066b7b Tools: Filter out certain Yarn warnings 2022-11-21 12:37:07 +00:00
Laurent Cozic
5b0a9b9b56 Tools: Filter out certain Yarn warnings 2022-11-21 12:34:40 +00:00
Laurent Cozic
11d31ad488 Tools: Disable test that randomly fails on CI 2022-11-21 11:41:17 +00:00
phlax
ceb6a0b003 Doc: Fix links in README (#7322) 2022-11-21 11:00:57 +00:00
renovate[bot]
5dcb896770 Update dependency eslint to v8.28.0 (#7320) 2022-11-20 10:11:34 +00:00
Laurent Cozic
9595e2a226 Renovate config 2022-11-20 10:11:20 +00:00
Laurent Cozic
dbd480913d Fix CI 2022-11-20 10:10:41 +00:00
Mr-Kanister
09ac21e99e All: Translation: Update de_DE.po (#7316) 2022-11-19 01:31:49 -05:00
renovate[bot]
457cb05162 Update dependency aws-sdk to v2.1258.0 (#7319)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-19 03:19:26 +00:00
renovate[bot]
d1e064532d Update aws-sdk-js-v3 monorepo to v3.213.0 (#7313)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-19 00:55:40 +00:00
renovate[bot]
3477ee68ac Update dependency eslint-plugin-react to v7.31.11 (#7317)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-18 21:28:37 +00:00
renovate[bot]
adc7d8e2f1 Update dependency aws-sdk to v2.1257.0 (#7309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-18 00:33:43 +00:00
Laurent Cozic
cd7dd12d3c Renovate config 2022-11-17 18:18:43 +00:00
Laurent Cozic
c0541950a7 Fix TS errors 2022-11-17 16:34:16 +00:00
renovate[bot]
67f7e2e7ff Update dependency typescript to v4.9.3 (#7310) 2022-11-17 16:23:13 +00:00
Laurent Cozic
beec324677 Renovate ignore 2022-11-17 16:04:05 +00:00
Laurent Cozic
fda62a97b5 Fix build 2022-11-17 15:36:33 +00:00
renovate[bot]
ae49199f36 Update Yarn to v3.3.0 (#7308) 2022-11-17 15:20:14 +00:00
Laurent Cozic
5778d7a3b3 Chore: Finish uuid upgrade 2022-11-17 15:19:32 +00:00
renovate[bot]
7d749d6b1e Update dependency uuid to v9 (#7282) 2022-11-17 14:53:24 +00:00
Laurent Cozic
dc73899bde Tools: Fixed updateNews script 2022-11-17 14:06:47 +00:00
Laurent Cozic
a91b5f4bb6 Renovate: Automerge TypeScript and Yarn upgrades 2022-11-17 13:53:43 +00:00
renovate[bot]
55cb547664 Update dependency tap to v16 (#7273) 2022-11-17 13:34:59 +00:00
renovate[bot]
33bdaaf385 Update aws-sdk-js-v3 monorepo to v3.212.0 (#7300)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-17 13:33:28 +00:00
renovate[bot]
1d9b0233aa Update dependency @react-native-community/datetimepicker to v6.7.0 (#7302) 2022-11-17 13:32:53 +00:00
renovate[bot]
855d6f62a3 Update dependency @seiyab/eslint-plugin-react-hooks to v4.5.1-beta.0 (#7301) 2022-11-17 13:32:38 +00:00
Laurent Cozic
3ae1ebb2f4 Fix tests 2022-11-17 11:57:19 +00:00
Laurent Cozic
089b53e514 Upgrade yeoman to v5 2022-11-17 11:52:21 +00:00
Laurent Cozic
d93a210de6 Revert pdfjs-dist to v2 2022-11-17 11:25:11 +00:00
Laurent Cozic
4544144f66 Chore: Downgrade TinyMCE back to v5 2022-11-16 09:37:30 +00:00
Joplin Bot
e5d3792335 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-11-15 18:18:55 +00:00
Laurent Cozic
c53d4fd757 Update renovate.json5 2022-11-15 17:47:57 +00:00
Laurent Cozic
83110bce76 lock file 2022-11-15 16:00:36 +00:00
Laurent Cozic
0cfa07b1b0 Tools: Improve error message when website building fails 2022-11-15 16:00:06 +00:00
Joplin Bot
341c9029c4 Doc: Auto-update documentation
Auto-updated using release-website.sh
2022-11-15 12:21:07 +00:00
Laurent Cozic
060e78577d Chore: Complete pdf-js update 2022-11-15 11:39:51 +00:00
renovate[bot]
ceb1db5379 Update dependency pdfjs-dist to v3 (#7231) 2022-11-15 11:36:05 +00:00
Laurent Cozic
9921f4eb00 Doc: Add news item for Renovate 2022-11-15 11:29:00 +00:00
renovate[bot]
b1f840622d Update dependency typescript to v4.8.4 (#7280) 2022-11-15 10:56:35 +00:00
Laurent Cozic
64199704c2 Chore: Complete Jest upgrade 2022-11-15 10:23:50 +00:00
Laurent Cozic
33b96b4c65 Renovate ignore gradle 2022-11-15 09:22:07 +00:00
renovate[bot]
81299384af Update jest monorepo to v29 (#7287) 2022-11-15 09:21:45 +00:00
Laurent Cozic
1554e9dea5 Tools: Move Renovate config to JSON5 to allow comments 2022-11-15 09:11:25 +00:00
Laurent Cozic
5c430a3b0e Upgrade node-fetch to 2.6.7 2022-11-15 09:11:25 +00:00
Laurent Cozic
9c74d18abf Chore: Complete upgrade to React 18 2022-11-15 09:11:24 +00:00
Laurent Cozic
a40a5ef3bf Chore: Fixes 2022-11-15 09:11:23 +00:00
renovate[bot]
fce571f38c Update dependency terminal-kit to v3 (#7276) 2022-11-15 08:16:58 +00:00
renovate[bot]
f079fa3bdd Update dependency uri-template to v2 (#7281) 2022-11-15 08:16:38 +00:00
renovate[bot]
b44b733090 Update dependency yargs-parser to v21 (#7284) 2022-11-15 08:13:31 +00:00
renovate[bot]
d1089f9284 Update docker/login-action action to v2 (#7286) 2022-11-15 08:12:16 +00:00
renovate[bot]
d2457a0079 Update postgres Docker tag to v15 (#7288) 2022-11-15 08:10:13 +00:00
renovate[bot]
7e407af638 Update typescript-eslint monorepo to v5 (#7291) 2022-11-15 08:09:46 +00:00
Laurent Cozic
3cee7b0858 Renovate: Automerge AWS package updates 2022-11-15 08:06:56 +00:00
Laurent Cozic
ceb8e70dc7 Merge release-2.9 2022-11-15 07:36:37 +00:00
Laurent Cozic
a84a8e7710 Desktop release v2.9.17 2022-11-15 07:35:09 +00:00
Laurent Cozic
6e0c3c076d Tools: Trying to fix CI - macOS translation kit not needed 2022-11-15 07:34:55 +00:00
renovate[bot]
b83aadbb7b Update dependency react-select to v5.6.1 (#7299)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-15 02:16:26 +00:00
renovate[bot]
3a8e2632a7 Update dependency tcp-port-used to v1 (#7275) 2022-11-14 22:40:35 +00:00
renovate[bot]
cf78ec2e22 Update dependency yargs to v17 (#7283) 2022-11-14 22:39:46 +00:00
renovate[bot]
35903572e1 Update dependency @types/react-dom to v18.0.9 (#7296) 2022-11-14 22:38:44 +00:00
renovate[bot]
e4254d6195 Update dependency aws-sdk to v2.1254.0 (#7297) 2022-11-14 22:38:27 +00:00
renovate[bot]
de4f8c75e5 Update typescript-eslint monorepo to v5.43.0 (#7298) 2022-11-14 22:38:12 +00:00
renovate[bot]
1322e8cbcc Update react monorepo to v18 (#7289) 2022-11-14 22:37:49 +00:00
Laurent Cozic
03a111eebb Desktop release v2.9.16 2022-11-14 22:35:41 +00:00
Laurent Cozic
fe8e5adbee Tools: Trying to fix CI - macOS translation kit not needed 2022-11-14 22:35:12 +00:00
Laurent Cozic
7b94901129 Merge release-2.9 2022-11-14 17:33:21 +00:00
Laurent Cozic
4f4f18bc0e Desktop release v2.9.15 2022-11-14 17:29:02 +00:00
Laurent Cozic
018591d1fa Ignored 2022-11-14 17:28:16 +00:00
Laurent Cozic
7364e82c21 Revert "Desktop release v2.9.14"
This reverts commit f008f080f1.
2022-11-14 17:27:48 +00:00
Laurent Cozic
f008f080f1 Desktop release v2.9.14 2022-11-14 17:26:54 +00:00
Kenichi Kobayashi
275851091a Desktop: Fixes #6416: Switching a note using Sidebar is slow and grayed out (#6430) 2022-11-14 17:26:43 +00:00
Kenichi Kobayashi
5d49fcfe4e Desktop: Fixes #6416: Switching a note using Sidebar is slow and grayed out (#6430) 2022-11-14 17:25:41 +00:00
Laurent Cozic
8eef7c75e4 Desktop release v2.9.13 2022-11-14 17:22:06 +00:00
Laurent Cozic
762b4e88f8 All: Security: Fix XSS when a specially crafted string is passed to the renderer 2022-11-14 17:21:45 +00:00
Laurent Cozic
a2de167b95 All: Security: Fix XSS when a specially crafted string is passed to the renderer 2022-11-14 17:16:59 +00:00
Laurent Cozic
a7213453c7 Chore: Remove Redux withRef implementation to simplify code and fix issue 2022-11-14 16:48:41 +00:00
Self Not Found
673653a141 Desktop: Fixes #7036: Fix pasting plain text (#7045) 2022-11-14 12:29:07 +00:00
Self Not Found
7d135730bf Mobile: Fixes #7195: Fix attaching multiple files (#7196) 2022-11-14 12:28:32 +00:00
mrkaato0
456a20b8f8 Update fi_FI.po (#7251) 2022-11-14 12:27:28 +00:00
renovate[bot]
48074c254d Update dependency strip-ansi to v6.0.1 (#7290)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-14 05:40:32 +00:00
renovate[bot]
50f587cf02 Update dependency css-loader to v6.7.2 (#7292)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-14 02:37:37 +00:00
Henry Heino
79a627c14f Mobile: Fixes #7253: Update CodeMirror (#7262) 2022-11-13 22:49:20 +00:00
Laurent Cozic
a873898422 Fix TS 2022-11-13 14:25:06 +00:00
renovate[bot]
859b950106 Update dependency tinymce to v6 (#7277) 2022-11-13 12:33:12 +00:00
renovate[bot]
7f13042c44 Update dependency turndown to v7 (#7278) 2022-11-13 12:32:56 +00:00
renovate[bot]
7e6a43de91 Update dependency tar to v6 (#7274) 2022-11-13 12:32:22 +00:00
Laurent Cozic
a3c88b6ec7 Fixed string-ansi 2022-11-13 12:30:47 +00:00
Laurent Cozic
71efa09737 Fixed newly upgraded packages 2022-11-13 12:14:30 +00:00
renovate[bot]
c19f7f814f Update dependency react-redux to v8 (#7252) 2022-11-13 11:39:02 +00:00
Laurent Cozic
97e88d7983 Fixed CI 2022-11-13 11:37:05 +00:00
Laurent Cozic
cc5ead7474 Fixed husky config 2022-11-13 11:07:51 +00:00
Laurent Cozic
b823c729e7 fix ios build 2022-11-13 11:06:55 +00:00
Laurent Cozic
4eac85bec6 renovate ignore 2022-11-13 10:59:03 +00:00
Tom
7bfb6c0ee9 Update changelog_android.md (#7271) 2022-11-13 10:49:30 +00:00
renovate[bot]
b879538da9 Update dependency md5-file to v5 (#7215) 2022-11-13 10:44:53 +00:00
renovate[bot]
502b26e0b4 Update dependency pretty-bytes to v6 (#7239) 2022-11-13 10:43:35 +00:00
renovate[bot]
8d58ad7d86 Update dependency proper-lockfile to v4 (#7241) 2022-11-13 10:41:56 +00:00
renovate[bot]
c490aa8d90 Update dependency string-natural-compare to v3 (#7267) 2022-11-13 10:39:51 +00:00
renovate[bot]
9c95bc987e Update dependency strip-ansi to v7 (#7269) 2022-11-13 10:38:58 +00:00
renovate[bot]
5e649bdc01 Update dependency string-to-stream to v3 (#7268) 2022-11-13 10:38:24 +00:00
renovate[bot]
f653824874 Update dependency node-persist to v3 (#7225) 2022-11-13 10:01:49 +00:00
renovate[bot]
ca5ec025c9 Update dependency react-select to v5 (#7254) 2022-11-13 10:01:15 +00:00
renovate[bot]
db8a231aa3 Update dependency react-tooltip to v4 (#7255) 2022-11-13 10:00:12 +00:00
renovate[bot]
6f68c91c75 Update dependency smalltalk to v4 (#7261) 2022-11-13 09:59:50 +00:00
renovate[bot]
a038704b2a Update dependency source-map-loader to v4 (#7264) 2022-11-13 09:58:58 +00:00
renovate[bot]
ab730e84e0 Update dependency standard to v17 (#7266) 2022-11-13 09:58:36 +00:00
renovate[bot]
9e78e48370 Update dependency redux to v4.2.0 (#7257) 2022-11-13 08:42:56 +00:00
renovate[bot]
c09567ef16 Update dependency react-native-document-picker to v8 (#7245) 2022-11-13 08:40:11 +00:00
renovate[bot]
cf4f059a20 Update dependency query-string to v7 (#7242) 2022-11-13 08:39:35 +00:00
renovate[bot]
5325e85b9d Update dependency sqlite3 to v5.1.2 (#7265) 2022-11-13 08:38:59 +00:00
renovate[bot]
1510b8fa0e Update dependency react-native-image-picker to v4.10.1 (#7221)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-13 04:56:25 +00:00
renovate[bot]
c135361f70 Update dependency ruby to v2.7.6 (#7205)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-13 02:14:53 +00:00
renovate[bot]
e7be0f5d00 Update dependency react-datetime to v3 (#7243) 2022-11-12 23:42:23 +00:00
renovate[bot]
de9ce973b4 Update dependency react-native-camera to v4 (#7244) 2022-11-12 23:41:58 +00:00
renovate[bot]
4d7ffdd8e0 Update dependency react-native-dropdownalert to v4 (#7246) 2022-11-12 23:40:44 +00:00
renovate[bot]
6af18a0cfc Update dependency react-native-modal-datetime-picker to v14 (#7247) 2022-11-12 23:40:09 +00:00
renovate[bot]
d53c3f9f2d Update dependency react-native-share to v8 (#7248) 2022-11-12 23:39:16 +00:00
renovate[bot]
790a756f74 Update dependency react-native-sqlite-storage to v6 (#7249) 2022-11-12 23:38:46 +00:00
renovate[bot]
c00b71b5b1 Update dependency promise to v8 (#7240) 2022-11-12 23:38:17 +00:00
renovate[bot]
a1051145bc Update dependency react-native-vector-icons to v9 (#7250) 2022-11-12 23:35:28 +00:00
renovate[bot]
a0c87d6d4b Update dependency joplin-rn-alarm-notification to v1.0.6 (#7229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-12 21:08:52 +00:00
renovate[bot]
42cbd4fac8 Update dependency knex to v2 (#7208) 2022-11-12 15:59:02 +00:00
renovate[bot]
3a19fe6879 Update dependency prettier to v2 (#7238) 2022-11-12 13:50:56 +00:00
Laurent Cozic
290388b679 renovate iugnore 2022-11-12 13:50:18 +00:00
renovate[bot]
20518112e3 Update dependency open to v8 (#7227) 2022-11-12 13:11:45 +00:00
renovate[bot]
c31fce4e33 Update dependency normalize to v8 (#7226) 2022-11-12 13:10:36 +00:00
renovate[bot]
3ce548b005 Update dependency node-notifier to v10 (#7224) 2022-11-12 12:36:27 +00:00
Sammy Hori
c0903ad61b Minor grammatical correction in README.md (#7235) 2022-11-12 12:36:08 +00:00
renovate[bot]
01062d4577 Update dependency mustache to v4 (#7217) 2022-11-12 12:28:12 +00:00
renovate[bot]
d0498b6274 Update dependency highlight.js to v11.6.0 (#7181) 2022-11-12 12:21:19 +00:00
renovate[bot]
26e5bd5550 Update dependency glob to v8 (#7179) 2022-11-12 12:20:53 +00:00
renovate[bot]
7ccf38fdd6 Update dependency http-server to v14 (#7185) 2022-11-12 12:20:32 +00:00
renovate[bot]
38a24c4bd9 Update aws-sdk-js-v3 monorepo to v3.209.0 (#7222) 2022-11-12 12:20:05 +00:00
renovate[bot]
a05dbcd17b Update dependency @react-native-community/datetimepicker to v6.6.0 (#7223) 2022-11-12 12:19:38 +00:00
renovate[bot]
9ced656ede Update dependency madge to v5 (#7211) 2022-11-12 12:19:09 +00:00
Laurent Cozic
ac5854bf94 renovate ignore 2022-11-12 10:27:15 +00:00
Laurent Cozic
3823362eed renovate ignore 2022-11-12 10:27:15 +00:00
renovate[bot]
6ce0b46748 Update dependency node-gyp to v9 (#7220) 2022-11-12 10:25:07 +00:00
renovate[bot]
e0bfa87522 Update dependency markdown-it-emoji to v2 (#7214) 2022-11-12 10:24:21 +00:00
renovate[bot]
f9460d4a14 Update dependency markdown-it to v13 (#7212) 2022-11-12 10:23:00 +00:00
renovate[bot]
2100940019 Update dependency lint-staged to v13 (#7210) 2022-11-12 10:22:42 +00:00
renovate[bot]
af100c1c4b Update dependency aws-sdk to v2.1253.0 (#7206) 2022-11-12 10:21:39 +00:00
renovate[bot]
2e52bb4c12 Update dependency node-mocks-http to v1.12.1 (#7207) 2022-11-11 16:07:02 +00:00
renovate[bot]
1b41a22487 Update dependency fs-extra to v10.1.0 (#7177) 2022-11-11 16:05:54 +00:00
renovate[bot]
c88b031b0a Update dependency eslint-config-prettier to v8 (#7169) 2022-11-11 15:05:37 +00:00
renovate[bot]
94b83ac28b Update aws-sdk-js-v3 monorepo to v3.208.0 (#7202) 2022-11-11 14:31:38 +00:00
renovate[bot]
67596d60e9 Update dependency jetifier to v2 (#7192) 2022-11-11 14:27:55 +00:00
renovate[bot]
9d10c64ec6 Update dependency html-minifier to v4 (#7183) 2022-11-11 14:24:51 +00:00
renovate[bot]
94e7ed9a5f Update dependency gettext-parser to v6 (#7178) 2022-11-11 14:20:16 +00:00
renovate[bot]
30513e7b59 Update dependency formidable to v2 (#7176) 2022-11-11 14:19:47 +00:00
renovate[bot]
b9c3442e9f Update dependency form-data to v4 (#7175) 2022-11-11 14:19:34 +00:00
renovate[bot]
9282dfed5a Update dependency domutils to v3 (#7163) 2022-11-11 14:17:21 +00:00
Laurent Cozic
3b53a33cd5 Tools: Build Android debug app on CI (#7204) 2022-11-11 14:09:55 +00:00
309 changed files with 17382 additions and 14022 deletions

View File

@@ -96,6 +96,9 @@ packages/app-cli/app/command-sync.js.map
packages/app-cli/app/command-testing.d.ts
packages/app-cli/app/command-testing.js
packages/app-cli/app/command-testing.js.map
packages/app-cli/app/gui/StatusBarWidget.d.ts
packages/app-cli/app/gui/StatusBarWidget.js
packages/app-cli/app/gui/StatusBarWidget.js.map
packages/app-cli/app/services/plugins/PluginRunner.d.ts
packages/app-cli/app/services/plugins/PluginRunner.js
packages/app-cli/app/services/plugins/PluginRunner.js.map
@@ -534,9 +537,6 @@ packages/app-desktop/gui/NoteEditor/utils/clipboardUtils.test.js.map
packages/app-desktop/gui/NoteEditor/utils/contextMenu.d.ts
packages/app-desktop/gui/NoteEditor/utils/contextMenu.js
packages/app-desktop/gui/NoteEditor/utils/contextMenu.js.map
packages/app-desktop/gui/NoteEditor/utils/contextMenu.test.d.ts
packages/app-desktop/gui/NoteEditor/utils/contextMenu.test.js
packages/app-desktop/gui/NoteEditor/utils/contextMenu.test.js.map
packages/app-desktop/gui/NoteEditor/utils/contextMenuUtils.d.ts
packages/app-desktop/gui/NoteEditor/utils/contextMenuUtils.js
packages/app-desktop/gui/NoteEditor/utils/contextMenuUtils.js.map
@@ -552,6 +552,9 @@ packages/app-desktop/gui/NoteEditor/utils/types.js.map
packages/app-desktop/gui/NoteEditor/utils/useDropHandler.d.ts
packages/app-desktop/gui/NoteEditor/utils/useDropHandler.js
packages/app-desktop/gui/NoteEditor/utils/useDropHandler.js.map
packages/app-desktop/gui/NoteEditor/utils/useEffectiveNoteId.d.ts
packages/app-desktop/gui/NoteEditor/utils/useEffectiveNoteId.js
packages/app-desktop/gui/NoteEditor/utils/useEffectiveNoteId.js.map
packages/app-desktop/gui/NoteEditor/utils/useFolder.d.ts
packages/app-desktop/gui/NoteEditor/utils/useFolder.js
packages/app-desktop/gui/NoteEditor/utils/useFolder.js.map
@@ -618,6 +621,9 @@ packages/app-desktop/gui/PasswordInput/PasswordInput.js.map
packages/app-desktop/gui/PdfViewer.d.ts
packages/app-desktop/gui/PdfViewer.js
packages/app-desktop/gui/PdfViewer.js.map
packages/app-desktop/gui/PromptDialog.d.ts
packages/app-desktop/gui/PromptDialog.js
packages/app-desktop/gui/PromptDialog.js.map
packages/app-desktop/gui/ResizableLayout/MoveButtons.d.ts
packages/app-desktop/gui/ResizableLayout/MoveButtons.js
packages/app-desktop/gui/ResizableLayout/MoveButtons.js.map
@@ -780,9 +786,6 @@ packages/app-desktop/gui/utils/convertToScreenCoordinates.js.map
packages/app-desktop/gui/utils/loadScript.d.ts
packages/app-desktop/gui/utils/loadScript.js
packages/app-desktop/gui/utils/loadScript.js.map
packages/app-desktop/loadResources.testEnv.d.ts
packages/app-desktop/loadResources.testEnv.js
packages/app-desktop/loadResources.testEnv.js.map
packages/app-desktop/plugins/GotoAnything.d.ts
packages/app-desktop/plugins/GotoAnything.js
packages/app-desktop/plugins/GotoAnything.js.map
@@ -891,9 +894,9 @@ packages/app-mobile/components/NoteBodyViewer/hooks/useSource.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/CodeMirror.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/CodeMirror.js
packages/app-mobile/components/NoteEditor/CodeMirror/CodeMirror.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/createEditor.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/createEditor.js
packages/app-mobile/components/NoteEditor/CodeMirror/createEditor.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/CodeMirror.test.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/CodeMirror.test.js
packages/app-mobile/components/NoteEditor/CodeMirror/CodeMirror.test.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/decoratorExtension.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/decoratorExtension.js
packages/app-mobile/components/NoteEditor/CodeMirror/decoratorExtension.js.map
@@ -924,6 +927,12 @@ packages/app-mobile/components/NoteEditor/CodeMirror/markdownReformatter.test.js
packages/app-mobile/components/NoteEditor/CodeMirror/syntaxHighlightingLanguages.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/syntaxHighlightingLanguages.js
packages/app-mobile/components/NoteEditor/CodeMirror/syntaxHighlightingLanguages.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/testUtil/createEditor.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/testUtil/createEditor.js
packages/app-mobile/components/NoteEditor/CodeMirror/testUtil/createEditor.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/testUtil/forceFullParse.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/testUtil/forceFullParse.js
packages/app-mobile/components/NoteEditor/CodeMirror/testUtil/forceFullParse.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/theme.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/theme.js
packages/app-mobile/components/NoteEditor/CodeMirror/theme.js.map
@@ -2304,15 +2313,27 @@ packages/tools/update-readme-sponsors.js.map
packages/tools/updateMarkdownDoc.d.ts
packages/tools/updateMarkdownDoc.js
packages/tools/updateMarkdownDoc.js.map
packages/tools/utils/translation.d.ts
packages/tools/utils/translation.js
packages/tools/utils/translation.js.map
packages/tools/website/build.d.ts
packages/tools/website/build.js
packages/tools/website/build.js.map
packages/tools/website/buildTranslations.d.ts
packages/tools/website/buildTranslations.js
packages/tools/website/buildTranslations.js.map
packages/tools/website/updateDownloadPage.d.ts
packages/tools/website/updateDownloadPage.js
packages/tools/website/updateDownloadPage.js.map
packages/tools/website/updateNews.d.ts
packages/tools/website/updateNews.js
packages/tools/website/updateNews.js.map
packages/tools/website/utils/applyTranslations.d.ts
packages/tools/website/utils/applyTranslations.js
packages/tools/website/utils/applyTranslations.js.map
packages/tools/website/utils/applyTranslations.test.d.ts
packages/tools/website/utils/applyTranslations.test.js
packages/tools/website/utils/applyTranslations.test.js.map
packages/tools/website/utils/frontMatter.d.ts
packages/tools/website/utils/frontMatter.js
packages/tools/website/utils/frontMatter.js.map
@@ -2331,6 +2352,9 @@ packages/tools/website/utils/parser.js.map
packages/tools/website/utils/pressCarousel.d.ts
packages/tools/website/utils/pressCarousel.js
packages/tools/website/utils/pressCarousel.js.map
packages/tools/website/utils/processTranslations.d.ts
packages/tools/website/utils/processTranslations.js
packages/tools/website/utils/processTranslations.js.map
packages/tools/website/utils/render.d.ts
packages/tools/website/utils/render.js
packages/tools/website/utils/render.js.map

36
.github/workflows/cla.yml vendored Normal file
View File

@@ -0,0 +1,36 @@
name: "CLA Assistant"
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened,closed,synchronize]
jobs:
CLAAssistant:
runs-on: ubuntu-latest
steps:
- name: "CLA Assistant"
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
# Beta Release
uses: contributor-assistant/github-action@v2.2.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# the below token should have repo scope and must be manually added by you in the repository's secret
PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
with:
path-to-signatures: 'readme/cla_signatures.json'
path-to-document: 'https://github.com/laurent22/joplin/blob/dev/readme/cla.md' # e.g. a CLA or a DCO document
# branch should not be protected
branch: 'dev'
allowlist: joplinbot,renovate[bot]
# the followings are the optional inputs - If the optional inputs are not given, then default values will be taken
#remote-organization-name: enter the remote organization name where the signatures should be stored (Default is storing the signatures in the same repository)
#remote-repository-name: enter the remote repository name where the signatures should be stored (Default is storing the signatures in the same repository)
#create-file-commit-message: 'For example: Creating file for storing CLA Signatures'
#signed-commit-message: 'For example: $contributorName has signed the CLA in #$pullRequestNo'
#custom-notsigned-prcomment: 'pull request comment with Introductory message to ask new contributors to sign'
#custom-pr-sign-comment: 'The signature to be committed in order to sign the CLA'
#custom-allsigned-prcomment: 'pull request comment when all contributors has signed, defaults to **CLA Assistant Lite bot** All Contributors have signed the CLA.'
#lock-pullrequest-aftermerge: false - if you don't want this bot to automatically lock the pull request after merging (default - true)
#use-dco-flag: true - If you are using DCO instead of CLA

View File

@@ -13,7 +13,8 @@ jobs:
Main:
needs: pre_job
if: needs.pre_job.outputs.should_skip != 'true'
# We always process server or desktop release tags, because they also publish the release
if: needs.pre_job.outputs.should_skip != 'true' || startsWith(github.ref, 'refs/tags/server-v') || startsWith(github.ref, 'refs/tags/v')
runs-on: ${{ matrix.os }}
strategy:
matrix:
@@ -49,13 +50,6 @@ jobs:
sudo apt-get install -y libsecret-1-dev
sudo apt-get install -y translate-toolkit
# - name: Install macOS dependencies
# if: runner.os == 'macOS'
# run: |
# brew update
# brew install gettext
# brew install translate-toolkit
- name: Install Docker Engine
# if: runner.os == 'Linux' && startsWith(github.ref, 'refs/tags/server-v')
if: runner.os == 'Linux'
@@ -86,7 +80,7 @@ jobs:
# Login to Docker only if we're on a server release tag. If we run this on
# a pull request it will fail because the PR doesn't have access to
# secrets
- uses: docker/login-action@v1
- uses: docker/login-action@v2
if: runner.os == 'Linux' && startsWith(github.ref, 'refs/tags/server-v')
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}

42
.gitignore vendored
View File

@@ -84,6 +84,9 @@ packages/app-cli/app/command-sync.js.map
packages/app-cli/app/command-testing.d.ts
packages/app-cli/app/command-testing.js
packages/app-cli/app/command-testing.js.map
packages/app-cli/app/gui/StatusBarWidget.d.ts
packages/app-cli/app/gui/StatusBarWidget.js
packages/app-cli/app/gui/StatusBarWidget.js.map
packages/app-cli/app/services/plugins/PluginRunner.d.ts
packages/app-cli/app/services/plugins/PluginRunner.js
packages/app-cli/app/services/plugins/PluginRunner.js.map
@@ -522,9 +525,6 @@ packages/app-desktop/gui/NoteEditor/utils/clipboardUtils.test.js.map
packages/app-desktop/gui/NoteEditor/utils/contextMenu.d.ts
packages/app-desktop/gui/NoteEditor/utils/contextMenu.js
packages/app-desktop/gui/NoteEditor/utils/contextMenu.js.map
packages/app-desktop/gui/NoteEditor/utils/contextMenu.test.d.ts
packages/app-desktop/gui/NoteEditor/utils/contextMenu.test.js
packages/app-desktop/gui/NoteEditor/utils/contextMenu.test.js.map
packages/app-desktop/gui/NoteEditor/utils/contextMenuUtils.d.ts
packages/app-desktop/gui/NoteEditor/utils/contextMenuUtils.js
packages/app-desktop/gui/NoteEditor/utils/contextMenuUtils.js.map
@@ -540,6 +540,9 @@ packages/app-desktop/gui/NoteEditor/utils/types.js.map
packages/app-desktop/gui/NoteEditor/utils/useDropHandler.d.ts
packages/app-desktop/gui/NoteEditor/utils/useDropHandler.js
packages/app-desktop/gui/NoteEditor/utils/useDropHandler.js.map
packages/app-desktop/gui/NoteEditor/utils/useEffectiveNoteId.d.ts
packages/app-desktop/gui/NoteEditor/utils/useEffectiveNoteId.js
packages/app-desktop/gui/NoteEditor/utils/useEffectiveNoteId.js.map
packages/app-desktop/gui/NoteEditor/utils/useFolder.d.ts
packages/app-desktop/gui/NoteEditor/utils/useFolder.js
packages/app-desktop/gui/NoteEditor/utils/useFolder.js.map
@@ -606,6 +609,9 @@ packages/app-desktop/gui/PasswordInput/PasswordInput.js.map
packages/app-desktop/gui/PdfViewer.d.ts
packages/app-desktop/gui/PdfViewer.js
packages/app-desktop/gui/PdfViewer.js.map
packages/app-desktop/gui/PromptDialog.d.ts
packages/app-desktop/gui/PromptDialog.js
packages/app-desktop/gui/PromptDialog.js.map
packages/app-desktop/gui/ResizableLayout/MoveButtons.d.ts
packages/app-desktop/gui/ResizableLayout/MoveButtons.js
packages/app-desktop/gui/ResizableLayout/MoveButtons.js.map
@@ -768,9 +774,6 @@ packages/app-desktop/gui/utils/convertToScreenCoordinates.js.map
packages/app-desktop/gui/utils/loadScript.d.ts
packages/app-desktop/gui/utils/loadScript.js
packages/app-desktop/gui/utils/loadScript.js.map
packages/app-desktop/loadResources.testEnv.d.ts
packages/app-desktop/loadResources.testEnv.js
packages/app-desktop/loadResources.testEnv.js.map
packages/app-desktop/plugins/GotoAnything.d.ts
packages/app-desktop/plugins/GotoAnything.js
packages/app-desktop/plugins/GotoAnything.js.map
@@ -879,9 +882,9 @@ packages/app-mobile/components/NoteBodyViewer/hooks/useSource.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/CodeMirror.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/CodeMirror.js
packages/app-mobile/components/NoteEditor/CodeMirror/CodeMirror.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/createEditor.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/createEditor.js
packages/app-mobile/components/NoteEditor/CodeMirror/createEditor.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/CodeMirror.test.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/CodeMirror.test.js
packages/app-mobile/components/NoteEditor/CodeMirror/CodeMirror.test.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/decoratorExtension.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/decoratorExtension.js
packages/app-mobile/components/NoteEditor/CodeMirror/decoratorExtension.js.map
@@ -912,6 +915,12 @@ packages/app-mobile/components/NoteEditor/CodeMirror/markdownReformatter.test.js
packages/app-mobile/components/NoteEditor/CodeMirror/syntaxHighlightingLanguages.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/syntaxHighlightingLanguages.js
packages/app-mobile/components/NoteEditor/CodeMirror/syntaxHighlightingLanguages.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/testUtil/createEditor.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/testUtil/createEditor.js
packages/app-mobile/components/NoteEditor/CodeMirror/testUtil/createEditor.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/testUtil/forceFullParse.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/testUtil/forceFullParse.js
packages/app-mobile/components/NoteEditor/CodeMirror/testUtil/forceFullParse.js.map
packages/app-mobile/components/NoteEditor/CodeMirror/theme.d.ts
packages/app-mobile/components/NoteEditor/CodeMirror/theme.js
packages/app-mobile/components/NoteEditor/CodeMirror/theme.js.map
@@ -2292,15 +2301,27 @@ packages/tools/update-readme-sponsors.js.map
packages/tools/updateMarkdownDoc.d.ts
packages/tools/updateMarkdownDoc.js
packages/tools/updateMarkdownDoc.js.map
packages/tools/utils/translation.d.ts
packages/tools/utils/translation.js
packages/tools/utils/translation.js.map
packages/tools/website/build.d.ts
packages/tools/website/build.js
packages/tools/website/build.js.map
packages/tools/website/buildTranslations.d.ts
packages/tools/website/buildTranslations.js
packages/tools/website/buildTranslations.js.map
packages/tools/website/updateDownloadPage.d.ts
packages/tools/website/updateDownloadPage.js
packages/tools/website/updateDownloadPage.js.map
packages/tools/website/updateNews.d.ts
packages/tools/website/updateNews.js
packages/tools/website/updateNews.js.map
packages/tools/website/utils/applyTranslations.d.ts
packages/tools/website/utils/applyTranslations.js
packages/tools/website/utils/applyTranslations.js.map
packages/tools/website/utils/applyTranslations.test.d.ts
packages/tools/website/utils/applyTranslations.test.js
packages/tools/website/utils/applyTranslations.test.js.map
packages/tools/website/utils/frontMatter.d.ts
packages/tools/website/utils/frontMatter.js
packages/tools/website/utils/frontMatter.js.map
@@ -2319,6 +2340,9 @@ packages/tools/website/utils/parser.js.map
packages/tools/website/utils/pressCarousel.d.ts
packages/tools/website/utils/pressCarousel.js
packages/tools/website/utils/pressCarousel.js.map
packages/tools/website/utils/processTranslations.d.ts
packages/tools/website/utils/processTranslations.js
packages/tools/website/utils/processTranslations.js.map
packages/tools/website/utils/render.d.ts
packages/tools/website/utils/render.js
packages/tools/website/utils/render.js.map

File diff suppressed because one or more lines are too long

823
.yarn/releases/yarn-3.3.1.cjs vendored Executable file

File diff suppressed because one or more lines are too long

View File

@@ -6,4 +6,21 @@ plugins:
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
spec: "@yarnpkg/plugin-workspace-tools"
yarnPath: .yarn/releases/yarn-3.1.1.cjs
yarnPath: .yarn/releases/yarn-3.3.1.cjs
logFilters:
# Disable useless non-actionable warnings.
# https://github.com/yarnpkg/yarn/issues/4064
# eg "@joplin/app-desktop@workspace:packages/app-desktop provides react (p87edd) with version 18.2.0, which doesn't satisfy what @testing-library/react-hooks and some of its descendants request"
- code: YN0060
level: discard
# eg "@joplin/app-desktop@workspace:packages/app-desktop doesn't provide react-is (p570cf), requested by styled-components"
- code: YN0002
level: discard
# eg "string.prototype.matchall@npm:4.0.8 can't be found in the cache and will be fetched from the remote registry"
- code: YN0013
level: discard

2
Assets/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*~
WebsiteAssets/locales/*.mo

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 697 B

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@@ -399,12 +399,12 @@ div.navbar-mobile-content a.sponsor-button {
margin: auto;
}
#top-section-img {
.top-section-img {
margin-bottom: -280px;
margin-top: 40px;
}
#top-section-img img {
.top-section-img img {
width: 100%;
}
@@ -910,7 +910,7 @@ footer .bottom-links-row p {
padding-top: 80px;
}
#top-section-img {
.top-section-img {
margin-bottom: -90px;
margin-top: 50px;
}
@@ -954,6 +954,10 @@ footer .bottom-links-row p {
display: none;
}
#nav-section a {
margin-left: 4px;
}
}
/*****************************************************************
@@ -1154,7 +1158,7 @@ footer .bottom-links-row p {
background-position: bottom;
padding-bottom: 160px;
}
#top-section-img {
.top-section-img {
margin-bottom: -240px;
margin-top: 130px;
}
@@ -1182,3 +1186,29 @@ footer .bottom-links-row p {
margin-top: -15p;
}
}
/*****************************************************************
ENGLISH VERSION
*****************************************************************/
:lang(en-gb) #made-in-france-section {
display: none;
}
:lang(en-gb) .top-section-img-cn {
display: none;
}
/*****************************************************************
CHINESE VERSION
*****************************************************************/
:lang(zh-cn) #in-the-press-section,
:lang(zh-cn) #sponsors-section,
:lang(zh-cn) .top-section-img-en {
display: none;
}
:lang(zh-cn) #plans-section .faq {
display: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,28 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0.1\n"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:63
msgid "Download the app"
msgstr "Télécharger l'application"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:54
msgid "Free your <span class=\"frame-bg frame-bg-blue\">notes</span>"
msgstr "Libérez vos <span class=\"frame-bg frame-bg-blue\">notes</span>"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:57
msgid "Joplin is an open source note-taking app. Capture your thoughts and securely access them from any device."
msgstr "Joplin est une application libre de prise de notes. Capturez vos pensées et accédez-y de façon sécurisé depuis n'importe quel appareil."
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:65
msgid "Sign up with Joplin Cloud"
msgstr "S'inscrire sur Joplin Cloud"

View File

@@ -0,0 +1,202 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0.1\n"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/partials/plan.mustache:13
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/partials/plan.mustache:9
msgid "/month"
msgstr "/月"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/partials/plan.mustache:19
msgid "/year"
msgstr "/年"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/plans.mustache:8
msgid ""
"<a href=\"https://joplincloud.com\">Joplin Cloud</a> allows you to "
"synchronise your notes across devices. It also lets you publish notes, and "
"collaborate on notebooks with your friends, family or colleagues."
msgstr ""
"<a href=\"https://joplincloud.com\">Joplin Cloud</a> 允许您在不同的设备上同步"
"您的笔记。它还可以让您发布笔记,并与您的朋友、家人或同事在笔记本上进行协作。"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:205
msgid "<span class=\"frame-bg frame-bg-yellow-lg\">Customise</span> it"
msgstr "<span class=\"frame-bg frame-bg-yellow-lg\">定制</span>它 根据您的需要"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:104
msgid "<span class=\"frame-bg frame-bg-yellow\">Multimedia</span> notes"
msgstr "<span class=\"frame-bg frame-bg-yellow\">多媒体</span>说明"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:256
msgid "100% <span class=\"frame-bg frame-bg-yellow-lg\">your data</span>"
msgstr "百分之百<span class=\"frame-bg frame-bg-yellow-lg\">你的数据</span>"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:298
msgid "A <span class=\"frame-bg frame-bg-yellow-lg\">French</span> Alternative"
msgstr "一个<span class=\"frame-bg frame-bg-yellow-lg\">法国</span>的替代方案"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:236
msgid ""
"Access your notes from your computer, phone or tablet by synchronising with "
"various services, including Joplin Cloud, Dropbox and OneDrive. The app is "
"available on Windows, macOS, Linux, Android and iOS. A terminal app is also "
"available!"
msgstr ""
"通过与各种服务同步,包括Joplin Cloud、Dropbox和OneDrive,从你的电脑、手机或平"
"板电脑访问你的笔记。该应用程序可在Windows、macOS、Linux、Android和iOS上使用。"
"终端应用也可使用!"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/plans.mustache:49
msgid ""
"Already have a Joplin Cloud account? <a href=\"https://joplincloud.com"
"\">Login now</a>"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:208
msgid ""
"Customise the app with plugins, custom themes and multiple text editors "
"(Rich Text or Markdown). Or create your own scripts and plugins using the "
"Extension API."
msgstr ""
"用插件、自定义主题和多个文本编辑器(富文本或马克顿)来定制该应用程序。或者使"
"用扩展API创建你自己的脚本和插件。"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:242
msgid "Download it now"
msgstr "下载该应用程序"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:112
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:63
msgid "Download the app"
msgstr "下载该应用程序"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:213
msgid "Find out more"
msgstr "了解更多"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:54
msgid "Free your <span class=\"frame-bg frame-bg-blue\">notes</span>"
msgstr "释放你的<span class=\"frame-bg frame-bg-blue\">笔记</span>"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:175
msgid "Get the clipper"
msgstr "获取剪子"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:107
msgid ""
"Images, videos, PDFs and audio files are supported. Create math expressions "
"and diagrams directly from the app. Take photos with the mobile app and save "
"them to a note."
msgstr ""
"Joplin,由于其起源和设计,适应并尊重中国的标准和规则。这保证了您的使用不受限"
"制,以及您的使用数据的完全透明和安全。"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:327
msgid "In the <span class=\"frame-bg frame-bg-yellow\">Press</span>"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/plans.mustache:5
msgid "Joplin Cloud <span class=\"frame-bg frame-bg-yellow\">plans</span>"
msgstr "乔普林云<span class=\"frame-bg frame-bg-yellow\">计划</span>"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:301
msgid ""
"Joplin Cloud is based in France. This means your data is protected by strict "
"European Union privacy laws. In addition, Joplin Cloud implements strong end-"
"to-end encryption so that not even us can have access to your data."
msgstr ""
"Joplin Cloud 位于法国。 这意味着您的数据受到严格的欧盟隐私法的保护。 此外,"
"Joplin Cloud 实施了强大的端到端加密,因此即使是我们也无法访问您的数据。"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:57
msgid ""
"Joplin is an open source note-taking app. Capture your thoughts and securely "
"access them from any device."
msgstr ""
"Joplin是一个开源的记事本应用程序。捕捉你的想法并从任何设备上安全地访问它们。"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:262
msgid "More about E2EE"
msgstr "关于E2EE的更多信息"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:391
msgid "Our <span class=\"frame-bg frame-bg-blue-lg\">sponsors</span>"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/plans.mustache:23
msgid "Pay Monthly"
msgstr "月度"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/plans.mustache:30
msgid "Pay Yearly"
msgstr "每年一次"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:167
msgid ""
"Save <span class=\"frame-bg frame-bg-blue\">web pages</span> <br>as notes"
msgstr "保存<span class=\"frame-bg frame-bg-blue\">网页</span> <br>作为笔记"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:65
msgid "Sign up with Joplin Cloud"
msgstr "与乔布林云签约"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:394
msgid "Thank you for your support!"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:257
msgid ""
"The app is open source and your notes are saved to an open format, so you'll "
"always have access to them. Uses End-To-End Encryption (E2EE) to secure your "
"notes and ensure no-one but yourself can access them."
msgstr ""
"该应用程序是开源的,你的笔记被保存为开放的格式,所以你将永远可以访问它们。使"
"用端对端加密(E2EE)来保护你的笔记,确保除了你自己之外没有人可以访问它们。"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:144
msgid "Try it now"
msgstr "现在就试试吧"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:170
msgid ""
"Use the web clipper extension, available on Chrome and Firefox, to save web "
"pages or take screenshots as notes."
msgstr "使用Chrome和Firefox上的web clipper扩展,可以保存网页或截图作为笔记。"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:138
msgid ""
"With Joplin Cloud, share your notes with your friends, family or colleagues "
"and collaborate on them."
msgstr "通过乔普林云,与你的朋友、家人或同事分享你的笔记,并进行合作。"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:137
msgid "Work <span class=\"frame-bg frame-bg-yellow\">together</span>"
msgstr "<span class=\"frame-bg frame-bg-yellow\">一起</span>工作"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:141
msgid ""
"You can also publish a note to the internet and share the URL with others."
msgstr "您还可以将笔记发布到 Internet 并与其他人共享 URL。"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:233
msgid ""
"Your notes, <span class=\"frame-bg frame-bg-blue-lg\">everywhere</span> you "
"are"
msgstr ""
"你的笔记<span class=\"frame-bg frame-bg-blue-lg\">你在哪里都可以</span>"
#~ msgid ""
#~ "Joplin, due to its origin and design, adapts and respects Chinese "
#~ "standards and rules. This guarantees your unrestricted use and complete "
#~ "transparency and security of your usage data."
#~ msgstr ""
#~ "Joplin,由于其起源和设计,适应并尊重中国的标准和规则。这保证了您的使用不受"
#~ "限制,以及您的使用数据的完全透明和安全。"

View File

@@ -1,4 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Joplin]]></title><description><![CDATA[Joplin, the open source note-taking application]]></description><link>https://joplinapp.org</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Oct 2022 00:00:00 GMT</lastBuildDate><atom:link href="https://joplinapp.org/rss.xml" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Oct 2022 00:00:00 GMT</pubDate><item><title><![CDATA[Joplin Cloud is now part of the Joplin company]]></title><description><![CDATA[<p>As some of you may know Joplin Cloud so far has been operating under my own single-person limited company in the UK. This was mostly for convenience since it meant I could get things going quickly without having to setup a special structure for it.</p>
<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Joplin]]></title><description><![CDATA[Joplin, the open source note-taking application]]></description><link>https://joplinapp.org</link><generator>RSS for Node</generator><lastBuildDate>Wed, 21 Dec 2022 00:00:00 GMT</lastBuildDate><atom:link href="https://joplinapp.org/rss.xml" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Dec 2022 00:00:00 GMT</pubDate><item><title><![CDATA[Joplin is switching to the GNU Affero General Public License v3 (AGPL-3.0)]]></title><description><![CDATA[<p>As was <a href="https://discourse.joplinapp.org/t/rfc-switch-to-agpl-license-for-joplin-server/16529">discussed last year</a>, Joplin is switching to the GNU Affero General Public License v3 (AGPL-3.0) for the desktop, mobile and CLI applications, as well as the web clipper.</p>
<p>Any open source or commercial fork of Joplin will have to license any changes they make under AGPL, and share these changes back with the community. This is the main reason we switch to this license. It allows us to continue releasing the project as open source while ensuring that those who benefit commercially (or not) from it share back their changes.</p>
<h2>What is the GPL license?<a name="what-is-the-gpl-license" href="#what-is-the-gpl-license" class="heading-anchor">🔗</a></h2>
<p>The AGPL license is based on the GPL license. This is what tldr;Legal has to say about the GPL license:</p>
<blockquote>
<p>You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build &amp; install instructions. (<a href="https://tldrlegal.com/license/gnu-general-public-license-v3-(gpl-3)">source</a>)</p>
</blockquote>
<h2>What is the AGPL license?<a name="what-is-the-agpl-license" href="#what-is-the-agpl-license" class="heading-anchor">🔗</a></h2>
<p>This is the license we'll use for Joplin from now on:</p>
<blockquote>
<p>The AGPL license differs from the other GNU licenses in that it was built for network software. You can distribute modified versions if you keep track of the changes and the date you made them. As per usual with GNU licenses, you must license derivatives under AGPL. It provides the same restrictions and freedoms as the GPLv3 but with an additional clause which makes it so that source code must be distributed along with web publication. Since web sites and services are never distributed in the traditional sense, the AGPL is the GPL of the web. (<a href="https://tldrlegal.com/license/gnu-affero-general-public-license-v3-(agpl-3.0)">source</a>)</p>
</blockquote>
<h2>What does it change for users?<a name="what-does-it-change-for-users" href="#what-does-it-change-for-users" class="heading-anchor">🔗</a></h2>
<p>There is no changes for users of Joplin - the apps remain open sources and you can still use them freely.</p>
<h2>What does it change for developers?<a name="what-does-it-change-for-developers" href="#what-does-it-change-for-developers" class="heading-anchor">🔗</a></h2>
<p>Any code you develop for Joplin will also remain open source. The only difference is that we'll ask to sign an Individual Contributor License Agreement (CLA) to ensure that the copyright of the entire codebase remains with the Joplin organisation. This is necessary so that if we ever want to change the license again we are able to do so without having to get the agreement of each individual contributor afterwards (which would be nearly impossible).</p>
<p>This is a bit of an extra constraint but it is hard to avoid. Contributor License Agreements are very common for GPL or AGPL projects. For example Apache, Canonical or Python all require their contributors to sign a CLA.</p>
<h2>Questions?<a name="questions" href="#questions" class="heading-anchor">🔗</a></h2>
<p>If you have any questions please let us know. Overall we believe this is a positive improvements for Joplin as it means any work derives from it will also benefit the project.</p>
]]></description><link>https://joplinapp.org/news/20221221-agpl/</link><guid isPermaLink="false">20221221-agpl</guid><pubDate>Wed, 21 Dec 2022 00:00:00 GMT</pubDate><twitter-text>Joplin is switching to the GNU Affero General Public License v3 (AGPL-3.0)</twitter-text></item><item><title><![CDATA[What's new in Joplin 2.9]]></title><description><![CDATA[<h2>Proxy support<a name="proxy-support" href="#proxy-support" class="heading-anchor">🔗</a></h2>
<p>Both the desktop and mobile application now support proxies thanks to the work of Jason Williams. This will allow you to use the apps in particular when you are behind a company proxy.</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20221216-proxy-support.png" alt=""></p>
<h2>New PDF viewer<a name="new-pdf-viewer" href="#new-pdf-viewer" class="heading-anchor">🔗</a></h2>
<p>The desktop application now features a new PDF viewer thanks to the work of Asrient during GSoC.</p>
<p>The main advantage for now is that this viewer preserves the last PDF page that was read. In the next version, the viewer will also include a way to annotate PDF files.</p>
<h2>Multi-language spell checking<a name="multi-language-spell-checking" href="#multi-language-spell-checking" class="heading-anchor">🔗</a></h2>
<p>The desktop app include a multi-language spell checking features, which allows you, for example, to spell-check notes in your native language and in English.</p>
<h2>New mobile text editor<a name="new-mobile-text-editor" href="#new-mobile-text-editor" class="heading-anchor">🔗</a></h2>
<p>Writing formatted notes on mobile has always been cumbersome due to the need to enter special format characters like <code>*</code> or <code>[</code>, etc.</p>
<p>Thanks to the work of Henry Heino during GSoC, writing notes on the go is now easier thanks to an improved Markdown editor.</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20221216-mobile-beta-editor.png" alt=""></p>
<p>The most visible feature is the addition of a toolbar, which helps input those special characters, like on desktop.</p>
<p>Moreover Henry made a lot of subtle but useful improvements to the editor, for example to improve the note appearance, to improve list continuation, etc. Search within a note is now also supported as well as spell-checking.</p>
<p>At a more technical level, Henry also added many test units to ensure that the editor remains robust and reliable.</p>
<p>To enable the feature, go to the configuration screen and selected &quot;Opt-in to the editor beta&quot;. It is already very stable so we will probably promote it to be the main editor from the next version.</p>
<h2>Improved alignment of notebook icons<a name="improved-alignment-of-notebook-icons" href="#improved-alignment-of-notebook-icons" class="heading-anchor">🔗</a></h2>
<p>Previously, when you would assign an icon to a notebook, it would shift the title to the right, but notebook without an icon would not. It means that notebooks with and without an icon would not be vertically aligned.</p>
<p>To tidy things up, this new version adds a default icons to notebooks without an explicitly assigned icon. This result in the notebook titles being correctly vertically aligned.</p>
<p>Note that this feature is only enabled if you use custom icons - otherwise it will simply display the notebook titles without any default icons, as before.</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20221216-notebook-icons.png" alt=""></p>
<h2>Improved handling of file attachments<a name="improved-handling-of-file-attachments" href="#improved-handling-of-file-attachments" class="heading-anchor">🔗</a></h2>
<p>Self Not Found made a number of small but useful improvements to attachment handling, including increasing the maximum size to 200MB, adding support for attaching multiple files, and fixing issues with synchronising attachments via proxy.</p>
<h2>Fixed filesystem sync on mobile<a name="fixed-filesystem-sync-on-mobile" href="#fixed-filesystem-sync-on-mobile" class="heading-anchor">🔗</a></h2>
<p>This was a long and complex change due to the need to support new Android APIs but hopefully that should now be working again, thanks to the work of jd1378.</p>
<p>So you can now sync again your notes with Syncthing and other file-based synchronisation systems.</p>
<h2>And more...<a name="and-more" href="#and-more" class="heading-anchor">🔗</a></h2>
<p>In total this new desktop version includes 36 improvements, bug fixes, and security fixes.</p>
<p>As always, a lot of work went into the Android and iOS app too, which include 37 improvements, bug fixes, and security fixes.</p>
<p>See here for the changelogs:</p>
<ul>
<li><a href="https://joplinapp.org/changelog/">Desktop app changelog</a></li>
<li><a href="https://joplinapp.org/changelog_android/">Android app changelog</a></li>
</ul>
<h2>About the Android version<a name="about-the-android-version" href="#about-the-android-version" class="heading-anchor">🔗</a></h2>
<p>Unfortunately we cannot publish the Android version because it is based on a framework version that Google does not accept. To upgrade the app a lot of changes are needed and another round of pre-releases, and therefore there will not be a 2.9 version for Google Play. You may however download the official APK directly from there: <a href="https://github.com/laurent22/joplin-android/releases/tag/android-v2.9.8">Android 2.9 Official Release</a></p>
<p>This is the reality of app stores in general - small developers being imposed never ending new requirements by all-powerful companies, and by the time a version is finally ready we can't even publish it because yet more requirements are in place.</p>
<p>For the record the current 2.9 app works perfectly fine. It targets Android 11, which is only 2 years old and is still supported (and installed on millions of phones). Google requires us to target Android 12 which only came out last year.</p>
]]></description><link>https://joplinapp.org/news/20221216-release-2-9/</link><guid isPermaLink="false">20221216-release-2-9</guid><pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate><twitter-text>What&apos;s new in Joplin 2.9</twitter-text></item><item><title><![CDATA[Joplin is hiring!]]></title><description><![CDATA[<p>Joplin is an open source note-taking app. Capture your thoughts and securely access them from any device.</p>
<p>We are looking to hire two JavaScript software developers to work on the desktop, mobile, and server applications. All those are built using modern technologies, including React, React Native and Electron with a strong focus on test units.</p>
<p>You need to demonstrate some experience with at least some of these technologies, and willing to learn more and touch various different projects.</p>
<p>You will be part of a small team, so you will have an opportunity for a high-impact role, targeting hundreds of thousands of users.</p>
<p>If you're interested please contact us at job-AT-joplin.cloud</p>
<p>No agencies please.</p>
]]></description><link>https://joplinapp.org/news/20221209-job/</link><guid isPermaLink="false">20221209-job</guid><pubDate>Fri, 09 Dec 2022 00:00:00 GMT</pubDate><twitter-text>Joplin is hiring!</twitter-text></item><item><title><![CDATA[Modernising and securing Joplin, one package at a time]]></title><description><![CDATA[<p>If you watch the <a href="https://github.com/laurent22/joplin">Joplin source code repository</a>, you may have noticed a lot of Renovate pull requests lately. This <a href="https://www.mend.io/free-developer-tools/renovate/">Renovate tool</a> is a way to manage dependencies - it automatically finds what needs to be updated, then upgrade it to the latest version, and create a pull request. If all tests pass, we can then merge this pull request. So far we have merged 267 of these pull requests.</p>
<p>Updating Joplin packages was long due. It is necessary so that we don't fall behind and end up using unsupported or deprecated packages. We also benefit from bug fixes and performance improvements. It is also important in terms of security, since recent package versions usually include various security fixes.</p>
<p>We used to rely on a tool called &quot;npm audit&quot; to do this, however it no longer works on the Joplin codebase, and it was always risky to use it since it would update multiple packages in one command - so if something went wrong it was difficult to find the culprit.</p>
<p>Renovate on the other hand upgrades packages one at a time, and run our test units to ensure everything is still working as expected. It also upgrades multiple instances of the same package across the monorepo, which is convenient to keep our code consistent. It also has a number of options to make our life easier, such as the ability to automatically merge a pull request for patch releases since this is usually safe (when a package is, for example upgraded from 1.0.1 to 1.0.3).</p>
<p>Although Renovate automates the package upgrades it doesn't mean all upgrades are straightforward - our tests won't catch all issues, so the apps might end up being broken or cannot be compiled anymore. So there's manual work involved to get everything working after certain upgrades - for the most part this has been done and the apps appear to be stable so far.</p>
<p>This will however be an important part of pre-release 2.10 (or should it be 3.0?) - we hope that everything works but we may need your support to try this version and report any glitch you may have found. As always pre-release regressions have the highest priority so we aim to fix them as quickly as possible.</p>
]]></description><link>https://joplinapp.org/news/20221115-renovate/</link><guid isPermaLink="false">20221115-renovate</guid><pubDate>Tue, 15 Nov 2022 00:00:00 GMT</pubDate><twitter-text>Modernising and securing Joplin, one package at a time</twitter-text></item><item><title><![CDATA[Joplin Cloud is now part of the Joplin company]]></title><description><![CDATA[<p>As some of you may know Joplin Cloud so far has been operating under my own single-person limited company in the UK. This was mostly for convenience since it meant I could get things going quickly without having to setup a special structure for it.</p>
<p>Now that Joplin Cloud is becoming more mature however a proper company, simply called Joplin, has been created. This company will be based in France, and will be used mainly to handle the commercial part of the project, which currently is mostly Joplin Cloud. I'm still heading the company so there won't be any major change to the way the project is managed.</p>
<h2>What does it mean for Joplin Cloud?<a name="what-does-it-mean-for-joplin-cloud" href="#what-does-it-mean-for-joplin-cloud" class="heading-anchor">🔗</a></h2>
<p>There will be no significant change - the website ownership simply moves from one company in the UK to one in France. The new company is still owned by myself so I will keep following the same roadmap.</p>
@@ -224,48 +293,4 @@
<p>Of course Joplin still supports other sync options such as Nextcloud, Dropbox and OneDrive or AWS S3. You can also self host using Joplin Server. The advantage of Joplin Cloud being that you don't need to maintain a server yourself - for a small fee you'll get that taken care of.</p>
<p>Additionally, subscribing to Joplin Cloud is a great way to support the project as a whole, including the open source applications. Such support is needed in the long term to provide bug and security fixes, add new features, and provide support.</p>
<p>At some level it is also an experiment, to see if such a service is financially viable and can allow me to work full time on the project. This is certainly something I would like, and perhaps Joplin Cloud combined with your donations will allow that.</p>
]]></description><link>https://joplinapp.org/news/20210831-154354/</link><guid isPermaLink="false">20210831-154354</guid><pubDate>Tue, 31 Aug 2021 15:43:54 GMT</pubDate><twitter-text></twitter-text></item><item><title><![CDATA[How to start your subscription if you have a free Joplin Cloud Beta account]]></title><description><![CDATA[<p>For anyone with a beta account, if you would like to keep using it after the end of the trial period, there is now a button to do this from the Joplin Cloud home page:</p>
<img height="222" src="https://aws1.discourse-cdn.com/standard14/uploads/cozic/optimized/2X/e/e2b54352d0e401e692a75817f6faa0432322c405_2_517x222.png" width="517">
<p>If you click on it you will be sent to the Plans page via a special link. Then once you click on &quot;Buy now&quot; you will be sent to the Stripe page where you can start the subscription.</p>
<p>As mentioned in the message, the process takes into account your remaining beta trial days. So for example, if your beta account expires in 60 days, the subscription will have a free 60 days trial period. This is so you don't lose any of the beta trial days no matter when you start the subscription.</p>
<p>If you have any question about it, please let me know.</p>
]]></description><link>https://joplinapp.org/news/20210804-085003/</link><guid isPermaLink="false">20210804-085003</guid><pubDate>Wed, 04 Aug 2021 08:50:03 GMT</pubDate><twitter-text></twitter-text></item><item><title><![CDATA[New beta editor for the mobile app]]></title><description><![CDATA[<p>The <a href="https://github.com/laurent22/joplin-android/releases">latest Android pre-release 24</a> features an improved beta editor, which I hope could become a replacement for the very basic editor we have at the moment.</p>
<p>It's still experimental because it's based on the equally experimental CodeMirror 6, however for simple editing tasks it seems to work fine. At the moment the improvements are:</p>
<p>- Syntax highlighting for various tags such as bold, italic and headings.</p>
<p>- List continuation for ordered and unordered lists (I didn't try checklists but I assume it doesn't work)</p>
<p>- Improved undo/redo</p>
<p>- Maybe better handling of large documents? CodeMirror 6 has a demo that loads a document with millions of lines, so maybe that will solve the performance issues that some users were having</p>
<p>If everything works well, later on we should be able to add things like a toolbar, spellchecking and other features that are impossible with the current editor.</p>
<p>If you find any bug, feel free to report here. Also make sure you backup your notes regularly in case there's an issue!</p>
]]></description><link>https://joplinapp.org/news/20210729-103234/</link><guid isPermaLink="false">20210729-103234</guid><pubDate>Thu, 29 Jul 2021 10:32:34 GMT</pubDate><twitter-text></twitter-text></item><item><title><![CDATA[The Jopin Cloud beta is now closed]]></title><description><![CDATA[<p>The beta program helped narrow down a few issues and should make Joplin Cloud (and Joplin Server) more reliable. More precisely:</p>
<ul>
<li>
<p>About 7 bugs have been fixed, including two major ones regarding sharing, and one security issue.</p>
</li>
<li>
<p>About a dozen improvements, new features and optimisations have been added following your feedback.</p>
</li>
</ul>
<p>As promised if you have a beta account you can keep using it and it will remain free for the three months after the account was created. After that, you will receive a link to start the Stripe subscription if you wish to keep using the account.</p>
<p>If you have sent me an email before the end of the beta and I didn't reply yet, I will do so soon, and will send you the confirmation email.</p>
<p>Thanks everyone for participating!</p>
]]></description><link>https://joplinapp.org/news/20210718-103538/</link><guid isPermaLink="false">20210718-103538</guid><pubDate>Sun, 18 Jul 2021 10:35:38 GMT</pubDate><twitter-text></twitter-text></item><item><title><![CDATA[New website is ready!]]></title><description><![CDATA[<p>The new website is finally ready at <a href="https://joplinapp.org">https://joplinapp.org</a></p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20210711-095626_0.png" alt=""></p>
<p>The previous website had been built organically over the past few years. It had a lot of useful content but finding your way was tricky and, for new users, it wasn't clear what Joplin was about. Finding out how to install the app wasn't obvious since the download buttons were lost in the clutter of information.</p>
<p>So the new website includes a front page with clear goals:</p>
<ul>
<li>
<p>Allows people to easily download the app - for that there's a large Download button at the top and bottom of the page. It redirects to a page that automatically picks the version based on your operating system.</p>
</li>
<li>
<p>Showcase the application key features. The <a href="https://discourse.joplinapp.org/t/what-are-the-key-features-of-joplin/5837">key features post</a> on the forum helped narrow down what Joplin is about, so there are sections about the web clipper, the open source nature of the app, encryption, synchronisation, customisation and the ability to create multimedia notes.</p>
</li>
<li>
<p>The top screenshots have also been updated (the previous one was showing a dev version from 2016, before the app was even released). As a nod to Scott Joplin, the screenshot shows an imaginary plan to open a vintage piano store, with various tasks, tables, documents and images attached, to showcase Joplin features.</p>
</li>
<li>
<p>Finally there's a Press section, which includes extracts from some cool articles that have been written about the app.</p>
</li>
</ul>
<p>Also many thanks to everyone who voted and contributed to the tagline discussion! It helped narrow down what the tagline should be, along with the equally important description below. If you have any question or notice any issue with the website let me know!</p>
]]></description><link>https://joplinapp.org/news/20210711-095626/</link><guid isPermaLink="false">20210711-095626</guid><pubDate>Sun, 11 Jul 2021 09:56:26 GMT</pubDate><twitter-text></twitter-text></item></channel></rss>
]]></description><link>https://joplinapp.org/news/20210831-154354/</link><guid isPermaLink="false">20210831-154354</guid><pubDate>Tue, 31 Aug 2021 15:43:54 GMT</pubDate><twitter-text></twitter-text></item></channel></rss>

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en">
<html lang="en-gb">
<head>
{{> gtmHead}}
{{> gaOptimize}}
@@ -51,22 +51,22 @@
Running in {{env}} mode!
</div>
<h1 class="text-center">
<h1 translate class="text-center">
Free your <span class="frame-bg frame-bg-blue">notes</span>
</h1>
<p class="text-center" id="top-section-text">
<p translate class="text-center" id="top-section-text">
Joplin is an open source note-taking app. Capture your thoughts and securely access them from any device.
</p>
<br />
<br />
<p class="text-center">
<a href="{{baseUrl}}/download/" class="button-link btn-blue download-button">Download the app</a>
<a translate href="{{baseUrl}}/download/" class="button-link btn-blue download-button">Download the app</a>
{{#showJoplinCloudLinks}}
<a href="{{baseUrl}}/plans/" class="button-link btn-trans plans-button">Sign up with Joplin Cloud</a>
<a translate href="{{baseUrl}}/plans/" class="button-link btn-trans plans-button">Sign up with Joplin Cloud</a>
{{/showJoplinCloudLinks}}
</p>
<picture class="img-fluid img-center" id="top-section-img">
<picture class="img-fluid img-center top-section-img top-section-img-en">
<source type="image/webp" srcset="
{{imageBaseUrl}}/home-top-img-4x.webp 4820w,
{{imageBaseUrl}}/home-top-img-2x.webp 2388w,
@@ -76,7 +76,20 @@
{{imageBaseUrl}}/home-top-img-2x.png 2388w,
{{imageBaseUrl}}/home-top-img.png 1205w
">
<img id="top-section-img-img" src="{{imageBaseUrl}}/home-top-img-2x.png">
<img src="{{imageBaseUrl}}/home-top-img-2x.png">
</picture>
<picture class="img-fluid img-center top-section-img top-section-img-cn">
<source type="image/webp" srcset="
{{imageBaseUrl}}/home-top-img-cn-4x.webp 4820w,
{{imageBaseUrl}}/home-top-img-cn-2x.webp 2388w,
{{imageBaseUrl}}/home-top-img-cn.webp 1205w
">
<source type="image/png" srcset="
{{imageBaseUrl}}/home-top-img-cn-2x.png 2388w,
{{imageBaseUrl}}/home-top-img-cn.png 1205w
">
<img src="{{imageBaseUrl}}/home-top-img-cn-2x.png">
</picture>
</div>
</div>
@@ -88,17 +101,15 @@
<div class="row">
<div class="col-12 col-md-5 col-xxl-6">
<div class="ml-30 ml-mobile-0">
<h2 id="multimedia-title">
<h2 translate id="multimedia-title">
<span class="frame-bg frame-bg-yellow">Multimedia</span> notes
</h2>
<p id="multimedia-text">
Images, videos, PDFs and audio files are supported. Create
math expressions and diagrams directly from the app. Take
photos with the mobile app and save them to a note.
<p translate id="multimedia-text">
Images, videos, PDFs and audio files are supported. Create math expressions and diagrams directly from the app. Take photos with the mobile app and save them to a note.
</p>
<br />
<p>
<a href="{{baseUrl}}/download/" class="button-link btn-blue">Download the app</a>
<a translate href="{{baseUrl}}/download/" class="button-link btn-blue">Download the app</a>
</p>
</div>
</div>
@@ -123,15 +134,14 @@
<div class="col-6 d-none d-md-block"></div>
<div class="col-12 col-md-6">
<div class="ml-30 ml-mobile-0">
<h2>Work <span class="frame-bg frame-bg-yellow">together</span></h2>
<p>
With Joplin Cloud, share your notes with your friends, family
or colleagues and collaborate on them.
<h2 translate>Work <span class="frame-bg frame-bg-yellow">together</span></h2>
<p translate>
With Joplin Cloud, share your notes with your friends, family or colleagues and collaborate on them.
</p>
<p>You can also publish a note to the internet and share the URL with others.</p>
<p translate>You can also publish a note to the internet and share the URL with others.</p>
<br/>
<p>
<a href="{{baseUrl}}/plans/" class="button-link btn-blue">Try it now</a>
<a translate href="{{baseUrl}}/plans/" class="button-link btn-blue">Try it now</a>
</p>
<br class="d-block d-md-none" />
<br class="d-block d-md-none" />
@@ -154,16 +164,15 @@
<div class="row">
<div class="col-12 col-md-6">
<div class="ml-30 ml-mobile-0">
<h2 id="save-web-title">
<h2 translate id="save-web-title">
Save <span class="frame-bg frame-bg-blue">web pages</span> <br />as notes
</h2>
<p>
Use the web clipper extension, available on Chrome and
Firefox, to save web pages or take screenshots as notes.
<p translate>
Use the web clipper extension, available on Chrome and Firefox, to save web pages or take screenshots as notes.
</p>
<br />
<p>
<a href="{{baseUrl}}/clipper/" class="button-link btn-blue">Get the clipper</a>
<a translate href="{{baseUrl}}/clipper/" class="button-link btn-blue">Get the clipper</a>
</p>
</div>
</div>
@@ -193,19 +202,15 @@
</div>
<div class="col-12 col-md-6">
<div class="ml-30 ml-mobile-0">
<h2 id="customise-it-title">
<h2 translate id="customise-it-title">
<span class="frame-bg frame-bg-yellow-lg">Customise</span> it
<br />
to your needs
</h2>
<p>
Customise the app with plugins, custom themes and multiple
text editors (Rich Text or Markdown). Or create your own
scripts and plugins using the Extension API.
<p translate>
Customise the app with plugins, custom themes and multiple text editors (Rich Text or Markdown). Or create your own scripts and plugins using the Extension API.
</p>
<br />
<p>
<a href="{{baseUrl}}/help/#plugins" class="button-link btn-blue">Find out more</a>
<a translate href="{{baseUrl}}/help/#plugins" class="button-link btn-blue">Find out more</a>
</p>
<br class="d-block d-lg-none" />
@@ -225,16 +230,16 @@
<div class="container">
<div class="row">
<div class="col-12">
<h2 class="text-center">
<h2 translate class="text-center">
Your notes, <span class="frame-bg frame-bg-blue-lg">everywhere</span> you are
</h2>
<p class="text-center" id="your-note-text">
<p translate class="text-center" id="your-note-text">
Access your notes from your computer, phone or tablet by synchronising with various services, including Joplin Cloud, Dropbox and OneDrive. The app is available on Windows, macOS, Linux, Android and iOS. A terminal app is also available!
</p>
<br />
<br />
<p class="text-center">
<a href="{{baseUrl}}/download/" class="button-link btn-blue">Download it now</a>
<a translate href="{{baseUrl}}/download/" class="button-link btn-blue">Download it now</a>
</p>
<br />
</div>
@@ -248,15 +253,13 @@
<div class="col-12 col-md-6">
<br class="d-block d-md-none" />
<div class="ml-30 ml-mobile-0">
<h2>100% <span class="frame-bg frame-bg-yellow-lg">your data</span></h2>
<p>
The app is open source and your notes are saved to an open
format, so you'll always have access to them. Uses End-To-End Encryption (E2EE) to secure your notes and ensure no-one but
yourself can access them.
<h2 translate>100% <span class="frame-bg frame-bg-yellow-lg">your data</span></h2>
<p translate>
The app is open source and your notes are saved to an open format, so you'll always have access to them. Uses End-To-End Encryption (E2EE) to secure your notes and ensure no-one but yourself can access them.
</p>
<br />
<p>
<a href="{{baseUrl}}/e2ee/" class="button-link btn-blue">More about E2EE</a>
<a translate href="{{baseUrl}}/e2ee/" class="button-link btn-blue">More about E2EE</a>
</p>
</div>
</div>
@@ -274,12 +277,54 @@
</div>
</div>
<div id="made-in-france-section" class="blue-bg">
<div class="container">
<div class="row">
<div class="d-none d-md-block col-md-6">
<br />
<br />
<br />
<img
src="{{imageBaseUrl}}/made-in-france.png"
alt=""
class="img-fluid"
/>
<br />
<br />
<br />
</div>
<div class="col-12 col-md-6">
<div class="ml-30 ml-mobile-0">
<h2 translate id="customise-it-title">
A <span class="frame-bg frame-bg-yellow-lg">French</span> Alternative
</h2>
<p translate>
Joplin Cloud is based in France. This means your data is protected by strict European Union privacy laws. In addition, Joplin Cloud implements strong end-to-end encryption so that not even us can have access to your data.
</p>
<br />
<br />
<br />
<br class="d-block d-lg-none" />
<br class="d-block d-lg-none" />
<img
src="{{imageBaseUrl}}/made-in-france.png"
alt=""
class="img-fluid d-block d-md-none"
/>
<br />
<br />
</div>
</div>
</div>
</div>
</div>
<div id="in-the-press-section">
<div class="container">
<div class="row">
<div class="col-12">
<br />
<h2 class="text-center">
<h2 translate class="text-center">
In the <span class="frame-bg frame-bg-yellow">Press</span>
</h2>
<br />
@@ -343,10 +388,10 @@
<div class="container">
<div class="row">
<div class="col-12">
<h2 class="text-center">
<h2 translate class="text-center">
Our <span class="frame-bg frame-bg-blue-lg">sponsors</span>
</h2>
<p class="text-center" id="your-note-text">
<p translate class="text-center" id="your-note-text">
Thank you for your support!
</p>
<br />

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en">
<html lang="en-gb">
<!--

View File

@@ -16,6 +16,7 @@
<a href="{{baseUrl}}/news/" class="fw500">News</a>
<a href="{{baseUrl}}/help/" class="fw500">Help</a>
<a href="{{forumUrl}}" class="fw500">Forum</a>
<a href="{{baseUrl}}/cn/" class="fw500">中文</a>
{{#showJoplinCloudLinks}}
{{> joplinCloudButton}}
{{/showJoplinCloudLinks}}
@@ -23,6 +24,7 @@
</div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
{{> twitterLink}}
<a href="{{baseUrl}}/cn/" class="fw500">中文</a>
{{> supportButton}}
<span class="pointer"

View File

@@ -6,17 +6,17 @@
</div>
<div class="plan-price plan-price-monthly">
{{priceMonthly.formattedMonthlyAmount}}<sub class="per-month">&nbsp;/month{{#footnote}} (*){{/footnote}}</sub>
{{priceMonthly.formattedMonthlyAmount}}<sub class="per-month">&nbsp;<span translate>/month</span>{{#footnote}} (*){{/footnote}}</sub>
</div>
<div class="plan-price plan-price-yearly">
{{priceYearly.formattedMonthlyAmount}}<sub class="per-month">&nbsp;/month{{#footnote}} (*){{/footnote}}</sub>
{{priceYearly.formattedMonthlyAmount}}<sub class="per-month">&nbsp;<span translate>/month</span>{{#footnote}} (*){{/footnote}}</sub>
</div>
</div>
<div class="plan-price-yearly-per-year">
<div>
({{priceYearly.formattedAmount}}<sub class="per-year">&nbsp;/year</sub>)
({{priceYearly.formattedAmount}}<sub class="per-year">&nbsp;<span translate>/year</span></sub>)
</div>
</div>

View File

@@ -2,10 +2,10 @@
<div class="container">
<div class="row">
<div class="col-12 title-box">
<h1 class="text-center">
<h1 translate class="text-center">
Joplin Cloud <span class="frame-bg frame-bg-yellow">plans</span>
</h1>
<p class="text-center sub-title">
<p translate class="text-center sub-title">
<a href="https://joplincloud.com">Joplin Cloud</a> allows you to synchronise your notes across devices. It also lets you publish notes, and collaborate on notebooks with your friends, family or colleagues.
</p>
</div>
@@ -20,14 +20,14 @@
<div style="display: flex; justify-content: center; margin-top: 1.2em">
<div class="form-check form-check-inline">
<input id="pay-monthly-radio" class="form-check-input" type="radio" name="pay-radio" checked value="monthly">
<label style="font-weight: bold" class="form-check-label" for="pay-monthly-radio">
<label translate style="font-weight: bold" class="form-check-label" for="pay-monthly-radio">
Pay Monthly
</label>
</div>
<div class="form-check form-check-inline">
<input id="pay-yearly-radio" class="form-check-input" type="radio" name="pay-radio" value="yearly">
<label style="font-weight: bold" class="form-check-label" for="pay-yearly-radio">
<label translate style="font-weight: bold" class="form-check-label" for="pay-yearly-radio">
Pay Yearly
</label>
</div>
@@ -46,7 +46,7 @@
{{> plan}}
{{/plans.teams}}
<p class="joplin-cloud-login-info">Already have a Joplin Cloud account? <a href="https://joplincloud.com">Login now</a></p>
<p translate class="joplin-cloud-login-info">Already have a Joplin Cloud account? <a href="https://joplincloud.com">Login now</a></p>
</div>
<div class="row">
@@ -59,7 +59,7 @@
</div>
</div>
<div class="row">
<div class="row faq">
{{{faqHtml}}}
</div>
</div>

View File

@@ -0,0 +1,141 @@
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/partials/plan.mustache:13
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/partials/plan.mustache:9
msgid "/month"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/partials/plan.mustache:19
msgid "/year"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/plans.mustache:8
msgid "<a href=\"https://joplincloud.com\">Joplin Cloud</a> allows you to synchronise your notes across devices. It also lets you publish notes, and collaborate on notebooks with your friends, family or colleagues."
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:205
msgid "<span class=\"frame-bg frame-bg-yellow-lg\">Customise</span> it"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:104
msgid "<span class=\"frame-bg frame-bg-yellow\">Multimedia</span> notes"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:256
msgid "100% <span class=\"frame-bg frame-bg-yellow-lg\">your data</span>"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:298
msgid "A <span class=\"frame-bg frame-bg-yellow-lg\">French</span> Alternative"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:236
msgid "Access your notes from your computer, phone or tablet by synchronising with various services, including Joplin Cloud, Dropbox and OneDrive. The app is available on Windows, macOS, Linux, Android and iOS. A terminal app is also available!"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/plans.mustache:49
msgid "Already have a Joplin Cloud account? <a href=\"https://joplincloud.com\">Login now</a>"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:208
msgid "Customise the app with plugins, custom themes and multiple text editors (Rich Text or Markdown). Or create your own scripts and plugins using the Extension API."
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:242
msgid "Download it now"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:112
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:63
msgid "Download the app"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:213
msgid "Find out more"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:54
msgid "Free your <span class=\"frame-bg frame-bg-blue\">notes</span>"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:175
msgid "Get the clipper"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:107
msgid "Images, videos, PDFs and audio files are supported. Create math expressions and diagrams directly from the app. Take photos with the mobile app and save them to a note."
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:327
msgid "In the <span class=\"frame-bg frame-bg-yellow\">Press</span>"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/plans.mustache:5
msgid "Joplin Cloud <span class=\"frame-bg frame-bg-yellow\">plans</span>"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:301
msgid "Joplin Cloud is based in France. This means your data is protected by strict European Union privacy laws. In addition, Joplin Cloud implements strong end-to-end encryption so that not even us can have access to your data."
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:57
msgid "Joplin is an open source note-taking app. Capture your thoughts and securely access them from any device."
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:262
msgid "More about E2EE"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:391
msgid "Our <span class=\"frame-bg frame-bg-blue-lg\">sponsors</span>"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/plans.mustache:23
msgid "Pay Monthly"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/plans.mustache:30
msgid "Pay Yearly"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:167
msgid "Save <span class=\"frame-bg frame-bg-blue\">web pages</span> <br>as notes"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:65
msgid "Sign up with Joplin Cloud"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:394
msgid "Thank you for your support!"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:257
msgid "The app is open source and your notes are saved to an open format, so you'll always have access to them. Uses End-To-End Encryption (E2EE) to secure your notes and ensure no-one but yourself can access them."
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:144
msgid "Try it now"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:170
msgid "Use the web clipper extension, available on Chrome and Firefox, to save web pages or take screenshots as notes."
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:138
msgid "With Joplin Cloud, share your notes with your friends, family or colleagues and collaborate on them."
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:137
msgid "Work <span class=\"frame-bg frame-bg-yellow\">together</span>"
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:141
msgid "You can also publish a note to the internet and share the URL with others."
msgstr ""
#: /Users/laurent/src/joplin/Assets/WebsiteAssets/templates/front.mustache:233
msgid "Your notes, <span class=\"frame-bg frame-bg-blue-lg\">everywhere</span> you are"
msgstr ""

Binary file not shown.

View File

@@ -43,6 +43,10 @@ If you want to start contributing to the project's code, please follow these gui
Building the apps is relatively easy - please [see the build instructions](https://github.com/laurent22/joplin/blob/dev/BUILD.md) for more details.
## Signing the Individual Contributor License Agreement
All contributors to the project must sign our [Individual Contributor License Agreement](https://github.com/laurent22/joplin/blob/dev/readme/cla.md).
## Coding style
Please see [readme/coding_style.md](readme/coding_style.md).

View File

@@ -201,20 +201,22 @@ fi
# If a new environment needs to be supported, then the command check section should be re-thought
if [[ $DESKTOP =~ .*gnome.*|.*kde.*|.*xfce.*|.*mate.*|.*lxqt.*|.*unity.*|.*x-cinnamon.*|.*deepin.*|.*pantheon.*|.*lxde.*|.*i3.*|.*sway.* ]] || [[ `command -v update-desktop-database` ]]
then
DATA_HOME=${XDG_DATA_HOME:-~/.local/share}
DESKTOP_FILE_LOCATION="$DATA_HOME/applications"
# Only delete the desktop file if it will be replaced
rm -f ~/.local/share/applications/appimagekit-joplin.desktop
rm -f "$DESKTOP_FILE_LOCATION/appimagekit-joplin.desktop"
# On some systems this directory doesn't exist by default
mkdir -p ~/.local/share/applications
mkdir -p "$DESKTOP_FILE_LOCATION"
# Tabs specifically, and not spaces, are needed for indentation with Bash heredocs
cat >> ~/.local/share/applications/appimagekit-joplin.desktop <<-EOF
cat >> "$DESKTOP_FILE_LOCATION/appimagekit-joplin.desktop" <<-EOF
[Desktop Entry]
Encoding=UTF-8
Name=Joplin
Comment=Joplin for Desktop
Exec=${HOME}/.joplin/Joplin.AppImage ${SANDBOXPARAM} %u
Icon=joplin
Icon=@joplinapp-desktop
StartupWMClass=Joplin
Type=Application
Categories=Office;
@@ -224,7 +226,7 @@ then
EOF
# Update application icons
[[ `command -v update-desktop-database` ]] && update-desktop-database ~/.local/share/applications && update-desktop-database ~/.local/share/icons
[[ `command -v update-desktop-database` ]] && update-desktop-database "$DESKTOP_FILE_LOCATION" && update-desktop-database "$DATA_HOME/icons"
print "${COLOR_GREEN}OK${COLOR_RESET}"
else
print "${COLOR_RED}NOT DONE, unknown desktop '${DESKTOP}'${COLOR_RESET}"

28
LICENSE
View File

@@ -1,12 +1,13 @@
All code in this repository is licensed under the MIT License **unless a
directory contains a LICENSE or LICENSE.md file**, in which case that file
applies to the code in that sub-directory.
All code in this repository is licensed under the AGPL-3.0-or-later License
**unless a directory contains a LICENSE or LICENSE.md file**, in which case that
file applies to the code in that sub-directory.
For example, packages/server contains a LICENSE.md file, thus all code under the
packages/server directory is licensed under that license.
For example, packages/app-cli does NOT contain a LICENSE file, thus all code
under that directory is licensed under the default license, which is MIT.
under that directory is licensed under the default license, which is
AGPL-3.0-or-later.
* * *
@@ -23,23 +24,8 @@ icons please contact the author in order to get a permission.
* * *
MIT License
AGPL-3.0-or-later License
Copyright (c) 2016-2022 Laurent Cozic
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
https://spdx.org/licenses/AGPL-3.0-or-later.html

View File

@@ -22,11 +22,11 @@ Three types of applications are available: for **desktop** (Windows, macOS and L
Operating System | Download
---|---
Windows (32 and 64-bit) | <a href='https://github.com/laurent22/joplin/releases/download/v2.8.8/Joplin-Setup-2.8.8.exe'><img alt='Get it on Windows' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeWindows.png'/></a>
macOS | <a href='https://github.com/laurent22/joplin/releases/download/v2.8.8/Joplin-2.8.8.dmg'><img alt='Get it on macOS' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeMacOS.png'/></a>
Linux | <a href='https://github.com/laurent22/joplin/releases/download/v2.8.8/Joplin-2.8.8.AppImage'><img alt='Get it on Linux' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeLinux.png'/></a>
Windows (32 and 64-bit) | <a href='https://github.com/laurent22/joplin/releases/download/v2.9.17/Joplin-Setup-2.9.17.exe'><img alt='Get it on Windows' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeWindows.png'/></a>
macOS | <a href='https://github.com/laurent22/joplin/releases/download/v2.9.17/Joplin-2.9.17.dmg'><img alt='Get it on macOS' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeMacOS.png'/></a>
Linux | <a href='https://github.com/laurent22/joplin/releases/download/v2.9.17/Joplin-2.9.17.AppImage'><img alt='Get it on Linux' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeLinux.png'/></a>
**On Windows**, you may also use the <a href='https://github.com/laurent22/joplin/releases/download/v2.8.8/JoplinPortable.exe'>Portable version</a>. The [portable application](https://en.wikipedia.org/wiki/Portable_application) allows installing the software on a portable device such as a USB key. Simply copy the file JoplinPortable.exe in any directory on that USB key ; the application will then create a directory called "JoplinProfile" next to the executable file.
**On Windows**, you may also use the <a href='https://github.com/laurent22/joplin/releases/download/v2.9.17/JoplinPortable.exe'>Portable version</a>. The [portable application](https://en.wikipedia.org/wiki/Portable_application) allows installing the software on a portable device such as a USB key. Simply copy the file JoplinPortable.exe in any directory on that USB key ; the application will then create a directory called "JoplinProfile" next to the executable file.
**On Linux**, the recommended way is to use the following installation script as it will handle the desktop icon too:
@@ -270,7 +270,7 @@ WebDAV-compatible services that are known to work with Joplin:
## Dropbox synchronisation
When syncing with Dropbox, Joplin creates a sub-directory in Dropbox, in `/Apps/Joplin` and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.
When syncing with Dropbox, Joplin creates a sub-directory in Dropbox, in `/Apps/Joplin` and reads/writes the notes and notebooks in it. The application does not have access to anything outside this directory.
In the **desktop application** or **mobile application**, select "Dropbox" as the synchronisation target in the [Configuration screen](https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md) (it is selected by default). Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar and follow the instructions.
@@ -278,7 +278,7 @@ In the **terminal application**, to initiate the synchronisation process, type `
## OneDrive synchronisation
When syncing with OneDrive, Joplin creates a sub-directory in OneDrive, in /Apps/Joplin and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.
When syncing with OneDrive, Joplin creates a sub-directory in OneDrive, in /Apps/Joplin and reads/writes the notes and notebooks in it. The application does not have access to anything outside this directory.
In the **desktop application** or **mobile application**, select "OneDrive" as the synchronisation target in the [Configuration screen](https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md). Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar and follow the instructions.
@@ -530,47 +530,47 @@ Current translations:
<!-- LOCALE-TABLE-AUTO-GENERATED -->
&nbsp; | Language | Po File | Last translator | Percent done
---|---|---|---|---
<img src="https://joplinapp.org/images/flags/country-4x3/arableague.png" width="16px"/> | Arabic | [ar](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ar.po) | [Whaell O](mailto:Whaell@protonmail.com) | 84%
<img src="https://joplinapp.org/images/flags/es/basque_country.png" width="16px"/> | Basque | [eu](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eu.po) | juan.abasolo@ehu.eus | 24%
<img src="https://joplinapp.org/images/flags/country-4x3/ba.png" width="16px"/> | Bosnian (Bosna i Hercegovina) | [bs_BA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/bs_BA.po) | [Derviš T.](mailto:dervis.t@pm.me) | 60%
<img src="https://joplinapp.org/images/flags/country-4x3/bg.png" width="16px"/> | Bulgarian (България) | [bg_BG](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/bg_BG.po) | | 47%
<img src="https://joplinapp.org/images/flags/es/catalonia.png" width="16px"/> | Catalan | [ca](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ca.po) | [Xavi Ivars](mailto:xavi.ivars@gmail.com) | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/hr.png" width="16px"/> | Croatian (Hrvatska) | [hr_HR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hr_HR.po) | [Milo Ivir](mailto:mail@milotype.de) | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/cz.png" width="16px"/> | Czech (Česká republika) | [cs_CZ](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/cs_CZ.po) | [Michal Stanke](mailto:michal@stanke.cz) | 81%
<img src="https://joplinapp.org/images/flags/country-4x3/dk.png" width="16px"/> | Dansk (Danmark) | [da_DK](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/da_DK.po) | ERYpTION | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/de.png" width="16px"/> | Deutsch (Deutschland) | [de_DE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/de_DE.po) | [MrKanister](mailto:pueblos_spatulas@aleeas.com) | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/ee.png" width="16px"/> | Eesti Keel (Eesti) | [et_EE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/et_EE.po) | | 46%
<img src="https://joplinapp.org/images/flags/country-4x3/arableague.png" width="16px"/> | Arabic | [ar](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ar.po) | [Whaell O](mailto:Whaell@protonmail.com) | 82%
<img src="https://joplinapp.org/images/flags/es/basque_country.png" width="16px"/> | Basque | [eu](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eu.po) | juan.abasolo@ehu.eus | 23%
<img src="https://joplinapp.org/images/flags/country-4x3/ba.png" width="16px"/> | Bosnian (Bosna i Hercegovina) | [bs_BA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/bs_BA.po) | [Derviš T.](mailto:dervis.t@pm.me) | 59%
<img src="https://joplinapp.org/images/flags/country-4x3/bg.png" width="16px"/> | Bulgarian (България) | [bg_BG](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/bg_BG.po) | | 46%
<img src="https://joplinapp.org/images/flags/es/catalonia.png" width="16px"/> | Catalan | [ca](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ca.po) | [Xavi Ivars](mailto:xavi.ivars@gmail.com) | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/hr.png" width="16px"/> | Croatian (Hrvatska) | [hr_HR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hr_HR.po) | [Milo Ivir](mailto:mail@milotype.de) | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/cz.png" width="16px"/> | Czech (Česká republika) | [cs_CZ](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/cs_CZ.po) | [Michal Stanke](mailto:michal@stanke.cz) | 79%
<img src="https://joplinapp.org/images/flags/country-4x3/dk.png" width="16px"/> | Dansk (Danmark) | [da_DK](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/da_DK.po) | ERYpTION | 99%
<img src="https://joplinapp.org/images/flags/country-4x3/de.png" width="16px"/> | Deutsch (Deutschland) | [de_DE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/de_DE.po) | [MrKanister](mailto:pueblos_spatulas@aleeas.com) | 99%
<img src="https://joplinapp.org/images/flags/country-4x3/ee.png" width="16px"/> | Eesti Keel (Eesti) | [et_EE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/et_EE.po) | | 45%
<img src="https://joplinapp.org/images/flags/country-4x3/gb.png" width="16px"/> | English (United Kingdom) | [en_GB](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/en_GB.po) | | 100%
<img src="https://joplinapp.org/images/flags/country-4x3/us.png" width="16px"/> | English (United States of America) | [en_US](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/en_US.po) | | 100%
<img src="https://joplinapp.org/images/flags/country-4x3/es.png" width="16px"/> | Español (España) | [es_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/es_ES.po) | [Francisco Mora](mailto:francisco.m.collao@gmail.com) | 92%
<img src="https://joplinapp.org/images/flags/esperanto.png" width="16px"/> | Esperanto | [eo](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eo.po) | Marton Paulo | 27%
<img src="https://joplinapp.org/images/flags/country-4x3/fi.png" width="16px"/> | Finnish (Suomi) | [fi_FI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fi_FI.po) | mrkaato0 | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/fr.png" width="16px"/> | Français (France) | [fr_FR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fr_FR.po) | Laurent Cozic | 100%
<img src="https://joplinapp.org/images/flags/country-4x3/es.png" width="16px"/> | Español (España) | [es_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/es_ES.po) | [Francisco Mora](mailto:francisco.m.collao@gmail.com) | 91%
<img src="https://joplinapp.org/images/flags/esperanto.png" width="16px"/> | Esperanto | [eo](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eo.po) | Marton Paulo | 26%
<img src="https://joplinapp.org/images/flags/country-4x3/fi.png" width="16px"/> | Finnish (Suomi) | [fi_FI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fi_FI.po) | mrkaato0 | 98%
<img src="https://joplinapp.org/images/flags/country-4x3/fr.png" width="16px"/> | Français (France) | [fr_FR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fr_FR.po) | Laurent Cozic | 98%
<img src="https://joplinapp.org/images/flags/es/galicia.png" width="16px"/> | Galician (España) | [gl_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/gl_ES.po) | [Marcos Lans](mailto:marcoslansgarza@gmail.com) | 30%
<img src="https://joplinapp.org/images/flags/country-4x3/id.png" width="16px"/> | Indonesian (Indonesia) | [id_ID](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/id_ID.po) | [Wisnu Adi Santoso](mailto:waditos@gmail.com) | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/it.png" width="16px"/> | Italiano (Italia) | [it_IT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/it_IT.po) | [Albano Battistella](mailto:albano_battistella@hotmail.com) | 81%
<img src="https://joplinapp.org/images/flags/country-4x3/hu.png" width="16px"/> | Magyar (Magyarország) | [hu_HU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hu_HU.po) | [Magyari Balázs](mailto:balmag@gmail.com) | 81%
<img src="https://joplinapp.org/images/flags/country-4x3/be.png" width="16px"/> | Nederlands (België, Belgique, Belgien) | [nl_BE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_BE.po) | | 82%
<img src="https://joplinapp.org/images/flags/country-4x3/nl.png" width="16px"/> | Nederlands (Nederland) | [nl_NL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_NL.po) | [MHolkamp](mailto:mholkamp@users.noreply.github.com) | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/no.png" width="16px"/> | Norwegian (Norge, Noreg) | [nb_NO](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nb_NO.po) | [Mats Estensen](mailto:code@mxe.no) | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/ir.png" width="16px"/> | Persian | [fa](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fa.po) | [Kourosh Firoozbakht](mailto:kourox@protonmail.com) | 58%
<img src="https://joplinapp.org/images/flags/country-4x3/pl.png" width="16px"/> | Polski (Polska) | [pl_PL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pl_PL.po) | [X3NO](mailto:X3NO@disroot.org) | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/br.png" width="16px"/> | Português (Brasil) | [pt_BR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_BR.po) | [Renato Nunes Bastos](mailto:rnbastos@gmail.com) | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/pt.png" width="16px"/> | Português (Portugal) | [pt_PT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_PT.po) | [Diogo Caveiro](mailto:dcaveiro@yahoo.com) | 76%
<img src="https://joplinapp.org/images/flags/country-4x3/ro.png" width="16px"/> | Română | [ro](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ro.po) | [Cristi Duluta](mailto:cristi.duluta@gmail.com) | 53%
<img src="https://joplinapp.org/images/flags/country-4x3/si.png" width="16px"/> | Slovenian (Slovenija) | [sl_SI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sl_SI.po) | [Martin Korelič](mailto:martin.korelic@protonmail.com) | 84%
<img src="https://joplinapp.org/images/flags/country-4x3/se.png" width="16px"/> | Svenska | [sv](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sv.po) | [Jonatan Nyberg](mailto:jonatan@autistici.org) | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/id.png" width="16px"/> | Indonesian (Indonesia) | [id_ID](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/id_ID.po) | [Wisnu Adi Santoso](mailto:waditos@gmail.com) | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/it.png" width="16px"/> | Italiano (Italia) | [it_IT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/it_IT.po) | [Albano Battistella](mailto:albano_battistella@hotmail.com) | 80%
<img src="https://joplinapp.org/images/flags/country-4x3/hu.png" width="16px"/> | Magyar (Magyarország) | [hu_HU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hu_HU.po) | [Magyari Balázs](mailto:balmag@gmail.com) | 80%
<img src="https://joplinapp.org/images/flags/country-4x3/be.png" width="16px"/> | Nederlands (België, Belgique, Belgien) | [nl_BE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_BE.po) | | 81%
<img src="https://joplinapp.org/images/flags/country-4x3/nl.png" width="16px"/> | Nederlands (Nederland) | [nl_NL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_NL.po) | [MHolkamp](mailto:mholkamp@users.noreply.github.com) | 91%
<img src="https://joplinapp.org/images/flags/country-4x3/no.png" width="16px"/> | Norwegian (Norge, Noreg) | [nb_NO](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nb_NO.po) | [Mats Estensen](mailto:code@mxe.no) | 91%
<img src="https://joplinapp.org/images/flags/country-4x3/ir.png" width="16px"/> | Persian | [fa](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fa.po) | [Kourosh Firoozbakht](mailto:kourox@protonmail.com) | 57%
<img src="https://joplinapp.org/images/flags/country-4x3/pl.png" width="16px"/> | Polski (Polska) | [pl_PL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pl_PL.po) | [X3NO](mailto:X3NO@disroot.org) | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/br.png" width="16px"/> | Português (Brasil) | [pt_BR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_BR.po) | [Renato Nunes Bastos](mailto:rnbastos@gmail.com) | 91%
<img src="https://joplinapp.org/images/flags/country-4x3/pt.png" width="16px"/> | Português (Portugal) | [pt_PT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_PT.po) | [Diogo Caveiro](mailto:dcaveiro@yahoo.com) | 75%
<img src="https://joplinapp.org/images/flags/country-4x3/ro.png" width="16px"/> | Română | [ro](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ro.po) | [Cristi Duluta](mailto:cristi.duluta@gmail.com) | 52%
<img src="https://joplinapp.org/images/flags/country-4x3/si.png" width="16px"/> | Slovenian (Slovenija) | [sl_SI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sl_SI.po) | [Martin Korelič](mailto:martin.korelic@protonmail.com) | 83%
<img src="https://joplinapp.org/images/flags/country-4x3/se.png" width="16px"/> | Svenska | [sv](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sv.po) | [Jonatan Nyberg](mailto:jonatan@autistici.org) | 99%
<img src="https://joplinapp.org/images/flags/country-4x3/th.png" width="16px"/> | Thai (ประเทศไทย) | [th_TH](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/th_TH.po) | | 38%
<img src="https://joplinapp.org/images/flags/country-4x3/vn.png" width="16px"/> | Tiếng Việt | [vi](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/vi.po) | | 82%
<img src="https://joplinapp.org/images/flags/country-4x3/tr.png" width="16px"/> | Türkçe (Türkiye) | [tr_TR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/tr_TR.po) | [Arda Kılıçdağı](mailto:arda@kilicdagi.com) | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/ua.png" width="16px"/> | Ukrainian (Україна) | [uk_UA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/uk_UA.po) | [Vyacheslav Andreykiv](mailto:vandreykiv@gmail.com) | 76%
<img src="https://joplinapp.org/images/flags/country-4x3/gr.png" width="16px"/> | Ελληνικά (Ελλάδα) | [el_GR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/el_GR.po) | [Harris Arvanitis](mailto:xaris@tuta.io) | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/ru.png" width="16px"/> | Русский (Россия) | [ru_RU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ru_RU.po) | [Sergey Segeda](mailto:thesermanarm@gmail.com) | 84%
<img src="https://joplinapp.org/images/flags/country-4x3/rs.png" width="16px"/> | српски језик (Србија) | [sr_RS](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sr_RS.po) | | 68%
<img src="https://joplinapp.org/images/flags/country-4x3/cn.png" width="16px"/> | 中文 (简体) | [zh_CN](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_CN.po) | [KaneGreen](mailto:737445366KG@Gmail.com) | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/tw.png" width="16px"/> | 中文 (繁體) | [zh_TW](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_TW.po) | [Kevin Hsu](mailto:kevin.hsu.hws@gmail.com) | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/jp.png" width="16px"/> | 日本語 (日本) | [ja_JP](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ja_JP.po) | [genneko](mailto:genneko217@gmail.com) | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/kr.png" width="16px"/> | 한국어 | [ko](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ko.po) | [Ji-Hyeon Gim](mailto:potatogim@potatogim.net) | 94%
<img src="https://joplinapp.org/images/flags/country-4x3/vn.png" width="16px"/> | Tiếng Việt | [vi](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/vi.po) | | 80%
<img src="https://joplinapp.org/images/flags/country-4x3/tr.png" width="16px"/> | Türkçe (Türkiye) | [tr_TR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/tr_TR.po) | [Arda Kılıçdağı](mailto:arda@kilicdagi.com) | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/ua.png" width="16px"/> | Ukrainian (Україна) | [uk_UA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/uk_UA.po) | [Vyacheslav Andreykiv](mailto:vandreykiv@gmail.com) | 75%
<img src="https://joplinapp.org/images/flags/country-4x3/gr.png" width="16px"/> | Ελληνικά (Ελλάδα) | [el_GR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/el_GR.po) | [Harris Arvanitis](mailto:xaris@tuta.io) | 91%
<img src="https://joplinapp.org/images/flags/country-4x3/ru.png" width="16px"/> | Русский (Россия) | [ru_RU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ru_RU.po) | [Sergey Segeda](mailto:thesermanarm@gmail.com) | 83%
<img src="https://joplinapp.org/images/flags/country-4x3/rs.png" width="16px"/> | српски језик (Србија) | [sr_RS](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sr_RS.po) | | 67%
<img src="https://joplinapp.org/images/flags/country-4x3/cn.png" width="16px"/> | 中文 (简体) | [zh_CN](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_CN.po) | [KaneGreen](mailto:737445366KG@Gmail.com) | 97%
<img src="https://joplinapp.org/images/flags/country-4x3/tw.png" width="16px"/> | 中文 (繁體) | [zh_TW](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_TW.po) | [Kevin Hsu](mailto:kevin.hsu.hws@gmail.com) | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/jp.png" width="16px"/> | 日本語 (日本) | [ja_JP](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ja_JP.po) | [genneko](mailto:genneko217@gmail.com) | 92%
<img src="https://joplinapp.org/images/flags/country-4x3/kr.png" width="16px"/> | 한국어 | [ko](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ko.po) | [Ji-Hyeon Gim](mailto:potatogim@potatogim.net) | 92%
<!-- LOCALE-TABLE-AUTO-GENERATED -->
# Contributors

View File

@@ -6,7 +6,7 @@ version: '3'
services:
db:
image: postgres:13
image: postgres:15
command: postgres -c work_mem=100000
ports:
- "5432:5432"

View File

@@ -18,7 +18,7 @@ services:
- POSTGRES_PORT=5432
- POSTGRES_HOST=localhost
db:
image: postgres:13
image: postgres:15
ports:
- "5432:5432"
environment:

View File

@@ -19,7 +19,7 @@ version: '3'
services:
db:
image: postgres:13
image: postgres:15
volumes:
- ./data/postgres:/var/lib/postgresql/data
ports:

View File

@@ -6,15 +6,9 @@
],
"settings": {
"files.exclude": {
".yarn": true,
"lerna-debug.log": true,
"_mydocs/mdtest/": true,
"./packages/lib/plugin_types": true,
"_releases/": true,
"_vieux/": true,
".gitignore": true,
".eslintignore": true,
"**/*.jpl": true,
"./packages/app-cli/**/*.*~": true,
"./packages/app-cli/**/*.mo": true,
"./packages/app-cli/**/build/": true,
@@ -103,26 +97,32 @@
"./packages/app-mobile/fastlane/Preview.html": true,
"./packages/app-mobile/fastlane/report.xml": true,
"./packages/app-mobile/fastlane/screenshots": true,
"./packages/renderer/**/.vscode/": true,
"./packages/renderer/**/copyLib.bat": true,
"./packages/renderer/**/node_modules/": true,
"./packages/app-tools/**/*-kct.*": true,
"./packages/app-tools/**/github_username_cache.json": true,
"./packages/app-tools/**/patreon_oauth_token.txt": true,
"./packages/lib/plugin_types": true,
"./packages/renderer/**/.vscode/": true,
"./packages/renderer/**/copyLib.bat": true,
"./packages/renderer/**/node_modules/": true,
".eslintignore": true,
".gitignore": true,
".vscode/*": true,
".yarn": true,
"*.sublime-workspace": true,
"**/_mydocs": true,
"**/_mydocs/EnexSamples/*.enex": true,
"**/_releases": true,
"**/_vieux/": true,
"**/.DS_Store": true,
"**/*?.js": { "when": "$(basename).tsx"},
"**/*.base64": true,
"**/*~": true,
"**/*.bundle.js": true,
"**/*.eot": true,
"**/*.icns": true,
"**/*.ico": true,
"**/*.jar": true,
"**/*.jpl": true,
"**/*.js": {"when": "$(basename).ts"},
"**/*.map": true,
"**/*.min.css": true,
"**/*.min.js": true,
@@ -135,6 +135,7 @@
"**/*.ttf": true,
"**/*.woff": true,
"**/*.woff2": true,
"**/*~": true,
"**/app/data/uploads/": true,
"**/Clipper-source/": true,
"**/docs/*.html": true,
@@ -171,11 +172,13 @@
"app/config/parameters.yml": true,
"app/data/uploads/.gitkeep": false,
"Assets/DownloadBadges*.psd": true,
"Assets/TinyMCE/langs": true,
"Assets/WebsiteAssets/locales/*.mo": true,
"build/": true,
"docs/": true,
"docs/images/flags": true,
"lerna-debug.log": true,
"node_modules/": true,
"Assets/TinyMCE/langs": true,
"packages/app-cli/**/*.*~": true,
"packages/app-cli/**/*.mo": true,
"packages/app-cli/**/build/": true,
@@ -224,7 +227,6 @@
"packages/app-cli/tests/support/plugins/toc/**/dist/": true,
"packages/app-cli/tests/sync/": true,
"packages/app-cli/tests/tmp/": true,
"packages/htmlpack/dist/": true,
"packages/app-clipper/**/dist/": true,
"packages/app-clipper/content_scripts/**/*.bundle.js": true,
"packages/app-clipper/dist/": true,
@@ -250,7 +252,6 @@
"packages/app-desktop/**/pluginAssets/": true,
"packages/app-desktop/build/icons/": true,
"packages/app-desktop/build/images/": true,
"packages/app-desktop/vendor/lib/": true,
"packages/app-desktop/dist/": true,
"packages/app-desktop/fonts/": true,
"packages/app-desktop/gui/note-viewer/highlight/styles/": true,
@@ -258,6 +259,7 @@
"packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/supportedLocales.js": true,
"packages/app-desktop/lib/": true,
"packages/app-desktop/locale/": true,
"packages/app-desktop/vendor/lib/": true,
"packages/app-mobile/**/.DS_Store": true,
"packages/app-mobile/**/.gradle": true,
"packages/app-mobile/**/.idea": true,
@@ -305,6 +307,16 @@
"packages/app-mobile/fastlane/screenshots": true,
"packages/app-mobile/ios/build/": true,
"packages/app-mobile/lib/csstojs/": true,
"packages/app-mobile/lib/rnInjectedJs/": true,
"packages/app-mobile/lib/sql-extensions/spellfix.so": true,
"packages/app-mobile/node_modules/": true,
"packages/app-tools/**/*-kct.*": true,
"packages/app-tools/**/github_username_cache.json": true,
"packages/app-tools/**/patreon_oauth_token.txt": true,
"packages/app-tools/commit_hook.txt": true,
"packages/app-tools/github_oauth_token.txt": true,
"packages/generator-joplin/generators/app/templates/api/": true,
"packages/htmlpack/dist/": true,
"packages/renderer/**/.vscode/": true,
"packages/renderer/**/copyLib.bat": true,
"packages/renderer/**/node_modules/": true,
@@ -312,22 +324,13 @@
"packages/renderer/MdToHtml/rules/fence.js": true,
"packages/renderer/MdToHtml/rules/mermaid.js": true,
"packages/renderer/MdToHtml/rules/sanitize_html.js": true,
"packages/app-mobile/lib/rnInjectedJs/": true,
"packages/app-mobile/lib/sql-extensions/spellfix.so": true,
"packages/server/dist/": true,
"packages/server/db-*.sqlite": true,
"packages/server/test.pid": true,
"packages/server/dist/": true,
"packages/server/temp": true,
"packages/generator-joplin/generators/app/templates/api/": true,
"packages/app-mobile/node_modules/": true,
"packages/server/test.pid": true,
"phpunit.xml": true,
"Server/db*.sqlite/": true,
"Server/dist/": true,
"packages/app-tools/**/*-kct.*": true,
"packages/app-tools/**/github_username_cache.json": true,
"packages/app-tools/**/patreon_oauth_token.txt": true,
"packages/app-tools/commit_hook.txt": true,
"packages/app-tools/github_oauth_token.txt": true,
"var/*": true,
"var/cache": false,
"var/cache/.gitkeep": false,
@@ -342,8 +345,6 @@
"vendor/": true,
"web/bundles/": true,
"web/env.php": true,
"**/*.js": {"when": "$(basename).ts"},
"**/*?.js": { "when": "$(basename).tsx"},
}
}
}

View File

@@ -14,6 +14,6 @@ module.exports = {
'yarn run linter-precommit',
'yarn run checkLibPaths',
// 'yarn run spellcheck',
'git add',
// 'git add',
],
};

View File

@@ -21,6 +21,7 @@
"updateNews": "node ./packages/tools/website/updateNews",
"buildSettingJsonSchema": "yarn workspace joplin start settingschema ../../../joplin-website/docs/schema/settings.json",
"buildTranslations": "node packages/tools/build-translation.js",
"buildWebsiteTranslations": "node packages/tools/website/buildTranslations.js",
"buildWebsite": "node ./packages/tools/website/build.js && yarn run buildPluginDoc && yarn run buildSettingJsonSchema",
"checkLibPaths": "node ./packages/tools/checkLibPaths.js",
"circularDependencyCheck": "madge --warning --circular --extensions js ./",
@@ -54,7 +55,7 @@
"updateIgnored": "gulp updateIgnoredTypeScriptBuild",
"updatePluginTypes": "./packages/generator-joplin/updateTypes.sh",
"watch": "yarn workspaces foreach --parallel --verbose --interlaced --jobs 999 run watch",
"watchWebsite": "nodemon --verbose --watch Assets/WebsiteAssets --watch packages/tools/website/build.js --ext md,ts,js,mustache,css,tsx,gif,png,svg --exec \"node packages/tools/website/build.js && http-server --port 8077 ../joplin-website/docs -a localhost\""
"watchWebsite": "nodemon --verbose --watch Assets/WebsiteAssets --watch packages/tools/website --watch packages/tools/website/utils --ext md,ts,js,mustache,css,tsx,gif,png,svg --exec \"node packages/tools/website/build.js && http-server --port 8077 ../joplin-website/docs -a localhost\""
},
"husky": {
"hooks": {
@@ -62,32 +63,32 @@
}
},
"devDependencies": {
"@seiyab/eslint-plugin-react-hooks": "4.5.1-alpha.5",
"@typescript-eslint/eslint-plugin": "5.42.1",
"@typescript-eslint/parser": "5.42.1",
"@seiyab/eslint-plugin-react-hooks": "4.5.1-beta.0",
"@typescript-eslint/eslint-plugin": "5.47.0",
"@typescript-eslint/parser": "5.47.0",
"cspell": "5.21.2",
"eslint": "8.27.0",
"eslint-interactive": "10.2.0",
"eslint": "8.30.0",
"eslint-interactive": "10.3.0",
"eslint-plugin-import": "2.26.0",
"eslint-plugin-promise": "6.1.1",
"eslint-plugin-react": "7.31.10",
"fs-extra": "8.1.0",
"glob": "7.2.3",
"eslint-plugin-react": "7.31.11",
"fs-extra": "11.1.0",
"glob": "8.0.3",
"gulp": "4.0.2",
"husky": "3.1.0",
"lerna": "3.22.1",
"lint-staged": "9.5.0",
"madge": "4.0.2",
"lint-staged": "13.1.0",
"madge": "5.0.1",
"typedoc": "0.17.8",
"typescript": "4.7.4"
"typescript": "4.9.4"
},
"dependencies": {
"@types/fs-extra": "9.0.13",
"http-server": "0.13.0",
"node-gyp": "8.4.1",
"http-server": "14.1.1",
"node-gyp": "9.3.1",
"nodemon": "2.0.20"
},
"packageManager": "yarn@3.2.4",
"packageManager": "yarn@3.3.1",
"resolutions": {
"joplin-rn-alarm-notification@1.0.5": "patch:joplin-rn-alarm-notification@npm:1.0.5#.yarn/patches/joplin-rn-alarm-notification-npm-1.0.5-662e871c03"
}

View File

@@ -33,7 +33,7 @@ const ResourceServer = require('./ResourceServer.js');
const NoteMetadataWidget = require('./gui/NoteMetadataWidget.js');
const FolderListWidget = require('./gui/FolderListWidget.js');
const NoteListWidget = require('./gui/NoteListWidget.js');
const StatusBarWidget = require('./gui/StatusBarWidget.js');
const StatusBarWidget = require('./gui/StatusBarWidget').default;
const ConsoleWidget = require('./gui/ConsoleWidget.js');
const LinkSelector = require('./LinkSelector.js').default;

View File

@@ -37,17 +37,8 @@ class Command extends BaseCommand {
];
}
static lockFile(filePath: string): Promise<Function> {
return new Promise((resolve, reject) => {
locker.lock(filePath, { stale: 1000 * 60 * 5 }, (error: any, release: any) => {
if (error) {
reject(error);
return;
}
resolve(release);
});
});
static async lockFile(filePath: string): Promise<Function> {
return locker.lock(filePath, { stale: 1000 * 60 * 5 });
}
static isLocked(filePath: string) {

View File

@@ -4,7 +4,7 @@ const termutils = require('tkwidgets/framework/termutils.js');
const stripAnsi = require('strip-ansi');
const { handleAutocompletion } = require('../autocompletion.js');
class StatusBarWidget extends BaseWidget {
export default class StatusBarWidget extends BaseWidget {
constructor() {
super();
@@ -22,12 +22,12 @@ class StatusBarWidget extends BaseWidget {
return false;
}
setItemAt(index, text) {
setItemAt(index: number, text: string) {
this.items_[index] = stripAnsi(text).trim();
this.invalidate();
}
async prompt(initialText = '', promptString = null, options = null) {
async prompt(initialText = '', promptString: any = null, options: any = null) {
if (this.promptState_) throw new Error('Another prompt already active');
if (promptString === null) promptString = ':';
if (options === null) options = {};
@@ -36,7 +36,7 @@ class StatusBarWidget extends BaseWidget {
this.promptState_ = {
promise: null,
initialText: stripAnsi(initialText),
initialText: (initialText),
promptString: stripAnsi(promptString),
};
@@ -86,7 +86,7 @@ class StatusBarWidget extends BaseWidget {
// const textStyle = this.promptActive ? (s) => s : chalk.bgBlueBright.white;
// const textStyle = (s) => s;
const textStyle = this.promptActive ? s => s : chalk.gray;
const textStyle = this.promptActive ? (s: any) => s : chalk.gray;
this.term.drawHLine(this.absoluteInnerX, this.absoluteInnerY, this.innerWidth, textStyle(' '));
@@ -106,7 +106,7 @@ class StatusBarWidget extends BaseWidget {
const isSecurePrompt = !!this.promptState_.secure;
const options = {
const options: any = {
cancelable: true,
history: this.history,
default: this.promptState_.initialText,
@@ -118,7 +118,7 @@ class StatusBarWidget extends BaseWidget {
if ('cursorPosition' in this.promptState_) options.cursorPosition = this.promptState_.cursorPosition;
if (isSecurePrompt) options.echoChar = true;
this.inputEventEmitter_ = this.term.inputField(options, (error, input) => {
this.inputEventEmitter_ = this.term.inputField(options, (error: any, input: any) => {
let resolveResult = null;
const resolveFn = this.promptState_.resolve;
@@ -161,5 +161,3 @@ class StatusBarWidget extends BaseWidget {
if (doSaveCursor) this.term.restoreCursor();
}
}
module.exports = StatusBarWidget;

View File

@@ -1,7 +1,7 @@
{
"name": "joplin",
"description": "Joplin CLI Client",
"license": "MIT",
"license": "AGPL-3.0-or-later",
"author": "Laurent Cozic",
"private": true,
"scripts": {
@@ -34,47 +34,47 @@
],
"owner": "Laurent Cozic"
},
"version": "2.9.1",
"version": "2.10.0",
"bin": "./main.js",
"engines": {
"node": ">=10.0.0"
},
"dependencies": {
"@joplin/lib": "~2.9",
"@joplin/renderer": "~2.9",
"aws-sdk": "2.1251.0",
"@joplin/lib": "~2.10",
"@joplin/renderer": "~2.10",
"aws-sdk": "2.1279.0",
"chalk": "4.1.2",
"compare-version": "0.1.2",
"fs-extra": "5.0.0",
"fs-extra": "11.1.0",
"html-entities": "1.4.0",
"image-type": "3.1.0",
"keytar": "7.9.0",
"md5": "2.3.0",
"node-rsa": "1.1.1",
"open": "7.4.2",
"proper-lockfile": "2.0.1",
"open": "8.4.0",
"proper-lockfile": "4.1.2",
"read-chunk": "2.1.0",
"server-destroy": "1.0.1",
"sharp": "0.31.2",
"sprintf-js": "1.1.2",
"sqlite3": "5.0.2",
"sqlite3": "5.1.4",
"string-padding": "1.0.2",
"strip-ansi": "4.0.0",
"strip-ansi": "6.0.1",
"tcp-port-used": "1.0.2",
"terminal-kit": "1.49.4",
"terminal-kit": "3.0.0",
"tkwidgets": "0.5.27",
"url-parse": "1.5.10",
"word-wrap": "1.2.3",
"yargs-parser": "7.0.0"
"yargs-parser": "21.1.1"
},
"devDependencies": {
"@joplin/tools": "~2.9",
"@joplin/tools": "~2.10",
"@types/fs-extra": "9.0.13",
"@types/jest": "26.0.24",
"@types/node": "18.11.9",
"@types/jest": "29.2.4",
"@types/node": "18.11.17",
"gulp": "4.0.2",
"jest": "26.6.3",
"jest": "29.3.1",
"temp": "0.9.4",
"typescript": "4.5.2"
"typescript": "4.9.4"
}
}

View File

@@ -14,10 +14,9 @@ const { enexXmlToMd } = require('@joplin/lib/import-enex-md-gen.js');
describe('HtmlToHtml', function() {
beforeEach(async (done) => {
beforeEach(async () => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
it('should convert from Html to Html', (async () => {

View File

@@ -5,12 +5,6 @@ import HtmlToMd from '@joplin/lib/HtmlToMd';
describe('HtmlToMd', function() {
// beforeEach(async (done) => {
// await setupDatabaseAndSynchronizer(1);
// await switchClient(1);
// done();
// });
it('should convert from Html to Markdown', (async () => {
const basePath = `${__dirname}/html_to_md`;
const files = await shim.fsDriver().readDirStats(basePath);

View File

@@ -18,10 +18,9 @@ function newTestMdToHtml(options: any = null) {
describe('MdToHtml', function() {
beforeEach(async (done: Function) => {
beforeEach(async () => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
it('should convert from Markdown to Html', (async () => {

View File

@@ -23,16 +23,14 @@ const goToNote = (testApp, note) => {
};
describe('feature_NoteHistory', function() {
beforeEach(async (done) => {
beforeEach(async () => {
testApp = new TestApp();
await testApp.start(['--no-welcome']);
done();
});
afterEach(async (done) => {
afterEach(async () => {
if (testApp) await testApp.destroy();
testApp = null;
done();
});
it('should save history when navigating through notes', (async () => {

View File

@@ -10,16 +10,14 @@ let testApp = null;
describe('integration_NoteList', function() {
beforeEach(async (done) => {
beforeEach(async () => {
testApp = new TestApp();
await testApp.start(['--no-welcome']);
done();
});
afterEach(async (done) => {
afterEach(async () => {
if (testApp !== null) await testApp.destroy();
testApp = null;
done();
});
// Reference: https://github.com/laurent22/joplin/issues/2709

View File

@@ -24,16 +24,14 @@ let testApp = null;
describe('integration_ShowAllNotes', function() {
beforeEach(async (done) => {
beforeEach(async () => {
testApp = new TestApp();
await testApp.start(['--no-welcome']);
done();
});
afterEach(async (done) => {
afterEach(async () => {
if (testApp !== null) await testApp.destroy();
testApp = null;
done();
});
it('should show all notes', (async () => {

View File

@@ -10,16 +10,14 @@ let testApp = null;
describe('integration_TagList', function() {
beforeEach(async (done) => {
beforeEach(async () => {
testApp = new TestApp();
await testApp.start(['--no-welcome']);
done();
});
afterEach(async (done) => {
afterEach(async () => {
if (testApp !== null) await testApp.destroy();
testApp = null;
done();
});
// the tag list should be cleared if the next note has no tags

View File

@@ -1,2 +1,2 @@
<img src=""/>
<img src=""/>
<img src/>
<img src/>

View File

@@ -1,2 +1,2 @@
<img src="" class="jop-noMdConv"/>
<img src="" class="jop-noMdConv"/>
<img src class="jop-noMdConv"/>
<img src class="jop-noMdConv"/>

View File

@@ -0,0 +1 @@
<div class="joplin-editable"><pre class="joplin-source" data-joplin-language="&quot;&gt;&lt;svg/onload=top.eval(atob(&quot;cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ29wZW4gLW4gL1N5c3RlbS9BcHBsaWNhdGlvbnMvQ2FsY3VsYXRvci5hcHAvQ29udGVudHMvTWFjT1MvQ2FsY3VsYXRvcicp&quot;))&gt;" data-joplin-source-open="```&quot;&gt;&lt;svg/onload=top.eval(atob(&quot;cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ29wZW4gLW4gL1N5c3RlbS9BcHBsaWNhdGlvbnMvQ2FsY3VsYXRvci5hcHAvQ29udGVudHMvTWFjT1MvQ2FsY3VsYXRvcicp&quot;))&gt;&#10;" data-joplin-source-close="&#10;```">ts</pre><pre class="hljs"><code><span class="hljs-attribute">ts</span></code></pre></div>

View File

@@ -0,0 +1,3 @@
```"><svg/onload=top.eval(atob("cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ29wZW4gLW4gL1N5c3RlbS9BcHBsaWNhdGlvbnMvQ2FsY3VsYXRvci5hcHAvQ29udGVudHMvTWFjT1MvQ2FsY3VsYXRvcicp"))>
ts
```

View File

@@ -13,16 +13,14 @@ function describeIfCompatible(name: string, fn: any, elseFn: any) {
describeIfCompatible('services_KeychainService', function() {
beforeEach(async (done: Function) => {
beforeEach(async () => {
await setupDatabaseAndSynchronizer(1, { keychainEnabled: true });
await switchClient(1, { keychainEnabled: true });
await Setting.deleteKeychainPasswords();
done();
});
afterEach(async (done: Function) => {
afterEach(async () => {
await Setting.deleteKeychainPasswords();
done();
});
it('should be enabled on macOS and Windows', (async () => {

View File

@@ -31,10 +31,9 @@ function newPluginService(appVersion: string = '1.4') {
describe('services_PluginService', function() {
beforeEach(async (done) => {
beforeEach(async () => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
it('should load and run a simple plugin', (async () => {

View File

@@ -10,10 +10,9 @@ async function newRepoApi(): Promise<RepositoryApi> {
describe('services_plugins_RepositoryApi', function() {
beforeEach(async (done: Function) => {
beforeEach(async () => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
it('should get the manifests', (async () => {

View File

@@ -5,10 +5,9 @@ import { newPluginScript, newPluginService } from '../../../testUtils';
describe('JoplinSettings', () => {
beforeEach(async (done) => {
beforeEach(async () => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
afterEach(async () => {

View File

@@ -4,10 +4,9 @@ import { newPluginScript, newPluginService } from '../../../testUtils';
describe('JoplinViewMenuItem', () => {
beforeEach(async (done) => {
beforeEach(async () => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
afterEach(async () => {

View File

@@ -7,10 +7,9 @@ import { newPluginScript, newPluginService } from '../../../testUtils';
describe('JoplinWorkspace', () => {
beforeEach(async (done) => {
beforeEach(async () => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
afterEach(async () => {

View File

@@ -28,10 +28,9 @@ describe('defaultPluginsUtils', function() {
const pluginsId = ['joplin.plugin.ambrt.backlinksToNote', 'org.joplinapp.plugins.ToggleSidebars'];
beforeEach(async (done) => {
beforeEach(async () => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
it('should install default plugins with no previous default plugins installed', (async () => {

View File

@@ -3,10 +3,9 @@ import { setupDatabaseAndSynchronizer, switchClient } from '@joplin/lib/testing/
describe('services_plugins_sandboxProxy', function() {
beforeEach(async (done: Function) => {
beforeEach(async () => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
it('should create a new sandbox proxy', (async () => {

View File

@@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "Joplin Web Clipper [DEV]",
"version": "2.9.0",
"version": "2.10.0",
"description": "Capture and save web pages and screenshots from your browser to Joplin.",
"homepage_url": "https://joplinapp.org",
"content_security_policy": "script-src 'self'; object-src 'self'",

View File

@@ -8,5 +8,5 @@
"description": "Joplin Web Clipper",
"main": "main.js",
"author": "Laurent Cozic",
"license": "MIT"
"license": "AGPL-3.0-or-later"
}

View File

@@ -18,13 +18,13 @@
"babel-loader": "8.0.6",
"babel-plugin-named-asset-import": "^0.3.6",
"babel-preset-react-app": "^9.1.1",
"camelcase": "^5.3.1",
"camelcase": "5.3.1",
"case-sensitive-paths-webpack-plugin": "2.3.0",
"css-loader": "3.6.0",
"dotenv": "8.6.0",
"dotenv-expand": "5.1.0",
"file-loader": "4.3.0",
"fs-extra": "^8.1.0",
"fs-extra": "10.1.0",
"html-webpack-plugin": "4.0.0-beta.11",
"identity-obj-proxy": "3.0.0",
"jest": "24.9.0",
@@ -44,7 +44,7 @@
"react-dev-utils": "^10.1.0",
"react-dom": "^16.12.0",
"react-redux": "^5.0.7",
"redux": "^4.0.0",
"redux": "4.1.2",
"resolve": "1.22.1",
"resolve-url-loader": "^3.1.3",
"sass-loader": "8.0.2",
@@ -60,7 +60,7 @@
},
"devDependencies": {
"cra-build-watch": "^3.4.0",
"fs-extra": "^6.0.1",
"fs-extra": "^10.0.0",
"md5": "^2.3.0",
"react-scripts": "^3.3.1"
}
@@ -1342,12 +1342,6 @@
"regenerator-runtime": "^0.13.4"
}
},
"node_modules/@babel/runtime-corejs3/node_modules/regenerator-runtime": {
"version": "0.13.5",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
"integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
"dev": true
},
"node_modules/@babel/template": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz",
@@ -1510,11 +1504,6 @@
"node": ">=4"
}
},
"node_modules/@jest/core/node_modules/graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"node_modules/@jest/environment": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz",
@@ -1602,11 +1591,6 @@
"node": ">=6"
}
},
"node_modules/@jest/source-map/node_modules/graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"node_modules/@jest/source-map/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -1668,11 +1652,6 @@
"node": ">= 6"
}
},
"node_modules/@jest/transform/node_modules/graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"node_modules/@jest/transform/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -3801,11 +3780,6 @@
"node": ">= 8"
}
},
"node_modules/cacache/node_modules/graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"node_modules/cacache/node_modules/rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
@@ -4607,12 +4581,6 @@
"node": ">=10"
}
},
"node_modules/cra-build-watch/node_modules/graceful-fs": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
"dev": true
},
"node_modules/cra-build-watch/node_modules/html-webpack-plugin": {
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz",
@@ -6044,12 +6012,6 @@
"node": ">=6 <7 || >=8"
}
},
"node_modules/eslint-loader/node_modules/graceful-fs": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
"dev": true
},
"node_modules/eslint-module-utils": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz",
@@ -7319,21 +7281,39 @@
}
},
"node_modules/fs-extra": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
"integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
"integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/fs-extra/node_modules/graceful-fs": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
"dev": true
"node_modules/fs-extra/node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"universalify": "^2.0.0"
},
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/fs-extra/node_modules/universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"dev": true,
"engines": {
"node": ">= 10.0.0"
}
},
"node_modules/fs-minipass": {
"version": "2.1.0",
@@ -7540,12 +7520,9 @@
}
},
"node_modules/graceful-fs": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"engines": {
"node": ">=0.4.0"
}
"version": "4.2.10",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"node_modules/growly": {
"version": "1.3.0",
@@ -9651,11 +9628,6 @@
"license": "ISC",
"optional": true
},
"node_modules/jest-haste-map/node_modules/graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"node_modules/jest-jasmine2": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz",
@@ -9818,11 +9790,6 @@
"node": ">= 6"
}
},
"node_modules/jest-runner/node_modules/graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"node_modules/jest-runtime": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz",
@@ -9859,11 +9826,6 @@
"node": ">= 6"
}
},
"node_modules/jest-runtime/node_modules/graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"node_modules/jest-serializer": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz",
@@ -9933,11 +9895,6 @@
"node": ">=6"
}
},
"node_modules/jest-util/node_modules/graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"node_modules/jest-util/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -16170,12 +16127,6 @@
"node": ">=0.10.0"
}
},
"node_modules/react-scripts/node_modules/graceful-fs": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
"integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
"dev": true
},
"node_modules/react-scripts/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -16876,12 +16827,6 @@
"node": ">=0.10"
}
},
"node_modules/react-scripts/node_modules/regenerator-runtime": {
"version": "0.13.5",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
"integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
"dev": true
},
"node_modules/react-scripts/node_modules/regenerator-transform": {
"version": "0.14.4",
"resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz",
@@ -17904,12 +17849,22 @@
}
},
"node_modules/redux": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/redux/-/redux-4.0.0.tgz",
"integrity": "sha512-NnnHF0h0WVE/hXyrB6OlX67LYRuaf/rJcbWvnHHEPCF/Xa/AZpwhs/20WyqzQae5x4SD2F9nPObgBh2rxAgLiA==",
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/redux/-/redux-4.1.2.tgz",
"integrity": "sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw==",
"dependencies": {
"loose-envify": "^1.1.0",
"symbol-observable": "^1.2.0"
"@babel/runtime": "^7.9.2"
}
},
"node_modules/redux/node_modules/@babel/runtime": {
"version": "7.20.1",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz",
"integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==",
"dependencies": {
"regenerator-runtime": "^0.13.10"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/regenerate": {
@@ -17929,9 +17884,9 @@
}
},
"node_modules/regenerator-runtime": {
"version": "0.13.3",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
"integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw=="
"version": "0.13.10",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz",
"integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw=="
},
"node_modules/regenerator-transform": {
"version": "0.14.1",
@@ -19877,14 +19832,6 @@
"node": ">=4.0.0"
}
},
"node_modules/symbol-observable": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
"integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -21528,11 +21475,6 @@
"node": ">=4.0.0"
}
},
"node_modules/webpack/node_modules/graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"node_modules/webpack/node_modules/schema-utils": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
@@ -23076,14 +23018,6 @@
"requires": {
"core-js-pure": "^3.0.0",
"regenerator-runtime": "^0.13.4"
},
"dependencies": {
"regenerator-runtime": {
"version": "0.13.5",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
"integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
"dev": true
}
}
},
"@babel/template": {
@@ -23224,11 +23158,6 @@
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
"integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="
},
"graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
}
}
},
@@ -23303,11 +23232,6 @@
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
},
"graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -23359,11 +23283,6 @@
"write-file-atomic": "2.4.1"
},
"dependencies": {
"graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -25080,11 +24999,6 @@
"unique-filename": "^1.1.1"
},
"dependencies": {
"graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
@@ -25721,12 +25635,6 @@
"universalify": "^2.0.0"
}
},
"graceful-fs": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
"dev": true
},
"html-webpack-plugin": {
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz",
@@ -26915,12 +26823,6 @@
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
}
},
"graceful-fs": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
"dev": true
}
}
},
@@ -27916,20 +27818,30 @@
}
},
"fs-extra": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
"integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
"integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"dependencies": {
"graceful-fs": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
}
},
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"dev": true
}
}
@@ -28093,9 +28005,9 @@
}
},
"graceful-fs": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
"version": "4.2.10",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"growly": {
"version": "1.3.0",
@@ -29747,11 +29659,6 @@
"optional": true
}
}
},
"graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
}
}
},
@@ -29878,13 +29785,6 @@
"jest-worker": "^24.6.0",
"source-map-support": "^0.5.6",
"throat": "^4.0.0"
},
"dependencies": {
"graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
}
}
},
"jest-runtime": {
@@ -29915,13 +29815,6 @@
"slash": "^2.0.0",
"strip-bom": "^3.0.0",
"yargs": "^13.3.0"
},
"dependencies": {
"graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
}
}
},
"jest-serializer": {
@@ -29980,11 +29873,6 @@
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
},
"graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -34972,12 +34860,6 @@
}
}
},
"graceful-fs": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
"integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
"dev": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -35512,12 +35394,6 @@
"readable-stream": "^2.0.2"
}
},
"regenerator-runtime": {
"version": "0.13.5",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
"integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
"dev": true
},
"regenerator-transform": {
"version": "0.14.4",
"resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz",
@@ -36300,12 +36176,21 @@
}
},
"redux": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/redux/-/redux-4.0.0.tgz",
"integrity": "sha512-NnnHF0h0WVE/hXyrB6OlX67LYRuaf/rJcbWvnHHEPCF/Xa/AZpwhs/20WyqzQae5x4SD2F9nPObgBh2rxAgLiA==",
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/redux/-/redux-4.1.2.tgz",
"integrity": "sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw==",
"requires": {
"loose-envify": "^1.1.0",
"symbol-observable": "^1.2.0"
"@babel/runtime": "^7.9.2"
},
"dependencies": {
"@babel/runtime": {
"version": "7.20.1",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz",
"integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==",
"requires": {
"regenerator-runtime": "^0.13.10"
}
}
}
},
"regenerate": {
@@ -36322,9 +36207,9 @@
}
},
"regenerator-runtime": {
"version": "0.13.3",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
"integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw=="
"version": "0.13.10",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz",
"integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw=="
},
"regenerator-transform": {
"version": "0.14.1",
@@ -37843,11 +37728,6 @@
"util.promisify": "~1.0.0"
}
},
"symbol-observable": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
"integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
},
"symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -38782,11 +38662,6 @@
"estraverse": "^4.1.1"
}
},
"graceful-fs": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"schema-utils": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",

View File

@@ -19,7 +19,7 @@
"dotenv": "8.6.0",
"dotenv-expand": "5.1.0",
"file-loader": "4.3.0",
"fs-extra": "8.1.0",
"fs-extra": "10.1.0",
"html-webpack-plugin": "4.0.0-beta.11",
"identity-obj-proxy": "3.0.0",
"jest": "24.9.0",
@@ -63,7 +63,7 @@
},
"devDependencies": {
"cra-build-watch": "^3.4.0",
"fs-extra": "^6.0.1",
"fs-extra": "^10.0.0",
"md5": "^2.3.0",
"react-scripts": "^3.3.1"
},

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en">
<html lang="en-gb">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

View File

@@ -42,7 +42,7 @@ import commands from './commands/index';
import invitationRespond from '../../services/share/invitationRespond';
import restart from '../../services/restart';
const { connect } = require('react-redux');
const { PromptDialog } = require('../PromptDialog.min.js');
import PromptDialog from '../PromptDialog';
const NotePropertiesDialog = require('../NotePropertiesDialog.min.js');
const PluginManager = require('@joplin/lib/services/PluginManager');
const ipcRenderer = require('electron').ipcRenderer;

View File

@@ -16,8 +16,13 @@ export const runtime = (): CommandRuntime => {
if (!link) throw new Error('Link cannot be empty');
if (link.startsWith('joplin://') || link.startsWith(':/')) {
const { itemId, hash } = parseResourceUrl(link);
await openItemById(itemId, context.dispatch, hash);
const parsedUrl = parseResourceUrl(link);
if (parsedUrl) {
const { itemId, hash } = parsedUrl;
await openItemById(itemId, context.dispatch, hash);
} else {
void require('electron').shell.openExternal(link);
}
} else if (urlProtocol(link)) {
if (link.indexOf('file://') === 0) {
// When using the file:// protocol, openPath doesn't work (does

View File

@@ -116,7 +116,7 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
scrollTo: (options: ScrollOptions) => {
if (options.type === ScrollOptionTypes.Hash) {
if (!webviewRef.current) return;
webviewRef.current.wrappedInstance.send('scrollToHash', options.value as string);
webviewRef.current.send('scrollToHash', options.value as string);
} else if (options.type === ScrollOptionTypes.Percent) {
const percent = options.value as number;
setEditorPercentScroll(percent);
@@ -151,9 +151,10 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
if (props.visiblePanes.indexOf('editor') >= 0) {
editorRef.current.focus();
} else {
// If we just call wrappedInstance.focus() then the iframe is focused,
// but not its content, such that scrolling up / down with arrow keys fails
webviewRef.current.wrappedInstance.send('focus');
// If we just call focus() then the iframe is focused,
// but not its content, such that scrolling up / down
// with arrow keys fails
webviewRef.current.send('focus');
}
} else {
commandProcessed = false;
@@ -656,13 +657,13 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
// mounted, webviewReady might be true, but webviewRef.current will be
// undefined. Maybe due to the error boundary that unmount components.
// Since we can't do much about it we just print an error.
if (webviewRef.current && webviewRef.current.wrappedInstance) {
if (webviewRef.current) {
// To keep consistency among CodeMirror's editing and scroll percents
// of Editor and Viewer.
const percent = getLineScrollPercent();
setEditorPercentScroll(percent);
options.percent = percent;
webviewRef.current.wrappedInstance.send('setHtml', renderedBody.html, options);
webviewRef.current.send('setHtml', renderedBody.html, options);
} else {
console.error('Trying to set HTML on an undefined webview ref');
}
@@ -681,8 +682,8 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
// props.content has been updated).
const textChanged = props.searchMarkers.keywords.length > 0 && (props.content !== previousContent || renderedBody !== previousRenderedBody);
if (webviewRef.current?.wrappedInstance && (props.searchMarkers !== previousSearchMarkers || textChanged)) {
webviewRef.current.wrappedInstance.send('setMarkers', props.searchMarkers.keywords, props.searchMarkers.options);
if (webviewRef.current && (props.searchMarkers !== previousSearchMarkers || textChanged)) {
webviewRef.current.send('setMarkers', props.searchMarkers.keywords, props.searchMarkers.options);
if (editorRef.current) {
const matches = editorRef.current.setMarkers(props.searchMarkers.keywords, props.searchMarkers.options);

View File

@@ -220,7 +220,7 @@ function Editor(props: EditorProps, ref: any) {
cm.off('refresh', editor_resize);
cm.off('update', editor_update);
// eslint-disable-next-line @seiyab/react-hooks/exhaustive-deps -- Old code before rule was applied
editorParent.current.removeChild(cm.getWrapperElement());
if (editorParent.current) editorParent.current.removeChild(cm.getWrapperElement());
setEditor(null);
};
// eslint-disable-next-line @seiyab/react-hooks/exhaustive-deps -- Old code before rule was applied

View File

@@ -99,7 +99,7 @@ export default function useScrollHandler(editorRef: any, webviewRef: any, onScro
const setViewerPercentScroll = useCallback((percent: number) => {
if (webviewRef.current) {
webviewRef.current.wrappedInstance.send('setPercentScroll', percent);
webviewRef.current.send('setPercentScroll', percent);
scheduleOnScroll({ percent });
}
// eslint-disable-next-line @seiyab/react-hooks/exhaustive-deps -- Old code before rule was applied

View File

@@ -1010,7 +1010,10 @@ const TinyMCE = (props: NoteBodyEditorProps, ref: any) => {
} else { // Paste regular text
// event.clipboardData.getData('text/html') wraps the content with <html><body></body></html>,
// which seems to be not supported in editor.insertContent().
const pastedHtml = clipboard.readHTML();
//
// when pasting text with Ctrl+Shift+V, the format should be ignored.
// In this case, event.clopboardData.getData('text/html') returns an empty string, but the clipboard.readHTML() still returns the formatted text.
const pastedHtml = event.clipboardData.getData('text/html') ? clipboard.readHTML() : '';
if (pastedHtml) { // Handles HTML
const modifiedHtml = await processPastedHtml(pastedHtml);
editor.insertContent(modifiedHtml);

View File

@@ -12,6 +12,7 @@ import useWindowCommandHandler from './utils/useWindowCommandHandler';
import useDropHandler from './utils/useDropHandler';
import useMarkupToHtml from './utils/useMarkupToHtml';
import useFormNote, { OnLoadEvent } from './utils/useFormNote';
import useEffectiveNoteId from './utils/useEffectiveNoteId';
import useFolder from './utils/useFolder';
import styles_ from './styles';
import { NoteEditorProps, FormNote, ScrollOptions, ScrollOptionTypes, OnChangeEvent, NoteBodyEditorProps, AllAssetsOptions } from './utils/types';
@@ -66,9 +67,11 @@ function NoteEditor(props: NoteEditorProps) {
setTitleHasBeenManuallyChanged(false);
}, []);
const effectiveNoteId = useEffectiveNoteId(props);
const { formNote, setFormNote, isNewNote, resourceInfos } = useFormNote({
syncStarted: props.syncStarted,
noteId: props.noteId,
noteId: effectiveNoteId,
isProvisional: props.isProvisional,
titleInputRef: titleInputRef,
editorRef: editorRef,
@@ -192,7 +195,7 @@ function NoteEditor(props: NoteEditorProps) {
setScrollWhenReady({
type: props.selectedNoteHash ? ScrollOptionTypes.Hash : ScrollOptionTypes.Percent,
value: props.selectedNoteHash ? props.selectedNoteHash : props.lastEditorScrollPercents[props.noteId] || 0,
value: props.selectedNoteHash ? props.selectedNoteHash : props.lastEditorScrollPercents[formNote.id] || 0,
});
void ResourceEditWatcher.instance().stopWatchingAll();
@@ -495,6 +498,7 @@ function NoteEditor(props: NoteEditorProps) {
return (
<NoteSearchBar
ref={noteSearchBarRef}
themeId={props.themeId}
style={{
display: 'flex',
height: 35,
@@ -549,7 +553,7 @@ function NoteEditor(props: NoteEditorProps) {
}
}
if (formNote.encryption_applied || !formNote.id || !props.noteId) {
if (formNote.encryption_applied || !formNote.id || !effectiveNoteId) {
return renderNoNotes(styles.root);
}

View File

@@ -1,57 +0,0 @@
/** @jest-environment ./loadResources.testEnv */
// eslint-disable-next-line strict, lines-around-directive
'use strict';
// use strict is necessary here so that typescript doesn't place "use strict" above the jest docblock
// https://github.com/microsoft/TypeScript/issues/15819#issuecomment-782235619
// import { textToDataUri, svgUriToPng } from './contextMenuUtils';
// jest.mock('@joplin/lib/models/Resource');
// These tests are disabled because unfortunately they require the "canvas"
// module, and it's yet another binary module that fails to compile half of the
// time. Since it's only needed here it's not worth the trouble.
describe('contextMenu', () => {
it('should pass', () => {
expect(1).toBe(1);
});
// it('should provide proper copy path', async () => {
// const testCase = [
// '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">test</svg>',
// 'image/svg+xml',
// ];
// const expectedText = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIj50ZXN0PC9zdmc+';
// expect(textToDataUri(testCase[0], testCase[1])).toBe(expectedText);
// });
// it('should convert to png binary', async () => {
// const testCase = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEwMCAxMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiIGhlaWdodD0iMTAwcHgiIHdpZHRoPSIxMDBweCI+CjxnPgoJPHBhdGggZD0iTTI4LjEsMzYuNmM0LjYsMS45LDEyLjIsMS42LDIwLjksMS4xYzguOS0wLjQsMTktMC45LDI4LjksMC45YzYuMywxLjIsMTEuOSwzLjEsMTYuOCw2Yy0xLjUtMTIuMi03LjktMjMuNy0xOC42LTMxLjMgICBjLTQuOS0wLjItOS45LDAuMy0xNC44LDEuNEM0Ny44LDE3LjksMzYuMiwyNS42LDI4LjEsMzYuNnoiLz4KCTxwYXRoIGQ9Ik03MC4zLDkuOEM1Ny41LDMuNCw0Mi44LDMuNiwzMC41LDkuNWMtMyw2LTguNCwxOS42LTUuMywyNC45YzguNi0xMS43LDIwLjktMTkuOCwzNS4yLTIzLjFDNjMuNywxMC41LDY3LDEwLDcwLjMsOS44eiIvPgoJPHBhdGggZD0iTTE2LjUsNTEuM2MwLjYtMS43LDEuMi0zLjQsMi01LjFjLTMuOC0zLjQtNy41LTctMTEtMTAuOGMtMi4xLDYuMS0yLjgsMTIuNS0yLjMsMTguN0M5LjYsNTEuMSwxMy40LDUwLjIsMTYuNSw1MS4zeiIvPgoJPHBhdGggZD0iTTksMzEuNmMzLjUsMy45LDcuMiw3LjYsMTEuMSwxMS4xYzAuOC0xLjYsMS43LTMuMSwyLjYtNC42YzAuMS0wLjIsMC4zLTAuNCwwLjQtMC42Yy0yLjktMy4zLTMuMS05LjItMC42LTE3LjYgICBjMC44LTIuNywxLjgtNS4zLDIuNy03LjRjLTUuMiwzLjQtOS44LDgtMTMuMywxMy43QzEwLjgsMjcuOSw5LjgsMjkuNyw5LDMxLjZ6Ii8+Cgk8cGF0aCBkPSJNMTUuNCw1NC43Yy0yLjYtMS02LjEsMC43LTkuNywzLjRjMS4yLDYuNiwzLjksMTMsOCwxOC41QzEzLDY5LjMsMTMuNSw2MS44LDE1LjQsNTQuN3oiLz4KCTxwYXRoIGQ9Ik0zOS44LDU3LjZDNTQuMyw2Ni43LDcwLDczLDg2LjUsNzYuNGMwLjYtMC44LDEuMS0xLjYsMS43LTIuNWM0LjgtNy43LDctMTYuMyw2LjgtMjQuOGMtMTMuOC05LjMtMzEuMy04LjQtNDUuOC03LjcgICBjLTkuNSwwLjUtMTcuOCwwLjktMjMuMi0xLjdjLTAuMSwwLjEtMC4yLDAuMy0wLjMsMC40Yy0xLDEuNy0yLDMuNC0yLjksNS4xQzI4LjIsNDkuNywzMy44LDUzLjksMzkuOCw1Ny42eiIvPgoJPHBhdGggZD0iTTI2LjIsODguMmMzLjMsMiw2LjcsMy42LDEwLjIsNC43Yy0zLjUtNi4yLTYuMy0xMi42LTguOC0xOC41Yy0zLjEtNy4yLTUuOC0xMy41LTktMTcuMmMtMS45LDgtMiwxNi40LTAuMywyNC43ICAgQzIwLjYsODQuMiwyMy4yLDg2LjMsMjYuMiw4OC4yeiIvPgoJPHBhdGggZD0iTTMwLjksNzNjMi45LDYuOCw2LjEsMTQuNCwxMC41LDIxLjJjMTUuNiwzLDMyLTIuMyw0Mi42LTE0LjZDNjcuNyw3Niw1Mi4yLDY5LjYsMzcuOSw2MC43QzMyLDU3LDI2LjUsNTMsMjEuMyw0OC42ICAgYy0wLjYsMS41LTEuMiwzLTEuNyw0LjZDMjQuMSw1Ny4xLDI3LjMsNjQuNSwzMC45LDczeiIvPgo8L2c+Cjwvc3ZnPg==';
// const png = await svgUriToPng(document, testCase);
// expect(png).toBeInstanceOf(Uint8Array);
// });
// it('should throw error on invalid svg uri', async () => {
// // We are mocking console.error since jsdom throws errors to console when we try to load an invalid img
// // https://github.com/facebook/jest/pull/5267#issuecomment-356605468
// const consoleError = console.error;
// console.error = jest.fn();
// const testCases: Array<string> = [
// 'data:image/svg+xml;base64,error',
// 'invalid',
// ];
// for (const testCase of testCases) {
// await expect(svgUriToPng(document, testCase)).rejects.toBeInstanceOf(Error);
// }
// console.error = consoleError;
// });
});

View File

@@ -0,0 +1,21 @@
import { useEffect, useRef } from 'react';
import { NoteEditorProps } from './types';
export default function useEffectiveNoteId(props: NoteEditorProps) {
// When a notebook is changed without any selected note,
// no note is selected for a moment, and then a new note gets selected.
// In this short transient period, the last displayed note id should temporarily
// be used to prevent NoteEditor's body from being unmounted.
// See https://github.com/laurent22/joplin/issues/6416
// and https://github.com/laurent22/joplin/pull/6430 for details.
const lastDisplayedNoteId = useRef<string>(null);
const whenNoteIdIsTransientlyAbsent = !props.noteId && props.notes.length > 0;
const effectiveNoteId = whenNoteIdIsTransientlyAbsent ? lastDisplayedNoteId.current : props.noteId;
useEffect(() => {
if (props.noteId) lastDisplayedNoteId.current = props.noteId;
}, [props.noteId]);
return effectiveNoteId;
}

View File

@@ -55,7 +55,7 @@ class NoteRevisionViewerComponent extends React.PureComponent {
}
async viewer_domReady() {
// this.viewerRef_.current.wrappedInstance.openDevTools();
// this.viewerRef_.current.openDevTools();
const revisions = await Revision.allByType(BaseModel.TYPE_NOTE, this.props.noteId);
@@ -127,7 +127,7 @@ class NoteRevisionViewerComponent extends React.PureComponent {
postMessageSyntax: 'ipcProxySendToHost',
});
this.viewerRef_.current.wrappedInstance.send('setHtml', result.html, {
this.viewerRef_.current.send('setHtml', result.html, {
cssFiles: result.cssFiles,
pluginAssets: result.pluginAssets,
});
@@ -199,7 +199,7 @@ class NoteRevisionViewerComponent extends React.PureComponent {
</div>
);
const viewer = <NoteTextViewer viewerStyle={{ display: 'flex', flex: 1, borderLeft: 'none' }} ref={this.viewerRef_} onDomReady={this.viewer_domReady} onIpcMessage={this.webview_ipcMessage} />;
const viewer = <NoteTextViewer themeId={this.props.themeId} viewerStyle={{ display: 'flex', flex: 1, borderLeft: 'none' }} ref={this.viewerRef_} onDomReady={this.viewer_domReady} onIpcMessage={this.webview_ipcMessage} />;
return (
<div style={style.root}>

View File

@@ -1,9 +1,8 @@
const React = require('react');
const { connect } = require('react-redux');
const { themeStyle } = require('@joplin/lib/theme');
const { _ } = require('@joplin/lib/locale');
class NoteSearchBarComponent extends React.Component {
class NoteSearchBar extends React.Component {
constructor() {
super();
@@ -177,17 +176,4 @@ class NoteSearchBarComponent extends React.Component {
}
}
const mapStateToProps = state => {
return {
themeId: state.settings.theme,
};
};
const NoteSearchBar = connect(
mapStateToProps,
null,
null,
{ withRef: true }
)(NoteSearchBarComponent);
module.exports = NoteSearchBar;

View File

@@ -1,15 +1,15 @@
import PostMessageService, { MessageResponse, ResponderComponentType } from '@joplin/lib/services/PostMessageService';
import * as React from 'react';
const { connect } = require('react-redux');
import { reg } from '@joplin/lib/registry';
interface Props {
onDomReady: Function;
onIpcMessage: Function;
viewerStyle: any;
contentMaxWidth: number;
}
class NoteTextViewerComponent extends React.Component<Props, any> {
export default class NoteTextViewerComponent extends React.Component<Props, any> {
private initialized_: boolean = false;
private domReady_: boolean = false;
@@ -176,18 +176,3 @@ class NoteTextViewerComponent extends React.Component<Props, any> {
return <iframe className="noteTextViewer" ref={this.webviewRef_} style={viewerStyle} src="gui/note-viewer/index.html"></iframe>;
}
}
const mapStateToProps = (state: any) => {
return {
themeId: state.settings.theme,
};
};
const NoteTextViewer = connect(
mapStateToProps,
null,
null,
{ withRef: true }
)(NoteTextViewerComponent);
export default NoteTextViewer;

View File

@@ -1,15 +1,34 @@
const React = require('react');
const { _ } = require('@joplin/lib/locale');
const { themeStyle } = require('@joplin/lib/theme');
const time = require('@joplin/lib/time').default;
const Datetime = require('react-datetime');
const CreatableSelect = require('react-select/lib/Creatable').default;
const Select = require('react-select').default;
const makeAnimated = require('react-select/lib/animated').default;
import * as React from 'react';
import { _ } from '@joplin/lib/locale';
import { themeStyle } from '@joplin/lib/theme';
import time from '@joplin/lib/time';
const Datetime = require('react-datetime').default;
import CreatableSelect from 'react-select/creatable';
import Select from 'react-select';
import makeAnimated from 'react-select/animated';
interface Props {
themeId: number;
defaultValue: any;
visible: boolean;
style: any;
buttons: any[];
onClose: Function;
inputType: string;
description: string;
answer?: any;
autocomplete: any;
label: string;
}
class PromptDialog extends React.Component {
constructor() {
super();
export default class PromptDialog extends React.Component<Props, any> {
private answerInput_: any;
private focusInput_: boolean;
private styles_: any;
private styleKey_: string;
constructor(props: Props) {
super(props);
this.answerInput_ = React.createRef();
}
@@ -22,7 +41,7 @@ class PromptDialog extends React.Component {
this.focusInput_ = true;
}
UNSAFE_componentWillReceiveProps(newProps) {
UNSAFE_componentWillReceiveProps(newProps: Props) {
if ('visible' in newProps && newProps.visible !== this.props.visible) {
this.setState({ visible: newProps.visible });
if (newProps.visible) this.focusInput_ = true;
@@ -38,7 +57,7 @@ class PromptDialog extends React.Component {
this.focusInput_ = false;
}
styles(themeId, width, height, visible) {
styles(themeId: number, width: number, height: number, visible: boolean) {
const styleKey = `${themeId}_${width}_${height}_${visible}`;
if (styleKey === this.styleKey_) return this.styles_;
@@ -100,40 +119,40 @@ class PromptDialog extends React.Component {
};
this.styles_.select = {
control: provided =>
control: (provided: any) =>
Object.assign(provided, {
minWidth: width * 0.2,
maxWidth: width * 0.5,
fontFamily: theme.fontFamily,
}),
input: provided =>
input: (provided: any) =>
Object.assign(provided, {
minWidth: '20px',
color: theme.color,
}),
menu: provided =>
menu: (provided: any) =>
Object.assign(provided, {
color: theme.color,
fontFamily: theme.fontFamily,
backgroundColor: theme.backgroundColor,
}),
option: (provided, state) =>
option: (provided: any, state: any) =>
Object.assign(provided, {
color: theme.color,
fontFamily: theme.fontFamily,
paddingLeft: `${10 + (state.data.indentDepth || 0) * 20}px`,
}),
multiValueLabel: provided =>
multiValueLabel: (provided: any) =>
Object.assign(provided, {
fontFamily: theme.fontFamily,
}),
multiValueRemove: provided =>
multiValueRemove: (provided: any) =>
Object.assign(provided, {
color: theme.color,
}),
};
this.styles_.selectTheme = tagTheme =>
this.styles_.selectTheme = (tagTheme: any) =>
Object.assign(tagTheme, {
borderRadius: 2,
colors: Object.assign(tagTheme.colors, {
@@ -169,7 +188,7 @@ class PromptDialog extends React.Component {
const styles = this.styles(this.props.themeId, style.width, style.height, this.state.visible);
const onClose = (accept, buttonType) => {
const onClose = (accept: boolean, buttonType: string = null) => {
if (this.props.onClose) {
let outputAnswer = this.state.answer;
if (this.props.inputType === 'datetime') {
@@ -181,7 +200,7 @@ class PromptDialog extends React.Component {
this.setState({ visible: false, answer: '' });
};
const onChange = event => {
const onChange = (event: any) => {
this.setState({ answer: event.target.value });
};
@@ -194,16 +213,16 @@ class PromptDialog extends React.Component {
// return m.isValid() ? m.toDate() : null;
// }
const onDateTimeChange = momentObject => {
const onDateTimeChange = (momentObject: any) => {
this.setState({ answer: momentObject });
};
const onSelectChange = newValue => {
const onSelectChange = (newValue: any) => {
this.setState({ answer: newValue });
this.focusInput_ = true;
};
const onKeyDown = event => {
const onKeyDown = (event: any) => {
if (event.key === 'Enter') {
if (this.props.inputType !== 'tags' && this.props.inputType !== 'dropdown') {
onClose(true);
@@ -221,11 +240,11 @@ class PromptDialog extends React.Component {
let inputComp = null;
if (this.props.inputType === 'datetime') {
inputComp = <Datetime className="datetime-picker" value={this.state.answer} inputProps={{ style: styles.input }} dateFormat={time.dateFormat()} timeFormat={time.timeFormat()} onChange={momentObject => onDateTimeChange(momentObject)} />;
inputComp = <Datetime className="datetime-picker" value={this.state.answer} inputProps={{ style: styles.input }} dateFormat={time.dateFormat()} timeFormat={time.timeFormat()} onChange={(momentObject: any) => onDateTimeChange(momentObject)} />;
} else if (this.props.inputType === 'tags') {
inputComp = <CreatableSelect className="tag-selector" styles={styles.select} theme={styles.selectTheme} ref={this.answerInput_} value={this.state.answer} placeholder="" components={makeAnimated()} isMulti={true} isClearable={false} backspaceRemovesValue={true} options={this.props.autocomplete} onChange={onSelectChange} onKeyDown={event => onKeyDown(event)} />;
inputComp = <CreatableSelect className="tag-selector" styles={styles.select} theme={styles.selectTheme} ref={this.answerInput_} value={this.state.answer} placeholder="" components={makeAnimated()} isMulti={true} isClearable={false} backspaceRemovesValue={true} options={this.props.autocomplete} onChange={onSelectChange} onKeyDown={(event: any) => onKeyDown(event)} />;
} else if (this.props.inputType === 'dropdown') {
inputComp = <Select className="item-selector" styles={styles.select} theme={styles.selectTheme} ref={this.answerInput_} components={makeAnimated()} value={this.props.answer} defaultValue={this.props.defaultValue} isClearable={false} options={this.props.autocomplete} onChange={onSelectChange} onKeyDown={event => onKeyDown(event)} />;
inputComp = <Select className="item-selector" styles={styles.select} theme={styles.selectTheme} ref={this.answerInput_} components={makeAnimated()} value={this.props.answer} defaultValue={this.props.defaultValue} isClearable={false} options={this.props.autocomplete} onChange={onSelectChange} onKeyDown={(event: any) => onKeyDown(event)} />;
} else {
inputComp = <input style={styles.input} ref={this.answerInput_} value={this.state.answer} type="text" onChange={event => onChange(event)} onKeyDown={event => onKeyDown(event)} />;
}
@@ -274,5 +293,3 @@ class PromptDialog extends React.Component {
);
}
}
module.exports = { PromptDialog };

View File

@@ -11,7 +11,7 @@ import { Size } from './ResizableLayout/utils/types';
import MenuBar from './MenuBar';
import { _ } from '@joplin/lib/locale';
const React = require('react');
const { render } = require('react-dom');
const { createRoot } = require('react-dom/client');
const { connect, Provider } = require('react-redux');
import Setting from '@joplin/lib/models/Setting';
import shim from '@joplin/lib/shim';
@@ -259,11 +259,11 @@ const Root = connect(mapStateToProps)(RootComponent);
const store = app().store();
render(
const root = createRoot(document.getElementById('react-root'));
root.render(
<Provider store={store}>
<ErrorBoundary>
<Root />
</ErrorBoundary>
</Provider>,
document.getElementById('react-root')
</Provider>
);

View File

@@ -1,4 +1,4 @@
const smalltalk = require('smalltalk');
const smalltalk = require('smalltalk/bundle');
class Dialogs {
async alert(message: string, title = '') {

View File

@@ -158,19 +158,23 @@
for (let i = 0; i < assets.length; i++) {
const asset = assets[i];
// # and ? can be used in valid paths and shouldn't be treated as the start of a query or fragment
const encodedPath = asset.path
.replaceAll('#','%23')
.replaceAll('?','%3F')
const assetId = asset.name ? asset.name : asset.path;
const assetId = asset.name ? asset.name : encodedPath;
if (pluginAssetsAdded_[assetId]) continue;
pluginAssetsAdded_[assetId] = true;
if (asset.mime === 'application/javascript') {
const script = document.createElement('script');
script.src = asset.path;
script.src = encodedPath;
pluginAssetsContainer.appendChild(script);
} else if (asset.mime === 'text/css') {
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = asset.path;
link.href = encodedPath
pluginAssetsContainer.appendChild(link);
}
}

View File

@@ -1,20 +0,0 @@
/**
* A Jest custom test Environment to load the resources for the tests.
* Use this test envirenment when you work with resources like images, files.
* See gui/NoteEditor/utils/contextMenu.test.ts for an example.
*/
const JSDOMEnvironment = require('jest-environment-jsdom');
import type { EnvironmentContext } from '@jest/environment';
import type { Config } from '@jest/types';
export default class CustomEnvironment extends JSDOMEnvironment {
constructor(config: Config.ProjectConfig, context?: EnvironmentContext) {
// Resources is set to 'usable' to enable fetching of resources like images and fonts while testing
// Which does not happen by default in jest
// https://stackoverflow.com/a/49482563
config.testEnvironmentOptions.resources = 'usable';
super(config, context);
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/app-desktop",
"version": "2.9.12",
"version": "2.10.2",
"description": "Joplin for Desktop",
"main": "main.js",
"private": true,
@@ -20,7 +20,7 @@
"url": "git+https://github.com/laurent22/joplin.git"
},
"author": "Laurent Cozic",
"license": "MIT",
"license": "AGPL-3.0-or-later",
"bugs": {
"url": "https://github.com/laurent22/joplin/issues"
},
@@ -95,7 +95,7 @@
"icon": "../../Assets/LinuxIcons",
"category": "Office",
"desktop": {
"Icon": "joplin",
"Icon": "@joplinapp-desktop",
"MimeType": "x-scheme-handler/joplin;"
},
"target": "AppImage"
@@ -106,10 +106,10 @@
},
"homepage": "https://github.com/laurent22/joplin#readme",
"devDependencies": {
"@joplin/tools": "~2.9",
"@joplin/tools": "~2.10",
"@testing-library/react-hooks": "8.0.1",
"@types/jest": "26.0.24",
"@types/node": "18.11.9",
"@types/jest": "29.2.4",
"@types/node": "18.11.17",
"@types/react": "16.14.34",
"@types/react-redux": "7.1.24",
"@types/styled-components": "5.1.26",
@@ -119,13 +119,14 @@
"electron-builder": "23.6.0",
"electron-notarize": "1.2.2",
"electron-rebuild": "3.2.9",
"glob": "7.2.3",
"glob": "8.0.3",
"gulp": "4.0.2",
"jest": "26.6.3",
"jest": "29.3.1",
"jest-environment-jsdom": "29.3.1",
"js-sha512": "0.8.0",
"nan": "2.17.0",
"react-test-renderer": "16.14.0",
"typescript": "4.0.5"
"react-test-renderer": "18.2.0",
"typescript": "4.9.4"
},
"optionalDependencies": {
"7zip-bin-linux": "^1.0.1",
@@ -133,12 +134,12 @@
"7zip-bin-win": "^2.1.1"
},
"dependencies": {
"@electron/remote": "2.0.8",
"@electron/remote": "2.0.9",
"@fortawesome/fontawesome-free": "5.15.4",
"@joeattardi/emoji-button": "4.6.4",
"@joplin/lib": "~2.9",
"@joplin/pdf-viewer": "~2.9",
"@joplin/renderer": "~2.9",
"@joplin/lib": "~2.10",
"@joplin/pdf-viewer": "~2.10",
"@joplin/renderer": "~2.10",
"async-mutex": "0.4.0",
"codemirror": "5.65.9",
"color": "3.2.1",
@@ -147,30 +148,30 @@
"debounce": "1.2.1",
"electron-window-state": "5.0.3",
"formatcoords": "1.1.3",
"fs-extra": "10.0.0",
"highlight.js": "10.7.3",
"fs-extra": "11.1.0",
"highlight.js": "11.7.0",
"immer": "7.0.15",
"keytar": "7.9.0",
"mark.js": "8.11.1",
"md5": "2.3.0",
"moment": "2.29.4",
"node-fetch": "1.7.3",
"node-notifier": "8.0.2",
"node-fetch": "2.6.7",
"node-notifier": "10.0.1",
"node-rsa": "1.1.1",
"pretty-bytes": "5.6.0",
"re-resizable": "6.9.9",
"react": "16.14.0",
"react-datetime": "2.16.3",
"react-dom": "16.14.0",
"react-redux": "5.1.2",
"react-select": "2.4.4",
"react": "18.2.0",
"react-datetime": "3.2.0",
"react-dom": "18.2.0",
"react-redux": "8.0.5",
"react-select": "5.7.0",
"react-toggle-button": "2.2.0",
"react-tooltip": "3.11.6",
"redux": "3.7.2",
"react-tooltip": "4.5.1",
"redux": "4.2.0",
"reselect": "4.1.7",
"roboto-fontface": "0.10.0",
"smalltalk": "2.5.1",
"sqlite3": "5.0.2",
"smalltalk": "4.1.1",
"sqlite3": "5.1.4",
"styled-components": "5.3.6",
"styled-system": "5.1.5",
"taboverride": "4.0.3",

View File

@@ -41,10 +41,12 @@ export default function useViewIsReady(viewRef: any) {
viewRef.current.contentWindow.addEventListener('message', onMessage);
return () => {
viewRef.current.removeEventListener('dom-ready', onIFrameReady);
viewRef.current.removeEventListener('load', onIFrameReady);
// eslint-disable-next-line @seiyab/react-hooks/exhaustive-deps -- Old code before rule was applied
viewRef.current.contentWindow.removeEventListener('message', onMessage);
if (viewRef.current) {
viewRef.current.removeEventListener('dom-ready', onIFrameReady);
viewRef.current.removeEventListener('load', onIFrameReady);
// eslint-disable-next-line @seiyab/react-hooks/exhaustive-deps -- Old code before rule was applied
viewRef.current.contentWindow.removeEventListener('message', onMessage);
}
};
// eslint-disable-next-line @seiyab/react-hooks/exhaustive-deps -- Old code before rule was applied
}, []);

View File

@@ -6,17 +6,16 @@ const { shimInit } = require('@joplin/lib/shim-init-node.js');
const folderId1 = 'aa012345678901234567890123456789';
const folderId2 = 'bb012345678901234567890123456789';
beforeAll(async (done) => {
beforeAll(async () => {
shimInit();
Setting.autoSaveEnabled = false;
PerFolderSortOrderService.initialize();
Setting.setValue('notes.perFolderSortOrderEnabled', true);
done();
});
describe('PerFolderSortOrderService', () => {
test('get(), isSet() and set()', async (done) => {
test('get(), isSet() and set()', async () => {
// Clear all per-folder sort order
expect(PerFolderSortOrderService.isSet(folderId1)).toBe(false);
expect(PerFolderSortOrderService.isSet(folderId2)).toBe(false);
@@ -39,7 +38,5 @@ describe('PerFolderSortOrderService', () => {
// Folder without per-folder sort order has no per-folder sort order
expect(PerFolderSortOrderService.get(folderId2)).toBeUndefined();
done();
});
});

View File

@@ -1 +1 @@
2.7.4
2.7.6

View File

@@ -1,4 +1,4 @@
source 'https://rubygems.org'
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby '2.7.4'
ruby '2.7.6'
gem 'cocoapods', '~> 1.11', '>= 1.11.2'

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