1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-12-29 23:48:19 +02:00

Compare commits

...

35 Commits

Author SHA1 Message Date
Laurent Cozic
24263d12e2 Trying to add plugin support for mobile app 2020-10-30 18:44:39 +00:00
Laurent Cozic
e2698aaead Merge branch 'release-1.3' into dev 2020-10-29 17:10:48 +00:00
Laurent Cozic
fd90a490c0 All: Security: Remove "link" and "meta" tags from notes to prevent XSS 2020-10-29 16:19:56 +00:00
Helmut K. C. Tessarek
16c5ffadc7 Update translations 2020-10-29 10:34:31 -04:00
Laurent Cozic
4a184721e4 Doc: Restored privacy policy document 2020-10-29 13:49:12 +00:00
Laurent Cozic
1e3bd937ed Android release v1.3.10 2020-10-29 11:34:10 +00:00
Laurent Cozic
0f6932f1e8 Clipper release v1.3.1 2020-10-29 11:28:21 +00:00
Laurent Cozic
cab98776db Electron release v1.3.10 2020-10-29 11:20:45 +00:00
Laurent Cozic
fbc1e3ed3b Merge branch 'dev' into release-1.3 2020-10-29 11:18:32 +00:00
Ji-Hyeon Gim
805d16abda All: Translation: Update ko.po (#3995)
It updates fuzzy translations for Korean.

Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>
2020-10-29 11:18:01 +00:00
Eduardo Braga
f133229287 Add some missing translations to pt_BR.po (#3994) 2020-10-29 11:16:18 +00:00
Mario Campo
8f4031572a Update es_ES.po (#3978)
Several corrections in spanish language
2020-10-29 11:15:53 +00:00
Laurent Cozic
d25fa796c0 Api: Added service to access resource external editing 2020-10-29 11:09:18 +00:00
Laurent Cozic
089d6a5c9e All: Fixes #3993: Fix slow Katex rendering when there are many global definitions 2020-10-29 10:44:48 +00:00
Laurent Cozic
3f83355d9f Clipper: Fixes #3984: Images from some website were not being downloaded 2020-10-29 10:16:31 +00:00
Laurent Cozic
40380e3066 Merge branch 'release-1.3' of github.com:laurent22/joplin into release-1.3 2020-10-29 10:15:08 +00:00
Laurent Cozic
a6748bafb3 All: Fixes #3992: Update highlight.js to fix freeze for certain code blocks 2020-10-28 17:31:54 +00:00
Laurent Cozic
b52f6eb77c All: Fixes #3955: Fixed sync issue when importing ENEX files that contain new line characters in the source URL attribute 2020-10-28 17:21:41 +00:00
Laurent Cozic
98c933fdb7 All: Fixed OneDrive authentication 2020-10-28 15:50:34 +00:00
Laurent Cozic
ece7ffadd6 Desktop: Fixes #3986: Handle gzipped CSS files when importing from clipper 2020-10-28 15:47:36 +00:00
Laurent Cozic
591bceb8ef Update mermaid 2020-10-28 12:10:35 +00:00
Laurent Cozic
04cfd07176 macOS: Regression: Restore Edit menu in config screens so that Copy/Cut/Paste shortcuts work 2020-10-28 11:23:57 +00:00
Laurent Cozic
db2282a351 Desktop: Fix syntax of imported resources when importing ENEX as HTML 2020-10-28 11:11:04 +00:00
Laurent Cozic
0ec3d6ca9d Clipper: Upgraded clipper to support API pagination
This version of the clipper will support both new and old Joplin
clients, so as to ease the transition.
2020-10-27 00:38:39 +00:00
Laurent Cozic
442b7ce0d3 litner 2020-10-26 23:19:52 +00:00
Laurent Cozic
6a068a90b2 Desktop: Regression: Keyboard shortcut would not save in some cases 2020-10-25 17:46:41 +00:00
Laurent Cozic
9a6f6c8b39 Desktop: Regression: Restore "New sub-notebook" command 2020-10-25 17:29:52 +00:00
Laurent Cozic
52d5c32950 Plugins: Add the openNote, openFolder and openTag commands 2020-10-25 17:22:59 +00:00
Laurent Cozic
de47cff86d Fixed case 2020-10-24 12:07:48 +01:00
Laurent Cozic
a459174f98 Desktop: Fix: Command Palette click did not work 2020-10-24 11:46:02 +01:00
Laurent Cozic
75d5aa3a77 Tools: Fixed linter errors 2020-10-24 00:14:30 +01:00
Laurent Cozic
c254ca524f CLI v1.3.3 2020-10-23 17:01:13 +01:00
Laurent Cozic
51934b8d8d Cli: Added missing "immer" package 2020-10-23 17:00:20 +01:00
Laurent Cozic
a5dd686bb2 CLI v1.3.2 2020-10-23 16:58:28 +01:00
Laurent Cozic
4cbfd04522 Cli: Trying to fix build 2020-10-23 16:56:34 +01:00
236 changed files with 107173 additions and 101145 deletions

View File

@@ -105,7 +105,11 @@ ElectronClient/gui/MainScreen/commands/hideModalMessage.js
ElectronClient/gui/MainScreen/commands/moveToFolder.js
ElectronClient/gui/MainScreen/commands/newFolder.js
ElectronClient/gui/MainScreen/commands/newNote.js
ElectronClient/gui/MainScreen/commands/newSubFolder.js
ElectronClient/gui/MainScreen/commands/newTodo.js
ElectronClient/gui/MainScreen/commands/openFolder.js
ElectronClient/gui/MainScreen/commands/openNote.js
ElectronClient/gui/MainScreen/commands/openTag.js
ElectronClient/gui/MainScreen/commands/print.js
ElectronClient/gui/MainScreen/commands/renameFolder.js
ElectronClient/gui/MainScreen/commands/renameTag.js

4
.gitignore vendored
View File

@@ -99,7 +99,11 @@ ElectronClient/gui/MainScreen/commands/hideModalMessage.js
ElectronClient/gui/MainScreen/commands/moveToFolder.js
ElectronClient/gui/MainScreen/commands/newFolder.js
ElectronClient/gui/MainScreen/commands/newNote.js
ElectronClient/gui/MainScreen/commands/newSubFolder.js
ElectronClient/gui/MainScreen/commands/newTodo.js
ElectronClient/gui/MainScreen/commands/openFolder.js
ElectronClient/gui/MainScreen/commands/openNote.js
ElectronClient/gui/MainScreen/commands/openTag.js
ElectronClient/gui/MainScreen/commands/print.js
ElectronClient/gui/MainScreen/commands/renameFolder.js
ElectronClient/gui/MainScreen/commands/renameTag.js

View File

@@ -48,7 +48,11 @@ ElectronClient/gui/MainScreen/commands/hideModalMessage.js
ElectronClient/gui/MainScreen/commands/moveToFolder.js
ElectronClient/gui/MainScreen/commands/newFolder.js
ElectronClient/gui/MainScreen/commands/newNote.js
ElectronClient/gui/MainScreen/commands/newSubFolder.js
ElectronClient/gui/MainScreen/commands/newTodo.js
ElectronClient/gui/MainScreen/commands/openFolder.js
ElectronClient/gui/MainScreen/commands/openNote.js
ElectronClient/gui/MainScreen/commands/openTag.js
ElectronClient/gui/MainScreen/commands/print.js
ElectronClient/gui/MainScreen/commands/renameFolder.js
ElectronClient/gui/MainScreen/commands/renameTag.js

View File

@@ -22,4 +22,5 @@ yarn-error.log
tests/support/dropbox-auth.txt
tests/support/nextcloud-auth.json
tests/support/onedrive-auth.txt
build/
build/
patches/

View File

@@ -17,12 +17,23 @@ tasks.prepareBuild = {
excluded: ['node_modules'],
});
await utils.copyDir(`${__dirname}/locales-build`, `${buildDir}/locales`);
await utils.copyDir(`${__dirname}/../patches`, `${buildDir}/patches`);
await tasks.copyLib.fn();
await utils.copyFile(`${__dirname}/package.json`, `${buildDir}/package.json`);
await utils.copyFile(`${__dirname}/package-lock.json`, `${buildDir}/package-lock.json`);
await utils.copyFile(`${__dirname}/gulpfile.js`, `${buildDir}/gulpfile.js`);
// Import all the patches inside the CliClient directory
// and build file. Needs to be in CliClient dir for when running
// in dev mode, and in build dir for production.
const localPatchDir = `${buildDir}/patches`;
await fs.remove(localPatchDir);
await fs.mkdirp(localPatchDir);
await utils.copyDir(`${__dirname}/../patches/shared`, `${localPatchDir}`, { delete: false });
await utils.copyDir(`${__dirname}/../patches/node`, `${localPatchDir}`, { delete: false });
await fs.remove(`${__dirname}/patches`);
await utils.copyDir(`${localPatchDir}`, `${__dirname}/patches`);
const packageRaw = await fs.readFile(`${buildDir}/package.json`);
const package = JSON.parse(packageRaw.toString());
package.scripts.postinstall = 'patch-package';

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -38,33 +38,33 @@ locales['tr_TR'] = require('./tr_TR.json');
locales['vi'] = require('./vi.json');
locales['zh_CN'] = require('./zh_CN.json');
locales['zh_TW'] = require('./zh_TW.json');
stats['ar'] = {"percentDone":79};
stats['ar'] = {"percentDone":78};
stats['eu'] = {"percentDone":33};
stats['bs_BA'] = {"percentDone":82};
stats['bg_BG'] = {"percentDone":65};
stats['ca'] = {"percentDone":95};
stats['hr_HR'] = {"percentDone":27};
stats['cs_CZ'] = {"percentDone":99};
stats['da_DK'] = {"percentDone":73};
stats['cs_CZ'] = {"percentDone":98};
stats['da_DK'] = {"percentDone":72};
stats['de_DE'] = {"percentDone":97};
stats['et_EE'] = {"percentDone":65};
stats['en_GB'] = {"percentDone":100};
stats['en_US'] = {"percentDone":100};
stats['es_ES'] = {"percentDone":99};
stats['es_ES'] = {"percentDone":98};
stats['eo'] = {"percentDone":37};
stats['fr_FR'] = {"percentDone":98};
stats['gl_ES'] = {"percentDone":42};
stats['id_ID'] = {"percentDone":92};
stats['it_IT'] = {"percentDone":98};
stats['nl_BE'] = {"percentDone":33};
stats['nl_NL'] = {"percentDone":94};
stats['nl_BE'] = {"percentDone":33};
stats['nb_NO'] = {"percentDone":87};
stats['fa'] = {"percentDone":82};
stats['pl_PL'] = {"percentDone":97};
stats['pt_PT'] = {"percentDone":98};
stats['pt_BR'] = {"percentDone":95};
stats['pt_BR'] = {"percentDone":96};
stats['ro'] = {"percentDone":77};
stats['sl_SI'] = {"percentDone":42};
stats['sl_SI'] = {"percentDone":41};
stats['sv'] = {"percentDone":70};
stats['th_TH'] = {"percentDone":52};
stats['vi'] = {"percentDone":84};
@@ -74,6 +74,6 @@ stats['ru_RU'] = {"percentDone":94};
stats['sr_RS'] = {"percentDone":70};
stats['zh_CN'] = {"percentDone":95};
stats['zh_TW'] = {"percentDone":94};
stats['ja_JP'] = {"percentDone":97};
stats['ja_JP'] = {"percentDone":99};
stats['ko'] = {"percentDone":99};
module.exports = { locales: locales, stats: stats };

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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 it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "joplin",
"version": "1.3.1",
"version": "1.3.3",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -23,9 +23,9 @@
"integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="
},
"abab": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz",
"integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg=="
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
"integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q=="
},
"abbrev": {
"version": "1.1.1",
@@ -33,9 +33,9 @@
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"acorn": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz",
"integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA=="
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
},
"acorn-globals": {
"version": "4.3.4",
@@ -47,9 +47,9 @@
},
"dependencies": {
"acorn": {
"version": "6.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
"integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA=="
"version": "6.4.2",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
"integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ=="
}
}
},
@@ -2964,9 +2964,9 @@
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0="
},
"highlight.js": {
"version": "10.1.1",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.1.1.tgz",
"integrity": "sha512-b4L09127uVa+9vkMgPpdUQP78ickGbHEQTWeBrQFTJZ4/n2aihWOGS0ZoUqAwjVmfjhq/C76HRzkqwZhK4sBbg=="
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.2.1.tgz",
"integrity": "sha512-A+sckVPIb9zQTUydC9lpRX1qRFO/N0OKEh0NwIr65ckvWA/oMY8v9P3+kGRK3w2ULSh9E8v5MszXafodQ6039g=="
},
"homedir-polyfill": {
"version": "1.0.3",
@@ -3227,6 +3227,11 @@
"file-type": "^4.1.0"
}
},
"immer": {
"version": "7.0.14",
"resolved": "https://registry.npmjs.org/immer/-/immer-7.0.14.tgz",
"integrity": "sha512-BxCs6pJwhgSEUEOZjywW7OA8DXVzfHjkBelSEl0A+nEu0+zS4cFVdNOONvt55N4WOm8Pu4xqSPYxhm1Lv2iBBA=="
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -3650,9 +3655,9 @@
"integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc="
},
"joplin-turndown": {
"version": "4.0.29",
"resolved": "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.29.tgz",
"integrity": "sha512-rVGu8u4TpSRETo59/jiVW9iaXnpdxxpBHjb7nyCflkDfWhg1Kska4uagBQGw7cD2yxw7mB2YUIB/fAgtlIzcDQ==",
"version": "4.0.30",
"resolved": "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.30.tgz",
"integrity": "sha512-OrGdNTsjI6/cbx/es9Hl0YI3YTql4SopduFcYCnWTZgqT0SJqILnF2JQxSNnbPnkSDIIRdNOG4+iNzlY6bS1nw==",
"requires": {
"css": "^2.2.4",
"html-entities": "^1.2.1",
@@ -5568,13 +5573,6 @@
"integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==",
"requires": {
"lodash": "^4.17.19"
},
"dependencies": {
"lodash": {
"version": "4.17.19",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
}
}
},
"request-promise-native": {

View File

@@ -6,7 +6,7 @@
"scripts": {
"test": "gulp buildTests -L && node node_modules/jasmine/bin/jasmine.js --fail-fast=true --config=tests/support/jasmine.json",
"test-ci": "gulp buildTests -L && node node_modules/jasmine/bin/jasmine.js --config=tests/support/jasmine.json",
"postinstall": "npm run build && patch-package --patch-dir ../patches/shared && patch-package --patch-dir ../patches/node",
"postinstall": "npm run build && patch-package --patch-dir ./patches",
"build": "gulp build",
"start": "gulp build -L && node 'build/main.js' --stack-trace-enabled --log-level debug --env dev"
},
@@ -28,7 +28,7 @@
],
"owner": "Laurent Cozic"
},
"version": "1.3.1",
"version": "1.3.3",
"bin": {
"joplin": "./main.js"
},
@@ -52,13 +52,14 @@
"font-awesome-filetypes": "^2.1.0",
"form-data": "^2.1.4",
"fs-extra": "^5.0.0",
"highlight.js": "10.1.1",
"highlight.js": "^10.2.1",
"html-entities": "^1.2.1",
"html-minifier": "^3.5.15",
"htmlparser2": "^4.1.0",
"image-data-uri": "^2.0.0",
"image-type": "^3.0.0",
"joplin-turndown": "^4.0.29",
"immer": "^7.0.14",
"joplin-turndown": "^4.0.30",
"joplin-turndown-plugin-gfm": "^1.0.12",
"json-stringify-safe": "^5.0.1",
"jssha": "^2.3.0",

View File

@@ -1,5 +1,5 @@
<en-note>
<div><a href="joplin://21ca2b948f222a38802940ec7e2e5de3" hash="21ca2b948f222a38802940ec7e2e5de3" type="application/pdf" style="cursor:pointer;" alt="attachment-1">attachment-1</a></div>
<div><a href=":/21ca2b948f222a38802940ec7e2e5de3" hash="21ca2b948f222a38802940ec7e2e5de3" type="application/pdf" style="cursor:pointer;" alt="attachment-1">attachment-1</a></div>
<div>
<br>
</div>

View File

@@ -0,0 +1 @@
<a href="https://images.macrumors.com/filters:quality(90)/article.html"/>testing</a>

View File

@@ -0,0 +1 @@
[testing](https://images.macrumors.com/filters:quality%2890%29/article.html)

View File

@@ -0,0 +1 @@
<img src="https://images.macrumors.com/filters:quality(90)/article/test.jpg?high"/>

View File

@@ -0,0 +1 @@
![](https://images.macrumors.com/filters:quality%2890%29/article/test.jpg?high)

View File

@@ -0,0 +1 @@
<img src="https://example.com/test.jpg" title="hello"/>

View File

@@ -0,0 +1 @@
![](https://example.com/test.jpg "hello")

View File

@@ -0,0 +1 @@
<img src="https://example.com/test.jpg" title='hello &amp; "(ouch)"'/>

View File

@@ -0,0 +1 @@
![](https://example.com/test.jpg "hello & &quot;&#40;ouch&#41;&quot;")

View File

@@ -104,4 +104,14 @@ describe('models_BaseItem', function() {
expect(noteAfter).toEqual(noteBefore);
}));
it('should serialize and unserialize properties that contain new lines', asyncTest(async () => {
const note = await Note.save({ title: 'note', source_url: '\nhttps://joplinapp.org/\n' });
const noteBefore = await Note.load(note.id);
const serialized = await Note.serialize(noteBefore);
const noteAfter = await Note.unserialize(serialized);
expect(noteAfter).toEqual(noteBefore);
}));
});

View File

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

View File

@@ -55,7 +55,7 @@
},
"scripts": {
"start": "node scripts/start.js",
"build": "SKIP_PREFLIGHT_CHECK=true node scripts/build.js",
"build": "node scripts/build.js SKIP_PREFLIGHT_CHECK",
"test": "node scripts/test.js --env=jsdom",
"watch": "cra-build-watch",
"postinstall": "node postinstall.js && npm run build"

View File

@@ -1,5 +1,9 @@
'use strict';
if (process.argv && process.argv.indexOf('SKIP_PREFLIGHT_CHECK') >= 0) {
process.env.SKIP_PREFLIGHT_CHECK = 'true';
}
// Do this as the first thing so that any code reading it knows the right env.
process.env.BABEL_ENV = 'production';
process.env.NODE_ENV = 'production';

View File

@@ -148,10 +148,10 @@ class Bridge {
this.dispatch({ type: 'CLIPPER_SERVER_SET', foundState: 'found', port: state.port });
const folders = await this.folderTree();
this.dispatch({ type: 'FOLDERS_SET', folders: folders });
this.dispatch({ type: 'FOLDERS_SET', folders: folders.items ? folders.items : folders });
const tags = await this.clipperApiExec('GET', 'tags');
this.dispatch({ type: 'TAGS_SET', tags: tags });
this.dispatch({ type: 'TAGS_SET', tags: tags.items ? tags.items : tags });
bridge().restoreState();
return;
@@ -245,7 +245,7 @@ class Bridge {
}
async folderTree() {
return this.clipperApiExec('GET', 'folders');
return this.clipperApiExec('GET', 'folders', { as_tree: 1 });
}
async storageSet(keys) {

View File

@@ -46,6 +46,7 @@ const commands = [
require('./gui/MainScreen/commands/moveToFolder'),
require('./gui/MainScreen/commands/newNote'),
require('./gui/MainScreen/commands/newFolder'),
require('./gui/MainScreen/commands/newSubFolder'),
require('./gui/MainScreen/commands/newTodo'),
require('./gui/MainScreen/commands/print'),
require('./gui/MainScreen/commands/renameFolder'),
@@ -61,6 +62,9 @@ const commands = [
require('./gui/MainScreen/commands/toggleSideBar'),
require('./gui/MainScreen/commands/toggleVisiblePanes'),
require('./gui/MainScreen/commands/toggleEditors'),
require('./gui/MainScreen/commands/openNote'),
require('./gui/MainScreen/commands/openFolder'),
require('./gui/MainScreen/commands/openTag'),
require('./gui/NoteEditor/commands/focusElementNoteBody'),
require('./gui/NoteEditor/commands/focusElementNoteTitle'),
require('./gui/NoteEditor/commands/showLocalSearch'),

View File

@@ -1,7 +1,7 @@
import * as React from 'react';
import { useState } from 'react';
import KeymapService, { KeymapItem } from '../../lib/services/KeymapService';
import KeymapService, { KeymapItem } from 'lib/services/KeymapService';
import { ShortcutRecorder } from './ShortcutRecorder';
import getLabel from './utils/getLabel';
import useKeymap from './utils/useKeymap';
@@ -106,7 +106,7 @@ export const KeymapConfigScreen = ({ themeId }: KeymapConfigScreenProps) => {
const renderError = (error: Error) => {
return (
<div style={styles.warning}>
<div style={{ ...styles.warning, position: 'absolute', top: 0 }}>
<p style={styles.text}>
<span>
{error.message}

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