1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-08-24 20:19:10 +02:00

Compare commits

...

613 Commits

Author SHA1 Message Date
Laurent Cozic
04f8e96297 Desktop release v2.12.7 2023-07-13 13:09:13 +01:00
Laurent Cozic
4116f3d55b Chore: Desktop: Fixed building of M1 release 2023-07-13 13:08:55 +01:00
Laurent Cozic
99d99b9d85 Desktop release v2.12.6 2023-07-13 11:37:14 +01:00
Noah Nash
16b7969f78 Desktop: Fixes #6052: Create ARM64 function for cross-compile support (#8452)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-07-13 11:29:15 +01:00
Laurent Cozic
15ae42be1d Server v2.12.1 2023-07-13 11:24:23 +01:00
renovate[bot]
0f1412fb46 Update dependency tap to v16.3.7 (#8463)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 01:52:57 +00:00
Joplin Bot
450f18dfbf Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-12 18:17:10 +00:00
renovate[bot]
e703c70b70 Update dependency css-loader to v6.8.1 (#8426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-12 19:02:23 +01:00
renovate[bot]
ee4b79129f Update dependency react-native-drawer-layout to v3.2.1 (#8458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-12 17:11:37 +00:00
Laurent Cozic
42e4c9ff89 typo 2023-07-12 16:57:36 +01:00
Henry Heino
a354feb626 Desktop: Resolves #8258: Upgrade to Electron 25 (#8451) 2023-07-12 16:00:30 +01:00
Laurent Cozic
c0fe29ec82 CI: Fixed M1 config 2023-07-12 15:44:14 +01:00
Laurent Cozic
7c4b12200b Desktop release v2.12.5 2023-07-12 15:18:53 +01:00
Laurent Cozic
1abfb1cb0e Desktop: Fixed macOS version check so that it does not return the ARM64 version 2023-07-12 15:18:05 +01:00
Laurent Cozic
9ae4401564 Doc: Fix brand guideline colours 2023-07-12 14:45:44 +01:00
Henry Heino
d95d6733a1 Chore: Refactor InteropService to not use dynamic imports (#8454) 2023-07-12 10:30:38 +01:00
github-actions[bot]
93e4004033 @noah-nash has signed the CLA in laurent22/joplin#8452 2023-07-11 23:36:51 +00:00
Joplin Bot
baabd1cbbd Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-11 18:19:11 +00:00
Laurent Cozic
dbb7df138e Doc: Remove 32-bit Android release, and fixed readme auto-update 2023-07-11 18:37:43 +01:00
Laurent Cozic
0690f7354f lock files 2023-07-11 17:09:40 +01:00
Laurent Cozic
004d2a1d9e Desktop: Quickly synchronise immediately after changing a note 2023-07-11 14:00:29 +01:00
Laurent Cozic
733c2dc878 Doc: Add release notes 2.11 2023-07-11 13:51:48 +01:00
Rob Moffat
0071a05a6c Desktop, CLI: Allow importing Evernote task lists (#8440) 2023-07-11 13:39:49 +01:00
renovate[bot]
7e53a41a30 Update dependency react-native-safe-area-context to v4.5.5 (#8450)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 10:57:10 +00:00
Laurent Cozic
32db9c814b Chore: Fix M1 CI 2023-07-11 09:58:05 +01:00
Laurent Cozic
0d44234452 Update build-macos-m1.yml 2023-07-11 09:55:46 +01:00
qx100
d55caad8d6 Updated Simplified Chinese translation (#8437) 2023-07-10 12:04:41 +01:00
Henry Heino
1691180790 Desktop: Fixes #6822: Fix extra lines added to KaTeX source when toggling the rich text editor (#8442) 2023-07-10 12:03:52 +01:00
Henry Heino
7ef591f3a8 Desktop: Fixes #8256: Don't start window minimized in GNOME (#8441) 2023-07-10 11:59:09 +01:00
github-actions[bot]
383e9d4e46 @robmoffat has signed the CLA in laurent22/joplin#8440 2023-07-10 08:52:35 +00:00
renovate[bot]
d2b64f9af0 Update dependency standard to v17.1.0 (#8439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-09 17:54:54 +01:00
renovate[bot]
da192e718e Update dependency react-native-reanimated to v3.2.0 (#8438)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-09 15:49:34 +01:00
github-actions[bot]
cc4e65cee4 @laurent22 has signed the CLA in laurent22/joplin#8437 2023-07-09 13:17:03 +00:00
Laurent Cozic
4c5837b85b Desktop: Prevent app from crashing when changing screens
Ref: https://github.com/laurent22/joplin/issues/6052#issuecomment-1627528277
2023-07-09 14:12:41 +01:00
Laurent Cozic
ecd79ef7e4 CI: Do no publish M1 app on pull requests 2023-07-09 11:20:21 +01:00
Laurent Cozic
a6f22bb7a9 Doc: Fixed Android APK links 2023-07-09 10:44:23 +01:00
Joplin Bot
cde7b4d4f6 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-08 00:46:25 +00:00
Laurent Cozic
dabcd3d946 Desktop release v2.12.4 2023-07-07 16:16:01 +01:00
Laurent Cozic
a547ff1ca5 Desktop: Resolves #6052: Build macOS app as Universal binary 2023-07-07 16:02:59 +01:00
Joplin Bot
f12984b38e Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-07 12:20:36 +00:00
Laurent Cozic
6962db7b2f Desktop release v2.12.3 2023-07-07 10:11:57 +01:00
Laurent Cozic
050d9fa794 Desktop: Resolves #6052: Build macOS app as Universal binary 2023-07-07 10:11:29 +01:00
Joplin Bot
9c71523546 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-07 00:50:37 +00:00
renovate[bot]
10eebad566 Update dependency react-native-gesture-handler to v2.10.2 (#8424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-07 00:33:13 +00:00
renovate[bot]
5405b05792 Update dependency react-native-gesture-handler to v2.10.1 (#8422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-06 23:09:56 +01:00
Laurent Cozic
bb47b1ec8d Desktop release v2.12.2 2023-07-06 23:01:58 +01:00
Laurent Cozic
32043caabf CI: Trying to build macOS M1 version 2023-07-06 23:01:42 +01:00
Laurent Cozic
a58d1d040c Desktop release v2.12.1 2023-07-06 21:58:48 +01:00
Laurent Cozic
2e7996152e Desktop: Resolves #6052: Build macOS app as Universal binary (#8423) 2023-07-06 21:58:22 +01:00
Laurent Cozic
d5e583aba3 Doc: Fixed brand guidelines 2023-07-06 21:23:51 +01:00
Laurent Cozic
f27b21cc68 lock file 2023-07-06 20:47:59 +01:00
Laurent Cozic
244d204332 Chore: Fixed type 2023-07-06 20:41:03 +01:00
Henry Heino
b15c81fef8 Mobile: Fixes #7918: Unrevert #7953: Migrate to react-native-drawer-layout (#8379) 2023-07-06 19:18:43 +01:00
Henry Heino
28923a69b2 Chore: Resolves #8360: Use @typescript-eslint/indent for TypeScript files (#8367) 2023-07-06 19:17:41 +01:00
Letty
e21a5c1b80 Mobile: Fixes #8027: Fixed link modal position on devices with notch (#8029) 2023-07-06 19:03:57 +01:00
Laurent Cozic
e278a26dc8 Renovate ignore immer 2023-07-06 18:24:19 +01:00
renovate[bot]
2eac0078cd Update dependency react-native-image-picker to v5.4.2 (#8417)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 17:51:42 +00:00
Laurent Cozic
3fa6ce4583 Doc: Add brand guidelines 2023-07-05 15:19:47 +01:00
Laurent Cozic
7d218ca5b2 Doc: Add brand guidelines 2023-07-05 15:18:29 +01:00
renovate[bot]
721a37a377 Update dependency react-native-image-picker to v5.4.0 (#8416)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 13:20:29 +01:00
renovate[bot]
5600c498d8 Update dependency @rmp135/sql-ts to v1.17.0 (#8414)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 12:27:07 +01:00
Henry Heino
8eba798cdd Chore: Fix search filter tests in non UTC+0 timezones (#8411) 2023-07-04 18:56:06 +01:00
Laurent Cozic
0c76b731e7 Tools: Apply prefer-regex-literals eslint rule 2023-07-03 17:15:19 +01:00
Joplin Bot
2289e3297a Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-03 13:29:46 +00:00
github-actions[bot]
51fbb38f66 @hubertfilho has signed the CLA in laurent22/joplin#8376 2023-07-03 13:24:41 +00:00
Laurent Cozic
86aaa7f478 lock file 2023-07-03 13:28:40 +01:00
Laurent Cozic
c5c9d3a2ef Merge branch 'release-2.11' into dev 2023-07-03 13:14:33 +01:00
Laurent Cozic
1118fef164 Android 2.11.32 2023-07-03 13:08:52 +01:00
Laurent Cozic
e0ea76c9f1 Update translations 2023-07-03 12:26:33 +01:00
Laurent Cozic
2aab85f073 Android: Allow configuring voice typing model URL 2023-07-03 12:25:50 +01:00
Laurent Cozic
dfbe628944 Chore: Fixed asset order 2023-07-02 17:48:29 +01:00
Laurent Cozic
bc35649dda Chore: Disable warning in tests 2023-07-02 17:45:52 +01:00
Joplin Bot
09c6c81992 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-02 06:16:25 +00:00
Joplin Bot
cf98f6a450 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-02 00:49:06 +00:00
renovate[bot]
9e56bc72a3 Update dependency url to v0.11.1 (#8404)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 13:42:08 +00:00
Laurent Cozic
85b9fe06e4 Chore: Fixed buildCommandIndex 2023-07-01 12:56:34 +01:00
Laurent Cozic
e91e38c4e6 Server: Add yarn patches to Docker image 2023-07-01 12:52:30 +01:00
Joplin Bot
fbf2fef17c Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-07-01 00:51:33 +00:00
Laurent Cozic
3080575a17 Fixed tests 2023-06-30 16:23:05 +01:00
Laurent Cozic
10b9df7b9f Revert update of clean-html package 2023-06-30 13:13:45 +01:00
Laurent Cozic
dd6eec6a03 Tools: Apply rule @typescript-eslint/ban-types 2023-06-30 10:30:29 +01:00
Laurent Cozic
48ef6db4a5 Tools: Apply @typescript-eslint/ban-ts-comment rule 2023-06-30 10:22:47 +01:00
Laurent Cozic
7591a1182e Tools: Apply eslint rule multiline-comment-style with checkJSDoc option 2023-06-30 09:55:56 +01:00
Laurent Cozic
0c4ba592f6 Tools: Apply rule github/array-foreach 2023-06-30 09:39:21 +01:00
Laurent Cozic
c6a15b3186 Tools: Add eslint rule @typescript-eslint/array-type 2023-06-30 09:16:08 +01:00
Laurent Cozic
e89b59be8e Tools: Apply eslint rule @typescript-eslint/no-inferrable-types with ignoreArguments=false 2023-06-30 09:11:26 +01:00
Laurent Cozic
315f071337 Tools: Apply eslint rule @typescript-eslint/no-inferrable-types with ignoreProperties=false 2023-06-30 09:07:03 +01:00
renovate[bot]
667bb19765 Update dependency clean-html to v2 (#8398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-30 08:21:12 +01:00
github-actions[bot]
21d09e44c4 @wljince007 has signed the CLA in laurent22/joplin#8391 2023-06-30 06:18:16 +00:00
renovate[bot]
d36c3069c3 Update dependency glob to v10.2.7 (#8395)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 22:50:11 +00:00
Joplin Bot
ab0747693d Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-29 18:20:22 +00:00
renovate[bot]
e322699829 Update dependency glob to v10.2.5 (#8392)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 18:55:03 +01:00
Laurent Cozic
220803d478 Doc: Added guiding principles 2023-06-29 13:55:26 +01:00
Laurent Cozic
78d558f72e Doc: Added sponsor 2023-06-29 13:55:25 +01:00
renovate[bot]
3c7dc9f11c Update dependency glob to v10 (#8386)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 13:34:43 +01:00
renovate[bot]
a8a8452d21 Update dependency yeoman-generator to v5.9.0 (#8385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 12:56:41 +01:00
Laurent Cozic
9f5924984c Plugin Generator release v2.12.1 2023-06-28 15:13:26 +01:00
Laurent Cozic
6db5723a50 Setup new release 2.12 2023-06-28 15:12:32 +01:00
Laurent Cozic
1d0bcc435b Generator: Updated doc 2023-06-28 14:49:19 +01:00
Laurent Cozic
700158d83c Generator: Fixed incompatbility with latest Yeoman version 2023-06-28 14:48:52 +01:00
Laurent Cozic
df4e8c9f47 Generator: Add script updateVersion to update both manifest and package version numbers 2023-06-28 14:48:04 +01:00
renovate[bot]
ce6baccd82 Update dependency react-native-modal-datetime-picker to v15.0.1 (#8378)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-28 01:58:38 +00:00
renovate[bot]
0caf1fdd7b Update dependency react-native-modal-datetime-picker to v15 (#8377)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 22:03:22 +01:00
Laurent Cozic
adf1c5496e Lock file 2023-06-27 15:05:56 +01:00
Laurent Cozic
51b294e66b Releasing sub-packages 2023-06-27 15:05:03 +01:00
Laurent Cozic
893accf59c fix dep 2023-06-27 15:02:14 +01:00
renovate[bot]
2a10cd3333 Update dependency react-native-get-random-values to v1.9.0 (#8372)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 10:36:20 +01:00
Laurent Cozic
3ec257abc3 Plugin Generator release v2.11.1 2023-06-27 10:34:50 +01:00
Laurent Cozic
295756a528 Merge branch 'release-2.11' into dev 2023-06-27 10:33:22 +01:00
Laurent Cozic
5603900fc2 CLI v2.11.1 2023-06-27 10:29:24 +01:00
Laurent Cozic
e1195f7370 Lock file 2023-06-27 10:25:21 +01:00
Laurent Cozic
5625b15cb5 Releasing sub-packages 2023-06-27 10:24:24 +01:00
Arda Kılıçdağı
af4147ed58 All: Translation: Update tr_TR.po (#8368) 2023-06-27 02:53:18 -04:00
Harris Arvanitis
9e10261e0b All: Translation: Update el_GR.po (#8357) 2023-06-27 02:51:29 -04:00
Joplin Bot
487fecb16e Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-26 12:21:51 +00:00
Laurent Cozic
e0ce301c3f lock file 2023-06-26 13:00:45 +01:00
Laurent Cozic
bb474287e5 Merge branch 'release-2.11' into dev 2023-06-26 12:17:23 +01:00
pedr
583ae0385b Desktop: Fixes #8317: Removing Markdown when using 'Paste as Text' (#8351) 2023-06-26 12:00:47 +01:00
renovate[bot]
35a4eef87b Update dependency @electron/remote to v2.0.10 (#8365)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 02:20:40 +00:00
Laurent Cozic
e46ecdcb2b Android 2.11.31 2023-06-25 15:28:47 +01:00
Laurent Cozic
6036420bc6 iOS 12.11.5 2023-06-25 15:06:29 +01:00
Laurent Cozic
cd73661200 lock file 2023-06-25 14:52:55 +01:00
Laurent Cozic
5dbadbbff6 iOS 12.11.4 2023-06-25 14:07:09 +01:00
Laurent Cozic
2dc02fe0f2 All: Resolves #7686: Upgrade E2EE encryption method to AES-256 2023-06-25 14:04:42 +01:00
renovate[bot]
a474b403f9 Update dependency tap to v16.3.6 (#8359)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-25 00:50:38 +00:00
renovate[bot]
e9a8475ecf Update dependency pg to v8.11.0 (#8358)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-24 22:43:09 +01:00
github-actions[bot]
0f9bdf1ca0 @XarisA has signed the CLA in laurent22/joplin#8357 2023-06-23 20:43:15 +00:00
Joplin Bot
a7781f2a6b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-23 18:17:44 +00:00
Laurent Cozic
71144bb675 Tools: Fixed buildPluginDoc command 2023-06-23 18:18:25 +01:00
Laurent Cozic
6886f6fd39 Desktop release v2.11.11 2023-06-23 15:10:56 +01:00
Laurent Cozic
83610c01c0 Tools: Switch to @electron/notarize 2023-06-23 15:10:05 +01:00
Laurent Cozic
5b18edc8be Desktop release v2.11.10 2023-06-23 14:24:54 +01:00
Laurent Cozic
671fa542b4 Tools: Switch to @electron/notarize 2023-06-23 14:20:47 +01:00
pedr
4e4685b039 Tools: Creating a vscode configuration for debugging the server project (#8322) 2023-06-23 12:49:54 +01:00
renovate[bot]
e4023a349f Update dependency dayjs to v1.11.8 (#8355)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-22 15:28:00 +00:00
renovate[bot]
e7c37d17c1 Update dependency jquery to v3.7.0 (#8348)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-21 12:59:31 +01:00
Joplin Bot
d6c2b64a43 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-21 00:43:17 +00:00
Joplin Bot
10e49d8cd3 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-20 18:12:08 +00:00
Laurent Cozic
95d83a8ced Android 2.11.30 2023-06-20 17:51:05 +01:00
renovate[bot]
6b00c4e6ce Update dependency @react-native-community/datetimepicker to v7.1.0 (#8347)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-20 17:35:14 +01:00
Laurent Cozic
dc2def403c Tools: Only build one Android version 2023-06-20 16:14:48 +01:00
Laurent Cozic
89e2603f02 Android 2.11.29 2023-06-20 16:13:02 +01:00
Joplin Bot
35e03e2ad9 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-20 15:41:48 +01:00
Laurent Cozic
12e853b871 Doc: Update French translation 2023-06-20 15:41:39 +01:00
Laurent Cozic
5841596acb Android: Add support for Voice Typing for most languages (#8309) 2023-06-20 15:41:22 +01:00
Laurent Cozic
377e35b1af Mobile: Improved Vosk error handling 2023-06-20 15:33:53 +01:00
Laurent Cozic
a3181d4458 v28 2023-06-20 15:33:15 +01:00
Laurent Cozic
e057c7beea Tools: Only build one Android version 2023-06-20 15:31:58 +01:00
Laurent Cozic
60c25f88cf Chore: Server: Refactor error codes 2023-06-20 10:43:51 +01:00
Laurent Cozic
d532b9dffc Server v2.11.2 2023-06-20 09:41:19 +01:00
renovate[bot]
5a2310ff4d Update dependency react-redux to v8.0.7 (#8346)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-20 05:20:21 +00:00
Joplin Bot
472120d5ec Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-20 00:40:08 +00:00
Laurent Cozic
9de83bf922 Revert formidable update 2023-06-19 19:40:08 +01:00
Joplin Bot
96bd76e45e Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-19 18:15:15 +00:00
pedr
5564e2178a CI: Add a step to check if the Docker image is accepting HTTP requests (#8336) 2023-06-19 17:06:22 +01:00
renovate[bot]
9eb643f8f7 Update dependency formidable to v3 (#8334)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 17:02:25 +01:00
renovate[bot]
c2bdaddcec Update dependency nodemailer to v6.9.3 (#8338)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-18 12:53:27 +00:00
Laurent Cozic
17888a2da0 Server: Improve performance and reliability when adding an item 2023-06-18 10:38:54 +01:00
renovate[bot]
eda18c3860 Update dependency formidable to v2.1.2 (#8333)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-16 15:36:32 +01:00
Laurent Cozic
878bf13a0e Chore: Server: Convert migrations to arrow functions 2023-06-16 10:14:01 +01:00
Laurent Cozic
a8c21b2477 lock file 2023-06-16 10:03:47 +01:00
Laurent Cozic
b85bd8d296 Renovate ignore 2023-06-16 10:03:31 +01:00
Laurent Cozic
eb6d5690aa Renovate ignore 2023-06-16 09:26:16 +01:00
renovate[bot]
ebe00ea58b Update dependency react-redux to v8 (#8328)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-16 09:23:23 +01:00
renovate[bot]
e14a0b54f5 Update dependency styled-components to v5.3.11 (#8324)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-16 04:20:55 +00:00
renovate[bot]
2f0f63e2b1 Update dependency @react-native-community/geolocation to v3.0.6 (#8325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-16 00:31:15 +00:00
Laurent Cozic
048100ebb3 renovate 2023-06-15 23:16:57 +01:00
Laurent Cozic
7880d07868 Renovate ignore 2023-06-15 23:16:56 +01:00
renovate[bot]
9ba42b7919 Update dependency domhandler to v5 (#8321)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 22:06:26 +01:00
renovate[bot]
fcc7ed3ed4 Update dependency @react-native-community/geolocation to v3 (#8320)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 21:38:29 +01:00
renovate[bot]
c000d4f4b3 Update dependency @koa/cors to v4 (#8319)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 21:37:11 +01:00
Laurent Cozic
6e0c484441 Doc: Fixed layout 2023-06-15 19:10:33 +01:00
Laurent Cozic
753a25a5e1 Fix tests 2023-06-14 17:45:13 +01:00
Laurent Cozic
57b4198d2c All: Security: Prevent XSS when passing specially encoded string to a link 2023-06-14 16:55:54 +01:00
Laurent Cozic
2078fa4e40 Fix tests 2023-06-14 15:59:20 +01:00
Laurent Cozic
69826610a2 Desktop: Security: Prevent calling arbitrary commands via x-callback-url 2023-06-14 15:51:35 +01:00
Laurent Cozic
0f9727144f Desktop: Fixes #8316: Include more Rich Text editor commands in the menu 2023-06-14 14:57:12 +01:00
Joplin Bot
11355bfdc5 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-13 18:14:50 +00:00
Laurent Cozic
4d08d7385f Tools: Do not lock pull requests after merging 2023-06-13 18:08:32 +01:00
Laurent Cozic
ce7da882ee Android: Add support for Voice Typing for most languages (#8309) 2023-06-13 18:06:54 +01:00
Laurent Cozic
92c68882e2 Desktop: Resolves #8080: Add support for plugin user data (#8312) 2023-06-13 18:06:16 +01:00
renovate[bot]
6424832984 Update dependency ts-loader to v9.4.3 (#8311)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-12 20:47:12 +00:00
Laurent Cozic
3c0331eb6e Desktop: Fixes #8210: Display plugin console in dev mode 2023-06-12 17:30:47 +01:00
Laurent Cozic
1eeb5ab471 Mobile: Improved Vosk error handling 2023-06-11 16:13:36 +01:00
Joplin Bot
c77a0b4709 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-11 12:17:44 +00:00
Laurent Cozic
1b64688042 Doc: Update French translation 2023-06-11 12:20:13 +01:00
Joplin Bot
c082505f61 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-11 00:46:39 +00:00
Laurent Cozic
f555e528ba All: Resolves #7686: Upgrade E2EE encryption method to AES-256 2023-06-10 19:20:08 +01:00
Joplin Bot
96ff76fd1d Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-10 18:12:20 +00:00
Laurent Cozic
9ceb7b9c88 Mobile: Upgrade react-native-webview to v12 2023-06-10 17:58:55 +01:00
Marph
6dc8ad2ba6 Desktop: Resolves #3535: Configure Rich Text editor to handle the first table row as header (#8163) 2023-06-10 17:08:15 +01:00
renovate[bot]
152e354d87 Update dependency highlight.js to v11.8.0 (#8296)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-10 17:07:35 +01:00
Laurent Cozic
dbef391855 Disable RN auto-updates 2023-06-10 17:07:07 +01:00
Laurent Cozic
78f3f1c01a Mobile: Fixed text update issue when attaching a file to an empty note 2023-06-10 17:04:45 +01:00
Laurent Cozic
e7409145b6 Mobile: Upgrade to React Native 0.71 2023-06-10 17:03:34 +01:00
Calum Lind
bf8e34a0be Linux: Fixes #8297: Fix corrupted sidebar (#8298) 2023-06-10 14:03:26 +01:00
renovate[bot]
4aaea3fe71 Update dependency @react-native-community/datetimepicker to v7.0.1 (#8295)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 18:15:23 +00:00
Laurent Cozic
e5b4332f17 Android 2.11.26 2023-06-08 17:18:25 +01:00
Laurent Cozic
72a0adb434 Android: Fixes #8229: Fix alarms for latest Android versions 2023-06-08 16:43:06 +01:00
Laurent Cozic
37b745c69e Mobile: Fixes #8285: Fix sharing data with the app 2023-06-08 16:23:48 +01:00
Laurent Cozic
3338164f43 lock file 2023-06-08 16:02:42 +01:00
Laurent Cozic
98440beffa All: Fixes #8286: Allow certain HTML anchor tags 2023-06-08 15:18:46 +01:00
Laurent Cozic
0c6f779aab Desktop: Fixes #8287: Duplicated published notes retain the published note's label's color 2023-06-08 15:09:10 +01:00
Laurent Cozic
fb27ae991c Linux: Resolves #8289: Ask user to restart app after switching profile 2023-06-08 14:46:37 +01:00
Laurent Cozic
a41c9b6819 Renovate exclude 2023-06-08 14:46:36 +01:00
renovate[bot]
625812f7e6 Update dependency @react-native-community/datetimepicker to v7 (#8281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 14:37:32 +01:00
renovate[bot]
e8cee2907c Update dependency domutils to v3.1.0 (#8293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 13:50:57 +01:00
renovate[bot]
da25d10900 Update dependency style-loader to v3.3.3 (#8292)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 07:45:01 +00:00
renovate[bot]
9f01258341 Update dependency css-loader to v6.7.4 (#8291)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 05:23:18 +00:00
Joplin Bot
8608032243 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-06 18:17:20 +00:00
Laurent Cozic
bdbb362644 Tools: Fixed git-changelog 2023-06-06 16:43:46 +01:00
Laurent Cozic
30671e7a20 Desktop release v2.11.9 2023-06-06 16:34:13 +01:00
Laurent Cozic
8b578c5dde Desktop: Trying to fix white screen issue 2023-06-06 16:31:31 +01:00
Laurent Cozic
3792a5fb94 lock file 2023-06-06 16:31:12 +01:00
Laurent Cozic
fb28268582 fix 2023-06-06 12:27:54 +01:00
Laurent Cozic
be3c15c37c Doc: Add link to profile 2023-06-06 12:04:34 +01:00
Laurent Cozic
b34342f01e Tools: Improve git-changelog tag detection 2023-06-06 12:04:06 +01:00
renovate[bot]
19992ffcf9 Update buildTools (major) (#8266)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-06-06 10:55:02 +01:00
renovate[bot]
6c15940005 Update dependency tar to v6.1.15 (#8280)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 09:39:30 +00:00
Joplin Bot
7f0f745af3 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-06 00:43:31 +00:00
renovate[bot]
1d62003486 Update dependency react-native-safe-area-context to v4.5.3 (#8279)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 00:23:56 +00:00
renovate[bot]
fd373baeae Update dependency react-native-document-picker to v8.2.1 (#8278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 23:26:55 +00:00
Laurent Cozic
f880e12a26 Desktop release v2.11.8 2023-06-05 20:05:56 +01:00
Laurent Cozic
e81332e6b9 Desktop: Prevent double-initialisation of plugins 2023-06-05 20:05:00 +01:00
Laurent Cozic
bda8766564 Desktop release v2.11.7 2023-06-05 18:46:41 +01:00
Laurent Cozic
6d7b856d1d Desktop: Resolves #8083: Improved word count when em-dash is used 2023-06-05 18:35:34 +01:00
Laurent Cozic
90a8d704c1 Desktop: Resolves #8175: Add support for AVIF image format 2023-06-05 18:23:41 +01:00
Rio Sinnott
8dfcec249f Desktop: Fixes #8159: "New note" buttons so large they occlude Search (#8249) 2023-06-05 18:22:31 +01:00
Laurent Cozic
659f602a12 Revert "Desktop: Fixes #4124: Fix note list blank space display problems (#7888)"
This reverts commit 5c6e17bc89.

Appears to cause this regression (based on stacktrace):

https://github.com/laurent22/joplin/issues/8237
2023-06-05 17:56:12 +01:00
Laurent Cozic
45877f8b26 Desktop: Fixes #7484: Window is white on startup 2023-06-05 17:49:34 +01:00
Laurent Cozic
77505e3c75 Revert "Android: Fixes #7766: Support monochrome icons (#7772)"
This reverts commit fd578d1c36.

Ref: https://github.com/laurent22/joplin/issues/8273
2023-06-05 17:15:24 +01:00
renovate[bot]
dde7acc70f Update buildTools (#8264)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-06-04 18:34:32 +01:00
Laurent Cozic
531402cede Android 2.11.25 2023-06-03 17:47:00 +01:00
Laurent Cozic
56ca9d4125 Revert "Mobile: Fixes #8017: Fixed sync crash (#8056)"
This reverts commit b824ff5457.

Fixes error "Download interrupted" when downloading resources from
Joplin Cloud/Server.
2023-06-03 16:45:15 +01:00
Laurent Cozic
60b3921808 Android: Fix Vosk logic 2023-06-03 15:43:40 +01:00
Laurent Cozic
3a1759aabc Android 2.11.24 2023-06-02 16:37:34 +01:00
Laurent Cozic
ac732f4d1d Tools: Fixed Vosk release script 2023-06-02 15:47:42 +01:00
Laurent Cozic
7779879c6d Mobile: Write to note in realtime using voice typing 2023-06-02 15:46:04 +01:00
github-actions[bot]
c6a9837f1f @wimmers has signed the CLA in laurent22/joplin#8269 2023-06-02 14:27:03 +00:00
Laurent Cozic
6e49440b95 Android 2.11.23 2023-06-01 18:19:48 +01:00
Laurent Cozic
12746c5ff9 Revert "Mobile: Fixes #7918: Use react-native-drawer-layout instead of react-native-side-menu-updated (#7953)"
This reverts commit 40e0037d50.

It doesn't build on Android:

> Task :react-native-reanimated:buildCMakeRelWithDebInfo[arm64-v8a] FAILED
C/C++: ninja: error: '../../../../build/third-party-ndk/hermes/jni/arm64-v8a/libhermes.so',
needed by '../../../../build-main/intermediates/cxx/RelWithDebInfo/6w4f694p/obj/arm64-v8a/libreanimated.so',
missing and no known rule to make it
2023-06-01 17:35:27 +01:00
Laurent Cozic
7bd4a999a0 Update translations 2023-06-01 16:56:42 +01:00
Laurent Cozic
e48d55c3e5 Mobile: Auto-detect language on start 2023-06-01 16:48:02 +01:00
Laurent Cozic
54efc9f2f5 Chore: Revert AWS package upgrade due to failing mobile build 2023-06-01 16:13:08 +01:00
Laurent Cozic
963eeccf7b Fixed buid 2023-06-01 15:25:40 +01:00
Laurent Cozic
c89edd7b22 Tools: Implement "prefer-object-spread" eslint rule 2023-06-01 12:02:36 +01:00
Laurent Cozic
804d674d37 lock file 2023-06-01 11:26:02 +01:00
Laurent Cozic
514091eb41 Tools: Install rsync on CI 2023-06-01 09:44:27 +01:00
renovate[bot]
cd506bd3f1 Update aws (#8265)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-01 05:03:41 +00:00
Joplin Bot
e2d47d7d0d Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-06-01 00:54:11 +00:00
Laurent Cozic
7a9afd4aff Desktop release v2.11.6 2023-05-31 20:33:57 +01:00
Laurent Cozic
e647775608 All: When resetting the master password, also create a new master key with that password 2023-05-31 20:31:44 +01:00
Laurent Cozic
577aa519e0 All: Fixes #8254: Improve selection of active E2EE key 2023-05-31 20:17:22 +01:00
renovate[bot]
03cfef6a8d Update dependency react-native-reanimated to v3.1.0 (#8255)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-31 19:39:01 +01:00
github-actions[bot]
1219a30dff @cwilby has signed the CLA in laurent22/joplin#8259 2023-05-31 02:07:47 +00:00
Linkosred
801719e3ba Doc: Update faq_joplin_cloud.md (#8250)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-05-29 14:04:05 +01:00
Laurent Cozic
02098dbd79 iOS 12.11.3 2023-05-29 13:28:04 +01:00
Laurent Cozic
e149e4b5fd Revert "Mobile: Fix "Download interrupted" error"
This reverts commit b023f58497.

Due to:

https://discourse.joplinapp.org/t/the-latest-ios-version-of-joplin-12-11-2-works-weird/31045
2023-05-29 13:27:10 +01:00
Laurent Cozic
b19f1a1023 Mobile: Fixed regression in biometric check
Due to f0ade02435
2023-05-29 13:27:09 +01:00
Laurent Cozic
192bfb5555 iOS: Fixed broken domain detection 2023-05-29 13:27:07 +01:00
Andrey Mukamolov
fd578d1c36 Android: Fixes #7766: Support monochrome icons (#7772) 2023-05-29 11:36:47 +01:00
jcgurango
230e7f6914 Mobile: Resolves #8193: Implement parenting of notebooks (#7980) 2023-05-29 11:31:21 +01:00
GitStart
12bba9da29 Desktop: Fixes #7933: Don't display "obsolete encryption method" message if the key is disabled (#8025)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-05-29 11:27:53 +01:00
Calum Lind
03424f76ea Desktop: Fixes #7506: Improve sidebar workaround for Linux w/Intel GPU (#8126) 2023-05-29 11:20:11 +01:00
Christopher O'Toole
745849023d Desktop: Fixes #6431: Preserve Table Alignment When Editing a Note With the Rich Text Editor (#8214) 2023-05-29 11:10:17 +01:00
github-actions[bot]
3e3b1764b7 @rio-codes has signed the CLA in laurent22/joplin#8249 2023-05-28 03:55:26 +00:00
Joplin Bot
902f0c3bf7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-28 00:43:11 +00:00
Joplin Bot
0f51249a76 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-27 18:14:29 +00:00
Laurent Cozic
3621e252d1 Desktop release v2.11.5 2023-05-27 17:24:51 +01:00
Laurent Cozic
5669b1f04f iOS 12.11.2 2023-05-27 16:33:33 +01:00
Laurent Cozic
91c99960ba Chore: iOS: Fix build 2023-05-27 16:30:25 +01:00
Laurent Cozic
b309504ffb lock file 2023-05-27 14:46:21 +01:00
Laurent Cozic
22ab4b7473 iOS 12.11.1 2023-05-27 14:38:02 +01:00
Laurent Cozic
04ea9343b0 Doc: Mention Joplin Cloud in download page 2023-05-27 14:28:02 +01:00
Laurent Cozic
b93f91078b Doc: Added Liberapay method 2023-05-27 12:43:46 +01:00
renovate[bot]
b82e4be5c5 Update dependency @react-native-community/netinfo to v9.3.10 (#8239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-25 23:25:58 +00:00
Joplin Bot
77a6e6f617 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-25 18:16:45 +00:00
Laurent Cozic
959ae59af0 Doc: Add sponsor 2023-05-25 19:00:18 +01:00
Joplin Bot
98dd926cb9 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-25 12:20:03 +00:00
Joplin Bot
8197c7aa7a Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-25 06:18:05 +00:00
renovate[bot]
1687adf015 Update dependency react-select to v5.7.3 (#8230)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-23 11:39:08 +00:00
renovate[bot]
7542ca907c Update dependency tar to v6.1.14 (#8228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-23 02:19:51 +00:00
renovate[bot]
1652b06e8c Update dependency jsdom to v21.1.2 (#8223)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-21 18:13:20 +00:00
Milo Ivir
1a835ef094 All: Translation: Update hr_HR.po (#8219) 2023-05-20 18:27:29 -04:00
Joplin Bot
575f55b22c Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-20 18:15:16 +00:00
Joplin Bot
d105387ece Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-20 06:16:16 +00:00
renovate[bot]
587eceb7c0 Update dependency react-native-safe-area-context to v4.5.2 (#8218)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-19 19:51:19 +00:00
Laurent Cozic
c90d7756c0 Renovate - exclude xml2js 2023-05-19 20:50:37 +01:00
Laurent Cozic
9e90d9016d All: Security: Prevent XSS by sanitizing certain HTML attributes 2023-05-19 11:00:31 +01:00
Laurent Cozic
ccec93eaa3 fix tests 2023-05-19 10:44:49 +01:00
github-actions[bot]
7bf823e0df @christopher-o-toole has signed the CLA in laurent22/joplin#8213 2023-05-18 23:44:24 +00:00
Daniel Junho
b533d8d164 Linux: Fix the ldconfig dependency (#8205)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
2023-05-18 12:46:58 -04:00
ScriptInfra
97477bb751 Doc: Update README.md (#8197)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
2023-05-18 00:49:06 -04:00
renovate[bot]
9cf863979b Update dependency yargs to v17.7.2 (#8207)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-18 00:01:12 +00:00
Laurent Cozic
9ffe990c0b Fixed tests 2023-05-17 19:59:22 +01:00
Joplin Bot
2c57e949b9 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-17 18:16:02 +00:00
Laurent Cozic
a7e185eb11 Server: Fixed copyright year 2023-05-17 18:23:38 +01:00
Laurent Cozic
091eff9bc2 Server: Allow giving a different version number to forks 2023-05-17 18:16:29 +01:00
Laurent Cozic
a04be2b28a Tools: Ignore unsupport tags 2023-05-17 17:38:37 +01:00
Laurent Cozic
caf66068bf Desktop, Mobile: Security: Disable SVG tag support in editor to prevent XSS 2023-05-17 16:00:24 +01:00
Laurent Cozic
8deba24d7d Chore: Improve TS types 2023-05-17 15:46:35 +01:00
Laurent Cozic
84b130e0cb Server: Process orphaned items 2023-05-17 15:11:55 +01:00
github-actions[bot]
e6209f449e @sandrotanner has signed the CLA in laurent22/joplin#8204 2023-05-17 13:32:16 +00:00
Joplin Bot
faa4c5b9fc Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-17 12:20:02 +00:00
Laurent Cozic
df9bfc7635 Doc: Describe how to escape Markdown in coding style 2023-05-17 10:04:31 +01:00
renovate[bot]
a46648f1ee Update dependency sharp to v0.32.1 (#8128)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-17 09:36:45 +01:00
github-actions[bot]
215434bb4f @ScriptInfra has signed the CLA in laurent22/joplin#8197 2023-05-16 21:29:02 +00:00
jcgurango
40e0037d50 Mobile: Fixes #7918: Use react-native-drawer-layout instead of react-native-side-menu-updated (#7953) 2023-05-16 20:51:51 +01:00
renovate[bot]
6afd839ae8 Update dependency lint-staged to v13.2.2 (#8196)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 18:02:46 +00:00
renovate[bot]
63595d2469 Update dependency @react-native-community/push-notification-ios to v1.11.0 (#8195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 15:18:08 +01:00
Joplin Bot
d715e1ba6b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-16 12:18:50 +00:00
Daniel Junho
fb8a0c9ea9 Linux: Check libfuse2 dependency in install script (#8079) 2023-05-16 11:57:50 +01:00
github-actions[bot]
ad20eba65e @laurent22 has signed the CLA in laurent22/joplin#8189 2023-05-16 10:56:45 +00:00
renovate[bot]
ea73e20115 Update dependency react-native-paper to v5.8.0 (#8183)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 11:43:30 +01:00
renovate[bot]
1b8e9271a6 Update dependency markdown-it-multimd-table to v4.2.2 (#8180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 11:43:21 +01:00
renovate[bot]
3a8a7a592d Update dependency nodemailer to v6.9.2 (#8164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 11:43:06 +01:00
renovate[bot]
9d5c63de4f Update dependency sass to v1.62.1 (#8119)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 11:42:35 +01:00
Laurent Cozic
e37c95b9e5 Tools: Set pruneBranchAfterAutomerge for Renovate 2023-05-16 11:40:18 +01:00
Laurent Cozic
201c7d893e Desktop release v2.11.4 2023-05-16 10:26:01 +01:00
Laurent Cozic
c12108d1ac Desktop: Fixes #8087: Fix slow startup time 2023-05-16 10:25:45 +01:00
Laurent Cozic
6ffd1046bd Desktop release v2.11.3 2023-05-16 09:32:38 +01:00
Laurent Cozic
d4f49d6a02 CI: Fix Android build 2023-05-15 19:58:59 +01:00
Laurent Cozic
cff24af099 Server v2.11.1 2023-05-15 18:16:42 +01:00
Laurent Cozic
b99ba85acd Fixed tests 2023-05-15 18:14:26 +01:00
Laurent Cozic
a0b707cbda Desktop, Server: Improved handling of items with duplicate IDs 2023-05-15 17:49:26 +01:00
Joplin Bot
1d7ffe358e Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-14 18:15:33 +00:00
Laurent Cozic
9160f0e2a2 Android 2.11.22 2023-05-14 14:49:59 +01:00
Laurent Cozic
92272533e5 Merge branch 'dev' of github.com:laurent22/joplin into dev 2023-05-14 14:34:27 +01:00
Laurent Cozic
648e091523 Chore: Fix Android release script 2023-05-14 14:33:13 +01:00
Laurent Cozic
b023f58497 Mobile: Fix "Download interrupted" error 2023-05-14 14:31:55 +01:00
Laurent Cozic
c639791d4f Include yarn patches 2023-05-14 14:24:58 +01:00
Joplin Bot
6d52288e28 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-14 12:19:54 +00:00
Laurent Cozic
3e2f4b163b Android 2.11.21 2023-05-14 12:20:01 +01:00
renovate[bot]
e0dbd198d8 Update dependency react-native-paper to v5.6.0 (#8181)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-13 18:40:18 +01:00
Laurent Cozic
a76c5c8746 Tools: Allow publishing varients 2023-05-13 18:25:29 +01:00
Laurent Cozic
20b43ce56e fix 2023-05-13 16:31:24 +01:00
Laurent Cozic
8215ce14c6 Tools: Allow different Android variants 2023-05-13 15:54:17 +01:00
renovate[bot]
3fead0a8a7 Update dependency styled-components to v5.3.10 (#8178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-13 05:50:55 +00:00
Jonatan
c8bf3e8583 All: Translation: Update sv.po (#8169) 2023-05-12 13:57:39 -04:00
Dmitriy Q
42dee6c275 All: Translation: Update ru_RU.po (#8161) 2023-05-12 13:56:10 -04:00
Laurent Cozic
6f3f866f78 Android 2.11.16 2023-05-12 13:44:15 +01:00
Laurent Cozic
adf2e7322d fix 2023-05-12 13:18:29 +01:00
Laurent Cozic
0df170926a Tools: Restore content after patching Android app 2023-05-12 13:18:28 +01:00
Laurent Cozic
20a26732a9 Tools: Restore content after patching Android app 2023-05-12 13:18:27 +01:00
Laurent Cozic
0da3e91a29 Tools: Exclude Vosk model files when building regular app 2023-05-12 13:17:01 +01:00
renovate[bot]
9ad56dc373 Update dependency gettext-extractor to v3.7.2 (#8167)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-12 05:32:43 +00:00
Arda Kılıçdağı
29dab26dce All: Translation: Update tr_TR.po (#8162)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-05-11 18:22:36 -04:00
github-actions[bot]
10e8fbcdab @Ardakilic has signed the CLA in laurent22/joplin#8162 2023-05-11 19:11:11 +00:00
Laurent Cozic
6c4f566765 Doc: Fix download links 2023-05-11 19:12:39 +01:00
Joplin Bot
78df302e86 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-11 17:55:45 +00:00
Laurent Cozic
f52dd4f098 Doc: Update download links 2023-05-11 18:44:50 +01:00
github-actions[bot]
dbab786c7b @marph91 has signed the CLA in laurent22/joplin#8163 2023-05-11 14:17:59 +00:00
Laurent Cozic
3eb44d27b2 Mobile: Sync as soon as the app starts, and immediately after changing a note 2023-05-11 14:58:19 +01:00
Laurent Cozic
52bea115ac Tools: Allow uploading Android version to different repo 2023-05-11 14:48:33 +01:00
Laurent Cozic
19bdda25c6 Desktop: Security: Prevent XSS and potential RCE when using a special HTML tag 2023-05-11 14:17:37 +01:00
Laurent Cozic
b26bc9ed5f Desktop: Security: Fixed possible XSS injection 2023-05-10 16:27:16 +01:00
Laurent Cozic
865cedc24f Android 2.11.14 2023-05-10 13:28:43 +01:00
Laurent Cozic
33f0811ad2 Server: Resolves #8153: Allow setting NTP server using NTP_SERVER env variable 2023-05-10 12:50:48 +01:00
Laurent Cozic
8cedf27fea Desktop, Mobile: Resolves #8154: Translate Welcome notes 2023-05-10 12:20:04 +01:00
Laurent Cozic
052a829167 Desktop: Auto-detect locale on startup 2023-05-10 12:20:03 +01:00
Laurent Cozic
5371c97ccd Chore: Refactor build-welcome script 2023-05-10 12:20:02 +01:00
Joplin Bot
c53b957293 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-09 18:17:54 +00:00
Laurent Cozic
e6f8dc96df Fixed CI 2023-05-09 17:21:40 +01:00
Laurent Cozic
21648b1b1b Desktop: Fixes #8149: Application cannot be installed on Windows 10 in some cases 2023-05-09 12:56:23 +01:00
Laurent Cozic
83db6f6596 Desktop release v2.11.2 2023-05-09 11:13:38 +01:00
Laurent Cozic
3adfa574c0 Desktop: Fixes #8149: Application cannot be installed on Windows 10 in some cases 2023-05-09 11:13:23 +01:00
Laurent Cozic
4d0ffc5beb clean up 2023-05-09 11:12:53 +01:00
Laurent Cozic
69f9b160dd Chore: Cleanup Android release script 2023-05-09 11:01:43 +01:00
Laurent Cozic
c17b02cfb5 Android 2.11.13 2023-05-09 08:49:00 +01:00
Laurent Cozic
6dd57b63a6 Chore: Enable Hermes again on Android to try to fix crash 2023-05-08 21:03:11 +01:00
Laurent Cozic
248c8014c8 Android 2.11.12 2023-05-08 21:02:28 +01:00
Joplin Bot
5fe2766a6b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-08 18:16:06 +00:00
Laurent Cozic
000e0ad517 Chore: Android: Remove non longer needed joplin/react-native-vosk package 2023-05-08 18:54:23 +01:00
Laurent Cozic
c047375143 Chore: Android: Trying to fix random crash 2023-05-08 18:44:52 +01:00
Laurent Cozic
bd9e62cbd2 Android 2.11.11 2023-05-08 18:27:18 +01:00
Laurent Cozic
5ecae17538 Mobile: Tells whether Hermes engine is enabled or not 2023-05-08 17:50:19 +01:00
Laurent Cozic
35037e2dc9 fix tests 2023-05-08 17:30:30 +01:00
Laurent Cozic
059202be09 Desktop: Fixes #8072: Enter Key No Longer Saves and Closes The Tag Dialog 2023-05-08 17:07:55 +01:00
Laurent Cozic
6672f63981 Desktop: Fixes #8143: Fixes crash when using multiple profiles along with certain plugins 2023-05-08 16:45:18 +01:00
Laurent Cozic
f390eca4de Desktop: Fixes #8143: Fixes crash when using multiple profiles along with certain plugins 2023-05-08 15:34:38 +01:00
Joplin Bot
edc5e33559 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-08 13:12:39 +00:00
Laurent Cozic
a4b81edb5a Doc: Fix news page 2023-05-08 13:12:57 +01:00
Joplin Bot
fc5f338e16 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-08 11:38:41 +00:00
Laurent Cozic
767e380144 Doc: Release notes for 2.10 2023-05-08 12:24:55 +01:00
Laurent Cozic
60aff6ae77 Android 2.11.10 2023-05-08 12:09:28 +01:00
Laurent Cozic
345d9da7f2 Update translations 2023-05-08 10:56:16 +01:00
Laurent Cozic
98d45b1b81 Chore: Make text translatable 2023-05-08 10:38:52 +01:00
Joplin Bot
2cbf12bf0b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-08 06:17:54 +00:00
Laurent Cozic
968529f7e8 Android 2.11.9 2023-05-07 20:04:55 +01:00
Laurent Cozic
b1b7c3903f Update renovate.json5 2023-05-07 18:58:56 +01:00
Laurent Cozic
530a620d68 Chore: Fix Android buiold 2023-05-07 18:29:10 +01:00
Laurent Cozic
1f2ecd08eb Android 2.11.8 2023-05-07 18:26:16 +01:00
Laurent Cozic
d5eeb12ce7 Android: Fix voice typing 2023-05-07 17:53:19 +01:00
Laurent Cozic
e9e9986978 Mobile: Disable Hermes engine 2023-05-07 17:52:58 +01:00
Laurent Cozic
d44f212b95 Android 2.11.7 2023-05-07 15:29:58 +01:00
Laurent Cozic
47be6bcde3 Chore: Mobile: Fixed typo 2023-05-07 14:56:02 +01:00
Laurent Cozic
ef256a82ab Android 2.11.6 2023-05-07 14:53:51 +01:00
Laurent Cozic
b4d56f42f7 Chore: Disable Hermes to try to debug crash
Ref: https://github.com/facebook/react-native/issues/29165
2023-05-07 14:24:40 +01:00
Laurent Cozic
c1598c1a59 Doc: Update Android changelog 2023-05-07 14:24:26 +01:00
Laurent Cozic
3b6decfaf6 lock file 2023-05-07 12:48:30 +01:00
Laurent Cozic
5494e8c3dc Mobile: Improved Vosk support (beta, fr only) (#8131) 2023-05-07 12:05:41 +01:00
renovate[bot]
39059ae6bf Update dependency reselect to v4.1.8 (#8137)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-07 02:10:24 +00:00
renovate[bot]
5773f63664 Update dependency react-native-share to v8.2.2 (#8130)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-04 18:03:17 +00:00
renovate[bot]
5698c30d1a Update dependency sharp to v0.32.0 (#8124)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-04 12:12:27 +01:00
github-actions[bot]
218d69cf38 @cas-- has signed the CLA in laurent22/joplin#8126 2023-05-04 08:42:05 +00:00
renovate[bot]
00369fd613 Update dependency koa to v2.14.2 (#8111)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-03 16:11:52 +00:00
Laurent Cozic
ef86e01cd6 Android 2.11.4 2023-05-03 13:09:52 +01:00
Laurent Cozic
efd9f740ca Tools: Fixed git-changelog logic 2023-05-03 12:47:40 +01:00
Laurent Cozic
36c121523a Android: Add support for offline speech to text (Beta - FR only) (#8115) 2023-05-03 12:19:43 +01:00
Laurent Cozic
991c12025b Mobile: Fixes issue where the note body is not updated after attaching a file 2023-05-03 11:45:19 +01:00
renovate[bot]
f1d6945cd5 Update dependency sass to v1.60.0 (#8116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-03 09:35:15 +01:00
Laurent Cozic
2ebebd1dfa Doc: Fix image 2023-05-03 09:33:22 +01:00
Linkosred
d955ed464e Update faq_joplin_cloud.md (#8113) 2023-05-02 14:42:38 +01:00
github-actions[bot]
b7695115da @Linkosred has signed the CLA in laurent22/joplin#8110 2023-05-02 09:54:29 +00:00
renovate[bot]
f274678ad7 Update dependency react-native-document-picker to v8.2.0 (#8107)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-01 15:01:06 +01:00
renovate[bot]
5ff0309586 Update aws (#8106)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-01 07:36:51 +00:00
Joplin Bot
ffb6c25ce7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-05-01 00:39:43 +00:00
renovate[bot]
7237ae319a Update dependency gettext-extractor to v3.7.1 (#8102)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-30 20:36:51 +00:00
Jonatan
cdd5a911a9 All: Translation: Update sv.po (#8103) 2023-04-30 11:01:25 -04:00
github-actions[bot]
66b53f013d @reportxx has signed the CLA in laurent22/joplin#8103 2023-04-30 11:19:00 +00:00
Laurent Cozic
4d9ffffe56 Doc: Update Paypal link 2023-04-30 10:50:14 +01:00
Laurent Cozic
c08f7de6bb Update architecture.md 2023-04-29 14:39:15 +01:00
Laurent Cozic
77789c0b17 Doc: Added architecture document 2023-04-29 11:40:13 +01:00
renovate[bot]
be7056ff59 Update dependency react-native-safe-area-context to v4.5.1 (#8097)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-28 22:30:07 +00:00
renovate[bot]
274a55a31f Update dependency lint-staged to v13.2.1 (#8091)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-28 01:07:50 +00:00
Joplin Bot
32977c4e3f Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-27 12:21:00 +00:00
renovate[bot]
075b1626bd Update dependency @react-native-community/netinfo to v9.3.9 (#8086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-27 12:19:05 +00:00
Joplin Bot
fd6538fdc7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-27 00:42:00 +00:00
Torgny Bjers
b897191cc8 Doc: add note about reference links (#8036)
Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
2023-04-26 19:01:25 -04:00
Laurent Cozic
31897581d3 Desktop: Resolves #8028: Remove custom PDF viewer to reduce application size 2023-04-26 21:45:02 +01:00
Douglas Leão
6c1820edc0 All: Translation: Update pt_BR.po (#8077) 2023-04-26 09:53:09 -04:00
github-actions[bot]
cfe4c8c6f4 @djunho has signed the CLA in laurent22/joplin#8079 2023-04-24 10:05:37 +00:00
github-actions[bot]
b83165f9e5 @DeeJayLSP has signed the CLA in laurent22/joplin#8077 2023-04-24 04:57:05 +00:00
Laurent Cozic
7706f9058b Chore: Trying to fix CI error "TypeError: Cannot redefine property: performance" 2023-04-23 22:58:43 +01:00
Laurent Cozic
03222ba1b2 Revert "Chore: Trying to fix CI error "TypeError: Cannot redefine property: performance""
This reverts commit d4f49db342.

Wrong fix
2023-04-23 22:56:24 +01:00
Laurent Cozic
d4f49db342 Chore: Trying to fix CI error "TypeError: Cannot redefine property: performance" 2023-04-23 22:43:10 +01:00
Laurent Cozic
40e1b0559e Doc: Allow translating documentation 2023-04-23 22:33:15 +01:00
Laurent Cozic
738f1decbb Chore: Add types to search engine 2023-04-23 10:07:38 +01:00
jcgurango
e5a364d052 Chore: Mobile: Convert note-list.js to NoteList.tsx (#8064) 2023-04-23 10:07:28 +01:00
Laurent Cozic
357a3e2e7b Chore: Add types to search engine 2023-04-23 10:05:13 +01:00
Joplin Bot
af91fd99cc Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-22 00:39:14 +00:00
Joplin Bot
3855f60a0d Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-21 18:18:40 +00:00
Arun Kumar
079b379e7a Desktop: Resolves #8028: Compress installer to reduce size (#8068) 2023-04-20 09:02:04 +01:00
github-actions[bot]
e23e036677 @Wladefant has signed the CLA in laurent22/joplin#8069 2023-04-19 12:28:56 +00:00
Arun Kumar
b824ff5457 Mobile: Fixes #8017: Fixed sync crash (#8056) 2023-04-17 15:17:15 +03:00
renovate[bot]
3669a1b5d6 Update dependency react-native-paper to v5.5.2 (#8054)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-16 23:41:05 +00:00
Laurent Cozic
b93f9aaf01 Update terminal.md 2023-04-16 13:13:06 +03:00
renovate[bot]
8679290206 Update dependency react-native-paper to v5.5.1 (#8037)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-14 22:36:08 +00:00
Joplin Bot
4acec5c6c7 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-14 18:18:49 +00:00
Joplin Bot
f1b03453a4 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-14 12:20:07 +00:00
github-actions[bot]
7972dd5556 @simonla has signed the CLA in laurent22/joplin#8042 2023-04-11 19:03:07 +00:00
Laurent Cozic
4842500f0a Tools: Increase renovate stability days 2023-04-10 13:00:07 +02:00
renovate[bot]
84c7f28ec5 Update dependency react-native-paper to v5.5.0 (#8035)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 12:57:53 +02:00
github-actions[bot]
f3eea43d24 @tbjers has signed the CLA in laurent22/joplin#8036 2023-04-10 02:35:07 +00:00
Joplin Bot
8babaddbcb Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-09 12:21:18 +00:00
Laurent Cozic
13cdaabb17 Android 2.11.2 2023-04-09 14:07:14 +02:00
renovate[bot]
a94aa21088 Update dependency slugify to v1.6.6 (#8019)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2023-04-09 12:56:05 +01:00
Henry Heino
6116bed4e3 Mobile: Resolve #8022: Editor syntax highlighting was broken (#8023) 2023-04-09 12:55:47 +01:00
Arun Kumar
fabd0b4dda Desktop, Mobile: Fixes #7940: Removed MasterKey from Sync Status report (#8026) 2023-04-09 12:54:48 +01:00
Laurent Cozic
6b72f86e7b Mobile: Security: Prevent bypassing fingerprint lock on certain devices 2023-04-09 11:29:33 +02:00
Joplin Bot
02cf546124 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-09 06:17:13 +00:00
renovate[bot]
eecb012d64 Update dependency @react-native-community/netinfo to v9.3.8 (#8033)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-09 03:02:24 +00:00
Laurent Cozic
04e9b40769 Android 2.11.1 2023-04-08 10:51:00 +02:00
Laurent Cozic
efdbaeb397 Mobile: Add log info for biometrics feature 2023-04-08 10:40:53 +02:00
Laurent Cozic
46425b920c Doc: Added some doc about Joplin Server items 2023-04-07 16:49:54 +02:00
Laurent Cozic
f5be43c2ac Doc: Add info about synchronisation process 2023-04-07 16:36:59 +02:00
github-actions[bot]
080541a2fe @Letty has signed the CLA in laurent22/joplin#8029 2023-04-07 10:05:21 +00:00
github-actions[bot]
7dc638edf4 @gitstart has signed the CLA in laurent22/joplin#8024 2023-04-06 21:46:34 +00:00
Laurent Cozic
3b686194d8 Tools: Pass APPLE_APP_SPECIFIC_PASSWORD to CI 2023-04-06 14:02:45 +02:00
Laurent Cozic
5c2640f88f Tools: Simplify root workspace build 2023-04-06 12:11:45 +02:00
Laurent Cozic
eca0f92dff Disable again 2023-04-06 11:46:06 +02:00
Laurent Cozic
260fa6c038 Clipper release v2.11.2 2023-04-06 11:44:55 +02:00
Laurent Cozic
8ec6bc9138 Tools: Simplify dependencies of root package 2023-04-06 11:29:59 +02:00
Laurent Cozic
93fa92369b Tools: Removing packages/tools dependency from root workspace 2023-04-06 11:02:22 +02:00
Laurent Cozic
bc6c5ab7a7 Chore: Make utils package a fixed version again (too many problems otherwise) 2023-04-06 10:02:49 +02:00
Laurent Cozic
1826625e4f lock file 2023-04-05 23:19:25 +02:00
Laurent Cozic
20b8fb2719 Missing package 2023-04-05 22:48:17 +02:00
Laurent Cozic
f813e71b29 Chore: Access utils lib with relative path 2023-04-05 22:35:47 +02:00
Laurent Cozic
02422a6e31 Chore: Access utils lib with relative path 2023-04-05 22:35:46 +02:00
renovate[bot]
69a34e87f3 Update dependency nanoid to v3.3.6 (#7973)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-05 21:16:55 +01:00
Joplin Bot
cbeaa16b61 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-05 18:18:02 +00:00
Joplin Bot
05917ac142 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-05 12:24:26 +00:00
Laurent Cozic
0c8de68b80 Desktop: Fixed issue with text disappearing within plugin-created zones when searching for text
Ref: https://github.com/joplin/plugin-abc-sheet-music/issues/5
2023-04-04 21:09:58 +02:00
Joplin Bot
44d93d52d3 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-04 18:30:09 +00:00
Laurent Cozic
073bec9e8c CI: Trying to fix website builder 2023-04-04 20:16:35 +02:00
Laurent Cozic
e6a8c2bea5 CI: Trying to fix website builder 2023-04-04 19:47:54 +02:00
Laurent Cozic
81c316cd2c CI: Trying to fix website builder 2023-04-04 19:24:03 +02:00
Laurent Cozic
659c851960 CI: Trying to fix website builder 2023-04-04 17:01:34 +02:00
Laurent Cozic
572701d9a0 Tools: Fix website builder 2023-04-04 12:04:42 +02:00
Laurent Cozic
66ef37bd4e Chore: Disable flaky test 2023-04-03 20:42:31 +02:00
Laurent Cozic
9ddf75604d Doc: Remove sponsor 2023-04-03 20:39:31 +02:00
Laurent Cozic
3ed7e1d7e8 Doc: Fix sponsor thumbnails 2023-04-03 20:39:31 +02:00
Laurent Cozic
b2b412105a Merge branch 'release-2.10' into dev 2023-04-03 18:30:55 +02:00
Laurent Cozic
60a3c4f65e lock file 2023-04-03 18:26:04 +02:00
Laurent Cozic
9645414c17 Desktop release v2.10.13 2023-04-03 18:10:54 +02:00
Henry Heino
af0136ef39 All: Fixes #7986: Fix OneDrive sync attempting to call method on null variable (#7987) 2023-04-03 18:09:52 +02:00
Self Not Found
b76586c4fd All: Fixes #7851: Encode the non-ASCII characters in OneDrive URI (#7868) 2023-04-03 18:09:10 +02:00
Laurent Cozic
376e4ebde0 Desktop: Fixed display of installed plugins in About box 2023-04-03 18:01:06 +02:00
renovate[bot]
1439b8787f Update dependency react-native-image-picker to v5.3.1 (#8015)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-03 11:51:02 +01:00
renovate[bot]
b8854a99be Update dependency @lezer/highlight to v1.1.4 (#8014)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-03 10:46:19 +00:00
renovate[bot]
6cf02173dc Update dependency gettext-extractor to v3.7.0 (#8012)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-03 10:56:44 +01:00
renovate[bot]
4d8a53d8c9 Update dependency react-native-image-picker to v5.3.0 (#8010)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-03 10:56:25 +01:00
renovate[bot]
7f43718e1d Update dependency react-select to v5.7.2 (#8009)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-02 07:09:26 +00:00
renovate[bot]
690ce637b1 Update dependency nodemon to v2.0.22 (#8008)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-02 03:42:02 +00:00
renovate[bot]
4d023e679e Update dependency turndown to v7.1.2 (#8006)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-01 16:46:25 +00:00
renovate[bot]
6e220a978f Update dependency jsdom to v21.1.1 (#8007)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-01 16:00:34 +02:00
renovate[bot]
39757cd90e Update dependency sass to v1.59.3 (#8005)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-01 05:46:20 +00:00
renovate[bot]
5ccbbea757 Update dependency react-native-paper to v5.4.1 (#8004)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-31 22:56:15 +00:00
Arun Kumar
309222c082 Desktop: Fixes #8000: Fixed Linux tag display issues (#8002) 2023-03-31 23:13:59 +02:00
renovate[bot]
50f5fe2c91 Update dependency sass to v1.59.2 (#8001)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-31 23:12:25 +02:00
renovate[bot]
eacae83182 Update dependency react-native-paper to v5.4.0 (#7997)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-31 23:12:05 +02:00
Laurent Cozic
403d770b1d Tools: Trying to prevent CI from running on forks 2023-03-30 22:57:58 +01:00
Laurent Cozic
a481bf1b53 Tools: Trying to prevent CI from running on forks 2023-03-30 22:55:14 +01:00
renovate[bot]
0d32570c9e Update dependency fs-extra to v11.1.1 (#7996)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-30 20:11:29 +00:00
Fejby
f017e99b02 All: Translation: Update cs_CZ.po (#7999) 2023-03-30 14:40:05 -04:00
github-actions[bot]
a89d64d435 @Fejby has signed the CLA in laurent22/joplin#7999 2023-03-30 18:21:47 +00:00
github-actions[bot]
3a27086534 @TahaNw has signed the CLA in laurent22/joplin#7998 2023-03-30 17:33:50 +00:00
Laurent Cozic
413c1e41b5 Revert "Chore: Mac binary signing tweaks for embedded plugins (#7988)"
This reverts commit cf4008951d.

Not working.

Ref: https://github.com/laurent22/joplin/issues/7934#issuecomment-1490632038
2023-03-30 18:24:25 +01:00
Henry Heino
8b879464b8 All: Fixes #7986: Fix OneDrive sync attempting to call method on null variable (#7987) 2023-03-30 17:41:29 +01:00
renovate[bot]
97c9bbc1fe Update dependency react-native-paper to v5.3.1 (#7977) 2023-03-30 17:38:18 +01:00
renovate[bot]
e5bebef7b2 Update dependency lint-staged to v13.2.0 (#7994) 2023-03-30 17:38:06 +01:00
renovate[bot]
73752c4b3f Update dependency pg to v8.10.0 (#7978) 2023-03-30 17:37:46 +01:00
Laurent Cozic
dcf7c9838d Desktop release v2.11.1 2023-03-30 17:13:20 +01:00
Laurent Cozic
f325e7694b Chore: Prepare v2.11 2023-03-30 17:13:06 +01:00
Arun Kumar
75d204c9ca Desktop: Resolves #6101: Added export graph button for Mermaid (#7958) 2023-03-30 16:58:48 +01:00
Arun Kumar
cf4008951d Chore: Mac binary signing tweaks for embedded plugins (#7988) 2023-03-30 16:57:22 +01:00
renovate[bot]
d67818d096 Update dependency react-select to v5.7.1 (#7993)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-30 14:30:20 +00:00
Laurent Cozic
6aaea8ad4f Renovate conf 2023-03-26 16:58:29 +01:00
github-actions[bot]
de41278096 @HelpdeskThisIsJohn has signed the CLA in laurent22/joplin#7969 2023-03-26 03:41:02 +00:00
renovate[bot]
f01ab70907 Update dependency sqlite3 to v5.1.6 (#7967) 2023-03-25 14:27:19 +00:00
renovate[bot]
bbdb221a67 Update dependency react-native-document-picker to v8.1.4 (#7966)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 18:21:01 +00:00
renovate[bot]
7d053f8c79 Update dependency styled-components to v5.3.9 (#7965)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 14:17:40 +00:00
renovate[bot]
fcad0bf3ca Update dependency style-loader to v3.3.2 (#7964)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 10:04:32 +00:00
renovate[bot]
58f929f6b5 Update dependency sqlite3 to v5.1.5 (#7963)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 05:40:51 +00:00
renovate[bot]
943198c56e Update dependency node-mocks-http to v1.12.2 (#7962)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 01:51:21 +00:00
renovate[bot]
2112ad4004 Update dependency markdown-it-multimd-table to v4.2.1 (#7928) 2023-03-23 21:07:41 +00:00
Laurent Cozic
5995dc81f3 Doc: Added info about data escaping in coding style 2023-03-23 16:10:52 +00:00
Laurent Cozic
104e752634 Merge branch 'release-2.10' into dev 2023-03-23 11:35:21 +00:00
Laurent Cozic
fc335cd15d Desktop release v2.10.12 2023-03-23 11:34:42 +00:00
Julien
45923ba0d3 Desktop: Adjusted New Note and New to-do buttons' breakpoints to happen earlier (#7961) 2023-03-23 11:32:36 +00:00
Julien
8fefa99d81 Desktop: Adjusted New Note and New to-do buttons' breakpoints to happen earlier (#7961) 2023-03-23 11:31:22 +00:00
Laurent Cozic
85d652cd67 Removed unused conf 2023-03-23 11:05:15 +00:00
github-actions[bot]
88e41e9c7d @chenqy9 has signed the CLA in laurent22/joplin#7955 2023-03-23 07:04:32 +00:00
Laurent Cozic
26750488d0 Merge branch 'release-2.10' into dev 2023-03-22 18:46:42 +00:00
Laurent Cozic
a0f582b2b9 Android 2.10.9 2023-03-22 18:45:52 +00:00
Laurent Cozic
917b53bec2 lock file 2023-03-22 18:33:19 +00:00
Laurent Cozic
e44a93422a Mobile: Mark biometrics feature as beta and ensure no call is made if it is not enabled 2023-03-22 18:24:10 +00:00
Laurent Cozic
e115ef4259 Mobile: Mark biometrics feature as beta and ensure no call is made if it is not enabled 2023-03-22 18:22:58 +00:00
Laurent Cozic
bcec699124 Doc: Fixed sponsor avatars 2023-03-21 17:31:43 +00:00
github-actions[bot]
d23c728a1a @jcgurango has signed the CLA in laurent22/joplin#7953 2023-03-21 17:20:42 +00:00
Milo Ivir
0a2d507dec All: Translation: Update hr_HR.po (#7947) 2023-03-20 17:32:52 -04:00
Laurent Cozic
0c08617606 Fix CI 2023-03-20 13:43:25 +00:00
Laurent Cozic
29fba45c33 Fix CI 2023-03-20 12:24:17 +00:00
Laurent Cozic
1071a455b6 Revert "Update Croatian translation (#7937)"
This reverts commit ffeeff260f.

Ref: https://github.com/laurent22/joplin/pull/7937#issuecomment-1475058291
2023-03-20 10:20:46 +00:00
Laurent Cozic
57e4b36fd7 Revert "Revert "All: Translation: Update fi_FI.po (#7945)""
This reverts commit d18a4be31f.

Restore FI translation.

Ref: d18a4be31f (commitcomment-105121959)
2023-03-20 10:19:56 +00:00
Joplin Bot
f08fa92294 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-19 18:19:35 +00:00
Laurent Cozic
3a8d87d292 Tools: Export rootDir from utils 2023-03-19 17:31:37 +00:00
Laurent Cozic
53302c9e90 lock file 2023-03-19 17:05:31 +00:00
Laurent Cozic
28a24d8c03 Chore: Fixed build 2023-03-19 17:03:04 +00:00
Laurent Cozic
3e52411bc4 Tools: Moved some utility functions to @joplin/utils to reduce dependencies between packages 2023-03-19 15:38:09 +00:00
Joplin Bot
1548ea18e1 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-19 12:21:16 +00:00
Laurent Cozic
f8cd1ba8e5 Revert "Tools: Switch Joplin Server image location to laurent22/joplin-server"
This reverts commit 6729a3d51f.

Ref: https://discourse.joplinapp.org/t/docker-image-doesnt-exist/30103/5
2023-03-19 09:07:19 +00:00
Laurent Cozic
d18a4be31f Revert "All: Translation: Update fi_FI.po (#7945)"
This reverts commit c56f270ed6.

Ref: https://github.com/laurent22/joplin/pull/7937#issuecomment-1475058291
2023-03-19 08:59:16 +00:00
mrkaato0
c56f270ed6 All: Translation: Update fi_FI.po (#7945) 2023-03-18 21:16:42 -04:00
github-actions[bot]
2bca3d1032 @mrkaato0 has signed the CLA in laurent22/joplin#7945 2023-03-18 18:25:42 +00:00
renovate[bot]
9f81d69c5e Update dependency jquery to v3.6.4 (#7944)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-18 16:33:08 +00:00
Laurent Cozic
815419260d Server v2.10.11 2023-03-17 17:50:34 +00:00
Laurent Cozic
6729a3d51f Tools: Switch Joplin Server image location to laurent22/joplin-server 2023-03-17 17:49:34 +00:00
Joplin Bot
6d8ce280dd Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-17 12:20:34 +00:00
Laurent Cozic
9e5b455065 Merge branch 'release-2.10' into dev 2023-03-17 08:56:39 +00:00
Laurent Cozic
09cbac3019 Desktop release v2.10.11 2023-03-17 08:55:09 +00:00
Julien
5354ad3934 Desktop: Fixes text wrap on new buttons (#7938) 2023-03-17 08:53:19 +00:00
Julien
7754048b80 Desktop: Fixes text wrap on new buttons (#7938) 2023-03-17 08:51:46 +00:00
Milo Ivir
ffeeff260f Update Croatian translation (#7937) 2023-03-17 08:51:22 +00:00
Julien
71ea74d273 Desktop: Fixes #4801: Do not allow update for plugins incompatible with current version (#7936) 2023-03-17 08:50:51 +00:00
Julien
3a744c79ae Desktop: Fixes #7920: List enabled plugins only in About Joplin and in alphabetical order (#7923) 2023-03-17 08:41:33 +00:00
renovate[bot]
d9ba27a1ec Update dependency lint-staged to v13.1.4 (#7935)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-16 20:26:38 +00:00
github-actions[bot]
0a3540049c @milotype has signed the CLA in laurent22/joplin#7937 2023-03-16 18:51:53 +00:00
Henry Heino
ab50ca9bbd Mobile: Add setting to enable/disable the markdown toolbar (#7929) 2023-03-16 11:12:56 +00:00
renovate[bot]
0bee793ab8 Update dependency lint-staged to v13.1.3 (#7927)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-15 20:36:26 +00:00
Arun Kumar
89fc5e19d9 Desktop: Fixes #7881: Fixed icon when note is dragged across notebooks (#7924) 2023-03-15 14:33:59 +00:00
Arun Kumar
6a3bf51084 Desktop: Resolves #7889: Add support for --safe-mode command line flag (#7919) 2023-03-14 11:46:21 +00:00
Laurent Cozic
df1e298c84 Doc: Mentioned Safe Mode in debugging doc 2023-03-14 11:41:30 +00:00
Joplin Bot
b9c706324b Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-14 06:18:40 +00:00
Laurent Cozic
ab7e2de1d9 Update renovate.json5 2023-03-14 01:29:44 +00:00
Joplin Bot
7ef8753b94 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-14 00:40:45 +00:00
Laurent Cozic
d48a5efa03 Doc: Update coding style 2023-03-13 19:31:22 +00:00
Laurent Cozic
0804b62ffb Merge branch 'release-2.10' into dev 2023-03-13 18:48:05 +00:00
Laurent Cozic
37995b9ec7 Desktop release v2.10.10 2023-03-13 18:46:58 +00:00
Julien
7a3e6fde7f Desktop: Fixes #7907: Fixed height when controls are on a single row (#7912) 2023-03-13 16:26:56 +00:00
Laurent Cozic
bd4291462e Desktop: Fix issue where search bar can randomly lose focus while searching 2023-03-13 12:19:22 +00:00
Laurent Cozic
489d6778db Desktop: Fix issue where search bar can randomly lose focus while searching 2023-03-13 12:18:47 +00:00
renovate[bot]
538a1413d9 Update dependency nodemon to v2.0.21 (#7908)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-12 22:39:35 +00:00
Joplin Bot
3c9b755045 Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-03-12 18:16:33 +00:00
Laurent Cozic
fd7b345efa Merge branch 'release-2.10' into dev 2023-03-12 15:44:02 +00:00
Laurent Cozic
c96468149a Desktop release v2.10.9 2023-03-12 15:37:38 +00:00
pedr
d6d4897e1c Desktop: Resolves #7880: Paste as Text only working on hotkeys on Windows (#7886) 2023-03-12 15:33:16 +00:00
Julien
e07e248fea Desktop: Always show new note buttons (Regression) (#7850) 2023-03-12 15:30:41 +00:00
Julien
b561460307 Desktop: Resolves #7848: Made note list controls responsive (#7884) 2023-03-12 15:26:15 +00:00
Self Not Found
f6d1a27f51 All: Fixes #7851: Encode the non-ASCII characters in OneDrive URI (#7868) 2023-03-12 15:21:31 +00:00
Tao Klerks
80a1500634 Desktop: Fixes #7741: With Custom Sort, new notes appear at bottom and later randomly "pop" to the top (#7765) 2023-03-12 15:16:45 +00:00
Laurent Cozic
bcb578c933 Doc: Update sponsors 2023-03-12 12:38:08 +00:00
Laurent Cozic
75ad454971 Doc: Make website work on more resolutions and added LinkedIn link 2023-03-12 11:53:44 +00:00
renovate[bot]
e90b7f2d81 Update dependency styled-components to v5.3.8 (#7906)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-12 10:17:05 +00:00
renovate[bot]
ffca11ca8a Update dependency react-native-share to v8.2.1 (#7904)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-11 13:28:41 +00:00
renovate[bot]
bd98951d32 Update dependency react-native-image-picker to v5.1.0 (#7896) 2023-03-10 12:54:53 +00:00
pedr
9106fb82f3 Chore: Desktop: Resolves #7879: Paste as Text shortcut pasting content twice (#7885) 2023-03-10 12:53:48 +00:00
Arun Kumar
5c6e17bc89 Desktop: Fixes #4124: Fix note list blank space display problems (#7888) 2023-03-10 12:06:30 +00:00
Arun Kumar
538e9e9b4e Desktop: Fixes #7506: Linux notebook display bug (#7897) 2023-03-10 12:01:35 +00:00
Laurent Cozic
d871b3c7d6 Tools: Include packages that have been updated by Renovate in changelog 2023-03-09 17:50:57 +00:00
Laurent Cozic
99c6c9b411 Tools: Add more eslint/jest rules 2023-03-09 17:50:56 +00:00
Laurent Cozic
3eca4ada5a Tools: Add eslint rule "jest/require-top-level-describe" 2023-03-09 17:50:56 +00:00
Laurent Cozic
19431abc73 Server v2.10.10 2023-03-09 14:37:27 +00:00
872 changed files with 59966 additions and 38291 deletions

View File

@@ -66,6 +66,7 @@ packages/lib/welcomeAssets.js
packages/plugins/**/api
packages/plugins/**/dist
packages/server/dist/
packages/utils/dist/
packages/tools/node_modules
packages/tools/PortableAppsLauncher
packages/turndown-plugin-gfm/
@@ -73,6 +74,8 @@ packages/turndown/
packages/pdf-viewer/dist
plugin_types/
readme/
packages/react-native-vosk/lib/
packages/lib/countable/Countable.js
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
packages/app-cli/app/LinkSelector.js
@@ -222,6 +225,7 @@ packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/useScrollHandler.j
packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/useScrollUtils.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/styles/index.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/joplinCommandToTinyMceCommands.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/setupToolbarButtons.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/types.js
@@ -353,6 +357,9 @@ packages/app-desktop/services/sortOrder/PerFolderSortOrderService.test.js
packages/app-desktop/services/sortOrder/notesSortOrderUtils.js
packages/app-desktop/services/sortOrder/notesSortOrderUtils.test.js
packages/app-desktop/services/spellChecker/SpellCheckerServiceDriverNative.js
packages/app-desktop/tools/notarizeMacApp.js
packages/app-desktop/utils/checkForUpdatesUtils.js
packages/app-desktop/utils/checkForUpdatesUtils.test.js
packages/app-desktop/utils/markupLanguageUtils.js
packages/app-mobile/PluginAssetsLoader.js
packages/app-mobile/components/ActionButton.js
@@ -361,6 +368,8 @@ packages/app-mobile/components/CameraView.js
packages/app-mobile/components/CustomButton.js
packages/app-mobile/components/Dropdown.js
packages/app-mobile/components/ExtendedWebView.js
packages/app-mobile/components/FolderPicker.js
packages/app-mobile/components/Modal.js
packages/app-mobile/components/NoteBodyViewer/NoteBodyViewer.js
packages/app-mobile/components/NoteBodyViewer/hooks/useOnMessage.js
packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.js
@@ -395,15 +404,16 @@ packages/app-mobile/components/NoteEditor/NoteEditor.js
packages/app-mobile/components/NoteEditor/SearchPanel.js
packages/app-mobile/components/NoteEditor/SelectionFormatting.js
packages/app-mobile/components/NoteEditor/types.js
packages/app-mobile/components/NoteList.js
packages/app-mobile/components/ProfileSwitcher/ProfileEditor.js
packages/app-mobile/components/ProfileSwitcher/ProfileSwitcher.js
packages/app-mobile/components/ProfileSwitcher/useProfileConfig.js
packages/app-mobile/components/ScreenHeader.js
packages/app-mobile/components/SelectDateTimeDialog.js
packages/app-mobile/components/SideMenu.js
packages/app-mobile/components/TextInput.js
packages/app-mobile/components/app-nav.js
packages/app-mobile/components/biometrics/BiometricPopup.js
packages/app-mobile/components/biometrics/biometricAuthenticate.js
packages/app-mobile/components/biometrics/sensorInfo.js
packages/app-mobile/components/getResponsiveValue.js
packages/app-mobile/components/getResponsiveValue.test.js
@@ -414,12 +424,15 @@ packages/app-mobile/components/screens/UpgradeSyncTargetScreen.js
packages/app-mobile/components/screens/encryption-config.js
packages/app-mobile/components/screens/search.js
packages/app-mobile/components/side-menu-content.js
packages/app-mobile/components/voiceTyping/VoiceTypingDialog.js
packages/app-mobile/gulpfile.js
packages/app-mobile/root.js
packages/app-mobile/services/AlarmServiceDriver.android.js
packages/app-mobile/services/AlarmServiceDriver.ios.js
packages/app-mobile/services/e2ee/RSA.react-native.js
packages/app-mobile/services/profiles/index.js
packages/app-mobile/services/voiceTyping/vosk.android.js
packages/app-mobile/services/voiceTyping/vosk.ios.js
packages/app-mobile/setupQuickActions.js
packages/app-mobile/tools/buildInjectedJs.js
packages/app-mobile/utils/ShareExtension.js
@@ -476,6 +489,7 @@ packages/lib/SyncTargetOneDrive.js
packages/lib/SyncTargetRegistry.js
packages/lib/Synchronizer.js
packages/lib/TaskQueue.js
packages/lib/WelcomeUtils.js
packages/lib/array.js
packages/lib/callbackUrlUtils.js
packages/lib/callbackUrlUtils.test.js
@@ -511,6 +525,7 @@ packages/lib/import-enex-md-gen.js
packages/lib/import-enex-md-gen.test.js
packages/lib/import-enex.js
packages/lib/locale.js
packages/lib/locale.test.js
packages/lib/markdownUtils.js
packages/lib/markdownUtils.test.js
packages/lib/markdownUtils2.test.js
@@ -546,6 +561,8 @@ packages/lib/models/utils/itemCanBeEncrypted.js
packages/lib/models/utils/paginatedFeed.js
packages/lib/models/utils/paginationToSql.js
packages/lib/models/utils/types.js
packages/lib/models/utils/userData.js
packages/lib/models/utils/userData.test.js
packages/lib/net-utils.js
packages/lib/ntp.js
packages/lib/onedrive-api.js
@@ -623,6 +640,8 @@ packages/lib/services/interop/InteropService_Importer_Md_frontmatter.js
packages/lib/services/interop/InteropService_Importer_Md_frontmatter.test.js
packages/lib/services/interop/InteropService_Importer_Raw.js
packages/lib/services/interop/InteropService_Importer_Raw.test.js
packages/lib/services/interop/Module.js
packages/lib/services/interop/Module.test.js
packages/lib/services/interop/types.js
packages/lib/services/joplinServer/personalizedUserContentBaseUrl.js
packages/lib/services/keychain/KeychainService.js
@@ -709,6 +728,7 @@ packages/lib/services/searchengine/SearchFilter.test.js
packages/lib/services/searchengine/filterParser.js
packages/lib/services/searchengine/filterParser.test.js
packages/lib/services/searchengine/gotoAnythingStyleQuery.js
packages/lib/services/searchengine/gotoAnythingStyleQuery.test.js
packages/lib/services/searchengine/queryBuilder.js
packages/lib/services/share/ShareService.js
packages/lib/services/share/ShareService.test.js
@@ -836,6 +856,7 @@ packages/renderer/noteStyle.js
packages/renderer/pathUtils.js
packages/renderer/utils.js
packages/tools/build-release-stats.js
packages/tools/build-welcome.js
packages/tools/buildServerDocker.js
packages/tools/buildServerDocker.test.js
packages/tools/bundleDefaultPlugins.js
@@ -846,6 +867,7 @@ packages/tools/convertThemesToCss.js
packages/tools/generate-database-types.js
packages/tools/generate-images.js
packages/tools/git-changelog.js
packages/tools/git-changelog.test.js
packages/tools/licenseChecker.js
packages/tools/release-android.js
packages/tools/release-cli.js
@@ -858,9 +880,11 @@ packages/tools/spellcheck.js
packages/tools/tagServerLatest.js
packages/tools/tool-utils.js
packages/tools/update-readme-download.js
packages/tools/update-readme-download.test.js
packages/tools/update-readme-sponsors.js
packages/tools/updateMarkdownDoc.js
packages/tools/utils/discourse.js
packages/tools/utils/loadSponsors.js
packages/tools/utils/translation.js
packages/tools/website/build.js
packages/tools/website/buildTranslations.js
@@ -868,6 +892,8 @@ packages/tools/website/updateDownloadPage.js
packages/tools/website/updateNews.js
packages/tools/website/utils/applyTranslations.js
packages/tools/website/utils/applyTranslations.test.js
packages/tools/website/utils/convertLinksToLocale.js
packages/tools/website/utils/convertLinksToLocale.test.js
packages/tools/website/utils/frontMatter.js
packages/tools/website/utils/news.js
packages/tools/website/utils/openGraph.js

View File

@@ -42,6 +42,8 @@ module.exports = {
'zxcvbn': 'readonly',
'tinymce': 'readonly',
'JSX': 'readonly',
},
'parserOptions': {
'ecmaVersion': 2018,
@@ -91,8 +93,13 @@ module.exports = {
// Disable because of this: https://github.com/facebook/react/issues/16265
// "react-hooks/exhaustive-deps": "warn",
'jest/require-top-level-describe': ['error', { 'maxNumberOfTopLevelDescribes': 1 }],
'jest/no-identical-title': ['error'],
'jest/prefer-lowercase-title': ['error', { 'ignoreTopLevelDescribe': true }],
'promise/prefer-await-to-then': 'error',
'no-unneeded-ternary': 'error',
'github/array-foreach': ['error'],
// -------------------------------
// Formatting
@@ -103,6 +110,9 @@ module.exports = {
'semi': ['error', 'always'],
'eol-last': ['error', 'always'],
'quotes': ['error', 'single'],
// Note that "indent" only applies to JavaScript files. See
// https://github.com/laurent22/joplin/issues/8360
'indent': ['error', 'tab'],
'comma-dangle': ['error', {
'arrays': 'always-multiline',
@@ -132,11 +142,13 @@ module.exports = {
'named': 'never',
'asyncArrow': 'always',
}],
'multiline-comment-style': ['error', 'separate-lines'],
'multiline-comment-style': ['error', 'separate-lines', { checkJSDoc: true }],
'space-before-blocks': 'error',
'spaced-comment': ['error', 'always'],
'keyword-spacing': ['error', { 'before': true, 'after': true }],
'no-multi-spaces': ['error'],
'prefer-object-spread': ['error'],
'prefer-regex-literals': ['error', { disallowRedundantWrapping: true }],
// Regarding the keyword blacklist:
// - err: We generally avoid using too many abbreviations, so it should
@@ -155,6 +167,8 @@ module.exports = {
// 'react-hooks',
'import',
'promise',
'jest',
'github',
],
'overrides': [
{
@@ -175,9 +189,18 @@ module.exports = {
'project': './tsconfig.eslint.json',
},
'rules': {
'@typescript-eslint/indent': ['error', 'tab', {
'ignoredNodes': [
// See https://github.com/typescript-eslint/typescript-eslint/issues/1824
'TSUnionType',
],
}],
'@typescript-eslint/ban-ts-comment': ['error'],
'@typescript-eslint/ban-types': 'error',
'@typescript-eslint/explicit-member-accessibility': ['error'],
'@typescript-eslint/type-annotation-spacing': ['error', { 'before': false, 'after': true }],
'@typescript-eslint/no-inferrable-types': ['error', { 'ignoreParameters': true, 'ignoreProperties': true }],
'@typescript-eslint/array-type': 'error',
'@typescript-eslint/no-inferrable-types': ['error'],
'@typescript-eslint/comma-dangle': ['error', {
'arrays': 'always-multiline',
'objects': 'always-multiline',

View File

@@ -183,12 +183,38 @@ if [[ $GIT_TAG_NAME = v* ]]; then
# cd "$ROOT_DIR/packages/tools"
# node bundleDefaultPlugins.js
cd "$ROOT_DIR/packages/app-desktop"
USE_HARD_LINKS=false yarn run dist
if [ "$IS_MACOS" == "1" ]; then
# This is to fix this error:
#
# Exit code: ENOENT. spawn /usr/bin/python ENOENT
#
# Ref: https://github.com/electron-userland/electron-builder/issues/6767#issuecomment-1096589528
#
# It can be removed once we upgrade to electron-builder@23, however we
# cannot currently do this due to this error:
# https://github.com/laurent22/joplin/issues/8149
#
# electron-builder@24, however, still expects the python binary to be named
# "python" and seems to no longer respect the PYTHON_PATH environment variable.
# We work around this by aliasing python.
alias python=$(which python3)
USE_HARD_LINKS=false yarn run dist
else
USE_HARD_LINKS=false yarn run dist
fi
elif [[ $IS_LINUX = 1 ]] && [[ $GIT_TAG_NAME = $SERVER_TAG_PREFIX-* ]]; then
echo "Step: Building Docker Image..."
cd "$ROOT_DIR"
yarn run buildServerDocker --tag-name $GIT_TAG_NAME --push-images --repository $SERVER_REPOSITORY
else
echo "Step: Building but *not* publishing desktop application..."
USE_HARD_LINKS=false yarn run dist --publish=never
if [ "$IS_MACOS" == "1" ]; then
# See above why we need to specify Python
alias python=$(which python3)
USE_HARD_LINKS=false yarn run dist --publish=never
else
USE_HARD_LINKS=false yarn run dist --publish=never
fi
fi

View File

@@ -6,6 +6,7 @@ on: [push, pull_request]
jobs:
pre_job:
if: github.repository == 'laurent22/joplin'
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
@@ -17,7 +18,7 @@ jobs:
BuildAndroidDebug:
needs: pre_job
if: needs.pre_job.outputs.should_skip != 'true'
if: github.repository == 'laurent22/joplin' && needs.pre_job.outputs.should_skip != 'true'
runs-on: ubuntu-latest
steps:
- name: Install Linux dependencies

69
.github/workflows/build-macos-m1.yml vendored Normal file
View File

@@ -0,0 +1,69 @@
name: Build macOS M1
on: [push, pull_request]
jobs:
pre_job:
if: github.repository == 'laurent22/joplin'
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v5
with:
concurrent_skipping: 'same_content_newer'
Main:
needs: pre_job
# We always process desktop release tags, because they also publish the release
if: github.repository == 'laurent22/joplin' && (needs.pre_job.outputs.should_skip != 'true' || startsWith(github.ref, 'refs/tags/v'))
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: olegtarasov/get-tag@v2.1
- uses: actions/setup-node@v2
with:
# We need to pin the version to 18.15, because 18.16+ fails with this error:
# https://github.com/facebook/react-native/issues/36440
node-version: '18.15.0'
- name: Install Yarn
run: |
# https://yarnpkg.com/getting-started/install
corepack enable
- name: Build macOS M1 app
env:
APPLE_ASC_PROVIDER: ${{ secrets.APPLE_ASC_PROVIDER }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
CSC_KEY_PASSWORD: ${{ secrets.APPLE_CSC_KEY_PASSWORD }}
CSC_LINK: ${{ secrets.APPLE_CSC_LINK }}
GH_TOKEN: ${{ secrets.GH_TOKEN }}
IS_CONTINUOUS_INTEGRATION: 1
BUILD_SEQUENCIAL: 1
run: |
export npm_config_arch=arm64
export npm_config_target_arch=arm64
yarn install
cd packages/app-desktop
npm pkg set 'build.mac.artifactName'='${productName}-${version}-${arch}.${ext}'
npm pkg set 'build.mac.target.target'='default'
npm pkg set 'build.mac.target.arch[0]'='arm64'
if [[ $GIT_TAG_NAME = v* ]]; then
echo "Building and publishing desktop application..."
PYTHON_PATH=$(which python) USE_HARD_LINKS=false yarn run dist --mac --arm64
else
echo "Building but *not* publishing desktop application..."
# We also want to disable signing the app in this case, because
# it doesn't work and we don't need it.
# https://www.electron.build/code-signing#how-to-disable-code-signing-during-the-build-process-on-macos
export CSC_IDENTITY_AUTO_DISCOVERY=false
npm pkg set 'build.mac.identity'=null --json
PYTHON_PATH=$(which python) USE_HARD_LINKS=false yarn run dist --publish=never
fi

View File

@@ -7,6 +7,7 @@ on:
jobs:
CLAAssistant:
if: github.repository == 'laurent22/joplin'
runs-on: ubuntu-latest
steps:
- name: "CLA Assistant"
@@ -32,5 +33,5 @@ jobs:
#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)
lock-pullrequest-aftermerge: false
#use-dco-flag: true - If you are using DCO instead of CLA

View File

@@ -6,6 +6,7 @@ permissions:
issues: write
jobs:
ProcessStaleIssues:
if: github.repository == 'laurent22/joplin'
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v4

View File

@@ -2,6 +2,7 @@ name: Joplin Continuous Integration
on: [push, pull_request]
jobs:
pre_job:
if: github.repository == 'laurent22/joplin'
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
@@ -14,7 +15,7 @@ jobs:
Main:
needs: pre_job
# 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')
if: github.repository == 'laurent22/joplin' && (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,6 +50,7 @@ jobs:
sudo apt-get install -y gettext
sudo apt-get install -y libsecret-1-dev
sudo apt-get install -y translate-toolkit
sudo apt-get install -y rsync
- name: Install Docker Engine
# if: runner.os == 'Linux' && startsWith(github.ref, 'refs/tags/server-v')
@@ -70,7 +72,9 @@ jobs:
- uses: olegtarasov/get-tag@v2.1
- uses: actions/setup-node@v2
with:
node-version: '18'
# We need to pin the version to 18.15, because 18.16+ fails with this error:
# https://github.com/facebook/react-native/issues/36440
node-version: '18.15.0'
- name: Install Yarn
run: |
@@ -92,6 +96,7 @@ jobs:
APPLE_ASC_PROVIDER: ${{ secrets.APPLE_ASC_PROVIDER }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
CSC_KEY_PASSWORD: ${{ secrets.APPLE_CSC_KEY_PASSWORD }}
CSC_LINK: ${{ secrets.APPLE_CSC_LINK }}
GH_TOKEN: ${{ secrets.GH_TOKEN }}
@@ -129,7 +134,7 @@ jobs:
ServerDockerImage:
needs: pre_job
if: needs.pre_job.outputs.should_skip != 'true'
if: github.repository == 'laurent22/joplin' && needs.pre_job.outputs.should_skip != 'true'
runs-on: ${{ matrix.os }}
strategy:
matrix:
@@ -171,3 +176,35 @@ jobs:
# Basic test to ensure that the created build is valid. It should exit with
# code 0 if it works.
docker run joplin/server:0.0.0-beta node dist/app.js migrate list
- name: Check HTTP request
run: |
# Need to pass environment variables:
docker run -p 22300:22300 joplin/server:0.0.0-beta node dist/app.js --env dev &
# Wait for server to start
sleep 10
# Check if status code is correct
# if the actual_status DOES NOT include the expected_status
# it exits the process with code 1
expected_status="HTTP/1.1 200 OK"
actual_status=$(curl -I -X GET http://localhost:22300/api/ping | head -n 1)
if [[ ! "$actual_status" =~ "$expected_status" ]]; then
echo 'Failed while checking the status code after request to /api/ping'
echo 'expected: ' $expected_status
echo 'actual: ' $actual_status
exit 1;
fi
# Check if the body response is correct
# if the actual_body is different of expected_body exit with code 1
expected_body='{"status":"ok","message":"Joplin Server is running"}'
actual_body=$(curl http://localhost:22300/api/ping)
if [[ "$actual_body" != "$expected_body" ]]; then
echo 'Failed while checking the body response after request to /api/ping'
exit 1;
fi

25
.gitignore vendored
View File

@@ -210,6 +210,7 @@ packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/useScrollHandler.j
packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/useScrollUtils.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/styles/index.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/joplinCommandToTinyMceCommands.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/openEditDialog.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/setupToolbarButtons.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/utils/types.js
@@ -341,6 +342,9 @@ packages/app-desktop/services/sortOrder/PerFolderSortOrderService.test.js
packages/app-desktop/services/sortOrder/notesSortOrderUtils.js
packages/app-desktop/services/sortOrder/notesSortOrderUtils.test.js
packages/app-desktop/services/spellChecker/SpellCheckerServiceDriverNative.js
packages/app-desktop/tools/notarizeMacApp.js
packages/app-desktop/utils/checkForUpdatesUtils.js
packages/app-desktop/utils/checkForUpdatesUtils.test.js
packages/app-desktop/utils/markupLanguageUtils.js
packages/app-mobile/PluginAssetsLoader.js
packages/app-mobile/components/ActionButton.js
@@ -349,6 +353,8 @@ packages/app-mobile/components/CameraView.js
packages/app-mobile/components/CustomButton.js
packages/app-mobile/components/Dropdown.js
packages/app-mobile/components/ExtendedWebView.js
packages/app-mobile/components/FolderPicker.js
packages/app-mobile/components/Modal.js
packages/app-mobile/components/NoteBodyViewer/NoteBodyViewer.js
packages/app-mobile/components/NoteBodyViewer/hooks/useOnMessage.js
packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.js
@@ -383,15 +389,16 @@ packages/app-mobile/components/NoteEditor/NoteEditor.js
packages/app-mobile/components/NoteEditor/SearchPanel.js
packages/app-mobile/components/NoteEditor/SelectionFormatting.js
packages/app-mobile/components/NoteEditor/types.js
packages/app-mobile/components/NoteList.js
packages/app-mobile/components/ProfileSwitcher/ProfileEditor.js
packages/app-mobile/components/ProfileSwitcher/ProfileSwitcher.js
packages/app-mobile/components/ProfileSwitcher/useProfileConfig.js
packages/app-mobile/components/ScreenHeader.js
packages/app-mobile/components/SelectDateTimeDialog.js
packages/app-mobile/components/SideMenu.js
packages/app-mobile/components/TextInput.js
packages/app-mobile/components/app-nav.js
packages/app-mobile/components/biometrics/BiometricPopup.js
packages/app-mobile/components/biometrics/biometricAuthenticate.js
packages/app-mobile/components/biometrics/sensorInfo.js
packages/app-mobile/components/getResponsiveValue.js
packages/app-mobile/components/getResponsiveValue.test.js
@@ -402,12 +409,15 @@ packages/app-mobile/components/screens/UpgradeSyncTargetScreen.js
packages/app-mobile/components/screens/encryption-config.js
packages/app-mobile/components/screens/search.js
packages/app-mobile/components/side-menu-content.js
packages/app-mobile/components/voiceTyping/VoiceTypingDialog.js
packages/app-mobile/gulpfile.js
packages/app-mobile/root.js
packages/app-mobile/services/AlarmServiceDriver.android.js
packages/app-mobile/services/AlarmServiceDriver.ios.js
packages/app-mobile/services/e2ee/RSA.react-native.js
packages/app-mobile/services/profiles/index.js
packages/app-mobile/services/voiceTyping/vosk.android.js
packages/app-mobile/services/voiceTyping/vosk.ios.js
packages/app-mobile/setupQuickActions.js
packages/app-mobile/tools/buildInjectedJs.js
packages/app-mobile/utils/ShareExtension.js
@@ -464,6 +474,7 @@ packages/lib/SyncTargetOneDrive.js
packages/lib/SyncTargetRegistry.js
packages/lib/Synchronizer.js
packages/lib/TaskQueue.js
packages/lib/WelcomeUtils.js
packages/lib/array.js
packages/lib/callbackUrlUtils.js
packages/lib/callbackUrlUtils.test.js
@@ -499,6 +510,7 @@ packages/lib/import-enex-md-gen.js
packages/lib/import-enex-md-gen.test.js
packages/lib/import-enex.js
packages/lib/locale.js
packages/lib/locale.test.js
packages/lib/markdownUtils.js
packages/lib/markdownUtils.test.js
packages/lib/markdownUtils2.test.js
@@ -534,6 +546,8 @@ packages/lib/models/utils/itemCanBeEncrypted.js
packages/lib/models/utils/paginatedFeed.js
packages/lib/models/utils/paginationToSql.js
packages/lib/models/utils/types.js
packages/lib/models/utils/userData.js
packages/lib/models/utils/userData.test.js
packages/lib/net-utils.js
packages/lib/ntp.js
packages/lib/onedrive-api.js
@@ -611,6 +625,8 @@ packages/lib/services/interop/InteropService_Importer_Md_frontmatter.js
packages/lib/services/interop/InteropService_Importer_Md_frontmatter.test.js
packages/lib/services/interop/InteropService_Importer_Raw.js
packages/lib/services/interop/InteropService_Importer_Raw.test.js
packages/lib/services/interop/Module.js
packages/lib/services/interop/Module.test.js
packages/lib/services/interop/types.js
packages/lib/services/joplinServer/personalizedUserContentBaseUrl.js
packages/lib/services/keychain/KeychainService.js
@@ -697,6 +713,7 @@ packages/lib/services/searchengine/SearchFilter.test.js
packages/lib/services/searchengine/filterParser.js
packages/lib/services/searchengine/filterParser.test.js
packages/lib/services/searchengine/gotoAnythingStyleQuery.js
packages/lib/services/searchengine/gotoAnythingStyleQuery.test.js
packages/lib/services/searchengine/queryBuilder.js
packages/lib/services/share/ShareService.js
packages/lib/services/share/ShareService.test.js
@@ -824,6 +841,7 @@ packages/renderer/noteStyle.js
packages/renderer/pathUtils.js
packages/renderer/utils.js
packages/tools/build-release-stats.js
packages/tools/build-welcome.js
packages/tools/buildServerDocker.js
packages/tools/buildServerDocker.test.js
packages/tools/bundleDefaultPlugins.js
@@ -834,6 +852,7 @@ packages/tools/convertThemesToCss.js
packages/tools/generate-database-types.js
packages/tools/generate-images.js
packages/tools/git-changelog.js
packages/tools/git-changelog.test.js
packages/tools/licenseChecker.js
packages/tools/release-android.js
packages/tools/release-cli.js
@@ -846,9 +865,11 @@ packages/tools/spellcheck.js
packages/tools/tagServerLatest.js
packages/tools/tool-utils.js
packages/tools/update-readme-download.js
packages/tools/update-readme-download.test.js
packages/tools/update-readme-sponsors.js
packages/tools/updateMarkdownDoc.js
packages/tools/utils/discourse.js
packages/tools/utils/loadSponsors.js
packages/tools/utils/translation.js
packages/tools/website/build.js
packages/tools/website/buildTranslations.js
@@ -856,6 +877,8 @@ packages/tools/website/updateDownloadPage.js
packages/tools/website/updateNews.js
packages/tools/website/utils/applyTranslations.js
packages/tools/website/utils/applyTranslations.test.js
packages/tools/website/utils/convertLinksToLocale.js
packages/tools/website/utils/convertLinksToLocale.test.js
packages/tools/website/utils/frontMatter.js
packages/tools/website/utils/news.js
packages/tools/website/utils/openGraph.js

View File

@@ -14,7 +14,8 @@
"@joplin/turndown-plugin-gfm",
"@joplin/tools",
"@joplin/react-native-saf-x",
"@joplin/react-native-alarm-notification"
"@joplin/react-native-alarm-notification",
"@joplin/utils"
]
}
]

View File

@@ -0,0 +1,13 @@
diff --git a/templates/nsis/include/allowOnlyOneInstallerInstance.nsh b/templates/nsis/include/allowOnlyOneInstallerInstance.nsh
index a1fd1875d852ff69c087a3103eff827c20d37ca5..5222614ddad3276876857e7a9dde4017a6b9fc85 100644
--- a/templates/nsis/include/allowOnlyOneInstallerInstance.nsh
+++ b/templates/nsis/include/allowOnlyOneInstallerInstance.nsh
@@ -42,7 +42,7 @@
${nsProcess::FindProcess} "${_FILE}" ${_ERR}
!else
# find process owned by current user
- nsExec::Exec `cmd /c tasklist /FI "USERNAME eq %USERNAME%" /FI "IMAGENAME eq ${_FILE}" | %SYSTEMROOT%\System32\find.exe "${_FILE}"`
+ nsExec::Exec `cmd /c tasklist /FI "USERNAME eq %USERNAME%" /FI "PID ne $pid" /FI "IMAGENAME eq ${_FILE}" | %SYSTEMROOT%\System32\find.exe "${_FILE}"`
Pop ${_ERR}
!endif
!macroend

View File

@@ -0,0 +1,15 @@
diff --git a/lib/rules/multiline-comment-style.js b/lib/rules/multiline-comment-style.js
index 9cb7f3473e5a124e2eedb12685650f047afa84b6..124e062955e1b51cbdddd0920c22446dc97dd261 100644
--- a/lib/rules/multiline-comment-style.js
+++ b/lib/rules/multiline-comment-style.js
@@ -377,6 +377,10 @@ module.exports = {
commentLines = commentLines.slice(1, commentLines.length - 1);
}
+ // We have to allow this because it's always a top comment and
+ // it has to be in a jsdoc block
+ if (commentLines.join('').trim().startsWith('@jest-environment')) return;
+
const tokenAfter = sourceCode.getTokenAfter(firstComment, { includeComments: true });
if (tokenAfter && firstComment.loc.end.line === tokenAfter.loc.start.line) {

View File

@@ -0,0 +1,209 @@
diff --git a/android/build.gradle b/android/build.gradle
index 6afcbbf0cc8ca2d69dd78077d61e59a90b2136bb..9f8d72b4ec5b2b3d290975d6a255917c95300854 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -67,19 +67,19 @@ repositories {
}
// Generate UUIDs for each models contained in android/src/main/assets/
-tasks.register('genUUID') {
- doLast {
- fileTree(dir: "$rootDir/app/src/main/assets", exclude: ['*/*']).visit { fileDetails ->
- if (fileDetails.directory) {
- def odir = file("$rootDir/app/src/main/assets/$fileDetails.relativePath")
- def ofile = file("$odir/uuid")
- mkdir odir
- ofile.text = UUID.randomUUID().toString()
- }
- }
- }
-}
-preBuild.dependsOn genUUID
+// tasks.register('genUUID') {
+// doLast {
+// fileTree(dir: "$rootDir/app/src/main/assets", exclude: ['*/*']).visit { fileDetails ->
+// if (fileDetails.directory) {
+// def odir = file("$rootDir/app/src/main/assets/$fileDetails.relativePath")
+// def ofile = file("$odir/uuid")
+// mkdir odir
+// ofile.text = UUID.randomUUID().toString()
+// }
+// }
+// }
+// }
+// preBuild.dependsOn genUUID
def kotlin_version = getExtOrDefault('kotlinVersion')
diff --git a/android/src/main/java/com/reactnativevosk/VoskModule.kt b/android/src/main/java/com/reactnativevosk/VoskModule.kt
index 0e2b6595b1b2cf1ee01c6c64239c4b0ea37fce19..5a8539b9cce8951967640dba755e29a4e3ff404a 100644
--- a/android/src/main/java/com/reactnativevosk/VoskModule.kt
+++ b/android/src/main/java/com/reactnativevosk/VoskModule.kt
@@ -19,13 +19,25 @@ class VoskModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMo
return "Vosk"
}
+ @ReactMethod
+ fun addListener(type: String?) {
+ // Keep: Required for RN built in Event Emitter Calls.
+ }
+
+ @ReactMethod
+ fun removeListeners(type: Int?) {
+ // Keep: Required for RN built in Event Emitter Calls.
+ }
+
override fun onResult(hypothesis: String) {
// Get text data from string object
val text = getHypothesisText(hypothesis)
// Stop recording if data found
if (text != null && text.isNotEmpty()) {
- cleanRecognizer();
+ // Don't auto-stop the recogniser - we want to do that when the user
+ // presses on "stop" only.
+ // cleanRecognizer();
sendEvent("onResult", text)
}
}
@@ -93,12 +105,11 @@ class VoskModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMo
@ReactMethod
fun loadModel(path: String, promise: Promise) {
cleanModel();
- StorageService.unpack(context, path, "models",
- { model: Model? ->
- this.model = model
- promise.resolve("Model successfully loaded")
- }
- ) { e: IOException ->
+
+ try {
+ this.model = Model(path);
+ promise.resolve("Model successfully loaded")
+ } catch (e: IOException) {
this.model = null
promise.reject(e)
}
@@ -153,6 +164,25 @@ class VoskModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMo
cleanRecognizer();
}
+ @ReactMethod
+ fun stopOnly() {
+ if (speechService != null) {
+ speechService!!.stop()
+ }
+ }
+
+ @ReactMethod
+ fun cleanup() {
+ if (speechService != null) {
+ speechService!!.shutdown();
+ speechService = null
+ }
+ if (recognizer != null) {
+ recognizer!!.close();
+ recognizer = null;
+ }
+ }
+
@ReactMethod
fun unload() {
cleanRecognizer();
diff --git a/lib/typescript/index.d.ts b/lib/typescript/index.d.ts
index 441e41cc402cca3a60b34978ef4fea976076259c..a173acebb4b314402550442ad471e0f7c706e3c4 100644
--- a/lib/typescript/index.d.ts
+++ b/lib/typescript/index.d.ts
@@ -10,6 +10,8 @@ export default class Vosk {
currentRegisteredEvents: EmitterSubscription[];
start: (grammar?: string[] | null) => Promise<String>;
stop: () => void;
+ stopOnly: () => void;
+ cleanup: () => void;
unload: () => void;
onResult: (onResult: (e: VoskEvent) => void) => EventSubscription;
onFinalResult: (onFinalResult: (e: VoskEvent) => void) => EventSubscription;
diff --git a/package.json b/package.json
index 707eddb8d68007f93071ac659c5b087c935c5f01..90ebe20f224eeec472c377df1fef9b15f2ff8200 100644
--- a/package.json
+++ b/package.json
@@ -11,12 +11,9 @@
"src",
"lib",
"android",
- "ios",
"cpp",
- "react-native-vosk.podspec",
"!lib/typescript/example",
"!android/build",
- "!ios/build",
"!**/__tests__",
"!**/__fixtures__",
"!**/__mocks__"
diff --git a/react-native-vosk.podspec b/react-native-vosk.podspec
deleted file mode 100644
index e3d41b90c5eef890c7a5108aaf16ac07d34a698b..0000000000000000000000000000000000000000
--- a/react-native-vosk.podspec
+++ /dev/null
@@ -1,41 +0,0 @@
-require "json"
-
-package = JSON.parse(File.read(File.join(__dir__, "package.json")))
-folly_version = '2021.06.28.00-v2'
-folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
-
-Pod::Spec.new do |s|
- s.name = "react-native-vosk"
- s.version = package["version"]
- s.summary = package["description"]
- s.homepage = package["homepage"]
- s.license = package["license"]
- s.authors = package["author"]
-
- s.platforms = { :ios => "10.0" }
- s.source = { :git => "https://github.com/riderodd/react-native-vosk.git", :tag => "#{s.version}" }
-
- s.source_files = "ios/**/*.{h,m,mm,swift}"
- s.resource_bundles = { 'Vosk' => ['ios/Vosk/*'] }
-
- s.dependency "React-Core"
- s.frameworks = "Accelerate"
- s.library = "c++"
- s.vendored_frameworks = "ios/libvosk.xcframework"
- s.requires_arc = true
-
- # Don't install the dependencies when we run `pod install` in the old architecture.
- if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
- s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
- s.pod_target_xcconfig = {
- "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
- }
-
- s.dependency "React-Codegen"
- s.dependency "RCT-Folly", folly_version
- s.dependency "RCTRequired"
- s.dependency "RCTTypeSafety"
- s.dependency "ReactCommon/turbomodule/core"
- end
-end
diff --git a/src/index.tsx b/src/index.tsx
index d9f90c921d89b1b4d85e145443ed3376546a368a..29e4068dbd7500828a73145bd25497a52c9bf638 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -69,6 +69,15 @@ export default class Vosk {
VoskModule.stop();
};
+ stopOnly = () => {
+ VoskModule.stopOnly();
+ };
+
+ cleanup = () => {
+ this.cleanListeners();
+ VoskModule.cleanup();
+ };
+
unload = () => {
this.cleanListeners();
VoskModule.unload();

View File

@@ -0,0 +1,136 @@
<mxfile host="Electron" modified="2023-04-29T09:42:39.598Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.1 Chrome/112.0.5615.87 Electron/24.1.2 Safari/537.36" etag="apmX4QvXCQymGu7gtKJn" version="21.2.1" type="device">
<diagram name="Page-1" id="5f0bae14-7c28-e335-631c-24af17079c00">
<mxGraphModel dx="1244" dy="759" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="93vzSs2z7RmF_nCAYhdf-1" value="Front end" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="465" y="120" width="170" height="60" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-4" value="Service" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="320" y="280" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-5" value="Service" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="490" y="280" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-6" value="Service" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="670" y="280" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-10" value="Model" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="320" y="430" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-11" value="Model" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="490" y="430" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-12" value="Model" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="670" y="430" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-14" value="SQLite database" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="1">
<mxGeometry x="490" y="580" width="122.5" height="100" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-19" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-10" target="93vzSs2z7RmF_nCAYhdf-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-20" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-11" target="93vzSs2z7RmF_nCAYhdf-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-21" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-12" target="93vzSs2z7RmF_nCAYhdf-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-22" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-10" target="93vzSs2z7RmF_nCAYhdf-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-23" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-11" target="93vzSs2z7RmF_nCAYhdf-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-24" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-12" target="93vzSs2z7RmF_nCAYhdf-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-25" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-10" target="93vzSs2z7RmF_nCAYhdf-6">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-26" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-11" target="93vzSs2z7RmF_nCAYhdf-6">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-27" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-12" target="93vzSs2z7RmF_nCAYhdf-6">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-28" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-10" target="93vzSs2z7RmF_nCAYhdf-14">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-29" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-14" target="93vzSs2z7RmF_nCAYhdf-11">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-30" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-14" target="93vzSs2z7RmF_nCAYhdf-12">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="700" y="440" as="sourcePoint" />
<mxPoint x="750" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-31" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-4" target="93vzSs2z7RmF_nCAYhdf-1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="620" y="440" as="sourcePoint" />
<mxPoint x="670" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-32" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-5" target="93vzSs2z7RmF_nCAYhdf-1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="620" y="440" as="sourcePoint" />
<mxPoint x="670" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-33" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-6" target="93vzSs2z7RmF_nCAYhdf-1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="620" y="440" as="sourcePoint" />
<mxPoint x="670" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-37" value="BACKEND" style="swimlane;whiteSpace=wrap;html=1;swimlaneFillColor=none;shadow=0;" vertex="1" parent="1">
<mxGeometry x="280" y="230" width="560" height="480" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-38" value="JSON config file" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;" vertex="1" parent="1">
<mxGeometry x="910" y="420" width="80" height="100" as="geometry" />
</mxCell>
<mxCell id="93vzSs2z7RmF_nCAYhdf-39" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="93vzSs2z7RmF_nCAYhdf-37" target="93vzSs2z7RmF_nCAYhdf-38">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="830" y="480" as="sourcePoint" />
<mxPoint x="800" y="580" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -0,0 +1,70 @@
<mxfile host="Electron" modified="2023-04-29T10:24:42.580Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.1 Chrome/112.0.5615.87 Electron/24.1.2 Safari/537.36" etag="kcPEKHJGaBvNGFhEOF2g" version="21.2.1" type="device">
<diagram name="Page-1" id="5f0bae14-7c28-e335-631c-24af17079c00">
<mxGraphModel dx="1306" dy="797" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="t8PL5avYcYxuv0YEq-6K-7" value="Joplin Server" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="320" y="40" width="630" height="465" as="geometry">
<mxRectangle x="350" y="300" width="120" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-2" value="Server application" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="t8PL5avYcYxuv0YEq-6K-7">
<mxGeometry x="270" y="92.5" width="170" height="80" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-3" value="PostgreSQL" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="t8PL5avYcYxuv0YEq-6K-7">
<mxGeometry x="190" y="262.5" width="140" height="110" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-5" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="t8PL5avYcYxuv0YEq-6K-7" source="t8PL5avYcYxuv0YEq-6K-3" target="t8PL5avYcYxuv0YEq-6K-2">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="280" y="232.5" as="sourcePoint" />
<mxPoint x="330" y="182.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-11" value="Note metadata,&lt;br&gt;user accounts, etc." style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="t8PL5avYcYxuv0YEq-6K-5">
<mxGeometry x="0.0586" y="1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-4" value="AWS S3" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;" vertex="1" parent="t8PL5avYcYxuv0YEq-6K-7">
<mxGeometry x="430" y="277.5" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-6" value="Note and attachment&lt;br&gt;content" style="endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0;exitY=0;exitDx=50;exitDy=0;exitPerimeter=0;" edge="1" parent="t8PL5avYcYxuv0YEq-6K-7" source="t8PL5avYcYxuv0YEq-6K-4" target="t8PL5avYcYxuv0YEq-6K-2">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="242.5" as="sourcePoint" />
<mxPoint x="440" y="192.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-12" value="Reverse proxy" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="t8PL5avYcYxuv0YEq-6K-7">
<mxGeometry x="70" y="97.5" width="75" height="75" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-13" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="t8PL5avYcYxuv0YEq-6K-7" source="t8PL5avYcYxuv0YEq-6K-12" target="t8PL5avYcYxuv0YEq-6K-2">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="180" y="160" as="sourcePoint" />
<mxPoint x="230" y="110" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-18" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="t8PL5avYcYxuv0YEq-6K-7" source="t8PL5avYcYxuv0YEq-6K-14" target="t8PL5avYcYxuv0YEq-6K-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-14" value="Env file (config)" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;" vertex="1" parent="t8PL5avYcYxuv0YEq-6K-7">
<mxGeometry x="540" y="90" width="60" height="85" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-8" value="Joplin Application (mobile, desktop, ...)" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="40" y="110" width="130" height="130" as="geometry" />
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-9" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="t8PL5avYcYxuv0YEq-6K-8" target="t8PL5avYcYxuv0YEq-6K-12">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="130" y="270" as="sourcePoint" />
<mxPoint x="310" y="230" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t8PL5avYcYxuv0YEq-6K-10" value="HTTP REST requests" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="t8PL5avYcYxuv0YEq-6K-9">
<mxGeometry x="0.0435" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -42,7 +42,7 @@ export function addJoplinChecklistCommands(editor, ToggleList) {
});
editor.addCommand('InsertJoplinChecklist', function (ui, detail) {
detail = Object.assign({}, detail, { listType: 'joplinChecklist' });
detail = { ...detail, listType: 'joplinChecklist' };
ToggleList.toggleList(editor, 'UL', detail);
});
}

View File

@@ -0,0 +1,821 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}progress,sub,sup{vertical-align:baseline}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}details,main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none}
/* Global */
:root {
--primary-DarkBlue: #043873;
--primary-White: #ffffff;
--primary-DarkGray: #32363f;
--accent-LightBlue: #4f9cf9;
--accent-Yellow: #ffe492;
--variationPrimary-VaraintDark: #072445;
--variationPrimary-VaraintWhite: #f8f9fa;
--variationPrimary-VaraintDarkGray: #212529;
--variationAccent-VaraintLightBlue: #F7FBFF;
}
* {
font-family: "Montserrat", sans-serif;
}
h2 {
border-bottom: none;
margin-bottom: 0;
margin-top: 0.7em;
}
#mobile_icon_logo{
display: none;
}
.joplin__para {
font-weight: 400;
font-size: 20.8px;
line-height: 1.5;
color: var(--primary-DarkGray);
margin: 0;
padding: 0;
}
@media screen and (max-width: 767px) {
.joplin__para {
/* text-align: center; */
width: 100% !important;
}
}
@media screen and (max-width: 425px) {
.joplin__para {
font-size: 18px;
}
}
.joplin__tagline1 {
font-weight: 700;
font-size: 32px;
line-height: 1.5;
color: var(--variationPrimary-VaraintDarkGray);
}
@media screen and (max-width: 425px) {
.joplin__tagline1 {
font-size: 28px;
}
}
@media (min-width: 576px) {
.container {
max-width: 540px;
}
}
@media (min-width: 768px) {
.container {
max-width: 720px;
}
}
@media (min-width: 992px) {
.container {
max-width: 960px;
}
}
@media (min-width: 1200px) {
.container {
max-width: 1140px;
}
}
@media (min-width: 1400px) {
.container {
max-width: 1220px;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.justify-content-tablet-end {
justify-content: flex-end;
}
}
/* Global */
/* Header */
header {
background-image: url("../images/brand/background\ blue\ motif\ 1.png");
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
border-radius: 5px;
padding: 36px 0;
}
header .container nav {
display: flex;
justify-content: space-between;
align-items: center;
}
@media screen and (max-width: 425px) {
header .container nav {
align-items: flex-start;
}
}
h1.main-logo {
font-weight: 600;
font-size: 48px;
color: var(--primary-DarkBlue);
margin: 0;
border-bottom: 1px solid #ddd;
line-height: 1.3em;
padding-bottom: 0.5em;
}
@media screen and (max-width: 992px) {
header .container nav img {
max-width: 200px;
}
#brand_guidelines{
margin-top: 50px;
font-weight: 600;
}
}
@media screen and (max-width: 767px) {
header .container nav img {
max-width: 150px;
}
}
@media screen and (max-width: 576px) {
#main_lockup {
display: none;
}
#mobile_icon_logo{
display: block;
max-width: 80px;
margin-top: 20px;
}
#brand_guidelines{
text-align: left;
padding-left: 20px;
margin-top: 10px;
}
}
@media screen and (max-width: 375px) {
header .container nav h1.main-logo {
font-size: 40px;
}
#main_lockup{
display: none;
}
#mobile_icon_logo{
display: block;
max-width: 80px;
margin-top: 20px;
}
#brand_guidelines{
text-align: left;
padding-left: 30px;
margin-top: 10px;
}
}
/*header .container nav .logo {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 30px;
flex-wrap: nowrap;
}*/
@media (min-width: 768px) and (max-width: 991px) {
header .container nav .logo {
align-items: flex-start;
}
}
header .container nav .logo h3 {
font-weight: 600;
font-size: 48px;
color: #ffffff;
letter-spacing: 1px;
margin: 0;
}
@media screen and (max-width: 560px) {
header .container nav .logo h3 {
display: none;
}
}
/* Header */
/* joplin Logos */
.joplin__logos {
padding-top: 0px;
padding-bottom: 43px;
}
.joplin__logos h2.main-logo {
font-weight: 700;
font-size: 40px;
color: var(--primary-DarkBlue);
/* margin-bottom: 45px; */
}
@media screen and (max-width: 767px) {
.joplin__logos h2.main-logo {
text-align: center;
}
}
@media screen and (max-width: 767px) {
.joplin__logos h2.main-logo {
font-size: 33px;
}
}
.joplin__logos .container > p {
margin-bottom: 6px;
}
.joplin__logos > .wrapper {
padding: 40px 0 45px 0;
margin: 40px 45px;
/* width: calc(100% - 6.5vw); */
border: 1px solid var(--variationPrimary-VaraintDarkGray);
border-radius: 5px;
margin-left: 0;
margin-right: 0;
}
@media screen and (max-width: 1440px) {
.joplin__logos > .wrapper {
padding: 40px 0 45px 0;
margin: 40px auto;
margin-left: 0;
margin-right: 0;
}
}
.joplin__logos .wrapper .para-1 {
margin-bottom: 19px;
}
.joplin__logos .wrapper .logo-wrapper {
display: flex;
justify-content: flex-start;
align-items: center;
gap: 27px;
}
.joplin__logos .wrapper .logo-wrapper:last-child {
gap: 24px;
}
@media screen and (max-width: 320px) {
.joplin__logos .wrapper .logo-wrapper img {
width: 50px;
height: 50px;
}
}
.joplin__logos .wrapper .logo-wrapper h4 {
font-size: 38px;
font-weight: 600;
}
@media screen and (max-width: 320px) {
.joplin__logos .wrapper .logo-wrapper h4 {
font-size: 32px;
font-weight: 600;
}
}
.joplin__logos .wrapper .logo-wrapper .blue-header {
color: var(--accent-LightBlue);
margin: 0;
}
.joplin__logos .wrapper .logo-wrapper .white-header {
color: var(--primary-White);
margin: 0;
}
.joplin__logos .wrapper .para-1 .blue-text {
font-weight: bold;
color: var(--accent-LightBlue);
}
@media screen and (max-width: 767px) {
.joplin__logos .wrapper .box:nth-child(1) {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
}
.joplin__logos .wrapper .box:nth-child(1) > p {
width: 80%;
}
@media screen and (max-width: 1024px) {
.joplin__logos .wrapper .box:nth-child(1) > p {
width: 90%;
}
}
.para-1 {
width: 100%;
}
.joplin__logos .wrapper-2 .our-para {
width: 100% !important;
}
@media screen and (min-width: 1400px) {
.joplin__logos .wrapper .box2 {
/* padding-left: 50px;
margin-right: -130px; */
}
}
.joplin__logos .wrapper .colored-box {
background-color: var(--primary-DarkBlue);
padding: 17px 15px 15px 24px;
/* width: 320px; */
/* height: 189px; */
}
@media (min-width: 768px) and (max-width: 991px) {
.joplin__logos .wrapper .colored-box {
transform: translateX(-35px);
}
}
.joplin__logos .wrapper .colored-box p {
font-weight: normal;
color: var(--primary-White);
margin-bottom: 20px;
line-height: 1.5;
}
@media screen and (max-width: 767px) {
.joplin__logos .wrapper .colored-box {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
}
}
.joplin__logos .wrapper .box-wrapper {
display: flex;
justify-content: flex-start;
align-items: flex-start;
gap: 14px;
}
@media screen and (max-width: 767px) {
.joplin__logos .wrapper .box-wrapper {
flex-direction: column-reverse;
justify-content: center;
align-items: center;
}
.joplin__logos .wrapper h2 {
text-align: center;
}
}
.joplin__logos .wrapper .box-wrapper img {
margin-top: 7px;
max-width: 100%;
}
.joplin__logos .wrapper .box-wrapper p {
width: 70%;
}
.joplin__logos .wrapper-2 {
position: relative;
padding: 42px 0 35px 0;
}
@media screen and (max-width: 425px) {
.joplin__logos .wrapper-2 {
padding: 42px 0 35px 0;
}
}
.joplin__logos .wrapper-2 .pipeline {
width: 1px;
height: 94%;
background-color: var(--variationPrimary-VaraintDarkGray);
position: absolute;
top: 50%;
left: 47%;
transform: translate(-50%, -50%);
}
@media screen and (max-width: 1200px) {
.joplin__logos .wrapper-2 .pipeline {
display: none;
}
}
@media screen and (max-width: 1366px) {
.joplin__logos .wrapper-2 .pipeline {
left: 49%;
}
}
.joplin__logos .wrapper-2 .joplin__tagline1 {
margin-bottom: 34px;
}
.joplin__logos .wrapper-2 .our-para {
margin-top: 19px;
}
.joplin__logos .wrapper-2 img {
max-width: 100%;
}
@media screen and (max-width: 425px) {
.joplin__logos .wrapper-2 .box-wrapper {
margin-right: 0;
}
}
@media (min-width: 1400px) and (max-width: 2100px) {
.joplin__logos .wrapper-2 .special-box {
margin-left: 150px;
}
.joplin__logos .wrapper-2 .special-box p {
width: 100%;
}
.joplin__logos .wrapper-2 .pipeline {
left: 53%;
}
}
/* @media (min-width: 1441px) and (max-width: 1750px) {
.joplin__logos .p-row {
padding: 0 5rem;
}
} */
/* joplin Logos */
/* joplin__Colours */
.joplin__colours {
padding: 5px 0;
background-image: url("../images/brand/background\ blue\ motif\ 2.png");
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
.joplin__colours h2 {
color: var(--primary-White);
font-size: 40px;
margin-bottom: 28px;
font-weight: 700;
}
@media screen and (max-width: 767px) {
.joplin__colours h2 {
font-size: 33px;
}
}
@media screen and (max-width: 767px) {
.joplin__colours h2 {
text-align: center;
}
}
.joplin__colours p {
color: var(--primary-White);
margin-bottom: 40px;
}
.joplin__colours .custom-row {
display: flex;
justify-content: center;
align-items: center;
gap: 45px;
padding-bottom: 20px;
}
@media screen and (max-width: 1400px) {
.joplin__colours .custom-row {
flex-wrap: wrap;
}
}
.joplin__colours .custom-row .chartjs-wrapper canvas {
width: 535px;
}
@media screen and (max-width: 575px) {
.joplin__colours .custom-row .chartjs-wrapper canvas {
width: 270px;
}
}
/* joplin__Colours */
/* joplin__Pallet */
.joplin__pallet {
padding: 45px 0 92px 0;
}
.joplin__pallet h3 {
font-weight: 600;
font-size: 32px;
margin-bottom: 50px;
}
@media screen and (max-width: 767px) {
.joplin__pallet h3 {
font-size: 28px;
}
}
@media screen and (max-width: 1200px) {
.joplin__pallet h3 {
text-align: center;
}
}
.joplin__pallet .sigma-wrapper {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 35px;
}
@media screen and (max-width: 555px) {
.joplin__pallet .sigma-wrapper {
flex-direction: column;
}
}
.joplin__pallet .sigma-wrapper .circle-wrapper {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-start;
}
@media screen and (max-width: 992px) {
.joplin__pallet .sigma-wrapper .circle-wrapper {
align-items: center;
}
}
@media screen and (max-width: 1200px) {
.joplin__pallet .sigma-wrapper {
justify-content: center;
}
}
.joplin__pallet .sigma-wrapper .circle-wrapper .circle {
width: 120px;
height: 120px;
border-radius: 50%;
border: 1px solid #000;
margin-bottom: 30px;
}
.joplin__pallet .row-space {
padding: 50px 0;
display: flex;
justify-content: flex-end;
align-items: center;
}
.joplin__pallet .row-space div {
width: 97%;
height: 1px;
background-color: var(--primary-DarkGray);
}
.joplin__pallet .dark-blue {
background-color: var(--primary-DarkBlue);
}
.joplin__pallet .white {
background-color: var(--primary-White);
}
.joplin__pallet .dark-gray {
background-color: var(--primary-DarkGray);
}
.joplin__pallet .light-blue {
background-color: var(--accent-LightBlue);
}
.joplin__pallet .yellow {
background-color: var(--accent-Yellow);
}
.joplin__pallet .variant-dark {
background-color: var(--variationPrimary-VaraintDark);
}
.joplin__pallet .variant-white {
background-color: var(--variationPrimary-VaraintWhite);
}
.joplin__pallet .variant-dark-gray {
background-color: var(--variationPrimary-VaraintDarkGray);
}
.joplin__pallet .variant-light-blue {
background-color: var(--variationAccent-VaraintLightBlue);
}
/* joplin__Pallet */
/* joplin__State */
.joplin__state {
background-color: var(--primary-DarkBlue);
background-image: url("../images/brand/Rectangle\ 16.png");
background-position: bottom center;
background-repeat: no-repeat;
background-size: cover;
padding: 65px 0 78px 0;
position: relative;
}
.joplin__state::before {
content: "";
width: 1px;
height: 98%;
background-color: var(--variationPrimary-VaraintDarkGray);
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
overflow: hidden;
}
@media screen and (max-width: 992px) {
.joplin__state::before {
display: none;
}
}
.joplin__state .image {
transform: translateY(25px);
}
.joplin__state .wrapper > div {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
}
.joplin__state .wrapper > div .box h2 {
color: var(--primary-White);
font-size: 40px;
margin-bottom: 28px;
font-weight: 700;
}
/* @media screen and (min-width: 1400px) {
.joplin__state .wrapper > div .box h2 {
text-wrap: nowrap;
}
} */
@media screen and (max-width: 767px) {
.joplin__state .wrapper > div .box h2 {
text-align: center;
}
}
@media screen and (max-width: 500px) {
.joplin__state .wrapper > div .box h2 {
font-size: 38px;
}
}
@media screen and (max-width: 767px) {
.joplin__state .wrapper > div .box h2 {
font-size: 33px;
}
}
.joplin__state .wrapper > div .box p {
color: var(--primary-White);
width: 85%;
}
@media screen and (max-width: 500px) {
.joplin__state .wrapper > div .box p {
font-size: 18px;
}
}
.joplin__state .wrapper > div .box img {
max-width: 100%;
}
.joplin__highlighter {
padding: 74px 0;
background-image: url("../images/brand/Rectangle\ 16.png");
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
.joplin__highlighter h2 {
color: var(--primary-White);
font-size: 40px;
margin-bottom: 28px;
font-weight: 700;
}
@media screen and (max-width: 767px) {
.joplin__highlighter h2 {
font-size: 33px;
}
}
@media screen and (max-width: 767px) {
.joplin__highlighter h2 {
text-align: center;
}
}
.joplin__highlighter p {
color: var(--primary-White);
}
@media screen and (max-width: 500px) {
.joplin__highlighter p {
font-size: 18px;
}
}
.joplin__highlighter .wrapper {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 22px;
}
@media screen and (max-width: 767px) {
.joplin__highlighter .wrapper {
flex-wrap: wrap;
row-gap: 25px;
justify-content: center;
}
}
.joplin__highlighter .wrapper div {
padding: 32px 62px;
border-radius: 5px;
position: relative;
}
.joplin__highlighter .wrapper div:first-child img {
position: absolute;
top: 57%;
max-width: 100%;
}
.joplin__highlighter .wrapper div:last-child img {
position: absolute;
top: 59%;
max-width: 100%;
}
@media screen and (max-width: 1200px) {
.joplin__highlighter .wrapper div:first-child img {
top: 43%;
}
.joplin__highlighter .wrapper div:last-child img {
top: 44%;
}
}
@media screen and (max-width: 767px) {
.joplin__highlighter .wrapper div:first-child img {
top: 59%;
}
.joplin__highlighter .wrapper div:last-child img {
top: 59%;
}
}
@media screen and (max-width: 490px) {
.joplin__highlighter .wrapper div:first-child img {
top: 43%;
}
.joplin__highlighter .wrapper div:last-child img {
top: 43%;
}
}
@media screen and (max-width: 320px) {
.joplin__highlighter .wrapper div:last-child img {
top: 36%;
}
}
.joplin__highlighter .wrapper div.yellow {
background-color: var(--primary-White);
}
.joplin__highlighter .wrapper div.blue {
background-color: var(--primary-DarkBlue);
}
.joplin__highlighter .wrapper div h4 {
color: var(--variationPrimary-VaraintDarkGray);
margin: 0;
font-weight: 700;
font-size: 20.8px;
line-height: 1.5;
}
.joplin__highlighter .wrapper div.blue h4 {
color: var(--primary-White);
}
/* joplin__State */
/* joplin__Voice */
.joplin__voice {
padding: 78px 0;
}
.joplin__voice .container h2 {
font-weight: 700;
font-size: 40px;
line-height: 1.5;
color: var(--variationPrimary-VaraintDarkGray);
}
@media screen and (max-width: 500px) {
.joplin__voice .container h2 {
font-size: 38px;
}
}
@media screen and (max-width: 767px) {
.joplin__voice .container h2 {
font-size: 33px;
text-align: center;
}
}
.joplin__voice .container .wrapper {
margin-top: 57px;
}
.joplin__voice .container .wrapper .box {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 20px;
}
@media screen and (max-width: 767px) {
.joplin__voice .container .wrapper .box {
flex-direction: column;
}
}
.joplin__voice .container .wrapper .box div:first-child {
flex: 1;
}
.joplin__voice .container .wrapper .box div:last-child {
flex: 2;
}
.joplin__voice .container .wrapper .box div h3 {
font-weight: 700;
font-size: 32px;
line-height: 1.7;
color: var(--primary-DarkGray);
}
@media (max-width: 767px) {
.joplin__voice .container .wrapper .box div h3 {
text-align: center;
font-size:28px;
}
.joplin__voice .container .wrapper .box {
align-items: center;
}
}
.joplin__voice .container .wrapper .box div p {
margin-bottom: 36px;
}
@media screen and (max-width: 500px) {
.joplin__voice .container .wrapper .box div p {
font-size: 18px;
}
}
/* joplin__Voice */
.chartjs-wrapper {
background-color: #d9d9d9;
padding: 10px 20px;
max-width: 45%;
}

View File

@@ -657,6 +657,16 @@ footer .bottom-links-row p {
font-size: 1.1em;
}
.language-switcher {
display: inline;
}
.language-switcher > button {
border: none;
background-color: transparent;
color: #0557ba;
}
/*****************************************************************
WHAT'S NEW PAGE
*****************************************************************/
@@ -780,6 +790,7 @@ footer .bottom-links-row p {
#menu-mobile .social-links .social-link-mastodon,
#menu-mobile .social-links .social-link-reddit,
#menu-mobile .social-links .social-link-linkedin,
#menu-mobile .social-links .social-link-patreon {
display: none;
}
@@ -947,6 +958,41 @@ footer .bottom-links-row p {
}
}
/*****************************************************************
MORE NARROW VIEW
eg for Galaxy S9
*****************************************************************/
@media (max-width: 580px) {
#nav-section .plans-button {
display: none;
}
}
/*****************************************************************
MORE NARROW VIEW
eg for Galaxy S9
*****************************************************************/
@media (max-width: 400px) {
#nav-section .navbar-mobile-content a.sponsor-button .sponsor-button-label {
font-size: 12px;
}
#nav-section .navbar-mobile-content a.sponsor-button {
padding: 2px 6px;
margin-right: 0.2em;
}
#nav-section a {
margin-left: 5px;
}
}
/*****************************************************************
VERY NARROW VIEW
eg for Galaxy Fold
@@ -968,6 +1014,15 @@ footer .bottom-links-row p {
margin-left: 4px;
}
div.navbar-mobile-content a.sponsor-button {
margin-right: 10px;
}
#nav-section .button-link {
padding-left: 0;
padding-right: 0;
}
}
/*****************************************************************

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

View File

@@ -9,7 +9,9 @@ function getOs() {
function getFilename(path) {
if (!path) return '';
const s = path.split('/');
return s.pop();
const urlWithParams = s.pop();
const s2 = urlWithParams.split('?');
return s2[0];
}
function getMobileOs() {

View File

@@ -1,4 +1,76 @@
<?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>Thu, 02 Mar 2023 00:00:00 GMT</lastBuildDate><atom:link href="https://joplinapp.org/rss.xml" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Mar 2023 00:00:00 GMT</pubDate><item><title><![CDATA[Joplin will participate in JdLL 2023!]]></title><description><![CDATA[<p>On 1 and 2 April 2023, we will have a stand for Joplin at the <a href="https://www.jdll.org/">Journées du Logiciel Libre</a> in Lyon, France. The JdLL has been taking place in Lyon for 24 years and is a popular open source conference in France. We had a stand in 2020 and 2021 but that was cancelled due to Covid, so this year is a first for Joplin!</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>Mon, 08 May 2023 00:00:00 GMT</lastBuildDate><atom:link href="https://joplinapp.org/rss.xml" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 May 2023 00:00:00 GMT</pubDate><item><title><![CDATA[What's new in Joplin 2.11]]></title><description><![CDATA[<h2>Desktop<a name="desktop" href="#desktop" class="heading-anchor">🔗</a></h2>
<h3>Add support for plugin user data<a name="add-support-for-plugin-user-data" href="#add-support-for-plugin-user-data" class="heading-anchor">🔗</a></h3>
<p>Developers of plugins now have the ability to associate additional information with notes, notebooks, and tags. This data is then synchronized across multiple devices. For instance, it is possible to envision attaching OCR data to an image or incorporating plugin-specific parameters to a note, which can subsequently be synchronized across all devices.</p>
<h3>Improved end-to-end encryption<a name="improved-end-to-end-encryption" href="#improved-end-to-end-encryption" class="heading-anchor">🔗</a></h3>
<p>End-to-end encryption (E2EE) plays a vital role in safeguarding your data privacy. Our aim is to make it effortlessly user-friendly, seamlessly integrated, and possibly enabled by default.</p>
<p>To achieve this objective, we have implemented several enhancements in this version. These improvements encompass more streamlined management of encryption keys and simplified setup processes for both new and existing devices utilising end-to-end encryption.</p>
<p>Moreover, we have upgraded the encryption algorithm from AES-128 to AES-256, ensuring heightened security for your data in the long run.</p>
<h3>Export a Mermaid graph<a name="export-a-mermaid-graph" href="#export-a-mermaid-graph" class="heading-anchor">🔗</a></h3>
<p>There is now a context menu on Mermaid graphs which you can use to export your graph as PNG, SVG, or by copying the vector data to the clipboard.</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20230711-mermaid-export.png" alt=""></p>
<h3>Auto-detect language on startup<a name="auto-detect-language-on-startup" href="#auto-detect-language-on-startup" class="heading-anchor">🔗</a></h3>
<p>A small but useful change - the application language is now automatically detected startup. Of course, if needed you can later change it in the configuration screen.</p>
<h2>Android<a name="android" href="#android" class="heading-anchor">🔗</a></h2>
<p>As always most of these changes also apply to the mobile applications, such as the improved end-to-end encryption support, language auto-detection, and various bug fixes and improvements. But besides those, we also have several mobile-specific updates:</p>
<h3>Support for offline voice typing<a name="support-for-offline-voice-typing" href="#support-for-offline-voice-typing" class="heading-anchor">🔗</a></h3>
<p>The Android mobile app now support offline voice typing - it means your voice recording does not need to be uploaded to Google or Samsung server - it all takes place on your device for added security. To make use of it, open any note, tap on the three dots menu, then &quot;Voice typing&quot;.</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20230711-voice-typing-1.png" alt=""></p>
<p>The first time, the app will need to download the language files to your device:</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20230711-voice-typing-2.png" alt=""></p>
<p>Once they are there, simply record your message and it will appear in the note:</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20230711-voice-typing-3.png" alt=""></p>
<h3>Create and move sub-notebooks<a name="create-and-move-sub-notebooks" href="#create-and-move-sub-notebooks" class="heading-anchor">🔗</a></h3>
<p>@jcgurango implemented support for creating sub-notebooks, and moving notebooks around in the mobile app. To do so, long press on any notebook and press &quot;Edit&quot;. You can now choose to move it under any other notebook using the provided dropdown list.</p>
<h2>Full changelog<a name="full-changelog" href="#full-changelog" class="heading-anchor">🔗</a></h2>
<p>This is just an overview of the main features. The full changelog is available there:</p>
<ul>
<li>Desktop: <a href="https://joplinapp.org/changelog">https://joplinapp.org/changelog</a></li>
<li>Android: <a href="https://joplinapp.org/changelog_android">https://joplinapp.org/changelog_android</a></li>
<li>iOS: <a href="https://joplinapp.org/changelog_ios">https://joplinapp.org/changelog_ios</a></li>
</ul>
]]></description><link>https://joplinapp.org/news/20230508-release-2-11/</link><guid isPermaLink="false">20230508-release-2-11</guid><pubDate>Mon, 08 May 2023 00:00:00 GMT</pubDate><twitter-text>What&apos;s new in Joplin 2.11</twitter-text></item><item><title><![CDATA[What's new in Joplin 2.10]]></title><description><![CDATA[<p>Great news! Joplin 2.10 is here and we've made some amazing improvements and bug fixes, with a focus on the mobile app.</p>
<h1>New design for &quot;New note&quot; and &quot;New to-do&quot; buttons<a name="new-design-for-new-note-and-new-to-do-buttons" href="#new-design-for-new-note-and-new-to-do-buttons" class="heading-anchor">🔗</a></h1>
<p>We're excited to announce that we've made it even easier to create new notes and to-do lists with new designs for the &quot;New note&quot; and &quot;New to-do&quot; buttons.</p>
<p>If there is enough space, the button labels will be shown in full:</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20230508-new-note-1.png" alt=""></p>
<p>While for those who prefer a more narrow note list, only the button icons will be shown:</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20230508-new-note-2.png" alt=""></p>
<p>It's a small improvement, but we're confident it will make the app even more intuitive for new users.</p>
<h1>Fixes and improvements<a name="fixes-and-improvements" href="#fixes-and-improvements" class="heading-anchor">🔗</a></h1>
<p>This version includes 30 bug fixes and 16 general improvements. Let's dive into some of the highlights:</p>
<ul>
<li>
<p>Self Not Found and Pedro have been working tirelessly on improving the pasting of plain text in the application, and we're happy to say that there is now a brand new &quot;Paste as text&quot; option in the Edit menu.</p>
</li>
<li>
<p>For our amazing plugin developers out there, we have added a few new APIs and fixed a bug that was preventing certain plugins from starting. You can now get even more creative with your plugins!</p>
</li>
<li>
<p>Tao Klerks, has been hard at work fixing and improving the custom sort order of the note list. No more notes in the wrong position when you drop them! Plus, custom sort order is now synchronised too.</p>
</li>
<li>
<p>We've also fixed a few bugs with our Web Clipper, including an issue where certain pages wouldn't import their images. A new Web Clipper has also been released, so you can clip to your heart's content!</p>
</li>
</ul>
<p>Last but not least, we have modernised both the desktop and mobile application modules, just <a href="https://joplinapp.org/news/20221115-renovate/">as we previously announced</a>. Although these changes may not be visible to you, they required a lot of work! But the result is that our applications are now more stable and secure, and it will be easier to maintain them in the long run. We're using a tool called <a href="https://www.mend.io/free-developer-tools/renovate/">Renovate</a>, which will automatically propose package updates that we will review. In total, we've updated a whopping 633 packages so far!</p>
<h1>Android app is available in the Play Store<a name="android-app-is-available-in-the-play-store" href="#android-app-is-available-in-the-play-store" class="heading-anchor">🔗</a></h1>
<p>Our latest version, 2.10, is now back in the Play Store and ready for download! Although we had to skip 2.9 due to some of Google's requirements, we worked hard to ensure that our app complies with their standards, and we are excited to announce that we are back and better than ever! Our iOS version is also available, so you can continue to enjoy the app regardless of the platform you use.</p>
<h2>Biometrics support<a name="biometrics-support" href="#biometrics-support" class="heading-anchor">🔗</a></h2>
<p>To make your experience even more secure, our Android and iOS apps now support biometric unlock! With just a quick scan of your fingerprint or Face ID, you can unlock your app in no time. To enable this beta feature, just head over to the settings and click on &quot;Use biometrics to secure access to the app&quot;.</p>
<p>We've tested this feature thoroughly during prerelease, and have already fixed all known issues. However we still consider it as a beta feature for now, so if you run into any issues please let us know.</p>
<h2>Support for multiple profile<a name="support-for-multiple-profile" href="#support-for-multiple-profile" class="heading-anchor">🔗</a></h2>
<p>We're thrilled to announce that multiple profiles are now supported in our mobile app! To create a new profile, simply go to the Configuration screen and click on &quot;Manage profiles&quot; under the Tools section.</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20230508-biometrics-1.png" alt=""></p>
<p>From there, you can easily add or remove profiles as needed.</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20230508-biometrics-2.png" alt=""></p>
<p>Once multiple profiles are setup, you will see a new option in the sidebar to quickly toggle from one profile to another:</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20230508-biometrics-3.png" alt=""></p>
<p>Once you've set up multiple profiles, you can easily toggle between them using the new option in the sidebar. This feature is perfect for separating your personal and work notes into independent collections.</p>
<h2>Support for realtime search<a name="support-for-realtime-search" href="#support-for-realtime-search" class="heading-anchor">🔗</a></h2>
<p>Our mobile app now has an improved search function that performs text searches in real time! No more waiting for the search results to load, they'll appear instantly as you type.</p>
<h2>Improved filesystem sync performance<a name="improved-filesystem-sync-performance" href="#improved-filesystem-sync-performance" class="heading-anchor">🔗</a></h2>
<p>Thanks to the hard work of jd1378, the sync no longer freezes during filesystem synchronisation. We know how frustrating that can be, and we're thrilled to have solved this issue. Getting filesystem sync to work on Android is never easy due to the restrictions put in place by Google, especially since they frequently change, but we're committed to delivering the best possible experience for our Android users.</p>
]]></description><link>https://joplinapp.org/news/20230508-release-2-10/</link><guid isPermaLink="false">20230508-release-2-10</guid><pubDate>Mon, 08 May 2023 00:00:00 GMT</pubDate><twitter-text>What&apos;s new in Joplin 2.10</twitter-text></item><item><title><![CDATA[Joplin will participate in JdLL 2023!]]></title><description><![CDATA[<p>On 1 and 2 April 2023, we will have a stand for Joplin at the <a href="https://www.jdll.org/">Journées du Logiciel Libre</a> in Lyon, France. The JdLL has been taking place in Lyon for 24 years and is a popular open source conference in France. We had a stand in 2020 and 2021 but that was cancelled due to Covid, so this year is a first for Joplin!</p>
<p>Admission is free, so don't hesitate to come and meet us, exchange ideas and learn more about Joplin!</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20230202-jdll.jpg" alt="Joplin at JdLL 2023"></p>
]]></description><link>https://joplinapp.org/news/20230302-jdll-2023/</link><guid isPermaLink="false">20230302-jdll-2023</guid><pubDate>Thu, 02 Mar 2023 00:00:00 GMT</pubDate><twitter-text></twitter-text></item><item><title><![CDATA[Introducing the "GitHub Actions Raw Log Viewer" extension for Chrome]]></title><description><![CDATA[<p>If you've ever used GitHub Actions, you will find that they provide by default a nice coloured output for the log. It looks good and it's even interactive! (You can click to collapse/expand blocks of text) But unfortunately it doesn't scale to large workflows, like we have for Joplin - the log can freeze and it will take forever to search for something. Indeed searching is done in &quot;real time&quot;... which mostly means it will freeze for a minute or two for each letter you type in the search box. Not great.</p>
@@ -262,39 +334,4 @@
<p>As always the mobile apps (to be released soon) benefit from several of the above changes since they share the same codebase as the desktop app.</p>
<p>Specific to the mobile version 2.5 are some improvements to the beta editor - in particular the layout has been cleaned up, and the first word of sentences is now automatically capitalised, which makes typing notes easier. If you haven't tried the beta editor yet, you can enable it from the Configuration screen.</p>
<p>The full changelog is available there: <a href="https://joplinapp.org/changelog/">https://joplinapp.org/changelog/</a></p>
]]></description><link>https://joplinapp.org/news/20211031-115215/</link><guid isPermaLink="false">20211031-115215</guid><pubDate>Sun, 31 Oct 2021 11:52:15 GMT</pubDate><twitter-text></twitter-text></item><item><title><![CDATA["Certificate has expired" error with Joplin Cloud, and workaround]]></title><description><![CDATA[<p>Some of you might be experiencing an error &quot;Certificate has expired&quot; when synchronising with Joplin Cloud (and possibly other services) when using the desktop application.</p>
<p>This is due to Let's Encrypt root certificate that expired on 30 September, and the new method they are using is not compatible with the Joplin desktop application.</p>
<p>This actually affects thousands of applications, not just Joplin, so various solutions are being considered right now and hopefully a fix will be available relatively soon.</p>
<p>For now, as a workaround, you can simply check &quot;<strong>Ignore TLS certificate errors</strong>&quot; in <strong>Configuration &gt; Synchronisation &gt; Advanced Options</strong></p>
<p>I will let you know as soon as a fix is available so that you can clear that option.</p>
<p>More info:</p>
<p>- <a href="https://community.letsencrypt.org/t/issues-with-electron-and-expired-root/160991">Issue with Electron and expired root</a> on Let's Encrypt</p>
<p>- <a href="https://github.com/electron/electron/issues/31212">Let's Encrypt root CA isn't working properly</a> on Electron GitHub repository</p>
<p><strong>Update:</strong> I have implemented a temporary fix on Joplin Cloud which should solve the issue for now. If you're still having some issues please let me know. An updated desktop app will be available later on with a more permanent fix.</p>
]]></description><link>https://joplinapp.org/news/20210930-163458/</link><guid isPermaLink="false">20210930-163458</guid><pubDate>Thu, 30 Sep 2021 16:34:58 GMT</pubDate><twitter-text></twitter-text></item><item><title><![CDATA[Joplin 2.4 is available!]]></title><description><![CDATA[<p>Joplin 2.4 is now available on desktop, mobile and CLI. Here's what's new in this release:</p>
<h3>Sync Wizard Dialog<a name="sync-wizard-dialog" href="#sync-wizard-dialog" class="heading-anchor">🔗</a></h3>
<p>A new Sync Wizard Dialog has been added to simplify setting up sync on new clients.</p>
<p>The dialog shows the main sync targets, their differences, and makes it easy to choose one and start synchronising. This is mostly aimed at new users or those perhaps less technical. Those who are self hosting or using complex setups will still easily find what they need from a link on that dialog (or in Config &gt; Synchronisation like before).</p>
<p>Sync setup on mobile has been slightly improved too - now on a new client, instead of asking you to sync with Dropbox directly (which may not be what you want), it jumps to the Config &gt; Synchronisation section where you can select the sync target</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20210929-144036_0.png" alt=""></p>
<h3>Disable synchronisation<a name="disable-synchronisation" href="#disable-synchronisation" class="heading-anchor">🔗</a></h3>
<p>It's a small change but something that's been asked many time - it's now possible to disable synchronisation entirely by selecting &quot;None&quot; as a sync target. Previously that could be done in a hacky way, by selecting a non-configured sync target. Now it's clearer and easier to do.</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20210929-144036_1.png" alt=""></p>
<h3>Add back support for deprecated plugins<a name="add-back-support-for-deprecated-plugins" href="#add-back-support-for-deprecated-plugins" class="heading-anchor">🔗</a></h3>
<p>Recently some plugins stopped working because deprecated plugin APIs had been removed. It had been planned for a long time but I suspect the warnings weren't visible enough so plugin developers didn't act on them, and as a result many plugins stopped working.</p>
<p>This is now fixed in the latest version. A selected number of plugins will have access to these old deprecated APIs, which means they will start working again. This was mainly affecting ambrt's plugins such as &quot;Convert Text To New Note&quot; or the popular &quot;Embed Search&quot; plugin.</p>
<h3>Add support for recommended plugins<a name="add-support-for-recommended-plugins" href="#add-support-for-recommended-plugins" class="heading-anchor">🔗</a></h3>
<p>As mentioned in an earlier post, we now support <a href="https://www.patreon.com/posts/introducing-in-55618802">recommended plugins</a>. These recommended plugins appear on top when searching and are identified by a small crown.</p>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/news/20210929-144036_2.png" alt=""></p>
<h3>End to End Encryption improvements<a name="end-to-end-encryption-improvements" href="#end-to-end-encryption-improvements" class="heading-anchor">🔗</a></h3>
<p>Like most recent releases, v2.4 includes a few improvement to the End to End Encryption (E2EE) system. The goal is to make it easier to use, to make it more reliable and to support the future use case of sharing encrypted notebooks or notes.</p>
<p>One important change is the support for a master password. This single password will be responsible to encrypt various keys, including some that will be automatically generated. Thanks to this, it won't be necessary to ask to enter a new password every time a key needs to be encrypted, since the master password can be used. It will also be easier to manage since you'll only have one password to remember instead of a different one for each notebook you might have shared.</p>
<p>Finally, it's now possible to disable a master key. What it means is that it will no longer show up in the list of master keys, and will also no longer generate a warning asking you to enter the password. In some case you might have forgotten it and no longer need it key, so you can now disable it.</p>
<h3>Custom CSS<a name="custom-css" href="#custom-css" class="heading-anchor">🔗</a></h3>
<p>This version also introduces a few internal change to better support custom CSS. In particular the colours now come from a CSS file, which could potentially be overridden, and new UI elements are styled using stylesheets, which likewise could be overridden.</p>
<p>Those are just first steps, but eventually these changes will make it easier to style the UI and create new themes.</p>
<h3>Bug fixes<a name="bug-fixes" href="#bug-fixes" class="heading-anchor">🔗</a></h3>
<p>This release also includes about 30 various bug fixes and improvements.</p>
<p>A notable one is a fix for GotoAnything, which recently wasn't working on first try.</p>
<p>The plugin screen has also been improved so that search works even when GitHub is down or blocked, as it is in China in particular.</p>
]]></description><link>https://joplinapp.org/news/20210929-144036/</link><guid isPermaLink="false">20210929-144036</guid><pubDate>Wed, 29 Sep 2021 14:40:36 GMT</pubDate><twitter-text></twitter-text></item></channel></rss>
]]></description><link>https://joplinapp.org/news/20211031-115215/</link><guid isPermaLink="false">20211031-115215</guid><pubDate>Sun, 31 Oct 2021 11:52:15 GMT</pubDate><twitter-text></twitter-text></item></channel></rss>

View File

@@ -0,0 +1,396 @@
<!-- Logos Section -->
<section class="joplin__logos">
<div class="container">
<h1 class="main-logo">Joplin brand guidelines</h1>
<h2 class="main-logo">Logos</h2>
<p class="joplin__para">
All the variations of Joplin logo are all front facing. <br />
To ensure a clarity and legibility of design, the logo should always
be surrounded by a clear space.
</p>
</div>
<div class="wrapper">
<div class="container">
<div class="row align-items-center justify-content-tablet-end gy-5 p-row">
<div class="col-xxl-4 col-xl-4 col-lg-6 col-md-6 col-sm-12">
<div class="box">
<h3 class="joplin__tagline1">Lockup logo</h3>
<p class="joplin__para">
Joplin lockup is the main logo. It is used for
products and marketing communications. To ensure
sufficient contrast and readability, two following versions of
the lockup are provided.
</p>
</div>
</div>
<div class="col-xxl-4 col-xl-4 col-lg-6 col-md-6 col-sm-12">
<div class="box box2">
<p class="joplin__para para-1">
<span class="blue-text">Blue text</span> version to be used on
bright background.
</p>
<div class="logo-wrapper">
<img src="{{imageBaseUrl}}/brand/Vector.png" alt="" />
<h4 class="blue-header">Joplin</h4>
</div>
</div>
</div>
<div class="col-xxl-4 col-xl-4 col-lg-6 col-md-6 col-sm-12">
<div class="colored-box">
<p class="joplin__para">
White text version to be used <br />
on dark background.
</p>
<div class="logo-wrapper">
<img src="{{imageBaseUrl}}/brand/Vector2.png" alt="" />
<h4 class="white-header">Joplin</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="wrapper wrapper-2">
<div class="container">
<div class="pipeline"></div>
<div class="row align-items-center gy-5 p-row justify-between">
<div class="col-xxl-6 col-xl-6 col-lg-12 col-md-12 col-sm-12">
<div class="box">
<h3 class="joplin__tagline1">Brandmark logo</h3>
<div class="box-wrapper">
<img
src="{{imageBaseUrl}}/brand/J logo transparent background 1.png"
alt=""
/>
<p class="joplin__para">
The classic brandmark icon is often used on a bright
background to help increase the contrast. It is a reduced
version of a logo which should be used in limited spacing or
when using a full name is not necessary.
</p>
</div>
</div>
</div>
<div class="col-xxl-6 col-xl-6 col-lg-12 col-md-12 col-sm-12">
<div class="box special-box">
<h3 class="joplin__tagline1">Joplin tagline</h3>
<img src="{{imageBaseUrl}}/brand/tagline 1.png" alt="" />
<p class="joplin__para our-para">
Our tagline is an invitation to capture your thoughts and
securely access them from any device.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
</section>
<section class="joplin__colours">
<div class="container">
<h2>Colours</h2>
<p class="joplin__para">
Two core colour palettes can be used while representing the brand. The
accent colours are used to highlight <br />
important elements and support the colours of the core palettes.
</p>
<div class="custom-row gy-4">
<div
class="chartjs-wrapper"
>
<canvas id="chart1" ></canvas>
</div>
<div
class="chartjs-wrapper"
>
<canvas id="chart2" ></canvas>
</div>
</div>
</div>
</section>
<!-- Colours Section -->
<!-- Pallet Section -->
<section class="joplin__pallet">
<div class="container">
<div class="row gy-5">
<div class="col-xxl-6 col-xl-6 col-lg-12 col-md-12 col-sm-12">
<h3>Primary colours</h3>
<div class="sigma-wrapper">
<div class="circle-wrapper">
<div class="circle dark-blue"></div>
<div class="info">
<p class="joplin__para">Dark blue</p>
<p class="joplin__para">HEX - 043873</p>
</div>
</div>
<div class="circle-wrapper">
<div class="circle white"></div>
<div class="info">
<p class="joplin__para">White</p>
<p class="joplin__para">HEX - FFFFFF</p>
</div>
</div>
<div class="circle-wrapper">
<div class="circle dark-gray"></div>
<div class="info">
<p class="joplin__para">Dark gray</p>
<p class="joplin__para">HEX - 32363F</p>
</div>
</div>
</div>
</div>
<div class="col-1"></div>
<div class="col-xxl-5 col-xl-5 col-lg-12 col-md-12 col-sm-12">
<h3>Accent colours</h3>
<div class="sigma-wrapper">
<div class="circle-wrapper">
<div class="circle light-blue"></div>
<div class="info">
<p class="joplin__para">Light blue</p>
<p class="joplin__para">HEX - 4F9CF9</p>
</div>
</div>
<div class="circle-wrapper">
<div class="circle yellow"></div>
<div class="info">
<p class="joplin__para">Yellow</p>
<p class="joplin__para">HEX - FFE492</p>
</div>
</div>
</div>
</div>
</div>
<div class="row row-space">
<div></div>
</div>
<div class="row gy-5">
<div class="col-xxl-6 col-xl-6 col-lg-12 col-md-12 col-sm-12">
<h3>
Allowed variations of <br />
primary colours
</h3>
<div class="sigma-wrapper">
<div class="circle-wrapper">
<div class="circle variant-dark"></div>
<div class="info">
<p class="joplin__para">Variant dark</p>
<p class="joplin__para">HEX - 072445</p>
</div>
</div>
<div class="circle-wrapper">
<div class="circle variant-white"></div>
<div class="info">
<p class="joplin__para">Variant white</p>
<p class="joplin__para">HEX - F8F9FA</p>
</div>
</div>
<div class="circle-wrapper">
<div class="circle variant-dark-gray"></div>
<div class="info">
<p class="joplin__para">Variant dark gray</p>
<p class="joplin__para">HEX - 212529</p>
</div>
</div>
</div>
</div>
<div class="col-1"></div>
<div class="col-xxl-5 col-xl-5 col-lg-12 col-md-12 col-sm-12">
<h3>
Allowed variations of <br />
accent colours
</h3>
<div class="sigma-wrapper">
<div class="circle-wrapper">
<div class="circle variant-light-blue"></div>
<div class="info">
<p class="joplin__para">Variant light blue</p>
<p class="joplin__para">HEX - F7FBFF</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Pallet Section -->
<!-- State Section -->
<section class="joplin__state">
<div class="container">
<div class="wrapper row justify-content-between gy-5">
<div class="col-12 col-lg-5">
<div class="box pb-3">
<h2>Typography</h2>
<p class="joplin__para">
<b>Font-family: Montserrat</b> <br />
Montserrat is a typeface chosen for its great readability. It is
used as a default font. Sans-serif font should be used when
Montserrat is not available.
</p>
</div>
<div class="box">
<h2>Connector element</h2>
<p class="joplin__para">
The graphic element that represents the connection between the
components, files and data. It's Joplin's signature element
present in application's website as well as in marketing
communications.
</p>
</div>
</div>
<div class="col-12 col-lg-5">
<div class="box">
<h2>Imagery</h2>
<p class="joplin__para">
We uses vector art illustration . It ensures high
quality images in any scale, large or small. All the
illustrations come from storyset.com and are personalised to
match the Joplin's colours.
</p>
</div>
<div class="box">
<img src="{{imageBaseUrl}}/brand/customise-it-img 1.png" alt="" class="image" />
</div>
</div>
</div>
</div>
</section>
<section class="joplin__highlighter">
<div class="container">
<h2>Highlighter</h2>
<p class="joplin__para">
It is a reference to process of note taking on paper. It is used to
emphasize words in the titles. There are two <br />
variations of the element:
</p>
<div class="wrapper">
<div class="yellow">
<h4>Yellow version under dark text</h4>
<img src="{{imageBaseUrl}}/brand/frame-yellow 1.png" alt="" />
</div>
<div class="blue">
<h4>Light blue version under white text</h4>
<img src="{{imageBaseUrl}}/brand/frame-blue 1.png" alt="" />
</div>
</div>
</div>
</section>
<section class="joplin__voice">
<div class="container">
<h2>Tone of voice</h2>
<div class="wrapper">
<div class="box">
<div>
<h3>
Professional, <br />
Friendly, <br />
Welcoming, <br />
Trustworthy, <br />
Open-minded, <br />
Genuine
</h3>
</div>
<div>
<p class="joplin__para">
We believe that transparency is key to honest and successful
communication. We remain <b>trustworthy</b> and
<b>genuine</b> in engaging with our users and Joplin community.
</p>
<p class="joplin__para">
As an open-source project we stay
<b>open-minded</b> and <b>enthusiastic</b> about new ideas and
solutions. At the same time we continue to be
<b>professional</b> to honour the trust the users place in us.
</p>
<p class="joplin__para">
We appreciate the value the users bring to our product and
therefore we keep our tone <b>friendly</b> and <b>welcoming</b>.
</p>
</div>
</div>
</div>
</div>
</section>
<!-- State Section -->
<!-- Chart.Js Lib -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.9.1/chart.min.js"></script>
<script>
const ctx = document.getElementById("chart1");
const myChart = new Chart(ctx, {
type: "pie",
data: {
labels: ["Dark blue 40%", "Gray 20%", "White 20%", "Light blue 10%", "Yellow 7%", "Dark gray 3%"],
datasets: [
{
label: "# of Votes",
data: [40, 20, 20, 10, 7, 3],
backgroundColor: [
"#043873",
"#f7fbff",
"#ffffff",
"#4f9cf9",
"#ffe492",
"#212529",
],
},
],
},
options: {
layout: {},
elements: {
arc: {
borderColor: '#cccccc',
}
},
plugins: {
title: {
display: true,
text: "Blue colour palette",
font: {
size: 21,
align: "left",
},
},
},
},
});
const ctx2 = document.getElementById("chart2");
const myChart2 = new Chart(ctx2, {
type: "pie",
data: {
labels: ["White 40%", "Gray 20%", "Dark blue 20%", "Light blue 10%", "Dark gray 7%", "Yellow 3%"],
datasets: [
{
label: "# of Votes",
data: [40, 20, 20, 10, 7, 3],
backgroundColor: [
"#ffffff",
"#f7fbff",
"#043873",
"#4f9cf9",
"#212529",
"#ffe492",
],
},
],
},
options: {
layout: {},
elements: {
arc: {
borderColor: '#cccccc',
}
},
plugins: {
title: {
display: true,
text: "White colour palette",
font: {
size: 21,
align: "left",
},
},
},
},
});
</script>

View File

@@ -421,7 +421,7 @@
</div>
<script
src="{{jsBaseUrl}}/bootstrap5.0.2.min.js"
src="{{jsBaseUrl}}/bootstrap5.0.2.bundle.min.js"
rel="preload"
as="script"
></script>

View File

@@ -40,6 +40,7 @@ https://github.com/laurent22/joplin/blob/dev/{{{sourceMarkdownFile}}}
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="{{{assetUrls.css.site}}}" as="style" />
{{#assetUrls.css.brand}}<link rel="stylesheet" href="{{{assetUrls.css.brand}}}" as="style" />{{/assetUrls.css.brand}}
<title>{{pageTitle}}</title>
<script
@@ -85,6 +86,11 @@ https://github.com/laurent22/joplin/blob/dev/{{{sourceMarkdownFile}}}
{{> footer}}
</div>
<script
src="{{jsBaseUrl}}/bootstrap5.0.2.bundle.min.js"
rel="preload"
as="script"
></script>
<script src="{{{assetUrls.js.script}}}"></script>
{{> analytics}}

View File

@@ -17,6 +17,21 @@
<a href="{{baseUrl}}/help/" class="fw500">Help</a>
<a href="{{forumUrl}}" class="fw500">Forum</a>
<a href="{{baseUrl}}/cn/" class="fw500">中文</a>
<!--
<div class="dropdown language-switcher">
<button class="fw500" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
Language
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
-->
{{#showJoplinCloudLinks}}
{{> joplinCloudButton}}
{{/showJoplinCloudLinks}}
@@ -24,7 +39,8 @@
</div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
{{> twitterLink}}
<a href="{{baseUrl}}/cn/" class="fw500">中文</a>
<a href="{{baseUrl}}/cn/" class="fw500 chinese-page-link">中文</a>
{{> joplinCloudButton}}
{{> supportButton}}
<span class="pointer"

View File

@@ -4,6 +4,7 @@
<a class="social-link-mastodon" href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a class="social-link-patreon" href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a class="social-link-discord" href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a class="social-link-linkedin" href="https://www.linkedin.com/company/joplin" title="Joplin LinkedIn Feed"><i class="fab fa-linkedin"></i></a>
<a class="social-link-reddit" href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a class="social-link-github" href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>

View File

@@ -1 +1 @@
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed" class="fw500"><i class="fab fa-twitter"></i></a>
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed" class="fw500 twitter-link"><i class="fab fa-twitter"></i></a>

View File

@@ -16,6 +16,7 @@ WORKDIR /build
COPY .yarn/plugins ./.yarn/plugins
COPY .yarn/releases ./.yarn/releases
COPY .yarn/patches ./.yarn/patches
COPY package.json .
COPY .yarnrc.yml .
COPY yarn.lock .
@@ -30,6 +31,7 @@ COPY packages/fork-uslug ./packages/fork-uslug
COPY packages/htmlpack ./packages/htmlpack
COPY packages/renderer ./packages/renderer
COPY packages/tools ./packages/tools
COPY packages/utils ./packages/utils
COPY packages/lib ./packages/lib
COPY packages/server ./packages/server

View File

@@ -114,6 +114,20 @@ elif [[ $ARCHITECTURE =~ .*i386.*|.*i686.* ]] ; then
exit 1
fi
#-----------------------------------------------------
print "Checking dependencies..."
## Check if libfuse2 is present.
if [[ $(command -v ldconfig) ]]; then
LIBFUSE=$(ldconfig -p | grep "libfuse.so.2" || echo '')
else
LIBFUSE=$(find /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib -name "libfuse.so.2" 2>/dev/null | grep "libfuse.so.2" || echo '')
fi
if [[ $LIBFUSE == "" ]] ; then
print "${COLOR_RED}Error: Can't get libfuse2 on system, please install libfuse2${COLOR_RESET}"
print "See https://joplinapp.org/faq/#desktop-application-will-not-launch-on-linux and https://github.com/AppImage/AppImageKit/wiki/FUSE for more information"
exit 1
fi
#-----------------------------------------------------
# Download Joplin
#-----------------------------------------------------
@@ -134,10 +148,16 @@ else
print "The latest version is ${RELEASE_VERSION}, but you have ${CURRENT_VERSION:-no version} installed."
fi
# Check if it's an update or a new install
DOWNLOAD_TYPE="New"
if [[ -f ~/.joplin/Joplin.AppImage ]]; then
DOWNLOAD_TYPE="Update"
fi
#-----------------------------------------------------
print 'Downloading Joplin...'
TEMP_DIR=$(mktemp -d)
wget -O "${TEMP_DIR}/Joplin.AppImage" "https://github.com/laurent22/joplin/releases/download/v${RELEASE_VERSION}/Joplin-${RELEASE_VERSION}.AppImage"
wget -O "${TEMP_DIR}/Joplin.AppImage" "https://objects.joplinusercontent.com/v${RELEASE_VERSION}/Joplin-${RELEASE_VERSION}.AppImage?source=LinuxInstallScript&type=$DOWNLOAD_TYPE"
wget -O "${TEMP_DIR}/joplin.png" https://joplinapp.org/images/Icon512.png
#-----------------------------------------------------

105
README.md
View File

@@ -1,5 +1,5 @@
<!-- DONATELINKS -->
[![Donate using PayPal](https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=E8JMYD2LQ8MMA&lc=GB&item_name=Joplin+Development&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted) [![Sponsor on GitHub](https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg)](https://github.com/sponsors/laurent22/) [![Become a patron](https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg)](https://www.patreon.com/joplin) [![Donate using IBAN](https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg)](https://joplinapp.org/donate/#donations)
[![Donate using PayPal](https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg)](https://www.paypal.com/donate/?business=E8JMYD2LQ8MMA&no_recurring=0&item_name=I+rely+on+donations+to+maintain+and+improve+the+Joplin+open+source+project.+Thank+you+for+your+help+-+it+makes+a+difference%21&currency_code=EUR) [![Sponsor on GitHub](https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg)](https://github.com/sponsors/laurent22/) [![Become a patron](https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg)](https://www.patreon.com/joplin) [![Donate using IBAN](https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg)](https://joplinapp.org/donate/#donations)
<!-- DONATELINKS -->
<img width="64" src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/LinuxIcons/256x256.png" align="left" /> **Joplin** is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in [Markdown format](#markdown).
@@ -22,21 +22,23 @@ 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.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>
Windows (32 and 64-bit) | <a href='https://objects.joplinusercontent.com/v2.11.11/Joplin-Setup-2.11.11.exe?source=JoplinWebsite&type=New'><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://objects.joplinusercontent.com/v2.11.11/Joplin-2.11.11.dmg?source=JoplinWebsite&type=New'><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://objects.joplinusercontent.com/v2.11.11/Joplin-2.11.11.AppImage?source=JoplinWebsite&type=New'><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.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 Windows**, you may also use the <a href='https://objects.joplinusercontent.com/v2.11.11/JoplinPortable.exe?source=JoplinWebsite&type=New'>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:
<pre><code style="word-break: break-all">wget -O - https://raw.githubusercontent.com/laurent22/joplin/dev/Joplin_install_and_update.sh | bash</code></pre>
The install and update script supports the [following flags](https://github.com/laurent22/joplin/blob/dev/Joplin_install_and_update.sh#L50) (around line 50 at the time of this writing).
## Mobile applications
Operating System | Download | Alt. Download
---|---|---
Android | <a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeAndroid.png'/></a> | or download the APK file: [64-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.9.8/joplin-v2.9.8.apk) [32-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.9.8/joplin-v2.9.8-32bit.apk)
Android | <a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeAndroid.png'/></a> | or download the [APK file](https://objects.joplinusercontent.com/v2.11.31/joplin-v2.11.31.apk?source=JoplinWebsite&type=New)
iOS | <a href='https://itunes.apple.com/us/app/joplin/id1315599797'><img alt='Get it on the App Store' height="40px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeIOS.png'/></a> | -
## Terminal application
@@ -64,7 +66,7 @@ A community maintained list of these distributions can be found here: [Unofficia
# Sponsors
<!-- SPONSORS-ORG -->
<a href="https://seirei.ne.jp"><img title="Serei Network" width="256" src="https://joplinapp.org/images/sponsors/SeireiNetwork.png"/></a> <a href="https://usrigging.com/"><img title="U.S. Ringing Supply" width="256" src="https://joplinapp.org/images/sponsors/RingingSupply.svg"/></a> <a href="https://www.hosting.de/nextcloud/?mtm_campaign=managed-nextcloud&amp;mtm_kwd=joplinapp&amp;mtm_source=joplinapp-github&amp;mtm_medium=banner"><img title="Hosting.de" width="256" src="https://joplinapp.org/images/sponsors/HostingDe.png"/></a> <a href="https://residence-greece.com/"><img title="Greece Golden Visa" width="256" src="https://joplinapp.org/images/sponsors/ResidenceGreece.jpg"/></a> <a href="https://grundstueckspreise.info/"><img title="SP Software GmbH" width="256" src="https://joplinapp.org/images/sponsors/Grundstueckspreise.png"/></a>
<a href="https://seirei.ne.jp"><img title="Serei Network" width="256" src="https://joplinapp.org/images/sponsors/SeireiNetwork.png"/></a> <a href="https://www.hosting.de/nextcloud/?mtm_campaign=managed-nextcloud&amp;mtm_kwd=joplinapp&amp;mtm_source=joplinapp-webseite&amp;mtm_medium=banner"><img title="Hosting.de" width="256" src="https://joplinapp.org/images/sponsors/HostingDe.png"/></a> <a href="https://residence-greece.com/"><img title="Greece Golden Visa" width="256" src="https://joplinapp.org/images/sponsors/ResidenceGreece.jpg"/></a> <a href="https://grundstueckspreise.info/"><img title="SP Software GmbH" width="256" src="https://joplinapp.org/images/sponsors/Grundstueckspreise.png"/></a> <a href="https://tranio.com/spain/"><img title="Property for sale in Spain" width="256" src="https://joplinapp.org/images/sponsors/TranioOverseasProperty.jpg"/></a>
<!-- SPONSORS-ORG -->
* * *
@@ -72,14 +74,12 @@ A community maintained list of these distributions can be found here: [Unofficia
<!-- SPONSORS-GITHUB -->
| | | | |
| :---: | :---: | :---: | :---: |
| <img width="50" src="https://avatars2.githubusercontent.com/u/215668?s=96&v=4"/></br>[avanderberg](https://github.com/avanderberg) | <img width="50" src="https://avatars2.githubusercontent.com/u/3061769?s=96&v=4"/></br>[c-nagy](https://github.com/c-nagy) | <img width="50" src="https://avatars2.githubusercontent.com/u/70780798?s=96&v=4"/></br>[cabottech](https://github.com/cabottech) | <img width="50" src="https://avatars2.githubusercontent.com/u/67130?s=96&v=4"/></br>[chr15m](https://github.com/chr15m) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/4862947?s=96&v=4"/></br>[chrootlogin](https://github.com/chrootlogin) | <img width="50" src="https://avatars2.githubusercontent.com/u/82579431?s=96&v=4"/></br>[clmntsl](https://github.com/clmntsl) | <img width="50" src="https://avatars2.githubusercontent.com/u/808091?s=96&v=4"/></br>[cuongtransc](https://github.com/cuongtransc) | <img width="50" src="https://avatars2.githubusercontent.com/u/1307332?s=96&v=4"/></br>[dbrandonjohnson](https://github.com/dbrandonjohnson) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/1439535?s=96&v=4"/></br>[fbloise](https://github.com/fbloise) | <img width="50" src="https://avatars2.githubusercontent.com/u/49439044?s=96&v=4"/></br>[fourstepper](https://github.com/fourstepper) | <img width="50" src="https://avatars2.githubusercontent.com/u/38898566?s=96&v=4"/></br>[h4sh5](https://github.com/h4sh5) | <img width="50" src="https://avatars2.githubusercontent.com/u/3266447?s=96&v=4"/></br>[iamwillbar](https://github.com/iamwillbar) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/37297218?s=96&v=4"/></br>[Jesssullivan](https://github.com/Jesssullivan) | <img width="50" src="https://avatars2.githubusercontent.com/u/1310474?s=96&v=4"/></br>[jknowles](https://github.com/jknowles) | <img width="50" src="https://avatars2.githubusercontent.com/u/1248504?s=96&v=4"/></br>[joesfer](https://github.com/joesfer) | <img width="50" src="https://avatars2.githubusercontent.com/u/5588131?s=96&v=4"/></br>[kianenigma](https://github.com/kianenigma) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/24908652?s=96&v=4"/></br>[konishi-t](https://github.com/konishi-t) | <img width="50" src="https://avatars2.githubusercontent.com/u/42319182?s=96&v=4"/></br>[marcdw1289](https://github.com/marcdw1289) | <img width="50" src="https://avatars2.githubusercontent.com/u/1788010?s=96&v=4"/></br>[maxtruxa](https://github.com/maxtruxa) | <img width="50" src="https://avatars2.githubusercontent.com/u/29300939?s=96&v=4"/></br>[mcejp](https://github.com/mcejp) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/1168659?s=96&v=4"/></br>[nicholashead](https://github.com/nicholashead) | <img width="50" src="https://avatars2.githubusercontent.com/u/5782817?s=96&v=4"/></br>[piccobit](https://github.com/piccobit) | <img width="50" src="https://avatars2.githubusercontent.com/u/77214738?s=96&v=4"/></br>[Polymathic-Company](https://github.com/Polymathic-Company) | <img width="50" src="https://avatars2.githubusercontent.com/u/47742?s=96&v=4"/></br>[ravenscroftj](https://github.com/ravenscroftj) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/327998?s=96&v=4"/></br>[sif](https://github.com/sif) | <img width="50" src="https://avatars2.githubusercontent.com/u/54626606?s=96&v=4"/></br>[skyrunner15](https://github.com/skyrunner15) | <img width="50" src="https://avatars2.githubusercontent.com/u/765564?s=96&v=4"/></br>[taskcruncher](https://github.com/taskcruncher) | <img width="50" src="https://avatars2.githubusercontent.com/u/73081837?s=96&v=4"/></br>[thismarty](https://github.com/thismarty) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/15859362?s=96&v=4"/></br>[thomasbroussard](https://github.com/thomasbroussard) | | | |
| <img width="50" src="https://avatars2.githubusercontent.com/u/215668?s=96&v=4"/></br>[avanderberg](https://github.com/avanderberg) | <img width="50" src="https://avatars2.githubusercontent.com/u/67130?s=96&v=4"/></br>[chr15m](https://github.com/chr15m) | <img width="50" src="https://avatars2.githubusercontent.com/u/2793530?s=96&v=4"/></br>[CyberXZT](https://github.com/CyberXZT) | <img width="50" src="https://avatars2.githubusercontent.com/u/1307332?s=96&v=4"/></br>[dbrandonjohnson](https://github.com/dbrandonjohnson) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/56287?s=96&v=4"/></br>[fats](https://github.com/fats) | <img width="50" src="https://avatars2.githubusercontent.com/u/49439044?s=96&v=4"/></br>[fourstepper](https://github.com/fourstepper) | <img width="50" src="https://avatars2.githubusercontent.com/u/64712218?s=96&v=4"/></br>[Hegghammer](https://github.com/Hegghammer) | <img width="50" src="https://avatars2.githubusercontent.com/u/3266447?s=96&v=4"/></br>[iamwillbar](https://github.com/iamwillbar) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/1310474?s=96&v=4"/></br>[jknowles](https://github.com/jknowles) | <img width="50" src="https://avatars2.githubusercontent.com/u/11947658?s=96&v=4"/></br>[KentBrockman](https://github.com/KentBrockman) | <img width="50" src="https://avatars2.githubusercontent.com/u/5588131?s=96&v=4"/></br>[kianenigma](https://github.com/kianenigma) | <img width="50" src="https://avatars2.githubusercontent.com/u/24908652?s=96&v=4"/></br>[konishi-t](https://github.com/konishi-t) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/42319182?s=96&v=4"/></br>[marcdw1289](https://github.com/marcdw1289) | <img width="50" src="https://avatars2.githubusercontent.com/u/126279083?s=96&v=4"/></br>[matmoly](https://github.com/matmoly) | <img width="50" src="https://avatars2.githubusercontent.com/u/1788010?s=96&v=4"/></br>[maxtruxa](https://github.com/maxtruxa) | <img width="50" src="https://avatars2.githubusercontent.com/u/29300939?s=96&v=4"/></br>[mcejp](https://github.com/mcejp) |
| <img width="50" src="https://avatars2.githubusercontent.com/u/31054972?s=96&v=4"/></br>[saarantras](https://github.com/saarantras) | <img width="50" src="https://avatars2.githubusercontent.com/u/327998?s=96&v=4"/></br>[sif](https://github.com/sif) | <img width="50" src="https://avatars2.githubusercontent.com/u/765564?s=96&v=4"/></br>[taskcruncher](https://github.com/taskcruncher) | <img width="50" src="https://avatars2.githubusercontent.com/u/333944?s=96&v=4"/></br>[tateisu](https://github.com/tateisu) |
| | | | |
<!-- SPONSORS-GITHUB -->
<!-- TOC -->
@@ -128,9 +128,11 @@ A community maintained list of these distributions can be found here: [Unofficia
- [How to build the apps](https://github.com/laurent22/joplin/blob/dev/BUILD.md)
- [Writing a technical spec](https://github.com/laurent22/joplin/blob/dev/readme/technical_spec.md)
- [Desktop application styling](https://github.com/laurent22/joplin/blob/dev/readme/spec/desktop_styling.md)
- [Note History spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/history.md)
- [Note history spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/history.md)
- [Synchronisation spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/sync.md)
- [Sync Lock spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/sync_lock.md)
- [Synchronous Scroll spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/sync_scroll.md)
- [Overall Architecture spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/architecture.md)
- [Plugin Architecture spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/plugins.md)
- [Search Sorting spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/search_sorting.md)
- [E2EE: Technical spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/e2ee.md)
@@ -152,7 +154,9 @@ A community maintained list of these distributions can be found here: [Unofficia
- [Changelog (iOS)](https://github.com/laurent22/joplin/blob/dev/readme/changelog_ios.md)
- [Changelog (CLI App)](https://github.com/laurent22/joplin/blob/dev/readme/changelog_cli.md)
- [Changelog (Server)](https://github.com/laurent22/joplin/blob/dev/readme/changelog_server.md)
- [Guiding principles](https://github.com/laurent22/joplin/blob/dev/readme/principles.md)
- [Stats](https://github.com/laurent22/joplin/blob/dev/readme/stats.md)
- [Brand guidelines](https://joplinapp.org/brand)
- [Donate](https://github.com/laurent22/joplin/blob/dev/readme/donate.md)
<!-- TOC -->
@@ -505,6 +509,7 @@ Name | Description
[Mastodon feed](https://mastodon.social/@joplinapp) | Follow us on Mastodon
[Patreon page](https://www.patreon.com/joplin) |The latest news are often posted there
[Discord server](https://discord.gg/VSj7AFHvpq) | Our chat server
[LinkedIn](https://www.linkedin.com/company/joplin) | Our LinkedIn page
[Sub-reddit](https://www.reddit.com/r/joplinapp/) | Also a good place to get help
# Contributing
@@ -530,47 +535,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) | 80%
<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) | 58%
<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) | 79%
<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 | 22%
<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) | 57%
<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) | | 45%
<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) | 89%
<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) | 89%
<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) | 77%
<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/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) | 88%
<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) | 99%
<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) | Fejby | 98%
<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 | 98%
<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) | 98%
<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) | | 44%
<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 Villaverde](mailto:teko.gr@gmail.com) | 99%
<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 Villaverde](mailto:teko.gr@gmail.com) | 97%
<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 | 25%
<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 | 95%
<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 | 99%
<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 | 100%
<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) | 29%
<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) | 89%
<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) | [Manuel Tassi](mailto:mannivuwiki@gmail.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) | 78%
<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) | | 79%
<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) | 88%
<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) | 88%
<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) | 55%
<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) | 91%
<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) | 88%
<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) | 73%
<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) | 51%
<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) | 80%
<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) | 96%
<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) | 88%
<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) | [Manuel Tassi](mailto:mannivuwiki@gmail.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) | 77%
<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) | | 78%
<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) | 87%
<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) | 87%
<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) | 54%
<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) | 89%
<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) | [Douglas Leão](mailto:djlsplays@gmail.com) | 87%
<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) | 72%
<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) | 50%
<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) | 79%
<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) | | 36%
<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) | | 78%
<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) | 89%
<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) | 72%
<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) | 88%
<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) | [Dmitriy Q](mailto:krotesk@mail.ru) | 99%
<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) | | 65%
<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) | [wh201906](mailto:wh201906@yandex.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) | 89%
<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) | 89%
<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) | 89%
<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) | | 77%
<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) | 99%
<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) | 71%
<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) | 87%
<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) | [Dmitriy K](mailto:dmitry@atsip.ru) | 99%
<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) | | 64%
<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) | [wh201906](mailto:wh201906@yandex.com) | 96%
<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) | 88%
<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) | 88%
<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) | 88%
<!-- LOCALE-TABLE-AUTO-GENERATED -->
# Contributors

7
bootstrap.bundle.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,26 +1,52 @@
const gulp = require('gulp');
const utils = require('./packages/tools/gulp/utils');
const execa = require('execa');
const { stdout } = require('process');
const execCommand = async (executableName, args, options = null) => {
options = {
showInput: true,
showStdout: true,
showStderr: true,
quiet: false,
...options,
};
if (options.quiet) {
options.showInput = false;
options.showStdout = false;
options.showStderr = false;
}
if (options.showInput) {
stdout.write(`> ${executableName} ${args.join(' ')}\n`);
}
const promise = execa(executableName, args);
if (options.showStdout && promise.stdout) promise.stdout.pipe(process.stdout);
if (options.showStderr && promise.stderr) promise.stderr.pipe(process.stderr);
const result = await promise;
return result.stdout.trim();
};
const tasks = {
updateIgnoredTypeScriptBuild: require('./packages/tools/gulp/tasks/updateIgnoredTypeScriptBuild'),
buildCommandIndex: require('./packages/tools/gulp/tasks/buildCommandIndex'),
completePublishAll: {
fn: async () => {
await utils.execCommandVerbose('git', ['add', '-A']);
await utils.execCommandVerbose('git', ['commit', '-m', 'Releasing sub-packages']);
await execCommand('git', ['add', '-A']);
await execCommand('git', ['commit', '-m', 'Releasing sub-packages']);
// Lerna does some unnecessary auth check that doesn't work with
// automation tokens, thus the --no-verify-access. Automation token
// is still used for access when publishing even with this flag
// (publishing would fail otherwise).
// https://github.com/lerna/lerna/issues/2788
await utils.execCommandVerbose('lerna', ['publish', 'from-package', '-y', '--no-verify-access']);
await execCommand('lerna', ['publish', 'from-package', '-y', '--no-verify-access']);
await utils.execCommandVerbose('yarn', ['install']);
await utils.execCommandVerbose('git', ['add', '-A']);
await utils.execCommandVerbose('git', ['commit', '-m', 'Lock file']);
await execCommand('yarn', ['install']);
await execCommand('git', ['add', '-A']);
await execCommand('git', ['commit', '-m', 'Lock file']);
await utils.execCommandVerbose('git', ['push']);
await execCommand('git', ['push']);
},
},
build: {
@@ -33,12 +59,14 @@ const tasks = {
// faster, especially when having to rebuild after adding a
// dependency.
if (process.env.BUILD_SEQUENCIAL === '1') {
await utils.execCommandVerbose('yarn', ['run', 'buildSequential']);
await execCommand('yarn', ['run', 'buildSequential']);
} else {
await utils.execCommandVerbose('yarn', ['run', 'buildParallel']);
await execCommand('yarn', ['run', 'buildParallel']);
}
},
},
};
utils.registerGulpTasks(gulp, tasks);
for (const taskName in tasks) {
gulp.task(taskName, tasks[taskName].fn);
}

View File

@@ -107,7 +107,10 @@
".eslintignore": true,
".gitignore": true,
".vscode/*": true,
".yarn": true,
".yarn/cache": true,
".yarn/install-state.gz": true,
".yarn/plugins": true,
".yarn/releases": true,
"*.sublime-workspace": true,
"**/_mydocs": true,
"**/_mydocs/EnexSamples/*.enex": true,
@@ -329,6 +332,7 @@
"packages/renderer/MdToHtml/rules/sanitize_html.js": true,
"packages/server/db-*.sqlite": true,
"packages/server/dist/": true,
"packages/utils/dist/": true,
"packages/server/temp": true,
"packages/server/test.pid": true,
"phpunit.xml": true,
@@ -349,5 +353,43 @@
"web/bundles/": true,
"web/env.php": true,
}
},
"tasks": {
"version": "2.0.0",
"tasks": [
{
"label": "transpile-server",
"type": "shell",
"command": "cd ${workspaceFolder}/packages/server && yarn tsc",
"group": "build",
}
]
},
"launch": {
"version": "0.2.0",
"configurations": [
{
"name": "Server",
"type": "node",
"request": "launch",
"preLaunchTask": "transpile-server",
"skipFiles": [
"<node_internals>/**"
],
"outFiles": [
"${workspaceFolder}/**/*.js",
"!**/node_modules/**"
],
"program": "${workspaceFolder}/packages/server/src/app.ts",
"args": [
"--env", "dev"
],
"env": {
"JOPLIN_IS_TESTING": "1",
"TERMS_URL": "https://example.com",
"PRIVACY_URL": "https://example.com",
}
}
]
}
}

View File

@@ -15,8 +15,8 @@
"buildParallel": "yarn workspaces foreach --verbose --interlaced --parallel --jobs 2 --topological run build && yarn run tsc",
"buildSequential": "yarn workspaces foreach --verbose --interlaced --topological run build && yarn run tsc",
"buildApiDoc": "yarn workspace joplin start apidoc ../../readme/api/references/rest_api.md",
"buildCommandIndex": "gulp buildCommandIndex",
"buildPluginDoc": "typedoc --name 'Joplin Plugin API Documentation' --mode file -theme './Assets/PluginDocTheme/' --readme './Assets/PluginDocTheme/index.md' --excludeNotExported --excludeExternals --excludePrivate --excludeProtected --out ../joplin-website/docs/api/references/plugin_api packages/lib/services/plugins/api/",
"buildCommandIndex": "node packages/tools/gulp/tasks/buildCommandIndexRun.js",
"buildPluginDoc": "cd packages/generate-plugin-doc && yarn run buildPluginDoc_",
"updateMarkdownDoc": "node ./packages/tools/updateMarkdownDoc",
"updateNews": "node ./packages/tools/website/updateNews",
"buildSettingJsonSchema": "yarn workspace joplin start settingschema ../../../joplin-website/docs/schema/settings.json",
@@ -53,7 +53,7 @@
"test-ci": "yarn workspaces foreach --parallel --verbose --interlaced --jobs 2 run test-ci",
"test": "yarn workspaces foreach --parallel --verbose --interlaced --jobs 2 run test",
"tsc": "yarn workspaces foreach --parallel --verbose --interlaced run tsc",
"updateIgnored": "gulp updateIgnoredTypeScriptBuild",
"updateIgnored": "node packages/tools/gulp/tasks/updateIgnoredTypeScriptBuildRun.js",
"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 --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\""
@@ -64,34 +64,41 @@
}
},
"devDependencies": {
"@joplin/utils": "~2.11",
"@seiyab/eslint-plugin-react-hooks": "4.5.1-beta.0",
"@typescript-eslint/eslint-plugin": "5.48.2",
"@typescript-eslint/parser": "5.48.2",
"@typescript-eslint/eslint-plugin": "5.59.0",
"@typescript-eslint/parser": "5.59.0",
"cspell": "5.21.2",
"eslint": "8.31.0",
"eslint-interactive": "10.3.0",
"eslint-plugin-import": "2.27.4",
"eslint": "8.39.0",
"eslint-interactive": "10.7.0",
"eslint-plugin-import": "2.27.5",
"eslint-plugin-jest": "27.2.1",
"eslint-plugin-promise": "6.1.1",
"eslint-plugin-react": "7.32.0",
"fs-extra": "11.1.0",
"glob": "8.1.0",
"eslint-plugin-react": "7.32.2",
"execa": "5.1.1",
"fs-extra": "11.1.1",
"glob": "10.2.7",
"gulp": "4.0.2",
"husky": "3.1.0",
"lerna": "3.22.1",
"lint-staged": "13.1.2",
"lint-staged": "13.2.2",
"madge": "6.0.0",
"npm-package-json-lint": "6.4.0",
"typedoc": "0.17.8",
"typescript": "4.9.4"
"typescript": "5.0.2"
},
"dependencies": {
"@types/fs-extra": "9.0.13",
"@types/fs-extra": "11.0.1",
"eslint-plugin-github": "4.8.0",
"http-server": "14.1.1",
"node-gyp": "9.3.1",
"nodemon": "2.0.20"
"nodemon": "2.0.22"
},
"packageManager": "yarn@3.3.1",
"packageManager": "yarn@3.5.0",
"resolutions": {
"react-native-camera@4.2.1": "patch:react-native-camera@npm%3A4.2.1#./.yarn/patches/react-native-camera-npm-4.2.1-24b2600a7e.patch"
"react-native-camera@4.2.1": "patch:react-native-camera@npm%3A4.2.1#./.yarn/patches/react-native-camera-npm-4.2.1-24b2600a7e.patch",
"react-native-vosk@0.1.12": "patch:react-native-vosk@npm%3A0.1.12#./.yarn/patches/react-native-vosk-npm-0.1.12-76b1caaae8.patch",
"eslint@8.39.0": "patch:eslint@npm%3A8.39.0#./.yarn/patches/eslint-npm-8.39.0-d92bace04d.patch",
"eslint@^8.13.0": "patch:eslint@npm%3A8.39.0#./.yarn/patches/eslint-npm-8.39.0-d92bace04d.patch",
"app-builder-lib@24.4.0": "patch:app-builder-lib@npm%3A24.4.0#./.yarn/patches/app-builder-lib-npm-24.4.0-05322ff057.patch"
}
}

View File

@@ -43,6 +43,7 @@ class LinkSelector {
for (let i = 0; i < lines.length; i++) {
const r = (lines[i] as any).matchAll(this.linkRegex_);
const matches = [...r];
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
matches.forEach((_e, n) => {
newLinkStore.push(
{

View File

@@ -8,7 +8,7 @@ const Resource = require('@joplin/lib/models/Resource').default;
const Setting = require('@joplin/lib/models/Setting').default;
const reducer = require('@joplin/lib/reducer').default;
const { defaultState } = require('@joplin/lib/reducer');
const { splitCommandString } = require('@joplin/lib/string-utils.js');
const { splitCommandString } = require('@joplin/utils');
const { reg } = require('@joplin/lib/registry.js');
const { _ } = require('@joplin/lib/locale');
const shim = require('@joplin/lib/shim').default;
@@ -302,7 +302,7 @@ class AppGui {
const output = [];
for (let i = 0; i < keymap.length; i++) {
const item = Object.assign({}, keymap[i]);
const item = { ...keymap[i] };
if (!item.command) throw new Error(`Missing command for keymap item: ${JSON.stringify(item)}`);
@@ -427,7 +427,7 @@ class AppGui {
async handleModelAction(action) {
this.logger().info('Action:', action);
const state = Object.assign({}, defaultState);
const state = { ...defaultState };
state.notes = this.widget('noteList').items;
const newState = reducer(state, action);

View File

@@ -9,7 +9,8 @@ const Tag = require('@joplin/lib/models/Tag').default;
const Setting = require('@joplin/lib/models/Setting').default;
const { reg } = require('@joplin/lib/registry.js');
const { fileExtension } = require('@joplin/lib/path-utils');
const { splitCommandString, splitCommandBatch } = require('@joplin/lib/string-utils');
const { splitCommandString } = require('@joplin/utils');
const { splitCommandBatch } = require('@joplin/lib/string-utils');
const { _ } = require('@joplin/lib/locale');
const fs = require('fs-extra');
const { cliUtils } = require('./cli-utils.js');
@@ -145,6 +146,7 @@ class Application extends BaseApplication {
commands(uiType = null) {
if (!this.allCommandsLoaded_) {
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
fs.readdirSync(__dirname).forEach(path => {
if (path.indexOf('command-') !== 0) return;
if (path.endsWith('.test.js')) return;
@@ -191,7 +193,7 @@ class Application extends BaseApplication {
let output = await this.cache_.getItem('metadata');
if (output) {
this.commandMetadata_ = output;
return Object.assign({}, this.commandMetadata_);
return { ...this.commandMetadata_ };
}
const commands = this.commands();
@@ -206,7 +208,7 @@ class Application extends BaseApplication {
await this.cache_.setItem('metadata', output, 1000 * 60 * 60 * 24);
this.commandMetadata_ = output;
return Object.assign({}, this.commandMetadata_);
return { ...this.commandMetadata_ };
}
hasGui() {

View File

@@ -54,6 +54,7 @@ export default class BaseCommand {
return r[0];
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
public setDispatcher(fn: Function) {
this.dispatcher_ = fn;
}
@@ -63,6 +64,7 @@ export default class BaseCommand {
return this.dispatcher_(action);
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
public setStdout(fn: Function) {
this.stdout_ = fn;
}
@@ -71,6 +73,7 @@ export default class BaseCommand {
if (this.stdout_) this.stdout_(text);
}
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
public setPrompt(fn: Function) {
this.prompt_ = fn;
}

View File

@@ -49,6 +49,7 @@ function renderCommand(cmd) {
function getCommands() {
const output = [];
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
fs.readdirSync(__dirname).forEach(path => {
if (path.indexOf('command-') !== 0) return;
const ext = fileExtension(path);

View File

@@ -44,6 +44,7 @@ class Command extends BaseCommand {
return reject(new Error(`Invalid JSON passed to config --import: \n${error.message}.`));
}
if (settingsObj) {
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
Object.entries(settingsObj)
.forEach(([key, value]) => {
Setting.setValue(key, value);

View File

@@ -179,6 +179,7 @@ class Command extends BaseCommand {
const dirPaths = function(targetPath: string) {
const paths: string[] = [];
// eslint-disable-next-line github/array-foreach -- Old code before rule was applied
fs.readdirSync(targetPath).forEach((path: string) => {
paths.push(path);
});

View File

@@ -1,6 +1,6 @@
const fs = require('fs-extra');
const BaseCommand = require('./base-command').default;
const { splitCommandString } = require('@joplin/lib/string-utils.js');
const { splitCommandString } = require('@joplin/utils');
const uuid = require('@joplin/lib/uuid').default;
const { app } = require('./app.js');
const { _ } = require('@joplin/lib/locale');

View File

@@ -18,6 +18,7 @@ import { pathExists, writeFile } from 'fs-extra';
class Command extends BaseCommand {
private syncTargetId_: number = null;
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
private releaseLockFn_: Function = null;
private oneDriveApiUtils_: any = null;

View File

@@ -65,6 +65,7 @@ export default class PluginRunner extends BasePluginRunner {
}
public async run(plugin: Plugin, sandbox: Global): Promise<void> {
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
return new Promise((resolve: Function, reject: Function) => {
const onStarted = () => {
plugin.off('started', onStarted);
@@ -85,6 +86,7 @@ export default class PluginRunner extends BasePluginRunner {
public async waitForSandboxCalls(): Promise<void> {
const startTime = Date.now();
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
return new Promise((resolve: Function, reject: Function) => {
const iid = setInterval(() => {
if (!Object.keys(this.activeSandboxCalls_).length) {

View File

@@ -1,5 +1,6 @@
import { _ } from '@joplin/lib/locale';
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export default (cmd: any, stdout: Function, store: Function, gui: Function) => {
cmd.setStdout((text: string) => {
return stdout(text);

View File

@@ -3,6 +3,7 @@ import Folder from '@joplin/lib/models/Folder';
import BaseCommand from '../base-command';
import setupCommand from '../setupCommand';
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
export const setupCommandForTesting = (CommandClass: any, stdout: Function = null): BaseCommand => {
const command = new CommandClass();
setupCommand(command, stdout, null, null);

View File

@@ -30,22 +30,24 @@
2019,
2020,
2021,
2022
2022,
2023
],
"owner": "Laurent Cozic"
},
"version": "2.10.3",
"version": "2.12.0",
"bin": "./main.js",
"engines": {
"node": ">=10.0.0"
},
"dependencies": {
"@joplin/lib": "~2.10",
"@joplin/renderer": "~2.10",
"aws-sdk": "2.1290.0",
"@joplin/lib": "~2.12",
"@joplin/renderer": "~2.12",
"@joplin/utils": "~2.12",
"aws-sdk": "2.1340.0",
"chalk": "4.1.2",
"compare-version": "0.1.2",
"fs-extra": "11.1.0",
"fs-extra": "11.1.1",
"html-entities": "1.4.0",
"image-type": "3.1.0",
"keytar": "7.9.0",
@@ -55,9 +57,9 @@
"proper-lockfile": "4.1.2",
"read-chunk": "2.1.0",
"server-destroy": "1.0.1",
"sharp": "0.31.3",
"sharp": "0.32.1",
"sprintf-js": "1.1.2",
"sqlite3": "5.1.4",
"sqlite3": "5.1.6",
"string-padding": "1.0.2",
"strip-ansi": "6.0.1",
"tcp-port-used": "1.0.2",
@@ -68,14 +70,14 @@
"yargs-parser": "21.1.1"
},
"devDependencies": {
"@joplin/tools": "~2.10",
"@types/fs-extra": "9.0.13",
"@types/jest": "29.2.6",
"@types/node": "18.11.18",
"@joplin/tools": "~2.12",
"@types/fs-extra": "11.0.1",
"@types/jest": "29.5.1",
"@types/node": "18.15.13",
"@types/proper-lockfile": "^4.1.2",
"gulp": "4.0.2",
"jest": "29.4.3",
"jest": "29.5.0",
"temp": "0.9.4",
"typescript": "4.9.4"
"typescript": "5.0.2"
}
}

View File

@@ -252,4 +252,41 @@ describe('MdToHtml', () => {
);
}
}));
it('should attach source blocks to block KaTeX', async () => {
const mdToHtml = newTestMdToHtml();
const katex = [
'3 + 3',
'\n\\int_0^1 x dx\n\n',
'\n\\int_0^1 x dx\n3 + 3\n',
'\n\t2^{3^4}\n\t3 + 3\n',
'3\n4',
];
const surroundingTextChoices = [
['', ''],
['Test', ''],
['Test', 'Test!'],
['Test\n\n', '\n\nTest!'],
];
const tests = [];
for (const texSource of katex) {
for (const [start, end] of surroundingTextChoices) {
tests.push([texSource, `${start}\n$$${texSource}$$\n${end}`]);
}
}
for (const [tex, input] of tests) {
const html = await mdToHtml.render(input, null, { bodyOnly: true });
const opening = '<pre class="joplin-source" data-joplin-language="katex" data-joplin-source-open="$$&#10;" data-joplin-source-close="&#10;$$&#10;">';
const closing = '</pre>';
// Remove any single leading and trailing newlines, those are included in data-joplin-source-open
// and data-joplin-source-close.
const trimmedTex = tex.replace(/^[\n]/, '').replace(/[\n]$/, '');
expect(html.html).toContain(opening + trimmedTex + closing);
}
});
});

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export4.dtd">
<en-export export-date="20230809T080314Z" application="Evernote" version="10.58.8">
<note>
<title>Here is a simple test</title>
<created>20230709T080219Z</created>
<updated>20230709T080302Z</updated>
<note-attributes>
</note-attributes>
<content>
<![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"><en-note><div>a</div><div><br/></div><div>b</div><div><br/></div><div>List 1</div><div style="--en-task-group:true; --en-id:9876cc26-ebd0-482d-bb36-603e2c0512d0;--en-content-hash:7e7703c4ce2d1805937a6024e5f7b426;-webkit-user-modify:read-only;-moz-user-modify:read-only;user-modify:read-only;border-radius:3px;border:1px solid rgba(182,182,182,0.09);background:rgba(174,174,174,0.09);overflow:hidden;color:#868686"><div style="background:rgba(182,182,182,0.09) no-repeat 6px 6px url(&quot;data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzg2ODY4NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5LjcyNTEgMjBDMjAuMTgxIDIwIDIwLjYwMTEgMTkuNzU2IDIwLjgyOSAxOS4zNkMyMS4wNTcgMTguOTY0IDIxLjA1NyAxOC40NzYgMjAuODI5IDE4LjA4TDEzLjEwMzEgNC42Mzk5OUMxMi44NzYgNC4yNDM5OSAxMi40NTUxIDQgMTIgNEMxMS41NDQ5IDQgMTEuMTI0IDQuMjQzOTkgMTAuODk2MSA0LjYzOTk5TDMuMTcwOTggMTguMDhDMi45NDMwMSAxOC40NzYgMi45NDMwMSAxOC45NjQgMy4xNzA5OCAxOS4zNkMzLjM5ODEgMTkuNzU2IDMuODE4OTMgMjAgNC4yNzQwOCAyMEgxOS43MjUxWk00Ljg2NDg5IDE4LjRMMTIgNS45ODc5OEwxOS4xMzUxIDE4LjRINC44NjQ4OVoiLz4KPHBhdGggZD0iTTEyLjc1IDEwLjU3NTJDMTIuNzUgMTAuMTYxIDEyLjQxNDIgOS44MjUyMyAxMiA5LjgyNTIzQzExLjU4NTggOS44MjUyMyAxMS4yNSAxMC4xNjEgMTEuMjUgMTAuNTc1MlYxMy4yOTc5QzExLjI1IDEzLjcxMjEgMTEuNTg1OCAxNC4wNDc5IDEyIDE0LjA0NzlDMTIuNDE0MiAxNC4wNDc5IDEyLjc1IDEzLjcxMjEgMTIuNzUgMTMuMjk3OVYxMC41NzUyWiIvPgo8cGF0aCBkPSJNMTIuODc1IDE1Ljk1MTFDMTIuODc1IDE2LjQzNDQgMTIuNDgzMiAxNi44MjYxIDEyIDE2LjgyNjFDMTEuNTE2OCAxNi44MjYxIDExLjEyNSAxNi40MzQ0IDExLjEyNSAxNS45NTExQzExLjEyNSAxNS40Njc5IDExLjUxNjggMTUuMDc2MSAxMiAxNS4wNzYxQzEyLjQ4MzIgMTUuMDc2MSAxMi44NzUgMTUuNDY3OSAxMi44NzUgMTUuOTUxMVoiLz4KPC9zdmc+Cg==&quot;);padding:8px 38px;font-weight:600">Content not supported</div><div style="padding:2px 6px;margin: 1em">This block is a placeholder for Tasks, which has been officially released on the newest version of Evernote and is no longer supported on this version. Deleting or moving this block may cause unexpected behavior in newer versions of Evernote.</div></div><div>List 2</div><div style="--en-task-group:true; --en-id:b89e9766-5afc-47b8-9c54-e42962d69421;--en-content-hash:85f6897ebdd0d3d12ba8fcc3ce6b8e56;-webkit-user-modify:read-only;-moz-user-modify:read-only;user-modify:read-only;border-radius:3px;border:1px solid rgba(182,182,182,0.09);background:rgba(174,174,174,0.09);overflow:hidden;color:#868686"><div style="background:rgba(182,182,182,0.09) no-repeat 6px 6px url(&quot;data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzg2ODY4NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5LjcyNTEgMjBDMjAuMTgxIDIwIDIwLjYwMTEgMTkuNzU2IDIwLjgyOSAxOS4zNkMyMS4wNTcgMTguOTY0IDIxLjA1NyAxOC40NzYgMjAuODI5IDE4LjA4TDEzLjEwMzEgNC42Mzk5OUMxMi44NzYgNC4yNDM5OSAxMi40NTUxIDQgMTIgNEMxMS41NDQ5IDQgMTEuMTI0IDQuMjQzOTkgMTAuODk2MSA0LjYzOTk5TDMuMTcwOTggMTguMDhDMi45NDMwMSAxOC40NzYgMi45NDMwMSAxOC45NjQgMy4xNzA5OCAxOS4zNkMzLjM5ODEgMTkuNzU2IDMuODE4OTMgMjAgNC4yNzQwOCAyMEgxOS43MjUxWk00Ljg2NDg5IDE4LjRMMTIgNS45ODc5OEwxOS4xMzUxIDE4LjRINC44NjQ4OVoiLz4KPHBhdGggZD0iTTEyLjc1IDEwLjU3NTJDMTIuNzUgMTAuMTYxIDEyLjQxNDIgOS44MjUyMyAxMiA5LjgyNTIzQzExLjU4NTggOS44MjUyMyAxMS4yNSAxMC4xNjEgMTEuMjUgMTAuNTc1MlYxMy4yOTc5QzExLjI1IDEzLjcxMjEgMTEuNTg1OCAxNC4wNDc5IDEyIDE0LjA0NzlDMTIuNDE0MiAxNC4wNDc5IDEyLjc1IDEzLjcxMjEgMTIuNzUgMTMuMjk3OVYxMC41NzUyWiIvPgo8cGF0aCBkPSJNMTIuODc1IDE1Ljk1MTFDMTIuODc1IDE2LjQzNDQgMTIuNDgzMiAxNi44MjYxIDEyIDE2LjgyNjFDMTEuNTE2OCAxNi44MjYxIDExLjEyNSAxNi40MzQ0IDExLjEyNSAxNS45NTExQzExLjEyNSAxNS40Njc5IDExLjUxNjggMTUuMDc2MSAxMiAxNS4wNzYxQzEyLjQ4MzIgMTUuMDc2MSAxMi44NzUgMTUuNDY3OSAxMi44NzUgMTUuOTUxMVoiLz4KPC9zdmc+Cg==&quot;);padding:8px 38px;font-weight:600">Content not supported</div><div style="padding:2px 6px;margin: 1em">This block is a placeholder for Tasks, which has been officially released on the newest version of Evernote and is no longer supported on this version. Deleting or moving this block may cause unexpected behavior in newer versions of Evernote.</div></div></en-note> ]]>
</content>
<task>
<title>Clara</title>
<created>20230709T080237Z</created>
<updated>20230709T080300Z</updated>
<taskStatus>completed</taskStatus>
<taskFlag>false</taskFlag>
<sortWeight>J</sortWeight>
<noteLevelID>7ab2b90f-4aed-405f-8541-cb56132a2e1a</noteLevelID>
<taskGroupNoteLevelID>9876cc26-ebd0-482d-bb36-603e2c0512d0</taskGroupNoteLevelID>
<dueDate>2757600913T000000Z</dueDate>
<statusUpdated>20230709T080237Z</statusUpdated>
<creator>73671305</creator>
<lastEditor>73671305</lastEditor>
</task>
<task>
<title>Bob</title>
<created>20230709T080237Z</created>
<updated>20230709T080250Z</updated>
<taskStatus>open</taskStatus>
<taskFlag>false</taskFlag>
<sortWeight>B</sortWeight>
<noteLevelID>98185f99-1779-4af3-988b-4af054a2c8c0</noteLevelID>
<taskGroupNoteLevelID>9876cc26-ebd0-482d-bb36-603e2c0512d0</taskGroupNoteLevelID>
<dueDate>2757600913T000000Z</dueDate>
<statusUpdated>20230709T080237Z</statusUpdated>
<creator>73671305</creator>
<lastEditor>73671305</lastEditor>
</task>
<task>
<title>Jeff</title>
<created>20230709T080300Z</created>
<updated>20230709T080302Z</updated>
<taskStatus>open</taskStatus>
<taskFlag>false</taskFlag>
<sortWeight>B</sortWeight>
<noteLevelID>8458b06b-0007-4c3d-b61b-87abe15f55b8</noteLevelID>
<taskGroupNoteLevelID>b89e9766-5afc-47b8-9c54-e42962d69421</taskGroupNoteLevelID>
<dueDate>2757600913T000000Z</dueDate>
<statusUpdated>20230709T080300Z</statusUpdated>
<creator>73671305</creator>
<lastEditor>73671305</lastEditor>
</task>
</note>
</en-export>

View File

@@ -0,0 +1,12 @@
a
b
List 1
- [x] Clara
- [ ] Bob
List 2
- [ ] Jeff

View File

@@ -0,0 +1,17 @@
<en-note>
<div>a</div>
<div><br/></div>
<div>b</div>
<div><br/></div>
<div>List 1</div>
<div style="--en-task-group:true; --en-id:9876cc26-ebd0-482d-bb36-603e2c0512d0;--en-content-hash:7e7703c4ce2d1805937a6024e5f7b426;-webkit-user-modify:read-only;-moz-user-modify:read-only;user-modify:read-only;border-radius:3px;border:1px solid rgba(182,182,182,0.09);background:rgba(174,174,174,0.09);overflow:hidden;color:#868686">
<div style="background:rgba(182,182,182,0.09) no-repeat 6px 6px url(&quot;data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzg2ODY4NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5LjcyNTEgMjBDMjAuMTgxIDIwIDIwLjYwMTEgMTkuNzU2IDIwLjgyOSAxOS4zNkMyMS4wNTcgMTguOTY0IDIxLjA1NyAxOC40NzYgMjAuODI5IDE4LjA4TDEzLjEwMzEgNC42Mzk5OUMxMi44NzYgNC4yNDM5OSAxMi40NTUxIDQgMTIgNEMxMS41NDQ5IDQgMTEuMTI0IDQuMjQzOTkgMTAuODk2MSA0LjYzOTk5TDMuMTcwOTggMTguMDhDMi45NDMwMSAxOC40NzYgMi45NDMwMSAxOC45NjQgMy4xNzA5OCAxOS4zNkMzLjM5ODEgMTkuNzU2IDMuODE4OTMgMjAgNC4yNzQwOCAyMEgxOS43MjUxWk00Ljg2NDg5IDE4LjRMMTIgNS45ODc5OEwxOS4xMzUxIDE4LjRINC44NjQ4OVoiLz4KPHBhdGggZD0iTTEyLjc1IDEwLjU3NTJDMTIuNzUgMTAuMTYxIDEyLjQxNDIgOS44MjUyMyAxMiA5LjgyNTIzQzExLjU4NTggOS44MjUyMyAxMS4yNSAxMC4xNjEgMTEuMjUgMTAuNTc1MlYxMy4yOTc5QzExLjI1IDEzLjcxMjEgMTEuNTg1OCAxNC4wNDc5IDEyIDE0LjA0NzlDMTIuNDE0MiAxNC4wNDc5IDEyLjc1IDEzLjcxMjEgMTIuNzUgMTMuMjk3OVYxMC41NzUyWiIvPgo8cGF0aCBkPSJNMTIuODc1IDE1Ljk1MTFDMTIuODc1IDE2LjQzNDQgMTIuNDgzMiAxNi44MjYxIDEyIDE2LjgyNjFDMTEuNTE2OCAxNi44MjYxIDExLjEyNSAxNi40MzQ0IDExLjEyNSAxNS45NTExQzExLjEyNSAxNS40Njc5IDExLjUxNjggMTUuMDc2MSAxMiAxNS4wNzYxQzEyLjQ4MzIgMTUuMDc2MSAxMi44NzUgMTUuNDY3OSAxMi44NzUgMTUuOTUxMVoiLz4KPC9zdmc+Cg==&quot;);padding:8px 38px;font-weight:600">Content not supported</div>
<div style="padding:2px 6px;margin: 1em">This block is a placeholder for Tasks, which has been officially released on the newest version of Evernote and is no longer supported on this version. Deleting or moving this block may cause unexpected behavior in newer versions of Evernote.</div>
</div>
<div>List 2</div>
<div style="--en-task-group:true; --en-id:b89e9766-5afc-47b8-9c54-e42962d69421;--en-content-hash:85f6897ebdd0d3d12ba8fcc3ce6b8e56;-webkit-user-modify:read-only;-moz-user-modify:read-only;user-modify:read-only;border-radius:3px;border:1px solid rgba(182,182,182,0.09);background:rgba(174,174,174,0.09);overflow:hidden;color:#868686">
<div style="background:rgba(182,182,182,0.09) no-repeat 6px 6px url(&quot;data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzg2ODY4NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5LjcyNTEgMjBDMjAuMTgxIDIwIDIwLjYwMTEgMTkuNzU2IDIwLjgyOSAxOS4zNkMyMS4wNTcgMTguOTY0IDIxLjA1NyAxOC40NzYgMjAuODI5IDE4LjA4TDEzLjEwMzEgNC42Mzk5OUMxMi44NzYgNC4yNDM5OSAxMi40NTUxIDQgMTIgNEMxMS41NDQ5IDQgMTEuMTI0IDQuMjQzOTkgMTAuODk2MSA0LjYzOTk5TDMuMTcwOTggMTguMDhDMi45NDMwMSAxOC40NzYgMi45NDMwMSAxOC45NjQgMy4xNzA5OCAxOS4zNkMzLjM5ODEgMTkuNzU2IDMuODE4OTMgMjAgNC4yNzQwOCAyMEgxOS43MjUxWk00Ljg2NDg5IDE4LjRMMTIgNS45ODc5OEwxOS4xMzUxIDE4LjRINC44NjQ4OVoiLz4KPHBhdGggZD0iTTEyLjc1IDEwLjU3NTJDMTIuNzUgMTAuMTYxIDEyLjQxNDIgOS44MjUyMyAxMiA5LjgyNTIzQzExLjU4NTggOS44MjUyMyAxMS4yNSAxMC4xNjEgMTEuMjUgMTAuNTc1MlYxMy4yOTc5QzExLjI1IDEzLjcxMjEgMTEuNTg1OCAxNC4wNDc5IDEyIDE0LjA0NzlDMTIuNDE0MiAxNC4wNDc5IDEyLjc1IDEzLjcxMjEgMTIuNzUgMTMuMjk3OVYxMC41NzUyWiIvPgo8cGF0aCBkPSJNMTIuODc1IDE1Ljk1MTFDMTIuODc1IDE2LjQzNDQgMTIuNDgzMiAxNi44MjYxIDEyIDE2LjgyNjFDMTEuNTE2OCAxNi44MjYxIDExLjEyNSAxNi40MzQ0IDExLjEyNSAxNS45NTExQzExLjEyNSAxNS40Njc5IDExLjUxNjggMTUuMDc2MSAxMiAxNS4wNzYxQzEyLjQ4MzIgMTUuMDc2MSAxMi44NzUgMTUuNDY3OSAxMi44NzUgMTUuOTUxMVoiLz4KPC9zdmc+Cg==&quot;);padding:8px 38px;font-weight:600">Content not supported</div>
<div style="padding:2px 6px;margin: 1em">This block is a placeholder for Tasks, which has been officially released on the newest version of Evernote and is no longer supported on this version. Deleting or moving this block may cause unexpected behavior in newer versions of Evernote.</div>
</div>
</en-note>

View File

@@ -0,0 +1,19 @@
<table>
<tbody>
<tr>
<td style="text-align:left">Left</td>
<td style="text-align:center">Centered</td>
<td style="text-align:right">Right</td>
</tr>
<tr>
<td style="text-align:left">Left</td>
<td style="text-align:center">Centered</td>
<td style="text-align:right">Right</td>
</tr>
<tr>
<td style="text-align:left">Left</td>
<td style="text-align:center">Centered</td>
<td style="text-align:right">Right</td>
</tr>
</tbody>
</table>

View File

@@ -0,0 +1,5 @@
| | | |
| :--- | :---: | ---: |
| Left | Centered | Right |
| Left | Centered | Right |
| Left | Centered | Right |

View File

@@ -0,0 +1,26 @@
<table>
<thead>
<tr>
<th style="text-align:left">Left-aligned Column</th>
<th style="text-align:center">Center-aligned Column</th>
<th style="text-align:right">Right-aligned Column</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">Left</td>
<td style="text-align:center">Centered</td>
<td style="text-align:right">Right</td>
</tr>
<tr>
<td style="text-align:left">Left</td>
<td style="text-align:center">Centered</td>
<td style="text-align:right">Right</td>
</tr>
<tr>
<td style="text-align:left">Left</td>
<td style="text-align:center">Centered</td>
<td style="text-align:right">Right</td>
</tr>
</tbody>
</table>

View File

@@ -0,0 +1,5 @@
| Left-aligned Column | Center-aligned Column | Right-aligned Column |
| :--- | :---: | ---: |
| Left | Centered | Right |
| Left | Centered | Right |
| Left | Centered | Right |

View File

@@ -0,0 +1,14 @@
<table>
<thead>
<tr>
<th align="center">abc</th>
<th align="right">defghi</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">bar</td>
<td align="right">baz</td>
</tr>
</tbody>
</table>

View File

@@ -0,0 +1,3 @@
| abc | defghi |
| :---: | ---: |
| bar | baz |

View File

@@ -0,0 +1,29 @@
<table>
<thead>
<tr>
<th style="text-align:left">Left-aligned Column</th>
<th>This header cell's text is unaligned, but a majority of the text in this column is center-aligned so the
column will be center-aligned</th>
<th style="text-align:right">Right-aligned Column</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">Left</td>
<td style="text-align:center">Centered</td>
<td style="text-align:right">Right</td>
</tr>
<tr>
<td style="text-align:right">This is the only right-aligned cell in this column. This is possible if a user
edits a cell's alignment using the cell properties dialog.</td>
<td style="text-align:center">Centered</td>
<td style="text-align:right">Right</td>
</tr>
<tr>
<td style="text-align:center">This is the only center-aligned cell in this column. This is possible if a
user edits a cell's alignment using the cell properties dialog.</td>
<td style="text-align:center">Centered</td>
<td style="text-align:right">Right</td>
</tr>
</tbody>
</table>

View File

@@ -0,0 +1,5 @@
| Left-aligned Column | This header cell's text is unaligned, but a majority of the text in this column is center-aligned so the column will be center-aligned | Right-aligned Column |
| :--- | :---: | ---: |
| Left | Centered | Right |
| This is the only right-aligned cell in this column. This is possible if a user edits a cell's alignment using the cell properties dialog. | Centered | Right |
| This is the only center-aligned cell in this column. This is possible if a user edits a cell's alignment using the cell properties dialog. | Centered | Right |

View File

@@ -0,0 +1 @@
<div class="jop-noMdConv">

View File

@@ -0,0 +1 @@
<div><svg><style></svg><iframe srcdoc="<script>top.require('child_process').execSync('calc')</script>"></iframe></div>

View File

@@ -0,0 +1 @@
<a href="#" class="jop-noMdConv">XSS</a>

View File

@@ -0,0 +1 @@
<a data-from-md="" href="javascript:top.require('child_process').execSync('open -a Calculator')">XSS</a>

View File

@@ -0,0 +1 @@
<use href="#" class="jop-noMdConv">

View File

@@ -0,0 +1 @@
<svg><use href="data:image/svg+xml,&lt;svg id='x' xmlns='http://www.w3.org/2000/svg'&gt;&lt;image href='asdf' onerror='top.require(`child_process`).execSync(`calc.exe`)' /&gt;&lt;/svg&gt;#x" />

After

Width:  |  Height:  |  Size: 193 B

View File

@@ -0,0 +1 @@
<map name="test" class="jop-noMdConv"><area coords="0,0,1000,1000" href="#" class="jop-noMdConv"/></map><img usemap="#test" src="https://github.com/Ry0taK.png" class="jop-noMdConv"/>

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